typedef enum _vsip_fft_dir { VSIP_FFT_FWD = -1, VSIP_FFT_INV = +1 } vsip_fft_dir; typedef enum _vsip_alg_hint { VSIP_ALG_TIME = 0, VSIP_ALG_SPACE = 1, VSIP_ALG_NOISE = 2 } vsip_alg_hint; typedef enum { VSIP_ROW = 0, VSIP_COL = 1 } vsip_major; vsip_fftm_f* vsip_ccfftmop_create_f(vsip_length m, vsip_length n, vsip_scalar_f scale, vsip_fft_dir dir, vsip_major major, vsip_length ntimes, vsip_alg_hint hint); vsip_fftm_f* vsip_crfftmop_create_f(vsip_length m, vsip_length n, vsip_scalar_f scale, vsip_major major, vsip_length ntimes, vsip_alg_hint hint); vsip_fftm_f* vsip_rcfftmop_create_f(vsip_length m, vsip_length n, vsip_scalar_f scale, vsip_major major, vsip_length ntimes, vsip_alg_hint hint);
These functions create Multiple-FFT (Fast Fourier Transform) objects for different types of FFT operations:
vsip_ccffmop_create_p : Creates an Multiple-FFT object for complex-to-complex out-of-place FFT.
vsip_rcffmop_create_p : Creates an Multiple-FFT object for real-to-complex out-of-place FFT.
vsip_crffmop_create_p : Creates an Multiple-FFT object for complex-to-real out-of-place FFT.
Each function initializes the FFT object with the specified length, scale factor, direction, number of times to apply the FFT, and algorithm hint.
The performance for supported FFT sizes is standardized as
. For sizes not directly supported by the FFT kernels a
DFT fallback with a performance of
is standardized.
vsip_length m: The length of columns or rows, depending on the given major.
vsip_length n: The length of rows or columns, depending on the given major.
vsip_scalar_f scale: The scale factor to apply to the FFT result.
vsip_fft_dir sign: The direction of the FFT.
VSIP_FFT_FWD - Forward
VSIP_FFT_INV - Inverse
vsip_major major: Direction of the multiple-FFT:
VSIP_ROW - Row Major
VSIP_Col - Column Major
vsip_length ntimes: The number of times to apply the FFT.
vsip_alg_hint hint: Algorithm hint for the FFT.
VSIP_ALG_TIME - Optimize for time
VSIP_ALG_SPACE - Optimize for memory usage
VSIP_ALG_NOISE - Optimize for noise
On success, a pointer to the newly created FFT object is returned.
On error, NULL is returned.