paulstretch_cpp

PaulStretch
Log | Files | Refs | LICENSE

kiss_fftr.h (858B)


      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_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata);
     36 /*
     37  input freqdata has  nfft/2+1 complex points
     38  output timedata has nfft scalar points
     39 */
     40 
     41 #define kiss_fftr_free free
     42 
     43 #ifdef __cplusplus
     44 }
     45 #endif
     46 #endif