Definition at line 67 of file kiss_fftr.c.
68{
69
70 int k,ncfft;
72
73 if ( st->substate->inverse) {
74 fprintf(stderr,"kiss fft usage error: improper alloc\n");
75 exit(1);
76 }
77
78 ncfft = st->substate->nfft;
79
80
82
83
84
85
86
87
88
89
90
91
92 tdc.
r = st->tmpbuf[0].r;
93 tdc.
i = st->tmpbuf[0].i;
97 freqdata[0].
r = tdc.
r + tdc.
i;
98 freqdata[ncfft].
r = tdc.
r - tdc.
i;
99#ifdef USE_SIMD
100 freqdata[ncfft].
i = freqdata[0].
i = _mm_set1_ps(0);
101#else
102 freqdata[ncfft].
i = freqdata[0].
i = 0;
103#endif
104
105 for ( k=1;k <= ncfft/2 ; ++k ) {
106 fpk = st->tmpbuf[k];
107 fpnk.
r = st->tmpbuf[ncfft-k].r;
108 fpnk.
i = - st->tmpbuf[ncfft-k].i;
111
112 C_ADD( f1k, fpk , fpnk );
113 C_SUB( f2k, fpk , fpnk );
114 C_MUL( tw , f2k , st->super_twiddles[k-1]);
115
120 }
121}
#define CHECK_OVERFLOW_OP(a, op, b)
void kiss_fft(kiss_fft_cfg cfg, const kiss_fft_cpx *fin, kiss_fft_cpx *fout)
References C_ADD, C_FIXDIV, C_MUL, C_SUB, CHECK_OVERFLOW_OP, HALF_OF, kiss_fft_cpx::i, kiss_fft_state::inverse, kiss_fft(), kiss_fft_scalar, kiss_fft_state::nfft, kiss_fft_cpx::r, kiss_fftr_state::substate, kiss_fftr_state::super_twiddles, and kiss_fftr_state::tmpbuf.
Referenced by _generate_kernel(), and fl::FFTContext::fft_unit_test().