我注意到它RcppArmadillo支持 FFT 和 2-D FFT。ifft2不幸的是, ( RcppArmadillo) 和 R 的原生数据与我的数据之间存在显着差异mvfft(..., inverse = TRUE)。这在第零个容器中特别大(这在我的应用程序中非常重要)。差异不是标量倍数。我找不到任何文档或解释这些偏差,特别是在第零个容器中。
我已经专门针对函数调用调试了该问题ifft(arma::cx_mat input)。除非存在不可预见的内存管理问题,否则这就是罪魁祸首。
示例:ifft2结果(1 列前 5 个条目):
[1] 0.513297156-0.423498014i -0.129250939+0.300225299i
0.039722228-0.093052563i -0.007956237+0.018643534i 0.001181177-0.002768473i
Run Code Online (Sandbox Code Playgroud)
mvfft逆结果(1 列前 5 个条目):
[1] 0.278131988-0.633838170i -0.195699114+0.445980950i
0.060070320-0.136894940i -0.011924932+0.027175865i 0.001754788-0.003999007i
Run Code Online (Sandbox Code Playgroud)
问题
RcppArmadillo?重现性 - 下面我尽可能地浓缩了问题并重现了问题。 更新了最少的代码 Rcpp 代码:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// …Run Code Online (Sandbox Code Playgroud)