1 #ifndef KISS_NDR_H 2 #define KISS_NDR_H 3 4 #include "kiss_fft.h" 5 #include "kiss_fftr.h" 6 #include "kiss_fftnd.h" 7 8 #ifdef __cplusplus 9 extern "C" { 10 #endif 11 12 typedef struct kiss_fftndr_state *kiss_fftndr_cfg; 13 14 15 kiss_fftndr_cfg kiss_fftndr_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem); 16 /* 17 dims[0] must be even 18 19 If you don't care to allocate space, use mem = lenmem = NULL 20 */ 21 22 23 void kiss_fftndr( 24 kiss_fftndr_cfg cfg, 25 const kiss_fft_scalar *timedata, 26 kiss_fft_cpx *freqdata); 27 /* 28 input timedata has dims[0] X dims[1] X ... X dims[ndims-1] scalar points 29 output freqdata has dims[0] X dims[1] X ... X dims[ndims-1]/2+1 complex points 30 */ 31 32 void kiss_fftndri( 33 kiss_fftndr_cfg cfg, 34 const kiss_fft_cpx *freqdata, 35 kiss_fft_scalar *timedata); 36 /* 37 input and output dimensions are the exact opposite of kiss_fftndr 38 */ 39 40 41 #define kiss_fftr_free free 42 43 #ifdef __cplusplus 44 } 45 #endif 46 47 #endif 48