У меня проблема с использованием fftw (3.3).
Что я делаю, так это сначала создаю план:
int n = 100;
vector<double> f,step;
vector<complex<double> > F;
fftw_plan p;
f.resize(n);
F.resize(n);
p = fftw_plan_dft_r2c_1d(n,&f[0], &F[0],FFTW_ESTIMATE);
Тогда я получаю ошибку:
main.cpp:19:58: error: cannot convert ‘std::complex<double>*’ to ‘double (*)[2]’ for argument ‘3’ to ‘fftw_plan_s* fftw_plan_dft_r2c_1d(int, double*, double (*)[2], unsigned int)’
Насколько я понял, вместо fftw_complex и вектора можно использовать стандартный комплекс.
Я уверен, что я упустил простой момент здесь. Так что любая помощь будет принята с благодарностью.
магу_
std::complex<double>
не отличается (по памяти) в C++11, поэтому вы можете просто сделатьreinterpret_cast
для элемента. - person filmor   schedule 11.04.2013