1/*
2 * Copyright (c) 2003-2004, Mark Borgerding. All rights reserved.
3 * This file is part of KISS FFT - https://github.com/mborgerding/kissfft
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 * See COPYING file for more information.
7 */
8
9#ifndef KISS_FTR_H
10#define KISS_FTR_H
11
12#include "kiss_fft.h"
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17
18/*
19
20 Real optimized version can save about 45% cpu time vs. complex fft of a real seq.
21
22
23
24 */
25
26typedef struct kiss_fftr_state *kiss_fftr_cfg;
27
28
29kiss_fftr_cfg KISS_FFT_API kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem);
30/*
31 nfft must be even
32
33 If you don't care to allocate space, use mem = lenmem = NULL
34*/
35
36
37void KISS_FFT_API kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata);
38/*
39 input timedata has nfft scalar points
40 output freqdata has nfft/2+1 complex points
41*/
42
43void KISS_FFT_API kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata);
44/*
45 input freqdata has nfft/2+1 complex points
46 output timedata has nfft scalar points
47*/
48
49#define kiss_fftr_free KISS_FFT_FREE
50
51#ifdef __cplusplus
52}
53#endif
54#endif
55