00001 #ifndef KISS_NDR_H 00002 #define KISS_NDR_H 00003 00004 #include "kiss_fft.h" 00005 #include "kiss_fftr.h" 00006 #include "kiss_fftnd.h" 00007 00008 #ifdef __cplusplus 00009 extern "C" { 00010 #endif 00011 00012 typedef struct kiss_fftndr_state *kiss_fftndr_cfg; 00013 00014 00015 kiss_fftndr_cfg kiss_fftndr_alloc(const int *dims,int ndims,int inverse_fft,void*mem,size_t*lenmem); 00016 /* 00017 dims[0] must be even 00018 00019 If you don't care to allocate space, use mem = lenmem = NULL 00020 */ 00021 00022 00023 void kiss_fftndr( 00024 kiss_fftndr_cfg cfg, 00025 const kiss_fft_scalar *timedata, 00026 kiss_fft_cpx *freqdata); 00027 /* 00028 input timedata has dims[0] X dims[1] X ... X dims[ndims-1] scalar points 00029 output freqdata has dims[0] X dims[1] X ... X dims[ndims-1]/2+1 complex points 00030 */ 00031 00032 void kiss_fftndri( 00033 kiss_fftndr_cfg cfg, 00034 const kiss_fft_cpx *freqdata, 00035 kiss_fft_scalar *timedata); 00036 /* 00037 input and output dimensions are the exact opposite of kiss_fftndr 00038 */ 00039 00040 00041 #define kiss_fftr_free free 00042 00043 #ifdef __cplusplus 00044 } 00045 #endif 00046 00047 #endif
1.5.8