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

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

CForm[expr]C言語形式で式 expr を出力する
FortranForm[expr]Fortran形式で式 expr を出力する
Export[file,expr,"C"]expr を計算するC関数を書く

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

標準的なWolfram言語表記法に従った形で式が返ってくる.
In[1]:=
Click for copyable input
Out[1]=
こうすると,同じ式をFortran形式で得ることができる.
C言語形式にするならこうする.Power等のオブジェクトに対応したマクロは,ほとんどのWolfram言語のバージョンに標準添付されるCヘッダファイルmdefs.hに定義されている.

式全体をCにしたい場合は,Exportを使いCに変換するとよい,

C関数全体がWolfram言語のCompiledFunction式から計算される.
In[4]:=
Click for copyable input
Out[4]=

Wolfram言語式をCやFortranに変換したいというよくある動機の一つに,数値的に速く評価させるためというものがある.しかし,CおよびFortranがWolfram言語より効率的となり得る唯一の理由は,これらの言語ではユーザが使用するそれぞれの変数の型(整数,実数,配列等)をその場で常に指定するためということである.

Wolfram言語関数Compileはそのような前提をWolfram言語内で行い,非常に効率的な内部コードを生成する.これはCompilationTargetに設定することでより高速に実行させることができる.

Compile[x,expr]式を効率的な内部コードにコンパイルする
Compile[x,expr,CompilationTarget->"C"]Cコードにコンパイルし,Wolfram言語にリンクし直す

Wolfram言語式のコンパイル