3

当我在 python 中使用 numba 时,我知道如果我尝试 jit 编译在其循环中具有任意精度浮点数(mpmath)的函数,它将无法在 nopython 模式下编译,并且它的速度将与普通 python 版本相同。我的问题是关于 Julia package DifferentialEquations.jl。在他们的主页上,他们说它支持 BigFloats 和 ArbFloats。我知道这个包还使用了 julia 默认情况下 jit 编译的循环。所以我的问题是,DifferentialEquations.jl当我传递使用 BigFloat 数字的微分方程时,函数是否是 jit 编译的。

4

1 回答 1

3

是的,它们是通过功能自动专业化的。在 Julia 中,函数将在 JIT 编译时自动专门化具体类型。对于所有数字都是如此,事实上,即使像 Float64 这样的东西也只是 Julia 本身定义的类型,并使用这些相同的机制。这篇博文更详细地描述了这种模式

于 2018-05-29T20:04:28.533 回答