102 && ((n==8) || (n==40) || (n==24)))
123 else if ((n % 4) == 0)
127 else if ((n % 2) == 0)
131 else if ((n % 5) == 0)
136 else if ((n % 3) == 0)
149 facbuf[2 * i + 1] = n;
154 facbuf[0] = stage_num;
155 facbuf[1] = stride_max / p;
164 facbuf[2 * i] = alg_flag;
181 for (j = 0; j < mstride; j++)
183 for (k = 1; k < radix; k++)
185 phase = -2 * pi * fstride * k * j / nfft;
208 for (j = 0; j < mstride; j++)
210 for (k = 1; k < radix; k++)
212 phase = -2 * pi * fstride * k * j / nfft;
213 twiddles[(radix - 1) * j + k - 1].r = (
ne10_float32_t) cos (phase);
214 twiddles[(radix - 1) * j + k - 1].i = (
ne10_float32_t) sin (phase);
232 for (j = 0; j < mstride; j++)
234 for (k = 1; k < radix; k++)
236 phase = -2 * pi * fstride * k * j / nfft;
256 cur_radix = factors[2 * stage_count];
260 ne10_fft_generate_twiddles_line_int32 (twiddles, 1, fstride, cur_radix, nfft);
261 twiddles += cur_radix - 1;
266 for (; stage_count > 0; stage_count--)
268 cur_radix = factors[2 * stage_count];
269 fstride /= cur_radix;
270 mstride = factors[2 * stage_count + 1];
271 ne10_fft_generate_twiddles_line_int32 (twiddles, mstride, fstride, cur_radix, nfft);
272 twiddles += mstride * (cur_radix - 1);
296 cur_radix = factors[2 * stage_count];
302 generator (twiddles, 1, fstride, cur_radix, nfft);
303 twiddles += cur_radix - 1;
308 for (; stage_count > 0; stage_count --)
310 cur_radix = factors[2 * stage_count];
311 fstride /= cur_radix;
312 mstride = factors[2 * stage_count + 1];
313 generator (twiddles, mstride, fstride, cur_radix, nfft);
314 twiddles += mstride * (cur_radix - 1);
326 twiddles, factors, nfft);
338 twiddles, factors, nfft);
#define NE10_FFT_ALG_DEFAULT
ne10_int32_t is_backward_scaled
Flag to control scaling behaviour in backward floating point complex FFT.
#define NE10_FFT_PARA_LEVEL
ne10_fft_cpx_int32_t * twiddles
void ne10_fft_destroy_r2c_int16(ne10_fft_r2c_cfg_int16_t)
Destroys the configuration structure allocated by ne10_fft_alloc_r2c_int16 (frees memory...
#define NE10_MAXFACTORS
Structure for the floating point FFT function.
void ne10_fft_generate_twiddles_line_transposed_float32(ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t mstride, const ne10_int32_t fstride, const ne10_int32_t radix, const ne10_int32_t nfft)
void ne10_fft_destroy_r2c_int32(ne10_fft_r2c_cfg_int32_t)
Destroys the configuration structure allocated by ne10_fft_alloc_r2c_int32 (frees memory...
ne10_int32_t ne10_factor(ne10_int32_t n, ne10_int32_t *facbuf, ne10_int32_t ne10_factor_flags)
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.
ne10_fft_cpx_float32_t * ne10_fft_generate_twiddles_impl_float32(line_generator_float32 generator, ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
Structure for the floating point FFT state.
void ne10_fft_destroy_r2c_float32(ne10_fft_r2c_cfg_float32_t)
Destroys the configuration structure allocated by ne10_fft_alloc_r2c_float32 (frees memory...
#define NE10_FFT_BYTE_ALIGNMENT
ne10_fft_cpx_int32_t * ne10_fft_generate_twiddles_int32(ne10_fft_cpx_int32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
ne10_fft_state_float32_t * ne10_fft_cfg_float32_t
Configuration structure for floating point FFT.
#define NE10_PI
NE10 defines a number of macros for use in its function signatures.
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.
ne10_fft_cpx_float32_t * ne10_fft_generate_twiddles_transposed_float32(ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
ne10_fft_cpx_float32_t * twiddles
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.
ne10_fft_cpx_float32_t * last_twiddles
Structure for the 32-bit fixed point FFT function.
void ne10_fft_generate_twiddles_line_float32(ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t mstride, const ne10_int32_t fstride, const ne10_int32_t radix, const ne10_int32_t nfft)
void ne10_fft_destroy_c2c_int32(ne10_fft_cfg_int32_t)
Destroys the configuration structure allocated by variants of ne10_fft_alloc_c2c_int32 (frees memory...
void ne10_fft_destroy_c2c_float32(ne10_fft_cfg_float32_t)
Destroys the configuration structure allocated by variants of ne10_fft_alloc_c2c_float32 (frees memor...
#define NE10_FACTOR_EIGHT_FIRST_STAGE
ne10_fft_cpx_float32_t * ne10_fft_generate_twiddles_float32(ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
ne10_fft_cpx_int32_t * buffer
#define NE10_BYTE_ALIGNMENT(address, alignment)
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.
ne10_fft_cpx_float32_t * buffer
void ne10_fft_destroy_c2c_int16(ne10_fft_cfg_int16_t)
Destroys the configuration structure allocated by ne10_fft_alloc_c2c_int16 (frees memory...
#define NE10_FACTOR_EIGHT
ne10_int32_t is_forward_scaled
Flag to control scaling behaviour in forward floating point complex FFT.
ne10_fft_cpx_int32_t * last_twiddles
void(* line_generator_float32)(ne10_fft_cpx_float32_t *, const ne10_int32_t, const ne10_int32_t, const ne10_int32_t, const ne10_int32_t)
#define NE10_FACTOR_DEFAULT
ne10_fft_state_int32_t * ne10_fft_cfg_int32_t