В настоящее время я работаю с библиотекой FFTW2 (Fastest Fourier Transform на Западе), а после написания успешной процедуры в Fortran я перехожу к C. Однако у меня есть некоторые проблема с назначением данных, когда я пытаюсь ввести данные для преобразования (т. е. значения sin (x)). В настоящее время мой код:Проблема с процедурой FFTW2 в C
#include <stdio.h>
#include <fftw.h>
#include <math.h>
#include <complex.h>
void compute_fft(){
int i;
const int n[8];
fftw_complex in[8];
fftwnd_plan p;
in[0]->re = 0;
in[1]->re = (sqrt(2)/2);
in[2]->re = 1;
in[3]->re = (sqrt(2)/2);
in[4]->re = 0;
in[5]->re = -(sqrt(2)/2);
in[6]->re = -1;
in[7]->re = -(sqrt(2)/2);
for(i = 0; i < 8; i++){
(in[i])->im = 0;
}
p = fftwnd_create_plan(8, n, FFTW_FORWARD, FFTW_ESIMATE | FFTW_IN_PLACE);
fftwnd_one(p, &in[0], NULL);
fftwnd_destroy_plan(p);
printf("Sin\n");
for(i = 0; i < 8; i++){
printf("%d\n", n[i]);
}
}
Я использую эту http://fftw.org/fftw2_doc/ ссылку для документации/учебных целей, и в настоящее время моя ошибка «неверный тип аргумента а-> а (у afftw_complexa)», и " а символы с обеих сторон -> и fftw_complex имеют карат над ними. Я использую в основном тот же шаблон, который работал, когда я писал это в Fortran, и, похоже, я следую этому учебному пособию, на самом деле это просто назначение, которое я использую для синтаксиса. Для записи компилятор, который я использую, - nvcc, если это имеет значение (я ранее пробовал gcc). Если кто-нибудь здесь использует все FFTW2 в C раньше, не могли бы вы исправить мою ошибку? Спасибо!
Возможный дубликат [FFTW Segfault (вероятный простой ответ)] (http://stackoverflow.com/questions/6026805/fftw-segfault-likely-simple-answer) –