 |
Project Ne10
An Open Optimized Software Library Project for the ARM Architecture
|
33 #include "NE10_types.h"
55 ne10_int32_t inverse_fft);
61 extern void (*ne10_fft_c2r_1d_float32) (ne10_float32_t *fout,
68 ne10_int32_t inverse_fft,
69 ne10_int32_t scaled_flag);
74 ne10_int32_t scaled_flag);
76 extern void (*ne10_fft_c2r_1d_int32) (ne10_int32_t *fout,
79 ne10_int32_t scaled_flag);
84 ne10_int32_t inverse_fft,
85 ne10_int32_t scaled_flag);
90 ne10_int32_t scaled_flag);
92 extern void (*ne10_fft_c2r_1d_int16) (ne10_int16_t *fout,
95 ne10_int32_t scaled_flag);
120 ne10_int32_t inverse_fft);
133 ne10_int32_t inverse_fft,
134 ne10_int32_t scaled_flag);
139 ne10_int32_t scaled_flag);
144 ne10_int32_t scaled_flag);
149 ne10_int32_t inverse_fft,
150 ne10_int32_t scaled_flag);
155 ne10_int32_t scaled_flag);
160 ne10_int32_t scaled_flag);
170 ne10_int32_t inverse_fft);
183 ne10_int32_t inverse_fft,
184 ne10_int32_t scaled_flag);
189 ne10_int32_t scaled_flag);
194 ne10_int32_t scaled_flag);
199 ne10_int32_t inverse_fft,
200 ne10_int32_t scaled_flag);
205 ne10_int32_t scaled_flag);
210 ne10_int32_t scaled_flag);
216 ne10_float32_t * pSrc,
217 ne10_float32_t * pDst,
218 ne10_uint32_t blockSize);
221 ne10_float32_t * pSrc,
222 ne10_float32_t * pDst,
223 ne10_uint32_t blockSize);
226 ne10_float32_t * pSrc,
227 ne10_float32_t * pDst,
228 ne10_uint32_t blockSize);
231 ne10_float32_t * pSrc,
232 ne10_float32_t * pDst,
233 ne10_uint32_t blockSize);
236 ne10_float32_t * pSrc,
237 ne10_float32_t * pDst,
238 ne10_float32_t * pScratchIn,
239 ne10_uint32_t blockSize);
244 ne10_uint16_t numTaps,
245 ne10_float32_t * pCoeffs,
246 ne10_float32_t * pState,
247 ne10_uint32_t blockSize);
250 ne10_uint16_t numTaps,
252 ne10_float32_t * pCoeffs,
253 ne10_float32_t * pState,
254 ne10_uint32_t blockSize);
258 ne10_uint16_t numTaps,
259 ne10_float32_t * pCoeffs,
260 ne10_float32_t * pState,
261 ne10_uint32_t blockSize);
264 ne10_uint16_t numStages,
265 ne10_float32_t * pCoeffs,
266 ne10_float32_t * pState);
269 ne10_uint16_t numTaps,
270 ne10_float32_t * pCoeffs,
271 ne10_float32_t * pState,
272 ne10_int32_t * pTapDelay,
273 ne10_uint16_t maxDelay,
274 ne10_uint32_t blockSize);
278 ne10_float32_t * pSrc,
279 ne10_float32_t * pDst,
280 ne10_uint32_t blockSize);
283 ne10_float32_t * pSrc,
284 ne10_float32_t * pDst,
285 ne10_uint32_t blockSize);
288 ne10_float32_t * pSrc,
289 ne10_float32_t * pDst,
290 ne10_uint32_t blockSize);
293 ne10_float32_t * pSrc,
294 ne10_float32_t * pDst,
295 ne10_uint32_t blockSize);
298 ne10_float32_t * pSrc,
299 ne10_float32_t * pDst,
300 ne10_float32_t * pScratchIn,
301 ne10_uint32_t blockSize);
310 #ifdef ENABLE_NE10_FIR_FLOAT_NEON
312 ne10_float32_t * pSrc,
313 ne10_float32_t * pDst,
314 ne10_uint32_t blockSize)
315 asm (
"ne10_fir_float_neon");
316 #endif // ENABLE_NE10_FIR_FLOAT_NEON
323 #ifdef ENABLE_NE10_FIR_DECIMATE_FLOAT_NEON
325 ne10_float32_t *pSrc,
326 ne10_float32_t *pDst,
327 ne10_uint32_t blockSize)
asm (
"ne10_fir_decimate_float_neon");
330 #endif // ENABLE_NE10_FIR_DECIMATE_FLOAT_NEON
335 #ifdef ENABLE_NE10_FIR_INTERPOLATE_FLOAT_NEON
337 ne10_float32_t *pSrc,
338 ne10_float32_t *pDst,
339 ne10_uint32_t blockSize)
asm (
"ne10_fir_interpolate_float_neon");
340 #endif // ENABLE_NE10_FIR_INTERPOLATE_FLOAT_NEON
347 #ifdef ENABLE_NE10_FIR_LATTICE_FLOAT_NEON
349 ne10_float32_t * pSrc,
350 ne10_float32_t * pDst,
351 ne10_uint32_t blockSize)
asm (
"ne10_fir_lattice_float_neon");
352 #endif // ENABLE_NE10_FIR_LATTICE_FLOAT_NEON
359 #ifdef ENABLE_NE10_FIR_SPARSE_FLOAT_NEON
361 ne10_float32_t * pSrc,
362 ne10_float32_t * pDst,
363 ne10_float32_t * pScratch,
364 ne10_uint32_t blockSize)
365 asm (
"ne10_fir_sparse_float_neon");
366 #endif // ENABLE_NE10_FIR_SPARSE_FLOAT_NEON
374 ne10_float32_t * pSrc,
375 ne10_float32_t * pDst,
376 ne10_uint32_t blockSize);
380 ne10_uint16_t numStages,
381 ne10_float32_t * pkCoeffs,
382 ne10_float32_t * pvCoeffs,
383 ne10_float32_t * pState,
384 ne10_uint32_t blockSize);
389 ne10_float32_t * pSrc,
390 ne10_float32_t * pDst,
391 ne10_uint32_t blockSize);
399 #ifdef ENABLE_NE10_IIR_LATTICE_FLOAT_NEON
401 ne10_float32_t * pSrc,
402 ne10_float32_t * pDst,
403 ne10_uint32_t blockSize)
asm (
"ne10_iir_lattice_float_neon");
404 #endif // ENABLE_NE10_IIR_LATTICE_FLOAT_NEON
structure for the floating point FFT state
void ne10_fft_c2r_1d_int32_neon(ne10_int32_t *fout, ne10_fft_cpx_int32_t *fin, ne10_fft_r2c_cfg_int32_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 IFFT (complex to real) of int32 data.
void ne10_fft_c2r_1d_float32_c(ne10_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Mixed radix-2/4 IFFT (complex to real) of float(32-bit) data.
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)
Mixed radix-2/4 complex FFT/IFFT of 32-bit fixed point data.
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)
Mixed radix-2/3/4/5 complex FFT/IFFT of float(32-bit) data.
void ne10_fft_r2c_1d_int16_neon(ne10_fft_cpx_int16_t *fout, ne10_int16_t *fin, ne10_fft_r2c_cfg_int16_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 FFT (real to complex) of int16 data.
ne10_fft_r2c_cfg_float32_t ne10_fft_alloc_r2c_float32(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft (r2c/c2r).
void ne10_fft_r2c_1d_int16_c(ne10_fft_cpx_int16_t *fout, ne10_int16_t *fin, ne10_fft_r2c_cfg_int16_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 FFT (real to complex) of int16 data.
Instance structure for the floating-point FIR filter.
void ne10_fft_c2r_1d_int16_c(ne10_int16_t *fout, ne10_fft_cpx_int16_t *fin, ne10_fft_r2c_cfg_int16_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 IFFT (complex to real) of int16 data.
void ne10_fft_c2r_1d_int16_neon(ne10_int16_t *fout, ne10_fft_cpx_int16_t *fin, ne10_fft_r2c_cfg_int16_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 IFFT (complex to real) of int16 data.
ne10_fft_cfg_float32_t ne10_fft_alloc_c2c_float32_neon(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft.
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)
Mixed radix-2/4 complex FFT/IFFT of 16-bit fixed point data.
void ne10_fft_r2c_1d_int32_c(ne10_fft_cpx_int32_t *fout, ne10_int32_t *fin, ne10_fft_r2c_cfg_int32_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 FFT (real to complex) of int32 data.
ne10_fft_cfg_int32_t ne10_fft_alloc_c2c_int32_neon(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft.
structure for the 32 bits fixed point FFT function.
Instance structure for the floating point FIR Lattice filter.
Instance structure for the floating-point FIR Sparse filter.
void ne10_fir_lattice_float_c(const ne10_fir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Processing function for the floating-point FIR lattice filter.
ne10_fft_cfg_float32_t ne10_fft_alloc_c2c_float32_c(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft.
void ne10_fir_sparse_float_c(ne10_fir_sparse_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_float32_t *pScratchIn, ne10_uint32_t blockSize)
Processing function for the floating-point sparse FIR filter.
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)
Mixed radix-2/4 complex FFT/IFFT of 32-bit fixed point data.
void ne10_fft_r2c_1d_int32_neon(ne10_fft_cpx_int32_t *fout, ne10_int32_t *fin, ne10_fft_r2c_cfg_int32_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 FFT (real to complex) of int32 data.
ne10_result_t ne10_iir_lattice_init_float(ne10_iir_lattice_instance_f32_t *S, ne10_uint16_t numStages, ne10_float32_t *pkCoeffs, ne10_float32_t *pvCoeffs, ne10_float32_t *pState, ne10_uint32_t blockSize)
Initialization function for the floating-point IIR lattice filter.
Instance structure for the floating-point FIR Interpolation.
ne10_fft_r2c_cfg_int32_t ne10_fft_alloc_r2c_int32(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft (r2c/c2r).
void ne10_fir_interpolate_float_c(const ne10_fir_interpolate_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Processing function for the floating-point FIR interpolator.
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)
Mixed radix-2/3/4/5 complex FFT/IFFT of float(32-bit) data.
void ne10_iir_lattice_float_c(const ne10_iir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Processing function for the floating-point IIR lattice filter.
ne10_fft_r2c_cfg_int16_t ne10_fft_alloc_r2c_int16(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft (r2c/c2r).
ne10_fft_cfg_int32_t ne10_fft_alloc_c2c_int32_c(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft.
void ne10_fft_c2r_1d_float32_neon(ne10_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Mixed radix-2/4 IFFT (complex to real) of float(32-bit) data.
void ne10_fir_decimate_float_c(const ne10_fir_decimate_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Processing function for the floating-point FIR decimator.
void ne10_fft_c2r_1d_int32_c(ne10_int32_t *fout, ne10_fft_cpx_int32_t *fin, ne10_fft_r2c_cfg_int32_t cfg, ne10_int32_t scaled_flag)
Mixed radix-2/4 IFFT (complex to real) of int32 data.
Instance structure for the floating-point FIR Decimation.
void ne10_fft_r2c_1d_float32_c(ne10_fft_cpx_float32_t *fout, ne10_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Mixed radix-2/4 FFT (real to complex) of float(32-bit) data.
ne10_fft_cfg_int16_t ne10_fft_alloc_c2c_int16(ne10_int32_t nfft)
User-callable function to allocate all necessary storage space for the fft.
structure for the 16 bits fixed point FFT function.
void ne10_fft_r2c_1d_float32_neon(ne10_fft_cpx_float32_t *fout, ne10_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Mixed radix-2/4 FFT (real to complex) of float(32-bit) data.
Instance structure for the floating point IIR Lattice filter.
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)
Mixed radix-2/4 complex FFT/IFFT of 32-bit fixed point data.
void ne10_fir_float_c(const ne10_fir_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)