【发布时间】:2015-05-12 18:30:55
【问题描述】:
(来自 cython 用户的交叉发布)
我正在尝试将 FFTW 用于某些 Cython 代码。我在尝试将指向 fftw_complex(typedef 到 double[2])的指针转换为复杂的 memoryview 时遇到问题,即(最小示例)
cdef extern from "fftw3.h":
ctypedef double fftw_complex[2]
fftw_complex* fftw_alloc_complex(int N)
cdef foo(complex[::1] input):
complex_ny = fftw_alloc_complex(input.size)
(<complex[:self.ny]>complex_ny)[:] = input
# actual call to FFTW follows
强制转换失败:“hmm.pyx:8:34: Pointer base type does not match cython.array base type”(也许 Cython 无法知道 double[2] 可以转换为复杂但是...我还能做什么?)
PS:如果有人有直接从 Cython 使用 pyFFTW 包装器的经验,我也很感兴趣。
提前致谢。
【问题讨论】: