+ /* stupid way */
+
+ // for(v=0;v<Y;v++) {
+ // off_f=v*X;
+ // for(u=0;u<X;u++) {
+ // dprintf(fourier->outfd,"[fourier] (u=%d,v=%d)\n",u,v);
+ // fourier->ftdata[off_f+u].r=0;
+ // fourier->ftdata[off_f+u].i=0;
+ // for(y=0;y<Y;y++) {
+ // off_r=y*X;
+ // for(x=0;x<X;x++) {
+ // arg=-2.0*M_PI*((1.0*u*x)/X+(1.0*v*y)/Y);
+ // fourier->ftdata[off_f+u].r+=(cos(arg)*fourier->data[off_r+x].r-sin(arg)*fourier->data[off_r+x].i);
+ // fourier->ftdata[off_f+u].i+=(sin(arg)*fourier->data[off_r+x].r+cos(arg)*fourier->data[off_r+x].i);
+ // }
+ // }
+ // fourier->ftdata[off_f+u].r/=(X*Y);
+ // fourier->ftdata[off_f+u].i/=(X*Y);
+ // }
+ // }
+
+ /* the more clever way ... */
+ // dft on index 1
+ off_f=0;
+ for(y=0;y<Y;y++) {