产生 C 和 Fortran 表达式

有时还需要产生特殊的 C 或 Fortran 表达式,且要将 Mathematica 中产生的公式插入该程序的源代码中. Mathematica 可以将数学表达式转化为 C 或 Fortran 表达式.

CForm[expr]expr 写为能在 C 程序中使用的格式
FortranForm[expr]expr 写为能在 Fortran 中使用的格式
Export[file,expr,"C"]写一个能计算 expr 的 C 函数

用于程序设计语言的 Mathematica 输出.

这是标准的 Mathematica 格式写出的表达式.
In[1]:=
Click for copyable input
Out[1]=
这是该表达式的 Fortran 格式.
In[2]:=
Click for copyable input
Out[2]//FortranForm=
这是同一表达式的 C 格式. 关于像 Power 这样的对象的宏命令被定义在 C 的头文件 mdefs.h 中,Mathematica 的大多数版本具有该文件.
In[3]:=
Click for copyable input
Out[3]//CForm=

如果您想对整个表达式产生 C 版本,您可以 ExportC.

以下是从 Mathematica CompiledFunction 表达式中计算的整个 C 函数.
In[4]:=
Click for copyable input
Out[4]=

转换 Mathematica 表达式成 C 或 Fortran 语言的一个常见的动机是使它们被更快地进行数值计算. 但是 C 和 Fortran 可能比 Mathematica 潜在地更有效的一个最重要的原因是,在这些语言中,人们总是先指定所使用变量的类型——整数、实数、数组等等.

函数 CompileMathematica 中使用这些假设,并产生高效的内部代码. 通过设置 CompilationTarget 可以使之运行更快.

Compile[x,expr]编译一个表达式为高效的内部代码
Compile[x,expr,CompilationTarget->"C"]编译为 C 代码并链接回 Mathematica

编译 Mathematica 表达式.

New to Mathematica? Find your learning path »
Have a question? Ask support »