Compile

Compile[{x1, x2, ...}, expr]
が数値であるという前提で,式 expr を評価するためのコンパイルされた関数を作成する.

Compile[{{x1, t1}, ...}, expr]
に適合するタイプであることを前提とする.

Compile[{{x1, t1, n1}, ...}, expr]
次元配列のオブジェクトであり,オブジェクトのそれぞれが に適合することを前提とする.

Compile[vars, expr, {{p1, pt1}, ...}]
に適合する式 expr の部分式が に適合するタイプであることを前提とする.

詳細とオプション詳細とオプション

  • Compileが取り扱うタイプ:
  • _Integer機械サイズの整数
    _Real機械精度の近似実数(デフォルト値)
    _Complex機械精度の近似複素数
    True | False論理変数
  • コンパイルされる関数の入力として与えられるネストしたリストは,数値からなる完全配列でなければならない.
  • Compileは,数値関数,行列演算,手続き型プログラミング構文,リスト操作関数,関数型プログラミング構文等に使うことができる..
  • Compileは,CompiledFunctionオブジェクトを作成する.
  • コンパイルされたコードは,通常の Mathematica のコードと同様の数値的な精度や局所変数の取扱いをするとは限らない.
  • コンパイルされたコードを使った特定の引数でコンパイルされた関数が評価できない場合,代りとして通常の Mathematica のコードが使用される.
  • 通常の Mathematica のコードを,コンパイルされたコードの中で使用することができる.この Mathematica コードで得られた結果は,Compileの第3引数で特に指定されない限り近似実数であるとみなされる.
  • Compileによってオブジェクトが評価される回数やその順が通常の Mathematica のコードと異なる場合がある.
  • Compileは属性HoldAllを持ち,デフォルトにより,コンパイルされる前に評価を行わない.
  • Compile[..., Evaluate[expr]]の設定により,式 expr をコンパイルの前に,シンボル的に評価するように指定できる.
  • 使用可能なオプション:
  • CompilationOptionsAutomaticコンパイルのプロセスに関するオプション
    CompilationTarget$CompilationTargetコード生成でターゲットとするランタイム
    ParallelizationAutomaticコンパイルされた関数の実行の際の並列制御
    RuntimeAttributes{}コンパイルされた関数の評価属性
    RuntimeOptionsAutomaticコンパイルされた関数のランタイムオプション

例題例題すべて開くすべて閉じる

例 (1)例 (1)

関数Sin[x]+x^2-1/(1-x)を機械実数 x についてコンパイルする:

In[1]:=
Click for copyable input
Out[1]=

CompiledFunctionは機械数で評価する:

In[2]:=
Click for copyable input
Out[2]=

コンパイルされた関数をプロットする:

In[3]:=
Click for copyable input
Out[3]=
バージョン 2 の新機能 | バージョン 8 での修正機能
New to Mathematica? Find your learning path »
Have a question? Ask support »