248{
250 const int p=*factors++;
251 const int m=*factors++;
253
254#ifdef _OPENMP
255
256
257 if (fstride==1 && p<=5)
258 {
259 int k;
260
261
262# pragma omp parallel for
263 for (k=0;k<p;++k)
264 kf_work( Fout +k*m, f+ fstride*in_stride*k,fstride*p,in_stride,factors,st);
265
266
267 switch (p) {
268 case 2:
kf_bfly2(Fout,fstride,st,m);
break;
269 case 3:
kf_bfly3(Fout,fstride,st,m);
break;
270 case 4:
kf_bfly4(Fout,fstride,st,m);
break;
271 case 5:
kf_bfly5(Fout,fstride,st,m);
break;
273 }
274 return;
275 }
276#endif
277
278 if (m==1) {
279 do{
280 *Fout = *f;
281 f += fstride*in_stride;
282 }while(++Fout != Fout_end );
283 }else{
284 do{
285
286
287
288
289
290
291
292
293
294 kf_work( Fout , f, fstride*p, in_stride, factors,st);
295 f += fstride*in_stride;
296 }while( (Fout += m) != Fout_end );
297 }
298
299 Fout=Fout_beg;
300
301
302 switch (p) {
303 case 2:
kf_bfly2(Fout,fstride,st,m);
break;
304 case 3:
kf_bfly3(Fout,fstride,st,m);
break;
305 case 4:
kf_bfly4(Fout,fstride,st,m);
break;
306 case 5:
kf_bfly5(Fout,fstride,st,m);
break;
308 }
309}
static void kf_bfly4(kiss_fft_cpx *Fout, const size_t fstride, const kiss_fft_cfg st, const size_t m) FL_NOEXCEPT
static void kf_bfly5(kiss_fft_cpx *Fout, const size_t fstride, const kiss_fft_cfg st, int m) FL_NOEXCEPT
static void kf_bfly3(kiss_fft_cpx *Fout, const size_t fstride, const kiss_fft_cfg st, size_t m) FL_NOEXCEPT
static void kf_bfly2(kiss_fft_cpx *Fout, const size_t fstride, const kiss_fft_cfg st, int m) FL_NOEXCEPT
static void kf_work(kiss_fft_cpx *Fout, const kiss_fft_cpx *f, const size_t fstride, int in_stride, int *factors, const kiss_fft_cfg st) FL_NOEXCEPT
static void kf_bfly_generic(kiss_fft_cpx *Fout, const size_t fstride, const kiss_fft_cfg st, int m, int p) FL_NOEXCEPT