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