我想知道是否有可能强制pyFFTW(FFTW 周围的包装器)输入向量在前向 r2c 变换期间保留。
至少在原始 FFTW中,FFTW_PRESERVE_INPUT似乎是一个默认选项(在此处查看算法限制标志:http ://www.fftw.org/doc/Planner-Flags.html )
使用 pyFFTW 的FFTW.__call__()可以传递多个标志,但此处仅列出“FFTW_DESTROY_INPUT” : http ://hgomersall.github.io/pyFFTW/pyfftw/pyfftw.html#pyfftw.FFTW
可能这不仅仅是文档中的失误,因为在源代码中,在文件builders/builders.py中有一个有点可怕的声明(第 166 行):
overwrite_input:输入数组是否可以在转换过程中被覆盖。
此外,在函数_Xfftn定义中的文件builders/_utils.py中的代码中,仅存在 destory 标志:
if overwrite_input:
flags.append('FFTW_DESTROY_INPUT')
最终的问题是:知道 FFTW_PRESERVE_INPUT 不能与 pyFFTW 一起传递,我至少可以依靠在原始 FFTW 中这个标志 FFTW_PRESERVE_INPUT 是默认的事实吗?回想一下上面引用的评论:“是否可以覆盖输入数组” pyFFTW 包装器的作者是否知道更多内容并且默认的 FFTW_PRESERVE_INPUT 不起作用?
$ rpm -q fftw
fftw-3.3.4-6.fc23.x86_64
>>> pyfftw.__version__
'0.10.1