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