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