我有一些代码用FFTW执行正向和反向FFT。我正在努力移植一些代码以使用NVIDIA CUFFT。
为了验证我的基于CUFFT的部分是否正常工作,我想将CUFFT输出与参考FFTW输出区分开来用于正向FFT。实现此差异的一个挑战是两个库中的complex
数据结构:CUFFT具有cufftComplex
,而FFTW具有fftwf_complex
。
cufftComplex
和fftwf_complex
是否可互换(例如,我可以将CUFFT数据类型转换为与FFTW兼容)吗?或者,我是否需要在两种数据类型之间进行转换?
答案 0 :(得分:2)
在这两种情况下,底层数据结构只是一对浮点数。您应该能够使用C ++ reinterpret_cast
机制将指针转换为cufftComplex
到fftwf_complex
的主机数组,反之亦然。