Project Ne10
An open, optimized software library for the ARM architecture.
Macros | Typedefs | Functions
NE10_fft_generic_float32.neonintrinsic.cpp File Reference
#include "NE10_types.h"
#include "NE10_macros.h"
#include "NE10_fft.neonintrinsic.h"
#include "NE10_fft_generic_float32.h"

Go to the source code of this file.

Macros

#define NE10_REAL_DUP_NEON_F32   vdupq_n_f32
 
#define NE10_CPLX_LOAD(PTR)   vld2q_f32 ((ne10_float32_t*) (PTR))
 
#define NE10_CPLX_STORE(PTR, OUT)
 
#define NE10_BUTTERFLY_INDEX_NEON_F32(OUT, IN, OUT_I, OUT_J, IN_I, IN_J)
 
#define NE10_CPX_MUL_TW8_NEON_F32(OUT, TW_8_TABLE, OUT_I, TW_J)
 

Typedefs

typedef float32x4x2_t CPLX
 
typedef float32x4_t REAL
 
typedef void(* NE10_MIXED_RADIX_FUNC) (CPLX *, const CPLX *, const ne10_int32_t *, const ne10_fft_cpx_float32_t *, CPLX *)
 

Functions

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)
 

Macro Definition Documentation

#define NE10_BUTTERFLY_INDEX_NEON_F32 (   OUT,
  IN,
  OUT_I,
  OUT_J,
  IN_I,
  IN_J 
)
Value:
do { \
NE10_CPX_ADD_NEON_F32 (OUT[OUT_I],IN[IN_I],IN[IN_J]); \
NE10_CPX_SUB_NEON_F32 (OUT[OUT_J],IN[IN_I],IN[IN_J]); \
} while (0)
#define NE10_CPX_ADD_NEON_F32(Z, A, B)
#define NE10_CPX_SUB_NEON_F32(Z, A, B)

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

#define NE10_CPLX_LOAD (   PTR)    vld2q_f32 ((ne10_float32_t*) (PTR))

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

#define NE10_CPLX_STORE (   PTR,
  OUT 
)
Value:
do { \
vst2q_f32 ((ne10_float32_t*) (PTR), OUT); \
} while (0)
float ne10_float32_t
Definition: NE10_types.h:80

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

#define NE10_CPX_MUL_TW8_NEON_F32 (   OUT,
  TW_8_TABLE,
  OUT_I,
  TW_J 
)
Value:
do { \
ne10_fft_cpx_float32_t TW_TMP = TW_8_TABLE[TW_J]; \
CPLX TW_TMP_NEON; \
TW_TMP_NEON.val[0] = NE10_REAL_DUP_NEON_F32 (TW_TMP.r); \
TW_TMP_NEON.val[1] = NE10_REAL_DUP_NEON_F32 (TW_TMP.i); \
NE10_CPX_MUL_NEON_F32 (OUT[OUT_I],OUT[OUT_I],TW_TMP_NEON); \
} while (0)
#define NE10_CPX_MUL_NEON_F32(Z, A, B)
#define NE10_REAL_DUP_NEON_F32   vdupq_n_f32

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

Typedef Documentation

typedef float32x4x2_t CPLX

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

typedef void(* NE10_MIXED_RADIX_FUNC) (CPLX *, const CPLX *, const ne10_int32_t *, const ne10_fft_cpx_float32_t *, CPLX *)

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

typedef float32x4_t REAL

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

Function Documentation

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_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.