Арифметика произвольной точности в JIT-скомпилированных функциях - PullRequest
0 голосов
/ 29 мая 2018

Когда я использую numba внутри python, я знаю, что если я попытаюсь jit-скомпилировать функции, которые имеют произвольные значения с плавающей запятой (mpmath) внутри своих циклов, он не сможет скомпилироваться в режиме nopython, и его скорость будет такой же, как у простой версии Python,У меня вопрос по поводу пакета Юлии DifferentialEquations.jl.На своей главной странице говорят, что он поддерживает BigFloats и ArbFloats.Я понимаю, что этот пакет также использует циклы, которые по умолчанию jit-скомпилированы julia.Поэтому мой вопрос заключается в том, компилируются ли DifferentialEquations.jl функции в jit-формате, когда я передаю дифференциальные уравнения, использующие числа BigFloat.

1 Ответ

0 голосов
/ 29 мая 2018

Да, они через функцию авто-специализации.В Julia функции будут автоматически специализироваться на конкретных типах при JIT-компиляции.Это верно для всех чисел, и на самом деле даже такие вещи, как Float64, являются просто типами, определенными в самой Юлии, и используют те же механизмы. Этот пост в блоге описывает этот шаблон более подробно

...