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:
Mark Borgerding 2003-10-11 22:45:35 +00:00
parent 911d29d139
commit f93a0258df

View File

@ -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;
}
}
}