Go to the documentation of this file.
47 return kiss_fft_next_fast_size(desired_length);
94 if (is_inverse != 1 && is_inverse != -1)
98 *plan_ptr = fftw_plan_dft_1d(fft_length, in, out, is_inverse, FFTW_ESTIMATE);
102 *plan_ptr = kiss_fft_alloc(fft_length, (is_inverse+1)/2, NULL, NULL);
105 if (*plan_ptr == NULL)
131 fftw_execute_dft((fftw_plan)plan, (fftw_complex *)in, (fftw_complex *)out);
133 kiss_fft((kiss_fft_cfg)plan, (kiss_fft_cpx *)in, (kiss_fft_cpx *)out);
154 if (plan_ptr == NULL)
157 fftw_destroy_plan(*plan_ptr);
159 KISS_FFT_FREE(*plan_ptr);
177 return fftw_malloc(size);
179 return KISS_FFT_MALLOC(size);
201 #ifdef FNFT_ENABLE_SHORT_NAMES
202 #ifndef FNFT__FFT_WRAPPER_SHORT_NAMES
203 #define FNFT__FFT_WRAPPER_SHORT_NAMES
204 #define fft_wrapper_next_fft_length(...) fnft__fft_wrapper_next_fft_length(__VA_ARGS__)
205 #define fft_wrapper_safe_plan_init(...) fnft__fft_wrapper_safe_plan_init(__VA_ARGS__)
206 #define fft_wrapper_create_plan(...) fnft__fft_wrapper_create_plan(__VA_ARGS__)
207 #define fft_wrapper_execute_plan(...) fnft__fft_wrapper_execute_plan(__VA_ARGS__)
208 #define fft_wrapper_destroy_plan(...) fnft__fft_wrapper_destroy_plan(__VA_ARGS__)
209 #define fft_wrapper_malloc(...) fnft__fft_wrapper_malloc(__VA_ARGS__)
210 #define fft_wrapper_free(...) fnft__fft_wrapper_free(__VA_ARGS__)
static void * fnft__fft_wrapper_malloc(FNFT_UINT size)
Memory allocation for the FFT wrapper.
Definition: fnft__fft_wrapper.h:174
int32_t FNFT_INT
Definition: fnft_numtypes.h:56
static void fnft__fft_wrapper_free(void *ptr)
Memory deallocation for the FFT wrapper.
Definition: fnft__fft_wrapper.h:192
size_t FNFT_UINT
Definition: fnft_numtypes.h:62
kiss_fft_cfg fnft__fft_wrapper_plan_t
Stores information needed by fnft__fft_wrapper_execute_plan to perform a (inverse) FFT.
Definition: fnft__fft_wrapper_plan_t.h:41
static FNFT_INT fnft__fft_wrapper_execute_plan(fnft__fft_wrapper_plan_t plan, FNFT_COMPLEX *in, FNFT_COMPLEX *out)
Computes a fast Fourier transform (FFT).
Definition: fnft__fft_wrapper.h:124
#define FNFT__E_INVALID_ARGUMENT(name)
Definition: fnft__errwarn.h:48
static FNFT_INT fnft__fft_wrapper_create_plan(fnft__fft_wrapper_plan_t *plan_ptr, FNFT_UINT fft_length, FNFT_COMPLEX *in, FNFT_COMPLEX *out, FNFT_INT is_inverse)
Prepares a new (inverse) fast Fourier transform (FFT).
Definition: fnft__fft_wrapper.h:83
#define FNFT__E_NOMEM
Definition: fnft__errwarn.h:42
#define FNFT_SUCCESS
Definition: fnft_errwarn.h:44
static FNFT_UINT fnft__fft_wrapper_next_fft_length(FNFT_UINT desired_length)
Next valid number of samples for the FFT routines.
Definition: fnft__fft_wrapper.h:43
double complex FNFT_COMPLEX
Definition: fnft_numtypes.h:47
static fnft__fft_wrapper_plan_t fnft__fft_wrapper_safe_plan_init()
Value to initialize plan variables.
Definition: fnft__fft_wrapper.h:57
static FNFT_INT fnft__fft_wrapper_destroy_plan(fnft__fft_wrapper_plan_t *plan_ptr)
Destroys a FFT plan when it is no longer needed.
Definition: fnft__fft_wrapper.h:151