X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=fourier%2Ffourier.c;h=89f42c24ce8b132c9d22cbb23646dad95eeac827;hb=HEAD;hp=4f395f5f53d242f841f3f1c620ebcc6fa7ce88db;hpb=515c7fc6da820714686f9bfc87ccb9743c57d692;p=my-code%2Fapi.git diff --git a/fourier/fourier.c b/fourier/fourier.c index 4f395f5..89f42c2 100644 --- a/fourier/fourier.c +++ b/fourier/fourier.c @@ -183,25 +183,23 @@ int fourier_dft_2d(t_fourier *fourier) { if(fourier->type&BWD) return F_NOT_SUPPORTED; /* stupid way */ - - // for(v=0;voutfd,"[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;yftdata[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); - // } - // } + /* + for(v=0;vftdata[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 @@ -221,22 +219,23 @@ int fourier_dft_2d(t_fourier *fourier) { off_f+=X; } // dft on index 2 of 'index 1 transformed data' - off_f=0; for(x=0;xoutfd,"[fourier] (u=%d,v=%d)\n",v,x); + off_r=x; for(y=0;yftdata[off_f+v].r+=(cos(arg)*data[off_r].r-sin(arg)*data[off_r].i); - fourier->ftdata[off_f+v].r+=(sin(arg)*data[off_r].r+cos(arg)*data[off_r].i); + fourier->ftdata[off_f].r+=(cos(arg)*data[off_r].r-sin(arg)*data[off_r].i); + fourier->ftdata[off_f].r+=(sin(arg)*data[off_r].r+cos(arg)*data[off_r].i); + off_r+=X; } - fourier->ftdata[off_f+v].r/=Y; - fourier->ftdata[off_f+v].i/=Y; + fourier->ftdata[off_f].r/=Y; + fourier->ftdata[off_f].i/=Y; + off_f+=X; } - off_f+=Y; } - + free(data); return F_SUCCESS;