mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-06-04 01:28:23 -04:00
./bm_kiss_float -x 40000 -n 1800
improved from cputime=6.010 to cputime=5.940
This commit is contained in:
parent
8e00ca1877
commit
210f219648
14
kiss_fft.c
14
kiss_fft.c
@ -250,21 +250,25 @@ void kf_work(
|
|||||||
const kiss_fft_state * st
|
const kiss_fft_state * st
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
kiss_fft_cpx * tmpFout=Fout;
|
kiss_fft_cpx * Fout_beg=Fout;
|
||||||
int m,p,r;
|
kiss_fft_cpx * Fout_end;
|
||||||
|
|
||||||
|
int m,p;
|
||||||
|
|
||||||
p=*factors++; /* the radix */
|
p=*factors++; /* the radix */
|
||||||
m=*factors++; /* stage's fft length/p */
|
m=*factors++; /* stage's fft length/p */
|
||||||
|
Fout_end = Fout + p*m;
|
||||||
|
|
||||||
for (r=0;r<p;++r) {
|
do{
|
||||||
if (m==1)
|
if (m==1)
|
||||||
*Fout = *f;
|
*Fout = *f;
|
||||||
else
|
else
|
||||||
kf_work( Fout , f, fstride*p, in_stride, factors,st);
|
kf_work( Fout , f, fstride*p, in_stride, factors,st);
|
||||||
Fout += m;
|
Fout += m;
|
||||||
f += fstride*in_stride;
|
f += fstride*in_stride;
|
||||||
}
|
}while(Fout != Fout_end );
|
||||||
|
|
||||||
Fout=tmpFout;
|
Fout=Fout_beg;
|
||||||
|
|
||||||
switch (p) {
|
switch (p) {
|
||||||
case 2: kf_bfly2(Fout,fstride,st,m); break;
|
case 2: kf_bfly2(Fout,fstride,st,m); break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user