11 #define MAX(x,y) ( ( (x)<(y) )?(y):(x) ) 22 static int prod(
const int *dims,
int ndims)
35 size_t nr=0 , nd=0,ntmp=0;
50 ptr = (
char*) malloc(memneeded);
52 if (*lenmem >= memneeded)
60 memset( st , 0 , memneeded);
79 int nrbins = dimReal/2+1;
89 for (k2=0;k2<nrbins;++k2)
90 tmp2[ k2*dimOther+k1 ] = tmp1[k2];
93 for (k2=0;k2<nrbins;++k2) {
96 freqdata[ k1*(nrbins) + k2] = tmp1[k1];
105 int nrbins = dimReal/2+1;
109 for (k2=0;k2<nrbins;++k2) {
111 tmp1[k1] = freqdata[ k1*(nrbins) + k2 ];
116 for (k2=0;k2<nrbins;++k2)
117 tmp1[k2] = tmp2[ k2*dimOther+k1 ];
kiss_fftnd_cfg kiss_fftnd_alloc(const int *dims, int ndims, int inverse_fft, void *mem, size_t *lenmem)
kiss_fftr_cfg kiss_fftr_alloc(int nfft, int inverse_fft, void *mem, size_t *lenmem)
void kiss_fftndr(kiss_fftndr_cfg st, const kiss_fft_scalar *timedata, kiss_fft_cpx *freqdata)
kiss_fftndr_cfg kiss_fftndr_alloc(const int *dims, int ndims, int inverse_fft, void *mem, size_t *lenmem)
struct kiss_fftndr_state * kiss_fftndr_cfg
void kiss_fftndri(kiss_fftndr_cfg st, const kiss_fft_cpx *freqdata, kiss_fft_scalar *timedata)
#define KISS_FFT_ALIGN_SIZE_UP(size)
void kiss_fftr(kiss_fftr_cfg st, const kiss_fft_scalar *timedata, kiss_fft_cpx *freqdata)
void kiss_fftnd(kiss_fftnd_cfg st, const kiss_fft_cpx *fin, kiss_fft_cpx *fout)
static int prod(const int *dims, int ndims)
#define KISS_FFT_ALIGN_CHECK(ptr)
void kiss_fftri(kiss_fftr_cfg st, const kiss_fft_cpx *freqdata, kiss_fft_scalar *timedata)