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},}]
假定 expr 中匹配 pi 的子表达式的类型与 pti 匹配.

更多信息和选项更多信息和选项

  • Compile 处理的类型是:
  • _Integer机器整数
    _Real机器精度的近似实数(缺省)
    _Complex机器精度近似复数
    True | False逻辑变量
  • 作为经过编译的函数的输入给出的嵌套列表必须是全数值数组.
  • Compile 处理数值函数、矩阵运算、程序式编程结构、列表操作函数以及函数式编程结构等等.
  • Compile 生成 CompiledFunction 对象.
  • 经过编译的代码处理数值精度和局部变量的方式与普通的 Wolfram 语言代码不同.
  • 如果不能用经过编译的代码对有特殊参数的经过编译的函数求值,则使用普通的 Wolfram 语言代码代替.
  • 普通 Wolfram 语言代码可以从经过编译的代码内部调用. 由 Wolfram 语言代码获得的结果假设是近似实数除非特别指明,否则由 Compile 的第三个参数指定.
  • Compile 计算的对象的次数和次序可能和普通的 Wolfram 语言代码不同.
  • Compile 有属性 HoldAll,在默认情况下在编译前并不进行计算.
  • 可以使用 Compile[,Evaluate[expr]] 指定 expr 应当在编译前进行符号性计算.
  • 可以给出下列选项:
  • CompilationOptionsAutomatic编译过程的选项
    CompilationTarget$CompilationTarget代码产生的目标运行时间
    ParallelizationAutomatic经过编译的函数执行的并行控制
    RuntimeAttributes{}经过编译的函数的计算属性
    RuntimeOptionsAutomatic经过编译的函数的运行时间选项

范例范例打开所有单元关闭所有单元

基本范例  (1)基本范例  (1)

对于机器实数 x,编译函数 Sin[x]+x^2-1/(1-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]=
1991年引入
(2.0)
| 2010年更新
(8.0)