annotate include/ne10/NE10_dsp.h @ 379:24c3a0663d54 prerelease

Added Ne10 headers within include directory
author andrewm
date Sun, 12 Jun 2016 18:16:20 +0100
parents
children
rev   line source
andrewm@379 1 /*
andrewm@379 2 * Copyright 2012-15 ARM Limited and Contributors.
andrewm@379 3 * All rights reserved.
andrewm@379 4 *
andrewm@379 5 * Redistribution and use in source and binary forms, with or without
andrewm@379 6 * modification, are permitted provided that the following conditions are met:
andrewm@379 7 * * Redistributions of source code must retain the above copyright
andrewm@379 8 * notice, this list of conditions and the following disclaimer.
andrewm@379 9 * * Redistributions in binary form must reproduce the above copyright
andrewm@379 10 * notice, this list of conditions and the following disclaimer in the
andrewm@379 11 * documentation and/or other materials provided with the distribution.
andrewm@379 12 * * Neither the name of ARM Limited nor the
andrewm@379 13 * names of its contributors may be used to endorse or promote products
andrewm@379 14 * derived from this software without specific prior written permission.
andrewm@379 15 *
andrewm@379 16 * THIS SOFTWARE IS PROVIDED BY ARM LIMITED AND CONTRIBUTORS "AS IS" AND
andrewm@379 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
andrewm@379 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
andrewm@379 19 * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED AND CONTRIBUTORS BE LIABLE FOR ANY
andrewm@379 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
andrewm@379 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
andrewm@379 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
andrewm@379 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
andrewm@379 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
andrewm@379 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
andrewm@379 26 */
andrewm@379 27
andrewm@379 28 /*
andrewm@379 29 * NE10 Library : inc/NE10_dsp.h
andrewm@379 30 */
andrewm@379 31
andrewm@379 32
andrewm@379 33 #include "NE10_types.h"
andrewm@379 34
andrewm@379 35 #ifndef NE10_DSP_H
andrewm@379 36 #define NE10_DSP_H
andrewm@379 37
andrewm@379 38 #ifdef __cplusplus
andrewm@379 39 extern "C" {
andrewm@379 40 #endif
andrewm@379 41
andrewm@379 42 ///////////////////////////
andrewm@379 43 // function prototypes:
andrewm@379 44 ///////////////////////////
andrewm@379 45
andrewm@379 46 /* fft functions*/
andrewm@379 47
andrewm@379 48 /* function pointers*/
andrewm@379 49 extern ne10_fft_cfg_float32_t (*ne10_fft_alloc_c2c_float32) (ne10_int32_t nfft);
andrewm@379 50 extern ne10_fft_cfg_int32_t (*ne10_fft_alloc_c2c_int32) (ne10_int32_t nfft);
andrewm@379 51
andrewm@379 52 extern void (*ne10_fft_c2c_1d_float32) (ne10_fft_cpx_float32_t *fout,
andrewm@379 53 ne10_fft_cpx_float32_t *fin,
andrewm@379 54 ne10_fft_cfg_float32_t cfg,
andrewm@379 55 ne10_int32_t inverse_fft);
andrewm@379 56
andrewm@379 57 extern void (*ne10_fft_r2c_1d_float32) (ne10_fft_cpx_float32_t *fout,
andrewm@379 58 ne10_float32_t *fin,
andrewm@379 59 ne10_fft_r2c_cfg_float32_t cfg);
andrewm@379 60
andrewm@379 61 extern void (*ne10_fft_c2r_1d_float32) (ne10_float32_t *fout,
andrewm@379 62 ne10_fft_cpx_float32_t *fin,
andrewm@379 63 ne10_fft_r2c_cfg_float32_t cfg);
andrewm@379 64
andrewm@379 65 extern void (*ne10_fft_c2c_1d_int32) (ne10_fft_cpx_int32_t *fout,
andrewm@379 66 ne10_fft_cpx_int32_t *fin,
andrewm@379 67 ne10_fft_cfg_int32_t cfg,
andrewm@379 68 ne10_int32_t inverse_fft,
andrewm@379 69 ne10_int32_t scaled_flag);
andrewm@379 70
andrewm@379 71 extern void (*ne10_fft_r2c_1d_int32) (ne10_fft_cpx_int32_t *fout,
andrewm@379 72 ne10_int32_t *fin,
andrewm@379 73 ne10_fft_r2c_cfg_int32_t cfg,
andrewm@379 74 ne10_int32_t scaled_flag);
andrewm@379 75
andrewm@379 76 extern void (*ne10_fft_c2r_1d_int32) (ne10_int32_t *fout,
andrewm@379 77 ne10_fft_cpx_int32_t *fin,
andrewm@379 78 ne10_fft_r2c_cfg_int32_t cfg,
andrewm@379 79 ne10_int32_t scaled_flag);
andrewm@379 80
andrewm@379 81 extern void (*ne10_fft_c2c_1d_int16) (ne10_fft_cpx_int16_t *fout,
andrewm@379 82 ne10_fft_cpx_int16_t *fin,
andrewm@379 83 ne10_fft_cfg_int16_t cfg,
andrewm@379 84 ne10_int32_t inverse_fft,
andrewm@379 85 ne10_int32_t scaled_flag);
andrewm@379 86
andrewm@379 87 extern void (*ne10_fft_r2c_1d_int16) (ne10_fft_cpx_int16_t *fout,
andrewm@379 88 ne10_int16_t *fin,
andrewm@379 89 ne10_fft_r2c_cfg_int16_t cfg,
andrewm@379 90 ne10_int32_t scaled_flag);
andrewm@379 91
andrewm@379 92 extern void (*ne10_fft_c2r_1d_int16) (ne10_int16_t *fout,
andrewm@379 93 ne10_fft_cpx_int16_t *fin,
andrewm@379 94 ne10_fft_r2c_cfg_int16_t cfg,
andrewm@379 95 ne10_int32_t scaled_flag);
andrewm@379 96
andrewm@379 97 /* init functions*/
andrewm@379 98 extern ne10_fft_cfg_int16_t ne10_fft_alloc_c2c_int16 (ne10_int32_t nfft);
andrewm@379 99
andrewm@379 100 /* destroy functions */
andrewm@379 101 extern void ne10_fft_destroy_c2c_float32 (ne10_fft_cfg_float32_t);
andrewm@379 102 extern void ne10_fft_destroy_c2c_int32 (ne10_fft_cfg_int32_t);
andrewm@379 103 extern void ne10_fft_destroy_c2c_int16 (ne10_fft_cfg_int16_t);
andrewm@379 104
andrewm@379 105 extern void ne10_fft_destroy_r2c_float32 (ne10_fft_r2c_cfg_float32_t);
andrewm@379 106 extern void ne10_fft_destroy_r2c_int32 (ne10_fft_r2c_cfg_int32_t);
andrewm@379 107 extern void ne10_fft_destroy_r2c_int16 (ne10_fft_r2c_cfg_int16_t);
andrewm@379 108
andrewm@379 109 extern ne10_fft_r2c_cfg_float32_t ne10_fft_alloc_r2c_float32 (ne10_int32_t nfft);
andrewm@379 110 extern ne10_fft_r2c_cfg_int32_t ne10_fft_alloc_r2c_int32 (ne10_int32_t nfft);
andrewm@379 111 extern ne10_fft_r2c_cfg_int16_t ne10_fft_alloc_r2c_int16 (ne10_int32_t nfft);
andrewm@379 112
andrewm@379 113 /* C version*/
andrewm@379 114 extern ne10_fft_cfg_float32_t ne10_fft_alloc_c2c_float32_c (ne10_int32_t nfft);
andrewm@379 115 extern ne10_fft_cfg_int32_t ne10_fft_alloc_c2c_int32_c (ne10_int32_t nfft);
andrewm@379 116
andrewm@379 117 extern void ne10_fft_c2c_1d_float32_c (ne10_fft_cpx_float32_t *fout,
andrewm@379 118 ne10_fft_cpx_float32_t *fin,
andrewm@379 119 ne10_fft_cfg_float32_t cfg,
andrewm@379 120 ne10_int32_t inverse_fft);
andrewm@379 121
andrewm@379 122 extern void ne10_fft_r2c_1d_float32_c (ne10_fft_cpx_float32_t *fout,
andrewm@379 123 ne10_float32_t *fin,
andrewm@379 124 ne10_fft_r2c_cfg_float32_t cfg);
andrewm@379 125
andrewm@379 126 extern void ne10_fft_c2r_1d_float32_c (ne10_float32_t *fout,
andrewm@379 127 ne10_fft_cpx_float32_t *fin,
andrewm@379 128 ne10_fft_r2c_cfg_float32_t cfg);
andrewm@379 129
andrewm@379 130 extern void ne10_fft_c2c_1d_int32_c (ne10_fft_cpx_int32_t *fout,
andrewm@379 131 ne10_fft_cpx_int32_t *fin,
andrewm@379 132 ne10_fft_cfg_int32_t cfg,
andrewm@379 133 ne10_int32_t inverse_fft,
andrewm@379 134 ne10_int32_t scaled_flag);
andrewm@379 135
andrewm@379 136 extern void ne10_fft_r2c_1d_int32_c (ne10_fft_cpx_int32_t *fout,
andrewm@379 137 ne10_int32_t *fin,
andrewm@379 138 ne10_fft_r2c_cfg_int32_t cfg,
andrewm@379 139 ne10_int32_t scaled_flag);
andrewm@379 140
andrewm@379 141 extern void ne10_fft_c2r_1d_int32_c (ne10_int32_t *fout,
andrewm@379 142 ne10_fft_cpx_int32_t *fin,
andrewm@379 143 ne10_fft_r2c_cfg_int32_t cfg,
andrewm@379 144 ne10_int32_t scaled_flag);
andrewm@379 145
andrewm@379 146 extern void ne10_fft_c2c_1d_int16_c (ne10_fft_cpx_int16_t *fout,
andrewm@379 147 ne10_fft_cpx_int16_t *fin,
andrewm@379 148 ne10_fft_cfg_int16_t cfg,
andrewm@379 149 ne10_int32_t inverse_fft,
andrewm@379 150 ne10_int32_t scaled_flag);
andrewm@379 151
andrewm@379 152 extern void ne10_fft_r2c_1d_int16_c (ne10_fft_cpx_int16_t *fout,
andrewm@379 153 ne10_int16_t *fin,
andrewm@379 154 ne10_fft_r2c_cfg_int16_t cfg,
andrewm@379 155 ne10_int32_t scaled_flag);
andrewm@379 156
andrewm@379 157 extern void ne10_fft_c2r_1d_int16_c (ne10_int16_t *fout,
andrewm@379 158 ne10_fft_cpx_int16_t *fin,
andrewm@379 159 ne10_fft_r2c_cfg_int16_t cfg,
andrewm@379 160 ne10_int32_t scaled_flag);
andrewm@379 161
andrewm@379 162
andrewm@379 163 /* NEON version*/
andrewm@379 164 extern ne10_fft_cfg_float32_t ne10_fft_alloc_c2c_float32_neon (ne10_int32_t nfft);
andrewm@379 165 extern ne10_fft_cfg_int32_t ne10_fft_alloc_c2c_int32_neon (ne10_int32_t nfft);
andrewm@379 166
andrewm@379 167 extern void ne10_fft_c2c_1d_float32_neon (ne10_fft_cpx_float32_t *fout,
andrewm@379 168 ne10_fft_cpx_float32_t *fin,
andrewm@379 169 ne10_fft_cfg_float32_t cfg,
andrewm@379 170 ne10_int32_t inverse_fft);
andrewm@379 171
andrewm@379 172 extern void ne10_fft_r2c_1d_float32_neon (ne10_fft_cpx_float32_t *fout,
andrewm@379 173 ne10_float32_t *fin,
andrewm@379 174 ne10_fft_r2c_cfg_float32_t cfg);
andrewm@379 175
andrewm@379 176 extern void ne10_fft_c2r_1d_float32_neon (ne10_float32_t *fout,
andrewm@379 177 ne10_fft_cpx_float32_t *fin,
andrewm@379 178 ne10_fft_r2c_cfg_float32_t cfg);
andrewm@379 179
andrewm@379 180 extern void ne10_fft_c2c_1d_int32_neon (ne10_fft_cpx_int32_t *fout,
andrewm@379 181 ne10_fft_cpx_int32_t *fin,
andrewm@379 182 ne10_fft_cfg_int32_t cfg,
andrewm@379 183 ne10_int32_t inverse_fft,
andrewm@379 184 ne10_int32_t scaled_flag);
andrewm@379 185
andrewm@379 186 extern void ne10_fft_r2c_1d_int32_neon (ne10_fft_cpx_int32_t *fout,
andrewm@379 187 ne10_int32_t *fin,
andrewm@379 188 ne10_fft_r2c_cfg_int32_t cfg,
andrewm@379 189 ne10_int32_t scaled_flag);
andrewm@379 190
andrewm@379 191 extern void ne10_fft_c2r_1d_int32_neon (ne10_int32_t *fout,
andrewm@379 192 ne10_fft_cpx_int32_t *fin,
andrewm@379 193 ne10_fft_r2c_cfg_int32_t cfg,
andrewm@379 194 ne10_int32_t scaled_flag);
andrewm@379 195
andrewm@379 196 extern void ne10_fft_c2c_1d_int16_neon (ne10_fft_cpx_int16_t *fout,
andrewm@379 197 ne10_fft_cpx_int16_t *fin,
andrewm@379 198 ne10_fft_cfg_int16_t cfg,
andrewm@379 199 ne10_int32_t inverse_fft,
andrewm@379 200 ne10_int32_t scaled_flag);
andrewm@379 201
andrewm@379 202 extern void ne10_fft_r2c_1d_int16_neon (ne10_fft_cpx_int16_t *fout,
andrewm@379 203 ne10_int16_t *fin,
andrewm@379 204 ne10_fft_r2c_cfg_int16_t cfg,
andrewm@379 205 ne10_int32_t scaled_flag);
andrewm@379 206
andrewm@379 207 extern void ne10_fft_c2r_1d_int16_neon (ne10_int16_t *fout,
andrewm@379 208 ne10_fft_cpx_int16_t *fin,
andrewm@379 209 ne10_fft_r2c_cfg_int16_t cfg,
andrewm@379 210 ne10_int32_t scaled_flag);
andrewm@379 211
andrewm@379 212 /* fir functions*/
andrewm@379 213
andrewm@379 214 /* function pointers*/
andrewm@379 215 extern void (*ne10_fir_float) (const ne10_fir_instance_f32_t * S,
andrewm@379 216 ne10_float32_t * pSrc,
andrewm@379 217 ne10_float32_t * pDst,
andrewm@379 218 ne10_uint32_t blockSize);
andrewm@379 219
andrewm@379 220 extern void (*ne10_fir_decimate_float) (const ne10_fir_decimate_instance_f32_t * S,
andrewm@379 221 ne10_float32_t * pSrc,
andrewm@379 222 ne10_float32_t * pDst,
andrewm@379 223 ne10_uint32_t blockSize);
andrewm@379 224
andrewm@379 225 extern void (*ne10_fir_interpolate_float) (const ne10_fir_interpolate_instance_f32_t * S,
andrewm@379 226 ne10_float32_t * pSrc,
andrewm@379 227 ne10_float32_t * pDst,
andrewm@379 228 ne10_uint32_t blockSize);
andrewm@379 229
andrewm@379 230 extern void (*ne10_fir_lattice_float) (const ne10_fir_lattice_instance_f32_t * S,
andrewm@379 231 ne10_float32_t * pSrc,
andrewm@379 232 ne10_float32_t * pDst,
andrewm@379 233 ne10_uint32_t blockSize);
andrewm@379 234
andrewm@379 235 extern void (*ne10_fir_sparse_float) (ne10_fir_sparse_instance_f32_t * S,
andrewm@379 236 ne10_float32_t * pSrc,
andrewm@379 237 ne10_float32_t * pDst,
andrewm@379 238 ne10_float32_t * pScratchIn,
andrewm@379 239 ne10_uint32_t blockSize);
andrewm@379 240
andrewm@379 241
andrewm@379 242 /* init functions*/
andrewm@379 243 extern ne10_result_t ne10_fir_init_float (ne10_fir_instance_f32_t * S,
andrewm@379 244 ne10_uint16_t numTaps,
andrewm@379 245 ne10_float32_t * pCoeffs,
andrewm@379 246 ne10_float32_t * pState,
andrewm@379 247 ne10_uint32_t blockSize);
andrewm@379 248
andrewm@379 249 extern ne10_result_t ne10_fir_decimate_init_float (ne10_fir_decimate_instance_f32_t * S,
andrewm@379 250 ne10_uint16_t numTaps,
andrewm@379 251 ne10_uint8_t M,
andrewm@379 252 ne10_float32_t * pCoeffs,
andrewm@379 253 ne10_float32_t * pState,
andrewm@379 254 ne10_uint32_t blockSize);
andrewm@379 255
andrewm@379 256 extern ne10_result_t ne10_fir_interpolate_init_float (ne10_fir_interpolate_instance_f32_t * S,
andrewm@379 257 ne10_uint8_t L,
andrewm@379 258 ne10_uint16_t numTaps,
andrewm@379 259 ne10_float32_t * pCoeffs,
andrewm@379 260 ne10_float32_t * pState,
andrewm@379 261 ne10_uint32_t blockSize);
andrewm@379 262
andrewm@379 263 extern ne10_result_t ne10_fir_lattice_init_float (ne10_fir_lattice_instance_f32_t * S,
andrewm@379 264 ne10_uint16_t numStages,
andrewm@379 265 ne10_float32_t * pCoeffs,
andrewm@379 266 ne10_float32_t * pState);
andrewm@379 267
andrewm@379 268 extern ne10_result_t ne10_fir_sparse_init_float (ne10_fir_sparse_instance_f32_t * S,
andrewm@379 269 ne10_uint16_t numTaps,
andrewm@379 270 ne10_float32_t * pCoeffs,
andrewm@379 271 ne10_float32_t * pState,
andrewm@379 272 ne10_int32_t * pTapDelay,
andrewm@379 273 ne10_uint16_t maxDelay,
andrewm@379 274 ne10_uint32_t blockSize);
andrewm@379 275
andrewm@379 276 /* C version*/
andrewm@379 277 extern void ne10_fir_float_c (const ne10_fir_instance_f32_t * S,
andrewm@379 278 ne10_float32_t * pSrc,
andrewm@379 279 ne10_float32_t * pDst,
andrewm@379 280 ne10_uint32_t blockSize);
andrewm@379 281
andrewm@379 282 extern void ne10_fir_decimate_float_c (const ne10_fir_decimate_instance_f32_t * S,
andrewm@379 283 ne10_float32_t * pSrc,
andrewm@379 284 ne10_float32_t * pDst,
andrewm@379 285 ne10_uint32_t blockSize);
andrewm@379 286
andrewm@379 287 extern void ne10_fir_interpolate_float_c (const ne10_fir_interpolate_instance_f32_t * S,
andrewm@379 288 ne10_float32_t * pSrc,
andrewm@379 289 ne10_float32_t * pDst,
andrewm@379 290 ne10_uint32_t blockSize);
andrewm@379 291
andrewm@379 292 extern void ne10_fir_lattice_float_c (const ne10_fir_lattice_instance_f32_t * S,
andrewm@379 293 ne10_float32_t * pSrc,
andrewm@379 294 ne10_float32_t * pDst,
andrewm@379 295 ne10_uint32_t blockSize);
andrewm@379 296
andrewm@379 297 extern void ne10_fir_sparse_float_c (ne10_fir_sparse_instance_f32_t * S,
andrewm@379 298 ne10_float32_t * pSrc,
andrewm@379 299 ne10_float32_t * pDst,
andrewm@379 300 ne10_float32_t * pScratchIn,
andrewm@379 301 ne10_uint32_t blockSize);
andrewm@379 302
andrewm@379 303
andrewm@379 304 /* NEON version*/
andrewm@379 305
andrewm@379 306 /**
andrewm@379 307 * @addtogroup FIR
andrewm@379 308 * @{
andrewm@379 309 */
andrewm@379 310 #ifdef ENABLE_NE10_FIR_FLOAT_NEON
andrewm@379 311 extern void ne10_fir_float_neon (const ne10_fir_instance_f32_t * S,
andrewm@379 312 ne10_float32_t * pSrc,
andrewm@379 313 ne10_float32_t * pDst,
andrewm@379 314 ne10_uint32_t blockSize)
andrewm@379 315 asm ("ne10_fir_float_neon");
andrewm@379 316 #endif // ENABLE_NE10_FIR_FLOAT_NEON
andrewm@379 317 /** @} */ //end of FIR group
andrewm@379 318
andrewm@379 319 /**
andrewm@379 320 * @addtogroup FIR_Decimate
andrewm@379 321 * @{
andrewm@379 322 */
andrewm@379 323 #ifdef ENABLE_NE10_FIR_DECIMATE_FLOAT_NEON
andrewm@379 324 extern void ne10_fir_decimate_float_neon (const ne10_fir_decimate_instance_f32_t * S,
andrewm@379 325 ne10_float32_t *pSrc,
andrewm@379 326 ne10_float32_t *pDst,
andrewm@379 327 ne10_uint32_t blockSize) asm ("ne10_fir_decimate_float_neon");
andrewm@379 328
andrewm@379 329 /** @} */ //end of FIR_decimate group
andrewm@379 330 #endif // ENABLE_NE10_FIR_DECIMATE_FLOAT_NEON
andrewm@379 331 /**
andrewm@379 332 * @addtogroup FIR_Interpolate
andrewm@379 333 * @{
andrewm@379 334 */
andrewm@379 335 #ifdef ENABLE_NE10_FIR_INTERPOLATE_FLOAT_NEON
andrewm@379 336 extern void ne10_fir_interpolate_float_neon (const ne10_fir_interpolate_instance_f32_t * S,
andrewm@379 337 ne10_float32_t *pSrc,
andrewm@379 338 ne10_float32_t *pDst,
andrewm@379 339 ne10_uint32_t blockSize) asm ("ne10_fir_interpolate_float_neon");
andrewm@379 340 #endif // ENABLE_NE10_FIR_INTERPOLATE_FLOAT_NEON
andrewm@379 341 /** @} */ //end of FIR_interpolate group
andrewm@379 342
andrewm@379 343 /**
andrewm@379 344 * @addtogroup FIR_Lattice
andrewm@379 345 * @{
andrewm@379 346 */
andrewm@379 347 #ifdef ENABLE_NE10_FIR_LATTICE_FLOAT_NEON
andrewm@379 348 extern void ne10_fir_lattice_float_neon (const ne10_fir_lattice_instance_f32_t * S,
andrewm@379 349 ne10_float32_t * pSrc,
andrewm@379 350 ne10_float32_t * pDst,
andrewm@379 351 ne10_uint32_t blockSize) asm ("ne10_fir_lattice_float_neon");
andrewm@379 352 #endif // ENABLE_NE10_FIR_LATTICE_FLOAT_NEON
andrewm@379 353 /** @} */ //end of FIR_Lattice group
andrewm@379 354
andrewm@379 355 /**
andrewm@379 356 * @addtogroup FIR_Sparse
andrewm@379 357 * @{
andrewm@379 358 */
andrewm@379 359 #ifdef ENABLE_NE10_FIR_SPARSE_FLOAT_NEON
andrewm@379 360 extern void ne10_fir_sparse_float_neon (ne10_fir_sparse_instance_f32_t * S,
andrewm@379 361 ne10_float32_t * pSrc,
andrewm@379 362 ne10_float32_t * pDst,
andrewm@379 363 ne10_float32_t * pScratch,
andrewm@379 364 ne10_uint32_t blockSize)
andrewm@379 365 asm ("ne10_fir_sparse_float_neon");
andrewm@379 366 #endif // ENABLE_NE10_FIR_SPARSE_FLOAT_NEON
andrewm@379 367 /** @} */ //end of FIR_sparse group
andrewm@379 368
andrewm@379 369
andrewm@379 370 /* iir functions*/
andrewm@379 371
andrewm@379 372 /* function pointers*/
andrewm@379 373 extern void (*ne10_iir_lattice_float) (const ne10_iir_lattice_instance_f32_t * S,
andrewm@379 374 ne10_float32_t * pSrc,
andrewm@379 375 ne10_float32_t * pDst,
andrewm@379 376 ne10_uint32_t blockSize);
andrewm@379 377
andrewm@379 378 /* init functions*/
andrewm@379 379 extern ne10_result_t ne10_iir_lattice_init_float (ne10_iir_lattice_instance_f32_t * S,
andrewm@379 380 ne10_uint16_t numStages,
andrewm@379 381 ne10_float32_t * pkCoeffs,
andrewm@379 382 ne10_float32_t * pvCoeffs,
andrewm@379 383 ne10_float32_t * pState,
andrewm@379 384 ne10_uint32_t blockSize);
andrewm@379 385
andrewm@379 386
andrewm@379 387 /* C version*/
andrewm@379 388 extern void ne10_iir_lattice_float_c (const ne10_iir_lattice_instance_f32_t * S,
andrewm@379 389 ne10_float32_t * pSrc,
andrewm@379 390 ne10_float32_t * pDst,
andrewm@379 391 ne10_uint32_t blockSize);
andrewm@379 392
andrewm@379 393 /* NEON version*/
andrewm@379 394
andrewm@379 395 /**
andrewm@379 396 * @addtogroup IIR_Lattice
andrewm@379 397 * @{
andrewm@379 398 */
andrewm@379 399 #ifdef ENABLE_NE10_IIR_LATTICE_FLOAT_NEON
andrewm@379 400 extern void ne10_iir_lattice_float_neon (const ne10_iir_lattice_instance_f32_t * S,
andrewm@379 401 ne10_float32_t * pSrc,
andrewm@379 402 ne10_float32_t * pDst,
andrewm@379 403 ne10_uint32_t blockSize) asm ("ne10_iir_lattice_float_neon");
andrewm@379 404 #endif // ENABLE_NE10_IIR_LATTICE_FLOAT_NEON
andrewm@379 405 /** @} */ //end of IIR_Lattice group
andrewm@379 406
andrewm@379 407 #ifdef __cplusplus
andrewm@379 408 }
andrewm@379 409 #endif
andrewm@379 410
andrewm@379 411 #endif