292 #if defined ( __GNUC__ ) 293 #pragma GCC diagnostic push 294 #pragma GCC diagnostic ignored "-Wsign-conversion" 295 #pragma GCC diagnostic ignored "-Wconversion" 296 #pragma GCC diagnostic ignored "-Wunused-parameter" 299 #define __CMSIS_GENERIC 301 #if defined(ARM_MATH_CM7) 303 #elif defined (ARM_MATH_CM4) 304 #include "core_cm4.h" 305 #elif defined (ARM_MATH_CM3) 306 #include "core_cm3.h" 307 #elif defined (ARM_MATH_CM0) 308 #include "core_cm0.h" 309 #define ARM_MATH_CM0_FAMILY 310 #elif defined (ARM_MATH_CM0PLUS) 311 #include "core_cm0plus.h" 312 #define ARM_MATH_CM0_FAMILY 314 #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS or ARM_MATH_CM0" 317 #undef __CMSIS_GENERIC 330 #define DELTA_Q31 (0x100) 331 #define DELTA_Q15 0x5 332 #define INDEX_MASK 0x0000003F 334 #define PI 3.14159265358979f 341 #define FAST_MATH_TABLE_SIZE 512 342 #define FAST_MATH_Q31_SHIFT (32 - 10) 343 #define FAST_MATH_Q15_SHIFT (16 - 10) 344 #define CONTROLLER_Q31_SHIFT (32 - 9) 345 #define TABLE_SIZE 256 346 #define TABLE_SPACING_Q31 0x400000 347 #define TABLE_SPACING_Q15 0x80 354 #define INPUT_SPACING 0xB60B61 359 #ifndef UNALIGNED_SUPPORT_DISABLE 362 #if defined (__GNUC__) 363 #define ALIGN4 __attribute__((aligned(4))) 365 #define ALIGN4 __align(4) 418 #define __SIMD32_TYPE int32_t __packed 419 #define CMSIS_UNUSED __attribute__((unused)) 421 #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 422 #define __SIMD32_TYPE int32_t 423 #define CMSIS_UNUSED __attribute__((unused)) 425 #elif defined __GNUC__ 426 #define __SIMD32_TYPE int32_t 427 #define CMSIS_UNUSED __attribute__((unused)) 429 #elif defined __ICCARM__ 430 #define __SIMD32_TYPE int32_t __packed 433 #elif defined __CSMC__ 434 #define __SIMD32_TYPE int32_t 437 #elif defined __TASKING__ 438 #define __SIMD32_TYPE __unaligned int32_t 442 #error Unknown compiler 445 #define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) 446 #define __SIMD32_CONST(addr) ((__SIMD32_TYPE *)(addr)) 447 #define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE *) (addr)) 448 #define __SIMD64(addr) (*(int64_t **) & (addr)) 450 #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) 454 #define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ 455 (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) 456 #define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \ 457 (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) ) 465 #ifndef ARM_MATH_BIG_ENDIAN 467 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ 468 (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ 469 (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ 470 (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) 473 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ 474 (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ 475 (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ 476 (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) 487 return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
488 ((0x7FFFFFFF ^ ((
q31_t) (x >> 63)))) : (q31_t) x;
497 return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
498 ((0x7FFF ^ ((
q15_t) (x >> 63)))) : (q15_t) (x >> 15);
507 return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ?
508 ((0x7F ^ ((
q7_t) (x >> 31)))) : (q7_t) x;
517 return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ?
518 ((0x7FFF ^ ((
q15_t) (x >> 31)))) : (q15_t) x;
529 return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) +
530 (((q63_t) (x >> 32) * y)));
539 #if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__)) ) 540 static __INLINE uint32_t
__CLZ(
543 static __INLINE uint32_t
__CLZ(
547 uint32_t mask = 0x80000000;
549 while((data & mask) == 0)
575 signBits = ((uint32_t) (
__CLZ( in) - 1));
579 signBits = ((uint32_t) (
__CLZ(-in) - 1));
583 in = (in << signBits);
586 index = (uint32_t)(in >> 24);
590 out = pRecipTable[index];
594 for (i = 0u; i < 2u; i++)
596 tempVal = (uint32_t) (((q63_t) in * out) >> 31);
597 tempVal = 0x7FFFFFFFu - tempVal;
607 return (signBits + 1u);
620 uint32_t tempVal = 0;
621 uint32_t index = 0,
i = 0;
622 uint32_t signBits = 0;
626 signBits = ((uint32_t)(
__CLZ( in) - 17));
630 signBits = ((uint32_t)(
__CLZ(-in) - 17));
634 in = (in << signBits);
637 index = (uint32_t)(in >> 8);
641 out = pRecipTable[index];
645 for (
i = 0u;
i < 2u;
i++)
647 tempVal = (uint32_t) (((q31_t) in * out) >> 15);
648 tempVal = 0x7FFFu - tempVal;
650 out = (
q15_t) (((q31_t) out * tempVal) >> 14);
658 return (signBits + 1);
665 #if defined(ARM_MATH_CM0_FAMILY) 666 static __INLINE q31_t __SSAT(
670 int32_t posMax, negMin;
674 for (i = 0; i < (y - 1); i++)
681 posMax = (posMax - 1);
705 #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) 710 static __INLINE uint32_t __QADD8(
716 r = __SSAT(((((q31_t)x << 24) >> 24) + (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF;
717 s = __SSAT(((((q31_t)x << 16) >> 24) + (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF;
718 t = __SSAT(((((q31_t)x << 8) >> 24) + (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF;
719 u = __SSAT(((((q31_t)x ) >> 24) + (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF;
721 return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r )));
728 static __INLINE uint32_t __QSUB8(
734 r = __SSAT(((((q31_t)x << 24) >> 24) - (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF;
735 s = __SSAT(((((q31_t)x << 16) >> 24) - (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF;
736 t = __SSAT(((((q31_t)x << 8) >> 24) - (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF;
737 u = __SSAT(((((q31_t)x ) >> 24) - (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF;
739 return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r )));
746 static __INLINE uint32_t __QADD16(
753 r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
754 s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
756 return ((uint32_t)((s << 16) | (r )));
763 static __INLINE uint32_t __SHADD16(
769 r = (((((
q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
770 s = (((((
q31_t)x ) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
772 return ((uint32_t)((s << 16) | (r )));
779 static __INLINE uint32_t __QSUB16(
785 r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
786 s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
788 return ((uint32_t)((s << 16) | (r )));
795 static __INLINE uint32_t __SHSUB16(
801 r = (((((
q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
802 s = (((((
q31_t)x ) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
804 return ((uint32_t)((s << 16) | (r )));
811 static __INLINE uint32_t __QASX(
817 r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
818 s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
820 return ((uint32_t)((s << 16) | (r )));
827 static __INLINE uint32_t __SHASX(
833 r = (((((
q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
834 s = (((((
q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
836 return ((uint32_t)((s << 16) | (r )));
843 static __INLINE uint32_t __QSAX(
849 r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
850 s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
852 return ((uint32_t)((s << 16) | (r )));
859 static __INLINE uint32_t __SHSAX(
865 r = (((((
q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
866 s = (((((
q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
868 return ((uint32_t)((s << 16) | (r )));
875 static __INLINE uint32_t __SMUSDX(
879 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) -
880 ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) ));
886 static __INLINE uint32_t __SMUADX(
890 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
891 ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) ));
898 static __INLINE int32_t __QADD(
909 static __INLINE int32_t __QSUB(
920 static __INLINE uint32_t __SMLAD(
925 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
926 ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) +
927 ( ((q31_t)sum ) ) ));
934 static __INLINE uint32_t __SMLADX(
939 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
940 ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
941 ( ((q31_t)sum ) ) ));
948 static __INLINE uint32_t __SMLSDX(
953 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) -
954 ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
955 ( ((q31_t)sum ) ) ));
962 static __INLINE uint64_t __SMLALD(
968 return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
969 ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) +
970 ( ((q63_t)sum ) ) ));
977 static __INLINE uint64_t __SMLALDX(
983 return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
984 ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
985 ( ((q63_t)sum ) ) ));
992 static __INLINE uint32_t __SMUAD(
996 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
997 ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) ));
1004 static __INLINE uint32_t __SMUSD(
1008 return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) -
1009 ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) ));
1016 static __INLINE uint32_t __SXTB16(
1019 return ((uint32_t)(((((q31_t)x << 24) >> 24) & (q31_t)0x0000FFFF) |
1020 ((((q31_t)x << 8) >> 8) & (q31_t)0xFFFF0000) ));
1078 uint32_t blockSize);
1094 uint32_t blockSize);
1108 uint32_t blockSize);
1122 uint32_t blockSize);
1140 uint32_t blockSize);
1154 uint32_t blockSize);
1168 uint32_t blockSize);
1184 uint32_t blockSize);
1198 uint32_t blockSize);
1212 float32_t * pCoeffs,
1214 uint32_t blockSize);
1261 uint32_t blockSize);
1291 uint32_t blockSize);
1305 uint32_t blockSize);
1319 uint32_t blockSize);
1349 uint32_t blockSize);
1362 float32_t * pCoeffs,
1363 float32_t * pState);
1740 #ifdef ARM_MATH_CM0_FAMILY 1789 int32_t resetStateFlag);
1807 int32_t resetStateFlag);
1826 int32_t resetStateFlag);
1900 uint32_t blockSize);
1914 uint32_t blockSize);
1928 uint32_t blockSize);
1942 uint32_t blockSize);
1964 uint8_t bitReverseFlag);
1991 uint8_t bitReverseFlag);
2017 uint8_t bitReverseFlag);
2048 uint8_t bitReverseFlag);
2070 uint8_t bitReverseFlag);
2097 uint8_t bitReverseFlag);
2119 uint8_t bitReverseFlag);
2136 uint8_t bitReverseFlag);
2153 uint8_t bitReverseFlag);
2171 uint32_t fftLenReal,
2173 uint32_t bitReverseFlag);
2196 uint32_t fftLenReal,
2198 uint32_t bitReverseFlag);
2223 uint32_t fftLenReal,
2225 uint32_t bitReverseFlag);
2248 float32_t * p, float32_t * pOut,
2282 float32_t normalize);
2294 float32_t * pInlineBuffer);
2340 q31_t * pInlineBuffer);
2386 q15_t * pInlineBuffer);
2400 uint32_t blockSize);
2414 uint32_t blockSize);
2428 uint32_t blockSize);
2442 uint32_t blockSize);
2456 uint32_t blockSize);
2470 uint32_t blockSize);
2484 uint32_t blockSize);
2498 uint32_t blockSize);
2512 uint32_t blockSize);
2528 uint32_t blockSize);
2544 uint32_t blockSize);
2560 uint32_t blockSize);
2572 uint32_t blockSize);
2584 uint32_t blockSize);
2596 uint32_t blockSize);
2608 uint32_t blockSize);
2678 uint32_t blockSize);
2692 uint32_t blockSize);
2706 uint32_t blockSize);
2720 uint32_t blockSize);
2734 uint32_t blockSize);
2748 uint32_t blockSize);
2762 uint32_t blockSize);
2774 uint32_t blockSize);
2786 uint32_t blockSize);
2798 uint32_t blockSize);
2810 uint32_t blockSize);
2822 uint32_t blockSize);
2834 uint32_t blockSize);
2846 uint32_t blockSize);
2858 uint32_t blockSize);
2870 uint32_t blockSize);
2882 uint32_t blockSize);
2894 uint32_t blockSize);
2906 uint32_t blockSize);
3082 uint32_t firstIndex,
3083 uint32_t numPoints);
3105 uint32_t firstIndex,
3128 uint32_t firstIndex,
3129 uint32_t numPoints);
3149 uint32_t firstIndex,
3150 uint32_t numPoints);
3172 uint32_t firstIndex,
3195 uint32_t firstIndex,
3196 uint32_t numPoints);
3216 uint32_t firstIndex,
3217 uint32_t numPoints);
3239 uint32_t firstIndex,
3262 uint32_t firstIndex,
3263 uint32_t numPoints);
3311 uint32_t blockSize);
3329 float32_t * pCoeffs,
3331 uint32_t blockSize);
3345 uint32_t blockSize);
3359 uint32_t blockSize);
3379 uint32_t blockSize);
3393 uint32_t blockSize);
3406 uint32_t blockSize);
3426 uint32_t blockSize);
3474 uint32_t blockSize);
3494 uint32_t blockSize);
3508 uint32_t blockSize);
3528 uint32_t blockSize);
3542 uint32_t blockSize);
3560 float32_t * pCoeffs,
3562 uint32_t blockSize);
3587 uint32_t blockSize);
3647 uint32_t blockSize);
3661 uint32_t blockSize);
3675 uint32_t blockSize);
3688 float32_t * pCoeffs,
3689 float32_t * pState);
3702 float32_t * pCoeffs,
3703 float32_t * pState);
3716 float64_t * pCoeffs,
3717 float64_t * pState);
3776 uint32_t blockSize);
3804 uint32_t blockSize);
3817 float32_t * pCoeffs,
3818 float32_t * pState);
3832 uint32_t blockSize);
3880 uint32_t blockSize);
3895 float32_t * pkCoeffs,
3896 float32_t * pvCoeffs,
3898 uint32_t blockSize);
3912 uint32_t blockSize);
3930 uint32_t blockSize);
3944 uint32_t blockSize);
3962 uint32_t blockSize);
3992 uint32_t blockSize);
4007 float32_t * pCoeffs,
4010 uint32_t blockSize);
4043 uint32_t postShift);
4061 uint32_t blockSize);
4092 uint32_t blockSize);
4112 uint32_t postShift);
4144 uint32_t blockSize);
4159 float32_t * pCoeffs,
4162 uint32_t blockSize);
4196 uint32_t blockSize);
4250 uint32_t blockSize);
4492 float32_t * pScratchIn,
4493 uint32_t blockSize);
4509 float32_t * pCoeffs,
4511 int32_t * pTapDelay,
4513 uint32_t blockSize);
4529 uint32_t blockSize);
4547 int32_t * pTapDelay,
4549 uint32_t blockSize);
4566 q31_t * pScratchOut,
4567 uint32_t blockSize);
4585 int32_t * pTapDelay,
4587 uint32_t blockSize);
4604 q31_t * pScratchOut,
4605 uint32_t blockSize);
4623 int32_t * pTapDelay,
4625 uint32_t blockSize);
4636 float32_t * pSinVal,
4637 float32_t * pCosVal);
4661 uint32_t numSamples);
4672 uint32_t numSamples);
4684 uint32_t numSamples);
4696 uint32_t numSamples);
4708 uint32_t numSamples);
4720 uint32_t numSamples);
4802 out = (S->
A0 * in) +
4840 acc += (q63_t) S->
A1 * S->
state[0];
4846 out = (q31_t) (acc >> 31u);
4883 #ifndef ARM_MATH_CM0_FAMILY 4884 __SIMD32_TYPE *vstate;
4889 acc = (
q31_t) __SMUAD((uint32_t)S->
A0, (uint32_t)in);
4893 acc = (
q63_t)__SMLALD((uint32_t)S->
A1, (uint32_t)*vstate, (uint64_t)acc);
4900 acc += (q31_t) S->A2 * S->
state[1];
4907 out = (q15_t) (__SSAT((acc >> 15), 16));
4990 float32_t * pIalpha,
4997 *pIbeta = ((
float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib);
5020 q31_t product1, product2;
5026 product1 = (
q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30);
5029 product2 = (
q31_t) (((q63_t) Ib * 0x49E69D16) >> 30);
5032 *pIbeta = __QADD(product1, product2);
5048 uint32_t blockSize);
5094 *pIb = -0.5f * Ialpha + 0.8660254039f * Ibeta;
5117 q31_t product1, product2;
5123 product1 = (
q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31);
5126 product2 = (
q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31);
5129 *pIb = __QSUB(product2, product1);
5145 uint32_t blockSize);
5203 *pId = Ialpha * cosVal + Ibeta * sinVal;
5206 *pIq = -Ialpha * sinVal + Ibeta * cosVal;
5233 q31_t product1, product2;
5234 q31_t product3, product4;
5237 product1 = (
q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31);
5240 product2 = (
q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31);
5244 product3 = (
q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31);
5247 product4 = (
q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31);
5250 *pId = __QADD(product1, product2);
5253 *pIq = __QSUB(product4, product3);
5269 uint32_t blockSize);
5310 float32_t * pIalpha,
5316 *pIalpha = Id * cosVal - Iq * sinVal;
5319 *pIbeta = Id * sinVal + Iq * cosVal;
5346 q31_t product1, product2;
5347 q31_t product3, product4;
5350 product1 = (
q31_t) (((q63_t) (Id) * (cosVal)) >> 31);
5353 product2 = (
q31_t) (((q63_t) (Iq) * (sinVal)) >> 31);
5357 product3 = (
q31_t) (((q63_t) (Id) * (sinVal)) >> 31);
5360 product4 = (
q31_t) (((q63_t) (Iq) * (cosVal)) >> 31);
5363 *pIalpha = __QSUB(product1, product2);
5366 *pIbeta = __QADD(product4, product3);
5383 uint32_t blockSize);
5442 float32_t *pYData = S->
pYData;
5445 i = (int32_t) ((x - S->
x1) / xSpacing);
5452 else if((uint32_t)i >= S->
nValues)
5460 x0 = S->
x1 + i * xSpacing;
5461 x1 = S->
x1 + (i + 1) * xSpacing;
5468 y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0));
5503 index = ((x & (
q31_t)0xFFF00000) >> 20);
5505 if(index >= (int32_t)(nValues - 1))
5507 return (pYData[nValues - 1]);
5517 fract = (x & 0x000FFFFF) << 11;
5521 y1 = pYData[index + 1];
5524 y = ((
q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32));
5527 y += ((
q31_t) (((q63_t) y1 * fract) >> 32));
5561 index = ((x & (int32_t)0xFFF00000) >> 20);
5563 if(index >= (int32_t)(nValues - 1))
5565 return (pYData[nValues - 1]);
5575 fract = (x & 0x000FFFFF);
5579 y1 = pYData[index + 1];
5582 y = ((
q63_t) y0 * (0xFFFFF - fract));
5585 y += ((
q63_t) y1 * (fract));
5588 return (q15_t) (y >> 20);
5622 index = (x >> 20) & 0xfff;
5624 if(index >= (nValues - 1))
5626 return (pYData[nValues - 1]);
5632 fract = (x & 0x000FFFFF);
5636 y1 = pYData[index + 1];
5639 y = ((y0 * (0xFFFFF - fract)));
5645 return (q7_t) (y >> 20);
5752 #if (__FPU_USED == 1) && defined ( __CC_ARM ) 5753 *pOut = __sqrtf(in);
5754 #elif (__FPU_USED == 1) && (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)) 5755 *pOut = __builtin_sqrtf(in);
5756 #elif (__FPU_USED == 1) && defined(__GNUC__) 5757 *pOut = __builtin_sqrtf(in);
5758 #elif (__FPU_USED == 1) && defined ( __ICCARM__ ) && (__VER__ >= 6040000) 5759 __ASM(
"VSQRT.F32 %0,%1" :
"=t"(*pOut) :
"t"(in));
5806 int32_t * circBuffer,
5808 uint16_t * writeOffset,
5810 const int32_t * src,
5819 wOffset = *writeOffset;
5827 circBuffer[wOffset] = *src;
5833 wOffset += bufferInc;
5842 *writeOffset = (uint16_t)wOffset;
5851 int32_t * circBuffer,
5853 int32_t * readOffset,
5862 int32_t rOffset, dst_end;
5866 rOffset = *readOffset;
5867 dst_end = (int32_t) (dst_base + dst_length);
5875 *dst = circBuffer[rOffset];
5880 if(dst == (int32_t *) dst_end)
5886 rOffset += bufferInc;
5898 *readOffset = rOffset;
5908 uint16_t * writeOffset,
5919 wOffset = *writeOffset;
5927 circBuffer[wOffset] = *src;
5933 wOffset += bufferInc;
5942 *writeOffset = (uint16_t)wOffset;
5952 int32_t * readOffset,
5961 int32_t rOffset, dst_end;
5965 rOffset = *readOffset;
5967 dst_end = (int32_t) (dst_base + dst_length);
5975 *dst = circBuffer[rOffset];
5980 if(dst == (q15_t *) dst_end)
5986 rOffset += bufferInc;
5998 *readOffset = rOffset;
6008 uint16_t * writeOffset,
6019 wOffset = *writeOffset;
6027 circBuffer[wOffset] = *src;
6033 wOffset += bufferInc;
6042 *writeOffset = (uint16_t)wOffset;
6052 int32_t * readOffset,
6061 int32_t rOffset, dst_end;
6065 rOffset = *readOffset;
6067 dst_end = (int32_t) (dst_base + dst_length);
6075 *dst = circBuffer[rOffset];
6080 if(dst == (q7_t *) dst_end)
6086 rOffset += bufferInc;
6098 *readOffset = rOffset;
6123 float32_t * pResult);
6195 float32_t * pResult);
6207 float32_t * pResult);
6243 float32_t * pResult);
6279 float32_t * pResult);
6315 uint32_t numSamples);
6327 uint32_t numSamples);
6339 uint32_t numSamples);
6353 uint32_t numSamples,
6355 q31_t * imagResult);
6369 uint32_t numSamples,
6371 q63_t * imagResult);
6385 uint32_t numSamples,
6386 float32_t * realResult,
6387 float32_t * imagResult);
6401 uint32_t numSamples);
6415 uint32_t numSamples);
6426 float32_t * pSrcCmplx,
6427 float32_t * pSrcReal,
6428 float32_t * pCmplxDst,
6429 uint32_t numSamples);
6484 float32_t * pResult,
6540 float32_t * pResult,
6555 uint32_t numSamples);
6569 uint32_t numSamples);
6583 uint32_t numSamples);
6595 uint32_t blockSize);
6607 uint32_t blockSize);
6619 uint32_t blockSize);
6631 uint32_t blockSize);
6643 uint32_t blockSize);
6655 uint32_t blockSize);
6667 uint32_t blockSize);
6679 uint32_t blockSize);
6758 float32_t f00, f01, f10, f11;
6759 float32_t *pData = S->
pData;
6760 int32_t xIndex, yIndex, index;
6761 float32_t xdiff, ydiff;
6762 float32_t b1, b2, b3, b4;
6764 xIndex = (int32_t) X;
6765 yIndex = (int32_t) Y;
6769 if(xIndex < 0 || xIndex > (S->
numRows - 1) || yIndex < 0 || yIndex > (S->
numCols - 1))
6775 index = (xIndex - 1) + (yIndex - 1) * S->
numCols;
6780 f01 = pData[index + 1];
6783 index = (xIndex - 1) + (yIndex) * S->
numCols;
6788 f11 = pData[index + 1];
6794 b4 = f00 - f01 - f10 + f11;
6803 out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff;
6825 q31_t xfract, yfract;
6826 q31_t x1, x2, y1, y2;
6828 q31_t *pYData = S->
pData;
6834 rI = ((X & (
q31_t)0xFFF00000) >> 20);
6839 cI = ((Y & (
q31_t)0xFFF00000) >> 20);
6843 if(rI < 0 || rI > (S->
numRows - 1) || cI < 0 || cI > (S->
numCols - 1))
6850 xfract = (X & 0x000FFFFF) << 11u;
6853 x1 = pYData[(rI) + (int32_t)nCols * (cI) ];
6854 x2 = pYData[(rI) + (int32_t)nCols * (cI) + 1];
6858 yfract = (Y & 0x000FFFFF) << 11u;
6861 y1 = pYData[(rI) + (int32_t)nCols * (cI + 1) ];
6862 y2 = pYData[(rI) + (int32_t)nCols * (cI + 1) + 1];
6865 out = ((
q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32));
6866 acc = ((
q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32));
6869 out = ((
q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32));
6870 acc += ((
q31_t) ((q63_t) out * (xfract) >> 32));
6873 out = ((
q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32));
6874 acc += ((
q31_t) ((q63_t) out * (yfract) >> 32));
6877 out = ((
q31_t) ((q63_t) y2 * (xfract) >> 32));
6878 acc += ((
q31_t) ((q63_t) out * (yfract) >> 32));
6881 return ((q31_t)(acc << 2));
6899 q15_t x1, x2, y1, y2;
6900 q31_t xfract, yfract;
6902 q15_t *pYData = S->
pData;
6908 rI = ((X & (
q31_t)0xFFF00000) >> 20);
6913 cI = ((Y & (
q31_t)0xFFF00000) >> 20);
6917 if(rI < 0 || rI > (S->
numRows - 1) || cI < 0 || cI > (S->
numCols - 1))
6924 xfract = (X & 0x000FFFFF);
6927 x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ];
6928 x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1];
6932 yfract = (Y & 0x000FFFFF);
6935 y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ];
6936 y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1];
6942 out = (
q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4u);
6943 acc = ((
q63_t) out * (0xFFFFF - yfract));
6946 out = (
q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4u);
6947 acc += ((
q63_t) out * (xfract));
6950 out = (
q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4u);
6951 acc += ((
q63_t) out * (yfract));
6954 out = (
q31_t) (((q63_t) y2 * (xfract)) >> 4u);
6955 acc += ((
q63_t) out * (yfract));
6959 return ((q15_t)(acc >> 36));
6977 q31_t xfract, yfract;
6978 q7_t x1, x2, y1, y2;
6980 q7_t *pYData = S->
pData;
6986 rI = ((X & (
q31_t)0xFFF00000) >> 20);
6991 cI = ((Y & (
q31_t)0xFFF00000) >> 20);
6995 if(rI < 0 || rI > (S->
numRows - 1) || cI < 0 || cI > (S->
numCols - 1))
7002 xfract = (X & (
q31_t)0x000FFFFF);
7005 x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ];
7006 x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1];
7010 yfract = (Y & (
q31_t)0x000FFFFF);
7013 y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ];
7014 y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1];
7017 out = ((x1 * (0xFFFFF - xfract)));
7018 acc = (((
q63_t) out * (0xFFFFF - yfract)));
7021 out = ((x2 * (0xFFFFF - yfract)));
7022 acc += (((
q63_t) out * (xfract)));
7025 out = ((y1 * (0xFFFFF - xfract)));
7026 acc += (((
q63_t) out * (yfract)));
7029 out = ((y2 * (yfract)));
7030 acc += (((
q63_t) out * (xfract)));
7033 return ((q7_t)(acc >> 40));
7042 #define multAcc_32x32_keep32_R(a, x, y) \ 7043 a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32) 7046 #define multSub_32x32_keep32_R(a, x, y) \ 7047 a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32) 7050 #define mult_32x32_keep32_R(a, x, y) \ 7051 a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32) 7054 #define multAcc_32x32_keep32(a, x, y) \ 7055 a += (q31_t) (((q63_t) x * y) >> 32) 7058 #define multSub_32x32_keep32(a, x, y) \ 7059 a -= (q31_t) (((q63_t) x * y) >> 32) 7062 #define mult_32x32_keep32(a, x, y) \ 7063 a = (q31_t) (((q63_t) x * y ) >> 32) 7066 #if defined ( __CC_ARM ) 7068 #if defined( ARM_MATH_CM4 ) || defined( ARM_MATH_CM7) 7069 #define LOW_OPTIMIZATION_ENTER \ 7073 #define LOW_OPTIMIZATION_ENTER 7077 #if defined( ARM_MATH_CM4 ) || defined( ARM_MATH_CM7) 7078 #define LOW_OPTIMIZATION_EXIT \ 7081 #define LOW_OPTIMIZATION_EXIT 7085 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER 7088 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 7090 #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) 7091 #define LOW_OPTIMIZATION_ENTER 7092 #define LOW_OPTIMIZATION_EXIT 7093 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER 7094 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 7096 #elif defined(__GNUC__) 7097 #define LOW_OPTIMIZATION_ENTER __attribute__(( optimize("-O1") )) 7098 #define LOW_OPTIMIZATION_EXIT 7099 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER 7100 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 7102 #elif defined(__ICCARM__) 7104 #if defined( ARM_MATH_CM4 ) || defined( ARM_MATH_CM7) 7105 #define LOW_OPTIMIZATION_ENTER \ 7106 _Pragma ("optimize=low") 7108 #define LOW_OPTIMIZATION_ENTER 7112 #define LOW_OPTIMIZATION_EXIT 7115 #if defined( ARM_MATH_CM4 ) || defined( ARM_MATH_CM7) 7116 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER \ 7117 _Pragma ("optimize=low") 7119 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER 7123 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 7125 #elif defined(__CSMC__) 7126 #define LOW_OPTIMIZATION_ENTER 7127 #define LOW_OPTIMIZATION_EXIT 7128 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER 7129 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 7131 #elif defined(__TASKING__) 7132 #define LOW_OPTIMIZATION_ENTER 7133 #define LOW_OPTIMIZATION_EXIT 7134 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER 7135 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 7145 #if defined ( __GNUC__ ) 7146 #pragma GCC diagnostic pop q31_t * pCoeffs
Definition: arm_math.h:3737
float32_t * pCoeffs
Definition: arm_math.h:3612
q15_t * pTwiddleBReal
Definition: arm_math.h:2165
void arm_rms_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Root Mean Square of the elements of a Q31 vector.
arm_status arm_mat_mult_fast_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
void arm_sub_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector subtraction.
void arm_offset_q15(q15_t *pSrc, q15_t offset, q15_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q15 vector.
void arm_std_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Standard deviation of the elements of a floating-point vector.
Instance structure for the floating-point FIR interpolator.
Definition: arm_math.h:3454
void arm_pid_reset_q15(arm_pid_instance_q15 *S)
Reset function for the Q15 PID Control.
uint16_t fftLen
Definition: arm_math.h:2143
uint8_t bitReverseFlagR
Definition: arm_math.h:2187
arm_status arm_dct4_init_q15(arm_dct4_instance_q15 *S, arm_rfft_instance_q15 *S_RFFT, arm_cfft_radix4_instance_q15 *S_CFFT, uint16_t N, uint16_t Nby2, q15_t normalize)
Initialization function for the Q15 DCT4/IDCT4.
void arm_iir_lattice_f32(const arm_iir_lattice_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point IIR lattice filter.
float32_t * pCoeffs
Definition: arm_math.h:3747
void arm_mat_init_f32(arm_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
Floating-point matrix initialization.
float32_t * pTwiddle
Definition: arm_math.h:2259
void arm_power_q7(q7_t *pSrc, uint32_t blockSize, q31_t *pResult)
Sum of the squares of the elements of a Q7 vector.
static __INLINE void arm_circularRead_q15(q15_t *circBuffer, int32_t L, int32_t *readOffset, int32_t bufferInc, q15_t *dst, q15_t *dst_base, int32_t dst_length, int32_t dstInc, uint32_t blockSize)
Q15 Circular Read function.
Definition: arm_math.h:5949
uint8_t L
Definition: arm_math.h:3434
q31_t * pCoeffs
Definition: arm_math.h:4071
uint8_t L
Definition: arm_math.h:3445
void arm_scale_q7(q7_t *pSrc, q7_t scaleFract, int8_t shift, q7_t *pDst, uint32_t blockSize)
Multiplies a Q7 vector by a scalar.
static __INLINE void arm_circularRead_q7(q7_t *circBuffer, int32_t L, int32_t *readOffset, int32_t bufferInc, q7_t *dst, q7_t *dst_base, int32_t dst_length, int32_t dstInc, uint32_t blockSize)
Q7 Circular Read function.
Definition: arm_math.h:6049
uint16_t numTaps
Definition: arm_math.h:4432
uint16_t phaseLength
Definition: arm_math.h:3435
int8_t q7_t
8-bit fractional data type in 1.7 format.
Definition: arm_math.h:387
arm_status arm_mat_mult_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication.
void arm_cmplx_conj_q15(q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex conjugate.
uint16_t numRows
Definition: arm_math.h:1382
uint16_t numRows
Definition: arm_math.h:1371
q15_t * pvCoeffs
Definition: arm_math.h:3843
Instance structure for the Q15 FIR filter.
Definition: arm_math.h:1039
static __INLINE q31_t arm_pid_q31(arm_pid_instance_q31 *S, q31_t in)
Process function for the Q31 PID Control.
Definition: arm_math.h:4829
q31_t A2
Definition: arm_math.h:1759
uint16_t maxDelay
Definition: arm_math.h:4436
q31_t A1
Definition: arm_math.h:1758
void arm_pid_init_q15(arm_pid_instance_q15 *S, int32_t resetStateFlag)
Initialization function for the Q15 PID Control.
uint8_t bitReverseFlagR
Definition: arm_math.h:2213
void arm_abs_q15(q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Q15 vector absolute value.
Instance structure for the floating-point transposed direct form II Biquad cascade filter...
Definition: arm_math.h:3618
q31_t * pState
Definition: arm_math.h:1234
float32_t onebyfftLen
Definition: arm_math.h:2089
void arm_q31_to_float(q31_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to floating-point vector.
uint8_t ifftFlagR
Definition: arm_math.h:2212
q31_t * pCoeffs
Definition: arm_math.h:3447
void arm_dct4_f32(const arm_dct4_instance_f32 *S, float32_t *pState, float32_t *pInlineBuffer)
Processing function for the floating-point DCT4/IDCT4.
void arm_cfft_q15(const arm_cfft_instance_q15 *S, q15_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_status arm_mat_add_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
Q15 matrix addition.
void arm_mean_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Mean value of a Q31 vector.
uint16_t bitRevLength
Definition: arm_math.h:2112
void arm_copy_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Copies the elements of a Q7 vector.
q15_t * pTwiddle
Definition: arm_math.h:1980
float32_t * pvCoeffs
Definition: arm_math.h:3865
uint16_t numTaps
Definition: arm_math.h:4170
q15_t * pData
Definition: arm_math.h:1394
void arm_correlate_fast_opt_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch)
Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
void arm_biquad_cascade_stereo_df2T_f32(const arm_biquad_cascade_stereo_df2T_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter...
Instance structure for the Q31 FIR lattice filter.
Definition: arm_math.h:3733
arm_status arm_mat_mult_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication.
static __INLINE q15_t clip_q31_to_q15(q31_t x)
Clips Q31 to Q15 values.
Definition: arm_math.h:514
uint16_t fftLen
Definition: arm_math.h:2126
float32_t A0
Definition: arm_math.h:1771
static uint32_t value
Definition: num_keypad.c:27
uint32_t nValues
Definition: arm_math.h:1842
uint16_t bitRevLength
Definition: arm_math.h:2146
uint16_t numTaps
Definition: arm_math.h:4458
void arm_biquad_cascade_df1_fast_q15(const arm_biquad_casd_df1_inst_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-...
q7_t * pData
Definition: arm_math.h:1885
uint16_t numRows
Definition: arm_math.h:1392
q31_t Kp
Definition: arm_math.h:1761
uint16_t fftLenBy2
Definition: arm_math.h:2211
float32_t x1
Definition: arm_math.h:1843
uint8_t numStages
Definition: arm_math.h:3570
q15_t * pState
Definition: arm_math.h:1223
void arm_add_q7(q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector addition.
Instance structure for the Q31 IIR lattice filter.
Definition: arm_math.h:3849
static __INLINE arm_status arm_sqrt_f32(float32_t in, float32_t *pOut)
Floating-point square root function.
Definition: arm_math.h:5745
arm_status arm_fir_init_q15(arm_fir_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR filter.
arm_cfft_radix4_instance_f32 * pCfft
Definition: arm_math.h:2217
void arm_scale_f32(float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize)
Multiplies a floating-point vector by a scalar.
uint16_t phaseLength
Definition: arm_math.h:3446
q15_t mu
Definition: arm_math.h:4227
q31_t * pState
Definition: arm_math.h:3852
q15_t * pTwiddleAReal
Definition: arm_math.h:2164
arm_cfft_radix4_instance_q31 * pCfft
Definition: arm_math.h:2308
float32_t * pTwiddleBReal
Definition: arm_math.h:2216
void arm_biquad_cascade_df1_q15(const arm_biquad_casd_df1_inst_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 Biquad cascade filter.
static __INLINE q7_t arm_bilinear_interp_q7(arm_bilinear_interp_instance_q7 *S, q31_t X, q31_t Y)
Q7 bilinear interpolation.
Definition: arm_math.h:6970
void arm_fill_q31(q31_t value, q31_t *pDst, uint32_t blockSize)
Fills a constant value into a Q31 vector.
void arm_cmplx_mag_q31(q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex magnitude.
static __INLINE void arm_circularWrite_q15(q15_t *circBuffer, int32_t L, uint16_t *writeOffset, int32_t bufferInc, const q15_t *src, int32_t srcInc, uint32_t blockSize)
Q15 Circular write function.
Definition: arm_math.h:5905
void arm_fir_sparse_q31(arm_fir_sparse_instance_q31 *S, q31_t *pSrc, q31_t *pDst, q31_t *pScratchIn, uint32_t blockSize)
Processing function for the Q31 sparse FIR filter.
float32_t * pState
Definition: arm_math.h:3296
uint8_t postShift
Definition: arm_math.h:4174
uint16_t N
Definition: arm_math.h:2348
uint16_t numTaps
Definition: arm_math.h:3283
uint8_t bitReverseFlagR
Definition: arm_math.h:2162
uint16_t numCols
Definition: arm_math.h:1372
float float32_t
32-bit floating-point type definition.
Definition: arm_math.h:407
void arm_fir_init_q7(arm_fir_instance_q7 *S, uint16_t numTaps, q7_t *pCoeffs, q7_t *pState, uint32_t blockSize)
Initialization function for the Q7 FIR filter.
void arm_fir_decimate_fast_q15(const arm_fir_decimate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
void arm_sub_q7(q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector subtraction.
void arm_conv_fast_opt_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
void arm_sin_cos_f32(float32_t theta, float32_t *pSinVal, float32_t *pCosVal)
Floating-point sin_cos function.
arm_status arm_fir_decimate_init_q31(arm_fir_decimate_instance_q31 *S, uint16_t numTaps, uint8_t M, q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR decimator.
q31_t energy
Definition: arm_math.h:4176
void arm_scale_q31(q31_t *pSrc, q31_t scaleFract, int8_t shift, q31_t *pDst, uint32_t blockSize)
Multiplies a Q31 vector by a scalar.
uint8_t bitReverseFlag
Definition: arm_math.h:1979
void arm_pid_init_q31(arm_pid_instance_q31 *S, int32_t resetStateFlag)
Initialization function for the Q31 PID Control.
uint16_t * pBitRevTable
Definition: arm_math.h:1954
void arm_fill_q7(q7_t value, q7_t *pDst, uint32_t blockSize)
Fills a constant value into a Q7 vector.
void arm_lms_q31(const arm_lms_instance_q31 *S, q31_t *pSrc, q31_t *pRef, q31_t *pOut, q31_t *pErr, uint32_t blockSize)
Processing function for Q31 LMS filter.
q31_t * pCoeffs
Definition: arm_math.h:1235
uint16_t Nby2
Definition: arm_math.h:2303
uint16_t stateIndex
Definition: arm_math.h:4433
Definition: arm_math.h:380
void arm_q15_to_float(q15_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to floating-point vector.
uint16_t numTaps
Definition: arm_math.h:4471
int32_t * pTapDelay
Definition: arm_math.h:4476
Definition: arm_math.h:376
uint16_t * pBitRevTable
Definition: arm_math.h:2007
uint16_t bitRevLength
Definition: arm_math.h:2129
void arm_copy_q15(q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Copies the elements of a Q15 vector.
const arm_cfft_instance_q15 * pCfft
Definition: arm_math.h:2166
float32_t mu
Definition: arm_math.h:3973
uint32_t fftLenReal
Definition: arm_math.h:2185
void arm_q31_to_q7(q31_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to Q7 vector.
static __INLINE void arm_inv_clarke_f32(float32_t Ialpha, float32_t Ibeta, float32_t *pIa, float32_t *pIb)
Floating-point Inverse Clarke transform.
Definition: arm_math.h:5084
uint16_t fftLen
Definition: arm_math.h:2109
void arm_cmplx_mult_real_f32(float32_t *pSrcCmplx, float32_t *pSrcReal, float32_t *pCmplxDst, uint32_t numSamples)
Floating-point complex-by-real multiplication.
Instance structure for the Q31 bilinear interpolation function.
Definition: arm_math.h:1861
void arm_cmplx_mag_squared_f32(float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude squared.
arm_status arm_fir_interpolate_init_q31(arm_fir_interpolate_instance_q31 *S, uint8_t L, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR interpolator.
q31_t * pState
Definition: arm_math.h:4070
q31_t * pCosFactor
Definition: arm_math.h:2306
void arm_cfft_radix4_q15(const arm_cfft_radix4_instance_q15 *S, q15_t *pSrc)
void arm_power_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Sum of the squares of the elements of a floating-point vector.
uint16_t * pBitRevTable
Definition: arm_math.h:2033
void arm_rfft_q31(const arm_rfft_instance_q31 *S, q31_t *pSrc, q31_t *pDst)
uint8_t M
Definition: arm_math.h:3282
void arm_max_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Maximum value of a floating-point vector.
arm_status arm_conv_partial_f32(float32_t *pSrcA, uint32_t srcALen, float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of floating-point sequences.
uint32_t fftLenReal
Definition: arm_math.h:2160
Instance structure for the floating-point IIR lattice filter.
Definition: arm_math.h:3860
void arm_q15_to_q7(q15_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q7 vector.
uint16_t stateIndex
Definition: arm_math.h:4459
q15_t * pState
Definition: arm_math.h:3437
q15_t * pCoeffs
Definition: arm_math.h:4020
void arm_abs_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Q7 vector absolute value.
q31_t * pState
Definition: arm_math.h:4171
float32_t energy
Definition: arm_math.h:4124
float32_t * pData
Definition: arm_math.h:1855
void arm_cfft_radix4_f32(const arm_cfft_radix4_instance_f32 *S, float32_t *pSrc)
q7_t * pCoeffs
Definition: arm_math.h:4474
q15_t normalize
Definition: arm_math.h:2350
uint16_t numRows
Definition: arm_math.h:1853
uint16_t numRows
Definition: arm_math.h:1863
void arm_conv_opt_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Convolution of Q7 sequences.
Instance structure for the Q7 FIR filter.
Definition: arm_math.h:1029
int64_t q63_t
64-bit fractional data type in 1.63 format.
Definition: arm_math.h:402
void arm_lms_norm_init_f32(arm_lms_norm_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, float32_t mu, uint32_t blockSize)
Initialization function for floating-point normalized LMS filter.
float32_t * pCoeffs
Definition: arm_math.h:1063
int32_t * pTapDelay
Definition: arm_math.h:4437
void arm_var_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Variance of the elements of a floating-point vector.
q15_t * pState
Definition: arm_math.h:3726
uint16_t twidCoefModifier
Definition: arm_math.h:2060
uint16_t numTaps
Definition: arm_math.h:3970
Instance structure for the Q15 bilinear interpolation function.
Definition: arm_math.h:1871
Instance structure for the floating-point FIR lattice filter.
Definition: arm_math.h:3743
void arm_fir_f32(const arm_fir_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR filter.
void arm_cmplx_mult_cmplx_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t numSamples)
Floating-point complex-by-complex multiplication.
static __INLINE void arm_circularWrite_f32(int32_t *circBuffer, int32_t L, uint16_t *writeOffset, int32_t bufferInc, const int32_t *src, int32_t srcInc, uint32_t blockSize)
floating-point Circular write function.
Definition: arm_math.h:5805
arm_status arm_dct4_init_q31(arm_dct4_instance_q31 *S, arm_rfft_instance_q31 *S_RFFT, arm_cfft_radix4_instance_q31 *S_CFFT, uint16_t N, uint16_t Nby2, q31_t normalize)
Initialization function for the Q31 DCT4/IDCT4.
Instance structure for the floating-point DCT4/IDCT4 function.
Definition: arm_math.h:2254
uint16_t fftLen
Definition: arm_math.h:2055
void arm_iir_lattice_init_f32(arm_iir_lattice_instance_f32 *S, uint16_t numStages, float32_t *pkCoeffs, float32_t *pvCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point IIR lattice filter.
float64_t * pState
Definition: arm_math.h:3631
arm_status arm_mat_scale_q15(const arm_matrix_instance_q15 *pSrc, q15_t scaleFract, int32_t shift, arm_matrix_instance_q15 *pDst)
Q15 matrix scaling.
void arm_var_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Variance of the elements of a Q31 vector.
void arm_fir_sparse_f32(arm_fir_sparse_instance_f32 *S, float32_t *pSrc, float32_t *pDst, float32_t *pScratchIn, uint32_t blockSize)
Processing function for the floating-point sparse FIR filter.
void arm_abs_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Floating-point vector absolute value.
float32_t Kd
Definition: arm_math.h:1777
arm_status arm_mat_trans_f32(const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pDst)
Floating-point matrix transpose.
void arm_scale_q15(q15_t *pSrc, q15_t scaleFract, int8_t shift, q15_t *pDst, uint32_t blockSize)
Multiplies a Q15 vector by a scalar.
void arm_q31_to_q15(q31_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to Q15 vector.
q31_t normalize
Definition: arm_math.h:2304
void arm_lms_q15(const arm_lms_instance_q15 *S, q15_t *pSrc, q15_t *pRef, q15_t *pOut, q15_t *pErr, uint32_t blockSize)
Processing function for Q15 LMS filter.
void arm_biquad_cascade_df2T_init_f64(arm_biquad_cascade_df2T_instance_f64 *S, uint8_t numStages, float64_t *pCoeffs, float64_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter...
void arm_cmplx_mag_q15(q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex magnitude.
Instance structure for the Q15 sparse FIR filter.
Definition: arm_math.h:4456
uint16_t twidCoefModifier
Definition: arm_math.h:2087
uint16_t numTaps
Definition: arm_math.h:4224
const float32_t * pTwiddle
Definition: arm_math.h:2144
arm_status arm_cfft_radix2_init_q15(arm_cfft_radix2_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
q31_t * pCoeffs
Definition: arm_math.h:3284
arm_status arm_cfft_radix4_init_q15(arm_cfft_radix4_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
Instance structure for the floating-point PID Control.
Definition: arm_math.h:1769
arm_status arm_sqrt_q31(q31_t in, q31_t *pOut)
Q31 square root function.
void arm_cmplx_mag_f32(float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude.
q31_t x0
Definition: arm_math.h:4177
void arm_lms_norm_init_q31(arm_lms_norm_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, q31_t mu, uint32_t blockSize, uint8_t postShift)
Initialization function for Q31 normalized LMS filter.
uint16_t bitRevFactor
Definition: arm_math.h:2035
arm_status arm_mat_cmplx_mult_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pScratch)
Q15, complex, matrix multiplication.
uint8_t postShift
Definition: arm_math.h:3573
void arm_rms_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Root Mean Square of the elements of a Q15 vector.
q31_t * recipTable
Definition: arm_math.h:4175
void arm_max_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult, uint32_t *pIndex)
Maximum value of a Q31 vector.
const arm_cfft_instance_q31 * pCfft
Definition: arm_math.h:2191
arm_status arm_mat_sub_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix subtraction.
void arm_sin_cos_q31(q31_t theta, q31_t *pSinVal, q31_t *pCosVal)
Q31 sin_cos function.
float32_t arm_sin_f32(float32_t x)
Fast approximation to the trigonometric sine function for floating-point data.
Instance structure for the floating-point FIR filter.
Definition: arm_math.h:1059
uint16_t twidCoefModifier
Definition: arm_math.h:1955
float32_t Kp
Definition: arm_math.h:1775
void arm_min_q7(q7_t *pSrc, uint32_t blockSize, q7_t *result, uint32_t *index)
Minimum value of a Q7 vector.
float32_t * pState
Definition: arm_math.h:1245
arm_status arm_dct4_init_f32(arm_dct4_instance_f32 *S, arm_rfft_instance_f32 *S_RFFT, arm_cfft_radix4_instance_f32 *S_CFFT, uint16_t N, uint16_t Nby2, float32_t normalize)
Initialization function for the floating-point DCT4/IDCT4.
q31_t Kd
Definition: arm_math.h:1763
arm_status arm_mat_inverse_f32(const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *dst)
Floating-point matrix inverse.
Definition: arm_math.h:378
void arm_negate_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Negates the elements of a Q7 vector.
static __INLINE q7_t clip_q31_to_q7(q31_t x)
Clips Q31 to Q7 values.
Definition: arm_math.h:504
Instance structure for the fixed-point CFFT/CIFFT function.
Definition: arm_math.h:2124
void arm_add_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector addition.
uint8_t bitReverseFlag
Definition: arm_math.h:1952
const uint16_t * pBitRevTable
Definition: arm_math.h:2128
float32_t * pCoeffs
Definition: arm_math.h:3622
void arm_cfft_radix2_f32(const arm_cfft_radix2_instance_f32 *S, float32_t *pSrc)
q15_t A0
Definition: arm_math.h:1739
uint16_t twidCoefModifier
Definition: arm_math.h:2034
static __INLINE void arm_circularRead_f32(int32_t *circBuffer, int32_t L, int32_t *readOffset, int32_t bufferInc, int32_t *dst, int32_t *dst_base, int32_t dst_length, int32_t dstInc, uint32_t blockSize)
floating-point Circular Read function.
Definition: arm_math.h:5850
void arm_fir_init_f32(arm_fir_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR filter.
float32_t * pCoeffs
Definition: arm_math.h:3295
float32_t * pState
Definition: arm_math.h:3746
uint8_t ifftFlag
Definition: arm_math.h:1951
void arm_pid_reset_q31(arm_pid_instance_q31 *S)
Reset function for the Q31 PID Control.
float32_t * pState
Definition: arm_math.h:3863
q31_t * pCoeffs
Definition: arm_math.h:1053
uint16_t numStages
Definition: arm_math.h:3745
void arm_dot_prod_f32(float32_t *pSrcA, float32_t *pSrcB, uint32_t blockSize, float32_t *result)
Dot product of floating-point vectors.
uint8_t postShift
Definition: arm_math.h:4228
void arm_lms_init_f32(arm_lms_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, float32_t mu, uint32_t blockSize)
Initialization function for floating-point LMS filter.
#define __SIMD32_CONST(addr)
Definition: arm_math.h:446
Instance structure for the Q31 LMS filter.
Definition: arm_math.h:4067
uint16_t maxDelay
Definition: arm_math.h:4462
void arm_rfft_fast_f32(arm_rfft_fast_instance_f32 *S, float32_t *p, float32_t *pOut, uint8_t ifftFlag)
Processing function for the floating-point real FFT.
Definition: arm_rfft_fast_f32.c:325
Instance structure for the floating-point transposed direct form II Biquad cascade filter...
Definition: arm_math.h:3628
arm_status arm_mat_mult_fast_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
q15_t * pData
Definition: arm_math.h:1875
void arm_copy_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Copies the elements of a floating-point vector.
q15_t * pCoeffs
Definition: arm_math.h:3273
uint32_t numStages
Definition: arm_math.h:1244
void arm_correlate_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences.
void arm_cfft_f32(const arm_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
Processing function for the floating-point complex FFT.
Definition: arm_cfft_f32.c:574
arm_status arm_rfft_init_f32(arm_rfft_instance_f32 *S, arm_cfft_radix4_instance_f32 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
float32_t xSpacing
Definition: arm_math.h:1844
float32_t * pState
Definition: arm_math.h:3621
Instance structure for the floating-point RFFT/RIFFT function.
Definition: arm_math.h:2235
static __INLINE void arm_inv_clarke_q31(q31_t Ialpha, q31_t Ibeta, q31_t *pIa, q31_t *pIb)
Inverse Clarke transform for Q31 version.
Definition: arm_math.h:5111
uint16_t fftLen
Definition: arm_math.h:2003
arm_status arm_conv_partial_opt_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, uint32_t firstIndex, uint32_t numPoints, q15_t *pScratch1, q15_t *pScratch2)
Partial convolution of Q7 sequences.
uint16_t numStages
Definition: arm_math.h:3735
void arm_cmplx_mult_real_q15(q15_t *pSrcCmplx, q15_t *pSrcReal, q15_t *pCmplxDst, uint32_t numSamples)
Q15 complex-by-real multiplication.
uint16_t * pBitRevTable
Definition: arm_math.h:2086
uint16_t Nby2
Definition: arm_math.h:2257
void arm_add_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector addition.
q15_t * pTwiddle
Definition: arm_math.h:2351
q15_t * recipTable
Definition: arm_math.h:4229
void arm_fir_interpolate_q31(const arm_fir_interpolate_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR interpolator.
void arm_lms_init_q15(arm_lms_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, q15_t mu, uint32_t blockSize, uint32_t postShift)
Initialization function for the Q15 LMS filter.
void arm_cfft_q31(const arm_cfft_instance_q31 *S, q31_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_status arm_conv_partial_fast_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
static __INLINE void arm_inv_park_f32(float32_t Id, float32_t Iq, float32_t *pIalpha, float32_t *pIbeta, float32_t sinVal, float32_t cosVal)
Floating-point Inverse Park transform.
Definition: arm_math.h:5307
q15_t x0
Definition: arm_math.h:4231
void arm_cfft_radix2_q31(const arm_cfft_radix2_instance_q31 *S, q31_t *pSrc)
void arm_cmplx_dot_prod_q15(q15_t *pSrcA, q15_t *pSrcB, uint32_t numSamples, q31_t *realResult, q31_t *imagResult)
Q15 complex dot product.
Instance structure for the Q15 bilinear interpolation function.
Definition: arm_math.h:1881
arm_status arm_mat_sub_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix subtraction.
uint8_t M
Definition: arm_math.h:3293
Instance structure for the Q31 CFFT/CIFFT function.
Definition: arm_math.h:2027
void arm_fir_fast_q31(const arm_fir_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4.
float32_t * pState
Definition: arm_math.h:3459
uint16_t numCols
Definition: arm_math.h:1854
void arm_mat_init_q31(arm_matrix_instance_q31 *S, uint16_t nRows, uint16_t nColumns, q31_t *pData)
Q31 matrix initialization.
void arm_iir_lattice_init_q31(arm_iir_lattice_instance_q31 *S, uint16_t numStages, q31_t *pkCoeffs, q31_t *pvCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 IIR lattice filter.
CMSIS Cortex-M7 Core Peripheral Access Layer Header File.
q31_t mu
Definition: arm_math.h:4072
void arm_lms_f32(const arm_lms_instance_f32 *S, float32_t *pSrc, float32_t *pRef, float32_t *pOut, float32_t *pErr, uint32_t blockSize)
Processing function for floating-point LMS filter.
float32_t * pState
Definition: arm_math.h:4434
q31_t * pCoeffs
Definition: arm_math.h:4448
uint16_t numTaps
Definition: arm_math.h:4445
q15_t * pState
Definition: arm_math.h:3841
uint16_t numRows
Definition: arm_math.h:1873
static __INLINE uint32_t arm_recip_q15(q15_t in, q15_t *dst, q15_t *pRecipTable)
Function to Calculates 1/in (reciprocal) value of Q15 Data type.
Definition: arm_math.h:614
uint16_t numCols
Definition: arm_math.h:1884
q31_t arm_cos_q31(q31_t x)
Fast approximation to the trigonometric cosine function for Q31 data.
q15_t arm_sin_q15(q15_t x)
Fast approximation to the trigonometric sine function for Q15 data.
uint16_t fftLen
Definition: arm_math.h:2029
uint16_t bitRevFactor
Definition: arm_math.h:1956
arm_status arm_mat_trans_q15(const arm_matrix_instance_q15 *pSrc, arm_matrix_instance_q15 *pDst)
Q15 matrix transpose.
Instance structure for the Q7 sparse FIR filter.
Definition: arm_math.h:4469
uint8_t bitReverseFlag
Definition: arm_math.h:2084
Instance structure for the floating-point transposed direct form II Biquad cascade filter...
Definition: arm_math.h:3608
arm_status arm_cfft_radix2_init_f32(arm_cfft_radix2_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
uint32_t postShift
Definition: arm_math.h:4073
q15_t * pCoeffs
Definition: arm_math.h:3727
uint8_t ifftFlag
Definition: arm_math.h:1978
void arm_fir_q31(const arm_fir_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR filter.
void arm_q7_to_q15(q7_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to Q15 vector.
Instance structure for the floating-point RFFT/RIFFT function.
Definition: arm_math.h:2208
arm_status arm_mat_add_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix addition.
uint16_t numTaps
Definition: arm_math.h:1051
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:2141
int8_t postShift
Definition: arm_math.h:1225
uint16_t numStages
Definition: arm_math.h:3851
void arm_cmplx_dot_prod_q31(q31_t *pSrcA, q31_t *pSrcB, uint32_t numSamples, q63_t *realResult, q63_t *imagResult)
Q31 complex dot product.
arm_status arm_rfft_init_q15(arm_rfft_instance_q15 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
void arm_fir_decimate_fast_q31(arm_fir_decimate_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
void arm_shift_q7(q7_t *pSrc, int8_t shiftBits, q7_t *pDst, uint32_t blockSize)
Shifts the elements of a Q7 vector a specified number of bits.
Instance structure for the Radix-2 Q31 CFFT/CIFFT function.
Definition: arm_math.h:2001
static __INLINE void arm_inv_park_q31(q31_t Id, q31_t Iq, q31_t *pIalpha, q31_t *pIbeta, q31_t sinVal, q31_t cosVal)
Inverse Park transform for Q31 version.
Definition: arm_math.h:5338
float32_t * pCoeffs
Definition: arm_math.h:4435
void arm_negate_q31(q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Negates the elements of a Q31 vector.
Instance structure for the Q31 sparse FIR filter.
Definition: arm_math.h:4443
q15_t Ki
Definition: arm_math.h:1748
arm_status arm_mat_scale_q31(const arm_matrix_instance_q31 *pSrc, q31_t scaleFract, int32_t shift, arm_matrix_instance_q31 *pDst)
Q31 matrix scaling.
void arm_mean_q7(q7_t *pSrc, uint32_t blockSize, q7_t *pResult)
Mean value of a Q7 vector.
static __INLINE q15_t arm_linear_interp_q15(q15_t *pYData, q31_t x, uint32_t nValues)
Process function for the Q15 Linear Interpolation Function.
Definition: arm_math.h:5548
arm_status arm_sqrt_q15(q15_t in, q15_t *pOut)
Q15 square root function.
void arm_conv_fast_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
void arm_fir_lattice_q31(const arm_fir_lattice_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR lattice filter.
void arm_dot_prod_q15(q15_t *pSrcA, q15_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q15 vectors.
q31_t * pCoeffs
Definition: arm_math.h:3572
uint16_t maxDelay
Definition: arm_math.h:4475
uint32_t numStages
Definition: arm_math.h:1233
void arm_fir_sparse_q15(arm_fir_sparse_instance_q15 *S, q15_t *pSrc, q15_t *pDst, q15_t *pScratchIn, q31_t *pScratchOut, uint32_t blockSize)
Processing function for the Q15 sparse FIR filter.
uint16_t * pBitRevTable
Definition: arm_math.h:1981
void arm_abs_q31(q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Q31 vector absolute value.
Instance structure for the floating-point LMS filter.
Definition: arm_math.h:3968
void arm_conv_fast_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
void arm_mean_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Mean value of a floating-point vector.
float32_t * pState
Definition: arm_math.h:4121
q15_t Kd
Definition: arm_math.h:1749
void arm_cmplx_dot_prod_f32(float32_t *pSrcA, float32_t *pSrcB, uint32_t numSamples, float32_t *realResult, float32_t *imagResult)
Floating-point complex dot product.
Instance structure for the floating-point FIR decimator.
Definition: arm_math.h:3291
float32_t state[3]
Definition: arm_math.h:1774
q15_t * pState
Definition: arm_math.h:4225
static __INLINE q31_t clip_q63_to_q31(q63_t x)
Clips Q63 to Q31 values.
Definition: arm_math.h:484
float32_t * pTwiddle
Definition: arm_math.h:2058
double float64_t
64-bit floating-point type definition.
Definition: arm_math.h:412
arm_status arm_rfft_fast_init_f32(arm_rfft_fast_instance_f32 *S, uint16_t fftLen)
Initialization function for the floating-point real FFT.
Definition: arm_rfft_fast_init_f32.c:65
int32_t * pTapDelay
Definition: arm_math.h:4463
static __INLINE float32_t arm_bilinear_interp_f32(const arm_bilinear_interp_instance_f32 *S, float32_t X, float32_t Y)
Floating-point bilinear interpolation.
Definition: arm_math.h:6752
uint16_t stateIndex
Definition: arm_math.h:4472
q15_t Kp
Definition: arm_math.h:1747
arm_status arm_mat_cmplx_mult_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point, complex, matrix multiplication.
Instance structure for the Q31 DCT4/IDCT4 function.
Definition: arm_math.h:2300
void arm_cmplx_mult_cmplx_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t numSamples)
Q31 complex-by-complex multiplication.
void arm_conv_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Convolution of Q15 sequences.
uint16_t numTaps
Definition: arm_math.h:3294
void arm_correlate_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Correlation of Q31 sequences.
float32_t * pTwiddleAReal
Definition: arm_math.h:2215
q31_t * pTwiddleBReal
Definition: arm_math.h:2190
void arm_biquad_cascade_df1_q31(const arm_biquad_casd_df1_inst_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 Biquad cascade filter.
float32_t normalize
Definition: arm_math.h:2258
Instance structure for the Q31 FIR filter.
Definition: arm_math.h:1049
uint16_t numTaps
Definition: arm_math.h:4069
void arm_fir_sparse_init_q31(arm_fir_sparse_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q31 sparse FIR filter.
uint16_t fftLenRFFT
Definition: arm_math.h:2238
void arm_negate_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Negates the elements of a floating-point vector.
void arm_copy_q31(q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Copies the elements of a Q31 vector.
uint8_t ifftFlag
Definition: arm_math.h:2056
arm_cfft_radix4_instance_q15 * pCfft
Definition: arm_math.h:2354
Instance structure for the Q15 FIR lattice filter.
Definition: arm_math.h:3723
uint16_t bitRevFactor
Definition: arm_math.h:2088
int16_t q15_t
16-bit fractional data type in 1.15 format.
Definition: arm_math.h:392
q7_t * pState
Definition: arm_math.h:1032
uint16_t * pBitRevTable
Definition: arm_math.h:2059
q31_t * pvCoeffs
Definition: arm_math.h:3854
void arm_lms_init_q31(arm_lms_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, q31_t mu, uint32_t blockSize, uint32_t postShift)
Initialization function for Q31 LMS filter.
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:2080
float32_t A1
Definition: arm_math.h:1772
#define INDEX_MASK
Definition: arm_math.h:332
int32_t * pTapDelay
Definition: arm_math.h:4450
float32_t * pYData
Definition: arm_math.h:1845
uint16_t fftLen
Definition: arm_math.h:1950
arm_status arm_conv_partial_fast_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
Instance structure for the Q15 IIR lattice filter.
Definition: arm_math.h:3838
void arm_std_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Standard deviation of the elements of a Q31 vector.
Instance structure for the Q31 normalized LMS filter.
Definition: arm_math.h:4168
Definition: arm_math.h:379
void arm_negate_q15(q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Negates the elements of a Q15 vector.
void arm_fir_interpolate_q15(const arm_fir_interpolate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR interpolator.
Instance structure for the Q15 FIR decimator.
Definition: arm_math.h:3269
void arm_conv_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Convolution of Q31 sequences.
arm_status arm_mat_add_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix addition.
uint8_t numStages
Definition: arm_math.h:3610
void arm_float_to_q31(float32_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q31 vector.
void arm_pid_init_f32(arm_pid_instance_f32 *S, int32_t resetStateFlag)
Initialization function for the floating-point PID Control.
q31_t arm_sin_q31(q31_t x)
Fast approximation to the trigonometric sine function for Q31 data.
float32_t * pCoeffs
Definition: arm_math.h:4122
void arm_biquad_cas_df1_32x64_q31(const arm_biquad_cas_df1_32x64_ins_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
void arm_pid_reset_f32(arm_pid_instance_f32 *S)
Reset function for the floating-point PID Control.
void arm_cmplx_mag_squared_q15(q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex magnitude squared.
uint8_t L
Definition: arm_math.h:3456
uint16_t bitRevFactor
Definition: arm_math.h:2009
arm_status arm_conv_partial_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q7 sequences.
float32_t A2
Definition: arm_math.h:1773
void arm_fill_q15(q15_t value, q15_t *pDst, uint32_t blockSize)
Fills a constant value into a Q15 vector.
void arm_fir_lattice_init_q15(arm_fir_lattice_instance_q15 *S, uint16_t numStages, q15_t *pCoeffs, q15_t *pState)
Initialization function for the Q15 FIR lattice filter.
q15_t * pState
Definition: arm_math.h:1042
static __INLINE q63_t mult32x64(q63_t x, q31_t y)
Multiplies 32 X 64 and returns 32 bit result in 2.30 format.
Definition: arm_math.h:525
void arm_min_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult, uint32_t *pIndex)
Minimum value of a Q15 vector.
arm_rfft_instance_f32 * pRfft
Definition: arm_math.h:2261
float32_t x0
Definition: arm_math.h:4125
q15_t state[3]
Definition: arm_math.h:1746
q15_t * pCoeffs
Definition: arm_math.h:4461
arm_status arm_conv_partial_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q15 sequences.
q31_t * pState
Definition: arm_math.h:3285
arm_status arm_fir_decimate_init_f32(arm_fir_decimate_instance_f32 *S, uint16_t numTaps, uint8_t M, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR decimator.
Instance structure for the Q15 normalized LMS filter.
Definition: arm_math.h:4222
void arm_dot_prod_q31(q31_t *pSrcA, q31_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q31 vectors.
uint8_t numStages
Definition: arm_math.h:3630
uint8_t M
Definition: arm_math.h:3271
void arm_min_q31(q31_t *pSrc, uint32_t blockSize, q31_t *pResult, uint32_t *pIndex)
Minimum value of a Q31 vector.
void arm_fir_lattice_init_f32(arm_fir_lattice_instance_f32 *S, uint16_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point FIR lattice filter.
void arm_biquad_cascade_df2T_f64(const arm_biquad_cascade_df2T_instance_f64 *S, float64_t *pSrc, float64_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter...
Instance structure for the Q15 matrix structure.
Definition: arm_math.h:1390
q31_t Ki
Definition: arm_math.h:1762
uint16_t twidCoefModifier
Definition: arm_math.h:2008
void arm_fir_q15(const arm_fir_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR filter.
float32_t onebyfftLen
Definition: arm_math.h:2062
arm_status arm_fir_interpolate_init_q15(arm_fir_interpolate_instance_q15 *S, uint8_t L, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR interpolator.
void arm_offset_q31(q31_t *pSrc, q31_t offset, q31_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q31 vector.
Instance structure for the floating-point sparse FIR filter.
Definition: arm_math.h:4430
void arm_fir_decimate_f32(const arm_fir_decimate_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR decimator.
uint16_t numRows
Definition: arm_math.h:1883
Instance structure for the Q15 Biquad cascade filter.
Definition: arm_math.h:1220
arm_rfft_instance_q15 * pRfft
Definition: arm_math.h:2353
void arm_fir_lattice_init_q31(arm_fir_lattice_instance_q31 *S, uint16_t numStages, q31_t *pCoeffs, q31_t *pState)
Initialization function for the Q31 FIR lattice filter.
float32_t * pCoeffs
Definition: arm_math.h:3458
q31_t * pState
Definition: arm_math.h:3736
uint32_t postShift
Definition: arm_math.h:4022
static __INLINE float32_t arm_linear_interp_f32(arm_linear_interp_instance_f32 *S, float32_t x)
Process function for the floating-point Linear Interpolation Function.
Definition: arm_math.h:5433
void arm_biquad_cascade_df1_f32(const arm_biquad_casd_df1_inst_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point Biquad cascade filter.
arm_cfft_radix4_instance_f32 * pCfft
Definition: arm_math.h:2262
Definition: arm_math.h:377
void arm_mult_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector multiplication.
void arm_mat_init_q15(arm_matrix_instance_q15 *S, uint16_t nRows, uint16_t nColumns, q15_t *pData)
Q15 matrix initialization.
uint16_t numStages
Definition: arm_math.h:3840
void arm_fir_lattice_f32(const arm_fir_lattice_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR lattice filter.
void arm_std_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Standard deviation of the elements of a Q15 vector.
void arm_dot_prod_q7(q7_t *pSrcA, q7_t *pSrcB, uint32_t blockSize, q31_t *result)
Dot product of Q7 vectors.
void arm_fir_decimate_q31(const arm_fir_decimate_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR decimator.
void arm_offset_f32(float32_t *pSrc, float32_t offset, float32_t *pDst, uint32_t blockSize)
Adds a constant offset to a floating-point vector.
float64_t * pData
Definition: arm_math.h:1384
void arm_rfft_f32(const arm_rfft_instance_f32 *S, float32_t *pSrc, float32_t *pDst)
float32_t * pTwiddleRFFT
Definition: arm_math.h:2239
const q31_t * pTwiddle
Definition: arm_math.h:2127
uint16_t numStages
Definition: arm_math.h:3862
static __INLINE void arm_park_f32(float32_t Ialpha, float32_t Ibeta, float32_t *pId, float32_t *pIq, float32_t sinVal, float32_t cosVal)
Floating-point Park transform.
Definition: arm_math.h:5194
Instance structure for the Q15 LMS filter.
Definition: arm_math.h:4016
void arm_max_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult, uint32_t *pIndex)
Maximum value of a Q15 vector.
Instance structure for the Q31 FIR interpolator.
Definition: arm_math.h:3443
uint16_t twidCoefModifier
Definition: arm_math.h:1982
void arm_var_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Variance of the elements of a Q15 vector.
uint16_t numCols
Definition: arm_math.h:1403
q15_t * pCoeffs
Definition: arm_math.h:1043
void arm_biquad_cascade_df2T_f32(const arm_biquad_cascade_df2T_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter...
q31_t * pTwiddle
Definition: arm_math.h:2305
uint16_t numCols
Definition: arm_math.h:1864
void arm_q7_to_q31(q7_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to Q31 vector.
Instance structure for the Q31 Biquad cascade filter.
Definition: arm_math.h:1231
float32_t * pState
Definition: arm_math.h:3611
void arm_shift_q31(q31_t *pSrc, int8_t shiftBits, q31_t *pDst, uint32_t blockSize)
Shifts the elements of a Q31 vector a specified number of bits.
arm_status arm_cfft_radix2_init_q31(arm_cfft_radix2_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_status arm_mat_cmplx_mult_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31, complex, matrix multiplication.
q15_t * pkCoeffs
Definition: arm_math.h:3842
q31_t * pTwiddle
Definition: arm_math.h:2032
int i
Definition: panvswr2.c:1670
arm_status arm_rfft_init_q31(arm_rfft_instance_q31 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
const q15_t * pTwiddle
Definition: arm_math.h:2110
uint8_t bitReverseFlag
Definition: arm_math.h:2005
uint16_t numStages
Definition: arm_math.h:3725
void arm_biquad_cascade_stereo_df2T_init_f32(arm_biquad_cascade_stereo_df2T_instance_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter...
q15_t * pCoeffs
Definition: arm_math.h:4226
const uint16_t * pBitRevTable
Definition: arm_math.h:2145
static __INLINE void arm_park_q31(q31_t Ialpha, q31_t Ibeta, q31_t *pId, q31_t *pIq, q31_t sinVal, q31_t cosVal)
Park transform for Q31 version.
Definition: arm_math.h:5225
uint8_t bitReverseFlag
Definition: arm_math.h:2031
arm_status arm_fir_decimate_init_q15(arm_fir_decimate_instance_q15 *S, uint16_t numTaps, uint8_t M, q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR decimator.
arm_rfft_instance_q31 * pRfft
Definition: arm_math.h:2307
static uint32_t result
Definition: num_keypad.c:32
q15_t * pCosFactor
Definition: arm_math.h:2352
void arm_mult_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector multiplication.
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:2053
void arm_rfft_q15(const arm_rfft_instance_q15 *S, q15_t *pSrc, q15_t *pDst)
void arm_correlate_opt_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch)
Correlation of Q15 sequences.
static __INLINE void arm_clarke_f32(float32_t Ia, float32_t Ib, float32_t *pIalpha, float32_t *pIbeta)
Floating-point Clarke transform.
Definition: arm_math.h:4987
void arm_fir_sparse_init_f32(arm_fir_sparse_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the floating-point sparse FIR filter.
uint16_t numTaps
Definition: arm_math.h:4018
int8_t numStages
Definition: arm_math.h:1222
Instance structure for the Q15 FIR interpolator.
Definition: arm_math.h:3432
void arm_lms_norm_q31(arm_lms_norm_instance_q31 *S, q31_t *pSrc, q31_t *pRef, q31_t *pOut, q31_t *pErr, uint32_t blockSize)
Processing function for Q31 normalized LMS filter.
int32_t q31_t
32-bit fractional data type in 1.31 format.
Definition: arm_math.h:397
uint16_t numTaps
Definition: arm_math.h:3272
#define __CLZ
Count leading zeros.
Definition: cmsis_gcc.h:554
uint8_t ifftFlag
Definition: arm_math.h:2004
void arm_conv_opt_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Convolution of Q15 sequences.
q31_t * pCoeffs
Definition: arm_math.h:4172
float32_t * pState
Definition: arm_math.h:3971
void arm_fir_lattice_q15(const arm_fir_lattice_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR lattice filter.
float32_t * pkCoeffs
Definition: arm_math.h:3864
q31_t * pState
Definition: arm_math.h:3448
uint16_t numTaps
Definition: arm_math.h:1031
uint8_t ifftFlag
Definition: arm_math.h:2030
uint16_t numTaps
Definition: arm_math.h:1041
Instance structure for the Q15 CFFT/CIFFT function.
Definition: arm_math.h:1975
uint16_t numCols
Definition: arm_math.h:1383
Instance structure for the Q15 PID Control.
Definition: arm_math.h:1737
Instance structure for the Q15 DCT4/IDCT4 function.
Definition: arm_math.h:2346
Instance structure for the floating-point normalized LMS filter.
Definition: arm_math.h:4118
float32_t * pTwiddle
Definition: arm_math.h:2085
static __INLINE q31_t arm_bilinear_interp_q31(arm_bilinear_interp_instance_q31 *S, q31_t X, q31_t Y)
Q31 bilinear interpolation.
Definition: arm_math.h:6818
Instance structure for the Q31 RFFT/RIFFT function.
Definition: arm_math.h:2183
void arm_add_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector addition.
float32_t arm_cos_f32(float32_t x)
Fast approximation to the trigonometric cosine function for floating-point data.
q31_t A1
Definition: arm_math.h:1744
static __INLINE void arm_circularWrite_q7(q7_t *circBuffer, int32_t L, uint16_t *writeOffset, int32_t bufferInc, const q7_t *src, int32_t srcInc, uint32_t blockSize)
Q7 Circular write function.
Definition: arm_math.h:6005
uint32_t twidCoefRModifier
Definition: arm_math.h:2163
q31_t * pkCoeffs
Definition: arm_math.h:3853
void arm_rms_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Root Mean Square of the elements of a floating-point vector.
void arm_lms_norm_f32(arm_lms_norm_instance_f32 *S, float32_t *pSrc, float32_t *pRef, float32_t *pOut, float32_t *pErr, uint32_t blockSize)
Processing function for floating-point normalized LMS filter.
void arm_cmplx_mag_squared_q31(q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex magnitude squared.
void arm_cmplx_mult_cmplx_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t numSamples)
Q15 complex-by-complex multiplication.
q15_t * pCoeffs
Definition: arm_math.h:1224
void arm_biquad_cascade_df1_init_q15(arm_biquad_casd_df1_inst_q15 *S, uint8_t numStages, q15_t *pCoeffs, q15_t *pState, int8_t postShift)
Initialization function for the Q15 Biquad cascade filter.
static __INLINE q15_t clip_q63_to_q15(q63_t x)
Clips Q63 to Q15 values.
Definition: arm_math.h:494
arm_status arm_mat_inverse_f64(const arm_matrix_instance_f64 *src, arm_matrix_instance_f64 *dst)
Floating-point matrix inverse.
float32_t * pCosFactor
Definition: arm_math.h:2260
arm_status arm_mat_trans_q31(const arm_matrix_instance_q31 *pSrc, arm_matrix_instance_q31 *pDst)
Q31 matrix transpose.
void arm_fir_sparse_init_q7(arm_fir_sparse_instance_q7 *S, uint16_t numTaps, q7_t *pCoeffs, q7_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q7 sparse FIR filter.
void arm_lms_norm_q15(arm_lms_norm_instance_q15 *S, q15_t *pSrc, q15_t *pRef, q15_t *pOut, q15_t *pErr, uint32_t blockSize)
Processing function for Q15 normalized LMS filter.
q31_t * pState
Definition: arm_math.h:4447
arm_status arm_cfft_radix4_init_f32(arm_cfft_radix4_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
uint8_t numStages
Definition: arm_math.h:3620
Instance structure for the high precision Q31 Biquad cascade filter.
Definition: arm_math.h:3568
void arm_biquad_cascade_df2T_init_f32(arm_biquad_cascade_df2T_instance_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter...
void arm_correlate_f32(float32_t *pSrcA, uint32_t srcALen, float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst)
Correlation of floating-point sequences.
void arm_fir_sparse_init_q15(arm_fir_sparse_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q15 sparse FIR filter.
uint8_t bitReverseFlag
Definition: arm_math.h:2057
Instance structure for the Q15 RFFT/RIFFT function.
Definition: arm_math.h:2158
static __INLINE q15_t arm_pid_q15(arm_pid_instance_q15 *S, q15_t in)
Process function for the Q15 PID Control.
Definition: arm_math.h:4876
uint32_t fftLenReal
Definition: arm_math.h:2210
Instance structure for the floating-point matrix structure.
Definition: arm_math.h:1380
arm_status arm_conv_partial_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q31 sequences.
Instance structure for the Q15 CFFT/CIFFT function.
Definition: arm_math.h:1948
q31_t * pData
Definition: arm_math.h:1865
Instance structure for the floating-point matrix structure.
Definition: arm_math.h:1369
q31_t state[3]
Definition: arm_math.h:1760
uint16_t numCols
Definition: arm_math.h:1874
uint16_t phaseLength
Definition: arm_math.h:3457
Definition: arm_math.h:381
void arm_float_to_q7(float32_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q7 vector.
void arm_q15_to_q31(q15_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q31 vector.
void arm_fir_fast_q15(const arm_fir_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4.
const uint16_t * pBitRevTable
Definition: arm_math.h:2111
static __INLINE void arm_clarke_q31(q31_t Ia, q31_t Ib, q31_t *pIalpha, q31_t *pIbeta)
Clarke transform for Q31 version.
Definition: arm_math.h:5014
arm_status arm_mat_mult_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix multiplication.
void arm_biquad_cas_df1_32x64_init_q31(arm_biquad_cas_df1_32x64_ins_q31 *S, uint8_t numStages, q31_t *pCoeffs, q63_t *pState, uint8_t postShift)
Instance structure for the Q31 FIR decimator.
Definition: arm_math.h:3280
uint16_t numRows
Definition: arm_math.h:1402
float32_t Ki
Definition: arm_math.h:1776
void arm_cfft_radix4_q31(const arm_cfft_radix4_instance_q31 *S, q31_t *pSrc)
q31_t * pData
Definition: arm_math.h:1404
uint32_t twidCoefRModifier
Definition: arm_math.h:2214
float32_t * pCoeffs
Definition: arm_math.h:1246
uint8_t ifftFlag
Definition: arm_math.h:2083
void arm_correlate_opt_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Correlation of Q7 sequences.
void arm_float_to_q15(float32_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q15 vector.
Instance structure for the fixed-point CFFT/CIFFT function.
Definition: arm_math.h:2107
uint16_t numCols
Definition: arm_math.h:1393
float32_t * pState
Definition: arm_math.h:1062
void arm_max_q7(q7_t *pSrc, uint32_t blockSize, q7_t *pResult, uint32_t *pIndex)
Maximum value of a Q7 vector.
void arm_conv_f32(float32_t *pSrcA, uint32_t srcALen, float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst)
Convolution of floating-point sequences.
static __INLINE uint32_t arm_recip_q31(q31_t in, q31_t *dst, q31_t *pRecipTable)
Function to Calculates 1/in (reciprocal) value of Q31 Data type.
Definition: arm_math.h:563
void arm_biquad_cascade_df1_init_f32(arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point Biquad cascade filter.
static __INLINE float32_t arm_pid_f32(arm_pid_instance_f32 *S, float32_t in)
Process function for the floating-point PID Control.
Definition: arm_math.h:4795
void arm_q7_to_float(q7_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to floating-point vector.
arm_status arm_conv_partial_opt_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints, q15_t *pScratch1, q15_t *pScratch2)
Partial convolution of Q15 sequences.
q31_t * pTwiddleAReal
Definition: arm_math.h:2189
arm_status arm_mat_scale_f32(const arm_matrix_instance_f32 *pSrc, float32_t scale, arm_matrix_instance_f32 *pDst)
Floating-point matrix scaling.
void arm_cmplx_conj_f32(float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex conjugate.
void arm_correlate_fast_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
static __INLINE q15_t arm_bilinear_interp_q15(arm_bilinear_interp_instance_q15 *S, q31_t X, q31_t Y)
Q15 bilinear interpolation.
Definition: arm_math.h:6892
void arm_lms_norm_init_q15(arm_lms_norm_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, q15_t mu, uint32_t blockSize, uint8_t postShift)
Initialization function for Q15 normalized LMS filter.
void arm_fir_sparse_q7(arm_fir_sparse_instance_q7 *S, q7_t *pSrc, q7_t *pDst, q7_t *pScratchIn, q31_t *pScratchOut, uint32_t blockSize)
Processing function for the Q7 sparse FIR filter.
void arm_correlate_fast_q31(q31_t *pSrcA, uint32_t srcALen, q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
uint16_t fftLen
Definition: arm_math.h:2082
void arm_offset_q7(q7_t *pSrc, q7_t offset, q7_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q7 vector.
uint32_t twidCoefRModifier
Definition: arm_math.h:2188
arm_status arm_mat_sub_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
Q15 matrix subtraction.
void arm_dct4_q31(const arm_dct4_instance_q31 *S, q31_t *pState, q31_t *pInlineBuffer)
Processing function for the Q31 DCT4/IDCT4.
float64_t * pCoeffs
Definition: arm_math.h:3632
float32_t mu
Definition: arm_math.h:4123
uint16_t stateIndex
Definition: arm_math.h:4446
void arm_dct4_q15(const arm_dct4_instance_q15 *S, q15_t *pState, q15_t *pInlineBuffer)
Processing function for the Q15 DCT4/IDCT4.
q7_t * pState
Definition: arm_math.h:4473
uint16_t bitRevFactor
Definition: arm_math.h:2061
q15_t * pState
Definition: arm_math.h:4460
void arm_cfft_radix2_q15(const arm_cfft_radix2_instance_q15 *S, q15_t *pSrc)
static __INLINE q7_t arm_linear_interp_q7(q7_t *pYData, q31_t x, uint32_t nValues)
Process function for the Q7 Linear Interpolation Function.
Definition: arm_math.h:5605
uint16_t N
Definition: arm_math.h:2302
q15_t energy
Definition: arm_math.h:4230
Definition: arm_math.h:375
static __INLINE q31_t arm_linear_interp_q31(q31_t *pYData, q31_t x, uint32_t nValues)
Process function for the Q31 Linear Interpolation Function.
Definition: arm_math.h:5490
void arm_correlate_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Correlation of Q7 sequences.
q15_t * pCoeffs
Definition: arm_math.h:3436
uint16_t maxDelay
Definition: arm_math.h:4449
void arm_sub_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector subtraction.
void arm_fill_f32(float32_t value, float32_t *pDst, uint32_t blockSize)
Fills a constant value into a floating-point vector.
void arm_mult_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector multiplication.
q31_t * pState
Definition: arm_math.h:1052
q15_t * pState
Definition: arm_math.h:4019
void arm_power_q15(q15_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q15 vector.
void arm_biquad_cascade_df1_fast_q31(const arm_biquad_casd_df1_inst_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-...
Instance structure for the floating-point Linear Interpolate function.
Definition: arm_math.h:1840
uint16_t N
Definition: arm_math.h:2256
void arm_iir_lattice_q31(const arm_iir_lattice_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 IIR lattice filter.
void arm_fir_q7(const arm_fir_instance_q7 *S, q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Processing function for the Q7 FIR filter.
arm_status arm_conv_partial_fast_opt_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints, q15_t *pScratch1, q15_t *pScratch2)
Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
void arm_mult_q7(q7_t *pSrcA, q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector multiplication.
q31_t mu
Definition: arm_math.h:4173
uint16_t Nby2
Definition: arm_math.h:2349
q15_t mu
Definition: arm_math.h:4021
void arm_sub_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector subtraction.
Instance structure for the floating-point Biquad cascade filter.
Definition: arm_math.h:1242
void arm_mean_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Mean value of a Q15 vector.
float32_t * pCoeffs
Definition: arm_math.h:3972
uint8_t ifftFlagR
Definition: arm_math.h:2161
arm_status
Error status returned by some functions in the library.
Definition: arm_math.h:373
void arm_biquad_cascade_df1_init_q31(arm_biquad_casd_df1_inst_q31 *S, uint8_t numStages, q31_t *pCoeffs, q31_t *pState, int8_t postShift)
Initialization function for the Q31 Biquad cascade filter.
void arm_cmplx_mult_real_q31(q31_t *pSrcCmplx, q31_t *pSrcReal, q31_t *pCmplxDst, uint32_t numSamples)
Q31 complex-by-real multiplication.
uint8_t postShift
Definition: arm_math.h:1236
void arm_conv_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Convolution of Q7 sequences.
Instance structure for the floating-point bilinear interpolation function.
Definition: arm_math.h:1851
float32_t * pData
Definition: arm_math.h:1373
uint16_t numTaps
Definition: arm_math.h:1061
void arm_iir_lattice_q15(const arm_iir_lattice_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 IIR lattice filter.
arm_cfft_instance_f32 Sint
Definition: arm_math.h:2237
uint16_t numTaps
Definition: arm_math.h:4120
Instance structure for the Q31 matrix structure.
Definition: arm_math.h:1400
void arm_shift_q15(q15_t *pSrc, int8_t shiftBits, q15_t *pDst, uint32_t blockSize)
Shifts the elements of a Q15 vector a specified number of bits.
arm_status arm_cfft_radix4_init_q31(arm_cfft_radix4_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
void arm_min_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Minimum value of a floating-point vector.
uint16_t fftLen
Definition: arm_math.h:1977
q31_t A0
Definition: arm_math.h:1757
uint8_t ifftFlagR
Definition: arm_math.h:2186
void arm_iir_lattice_init_q15(arm_iir_lattice_instance_q15 *S, uint16_t numStages, q15_t *pkCoeffs, q15_t *pvCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 IIR lattice filter.
q31_t * pTwiddle
Definition: arm_math.h:2006
q15_t * pTwiddle
Definition: arm_math.h:1953
q15_t arm_cos_q15(q15_t x)
Fast approximation to the trigonometric cosine function for Q15 data.
void arm_fir_decimate_q15(const arm_fir_decimate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator.
void arm_fir_interpolate_f32(const arm_fir_interpolate_instance_f32 *S, float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR interpolator.
q7_t * pCoeffs
Definition: arm_math.h:1033
void arm_cmplx_conj_q31(q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex conjugate.
arm_status arm_fir_interpolate_init_f32(arm_fir_interpolate_instance_f32 *S, uint8_t L, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR interpolator.
void arm_fir_init_q31(arm_fir_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR filter.
q15_t * pState
Definition: arm_math.h:3274
void arm_power_q31(q31_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q31 vector.
uint16_t bitRevFactor
Definition: arm_math.h:1983
Instance structure for the Q31 PID Control.
Definition: arm_math.h:1755
q63_t * pState
Definition: arm_math.h:3571