Project Ne10
An open, optimized software library for the ARM architecture.
|
Variables | |
ne10_fft_cfg_float32_t(* | ne10_fft_alloc_c2c_float32 )(ne10_int32_t nfft) |
Creates a configuration structure for ne10_fft_c2c_1d_float32. More... | |
void(* | ne10_fft_c2c_1d_float32 )(ne10_fft_cpx_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_cfg_float32_t cfg, ne10_int32_t inverse_fft) |
Mixed radix-2/3/4/5 complex FFT/IFFT of single precision floating point data. More... | |
ne10_fft_cfg_int32_t(* | ne10_fft_alloc_c2c_int32 )(ne10_int32_t nfft) |
Creates a configuration structure for ne10_fft_c2c_1d_int32. More... | |
void(* | ne10_fft_c2c_1d_int32 )(ne10_fft_cpx_int32_t *fout, ne10_fft_cpx_int32_t *fin, ne10_fft_cfg_int32_t cfg, ne10_int32_t inverse_fft, ne10_int32_t scaled_flag) |
Mixed radix-2/4 complex FFT/IFFT of 32-bit fixed point Q31 data. More... | |
void(* | ne10_fft_c2c_1d_int16 )(ne10_fft_cpx_int16_t *fout, ne10_fft_cpx_int16_t *fin, ne10_fft_cfg_int16_t cfg, ne10_int32_t inverse_fft, ne10_int32_t scaled_flag) |
Mixed radix-2/4 complex FFT/IFFT of 16-bit fixed point Q15 data. More... | |
(fftSize * sizeof(ne10_fft_cpx_float32_t))
bytes, while the temporary buffer is reserved during allocation of a "configuration structure" (for instance, via ne10_fft_alloc_c2c_float32).Format: { Re[0], Im[0], Re[1], Im[1], Re[2], Im[2], ..., Re[fftSize - 2], Im[fftSize - 2], Re[fftSize - 1], Im[fftSize - 1] }
cfg
is a pointer to a configuration structure. For different inputs of the same size, the same configuration structure can (and should, where possible) be reused.cfg->twiddles
: a pointer to a table of "twiddle factors" that are used in computing the FFT/IFFTcfg->factors
: a buffer of "factors", which suggests to the core algorithm how the input can be broken down into smaller calculationscfg->buffer
: a pointer to a temporary buffer used internally in calculations that is allocated when the configuration structure is set up ne10_fft_cfg_float32_t ne10_fft_alloc_c2c_float32_c | ( | ne10_int32_t | nfft | ) |
Specific implementation of ne10_fft_alloc_c2c_float32 for ne10_fft_c2c_1d_float32_c.
Definition at line 828 of file NE10_fft_float32.c.
ne10_fft_cfg_float32_t ne10_fft_alloc_c2c_float32_neon | ( | ne10_int32_t | nfft | ) |
Specific implementation of ne10_fft_alloc_c2c_float32 for ne10_fft_c2c_1d_float32_neon.
Definition at line 348 of file NE10_fft.c.
ne10_fft_cfg_int16_t ne10_fft_alloc_c2c_int16 | ( | ne10_int32_t | nfft | ) |
Creates a configuration structure for variants of ne10_fft_c2c_1d_int16.
[in] | nfft | input length |
st | pointer to an FFT configuration structure (allocated with malloc ), or NULL to indicate an error |
Allocates and initialises an ne10_fft_cfg_int16_t configuration structure for the complex-to-complex 16-bit integer fixed point FFT/IFFT. As part of this, it reserves a buffer used internally by the FFT algorithm, factors the length of the FFT into simpler chunks, and generates a "twiddle table" of coefficients used in the FFT "butterfly" calculations.
To free the returned structure, call ne10_fft_destroy_c2c_int16.
Definition at line 1071 of file NE10_fft_int16.c.
ne10_fft_cfg_int32_t ne10_fft_alloc_c2c_int32_c | ( | ne10_int32_t | nfft | ) |
Specific implementation of ne10_fft_alloc_c2c_int32 for ne10_fft_c2c_1d_int32_c.
Definition at line 1054 of file NE10_fft_int32.c.
ne10_fft_cfg_int32_t ne10_fft_alloc_c2c_int32_neon | ( | ne10_int32_t | nfft | ) |
Specific implementation of ne10_fft_alloc_c2c_int32 for ne10_fft_c2c_1d_int32_neon.
Definition at line 451 of file NE10_fft.c.
void ne10_fft_c2c_1d_float32_c | ( | ne10_fft_cpx_float32_t * | fout, |
ne10_fft_cpx_float32_t * | fin, | ||
ne10_fft_cfg_float32_t | cfg, | ||
ne10_int32_t | inverse_fft | ||
) |
Specific implementation of ne10_fft_c2c_1d_float32 using plain C.
Definition at line 888 of file NE10_fft_float32.c.
void ne10_fft_c2c_1d_float32_neon | ( | ne10_fft_cpx_float32_t * | fout, |
ne10_fft_cpx_float32_t * | fin, | ||
ne10_fft_cfg_float32_t | cfg, | ||
ne10_int32_t | inverse_fft | ||
) |
Specific implementation of ne10_fft_c2c_1d_float32 using NEON SIMD capabilities.
Additionally requires that inputs are sized such that fftSize % 4 == 0
if fftSize > 2.
Definition at line 665 of file NE10_fft_float32.neon.c.
void ne10_fft_c2c_1d_int16_c | ( | ne10_fft_cpx_int16_t * | fout, |
ne10_fft_cpx_int16_t * | fin, | ||
ne10_fft_cfg_int16_t | cfg, | ||
ne10_int32_t | inverse_fft, | ||
ne10_int32_t | scaled_flag | ||
) |
Specific implementation of ne10_fft_c2c_1d_int16 using plain C.
Definition at line 1137 of file NE10_fft_int16.c.
void ne10_fft_c2c_1d_int16_neon | ( | ne10_fft_cpx_int16_t * | fout, |
ne10_fft_cpx_int16_t * | fin, | ||
ne10_fft_cfg_int16_t | cfg, | ||
ne10_int32_t | inverse_fft, | ||
ne10_int32_t | scaled_flag | ||
) |
Specific implementation of ne10_fft_c2c_1d_int16 using NEON SIMD capabilities.
Definition at line 775 of file NE10_fft_int16.neon.c.
void ne10_fft_c2c_1d_int32_c | ( | ne10_fft_cpx_int32_t * | fout, |
ne10_fft_cpx_int32_t * | fin, | ||
ne10_fft_cfg_int32_t | cfg, | ||
ne10_int32_t | inverse_fft, | ||
ne10_int32_t | scaled_flag | ||
) |
Specific implementation of ne10_fft_c2c_1d_int32 using plain C.
Definition at line 1106 of file NE10_fft_int32.c.
void ne10_fft_c2c_1d_int32_neon | ( | ne10_fft_cpx_int32_t * | fout, |
ne10_fft_cpx_int32_t * | fin, | ||
ne10_fft_cfg_int32_t | cfg, | ||
ne10_int32_t | inverse_fft, | ||
ne10_int32_t | scaled_flag | ||
) |
Specific implementation of ne10_fft_c2c_1d_int32 using NEON SIMD capabilities.
Definition at line 1204 of file NE10_fft_int32.neon.c.
void ne10_fft_destroy_c2c_float32 | ( | ne10_fft_cfg_float32_t | cfg | ) |
Destroys the configuration structure allocated by variants of ne10_fft_alloc_c2c_float32 (frees memory, etc.)
[in] | cfg | pointer to the FFT configuration structure |
Definition at line 556 of file NE10_fft.c.
void ne10_fft_destroy_c2c_int16 | ( | ne10_fft_cfg_int16_t | cfg | ) |
Destroys the configuration structure allocated by ne10_fft_alloc_c2c_int16 (frees memory, etc.)
[in] | cfg | pointer to the FFT configuration structure |
Definition at line 576 of file NE10_fft.c.
void ne10_fft_destroy_c2c_int32 | ( | ne10_fft_cfg_int32_t | cfg | ) |
Destroys the configuration structure allocated by variants of ne10_fft_alloc_c2c_int32 (frees memory, etc.)
[in] | cfg | pointer to the FFT configuration structure |
Definition at line 566 of file NE10_fft.c.
ne10_fft_cfg_float32_t(* ne10_fft_alloc_c2c_float32) (ne10_int32_t nfft) |
Creates a configuration structure for ne10_fft_c2c_1d_float32.
[in] | nfft | input length |
st | pointer to an FFT configuration structure (allocated with malloc ), or NULL to indicate an error |
Allocates and initialises an ne10_fft_cfg_float32_t configuration structure for the complex-to-complex single precision floating point FFT/IFFT. As part of this, it reserves a buffer used internally by the FFT algorithm, factors the length of the FFT into simpler chunks, and generates a "twiddle table" of coefficients used in the FFT "butterfly" calculations. Points to ne10_fft_alloc_c2c_float32_c or ne10_fft_alloc_c2c_float32_neon.
To free the returned structure, call ne10_fft_destroy_c2c_float32.
Definition at line 114 of file NE10_init_dsp.c.
ne10_fft_cfg_int32_t(* ne10_fft_alloc_c2c_int32) (ne10_int32_t nfft) |
Creates a configuration structure for ne10_fft_c2c_1d_int32.
[in] | nfft | input length |
st | pointer to an FFT configuration structure (allocated with malloc ), or NULL to indicate an error |
Allocates and initialises an ne10_fft_cfg_int32_t configuration structure for the complex-to-complex 32-bit integer fixed point FFT/IFFT. As part of this, it reserves a buffer used internally by the FFT algorithm, factors the length of the FFT into simpler chunks, and generates a "twiddle table" of coefficients used in the FFT "butterfly" calculations. Points to ne10_fft_alloc_c2c_int32_c or ne10_fft_alloc_c2c_int32_neon.
To free the returned structure, call ne10_fft_destroy_c2c_int32.
Definition at line 115 of file NE10_init_dsp.c.
void(* ne10_fft_c2c_1d_float32) (ne10_fft_cpx_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_cfg_float32_t cfg, ne10_int32_t inverse_fft) |
Mixed radix-2/3/4/5 complex FFT/IFFT of single precision floating point data.
[out] | *fout | pointer to the output buffer |
[in] | *fin | pointer to the input buffer |
[in] | cfg | pointer to the configuration structure (allocated via a variant of ne10_fft_alloc_c2c_float32) |
[in] | inverse_fft | whether this is an FFT or IFFT (0: FFT, 1: IFFT) |
Implements a mixed radix-2/3/4/5 complex FFT/IFFT, supporting input lengths of the form 2N*3M*5K (N > 0). Points to ne10_fft_c2c_1d_float32_c or ne10_fft_c2c_1d_float32_neon, the latter of which has the additional constraint that fftSize % 4 == 0
must hold if fftSize > 2. This is an out-of-place algorithm. For usage information, please check test/test_suite_fft_float32.c.
Definition at line 117 of file NE10_init_dsp.c.
void(* ne10_fft_c2c_1d_int16) (ne10_fft_cpx_int16_t *fout, ne10_fft_cpx_int16_t *fin, ne10_fft_cfg_int16_t cfg, ne10_int32_t inverse_fft, ne10_int32_t scaled_flag) |
Mixed radix-2/4 complex FFT/IFFT of 16-bit fixed point Q15 data.
[out] | *fout | pointer to the output buffer |
[in] | *fin | pointer to the input buffer |
[in] | cfg | pointer to the configuration structure (allocated via ne10_fft_alloc_c2c_int16) |
[in] | inverse_fft | whether this is an FFT or IFFT (0: FFT, 1: IFFT) |
[in] | scaled_flag | scale flag (0: unscaled, 1: scaled) |
Implements a mixed radix-2/4 complex FFT/IFFT, supporting input lengths of the form 2N (N > 0). Points to ne10_fft_c2c_1d_int16_c or ne10_fft_c2c_1d_int16_neon. This is an out-of-place algorithm. For usage information, please check test/test_suite_fft_int16.c.
Definition at line 147 of file NE10_init_dsp.c.
void(* ne10_fft_c2c_1d_int32) (ne10_fft_cpx_int32_t *fout, ne10_fft_cpx_int32_t *fin, ne10_fft_cfg_int32_t cfg, ne10_int32_t inverse_fft, ne10_int32_t scaled_flag) |
Mixed radix-2/4 complex FFT/IFFT of 32-bit fixed point Q31 data.
[out] | *fout | pointer to the output buffer |
[in] | *fin | pointer to the input buffer |
[in] | cfg | pointer to the configuration structure (allocated via a variant of ne10_fft_alloc_c2c_int32) |
[in] | inverse_fft | whether this is an FFT or IFFT (0: FFT, 1: IFFT) |
[in] | scaled_flag | scale flag (0: unscaled, 1: scaled) |
Implements a mixed radix-2/4 complex FFT/IFFT, supporting input lengths of the form 2N (N > 0). Points to ne10_fft_c2c_1d_int32_c or ne10_fft_c2c_1d_int32_neon. This is an out-of-place algorithm. For usage information, please check test/test_suite_fft_int32.c.
Definition at line 130 of file NE10_init_dsp.c.