2d fft now uses kiss_fft_stride to avoid buffer copies.

This commit is contained in:
Mark Borgerding
2003-12-29 21:07:19 +00:00
parent 4552a14801
commit 10a4a5c46b
4 changed files with 64 additions and 32 deletions

View File

@ -363,31 +363,3 @@ void kiss_fft(const void * cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout)
kiss_fft_stride(cfg,fin,fout,1);
}
void test_stride()
{
#define SKIP_FACTOR 7
#define FFT_SIZE 1800
void *cfg;
kiss_fft_cpx buf1in[FFT_SIZE],buf1out[FFT_SIZE];
kiss_fft_cpx buf2in[SKIP_FACTOR*FFT_SIZE],buf2out[FFT_SIZE];
int i;
memset(buf2in,0,sizeof(buf2in));
for (i=0;i<FFT_SIZE;++i) {
buf1in[i].r = rand();
buf1in[i].i = rand();
buf2in[SKIP_FACTOR*i] = buf1in[i];
}
cfg= kiss_fft_alloc(FFT_SIZE,0,0,0);
kiss_fft(cfg,buf1in,buf1out);
kiss_fft_stride(cfg,buf2in,buf2out,SKIP_FACTOR);
if ( 0==memcmp(buf1out,buf2out,sizeof(buf1out) ) )
printf("kiss_fft_stride is working for stride = %d\n",SKIP_FACTOR);
else{
printf("kiss_fft_stride not working for stride =%d\n",SKIP_FACTOR);
for (i=0;i<FFT_SIZE;++i) {
fprintf(stderr,"good[%d]=",i);pcpx(buf1out+i);
fprintf(stderr,"bad [%d]=",i);pcpx(buf2out+i);
}
}
}