Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | mjames | 1 | |
2 | #ifndef _REF_H |
||
3 | #define _REF_H |
||
4 | |||
5 | #include <math.h> |
||
6 | #include <stdint.h> |
||
7 | #include "arm_math.h" |
||
8 | |||
9 | #ifdef __cplusplus |
||
10 | extern "C" |
||
11 | { |
||
12 | #endif |
||
13 | |||
14 | #ifndef PI |
||
15 | #define PI 3.14159265358979f |
||
16 | #endif |
||
17 | |||
18 | /** |
||
19 | * @brief 8-bit fractional data type in 1.7 format. |
||
20 | */ |
||
21 | // typedef int8_t q7_t; |
||
22 | |||
23 | /** |
||
24 | * @brief 16-bit fractional data type in 1.15 format. |
||
25 | */ |
||
26 | // typedef int16_t q15_t; |
||
27 | |||
28 | /** |
||
29 | * @brief 32-bit fractional data type in 1.31 format. |
||
30 | */ |
||
31 | // typedef int32_t q31_t; |
||
32 | |||
33 | /** |
||
34 | * @brief 64-bit fractional data type in 1.63 format. |
||
35 | */ |
||
36 | // typedef int64_t q63_t; |
||
37 | |||
38 | /** |
||
39 | * @brief 32-bit floating-point type definition. |
||
40 | */ |
||
41 | // typedef float float32_t; |
||
42 | |||
43 | /** |
||
44 | * @brief 64-bit floating-point type definition. |
||
45 | */ |
||
46 | // typedef double float64_t; |
||
47 | |||
48 | |||
49 | /** |
||
50 | * @brief Error status returned by some functions in the library. |
||
51 | */ |
||
52 | |||
53 | typedef enum |
||
54 | { |
||
55 | REF_Q7 = 0, |
||
56 | REF_Q15, |
||
57 | REF_Q31, |
||
58 | REF_F32, |
||
59 | } dataType; |
||
60 | |||
61 | |||
62 | #define FLT_MAX 3.40282347e+38F |
||
63 | #define DBL_MAX 1.79769313486231571e+308 |
||
64 | |||
65 | #define FLT_MIN 1.175494351e-38F |
||
66 | #define DBL_MIN 2.22507385850720138e-308 |
||
67 | |||
68 | #define SCHAR_MIN (-128) |
||
69 | /* mimimum value for an object of type signed char */ |
||
70 | #define SCHAR_MAX 127 |
||
71 | /* maximum value for an object of type signed char */ |
||
72 | #define UCHAR_MAX 255 |
||
73 | /* maximum value for an object of type unsigned char */ |
||
74 | #define SHRT_MIN (-0x8000) |
||
75 | /* minimum value for an object of type short int */ |
||
76 | #define SHRT_MAX 0x7fff |
||
77 | /* maximum value for an object of type short int */ |
||
78 | #define USHRT_MAX 65535 |
||
79 | /* maximum value for an object of type unsigned short int */ |
||
80 | #define INT_MIN (~0x7fffffff) /* -2147483648 and 0x80000000 are unsigned */ |
||
81 | /* minimum value for an object of type int */ |
||
82 | #define INT_MAX 0x7fffffff |
||
83 | /* maximum value for an object of type int */ |
||
84 | #define UINT_MAX 0xffffffffU |
||
85 | /* maximum value for an object of type unsigned int */ |
||
86 | #define LONG_MIN (~0x7fffffffL) |
||
87 | /* minimum value for an object of type long int */ |
||
88 | #define LONG_MAX 0x7fffffffL |
||
89 | /* maximum value for an object of type long int */ |
||
90 | #define ULONG_MAX 0xffffffffUL |
||
91 | /* maximum value for an object of type unsigned long int */ |
||
92 | |||
93 | /* |
||
94 | * Ref Lib Global Variables |
||
95 | */ |
||
96 | extern float32_t scratchArray[]; |
||
97 | extern arm_cfft_instance_f32 ref_cfft_sR_f32_len8192; |
||
98 | |||
99 | /* |
||
100 | * Ref Lib Functions |
||
101 | */ |
||
102 | |||
103 | /* |
||
104 | * Helper Functions |
||
105 | */ |
||
106 | q31_t ref_sat_n(q31_t num, uint32_t bits); |
||
107 | |||
108 | q31_t ref_sat_q31(q63_t num); |
||
109 | |||
110 | q15_t ref_sat_q15(q31_t num); |
||
111 | |||
112 | q7_t ref_sat_q7(q15_t num); |
||
113 | |||
114 | float32_t ref_pow(float32_t a, uint32_t b); |
||
115 | |||
116 | extern float32_t tempMatrixArray[]; |
||
117 | |||
118 | float32_t ref_detrm(float32_t *pSrc, float32_t *temp, uint32_t size); |
||
119 | |||
120 | void ref_cofact(float32_t *pSrc, float32_t *pDst, float32_t *temp, uint32_t size); |
||
121 | |||
122 | float64_t ref_detrm64(float64_t *pSrc, float64_t *temp, uint32_t size); |
||
123 | |||
124 | void ref_cofact64(float64_t *pSrc, float64_t *pDst, float64_t *temp, uint32_t size); |
||
125 | |||
126 | /* |
||
127 | * Basic Math Functions |
||
128 | */ |
||
129 | void ref_abs_f32( |
||
130 | float32_t * pSrc, |
||
131 | float32_t * pDst, |
||
132 | uint32_t blockSize); |
||
133 | |||
134 | void ref_abs_q31( |
||
135 | q31_t * pSrc, |
||
136 | q31_t * pDst, |
||
137 | uint32_t blockSize); |
||
138 | |||
139 | void ref_abs_q15( |
||
140 | q15_t * pSrc, |
||
141 | q15_t * pDst, |
||
142 | uint32_t blockSize); |
||
143 | |||
144 | void ref_abs_q7( |
||
145 | q7_t * pSrc, |
||
146 | q7_t * pDst, |
||
147 | uint32_t blockSize); |
||
148 | |||
149 | void ref_add_f32( |
||
150 | float32_t * pSrcA, |
||
151 | float32_t * pSrcB, |
||
152 | float32_t * pDst, |
||
153 | uint32_t blockSize); |
||
154 | |||
155 | void ref_add_q31( |
||
156 | q31_t * pSrcA, |
||
157 | q31_t * pSrcB, |
||
158 | q31_t * pDst, |
||
159 | uint32_t blockSize); |
||
160 | |||
161 | void ref_add_q15( |
||
162 | q15_t * pSrcA, |
||
163 | q15_t * pSrcB, |
||
164 | q15_t * pDst, |
||
165 | uint32_t blockSize); |
||
166 | |||
167 | void ref_add_q7( |
||
168 | q7_t * pSrcA, |
||
169 | q7_t * pSrcB, |
||
170 | q7_t * pDst, |
||
171 | uint32_t blockSize); |
||
172 | |||
173 | void ref_dot_prod_f32( |
||
174 | float32_t * pSrcA, |
||
175 | float32_t * pSrcB, |
||
176 | uint32_t blockSize, |
||
177 | float32_t * result); |
||
178 | |||
179 | void ref_dot_prod_q31( |
||
180 | q31_t * pSrcA, |
||
181 | q31_t * pSrcB, |
||
182 | uint32_t blockSize, |
||
183 | q63_t * result); |
||
184 | |||
185 | void ref_dot_prod_q15( |
||
186 | q15_t * pSrcA, |
||
187 | q15_t * pSrcB, |
||
188 | uint32_t blockSize, |
||
189 | q63_t * result); |
||
190 | |||
191 | void ref_dot_prod_q7( |
||
192 | q7_t * pSrcA, |
||
193 | q7_t * pSrcB, |
||
194 | uint32_t blockSize, |
||
195 | q31_t * result); |
||
196 | |||
197 | void ref_mult_f32( |
||
198 | float32_t * pSrcA, |
||
199 | float32_t * pSrcB, |
||
200 | float32_t * pDst, |
||
201 | uint32_t blockSize); |
||
202 | |||
203 | void ref_mult_q31( |
||
204 | q31_t * pSrcA, |
||
205 | q31_t * pSrcB, |
||
206 | q31_t * pDst, |
||
207 | uint32_t blockSize); |
||
208 | |||
209 | void ref_mult_q15( |
||
210 | q15_t * pSrcA, |
||
211 | q15_t * pSrcB, |
||
212 | q15_t * pDst, |
||
213 | uint32_t blockSize); |
||
214 | |||
215 | void ref_mult_q7( |
||
216 | q7_t * pSrcA, |
||
217 | q7_t * pSrcB, |
||
218 | q7_t * pDst, |
||
219 | uint32_t blockSize); |
||
220 | |||
221 | void ref_negate_f32( |
||
222 | float32_t * pSrc, |
||
223 | float32_t * pDst, |
||
224 | uint32_t blockSize); |
||
225 | |||
226 | void ref_negate_q31( |
||
227 | q31_t * pSrc, |
||
228 | q31_t * pDst, |
||
229 | uint32_t blockSize); |
||
230 | |||
231 | void ref_negate_q15( |
||
232 | q15_t * pSrc, |
||
233 | q15_t * pDst, |
||
234 | uint32_t blockSize); |
||
235 | |||
236 | void ref_negate_q7( |
||
237 | q7_t * pSrc, |
||
238 | q7_t * pDst, |
||
239 | uint32_t blockSize); |
||
240 | |||
241 | void ref_offset_f32( |
||
242 | float32_t * pSrc, |
||
243 | float32_t offset, |
||
244 | float32_t * pDst, |
||
245 | uint32_t blockSize); |
||
246 | |||
247 | void ref_offset_q31( |
||
248 | q31_t * pSrc, |
||
249 | q31_t offset, |
||
250 | q31_t * pDst, |
||
251 | uint32_t blockSize); |
||
252 | |||
253 | void ref_offset_q15( |
||
254 | q15_t * pSrc, |
||
255 | q15_t offset, |
||
256 | q15_t * pDst, |
||
257 | uint32_t blockSize); |
||
258 | |||
259 | void ref_offset_q7( |
||
260 | q7_t * pSrc, |
||
261 | q7_t offset, |
||
262 | q7_t * pDst, |
||
263 | uint32_t blockSize); |
||
264 | |||
265 | void ref_scale_f32( |
||
266 | float32_t * pSrc, |
||
267 | float32_t scale, |
||
268 | float32_t * pDst, |
||
269 | uint32_t blockSize); |
||
270 | |||
271 | void ref_scale_q31( |
||
272 | q31_t * pSrc, |
||
273 | q31_t scaleFract, |
||
274 | int8_t shift, |
||
275 | q31_t * pDst, |
||
276 | uint32_t blockSize); |
||
277 | |||
278 | void ref_scale_q15( |
||
279 | q15_t * pSrc, |
||
280 | q15_t scaleFract, |
||
281 | int8_t shift, |
||
282 | q15_t * pDst, |
||
283 | uint32_t blockSize); |
||
284 | |||
285 | void ref_scale_q7( |
||
286 | q7_t * pSrc, |
||
287 | q7_t scaleFract, |
||
288 | int8_t shift, |
||
289 | q7_t * pDst, |
||
290 | uint32_t blockSize); |
||
291 | |||
292 | void ref_shift_q31( |
||
293 | q31_t * pSrc, |
||
294 | int8_t shiftBits, |
||
295 | q31_t * pDst, |
||
296 | uint32_t blockSize); |
||
297 | |||
298 | void ref_shift_q15( |
||
299 | q15_t * pSrc, |
||
300 | int8_t shiftBits, |
||
301 | q15_t * pDst, |
||
302 | uint32_t blockSize); |
||
303 | |||
304 | void ref_shift_q7( |
||
305 | q7_t * pSrc, |
||
306 | int8_t shiftBits, |
||
307 | q7_t * pDst, |
||
308 | uint32_t blockSize); |
||
309 | |||
310 | void ref_sub_f32( |
||
311 | float32_t * pSrcA, |
||
312 | float32_t * pSrcB, |
||
313 | float32_t * pDst, |
||
314 | uint32_t blockSize); |
||
315 | |||
316 | void ref_sub_q31( |
||
317 | q31_t * pSrcA, |
||
318 | q31_t * pSrcB, |
||
319 | q31_t * pDst, |
||
320 | uint32_t blockSize); |
||
321 | |||
322 | void ref_sub_q15( |
||
323 | q15_t * pSrcA, |
||
324 | q15_t * pSrcB, |
||
325 | q15_t * pDst, |
||
326 | uint32_t blockSize); |
||
327 | |||
328 | void ref_sub_q7( |
||
329 | q7_t * pSrcA, |
||
330 | q7_t * pSrcB, |
||
331 | q7_t * pDst, |
||
332 | uint32_t blockSize); |
||
333 | |||
334 | /* |
||
335 | * Complex Math Functions |
||
336 | */ |
||
337 | void ref_cmplx_conj_f32( |
||
338 | float32_t * pSrc, |
||
339 | float32_t * pDst, |
||
340 | uint32_t numSamples); |
||
341 | |||
342 | void ref_cmplx_conj_q31( |
||
343 | q31_t * pSrc, |
||
344 | q31_t * pDst, |
||
345 | uint32_t numSamples); |
||
346 | |||
347 | void ref_cmplx_conj_q15( |
||
348 | q15_t * pSrc, |
||
349 | q15_t * pDst, |
||
350 | uint32_t numSamples); |
||
351 | |||
352 | void ref_cmplx_dot_prod_f32( |
||
353 | float32_t * pSrcA, |
||
354 | float32_t * pSrcB, |
||
355 | uint32_t numSamples, |
||
356 | float32_t * realResult, |
||
357 | float32_t * imagResult); |
||
358 | |||
359 | void ref_cmplx_dot_prod_q31( |
||
360 | q31_t * pSrcA, |
||
361 | q31_t * pSrcB, |
||
362 | uint32_t numSamples, |
||
363 | q63_t * realResult, |
||
364 | q63_t * imagResult); |
||
365 | |||
366 | void ref_cmplx_dot_prod_q15( |
||
367 | q15_t * pSrcA, |
||
368 | q15_t * pSrcB, |
||
369 | uint32_t numSamples, |
||
370 | q31_t * realResult, |
||
371 | q31_t * imagResult); |
||
372 | |||
373 | void ref_cmplx_mag_f32( |
||
374 | float32_t * pSrc, |
||
375 | float32_t * pDst, |
||
376 | uint32_t numSamples); |
||
377 | |||
378 | void ref_cmplx_mag_q31( |
||
379 | q31_t * pSrc, |
||
380 | q31_t * pDst, |
||
381 | uint32_t numSamples); |
||
382 | |||
383 | void ref_cmplx_mag_q15( |
||
384 | q15_t * pSrc, |
||
385 | q15_t * pDst, |
||
386 | uint32_t numSamples); |
||
387 | |||
388 | void ref_cmplx_mag_squared_f32( |
||
389 | float32_t * pSrc, |
||
390 | float32_t * pDst, |
||
391 | uint32_t numSamples); |
||
392 | |||
393 | void ref_cmplx_mag_squared_q31( |
||
394 | q31_t * pSrc, |
||
395 | q31_t * pDst, |
||
396 | uint32_t numSamples); |
||
397 | |||
398 | void ref_cmplx_mag_squared_q15( |
||
399 | q15_t * pSrc, |
||
400 | q15_t * pDst, |
||
401 | uint32_t numSamples); |
||
402 | |||
403 | void ref_cmplx_mult_cmplx_f32( |
||
404 | float32_t * pSrcA, |
||
405 | float32_t * pSrcB, |
||
406 | float32_t * pDst, |
||
407 | uint32_t numSamples); |
||
408 | |||
409 | void ref_cmplx_mult_cmplx_q31( |
||
410 | q31_t * pSrcA, |
||
411 | q31_t * pSrcB, |
||
412 | q31_t * pDst, |
||
413 | uint32_t numSamples); |
||
414 | |||
415 | void ref_cmplx_mult_cmplx_q15( |
||
416 | q15_t * pSrcA, |
||
417 | q15_t * pSrcB, |
||
418 | q15_t * pDst, |
||
419 | uint32_t numSamples); |
||
420 | |||
421 | void ref_cmplx_mult_real_f32( |
||
422 | float32_t * pSrcCmplx, |
||
423 | float32_t * pSrcReal, |
||
424 | float32_t * pCmplxDst, |
||
425 | uint32_t numSamples); |
||
426 | |||
427 | void ref_cmplx_mult_real_q31( |
||
428 | q31_t * pSrcCmplx, |
||
429 | q31_t * pSrcReal, |
||
430 | q31_t * pCmplxDst, |
||
431 | uint32_t numSamples); |
||
432 | |||
433 | void ref_cmplx_mult_real_q15( |
||
434 | q15_t * pSrcCmplx, |
||
435 | q15_t * pSrcReal, |
||
436 | q15_t * pCmplxDst, |
||
437 | uint32_t numSamples); |
||
438 | |||
439 | /* |
||
440 | * Controller Functions |
||
441 | */ |
||
442 | void ref_sin_cos_f32( |
||
443 | float32_t theta, |
||
444 | float32_t * pSinVal, |
||
445 | float32_t * pCosVal); |
||
446 | |||
447 | void ref_sin_cos_q31( |
||
448 | q31_t theta, |
||
449 | q31_t * pSinVal, |
||
450 | q31_t * pCosVal); |
||
451 | |||
452 | float32_t ref_pid_f32( |
||
453 | arm_pid_instance_f32 * S, |
||
454 | float32_t in); |
||
455 | |||
456 | q31_t ref_pid_q31( |
||
457 | arm_pid_instance_q31 * S, |
||
458 | q31_t in); |
||
459 | |||
460 | q15_t ref_pid_q15( |
||
461 | arm_pid_instance_q15 * S, |
||
462 | q15_t in); |
||
463 | |||
464 | /* |
||
465 | * Fast Math Functions |
||
466 | */ |
||
467 | #define ref_sin_f32(a) sinf(a) |
||
468 | |||
469 | q31_t ref_sin_q31(q31_t x); |
||
470 | |||
471 | q15_t ref_sin_q15(q15_t x); |
||
472 | |||
473 | #define ref_cos_f32(a) cosf(a) |
||
474 | |||
475 | q31_t ref_cos_q31(q31_t x); |
||
476 | |||
477 | q15_t ref_cos_q15(q15_t x); |
||
478 | |||
479 | arm_status ref_sqrt_q31(q31_t in, q31_t * pOut); |
||
480 | |||
481 | arm_status ref_sqrt_q15(q15_t in, q15_t * pOut); |
||
482 | |||
483 | /* |
||
484 | * Filtering Functions |
||
485 | */ |
||
486 | void ref_biquad_cascade_df2T_f32( |
||
487 | const arm_biquad_cascade_df2T_instance_f32 * S, |
||
488 | float32_t * pSrc, |
||
489 | float32_t * pDst, |
||
490 | uint32_t blockSize); |
||
491 | |||
492 | void ref_biquad_cascade_stereo_df2T_f32( |
||
493 | const arm_biquad_cascade_stereo_df2T_instance_f32 * S, |
||
494 | float32_t * pSrc, |
||
495 | float32_t * pDst, |
||
496 | uint32_t blockSize); |
||
497 | |||
498 | void ref_biquad_cascade_df2T_f64( |
||
499 | const arm_biquad_cascade_df2T_instance_f64 * S, |
||
500 | float64_t * pSrc, |
||
501 | float64_t * pDst, |
||
502 | uint32_t blockSize); |
||
503 | |||
504 | void ref_biquad_cascade_df1_f32( |
||
505 | const arm_biquad_casd_df1_inst_f32 * S, |
||
506 | float32_t * pSrc, |
||
507 | float32_t * pDst, |
||
508 | uint32_t blockSize); |
||
509 | |||
510 | void ref_biquad_cas_df1_32x64_q31( |
||
511 | const arm_biquad_cas_df1_32x64_ins_q31 * S, |
||
512 | q31_t * pSrc, |
||
513 | q31_t * pDst, |
||
514 | uint32_t blockSize); |
||
515 | |||
516 | void ref_biquad_cascade_df1_q31( |
||
517 | const arm_biquad_casd_df1_inst_q31 * S, |
||
518 | q31_t * pSrc, |
||
519 | q31_t * pDst, |
||
520 | uint32_t blockSize); |
||
521 | |||
522 | void ref_biquad_cascade_df1_fast_q31( |
||
523 | const arm_biquad_casd_df1_inst_q31 * S, |
||
524 | q31_t * pSrc, |
||
525 | q31_t * pDst, |
||
526 | uint32_t blockSize); |
||
527 | |||
528 | void ref_biquad_cascade_df1_fast_q15( |
||
529 | const arm_biquad_casd_df1_inst_q15 * S, |
||
530 | q15_t * pSrc, |
||
531 | q15_t * pDst, |
||
532 | uint32_t blockSize); |
||
533 | |||
534 | void ref_biquad_cascade_df1_q15( |
||
535 | const arm_biquad_casd_df1_inst_q15 * S, |
||
536 | q15_t * pSrc, |
||
537 | q15_t * pDst, |
||
538 | uint32_t blockSize); |
||
539 | |||
540 | void ref_conv_f32( |
||
541 | float32_t * pSrcA, |
||
542 | uint32_t srcALen, |
||
543 | float32_t * pSrcB, |
||
544 | uint32_t srcBLen, |
||
545 | float32_t * pDst); |
||
546 | |||
547 | arm_status ref_conv_partial_f32( |
||
548 | float32_t * pSrcA, |
||
549 | uint32_t srcALen, |
||
550 | float32_t * pSrcB, |
||
551 | uint32_t srcBLen, |
||
552 | float32_t * pDst, |
||
553 | uint32_t firstIndex, |
||
554 | uint32_t numPoints); |
||
555 | |||
556 | void ref_conv_q31( |
||
557 | q31_t * pSrcA, |
||
558 | uint32_t srcALen, |
||
559 | q31_t * pSrcB, |
||
560 | uint32_t srcBLen, |
||
561 | q31_t * pDst); |
||
562 | |||
563 | void ref_conv_fast_q31( |
||
564 | q31_t * pSrcA, |
||
565 | uint32_t srcALen, |
||
566 | q31_t * pSrcB, |
||
567 | uint32_t srcBLen, |
||
568 | q31_t * pDst); |
||
569 | |||
570 | arm_status ref_conv_partial_q31( |
||
571 | q31_t * pSrcA, |
||
572 | uint32_t srcALen, |
||
573 | q31_t * pSrcB, |
||
574 | uint32_t srcBLen, |
||
575 | q31_t * pDst, |
||
576 | uint32_t firstIndex, |
||
577 | uint32_t numPoints); |
||
578 | |||
579 | arm_status ref_conv_partial_fast_q31( |
||
580 | q31_t * pSrcA, |
||
581 | uint32_t srcALen, |
||
582 | q31_t * pSrcB, |
||
583 | uint32_t srcBLen, |
||
584 | q31_t * pDst, |
||
585 | uint32_t firstIndex, |
||
586 | uint32_t numPoints); |
||
587 | |||
588 | void ref_conv_q15( |
||
589 | q15_t * pSrcA, |
||
590 | uint32_t srcALen, |
||
591 | q15_t * pSrcB, |
||
592 | uint32_t srcBLen, |
||
593 | q15_t * pDst); |
||
594 | |||
595 | #define ref_conv_opt_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
596 | pScratch1, pScratch2) \ |
||
597 | ref_conv_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst) |
||
598 | |||
599 | void ref_conv_fast_q15( |
||
600 | q15_t * pSrcA, |
||
601 | uint32_t srcALen, |
||
602 | q15_t * pSrcB, |
||
603 | uint32_t srcBLen, |
||
604 | q15_t * pDst); |
||
605 | |||
606 | void ref_conv_fast_opt_q15( |
||
607 | q15_t * pSrcA, |
||
608 | uint32_t srcALen, |
||
609 | q15_t * pSrcB, |
||
610 | uint32_t srcBLen, |
||
611 | q15_t * pDst, |
||
612 | q15_t * pScratch1, |
||
613 | q15_t * pScratch2); |
||
614 | |||
615 | arm_status ref_conv_partial_q15( |
||
616 | q15_t * pSrcA, |
||
617 | uint32_t srcALen, |
||
618 | q15_t * pSrcB, |
||
619 | uint32_t srcBLen, |
||
620 | q15_t * pDst, |
||
621 | uint32_t firstIndex, |
||
622 | uint32_t numPoints); |
||
623 | |||
624 | #define ref_conv_partial_opt_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
625 | firstIndex, numPoints, \ |
||
626 | pScratch1, pScratch2) \ |
||
627 | ref_conv_partial_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
628 | firstIndex, numPoints) |
||
629 | |||
630 | arm_status ref_conv_partial_fast_q15( |
||
631 | q15_t * pSrcA, |
||
632 | uint32_t srcALen, |
||
633 | q15_t * pSrcB, |
||
634 | uint32_t srcBLen, |
||
635 | q15_t * pDst, |
||
636 | uint32_t firstIndex, |
||
637 | uint32_t numPoints); |
||
638 | |||
639 | arm_status ref_conv_partial_fast_opt_q15( |
||
640 | q15_t * pSrcA, |
||
641 | uint32_t srcALen, |
||
642 | q15_t * pSrcB, |
||
643 | uint32_t srcBLen, |
||
644 | q15_t * pDst, |
||
645 | uint32_t firstIndex, |
||
646 | uint32_t numPoints, |
||
647 | q15_t * pScratch1, |
||
648 | q15_t * pScratch2); |
||
649 | |||
650 | void ref_conv_q7( |
||
651 | q7_t * pSrcA, |
||
652 | uint32_t srcALen, |
||
653 | q7_t * pSrcB, |
||
654 | uint32_t srcBLen, |
||
655 | q7_t * pDst); |
||
656 | |||
657 | #define ref_conv_opt_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
658 | pScratch1, pScratch2) \ |
||
659 | ref_conv_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst) |
||
660 | |||
661 | arm_status ref_conv_partial_q7( |
||
662 | q7_t * pSrcA, |
||
663 | uint32_t srcALen, |
||
664 | q7_t * pSrcB, |
||
665 | uint32_t srcBLen, |
||
666 | q7_t * pDst, |
||
667 | uint32_t firstIndex, |
||
668 | uint32_t numPoints); |
||
669 | |||
670 | #define ref_conv_partial_opt_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
671 | firstIndex, numPoints, \ |
||
672 | pScratch1, pScratch2) \ |
||
673 | ref_conv_partial_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
674 | firstIndex, numPoints) |
||
675 | |||
676 | void ref_correlate_f32( |
||
677 | float32_t * pSrcA, |
||
678 | uint32_t srcALen, |
||
679 | float32_t * pSrcB, |
||
680 | uint32_t srcBLen, |
||
681 | float32_t * pDst); |
||
682 | |||
683 | void ref_correlate_q31( |
||
684 | q31_t * pSrcA, |
||
685 | uint32_t srcALen, |
||
686 | q31_t * pSrcB, |
||
687 | uint32_t srcBLen, |
||
688 | q31_t * pDst); |
||
689 | |||
690 | void ref_correlate_fast_q31( |
||
691 | q31_t * pSrcA, |
||
692 | uint32_t srcALen, |
||
693 | q31_t * pSrcB, |
||
694 | uint32_t srcBLen, |
||
695 | q31_t * pDst); |
||
696 | |||
697 | void ref_correlate_q15( |
||
698 | q15_t * pSrcA, |
||
699 | uint32_t srcALen, |
||
700 | q15_t * pSrcB, |
||
701 | uint32_t srcBLen, |
||
702 | q15_t * pDst); |
||
703 | |||
704 | #define ref_correlate_opt_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
705 | pScratch1) \ |
||
706 | ref_correlate_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst) |
||
707 | |||
708 | void ref_correlate_fast_q15( |
||
709 | q15_t * pSrcA, |
||
710 | uint32_t srcALen, |
||
711 | q15_t * pSrcB, |
||
712 | uint32_t srcBLen, |
||
713 | q15_t * pDst); |
||
714 | |||
715 | void ref_correlate_fast_opt_q15( |
||
716 | q15_t * pSrcA, |
||
717 | uint32_t srcALen, |
||
718 | q15_t * pSrcB, |
||
719 | uint32_t srcBLen, |
||
720 | q15_t * pDst, |
||
721 | q15_t * pScratch); |
||
722 | |||
723 | void ref_correlate_q7( |
||
724 | q7_t * pSrcA, |
||
725 | uint32_t srcALen, |
||
726 | q7_t * pSrcB, |
||
727 | uint32_t srcBLen, |
||
728 | q7_t * pDst); |
||
729 | |||
730 | #define ref_correlate_opt_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, \ |
||
731 | pScratch1, pScratch2) \ |
||
732 | ref_correlate_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst) |
||
733 | |||
734 | void ref_fir_f32( |
||
735 | const arm_fir_instance_f32 * S, |
||
736 | float32_t * pSrc, |
||
737 | float32_t * pDst, |
||
738 | uint32_t blockSize); |
||
739 | |||
740 | void ref_fir_q31( |
||
741 | const arm_fir_instance_q31 * S, |
||
742 | q31_t * pSrc, |
||
743 | q31_t * pDst, |
||
744 | uint32_t blockSize); |
||
745 | |||
746 | void ref_fir_fast_q31( |
||
747 | const arm_fir_instance_q31 * S, |
||
748 | q31_t * pSrc, |
||
749 | q31_t * pDst, |
||
750 | uint32_t blockSize); |
||
751 | |||
752 | void ref_fir_q15( |
||
753 | const arm_fir_instance_q15 * S, |
||
754 | q15_t * pSrc, |
||
755 | q15_t * pDst, |
||
756 | uint32_t blockSize); |
||
757 | |||
758 | void ref_fir_fast_q15( |
||
759 | const arm_fir_instance_q15 * S, |
||
760 | q15_t * pSrc, |
||
761 | q15_t * pDst, |
||
762 | uint32_t blockSize); |
||
763 | |||
764 | void ref_fir_q7( |
||
765 | const arm_fir_instance_q7 * S, |
||
766 | q7_t * pSrc, |
||
767 | q7_t * pDst, |
||
768 | uint32_t blockSize); |
||
769 | |||
770 | void ref_fir_decimate_f32( |
||
771 | const arm_fir_decimate_instance_f32 * S, |
||
772 | float32_t * pSrc, |
||
773 | float32_t * pDst, |
||
774 | uint32_t blockSize); |
||
775 | |||
776 | void ref_fir_decimate_q31( |
||
777 | const arm_fir_decimate_instance_q31 * S, |
||
778 | q31_t * pSrc, |
||
779 | q31_t * pDst, |
||
780 | uint32_t blockSize); |
||
781 | |||
782 | void ref_fir_decimate_fast_q31( |
||
783 | const arm_fir_decimate_instance_q31 * S, |
||
784 | q31_t * pSrc, |
||
785 | q31_t * pDst, |
||
786 | uint32_t blockSize); |
||
787 | |||
788 | void ref_fir_decimate_q15( |
||
789 | const arm_fir_decimate_instance_q15 * S, |
||
790 | q15_t * pSrc, |
||
791 | q15_t * pDst, |
||
792 | uint32_t blockSize); |
||
793 | |||
794 | void ref_fir_decimate_fast_q15( |
||
795 | const arm_fir_decimate_instance_q15 * S, |
||
796 | q15_t * pSrc, |
||
797 | q15_t * pDst, |
||
798 | uint32_t blockSize); |
||
799 | |||
800 | void ref_fir_lattice_f32( |
||
801 | const arm_fir_lattice_instance_f32 * S, |
||
802 | float32_t * pSrc, |
||
803 | float32_t * pDst, |
||
804 | uint32_t blockSize); |
||
805 | |||
806 | void ref_fir_lattice_q31( |
||
807 | const arm_fir_lattice_instance_q31 * S, |
||
808 | q31_t * pSrc, |
||
809 | q31_t * pDst, |
||
810 | uint32_t blockSize); |
||
811 | |||
812 | void ref_fir_lattice_q15( |
||
813 | const arm_fir_lattice_instance_q15 * S, |
||
814 | q15_t * pSrc, |
||
815 | q15_t * pDst, |
||
816 | uint32_t blockSize); |
||
817 | |||
818 | void ref_fir_sparse_f32( |
||
819 | arm_fir_sparse_instance_f32 * S, |
||
820 | float32_t * pSrc, |
||
821 | float32_t * pDst, |
||
822 | float32_t * pScratchIn, |
||
823 | uint32_t blockSize); |
||
824 | |||
825 | void ref_fir_sparse_q31( |
||
826 | arm_fir_sparse_instance_q31 * S, |
||
827 | q31_t * pSrc, |
||
828 | q31_t * pDst, |
||
829 | q31_t * pScratchIn, |
||
830 | uint32_t blockSize); |
||
831 | |||
832 | void ref_fir_sparse_q15( |
||
833 | arm_fir_sparse_instance_q15 * S, |
||
834 | q15_t * pSrc, |
||
835 | q15_t * pDst, |
||
836 | q15_t * pScratchIn, |
||
837 | q31_t * pScratchOut, |
||
838 | uint32_t blockSize); |
||
839 | |||
840 | void ref_fir_sparse_q7( |
||
841 | arm_fir_sparse_instance_q7 * S, |
||
842 | q7_t *pSrc, |
||
843 | q7_t *pDst, |
||
844 | q7_t *pScratchIn, |
||
845 | q31_t * pScratchOut, |
||
846 | uint32_t blockSize); |
||
847 | |||
848 | void ref_iir_lattice_f32( |
||
849 | const arm_iir_lattice_instance_f32 * S, |
||
850 | float32_t * pSrc, |
||
851 | float32_t * pDst, |
||
852 | uint32_t blockSize); |
||
853 | |||
854 | void ref_iir_lattice_q31( |
||
855 | const arm_iir_lattice_instance_q31 * S, |
||
856 | q31_t * pSrc, |
||
857 | q31_t * pDst, |
||
858 | uint32_t blockSize); |
||
859 | |||
860 | void ref_iir_lattice_q15( |
||
861 | const arm_iir_lattice_instance_q15 * S, |
||
862 | q15_t * pSrc, |
||
863 | q15_t * pDst, |
||
864 | uint32_t blockSize); |
||
865 | |||
866 | void ref_lms_f32( |
||
867 | const arm_lms_instance_f32 * S, |
||
868 | float32_t * pSrc, |
||
869 | float32_t * pRef, |
||
870 | float32_t * pOut, |
||
871 | float32_t * pErr, |
||
872 | uint32_t blockSize); |
||
873 | |||
874 | void ref_lms_norm_f32( |
||
875 | arm_lms_norm_instance_f32 * S, |
||
876 | float32_t * pSrc, |
||
877 | float32_t * pRef, |
||
878 | float32_t * pOut, |
||
879 | float32_t * pErr, |
||
880 | uint32_t blockSize); |
||
881 | |||
882 | void ref_lms_q31( |
||
883 | const arm_lms_instance_q31 * S, |
||
884 | q31_t * pSrc, |
||
885 | q31_t * pRef, |
||
886 | q31_t * pOut, |
||
887 | q31_t * pErr, |
||
888 | uint32_t blockSize); |
||
889 | |||
890 | void ref_lms_norm_q31( |
||
891 | arm_lms_norm_instance_q31 * S, |
||
892 | q31_t * pSrc, |
||
893 | q31_t * pRef, |
||
894 | q31_t * pOut, |
||
895 | q31_t * pErr, |
||
896 | uint32_t blockSize); |
||
897 | |||
898 | void ref_lms_q15( |
||
899 | const arm_lms_instance_q15 * S, |
||
900 | q15_t * pSrc, |
||
901 | q15_t * pRef, |
||
902 | q15_t * pOut, |
||
903 | q15_t * pErr, |
||
904 | uint32_t blockSize); |
||
905 | |||
906 | void ref_lms_norm_q15( |
||
907 | arm_lms_norm_instance_q15 * S, |
||
908 | q15_t * pSrc, |
||
909 | q15_t * pRef, |
||
910 | q15_t * pOut, |
||
911 | q15_t * pErr, |
||
912 | uint32_t blockSize); |
||
913 | |||
914 | void ref_fir_interpolate_f32( |
||
915 | const arm_fir_interpolate_instance_f32 * S, |
||
916 | float32_t * pSrc, |
||
917 | float32_t * pDst, |
||
918 | uint32_t blockSize); |
||
919 | |||
920 | void ref_fir_interpolate_q31( |
||
921 | const arm_fir_interpolate_instance_q31 * S, |
||
922 | q31_t * pSrc, |
||
923 | q31_t * pDst, |
||
924 | uint32_t blockSize); |
||
925 | |||
926 | void ref_fir_interpolate_q15( |
||
927 | const arm_fir_interpolate_instance_q15 * S, |
||
928 | q15_t * pSrc, |
||
929 | q15_t * pDst, |
||
930 | uint32_t blockSize); |
||
931 | |||
932 | /* |
||
933 | * Matrix Functions |
||
934 | */ |
||
935 | arm_status ref_mat_cmplx_mult_f32( |
||
936 | const arm_matrix_instance_f32 * pSrcA, |
||
937 | const arm_matrix_instance_f32 * pSrcB, |
||
938 | arm_matrix_instance_f32 * pDst); |
||
939 | |||
940 | arm_status ref_mat_cmplx_mult_q31( |
||
941 | const arm_matrix_instance_q31 * pSrcA, |
||
942 | const arm_matrix_instance_q31 * pSrcB, |
||
943 | arm_matrix_instance_q31 * pDst); |
||
944 | |||
945 | arm_status ref_mat_cmplx_mult_q15( |
||
946 | const arm_matrix_instance_q15 * pSrcA, |
||
947 | const arm_matrix_instance_q15 * pSrcB, |
||
948 | arm_matrix_instance_q15 * pDst); |
||
949 | |||
950 | arm_status ref_mat_inverse_f32( |
||
951 | const arm_matrix_instance_f32 * pSrc, |
||
952 | arm_matrix_instance_f32 * pDst); |
||
953 | |||
954 | arm_status ref_mat_inverse_f64( |
||
955 | const arm_matrix_instance_f64 * pSrc, |
||
956 | arm_matrix_instance_f64 * pDst); |
||
957 | |||
958 | arm_status ref_mat_mult_f32( |
||
959 | const arm_matrix_instance_f32 * pSrcA, |
||
960 | const arm_matrix_instance_f32 * pSrcB, |
||
961 | arm_matrix_instance_f32 * pDst); |
||
962 | |||
963 | arm_status ref_mat_mult_q31( |
||
964 | const arm_matrix_instance_q31 * pSrcA, |
||
965 | const arm_matrix_instance_q31 * pSrcB, |
||
966 | arm_matrix_instance_q31 * pDst); |
||
967 | |||
968 | /* Alias for testing purposes*/ |
||
969 | #define ref_mat_mult_fast_q31 ref_mat_mult_q31 |
||
970 | |||
971 | arm_status ref_mat_mult_q15( |
||
972 | const arm_matrix_instance_q15 * pSrcA, |
||
973 | const arm_matrix_instance_q15 * pSrcB, |
||
974 | arm_matrix_instance_q15 * pDst); |
||
975 | |||
976 | /* Alias for testing purposes*/ |
||
977 | #define ref_mat_mult_fast_q15 ref_mat_mult_q15 |
||
978 | |||
979 | arm_status ref_mat_scale_f32( |
||
980 | const arm_matrix_instance_f32 * pSrc, |
||
981 | float32_t scale, |
||
982 | arm_matrix_instance_f32 * pDst); |
||
983 | |||
984 | arm_status ref_mat_scale_q31( |
||
985 | const arm_matrix_instance_q31 * pSrc, |
||
986 | q31_t scale, |
||
987 | int32_t shift, |
||
988 | arm_matrix_instance_q31 * pDst); |
||
989 | |||
990 | arm_status ref_mat_scale_q15( |
||
991 | const arm_matrix_instance_q15 * pSrc, |
||
992 | q15_t scale, |
||
993 | int32_t shift, |
||
994 | arm_matrix_instance_q15 * pDst); |
||
995 | |||
996 | arm_status ref_mat_sub_f32( |
||
997 | const arm_matrix_instance_f32 * pSrcA, |
||
998 | const arm_matrix_instance_f32 * pSrcB, |
||
999 | arm_matrix_instance_f32 * pDst); |
||
1000 | |||
1001 | arm_status ref_mat_sub_q31( |
||
1002 | const arm_matrix_instance_q31 * pSrcA, |
||
1003 | const arm_matrix_instance_q31 * pSrcB, |
||
1004 | arm_matrix_instance_q31 * pDst); |
||
1005 | |||
1006 | arm_status ref_mat_sub_q15( |
||
1007 | const arm_matrix_instance_q15 * pSrcA, |
||
1008 | const arm_matrix_instance_q15 * pSrcB, |
||
1009 | arm_matrix_instance_q15 * pDst); |
||
1010 | |||
1011 | arm_status ref_mat_trans_f64( |
||
1012 | const arm_matrix_instance_f64 * pSrc, |
||
1013 | arm_matrix_instance_f64 * pDst); |
||
1014 | |||
1015 | arm_status ref_mat_trans_f32( |
||
1016 | const arm_matrix_instance_f32 * pSrc, |
||
1017 | arm_matrix_instance_f32 * pDst); |
||
1018 | |||
1019 | arm_status ref_mat_trans_q31( |
||
1020 | const arm_matrix_instance_q31 * pSrc, |
||
1021 | arm_matrix_instance_q31 * pDst); |
||
1022 | |||
1023 | arm_status ref_mat_trans_q15( |
||
1024 | const arm_matrix_instance_q15 * pSrc, |
||
1025 | arm_matrix_instance_q15 * pDst); |
||
1026 | |||
1027 | arm_status ref_mat_add_f32( |
||
1028 | const arm_matrix_instance_f32 * pSrcA, |
||
1029 | const arm_matrix_instance_f32 * pSrcB, |
||
1030 | arm_matrix_instance_f32 * pDst); |
||
1031 | |||
1032 | arm_status ref_mat_add_q31( |
||
1033 | const arm_matrix_instance_q31 * pSrcA, |
||
1034 | const arm_matrix_instance_q31 * pSrcB, |
||
1035 | arm_matrix_instance_q31 * pDst); |
||
1036 | |||
1037 | arm_status ref_mat_add_q15( |
||
1038 | const arm_matrix_instance_q15 * pSrcA, |
||
1039 | const arm_matrix_instance_q15 * pSrcB, |
||
1040 | arm_matrix_instance_q15 * pDst); |
||
1041 | |||
1042 | /* |
||
1043 | * Statistics Functions |
||
1044 | */ |
||
1045 | void ref_max_f32( |
||
1046 | float32_t * pSrc, |
||
1047 | uint32_t blockSize, |
||
1048 | float32_t * pResult, |
||
1049 | uint32_t * pIndex); |
||
1050 | |||
1051 | void ref_max_q31( |
||
1052 | q31_t * pSrc, |
||
1053 | uint32_t blockSize, |
||
1054 | q31_t * pResult, |
||
1055 | uint32_t * pIndex); |
||
1056 | |||
1057 | void ref_max_q15( |
||
1058 | q15_t * pSrc, |
||
1059 | uint32_t blockSize, |
||
1060 | q15_t * pResult, |
||
1061 | uint32_t * pIndex); |
||
1062 | |||
1063 | void ref_max_q7( |
||
1064 | q7_t * pSrc, |
||
1065 | uint32_t blockSize, |
||
1066 | q7_t * pResult, |
||
1067 | uint32_t * pIndex); |
||
1068 | |||
1069 | void ref_mean_f32( |
||
1070 | float32_t * pSrc, |
||
1071 | uint32_t blockSize, |
||
1072 | float32_t * pResult); |
||
1073 | |||
1074 | void ref_mean_q31( |
||
1075 | q31_t * pSrc, |
||
1076 | uint32_t blockSize, |
||
1077 | q31_t * pResult); |
||
1078 | |||
1079 | void ref_mean_q15( |
||
1080 | q15_t * pSrc, |
||
1081 | uint32_t blockSize, |
||
1082 | q15_t * pResult); |
||
1083 | |||
1084 | void ref_mean_q7( |
||
1085 | q7_t * pSrc, |
||
1086 | uint32_t blockSize, |
||
1087 | q7_t * pResult); |
||
1088 | |||
1089 | void ref_min_f32( |
||
1090 | float32_t * pSrc, |
||
1091 | uint32_t blockSize, |
||
1092 | float32_t * pResult, |
||
1093 | uint32_t * pIndex); |
||
1094 | |||
1095 | void ref_min_q31( |
||
1096 | q31_t * pSrc, |
||
1097 | uint32_t blockSize, |
||
1098 | q31_t * pResult, |
||
1099 | uint32_t * pIndex); |
||
1100 | |||
1101 | void ref_min_q15( |
||
1102 | q15_t * pSrc, |
||
1103 | uint32_t blockSize, |
||
1104 | q15_t * pResult, |
||
1105 | uint32_t * pIndex); |
||
1106 | |||
1107 | void ref_min_q7( |
||
1108 | q7_t * pSrc, |
||
1109 | uint32_t blockSize, |
||
1110 | q7_t * pResult, |
||
1111 | uint32_t * pIndex); |
||
1112 | |||
1113 | void ref_power_f32( |
||
1114 | float32_t * pSrc, |
||
1115 | uint32_t blockSize, |
||
1116 | float32_t * pResult); |
||
1117 | |||
1118 | void ref_power_q31( |
||
1119 | q31_t * pSrc, |
||
1120 | uint32_t blockSize, |
||
1121 | q63_t * pResult); |
||
1122 | |||
1123 | void ref_power_q15( |
||
1124 | q15_t * pSrc, |
||
1125 | uint32_t blockSize, |
||
1126 | q63_t * pResult); |
||
1127 | |||
1128 | void ref_power_q7( |
||
1129 | q7_t * pSrc, |
||
1130 | uint32_t blockSize, |
||
1131 | q31_t * pResult); |
||
1132 | |||
1133 | void ref_rms_f32( |
||
1134 | float32_t * pSrc, |
||
1135 | uint32_t blockSize, |
||
1136 | float32_t * pResult); |
||
1137 | |||
1138 | void ref_rms_q31( |
||
1139 | q31_t * pSrc, |
||
1140 | uint32_t blockSize, |
||
1141 | q31_t * pResult); |
||
1142 | |||
1143 | void ref_rms_q15( |
||
1144 | q15_t * pSrc, |
||
1145 | uint32_t blockSize, |
||
1146 | q15_t * pResult); |
||
1147 | |||
1148 | void ref_std_f32( |
||
1149 | float32_t * pSrc, |
||
1150 | uint32_t blockSize, |
||
1151 | float32_t * pResult); |
||
1152 | |||
1153 | void ref_std_q31( |
||
1154 | q31_t * pSrc, |
||
1155 | uint32_t blockSize, |
||
1156 | q31_t * pResult); |
||
1157 | |||
1158 | void ref_std_q15( |
||
1159 | q15_t * pSrc, |
||
1160 | uint32_t blockSize, |
||
1161 | q15_t * pResult); |
||
1162 | |||
1163 | void ref_var_f32( |
||
1164 | float32_t * pSrc, |
||
1165 | uint32_t blockSize, |
||
1166 | float32_t * pResult); |
||
1167 | |||
1168 | void ref_var_q31( |
||
1169 | q31_t * pSrc, |
||
1170 | uint32_t blockSize, |
||
1171 | q31_t * pResult); |
||
1172 | |||
1173 | void ref_var_q15( |
||
1174 | q15_t * pSrc, |
||
1175 | uint32_t blockSize, |
||
1176 | q15_t * pResult); |
||
1177 | |||
1178 | /* |
||
1179 | * Support Functions |
||
1180 | */ |
||
1181 | void ref_copy_f32( |
||
1182 | float32_t * pSrc, |
||
1183 | float32_t * pDst, |
||
1184 | uint32_t blockSize); |
||
1185 | |||
1186 | void ref_copy_q31( |
||
1187 | q31_t * pSrc, |
||
1188 | q31_t * pDst, |
||
1189 | uint32_t blockSize); |
||
1190 | |||
1191 | void ref_copy_q15( |
||
1192 | q15_t * pSrc, |
||
1193 | q15_t * pDst, |
||
1194 | uint32_t blockSize); |
||
1195 | |||
1196 | void ref_copy_q7( |
||
1197 | q7_t * pSrc, |
||
1198 | q7_t * pDst, |
||
1199 | uint32_t blockSize); |
||
1200 | |||
1201 | void ref_fill_f32( |
||
1202 | float32_t value, |
||
1203 | float32_t * pDst, |
||
1204 | uint32_t blockSize); |
||
1205 | |||
1206 | void ref_fill_q31( |
||
1207 | q31_t value, |
||
1208 | q31_t * pDst, |
||
1209 | uint32_t blockSize); |
||
1210 | |||
1211 | void ref_fill_q15( |
||
1212 | q15_t value, |
||
1213 | q15_t * pDst, |
||
1214 | uint32_t blockSize); |
||
1215 | |||
1216 | void ref_fill_q7( |
||
1217 | q7_t value, |
||
1218 | q7_t * pDst, |
||
1219 | uint32_t blockSize); |
||
1220 | |||
1221 | void ref_q31_to_q15( |
||
1222 | q31_t * pSrc, |
||
1223 | q15_t * pDst, |
||
1224 | uint32_t blockSize); |
||
1225 | |||
1226 | void ref_q31_to_q7( |
||
1227 | q31_t * pSrc, |
||
1228 | q7_t * pDst, |
||
1229 | uint32_t blockSize); |
||
1230 | |||
1231 | void ref_q15_to_q31( |
||
1232 | q15_t * pSrc, |
||
1233 | q31_t * pDst, |
||
1234 | uint32_t blockSize); |
||
1235 | |||
1236 | void ref_q15_to_q7( |
||
1237 | q15_t * pSrc, |
||
1238 | q7_t * pDst, |
||
1239 | uint32_t blockSize); |
||
1240 | |||
1241 | void ref_q7_to_q31( |
||
1242 | q7_t * pSrc, |
||
1243 | q31_t * pDst, |
||
1244 | uint32_t blockSize); |
||
1245 | |||
1246 | void ref_q7_to_q15( |
||
1247 | q7_t * pSrc, |
||
1248 | q15_t * pDst, |
||
1249 | uint32_t blockSize); |
||
1250 | |||
1251 | void ref_q63_to_float( |
||
1252 | q63_t * pSrc, |
||
1253 | float32_t * pDst, |
||
1254 | uint32_t blockSize); |
||
1255 | |||
1256 | void ref_q31_to_float( |
||
1257 | q31_t * pSrc, |
||
1258 | float32_t * pDst, |
||
1259 | uint32_t blockSize); |
||
1260 | |||
1261 | void ref_q15_to_float( |
||
1262 | q15_t * pSrc, |
||
1263 | float32_t * pDst, |
||
1264 | uint32_t blockSize); |
||
1265 | |||
1266 | void ref_q7_to_float( |
||
1267 | q7_t * pSrc, |
||
1268 | float32_t * pDst, |
||
1269 | uint32_t blockSize); |
||
1270 | |||
1271 | void ref_float_to_q31( |
||
1272 | float32_t * pSrc, |
||
1273 | q31_t * pDst, |
||
1274 | uint32_t blockSize); |
||
1275 | |||
1276 | void ref_float_to_q15( |
||
1277 | float32_t * pSrc, |
||
1278 | q15_t * pDst, |
||
1279 | uint32_t blockSize); |
||
1280 | |||
1281 | void ref_float_to_q7( |
||
1282 | float32_t * pSrc, |
||
1283 | q7_t * pDst, |
||
1284 | uint32_t blockSize); |
||
1285 | |||
1286 | /* |
||
1287 | * Transform Functions |
||
1288 | */ |
||
1289 | void ref_cfft_f32( |
||
1290 | const arm_cfft_instance_f32 * S, |
||
1291 | float32_t * p1, |
||
1292 | uint8_t ifftFlag, |
||
1293 | uint8_t bitReverseFlag); |
||
1294 | |||
1295 | void ref_cfft_q31( |
||
1296 | const arm_cfft_instance_q31 * S, |
||
1297 | q31_t * p1, |
||
1298 | uint8_t ifftFlag, |
||
1299 | uint8_t bitReverseFlag); |
||
1300 | |||
1301 | void ref_cfft_q15( |
||
1302 | const arm_cfft_instance_q15 * S, |
||
1303 | q15_t * p1, |
||
1304 | uint8_t ifftFlag, |
||
1305 | uint8_t bitReverseFlag); |
||
1306 | |||
1307 | void ref_cfft_radix2_f32( |
||
1308 | const arm_cfft_radix2_instance_f32 * S, |
||
1309 | float32_t * pSrc); |
||
1310 | |||
1311 | void ref_cfft_radix2_q31( |
||
1312 | const arm_cfft_radix2_instance_q31 * S, |
||
1313 | q31_t * pSrc); |
||
1314 | |||
1315 | void ref_cfft_radix2_q15( |
||
1316 | const arm_cfft_radix2_instance_q15 * S, |
||
1317 | q15_t * pSrc); |
||
1318 | |||
1319 | void ref_cfft_radix4_f32( |
||
1320 | const arm_cfft_radix4_instance_f32 * S, |
||
1321 | float32_t * pSrc); |
||
1322 | |||
1323 | void ref_cfft_radix4_q31( |
||
1324 | const arm_cfft_radix4_instance_q31 * S, |
||
1325 | q31_t * pSrc); |
||
1326 | |||
1327 | void ref_cfft_radix4_q15( |
||
1328 | const arm_cfft_radix4_instance_q15 * S, |
||
1329 | q15_t * pSrc); |
||
1330 | |||
1331 | void ref_rfft_f32( |
||
1332 | arm_rfft_instance_f32 * S, |
||
1333 | float32_t * pSrc, |
||
1334 | float32_t * pDst); |
||
1335 | |||
1336 | void ref_rfft_fast_f32( |
||
1337 | arm_rfft_fast_instance_f32 * S, |
||
1338 | float32_t * p, float32_t * pOut, |
||
1339 | uint8_t ifftFlag); |
||
1340 | |||
1341 | void ref_rfft_q31( |
||
1342 | const arm_rfft_instance_q31 * S, |
||
1343 | q31_t * pSrc, |
||
1344 | q31_t * pDst); |
||
1345 | |||
1346 | void ref_rfft_q15( |
||
1347 | const arm_rfft_instance_q15 * S, |
||
1348 | q15_t * pSrc, |
||
1349 | q15_t * pDst); |
||
1350 | |||
1351 | void ref_dct4_f32( |
||
1352 | const arm_dct4_instance_f32 * S, |
||
1353 | float32_t * pState, |
||
1354 | float32_t * pInlineBuffer); |
||
1355 | |||
1356 | void ref_dct4_q31( |
||
1357 | const arm_dct4_instance_q31 * S, |
||
1358 | q31_t * pState, |
||
1359 | q31_t * pInlineBuffer); |
||
1360 | |||
1361 | void ref_dct4_q15( |
||
1362 | const arm_dct4_instance_q15 * S, |
||
1363 | q15_t * pState, |
||
1364 | q15_t * pInlineBuffer); |
||
1365 | |||
1366 | /* |
||
1367 | * Intrinsics |
||
1368 | */ |
||
1369 | q31_t ref__QADD8(q31_t x, q31_t y); |
||
1370 | q31_t ref__QSUB8(q31_t x, q31_t y); |
||
1371 | q31_t ref__QADD16(q31_t x, q31_t y); |
||
1372 | q31_t ref__SHADD16(q31_t x, q31_t y); |
||
1373 | q31_t ref__QSUB16(q31_t x, q31_t y); |
||
1374 | q31_t ref__SHSUB16(q31_t x, q31_t y); |
||
1375 | q31_t ref__QASX(q31_t x, q31_t y); |
||
1376 | q31_t ref__SHASX(q31_t x, q31_t y); |
||
1377 | q31_t ref__QSAX(q31_t x, q31_t y); |
||
1378 | q31_t ref__SHSAX(q31_t x, q31_t y); |
||
1379 | q31_t ref__SMUSDX(q31_t x, q31_t y); |
||
1380 | q31_t ref__SMUADX(q31_t x, q31_t y); |
||
1381 | q31_t ref__QADD(q31_t x, q31_t y); |
||
1382 | q31_t ref__QSUB(q31_t x, q31_t y); |
||
1383 | q31_t ref__SMLAD(q31_t x, q31_t y, q31_t sum); |
||
1384 | q31_t ref__SMLADX(q31_t x, q31_t y, q31_t sum); |
||
1385 | q31_t ref__SMLSDX(q31_t x, q31_t y, q31_t sum); |
||
1386 | q63_t ref__SMLALD(q31_t x, q31_t y, q63_t sum); |
||
1387 | q63_t ref__SMLALDX(q31_t x, q31_t y, q63_t sum); |
||
1388 | q31_t ref__SMUAD(q31_t x, q31_t y); |
||
1389 | q31_t ref__SMUSD(q31_t x, q31_t y); |
||
1390 | q31_t ref__SXTB16(q31_t x); |
||
1391 | |||
1392 | #ifdef __cplusplus |
||
1393 | } |
||
1394 | #endif |
||
1395 | |||
1396 | #endif |