mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-05-27 21:20:27 -04:00
./bm_kiss_float -x 10000 -n 1800
improved from cputime=1.540 to cputime=1.490
This commit is contained in:
parent
2d66a61546
commit
8e00ca1877
17
kiss_fft.c
17
kiss_fft.c
@ -240,6 +240,7 @@ static void kf_bfly_generic(
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
void kf_work(
|
||||
kiss_fft_cpx * Fout,
|
||||
const kiss_fft_cpx * f,
|
||||
@ -249,18 +250,22 @@ void kf_work(
|
||||
const kiss_fft_state * st
|
||||
)
|
||||
{
|
||||
int m,p,q;
|
||||
p=*factors++;
|
||||
m=*factors++;
|
||||
kiss_fft_cpx * tmpFout=Fout;
|
||||
int m,p,r;
|
||||
p=*factors++; /* the radix */
|
||||
m=*factors++; /* stage's fft length/p */
|
||||
|
||||
for (q=0;q<p;++q) {
|
||||
for (r=0;r<p;++r) {
|
||||
if (m==1)
|
||||
Fout[q] = *f;
|
||||
*Fout = *f;
|
||||
else
|
||||
kf_work( Fout + m*q, f, fstride*p, in_stride, factors,st);
|
||||
kf_work( Fout , f, fstride*p, in_stride, factors,st);
|
||||
Fout += m;
|
||||
f += fstride*in_stride;
|
||||
}
|
||||
|
||||
Fout=tmpFout;
|
||||
|
||||
switch (p) {
|
||||
case 2: kf_bfly2(Fout,fstride,st,m); break;
|
||||
case 3: kf_bfly3(Fout,fstride,st,m); break;
|
||||
|
Loading…
Reference in New Issue
Block a user