我正在尝试使用 cython 进行复数计算。
在示例代码中,我想计算复数的复指数函数。问题是我不知道如何将我的整数乘以虚数单位。
在执行 cython 时,乘以 python 的虚数单位 1.0j 会引发错误。

这是我的代码:

cdef extern from "math.h":
    double complex cexp(double complex)

def testfunction():
    cdef double n
    n=3
    cdef double complex res
    res=cexp(n*1.0j)
    return res

这是错误消息:

最佳答案

首先,尝试报告编译的完整堆栈跟踪。在我的机器上,我得到了一个非常有帮助的:



事实证明您包含了错误的标题。 cexp<complex.h> 中声明,参见 docs

只需将您的代码更改为

cdef extern from "complex.h":
    double complex cexp(double complex)

你会没事的。

关于cython - 使用 Cython 进行复值计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27906862/

10-13 05:22