+ /* copy src to destination, destination is modified in place */
+ memcpy(fourier->ftdata,fourier->data,fourier->data_len[0]*sizeof(t_complex));
+ /* from now on access bit reversed data by revdata[i]->... */
+
+ // for(i=0;i<fourier->log2len[0];i++) {
+
+
+ // }
+
+
+ for(i=0;i<fourier->data_len[0];i++)
+ dprintf(fourier->outfd,"%f %f\n",
+ fourier->ftdata[i].r,fourier->revdata[i]->r);
+
+ return F_NOT_SUPPORTED;
+
+ return F_SUCCESS;
+}
+
+int fourier_dft_1d(t_fourier *fourier) {
+
+ int i,k;
+ double arg;
+
+ if(fourier->type&FWD) {
+ for(k=0;k<fourier->data_len[0];k++) {
+ fourier->ftdata[k].r=0;
+ fourier->ftdata[k].i=0;
+ for(i=0;i<fourier->data_len[0];i++) {
+ /* f(k) = 1/N sum(n=0-N) f(n) exp(-i*k*2*PI*n/N) */
+ arg=-2.0*k*M_PI*i/fourier->data_len[0];
+ fourier->ftdata[k].r+=(cos(arg)*fourier->data[i].r-sin(arg)*fourier->data[i].i);
+ fourier->ftdata[k].i+=(sin(arg)*fourier->data[i].r+cos(arg)*fourier->data[i].i);
+ }
+ fourier->ftdata[k].r/=fourier->data_len[0];
+ fourier->ftdata[k].i/=fourier->data_len[0];
+ }
+ }
+ else {
+ for(k=0;k<fourier->data_len[0];k++) {
+ fourier->data[k].r=0;
+ fourier->data[k].i=0;
+ for(i=0;i<fourier->data_len[0];i++) {
+ arg=2.0*k*M_PI*i/fourier->data_len[0];
+ fourier->data[k].r+=(cos(arg)*fourier->ftdata[i].r-sin(arg)*fourier->ftdata[i].i);
+ fourier->data[k].i+=(sin(arg)*fourier->ftdata[i].r+cos(arg)*fourier->ftdata[i].i);
+ }
+ }