Python:scipycimport和Cython

Python:scipycimport和Cython,python,scipy,cython,Python,Scipy,Cython,我找了很长时间,最后决定把这个问题放在这里,因为它似乎缺少关于那个特殊案例的信息。 我的问题是: 我的代码有点慢,所以我转向了Cython来加速。它使用了scipy.special jv功能,我发现有一个与Cython兼容的版本。 参考: 但是当我尝试使用这个函数时,我无法使它工作。这里是一个最小的代码 from scipy.special.cython_special cimport jv as jvCython cdef complex128_t[:] A = jvCython(1,2)

我找了很长时间,最后决定把这个问题放在这里,因为它似乎缺少关于那个特殊案例的信息。 我的问题是: 我的代码有点慢,所以我转向了Cython来加速。它使用了scipy.special jv功能,我发现有一个与Cython兼容的版本。 参考:

但是当我尝试使用这个函数时,我无法使它工作。这里是一个最小的代码

from scipy.special.cython_special cimport jv as jvCython

cdef complex128_t[:] A = jvCython(1,2)
我得到错误:融合类型的使用无效,类型无法专门化

看起来ctype定义在某一点上有问题,但即使我使用链接中显示的签名,我也会得到相同的错误

有人能给我解释一下什么是熔合型,为什么不工作


非常感谢

我想当你通过两个
int
时,很难猜测你是想要
double
版本还是
double complex
版本。如果你这样做,它可能会起作用

a = jv(1., 2.)
(即,添加小数点,以便识别输入是双精度的)。如果您想要复杂版本,则使用第二个数字
2.+0.j

输出是一个标量,而不是memoryview,因此我不知道您为什么会这样键入
a
,但这是另一个问题