私は 'complex_to_real'変換をしたい、それはIFFTを意味します。私は後で使うために変換の入力を保存する必要があることに気づきました。そのため、フラグ "dft"のプランに "PRESERVE_INPUT"を追加します。dft_c2r_2dとFFTW_PRESERVE_INPUTの割り当てメモリエラー
コンパイル時に問題が発生したら、「dbgmalloc.c」に移動します。つまり、割り当てメモリの問題であるはずですが、何も変更せずに新しいフラグそれは適切に働いた。
ヒントを教えてもらえますか?
// IFFT (U1,U2 --> u1,u2)
//----IFFT-----
double *u1 = (double*) malloc(sizeof(double)*N_fft);
double *u2 = (double*) malloc(sizeof(double)*N_fft);
fftw_plan p3;
fftw_plan p4;
p3 = fftw_plan_dft_c2r_2d(alto, ancho, U1, u1, FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
p4 = fftw_plan_dft_c2r_2d(alto, ancho, U2, u2, FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
fftw_execute(p3);
fftw_execute(p4);
fftw_destroy_plan(p3);
fftw_destroy_plan(p4);
よろしく
アントニオ
'malloc'ではなく' fftw_malloc'を使用してください。 –
お返事ありがとうございます。ポインタ 'u1'と 'u2'は出力用です。そのため、mallocを使用しています。これは、fftw_mallocを使用するベクトルU1とU2に対して、 'fftw_preserve_input'を追加するまで動作するためです。 – Antonio