198913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#ifndef KISS_FTR_H
298913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#define KISS_FTR_H
398913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
498913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#include "kiss_fft.h"
598913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#ifdef __cplusplus
698913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projectextern "C" {
798913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#endif
898913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
998913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
1098913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project/*
1198913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
1298913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project Real optimized version can save about 45% cpu time vs. complex fft of a real seq.
1398913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
1498913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
1598913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
1698913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project */
1798913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
1898913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projecttypedef struct kiss_fftr_state *kiss_fftr_cfg;
1998913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
2098913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
2198913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projectkiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem);
2298913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project/*
2398913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project nfft must be even
2498913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
2598913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project If you don't care to allocate space, use mem = lenmem = NULL
2698913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project*/
2798913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
2898913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
2998913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projectvoid kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata);
3098913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project/*
3198913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project input timedata has nfft scalar points
3298913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project output freqdata has nfft/2+1 complex points
3398913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project*/
3498913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
3598913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projectvoid kiss_fftr2(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_scalar *freqdata);
3698913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
3798913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projectvoid kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata);
3898913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
3998913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Projectvoid kiss_fftri2(kiss_fftr_cfg st,const kiss_fft_scalar *freqdata, kiss_fft_scalar *timedata);
4098913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
4198913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project/*
4298913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project input freqdata has  nfft/2+1 complex points
4398913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project output timedata has nfft scalar points
4498913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project*/
4598913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
4698913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#define kiss_fftr_free speex_free
4798913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project
4898913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#ifdef __cplusplus
4998913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project}
5098913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#endif
5198913fed6520d8849fb2e246be943e04474aefaThe Android Open Source Project#endif
52