12 Real optimized version can save about 45% cpu time vs. complex fft of a real seq.
18 struct kiss_fftr_state
{
19 kiss_fft_cfg substate
;
20 kiss_fft_cpx
* tmpbuf
;
21 kiss_fft_cpx
* super_twiddles
;
26 typedef struct kiss_fftr_state
*kiss_fftr_cfg
;
29 kiss_fftr_cfg
kiss_fftr_alloc(int nfft
,int inverse_fft
,void * mem
, size_t * lenmem
);
33 If you don't care to allocate space, use mem = lenmem = NULL
37 void kiss_fftr(kiss_fftr_cfg cfg
,const kiss_fft_scalar
*timedata
,kiss_fft_cpx
*freqdata
);
39 input timedata has nfft scalar points
40 output freqdata has nfft/2+1 complex points
43 void kiss_fftri(kiss_fftr_cfg cfg
,const kiss_fft_cpx
*freqdata
,kiss_fft_scalar
*timedata
);
45 input freqdata has nfft/2+1 complex points
46 output timedata has nfft scalar points
49 #define kiss_fftr_free free