Mathematica >

C言語とFortran形式のプログラムコードの生成

読者の中にはC言語やFortranを使ったプログラムを開発していて,Mathematica で作った数式をプログラムのソースコードに取り込みたいという人もいるだろう.Mathematica には特別な記述変換機能が備えられているので,それを使うことで,数式をこれらの言語記述に変換することができるようになっている.
CForm[expr]C言語形式で式expr を出力する
FortranForm[expr]Fortran形式で式expr を出力する

Mathematica のプログラミング言語への出力

標準的なMathematica 表記法に従った形で式が返ってくる.
In[1]:=
Click for copyable input
Out[1]=
こうすると,同じ式をFortran形式で得ることができる.
In[2]:=
Click for copyable input
Out[2]//FortranForm=
C言語形式にするならこうする.Power等のオブジェクトに対応したマクロは,ほとんどのMathematica のバージョンに標準添付されるCヘッダファイルmdefs.hに定義されている.
In[3]:=
Click for copyable input
Out[3]//CForm=
言うまでもないがMathematica とC言語やFortranの間には数多くの相違点がある.このため,上記のコマンドを使って記述変換をしても実際に取り込まれた式は,もとのMathematica の式とは機能上,若干違ってしまうことがある.さらに,プログラミング構造が言語によって大きく異なるため,これらの変換が自動的になされているとは思わない方がよい.
Compile[x,expr]式を効率的な内部コードにコンパイルする

Mathematica 式をコンパイルする方法

Mathematica で作った式をC言語やFortran記述に変換する上で,ひとつの共通的な理由に,より早く数値解析的に評価処理を行うことができるだろう,という期待がある.しかし,C言語やFortranがMathematica より処理効率の上で潜在的に勝る最大の理由は,個々の変数の型が整数,実数または配列である,というように前もって宣言することができるということにある.
Mathematica の関数Compileを使うと上記の前提が使われ,Mathematica においても非常に処理効率のよいコードを生成することができる.このようにして作ったコードは,処理スピードの点でC言語やFortranで作ったものと比べても引けを取らない.