mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-05-27 21:20:27 -04:00
Simplified some inner loop calcs
'make test' output: ### testing SNR for 1024 point FFTs #### DOUBLE snr_t2f = 295.34 snr_f2t = 308.77 #### FLOAT snr_t2f = 146.93 snr_f2t = 143.56 #### SHORT snr_t2f = 54.799 snr_f2t = 24.562 #### timing 10000 x 1024 point FFTs #### DOUBLE Elapsed:0:10.69 user:8.71 sys:0.20 #### FLOAT Elapsed:0:04.40 user:3.42 sys:0.11 #### SHORT Elapsed:0:05.62 user:4.77 sys:0.04
This commit is contained in:
parent
911d29d139
commit
f93a0258df
12
kiss_fft.c
12
kiss_fft.c
@ -100,18 +100,19 @@ void fft_work(
|
||||
}
|
||||
|
||||
for ( u=0; u<m; ++u ) {
|
||||
k=u;
|
||||
for ( q1=0 ; q1<p ; ++q1 ) {
|
||||
scratch[q1] = Fout[ k ];
|
||||
#ifdef FIXED_POINT
|
||||
scratch[q1].r = Fout[ u+q1*m ].r>>1;
|
||||
scratch[q1].i = Fout[ u+q1*m ].i>>1;
|
||||
#else
|
||||
scratch[q1] = Fout[ u+q1*m ];
|
||||
scratch[q1].r = Fout[ k ].r>>1;
|
||||
scratch[q1].i = Fout[ k ].i>>1;
|
||||
#endif
|
||||
k += m;
|
||||
}
|
||||
|
||||
k=u;
|
||||
for ( q1=0 ; q1<p ; ++q1 ) {
|
||||
int twidx=0;
|
||||
k=q1*m+u;
|
||||
Fout[ k ] = scratch[0];
|
||||
for (q=1;q<p;++q ) {
|
||||
twidx += fstride * k;
|
||||
@ -121,6 +122,7 @@ void fft_work(
|
||||
Fout[ k ].r += t.r;
|
||||
Fout[ k ].i += t.i;
|
||||
}
|
||||
k += m;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user