1*28e138c6SAndroid Build Coastguard Worker #ifndef KISS_FTR_H 2*28e138c6SAndroid Build Coastguard Worker #define KISS_FTR_H 3*28e138c6SAndroid Build Coastguard Worker 4*28e138c6SAndroid Build Coastguard Worker #include "kiss_fft.h" 5*28e138c6SAndroid Build Coastguard Worker #ifdef __cplusplus 6*28e138c6SAndroid Build Coastguard Worker extern "C" { 7*28e138c6SAndroid Build Coastguard Worker #endif 8*28e138c6SAndroid Build Coastguard Worker 9*28e138c6SAndroid Build Coastguard Worker 10*28e138c6SAndroid Build Coastguard Worker /* 11*28e138c6SAndroid Build Coastguard Worker 12*28e138c6SAndroid Build Coastguard Worker Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 13*28e138c6SAndroid Build Coastguard Worker 14*28e138c6SAndroid Build Coastguard Worker 15*28e138c6SAndroid Build Coastguard Worker 16*28e138c6SAndroid Build Coastguard Worker */ 17*28e138c6SAndroid Build Coastguard Worker 18*28e138c6SAndroid Build Coastguard Worker typedef struct kiss_fftr_state *kiss_fftr_cfg; 19*28e138c6SAndroid Build Coastguard Worker 20*28e138c6SAndroid Build Coastguard Worker 21*28e138c6SAndroid Build Coastguard Worker kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 22*28e138c6SAndroid Build Coastguard Worker /* 23*28e138c6SAndroid Build Coastguard Worker nfft must be even 24*28e138c6SAndroid Build Coastguard Worker 25*28e138c6SAndroid Build Coastguard Worker If you don't care to allocate space, use mem = lenmem = NULL 26*28e138c6SAndroid Build Coastguard Worker */ 27*28e138c6SAndroid Build Coastguard Worker 28*28e138c6SAndroid Build Coastguard Worker 29*28e138c6SAndroid Build Coastguard Worker void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata); 30*28e138c6SAndroid Build Coastguard Worker /* 31*28e138c6SAndroid Build Coastguard Worker input timedata has nfft scalar points 32*28e138c6SAndroid Build Coastguard Worker output freqdata has nfft/2+1 complex points 33*28e138c6SAndroid Build Coastguard Worker */ 34*28e138c6SAndroid Build Coastguard Worker 35*28e138c6SAndroid Build Coastguard Worker void kiss_fftr2(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_scalar *freqdata); 36*28e138c6SAndroid Build Coastguard Worker 37*28e138c6SAndroid Build Coastguard Worker void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata); 38*28e138c6SAndroid Build Coastguard Worker 39*28e138c6SAndroid Build Coastguard Worker void kiss_fftri2(kiss_fftr_cfg st,const kiss_fft_scalar *freqdata, kiss_fft_scalar *timedata); 40*28e138c6SAndroid Build Coastguard Worker 41*28e138c6SAndroid Build Coastguard Worker /* 42*28e138c6SAndroid Build Coastguard Worker input freqdata has nfft/2+1 complex points 43*28e138c6SAndroid Build Coastguard Worker output timedata has nfft scalar points 44*28e138c6SAndroid Build Coastguard Worker */ 45*28e138c6SAndroid Build Coastguard Worker 46*28e138c6SAndroid Build Coastguard Worker #define kiss_fftr_free speex_free 47*28e138c6SAndroid Build Coastguard Worker 48*28e138c6SAndroid Build Coastguard Worker #ifdef __cplusplus 49*28e138c6SAndroid Build Coastguard Worker } 50*28e138c6SAndroid Build Coastguard Worker #endif 51*28e138c6SAndroid Build Coastguard Worker #endif 52