2012-01-25 119 views
4

我想知道在C++代码中记录数学公式的最佳实践。C++嵌入数学公式

理想情况下,它可能是完美的,能够直接写入方程式到评论中,但不可能以人类可读的方式编写它们。

我期待着LaTex,MathML,当与来自不同视野的许多人一起工作时,语法很复杂(毕竟不是所有人都是数学家)。如果你有这方面的经验,请发表评论。

例如,我在需要记录的每个函数中添加对外部HML文件的交叉引用,但很难维护。我尝试了Doxygen公式,并且我们大多数人发现语法也非常复杂。

\f[ 
    |I_2|=\left| \int_{0}^T \psi(t) 
      \left\{ 
       u(a,t)- 
       \int_{\gamma(t)}^a 
       \frac{d\theta}{k(\theta,t)} 
       \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi 
      \right\} dt 
      \right| 
    \f] 
+4

Doxygen公式只是LaTeX数学模式。您可以使用不少LaTeX公式编辑器来生成您在Doxygen评论中输入的LaTeX。 – Flexo

+1

可能无关紧要,但传统上不会将例如“d”的字母斜体。 “dξ”。所以,在LaTeX中,你可以写一些类似'\ mathrm {d} \ xi'的东西。 – Managu

回答

3

如果您有需要各种符号的复杂的数学公式,你最好把你的功能文档中写他们,而不是在代码文档。即单独的文件。

1

LaTeX语法并不过于复杂,而且比MathML更具人类可读性(并且是人类可写的!)(好的,这是一个观点)。有些练习确实有帮助,但这不是你在几个小时内不会接受的任何事情。根据我的经验,在LaTeX中编写一个数学丰富的文本是迄今为止最方便的选择。

取决于你的公式是多么复杂 - 或者说,你是否需要奇特的符号 - 我可以说你可以嵌入公式到代码中并使用doxygen,或者,如前所述,创建一个单独的文件。

+0

谢谢大家的反馈。我非常喜欢Managu的ASCII提案并将采用它。 – ohmy

4

你总是可以使用“ASCII”艺术。如果你的编辑支持Unicode(尤其是UTF-8编码),那就更好了。在实际查看代码时它可能更具可读性。尽管维护它可能并不比TeX语法更简单。例如。

//   │ ⌠T  {           } │ 
//   │ |  {   ⌠a  dθ ⌠θ     } │ 
// │ I │ = │ | ψ(t) { u(a,t) - |  ------ | c(ξ) u (ξ,t) dξ } dt │ 
// │ 2 │ │ |  {   ⌡γ(t) k(θ,t) ⌡a  t   } │ 
//   │ ⌡0  {           } │ 
+0

哈哈。 lolcakes。 –

+0

@LightnessRacesInOrbit:我想我正在与这个答案相抗衡,你可以用最容易理解的方式写出更多种类的公式。 – Managu

+0

我想是吧。我喜欢。 –