【发布时间】:2014-01-22 13:51:23
【问题描述】:
在使用 FFTW_ESTIMATE 时是否可以将 NULL 而不是数组传递给 FFTW 计划例程?
FFTW 文档说:
...从技术上讲,FFTW_ESTIMATE 不会触及您的数组...
当然,这只有在使用新数组执行函数link 时才有意义。
【问题讨论】:
在使用 FFTW_ESTIMATE 时是否可以将 NULL 而不是数组传递给 FFTW 计划例程?
FFTW 文档说:
...从技术上讲,FFTW_ESTIMATE 不会触及您的数组...
当然,这只有在使用新数组执行函数link 时才有意义。
【问题讨论】:
创建 FFTW 计划时推荐的方法是在使用数据填充输入数组之前创建计划(因为使用 FFTW_MEASURE 会“触及”您的数据并可能会更改它)。您引用的文档只是说,如果您决定不采用推荐的方法并在创建计划之前将数据存储在输入数组中,那么如果您使用 FFTW_ESTIMATE,一切都应该没问题。
确实,只有在您使用 FFTW_ESTIMATE 以及之后使用有效指针的 fftw_execute_* 时,才使用 NULL 指针才有意义。 FFTW 在创建计划时是否接受 NULL,您可以尝试看看...我同意从逻辑上讲,在计划时不需要它。
【讨论】:
当您创建计划时,它会查看输入和输出是否不同,并相应地调整计划:
如果 in == out,则转换是就地的,输入数组是 覆盖。如果 in != out,则两个数组不能重叠(但 FFTW 不检查这种情况)。
因此,如果您不打算就地转换,则绝对不能传递 2 个 NULLS。反之亦然。
【讨论】: