Project Ne10
An open, optimized software library for the ARM architecture.
NE10_dsp.h
Go to the documentation of this file.
1 /*
2  * Copyright 2012-16 ARM Limited and Contributors.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of ARM Limited nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY ARM LIMITED AND CONTRIBUTORS "AS IS" AND
17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED AND CONTRIBUTORS BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 /*
29  * NE10 Library : inc/NE10_dsp.h
30  */
31 
32 
33 #include "NE10_types.h"
34 
35 #ifndef NE10_DSP_H
36 #define NE10_DSP_H
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
147 
163  extern void (*ne10_fft_c2c_1d_float32) (ne10_fft_cpx_float32_t *fout,
166  ne10_int32_t inverse_fft);
170  ne10_int32_t inverse_fft);
174  ne10_int32_t inverse_fft);
175 
177 
195 
210  extern void (*ne10_fft_c2c_1d_int32) (ne10_fft_cpx_int32_t *fout,
213  ne10_int32_t inverse_fft,
214  ne10_int32_t scaled_flag);
218  ne10_int32_t inverse_fft,
219  ne10_int32_t scaled_flag);
223  ne10_int32_t inverse_fft,
224  ne10_int32_t scaled_flag);
225 
227 
228 
230 
244  extern void (*ne10_fft_c2c_1d_int16) (ne10_fft_cpx_int16_t *fout,
247  ne10_int32_t inverse_fft,
248  ne10_int32_t scaled_flag);
252  ne10_int32_t inverse_fft,
253  ne10_int32_t scaled_flag);
257  ne10_int32_t inverse_fft,
258  ne10_int32_t scaled_flag);
259 
260  extern void ne10_fft_destroy_c2c_int16 (ne10_fft_cfg_int16_t); // C2C_FFT_IFFT
262 
359 
374  extern void (*ne10_fft_r2c_1d_float32) (ne10_fft_cpx_float32_t *fout,
375  ne10_float32_t *fin,
378  ne10_float32_t *fin,
381  ne10_float32_t *fin,
383 
396  extern void (*ne10_fft_c2r_1d_float32) (ne10_float32_t *fout,
399  extern void ne10_fft_c2r_1d_float32_c (ne10_float32_t *fout,
402  extern void ne10_fft_c2r_1d_float32_neon (ne10_float32_t *fout,
405 
407 
408 
410 
426  extern void (*ne10_fft_r2c_1d_int32) (ne10_fft_cpx_int32_t *fout,
427  ne10_int32_t *fin,
429  ne10_int32_t scaled_flag);
431  ne10_int32_t *fin,
433  ne10_int32_t scaled_flag);
435  ne10_int32_t *fin,
437  ne10_int32_t scaled_flag);
438 
452  extern void (*ne10_fft_c2r_1d_int32) (ne10_int32_t *fout,
455  ne10_int32_t scaled_flag);
456  extern void ne10_fft_c2r_1d_int32_c (ne10_int32_t *fout,
459  ne10_int32_t scaled_flag);
460  extern void ne10_fft_c2r_1d_int32_neon (ne10_int32_t *fout,
463  ne10_int32_t scaled_flag);
464 
466 
467 
469 
485  extern void (*ne10_fft_r2c_1d_int16) (ne10_fft_cpx_int16_t *fout,
486  ne10_int16_t *fin,
488  ne10_int32_t scaled_flag);
490  ne10_int16_t *fin,
492  ne10_int32_t scaled_flag);
494  ne10_int16_t *fin,
496  ne10_int32_t scaled_flag);
497 
511  extern void (*ne10_fft_c2r_1d_int16) (ne10_int16_t *fout,
514  ne10_int32_t scaled_flag);
515  extern void ne10_fft_c2r_1d_int16_c (ne10_int16_t *fout,
518  ne10_int32_t scaled_flag);
519  extern void ne10_fft_c2r_1d_int16_neon (ne10_int16_t *fout,
522  ne10_int32_t scaled_flag);
523 
524  extern void ne10_fft_destroy_r2c_int16 (ne10_fft_r2c_cfg_int16_t); // R2C_FFT_IFFT
526 
532  ne10_uint16_t numTaps,
533  ne10_float32_t * pCoeffs,
534  ne10_float32_t * pState,
535  ne10_uint32_t blockSize);
536 
545  extern void (*ne10_fir_float) (const ne10_fir_instance_f32_t * S,
546  ne10_float32_t * pSrc,
547  ne10_float32_t * pDst,
548  ne10_uint32_t blockSize);
549  extern void ne10_fir_float_c (const ne10_fir_instance_f32_t * S,
550  ne10_float32_t * pSrc,
551  ne10_float32_t * pDst,
552  ne10_uint32_t blockSize);
553 #ifdef ENABLE_NE10_FIR_FLOAT_NEON
554 
557  extern void ne10_fir_float_neon (const ne10_fir_instance_f32_t * S,
558  ne10_float32_t * pSrc,
559  ne10_float32_t * pDst,
560  ne10_uint32_t blockSize)
561  asm ("ne10_fir_float_neon");
562 #endif // ENABLE_NE10_FIR_FLOAT_NEON
563  // FIR
564 
570  ne10_uint16_t numTaps,
571  ne10_uint8_t M,
572  ne10_float32_t * pCoeffs,
573  ne10_float32_t * pState,
574  ne10_uint32_t blockSize);
575 
587  ne10_float32_t * pSrc,
588  ne10_float32_t * pDst,
589  ne10_uint32_t blockSize);
591  ne10_float32_t * pSrc,
592  ne10_float32_t * pDst,
593  ne10_uint32_t blockSize);
594 #ifdef ENABLE_NE10_FIR_DECIMATE_FLOAT_NEON
595 
599  ne10_float32_t *pSrc,
600  ne10_float32_t *pDst,
601  ne10_uint32_t blockSize) asm ("ne10_fir_decimate_float_neon");
602 
603 #endif // ENABLE_NE10_FIR_DECIMATE_FLOAT_NEON
604  // FIR_decimate
605 
611  ne10_uint8_t L,
612  ne10_uint16_t numTaps,
613  ne10_float32_t * pCoeffs,
614  ne10_float32_t * pState,
615  ne10_uint32_t blockSize);
616 
628  ne10_float32_t * pSrc,
629  ne10_float32_t * pDst,
630  ne10_uint32_t blockSize);
632  ne10_float32_t * pSrc,
633  ne10_float32_t * pDst,
634  ne10_uint32_t blockSize);
635 #ifdef ENABLE_NE10_FIR_INTERPOLATE_FLOAT_NEON
636 
640  ne10_float32_t *pSrc,
641  ne10_float32_t *pDst,
642  ne10_uint32_t blockSize) asm ("ne10_fir_interpolate_float_neon");
643 #endif // ENABLE_NE10_FIR_INTERPOLATE_FLOAT_NEON
644  // FIR_interpolate
645 
651  ne10_uint16_t numStages,
652  ne10_float32_t * pCoeffs,
653  ne10_float32_t * pState);
654 
666  ne10_float32_t * pSrc,
667  ne10_float32_t * pDst,
668  ne10_uint32_t blockSize);
670  ne10_float32_t * pSrc,
671  ne10_float32_t * pDst,
672  ne10_uint32_t blockSize);
673 #ifdef ENABLE_NE10_FIR_LATTICE_FLOAT_NEON
674 
678  ne10_float32_t * pSrc,
679  ne10_float32_t * pDst,
680  ne10_uint32_t blockSize) asm ("ne10_fir_lattice_float_neon");
681 #endif // ENABLE_NE10_FIR_LATTICE_FLOAT_NEON
682  // FIR_Lattice
683 
689  ne10_uint16_t numTaps,
690  ne10_float32_t * pCoeffs,
691  ne10_float32_t * pState,
692  ne10_int32_t * pTapDelay,
693  ne10_uint16_t maxDelay,
694  ne10_uint32_t blockSize);
695 
708  ne10_float32_t * pSrc,
709  ne10_float32_t * pDst,
710  ne10_float32_t * pScratchIn,
711  ne10_uint32_t blockSize);
713  ne10_float32_t * pSrc,
714  ne10_float32_t * pDst,
715  ne10_float32_t * pScratchIn,
716  ne10_uint32_t blockSize);
717 #ifdef ENABLE_NE10_FIR_SPARSE_FLOAT_NEON
718 
722  ne10_float32_t * pSrc,
723  ne10_float32_t * pDst,
724  ne10_float32_t * pScratch,
725  ne10_uint32_t blockSize)
726  asm ("ne10_fir_sparse_float_neon");
727 #endif // ENABLE_NE10_FIR_SPARSE_FLOAT_NEON
728  // FIR_sparse
729 
730 
736  ne10_uint16_t numStages,
737  ne10_float32_t * pkCoeffs,
738  ne10_float32_t * pvCoeffs,
739  ne10_float32_t * pState,
740  ne10_uint32_t blockSize);
741 
753  ne10_float32_t * pSrc,
754  ne10_float32_t * pDst,
755  ne10_uint32_t blockSize);
757  ne10_float32_t * pSrc,
758  ne10_float32_t * pDst,
759  ne10_uint32_t blockSize);
760 #ifdef ENABLE_NE10_IIR_LATTICE_FLOAT_NEON
761 
765  ne10_float32_t * pSrc,
766  ne10_float32_t * pDst,
767  ne10_uint32_t blockSize) asm ("ne10_iir_lattice_float_neon");
768 #endif // ENABLE_NE10_IIR_LATTICE_FLOAT_NEON
769  // IIR_Lattice
770 
771 #ifdef __cplusplus
772 }
773 #endif
774 
775 #endif
Structure for the 16-bit fixed point FFT function.
Definition: NE10_types.h:294
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.
Instance structure for the floating-point FIR Sparse filter.
Definition: NE10_types.h:403
ne10_result_t ne10_fir_init_float(ne10_fir_instance_f32_t *S, ne10_uint16_t numTaps, ne10_float32_t *pCoeffs, ne10_float32_t *pState, ne10_uint32_t blockSize)
Definition: NE10_fir_init.c:53
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...
Definition: NE10_fft.c:613
uint8_t ne10_uint8_t
Definition: NE10_types.h:73
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)
Specific implementation of ne10_fft_c2r_1d_int32 using NEON SIMD capabilities.
void ne10_fft_c2r_1d_float32_c(ne10_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Specific implementation of ne10_fft_c2r_1d_float32 using plain C.
ne10_result_t ne10_fir_sparse_init_float(ne10_fir_sparse_instance_f32_t *S, ne10_uint16_t numTaps, ne10_float32_t *pCoeffs, ne10_float32_t *pState, ne10_int32_t *pTapDelay, ne10_uint16_t maxDelay, ne10_uint32_t blockSize)
Initialization function for the floating-point sparse FIR filter.
ne10_fft_r2c_cfg_float32_t ne10_fft_alloc_r2c_float32(ne10_int32_t nfft)
Creates a configuration structure for variants of ne10_fft_r2c_1d_float32 and ne10_fft_c2r_1d_float32...
int32_t ne10_int32_t
Definition: NE10_types.h:76
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.
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...
Definition: NE10_fft.c:603
ne10_result_t ne10_fir_interpolate_init_float(ne10_fir_interpolate_instance_f32_t *S, ne10_uint8_t L, ne10_uint16_t numTaps, ne10_float32_t *pCoeffs, ne10_float32_t *pState, ne10_uint32_t blockSize)
Initialization function for the floating-point FIR interpolator.
void ne10_fir_interpolate_float_neon(const ne10_fir_interpolate_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize) asm("ne10_fir_interpolate_float_neon")
Specific implementation of ne10_fir_interpolate_float using NEON SIMD capabilities.
void(* ne10_fft_c2r_1d_int32)(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 complex-to-real IFFT of 32-bit fixed point Q31 data.
ne10_result_t ne10_fir_lattice_init_float(ne10_fir_lattice_instance_f32_t *S, ne10_uint16_t numStages, ne10_float32_t *pCoeffs, ne10_float32_t *pState)
Initialization function for the floating-point FIR lattice filter.
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)
Specific implementation of ne10_fft_c2r_1d_int16 using NEON SIMD capabilities.
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)
Specific implementation of ne10_fft_c2r_1d_int16 using plain C.
void(* ne10_fft_c2r_1d_int16)(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 complex-to-real IFFT of 16-bit fixed point Q15 data.
void ne10_fir_decimate_float_neon(const ne10_fir_decimate_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize) asm("ne10_fir_decimate_float_neon")
Specific implementation of ne10_fir_decimate_float using NEON SIMD capabilities.
float ne10_float32_t
Definition: NE10_types.h:80
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: NE10_fft.c:348
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)
Specific implementation of ne10_fft_r2c_1d_int16 using NEON SIMD capabilities.
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.
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.
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)
Specific implementation of ne10_fft_r2c_1d_int16 using plain C.
Structure for the floating point FFT state.
Definition: NE10_types.h:239
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.
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.
void(* ne10_fft_r2c_1d_float32)(ne10_fft_cpx_float32_t *fout, ne10_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Mixed radix-2/4 real-to-complex FFT of single precision floating point data.
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...
Definition: NE10_fft.c:593
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)
Specific implementation of ne10_fft_r2c_1d_int32 using plain C.
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)
Specific implementation of ne10_fir_decimate_float using plain C.
Definition: NE10_fir.c:429
uint16_t ne10_uint16_t
Definition: NE10_types.h:75
ne10_fft_cfg_float32_t(* ne10_fft_alloc_c2c_float32)(ne10_int32_t nfft)
Creates a configuration structure for ne10_fft_c2c_1d_float32.
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)
Specific implementation of ne10_iir_lattice_float using plain C.
Definition: NE10_iir.c:112
ne10_fft_state_float32_t * ne10_fft_cfg_float32_t
Configuration structure for floating point FFT.
Definition: NE10_types.h:267
void(* ne10_fft_r2c_1d_int32)(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 real-to-complex FFT of 32-bit fixed point Q31 data.
uint32_t ne10_uint32_t
Definition: NE10_types.h:77
ne10_result_t ne10_fir_decimate_init_float(ne10_fir_decimate_instance_f32_t *S, ne10_uint16_t numTaps, ne10_uint8_t M, ne10_float32_t *pCoeffs, ne10_float32_t *pState, ne10_uint32_t blockSize)
Initialization function for the floating-point FIR decimator.
Definition: NE10_fir_init.c:98
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: NE10_fft.c:451
Instance structure for the floating point IIR Lattice filter.
Definition: NE10_types.h:416
void(* ne10_fft_c2r_1d_float32)(ne10_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Mixed radix-2/4 complex-to-real IFFT of single precision floating point data.
Instance structure for the floating-point FIR Interpolation.
Definition: NE10_types.h:392
void ne10_fir_lattice_float_neon(const ne10_fir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize) asm("ne10_fir_lattice_float_neon")
Specific implementation of ne10_fir_lattice_float using NEON SIMD capabilities.
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.
Instance structure for the floating-point FIR filter.
Definition: NE10_types.h:361
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)
Specific implementation of ne10_fft_r2c_1d_int32 using NEON SIMD capabilities.
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.
ne10_fft_cfg_int32_t(* ne10_fft_alloc_c2c_int32)(ne10_int32_t nfft)
Creates a configuration structure for ne10_fft_c2c_1d_int32.
Structure for the 32-bit fixed point FFT function.
Definition: NE10_types.h:325
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...
Definition: NE10_fft.c:566
void ne10_fir_sparse_float_neon(ne10_fir_sparse_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_float32_t *pScratch, ne10_uint32_t blockSize) asm("ne10_fir_sparse_float_neon")
Specific implementation of ne10_fir_sparse_float using NEON SIMD capabilities.
void(* ne10_fir_decimate_float)(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_destroy_c2c_float32(ne10_fft_cfg_float32_t)
Destroys the configuration structure allocated by variants of ne10_fft_alloc_c2c_float32 (frees memor...
Definition: NE10_fft.c:556
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.
ne10_fft_r2c_cfg_int32_t ne10_fft_alloc_r2c_int32(ne10_int32_t nfft)
Creates a configuration structure for variants of ne10_fft_r2c_1d_int32 and ne10_fft_c2r_1d_int32.
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.
Definition: NE10_iir_init.c:44
Instance structure for the floating point FIR Lattice filter.
Definition: NE10_types.h:371
void ne10_fir_float_c(const ne10_fir_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Specific implementation of ne10_fir_float using plain C.
Definition: NE10_fir.c:111
void(* ne10_iir_lattice_float)(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.
void ne10_iir_lattice_float_neon(const ne10_iir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize) asm("ne10_iir_lattice_float_neon")
Specific implementation of ne10_iir_lattice_float using NEON SIMD capabilities.
Instance structure for the floating-point FIR Decimation.
Definition: NE10_types.h:381
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)
Specific implementation of ne10_fir_lattice_float using plain C.
Definition: NE10_fir.c:929
void(* ne10_fir_sparse_float)(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.
ne10_fft_r2c_cfg_int16_t ne10_fft_alloc_r2c_int16(ne10_int32_t nfft)
Creates a configuration structure for variants of ne10_fft_r2c_1d_int16 and ne10_fft_c2r_1d_int16.
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)
Specific implementation of ne10_fir_interpolate_float using plain C.
Definition: NE10_fir.c:679
void ne10_fft_c2r_1d_float32_neon(ne10_float32_t *fout, ne10_fft_cpx_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Specific implementation of ne10_fft_c2r_1d_float32 using NEON SIMD capabilities.
void(* ne10_fir_float)(const ne10_fir_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
void(* ne10_fir_lattice_float)(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_int16_t ne10_fft_alloc_c2c_int16(ne10_int32_t nfft)
Creates a configuration structure for variants of ne10_fft_c2c_1d_int16.
void ne10_fir_float_neon(const ne10_fir_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize) asm("ne10_fir_float_neon")
Specific implementation of ne10_fir_float using NEON SIMD capabilities.
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.
void ne10_fft_r2c_1d_float32_c(ne10_fft_cpx_float32_t *fout, ne10_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Specific implementation of ne10_fft_r2c_1d_float32 using plain C.
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)
Specific implementation of ne10_fft_c2r_1d_int32 using plain C.
void(* ne10_fft_r2c_1d_int16)(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 real-to-complex FFT of 16-bit fixed point Q15 data.
void ne10_fft_destroy_c2c_int16(ne10_fft_cfg_int16_t)
Destroys the configuration structure allocated by ne10_fft_alloc_c2c_int16 (frees memory...
Definition: NE10_fft.c:576
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)
Specific implementation of ne10_fir_sparse_float using plain C.
Definition: NE10_fir.c:1386
int16_t ne10_int16_t
Definition: NE10_types.h:74
void(* ne10_fir_interpolate_float)(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.
int ne10_result_t
Definition: NE10_types.h:82
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.
void ne10_fft_r2c_1d_float32_neon(ne10_fft_cpx_float32_t *fout, ne10_float32_t *fin, ne10_fft_r2c_cfg_float32_t cfg)
Specific implementation of ne10_fft_r2c_1d_float32 using NEON SIMD capabilities.
ne10_fft_state_int32_t * ne10_fft_cfg_int32_t
Definition: NE10_types.h:340