From e9095a161cd086ec821a8088d7280f952f27a5b6 Mon Sep 17 00:00:00 2001 From: Mark Borgerding Date: Fri, 7 Nov 2003 02:39:49 +0000 Subject: [PATCH] generic butterfly slightly slower -- hmmm --- kiss_fft.c | 53 ++++++++++++++++++++++++++++++++------------------ test/Makefile | 4 ++-- tools/Makefile | 4 ++-- 3 files changed, 38 insertions(+), 23 deletions(-) diff --git a/kiss_fft.c b/kiss_fft.c index 132ed2a..d9232ca 100644 --- a/kiss_fft.c +++ b/kiss_fft.c @@ -287,31 +287,44 @@ void bfly_generic( int p ) { - int u,k,q1,q; + int u,q,d; kiss_fft_cpx * scratch = st->scratch; - kiss_fft_cpx * twiddles = st->twiddles; - kiss_fft_cpx t; - int Norig = st->nfft; + kiss_fft_cpx * tw = st->twiddles; + kiss_fft_cpx tlo,t1,t2,t3,t4; for ( u=0; u=Norig) twidx-=Norig; - C_MUL(t,scratch[q] , twiddles[twidx] ); - C_ADDTO( Fout[ k ] ,t); + for ( q=1; q

= st->nfft) + twidx -= st->nfft; + + t3.r = scratch[q].r * tlo.r; + t3.i = scratch[q].r * tlo.i; + t4.r = scratch[q].i * tlo.i; + t4.i = - scratch[q].i * tlo.r; + + t1.r = t3.r - t4.r; + t1.i = t3.i - t4.i; + + t2.r = t3.r + t4.r; + t2.i = - (t3.i + t4.i); + + C_ADDTO( Fout[ m*d+u ] ,t1); + C_ADDTO( Fout[ m*(p-d)+u ] ,t2); } - k += m; } } } @@ -338,7 +351,9 @@ void fft_work( switch (p) { case 2: bfly2(Fout,fstride,st,m); break; +#if 0 case 3: bfly3(Fout,fstride,st,m); break; +#endif case 4: bfly4(Fout,fstride,st,m); break; case 5: bfly5(Fout,fstride,st,m); break; default: bfly_generic(Fout,fstride,st,m,p); break; diff --git a/test/Makefile b/test/Makefile index f7952d7..1b75af6 100644 --- a/test/Makefile +++ b/test/Makefile @@ -42,9 +42,9 @@ POW3=243 729 2187 POW5=25 125 625 3125 mtime: all bm_fftw - @for n in $(NFFT) $(POW2) $(POW3) $(POW5) ;do \ + for n in $(POW3) ;do \ ./$(BENCH) -x $(NUMFFTS) -n $$n;\ - [ -x ./bm_fftw ] && ./bm_fftw -x $(NUMFFTS) -n $$n ; \ + [ "$(DATATYPE)" == "double" ] && [ -x ./bm_fftw ] && ./bm_fftw -x $(NUMFFTS) -n $$n || true ; \ done snr: all diff --git a/tools/Makefile b/tools/Makefile index f7952d7..1b75af6 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -42,9 +42,9 @@ POW3=243 729 2187 POW5=25 125 625 3125 mtime: all bm_fftw - @for n in $(NFFT) $(POW2) $(POW3) $(POW5) ;do \ + for n in $(POW3) ;do \ ./$(BENCH) -x $(NUMFFTS) -n $$n;\ - [ -x ./bm_fftw ] && ./bm_fftw -x $(NUMFFTS) -n $$n ; \ + [ "$(DATATYPE)" == "double" ] && [ -x ./bm_fftw ] && ./bm_fftw -x $(NUMFFTS) -n $$n || true ; \ done snr: all