xref: /aosp_15_r20/external/speex/libspeexdsp/kiss_fftr.h (revision 28e138c64d234588b5cd2a8a403b584bd3036e4e)
1*28e138c6SAndroid Build Coastguard Worker #ifndef KISS_FTR_H
2*28e138c6SAndroid Build Coastguard Worker #define KISS_FTR_H
3*28e138c6SAndroid Build Coastguard Worker 
4*28e138c6SAndroid Build Coastguard Worker #include "kiss_fft.h"
5*28e138c6SAndroid Build Coastguard Worker #ifdef __cplusplus
6*28e138c6SAndroid Build Coastguard Worker extern "C" {
7*28e138c6SAndroid Build Coastguard Worker #endif
8*28e138c6SAndroid Build Coastguard Worker 
9*28e138c6SAndroid Build Coastguard Worker 
10*28e138c6SAndroid Build Coastguard Worker /*
11*28e138c6SAndroid Build Coastguard Worker 
12*28e138c6SAndroid Build Coastguard Worker  Real optimized version can save about 45% cpu time vs. complex fft of a real seq.
13*28e138c6SAndroid Build Coastguard Worker 
14*28e138c6SAndroid Build Coastguard Worker 
15*28e138c6SAndroid Build Coastguard Worker 
16*28e138c6SAndroid Build Coastguard Worker  */
17*28e138c6SAndroid Build Coastguard Worker 
18*28e138c6SAndroid Build Coastguard Worker typedef struct kiss_fftr_state *kiss_fftr_cfg;
19*28e138c6SAndroid Build Coastguard Worker 
20*28e138c6SAndroid Build Coastguard Worker 
21*28e138c6SAndroid Build Coastguard Worker kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem);
22*28e138c6SAndroid Build Coastguard Worker /*
23*28e138c6SAndroid Build Coastguard Worker  nfft must be even
24*28e138c6SAndroid Build Coastguard Worker 
25*28e138c6SAndroid Build Coastguard Worker  If you don't care to allocate space, use mem = lenmem = NULL
26*28e138c6SAndroid Build Coastguard Worker */
27*28e138c6SAndroid Build Coastguard Worker 
28*28e138c6SAndroid Build Coastguard Worker 
29*28e138c6SAndroid Build Coastguard Worker void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata);
30*28e138c6SAndroid Build Coastguard Worker /*
31*28e138c6SAndroid Build Coastguard Worker  input timedata has nfft scalar points
32*28e138c6SAndroid Build Coastguard Worker  output freqdata has nfft/2+1 complex points
33*28e138c6SAndroid Build Coastguard Worker */
34*28e138c6SAndroid Build Coastguard Worker 
35*28e138c6SAndroid Build Coastguard Worker void kiss_fftr2(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_scalar *freqdata);
36*28e138c6SAndroid Build Coastguard Worker 
37*28e138c6SAndroid Build Coastguard Worker void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata);
38*28e138c6SAndroid Build Coastguard Worker 
39*28e138c6SAndroid Build Coastguard Worker void kiss_fftri2(kiss_fftr_cfg st,const kiss_fft_scalar *freqdata, kiss_fft_scalar *timedata);
40*28e138c6SAndroid Build Coastguard Worker 
41*28e138c6SAndroid Build Coastguard Worker /*
42*28e138c6SAndroid Build Coastguard Worker  input freqdata has  nfft/2+1 complex points
43*28e138c6SAndroid Build Coastguard Worker  output timedata has nfft scalar points
44*28e138c6SAndroid Build Coastguard Worker */
45*28e138c6SAndroid Build Coastguard Worker 
46*28e138c6SAndroid Build Coastguard Worker #define kiss_fftr_free speex_free
47*28e138c6SAndroid Build Coastguard Worker 
48*28e138c6SAndroid Build Coastguard Worker #ifdef __cplusplus
49*28e138c6SAndroid Build Coastguard Worker }
50*28e138c6SAndroid Build Coastguard Worker #endif
51*28e138c6SAndroid Build Coastguard Worker #endif
52