FastLED 3.9.15
Loading...
Searching...
No Matches

◆ kf_bfly3()

static void kf_bfly3 ( kiss_fft_cpx * Fout,
const size_t fstride,
const kiss_fft_cfg st,
size_t m )
static

Definition at line 86 of file kiss_fft.c.

92{
93 size_t k=m;
94 const size_t m2 = 2*m;
95 kiss_fft_cpx *tw1,*tw2;
96 kiss_fft_cpx scratch[5];
97 kiss_fft_cpx epi3;
98 epi3 = st->twiddles[fstride*m];
99
100 tw1=tw2=st->twiddles;
101
102 do{
103 C_FIXDIV(*Fout,3); C_FIXDIV(Fout[m],3); C_FIXDIV(Fout[m2],3);
104
105 C_MUL(scratch[1],Fout[m] , *tw1);
106 C_MUL(scratch[2],Fout[m2] , *tw2);
107
108 C_ADD(scratch[3],scratch[1],scratch[2]);
109 C_SUB(scratch[0],scratch[1],scratch[2]);
110 tw1 += fstride;
111 tw2 += fstride*2;
112
113 Fout[m].r = Fout->r - HALF_OF(scratch[3].r);
114 Fout[m].i = Fout->i - HALF_OF(scratch[3].i);
115
116 C_MULBYSCALAR( scratch[0] , epi3.i );
117
118 C_ADDTO(*Fout,scratch[3]);
119
120 Fout[m2].r = Fout[m].r + scratch[0].i;
121 Fout[m2].i = Fout[m].i - scratch[0].r;
122
123 Fout[m].r -= scratch[0].i;
124 Fout[m].i += scratch[0].r;
125
126 ++Fout;
127 }while(--k);
128}
#define C_FIXDIV(c, div)
#define HALF_OF(x)
#define C_ADD(res, a, b)
#define C_ADDTO(res, a)
#define C_SUB(res, a, b)
#define C_MULBYSCALAR(c, s)
#define C_MUL(m, a, b)
kiss_fft_cpx twiddles[1]
kiss_fft_scalar r
Definition kiss_fft.h:73
kiss_fft_scalar i
Definition kiss_fft.h:74

References C_ADD, C_ADDTO, C_FIXDIV, C_MUL, C_MULBYSCALAR, C_SUB, HALF_OF, kiss_fft_cpx::i, kiss_fft_cpx::r, and kiss_fft_state::twiddles.

Referenced by kf_work().

+ Here is the caller graph for this function: