我有以下代码:fftwf_execute_dft_c2r写入输入缓冲器
auto in = std::array<std::complex<float>, 60>();
in[0] = 10000.0f;
auto out = std::array<float, 100>();
auto plan = fftwf_plan_dft_c2r_2d(10, 10, reinterpret_cast<fftwf_complex*>(in.data()), out.data(), FFTW_ESTIMATE | FFTW_UNALIGNED);
fftwf_execute_dft_c2r(plan, reinterpret_cast<fftwf_complex*>(in.data()), out.data());
当我运行它,我的in
阵列被写入(具体地,第一列被设置为10000.0)。这是正常的吗?我可以避免编写in
阵列吗?
见[文档】(http://www.fftw.org/fftw3_doc/Planner-Flags.html),用于'FFTW_PRESERVE_INPUT' – Praetorian
我明白了。没有'FFTW_PRESERVE_INPUT'二维C2R :( 可以不选你的答案,但因为它是一个评论,这也帮助我。 – racanu
随意写你自己的答案,我懒得组成之一,这是为什么我留下了评论 – Praetorian