numexpr 是否支持特殊的贝塞尔函数?

Does numexpr support special bessel functions?

我需要在大约一千万点评估 BesselK 函数。我知道 scipy.special 支持此作为 scipy.special.kv(n, x),但我想要更快的评估以及内存效率评估。理想情况下 numexpr 会很好,我尝试了 numexpr.evaluate("kv(n, x)") 以及 numexpr.evaluate("besselk(n,x)") 但都没有用。有谁知道 numexpr 中 BesselK 的确切命令?

numexpr 文档列出了支持的函数,遗憾的是,Bessel 函数不在其中。

http://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html

您可以尝试寻找替代实现,例如来自 GSL 或 boost,但坦率地说,我怀疑速度差异是否会是微不足道的,如果有的话。

可能相关的是避免在 python 侧的点上循环。要么只使用 scipy.special.kv 的数组值参数,要么使用 Cython 并在 Cython 中使用循环的 cython_special 版本。