Compile
Compile[{x1,x2,…},expr]
xiが数値であるという前提で,式 expr を評価するためのコンパイルされた関数を作成する.
Compile[{{x1,t1},…},expr]
xiが tiに適合するタイプであることを前提とする.
Compile[{{x1,t1,n1},…},expr]
xiが ni次元配列のオブジェクトであり,オブジェクトのそれぞれが tiに適合することを前提とする.
Compile[vars,expr,{{p1,pt1},…}]
piに適合する式 expr の部分式が ptiに適合するタイプであることを前提とする.
詳細とオプション
- Compileが取り扱うタイプ
-
_Integer 機械サイズの整数 _Real 機械精度の近似実数(デフォルト値) _Complex 機械精度の近似複素数 True False 論理変数 - コンパイルされる関数の入力として与えられるネストしたリストは,数値からなる完全配列でなければならない.
- Compileは,数値関数,行列演算,手続き型プログラミング構文,リスト操作関数,関数型プログラミング構文等に使うことができる.
- Compileは,CompiledFunctionオブジェクトを作成する.
- コンパイルされたコードは,通常のWolfram言語のコードと同様の数値的な精度や局所変数の取扱いをするとは限らない.
- コンパイルされたコードを使った特定の引数でコンパイルされた関数が評価できない場合,代りとして通常のWolfram言語のコードが使用される.
- 通常のWolfram言語のコードを,コンパイルされたコードの中で使用することができる.このWolfram言語コードで得られた結果は,Compileの第3引数で特に指定されない限り近似実数であるとみなされる.
- Compileによってオブジェクトが評価される回数やその順が通常のWolfram言語のコードと異なる場合がある.
- Compileは属性HoldAllを持ち,デフォルトにより,コンパイルされる前に評価を行わない.
- Compile[…,Evaluate[expr]]の設定により,式 expr をコンパイルの前に,シンボル的に評価するように指定できる.
- 使用可能なオプション
-
CompilationOptions Automatic コンパイルのプロセスに関するオプション CompilationTarget $CompilationTarget コード生成でターゲットとするランタイム Parallelization Automatic コンパイルされた関数の実行の際の並列制御 RuntimeAttributes {} コンパイルされた関数の評価属性 RuntimeOptions Automatic コンパイルされた関数のランタイムオプション
例題
すべて開くすべて閉じる例 (1)
オプション (9)
CompilationOptions (1)
デフォルト設定のAutomaticでは,同じ結果を複数回評価することを避けてより効率的なコードを生成する:
CompilationTarget (2)
Parallelization (2)
コンパイルされたリスト可能な関数はスレッドを使って並列実行できる:
一般に,使用するスレッド数の決定には$ProcessorCountが使われる:
RuntimeAttributes (3)
引数に入力指定にマッチしないリストが含まれていると,入力は引数に関数を縫い込む:
分岐がある場合,リスト可能性は下に示してあるようにFunctionを使って関数を定義する必要がある:
コンパイルされたリスト可能な関数は同じことをはるかに速く行う:
コンパイルされたリスト可能な関数は並列実行することで,マルチコアのマシンでさらに速く実行することができる:
リスト可能属性を使用すると一般にCompiledFunctionを何度も呼び出すよりも速くなる:
考えられる問題 (1)
テキスト
Wolfram Research (1991), Compile, Wolfram言語関数, https://reference.wolfram.com/language/ref/Compile.html (2010年に更新).
CMS
Wolfram Language. 1991. "Compile." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2010. https://reference.wolfram.com/language/ref/Compile.html.
APA
Wolfram Language. (1991). Compile. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Compile.html