首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyFFTW允许保留输入数组吗?

pyFFTW允许保留输入数组吗?
EN

Stack Overflow用户
提问于 2016-05-30 16:11:19
回答 1查看 261关注 0票数 1

我想知道是否有可能强制执行pyFFTW (FFTW的包装器),即在前向r2c转换期间保存的输入向量。

至少在最初的FFTW FFTW_PRESERVE_INPUT中,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.py中有一个有点可怕的语句(第166行):

overwrite_input:在转换过程中是否可以覆盖输入数组。

在函数_Xfftn的定义中的文件生成器/_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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 08:50:24

是的,除非明确请求,否则将使用所有默认值--这意味着除非您请求DESTROY_INPUT,否则PRESERVE_INPUT是隐式的,除非您有多维c2r转换,在这种情况下,输入将被销毁(这将记录在您链接到的文档的Schemes部分以及您链接到的FFTW文档中)。

如果您发现输入被销毁,或者不是显式请求,或者不是上述转换之一,这是一个错误,应该报告。

interfaces代码生成各种副本,以确保在必要时保留转换。

我记得,关于保护数组的规划阶段要宽松得多--保护数组的最简单方法是使用builders接口,除非明确建议,否则它总是存储原始数组并将其复制回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37529935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档