Project Ne10
An open, optimized software library for the ARM architecture.
Macros | Functions
NE10_fft.h File Reference
#include "NE10_dsp.h"
#include "NE10_types.h"
#include "NE10_fft_common_varibles.h"
#include "NE10_fft_cplx_ops.h"
#include "NE10_fft_bfly.h"
#include "NE10_fft_debug_macro.h"

Go to the source code of this file.

Macros

#define NE10_FFT_BYTE_ALIGNMENT   8
 
#define NE10_INLINE   inline static
 
#define NE10_FFT_ALG_DEFAULT   0
 
#define NE10_FFT_ALG_ANY   1
 
#define NE10_FACTOR_DEFAULT   0
 
#define NE10_FACTOR_EIGHT_FIRST_STAGE   1
 
#define NE10_FACTOR_EIGHT   2
 
#define NE10_DSP_RFFT_SCALING
 
#define NE10_DSP_CFFT_SCALING
 
#define NE10_FFT_PARA_LEVEL   4
 

Functions

ne10_int32_t ne10_factor (ne10_int32_t n, ne10_int32_t *facbuf, ne10_int32_t ne10_factor_flags)
 
ne10_fft_cpx_float32_tne10_fft_generate_twiddles_float32 (ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
 
ne10_fft_cpx_float32_tne10_fft_generate_twiddles_transposed_float32 (ne10_fft_cpx_float32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
 
ne10_fft_cpx_int32_tne10_fft_generate_twiddles_int32 (ne10_fft_cpx_int32_t *twiddles, const ne10_int32_t *factors, const ne10_int32_t nfft)
 
void ne10_mixed_radix_generic_butterfly_float32_c (ne10_fft_cpx_float32_t *Fout, const ne10_fft_cpx_float32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_float32_t *twiddles, ne10_fft_cpx_float32_t *buffer, const ne10_int32_t is_scaled)
 
void ne10_mixed_radix_generic_butterfly_inverse_float32_c (ne10_fft_cpx_float32_t *Fout, const ne10_fft_cpx_float32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_float32_t *twiddles, ne10_fft_cpx_float32_t *buffer, const ne10_int32_t is_scaled)
 
void ne10_mixed_radix_generic_butterfly_float32_neon (ne10_fft_cpx_float32_t *Fout, const ne10_fft_cpx_float32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_float32_t *twiddles, ne10_fft_cpx_float32_t *buffer, const ne10_int32_t is_scaled)
 
void ne10_mixed_radix_generic_butterfly_inverse_float32_neon (ne10_fft_cpx_float32_t *Fout, const ne10_fft_cpx_float32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_float32_t *twiddles, ne10_fft_cpx_float32_t *buffer, const ne10_int32_t is_scaled)
 
void ne10_mixed_radix_fft_forward_float32_neon (ne10_fft_cpx_float32_t *Fout, ne10_fft_cpx_float32_t *Fin, ne10_int32_t *factors, ne10_fft_cpx_float32_t *twiddles, ne10_fft_cpx_float32_t *buffer) asm("ne10_mixed_radix_fft_forward_float32_neon")
 
void ne10_mixed_radix_fft_backward_float32_neon (ne10_fft_cpx_float32_t *Fout, ne10_fft_cpx_float32_t *Fin, ne10_int32_t *factors, ne10_fft_cpx_float32_t *twiddles, ne10_fft_cpx_float32_t *buffer) asm("ne10_mixed_radix_fft_backward_float32_neon")
 
void ne10_mixed_radix_generic_butterfly_int32_c (ne10_fft_cpx_int32_t *Fout, const ne10_fft_cpx_int32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer, const ne10_int32_t scaled_flag)
 Generic (forward) FFT function for 32-bit fixed point. More...
 
void ne10_mixed_radix_generic_butterfly_inverse_int32_c (ne10_fft_cpx_int32_t *Fout, const ne10_fft_cpx_int32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer, const ne10_int32_t scaled_flag)
 Generic IFFT function for 32-bit fixed point. More...
 
void ne10_mixed_radix_generic_butterfly_int32_neon (ne10_fft_cpx_int32_t *Fout, const ne10_fft_cpx_int32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer, const ne10_int32_t scaled_flag)
 
void ne10_mixed_radix_generic_butterfly_inverse_int32_neon (ne10_fft_cpx_int32_t *Fout, const ne10_fft_cpx_int32_t *Fin, const ne10_int32_t *factors, const ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer, const ne10_int32_t scaled_flag)
 
void ne10_mixed_radix_fft_forward_int32_unscaled_neon (ne10_fft_cpx_int32_t *Fout, ne10_fft_cpx_int32_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer) asm("ne10_mixed_radix_fft_forward_int32_unscaled_neon")
 
void ne10_mixed_radix_fft_backward_int32_unscaled_neon (ne10_fft_cpx_int32_t *Fout, ne10_fft_cpx_int32_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer) asm("ne10_mixed_radix_fft_backward_int32_unscaled_neon")
 
void ne10_mixed_radix_fft_forward_int32_scaled_neon (ne10_fft_cpx_int32_t *Fout, ne10_fft_cpx_int32_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer) asm("ne10_mixed_radix_fft_forward_int32_scaled_neon")
 
void ne10_mixed_radix_fft_backward_int32_scaled_neon (ne10_fft_cpx_int32_t *Fout, ne10_fft_cpx_int32_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int32_t *twiddles, ne10_fft_cpx_int32_t *buffer) asm("ne10_mixed_radix_fft_backward_int32_scaled_neon")
 
void ne10_mixed_radix_fft_forward_int16_unscaled_neon (ne10_fft_cpx_int16_t *Fout, ne10_fft_cpx_int16_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int16_t *twiddles, ne10_fft_cpx_int16_t *buffer) asm("ne10_mixed_radix_fft_forward_int16_unscaled_neon")
 
void ne10_mixed_radix_fft_backward_int16_unscaled_neon (ne10_fft_cpx_int16_t *Fout, ne10_fft_cpx_int16_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int16_t *twiddles, ne10_fft_cpx_int16_t *buffer) asm("ne10_mixed_radix_fft_backward_int16_unscaled_neon")
 
void ne10_mixed_radix_fft_forward_int16_scaled_neon (ne10_fft_cpx_int16_t *Fout, ne10_fft_cpx_int16_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int16_t *twiddles, ne10_fft_cpx_int16_t *buffer) asm("ne10_mixed_radix_fft_forward_int16_scaled_neon")
 
void ne10_mixed_radix_fft_backward_int16_scaled_neon (ne10_fft_cpx_int16_t *Fout, ne10_fft_cpx_int16_t *fin, ne10_int32_t *factors, ne10_fft_cpx_int16_t *twiddles, ne10_fft_cpx_int16_t *buffer) asm("ne10_mixed_radix_fft_backward_int16_scaled_neon")
 

Macro Definition Documentation

#define NE10_DSP_CFFT_SCALING

Definition at line 77 of file NE10_fft.h.

#define NE10_DSP_RFFT_SCALING

Definition at line 76 of file NE10_fft.h.

#define NE10_FACTOR_DEFAULT   0

Definition at line 71 of file NE10_fft.h.

#define NE10_FACTOR_EIGHT   2

Definition at line 73 of file NE10_fft.h.

#define NE10_FACTOR_EIGHT_FIRST_STAGE   1

Definition at line 72 of file NE10_fft.h.

#define NE10_FFT_ALG_ANY   1

Definition at line 58 of file NE10_fft.h.

#define NE10_FFT_ALG_DEFAULT   0

Definition at line 57 of file NE10_fft.h.

#define NE10_FFT_BYTE_ALIGNMENT   8

Definition at line 45 of file NE10_fft.h.

#define NE10_FFT_PARA_LEVEL   4

Definition at line 79 of file NE10_fft.h.

#define NE10_INLINE   inline static

Definition at line 46 of file NE10_fft.h.

Function Documentation

ne10_int32_t ne10_factor ( ne10_int32_t  n,
ne10_int32_t facbuf,
ne10_int32_t  ne10_factor_flags 
)

Definition at line 71 of file NE10_fft.c.

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 
)

Definition at line 320 of file NE10_fft.c.

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 
)

Definition at line 246 of file NE10_fft.c.

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 
)

Definition at line 330 of file NE10_fft.c.

void ne10_mixed_radix_fft_backward_float32_neon ( ne10_fft_cpx_float32_t Fout,
ne10_fft_cpx_float32_t Fin,
ne10_int32_t factors,
ne10_fft_cpx_float32_t twiddles,
ne10_fft_cpx_float32_t buffer 
)

Definition at line 1361 of file NE10_fft_float32.neonintrinsic.c.

void ne10_mixed_radix_fft_backward_int16_scaled_neon ( ne10_fft_cpx_int16_t Fout,
ne10_fft_cpx_int16_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int16_t twiddles,
ne10_fft_cpx_int16_t buffer 
)
void ne10_mixed_radix_fft_backward_int16_unscaled_neon ( ne10_fft_cpx_int16_t Fout,
ne10_fft_cpx_int16_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int16_t twiddles,
ne10_fft_cpx_int16_t buffer 
)
void ne10_mixed_radix_fft_backward_int32_scaled_neon ( ne10_fft_cpx_int32_t Fout,
ne10_fft_cpx_int32_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer 
)
void ne10_mixed_radix_fft_backward_int32_unscaled_neon ( ne10_fft_cpx_int32_t Fout,
ne10_fft_cpx_int32_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer 
)
void ne10_mixed_radix_fft_forward_float32_neon ( ne10_fft_cpx_float32_t Fout,
ne10_fft_cpx_float32_t Fin,
ne10_int32_t factors,
ne10_fft_cpx_float32_t twiddles,
ne10_fft_cpx_float32_t buffer 
)

Definition at line 1275 of file NE10_fft_float32.neonintrinsic.c.

void ne10_mixed_radix_fft_forward_int16_scaled_neon ( ne10_fft_cpx_int16_t Fout,
ne10_fft_cpx_int16_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int16_t twiddles,
ne10_fft_cpx_int16_t buffer 
)
void ne10_mixed_radix_fft_forward_int16_unscaled_neon ( ne10_fft_cpx_int16_t Fout,
ne10_fft_cpx_int16_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int16_t twiddles,
ne10_fft_cpx_int16_t buffer 
)
void ne10_mixed_radix_fft_forward_int32_scaled_neon ( ne10_fft_cpx_int32_t Fout,
ne10_fft_cpx_int32_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer 
)
void ne10_mixed_radix_fft_forward_int32_unscaled_neon ( ne10_fft_cpx_int32_t Fout,
ne10_fft_cpx_int32_t fin,
ne10_int32_t factors,
ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer 
)
void ne10_mixed_radix_generic_butterfly_float32_c ( ne10_fft_cpx_float32_t Fout,
const ne10_fft_cpx_float32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_float32_t twiddles,
ne10_fft_cpx_float32_t buffer,
const ne10_int32_t  is_scaled 
)

Definition at line 713 of file NE10_fft_generic_float32.c.

void ne10_mixed_radix_generic_butterfly_float32_neon ( ne10_fft_cpx_float32_t Fout,
const ne10_fft_cpx_float32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_float32_t twiddles,
ne10_fft_cpx_float32_t buffer,
const ne10_int32_t  is_scaled 
)

Definition at line 1581 of file NE10_fft_generic_float32.neonintrinsic.cpp.

void ne10_mixed_radix_generic_butterfly_int32_c ( ne10_fft_cpx_int32_t Fout,
const ne10_fft_cpx_int32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer,
const ne10_int32_t  is_scaled 
)

Generic (forward) FFT function for 32-bit fixed point.

Parameters
[out]FoutPointing to output buffer.
[in]FinPointing to input buffer.
[in]factorsPointing to factors buffer.
[in]twiddlesPointing to twiddles buffer.
[in]bufferPointing to temp buffer so that Fin is not polluted.
[in]is_scaledWhether output is scaled by size of FFT.

Definition at line 343 of file NE10_fft_generic_int32.cpp.

void ne10_mixed_radix_generic_butterfly_int32_neon ( ne10_fft_cpx_int32_t Fout,
const ne10_fft_cpx_int32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer,
const ne10_int32_t  scaled_flag 
)

Definition at line 112 of file NE10_fft_generic_int32.neonintrinsic.cpp.

void ne10_mixed_radix_generic_butterfly_inverse_float32_c ( ne10_fft_cpx_float32_t Fout,
const ne10_fft_cpx_float32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_float32_t twiddles,
ne10_fft_cpx_float32_t buffer,
const ne10_int32_t  is_scaled 
)

Definition at line 734 of file NE10_fft_generic_float32.c.

void ne10_mixed_radix_generic_butterfly_inverse_float32_neon ( ne10_fft_cpx_float32_t Fout,
const ne10_fft_cpx_float32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_float32_t twiddles,
ne10_fft_cpx_float32_t buffer,
const ne10_int32_t  is_scaled 
)

Definition at line 1622 of file NE10_fft_generic_float32.neonintrinsic.cpp.

void ne10_mixed_radix_generic_butterfly_inverse_int32_c ( ne10_fft_cpx_int32_t Fout,
const ne10_fft_cpx_int32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer,
const ne10_int32_t  is_scaled 
)

Generic IFFT function for 32-bit fixed point.

Parameters
[out]FoutPointing to output buffer.
[in]FinPointing to input buffer.
[in]factorsPointing to factors buffer.
[in]twiddlesPointing to twiddles buffer.
[in]bufferPointing to temp buffer so that Fin is not polluted.
[in]is_scaledWhether output is scaled by size of FFT.

Definition at line 374 of file NE10_fft_generic_int32.cpp.

void ne10_mixed_radix_generic_butterfly_inverse_int32_neon ( ne10_fft_cpx_int32_t Fout,
const ne10_fft_cpx_int32_t Fin,
const ne10_int32_t factors,
const ne10_fft_cpx_int32_t twiddles,
ne10_fft_cpx_int32_t buffer,
const ne10_int32_t  scaled_flag 
)

Definition at line 124 of file NE10_fft_generic_int32.neonintrinsic.cpp.