fftw — использование комплексных чисел в переполнении стека

У меня проблема с использованием 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 и vector.

Я уверен, что здесь я упускаю простой момент. Так что любая помощь будет принята с благодарностью.

magu_

1

Решение

@ Фильмор сработал. Для полноты правильной строки кода будет:

 p = fftw_plan_dft_r2c_1d(n, &f[0], reinterpret_cast<fftw_complex*>(&F[0]), FFTW_ESTIMATE);

Более подробно описано Вот.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]