284 #define __CMSIS_GENERIC            286 #if defined(ARM_MATH_CM7)   288 #elif defined (ARM_MATH_CM4)   289   #include "core_cm4.h"   290 #elif defined (ARM_MATH_CM3)   291   #include "core_cm3.h"   292 #elif defined (ARM_MATH_CM0)   293   #include "core_cm0.h"   294 #define ARM_MATH_CM0_FAMILY   295   #elif defined (ARM_MATH_CM0PLUS)   296 #include "core_cm0plus.h"   297   #define ARM_MATH_CM0_FAMILY   299   #error "Define according the used Cortex core ARM_MATH_CM7, ARM_MATH_CM4, ARM_MATH_CM3, ARM_MATH_CM0PLUS or ARM_MATH_CM0"   302 #undef  __CMSIS_GENERIC            315 #define DELTA_Q31                       (0x100)   316 #define DELTA_Q15                       0x5   317 #define INDEX_MASK                      0x0000003F   319 #define PI                                      3.14159265358979f   326 #define FAST_MATH_TABLE_SIZE  512   327 #define FAST_MATH_Q31_SHIFT   (32 - 10)   328 #define FAST_MATH_Q15_SHIFT   (16 - 10)   329 #define CONTROLLER_Q31_SHIFT  (32 - 9)   330 #define TABLE_SIZE  256   331 #define TABLE_SPACING_Q31          0x400000   332 #define TABLE_SPACING_Q15          0x80   339 #define INPUT_SPACING                   0xB60B61   344 #ifndef UNALIGNED_SUPPORT_DISABLE   347   #if defined  (__GNUC__)   348     #define ALIGN4 __attribute__((aligned(4)))   350     #define ALIGN4 __align(4)   403 #define __SIMD32_TYPE int32_t __packed   404 #define CMSIS_UNUSED __attribute__((unused))   405 #elif defined __ICCARM__   407 #define __SIMD32_TYPE int32_t __packed   408 #elif defined __GNUC__   409 #define __SIMD32_TYPE int32_t   410 #define CMSIS_UNUSED __attribute__((unused))   411 #elif defined __CSMC__                     413 #define __SIMD32_TYPE int32_t   415 #error Unknown compiler   418 #define __SIMD32(addr)  (*(__SIMD32_TYPE **) & (addr))   419 #define __SIMD32_CONST(addr)  ((__SIMD32_TYPE *)(addr))   421 #define _SIMD32_OFFSET(addr)  (*(__SIMD32_TYPE *)  (addr))   423 #define __SIMD64(addr)  (*(int64_t **) & (addr))   425 #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY)   429 #define __PKHBT(ARG1, ARG2, ARG3)      ( (((int32_t)(ARG1) <<  0) & (int32_t)0x0000FFFF) | \   430                                          (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000)  )   431 #define __PKHTB(ARG1, ARG2, ARG3)      ( (((int32_t)(ARG1) <<  0) & (int32_t)0xFFFF0000) | \   432                                          (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF)  )   440 #ifndef ARM_MATH_BIG_ENDIAN   442 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) <<  0) & (int32_t)0x000000FF) | \   443                                 (((int32_t)(v1) <<  8) & (int32_t)0x0000FF00) | \   444                                                             (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) |     \   445                                                             (((int32_t)(v3) << 24) & (int32_t)0xFF000000)  )   448 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) <<  0) & (int32_t)0x000000FF) | \   449                                 (((int32_t)(v2) <<  8) & (int32_t)0x0000FF00) | \   450                                                             (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) |     \   451                                                             (((int32_t)(v0) << 24) & (int32_t)0xFF000000)  )   462     return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
   463       ((0x7FFFFFFF ^ ((
q31_t) (x >> 63)))) : (q31_t) x;
   472     return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
   473       ((0x7FFF ^ ((
q15_t) (x >> 63)))) : (q15_t) (x >> 15);
   482     return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ?
   483       ((0x7F ^ ((
q7_t) (x >> 31)))) : (q7_t) x;
   492     return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ?
   493       ((0x7FFF ^ ((
q15_t) (x >> 31)))) : (q15_t) x;
   504     return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) +
   505             (((q63_t) (x >> 32) * y)));
   509 #if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM   )   513 #if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__)) ||(defined (__GNUC__)) || defined (__TASKING__) )   515   static __INLINE uint32_t __CLZ(
   519   static __INLINE uint32_t __CLZ(
   523     uint32_t mask = 0x80000000;
   525     while((data & mask) == 0)
   547     uint32_t out, tempVal;
   553       signBits = __CLZ(in) - 1;
   557       signBits = __CLZ(-in) - 1;
   564     index = (uint32_t) (in >> 24u);
   568     out = pRecipTable[index];
   572     for (i = 0u; i < 2u; i++)
   574       tempVal = (
q31_t) (((q63_t) in * out) >> 31u);
   575       tempVal = 0x7FFFFFFF - tempVal;
   585     return (signBits + 1u);
   598     uint32_t out = 0, tempVal = 0;
   599     uint32_t index = 0, i = 0;
   600     uint32_t signBits = 0;
   604       signBits = __CLZ(in) - 17;
   608       signBits = __CLZ(-in) - 17;
   619     out = pRecipTable[index];
   623     for (i = 0; i < 2; i++)
   625       tempVal = (
q15_t) (((q31_t) in * out) >> 15);
   626       tempVal = 0x7FFF - tempVal;
   628       out = (
q15_t) (((q31_t) out * tempVal) >> 14);
   635     return (signBits + 1);
   643 #if defined(ARM_MATH_CM0_FAMILY)   645   static __INLINE q31_t __SSAT(
   649     int32_t posMax, negMin;
   653     for (i = 0; i < (y - 1); i++)
   660       posMax = (posMax - 1);
   688 #if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY)   693   static __INLINE q31_t __QADD8(
   704     r = __SSAT((q31_t) (r + s), 8);
   705     s = __SSAT(((q31_t) (((x << 16) >> 24) + ((y << 16) >> 24))), 8);
   706     t = __SSAT(((q31_t) (((x << 8) >> 24) + ((y << 8) >> 24))), 8);
   707     u = __SSAT(((q31_t) ((x >> 24) + (y >> 24))), 8);
   710       (((
q31_t) u << 24) & 0xFF000000) | (((q31_t) t << 16) & 0x00FF0000) |
   711       (((
q31_t) s << 8) & 0x0000FF00) | (r & 0x000000FF);
   720   static __INLINE q31_t __QSUB8(
   731     r = __SSAT((r - s), 8);
   732     s = __SSAT(((q31_t) (((x << 16) >> 24) - ((y << 16) >> 24))), 8) << 8;
   733     t = __SSAT(((q31_t) (((x << 8) >> 24) - ((y << 8) >> 24))), 8) << 16;
   734     u = __SSAT(((q31_t) ((x >> 24) - (y >> 24))), 8) << 24;
   737       (u & 0xFF000000) | (t & 0x00FF0000) | (s & 0x0000FF00) | (r &
   750   static __INLINE q31_t __QADD16(
   761     r = __SSAT(r + s, 16);
   762     s = __SSAT(((q31_t) ((x >> 16) + (y >> 16))), 16) << 16;
   764     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
   773   static __INLINE q31_t __SHADD16(
   784     r = ((r >> 1) + (s >> 1));
   785     s = ((
q31_t) ((x >> 17) + (y >> 17))) << 16;
   787     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
   796   static __INLINE q31_t __QSUB16(
   807     r = __SSAT(r - s, 16);
   808     s = __SSAT(((q31_t) ((x >> 16) - (y >> 16))), 16) << 16;
   810     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
   818   static __INLINE q31_t __SHSUB16(
   829     r = ((r >> 1) - (s >> 1));
   830     s = (((x >> 17) - (y >> 17)) << 16);
   832     diff = (s & 0xFFFF0000) | (r & 0x0000FFFF);
   840   static __INLINE q31_t __QASX(
   858   static __INLINE q31_t __SHASX(
   869     r = ((r >> 1) - (y >> 17));
   870     s = (((x >> 17) + (s >> 1)) << 16);
   872     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
   881   static __INLINE q31_t __QSAX(
   899   static __INLINE q31_t __SHSAX(
   910     r = ((r >> 1) + (y >> 17));
   911     s = (((x >> 17) - (s >> 1)) << 16);
   913     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
   921   static __INLINE q31_t __SMUSDX(
   926     return ((q31_t) (((q15_t) x * (q15_t) (y >> 16)) -
   927                      ((q15_t) (x >> 16) * (q15_t) y)));
   933   static __INLINE q31_t __SMUADX(
   938     return ((q31_t) (((q15_t) x * (q15_t) (y >> 16)) +
   939                      ((q15_t) (x >> 16) * (q15_t) y)));
   945   static __INLINE q31_t __QADD(
   955   static __INLINE q31_t __QSUB(
   965   static __INLINE q31_t __SMLAD(
   971     return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) +
   972             ((q15_t) x * (q15_t) y));
   978   static __INLINE q31_t __SMLADX(
   984     return (sum + ((q15_t) (x >> 16) * (q15_t) (y)) +
   985             ((q15_t) x * (q15_t) (y >> 16)));
   991   static __INLINE q31_t __SMLSDX(
   997     return (sum - ((q15_t) (x >> 16) * (q15_t) (y)) +
   998             ((q15_t) x * (q15_t) (y >> 16)));
  1004   static __INLINE q63_t __SMLALD(
  1010     return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) +
  1011             ((q15_t) x * (q15_t) y));
  1017   static __INLINE q63_t __SMLALDX(
  1023     return (sum + ((q15_t) (x >> 16) * (q15_t) y)) +
  1024       ((
q15_t) x * (q15_t) (y >> 16));
  1030   static __INLINE q31_t __SMUAD(
  1035     return (((x >> 16) * (y >> 16)) +
  1036             (((x << 16) >> 16) * ((y << 16) >> 16)));
  1042   static __INLINE q31_t __SMUSD(
  1047     return (-((x >> 16) * (y >> 16)) +
  1048             (((x << 16) >> 16) * ((y << 16) >> 16)));
  1055   static __INLINE q31_t __SXTB16(
  1059     return ((((x << 24) >> 24) & 0x0000FFFF) |
  1060             (((x << 8) >> 8) & 0xFFFF0000));
  1120   uint32_t blockSize);
  1137   uint32_t blockSize);
  1152   uint32_t blockSize);
  1166   uint32_t blockSize);
  1184   uint32_t blockSize);
  1198   uint32_t blockSize);
  1212   uint32_t blockSize);
  1228   uint32_t blockSize);
  1242   uint32_t blockSize);
  1256   float32_t * pCoeffs,
  1258   uint32_t blockSize);
  1313   uint32_t blockSize);
  1346   uint32_t blockSize);
  1362   uint32_t blockSize);
  1377   uint32_t blockSize);
  1409   uint32_t blockSize);
  1423   float32_t * pCoeffs,
  1424   float32_t * pState);
  1817 #ifdef ARM_MATH_CM0_FAMILY  1868   int32_t resetStateFlag);
  1887   int32_t resetStateFlag);
  1907   int32_t resetStateFlag);
  1987   uint32_t blockSize);
  2002   uint32_t blockSize);
  2017   uint32_t blockSize);
  2032   uint32_t blockSize);
  2059   uint8_t bitReverseFlag);
  2088   uint8_t bitReverseFlag);
  2115   uint8_t bitReverseFlag);
  2147   uint8_t bitReverseFlag);
  2170   uint8_t bitReverseFlag);
  2198   uint8_t bitReverseFlag);
  2221     uint8_t bitReverseFlag);  
  2239     uint8_t bitReverseFlag);  
  2257   uint8_t bitReverseFlag);
  2276   uint32_t fftLenReal,
  2278   uint32_t bitReverseFlag);
  2302   uint32_t fftLenReal,
  2304   uint32_t bitReverseFlag);
  2330   uint32_t fftLenReal,
  2332   uint32_t bitReverseFlag);
  2356   float32_t * p, float32_t * pOut,
  2404   float32_t * pInlineBuffer);
  2451   q31_t * pInlineBuffer);
  2498   q15_t * pInlineBuffer);
  2513   uint32_t blockSize);
  2528   uint32_t blockSize);
  2543   uint32_t blockSize);
  2558   uint32_t blockSize);
  2573   uint32_t blockSize);
  2588   uint32_t blockSize);
  2603   uint32_t blockSize);
  2618   uint32_t blockSize);
  2633   uint32_t blockSize);
  2650   uint32_t blockSize);
  2667   uint32_t blockSize);
  2684   uint32_t blockSize);
  2697   uint32_t blockSize);
  2710   uint32_t blockSize);
  2723   uint32_t blockSize);
  2736   uint32_t blockSize);
  2751   float32_t * result);
  2811   uint32_t blockSize);
  2826   uint32_t blockSize);
  2841   uint32_t blockSize);
  2856   uint32_t blockSize);
  2871   uint32_t blockSize);
  2886   uint32_t blockSize);
  2901   uint32_t blockSize);
  2914   uint32_t blockSize);
  2927   uint32_t blockSize);
  2940   uint32_t blockSize);
  2953   uint32_t blockSize);
  2964   uint32_t blockSize);
  2976   uint32_t blockSize);
  2988   uint32_t blockSize);
  3000   uint32_t blockSize);
  3011   uint32_t blockSize);
  3023   uint32_t blockSize);
  3035   uint32_t blockSize);
  3047   uint32_t blockSize);
  3241   uint32_t firstIndex,
  3242   uint32_t numPoints);
  3264   uint32_t firstIndex,
  3288   uint32_t firstIndex,
  3289   uint32_t numPoints);
  3309                                        uint32_t firstIndex,
  3310                                        uint32_t numPoints);
  3333   uint32_t firstIndex,
  3357   uint32_t firstIndex,
  3358   uint32_t numPoints);
  3379   uint32_t firstIndex,
  3380   uint32_t numPoints);
  3403   uint32_t firstIndex,
  3427   uint32_t firstIndex,
  3428   uint32_t numPoints);
  3485   uint32_t blockSize);
  3504   float32_t * pCoeffs,
  3506   uint32_t blockSize);
  3521   uint32_t blockSize);
  3536   uint32_t blockSize);
  3558   uint32_t blockSize);
  3573   uint32_t blockSize);
  3588   uint32_t blockSize);
  3609   uint32_t blockSize);
  3663   uint32_t blockSize);
  3684   uint32_t blockSize);
  3699   uint32_t blockSize);
  3719   uint32_t blockSize);
  3735   uint32_t blockSize);
  3753   float32_t * pCoeffs,
  3755   uint32_t blockSize);
  3783   uint32_t blockSize);
  3855   uint32_t blockSize);
  3871   uint32_t blockSize);
  3886   uint32_t blockSize);
  3901   float32_t * pCoeffs,
  3902   float32_t * pState);
  3917   float32_t * pCoeffs,
  3918   float32_t * pState);
  3933   float64_t * pCoeffs,
  3934   float64_t * pState);
  3999   uint32_t blockSize);
  4030   uint32_t blockSize);
  4044   float32_t * pCoeffs,
  4045   float32_t * pState);
  4060   uint32_t blockSize);
  4108   uint32_t blockSize);
  4124   float32_t * pkCoeffs,
  4125   float32_t * pvCoeffs,
  4127   uint32_t blockSize);
  4143   uint32_t blockSize);
  4163   uint32_t blockSize);
  4179   uint32_t blockSize);
  4199   uint32_t blockSize);
  4230   uint32_t blockSize);
  4246   float32_t * pCoeffs,
  4249   uint32_t blockSize);
  4284   uint32_t postShift);
  4303   uint32_t blockSize);
  4337   uint32_t blockSize);
  4358   uint32_t postShift);
  4391   uint32_t blockSize);
  4407   float32_t * pCoeffs,
  4410   uint32_t blockSize);
  4445   uint32_t blockSize);
  4501   uint32_t blockSize);
  4762   float32_t * pScratchIn,
  4763   uint32_t blockSize);
  4780   float32_t * pCoeffs,
  4782   int32_t * pTapDelay,
  4784   uint32_t blockSize);
  4801   uint32_t blockSize);
  4820   int32_t * pTapDelay,
  4822   uint32_t blockSize);
  4840   q31_t * pScratchOut,
  4841   uint32_t blockSize);
  4861   int32_t * pTapDelay,
  4863   uint32_t blockSize);
  4881   q31_t * pScratchOut,
  4882   uint32_t blockSize);
  4901   int32_t * pTapDelay,
  4903   uint32_t blockSize);
  4916   float32_t * pSinVal,
  4917   float32_t * pCcosVal);
  4944   uint32_t numSamples);
  4957   uint32_t numSamples);
  4970   uint32_t numSamples);
  4985   uint32_t numSamples);
  4998   uint32_t numSamples);
  5011   uint32_t numSamples);
  5095     out = (S->
A0 * in) +
  5134     acc += (q63_t) S->
A1 * S->
state[0];
  5140     out = (q31_t) (acc >> 31u);
  5178 #ifndef ARM_MATH_CM0_FAMILY  5179     __SIMD32_TYPE *vstate;
  5184     acc = (
q31_t) __SMUAD(S->
A0, in);
  5188     acc = __SMLALD(S->
A1, (q31_t) *vstate, acc);
  5196     acc += (q31_t) S->A2 * S->
state[1];
  5204     out = (q15_t) (__SSAT((acc >> 15), 16));
  5293   float32_t * pIalpha,
  5301       ((
float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib);
  5326     q31_t product1, product2;                    
  5332     product1 = (
q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30);
  5335     product2 = (
q31_t) (((q63_t) Ib * 0x49E69D16) >> 30);
  5338     *pIbeta = __QADD(product1, product2);
  5355   uint32_t blockSize);
  5405     *pIb = -0.5 * Ialpha + (
float32_t) 0.8660254039 *Ibeta;
  5430     q31_t product1, product2;                    
  5436     product1 = (
q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31);
  5439     product2 = (
q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31);
  5442     *pIb = __QSUB(product2, product1);
  5460   uint32_t blockSize);
  5520     *pId = Ialpha * cosVal + Ibeta * sinVal;
  5523     *pIq = -Ialpha * sinVal + Ibeta * cosVal;
  5553     q31_t product1, product2;                    
  5554     q31_t product3, product4;                    
  5557     product1 = (
q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31);
  5560     product2 = (
q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31);
  5564     product3 = (
q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31);
  5567     product4 = (
q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31);
  5570     *pId = __QADD(product1, product2);
  5573     *pIq = __QSUB(product4, product3);
  5590   uint32_t blockSize);
  5633   float32_t * pIalpha,
  5639     *pIalpha = Id * cosVal - Iq * sinVal;
  5642     *pIbeta = Id * sinVal + Iq * cosVal;
  5673     q31_t product1, product2;                    
  5674     q31_t product3, product4;                    
  5677     product1 = (
q31_t) (((q63_t) (Id) * (cosVal)) >> 31);
  5680     product2 = (
q31_t) (((q63_t) (Iq) * (sinVal)) >> 31);
  5684     product3 = (
q31_t) (((q63_t) (Id) * (sinVal)) >> 31);
  5687     product4 = (
q31_t) (((q63_t) (Iq) * (cosVal)) >> 31);
  5690     *pIalpha = __QSUB(product1, product2);
  5693     *pIbeta = __QADD(product4, product3);
  5712   uint32_t blockSize);
  5773     float32_t *pYData = S->
pYData;               
  5776     i = (int32_t) ((x - S->
x1) / xSpacing);
  5783     else if((uint32_t)i >= S->
nValues)
  5791       x0 = S->
x1 + i * xSpacing;
  5792       x1 = S->
x1 + (i + 1) * xSpacing;
  5799       y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0));
  5835     index = ((x & 0xFFF00000) >> 20);
  5837     if(index >= (int32_t)(nValues - 1))
  5839       return (pYData[nValues - 1]);
  5850       fract = (x & 0x000FFFFF) << 11;
  5854       y1 = pYData[index + 1u];
  5857       y = ((
q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32));
  5860       y += ((
q31_t) (((q63_t) y1 * fract) >> 32));
  5897     index = ((x & 0xFFF00000) >> 20u);
  5899     if(index >= (int32_t)(nValues - 1))
  5901       return (pYData[nValues - 1]);
  5911       fract = (x & 0x000FFFFF);
  5915       y1 = pYData[index + 1u];
  5918       y = ((
q63_t) y0 * (0xFFFFF - fract));
  5921       y += ((
q63_t) y1 * (fract));
  5961     index = (x >> 20) & 0xfff;
  5964     if(index >= (nValues - 1))
  5966       return (pYData[nValues - 1]);
  5973       fract = (x & 0x000FFFFF);
  5977       y1 = pYData[index + 1u];
  5980       y = ((y0 * (0xFFFFF - fract)));
  6097 #if (__FPU_USED == 1) && defined ( __CC_ARM   )  6098       *pOut = __sqrtf(in);
  6150   int32_t * circBuffer,
  6152   uint16_t * writeOffset,
  6154   const int32_t * src,
  6163     wOffset = *writeOffset;
  6171       circBuffer[wOffset] = *src;
  6177       wOffset += bufferInc;
  6186     *writeOffset = wOffset;
  6195   int32_t * circBuffer,
  6197   int32_t * readOffset,
  6206     int32_t rOffset, dst_end;
  6210     rOffset = *readOffset;
  6211     dst_end = (int32_t) (dst_base + dst_length);
  6219       *dst = circBuffer[rOffset];
  6224       if(dst == (int32_t *) dst_end)
  6230       rOffset += bufferInc;
  6242     *readOffset = rOffset;
  6252   uint16_t * writeOffset,
  6263     wOffset = *writeOffset;
  6271       circBuffer[wOffset] = *src;
  6277       wOffset += bufferInc;
  6286     *writeOffset = wOffset;
  6297   int32_t * readOffset,
  6306     int32_t rOffset, dst_end;
  6310     rOffset = *readOffset;
  6312     dst_end = (int32_t) (dst_base + dst_length);
  6320       *dst = circBuffer[rOffset];
  6325       if(dst == (q15_t *) dst_end)
  6331       rOffset += bufferInc;
  6343     *readOffset = rOffset;
  6354   uint16_t * writeOffset,
  6365     wOffset = *writeOffset;
  6373       circBuffer[wOffset] = *src;
  6379       wOffset += bufferInc;
  6388     *writeOffset = wOffset;
  6399   int32_t * readOffset,
  6408     int32_t rOffset, dst_end;
  6412     rOffset = *readOffset;
  6414     dst_end = (int32_t) (dst_base + dst_length);
  6422       *dst = circBuffer[rOffset];
  6427       if(dst == (q7_t *) dst_end)
  6433       rOffset += bufferInc;
  6445     *readOffset = rOffset;
  6473   float32_t * pResult);
  6548   float32_t * pResult);
  6561   float32_t * pResult);
  6600   float32_t * pResult);
  6639   float32_t * pResult);
  6678   uint32_t numSamples);
  6691   uint32_t numSamples);
  6704   uint32_t numSamples);
  6719   uint32_t numSamples,
  6721   q31_t * imagResult);
  6736   uint32_t numSamples,
  6738   q63_t * imagResult);
  6753   uint32_t numSamples,
  6754   float32_t * realResult,
  6755   float32_t * imagResult);
  6770   uint32_t numSamples);
  6785   uint32_t numSamples);
  6797   float32_t * pSrcCmplx,
  6798   float32_t * pSrcReal,
  6799   float32_t * pCmplxDst,
  6800   uint32_t numSamples);
  6858   float32_t * pResult,
  6918   float32_t * pResult,
  6934   uint32_t numSamples);
  6949   uint32_t numSamples);
  6964   uint32_t numSamples);
  6976   uint32_t blockSize);
  6988   uint32_t blockSize);
  7000   uint32_t blockSize);
  7013   uint32_t blockSize);
  7025   uint32_t blockSize);
  7037   uint32_t blockSize);
  7050   uint32_t blockSize);
  7063   uint32_t blockSize);
  7143     float32_t f00, f01, f10, f11;
  7144     float32_t *pData = S->
pData;
  7145     int32_t xIndex, yIndex, index;
  7146     float32_t xdiff, ydiff;
  7147     float32_t b1, b2, b3, b4;
  7149     xIndex = (int32_t) X;
  7150     yIndex = (int32_t) Y;
  7154     if(xIndex < 0 || xIndex > (S->
numRows - 1) || yIndex < 0
  7161     index = (xIndex - 1) + (yIndex - 1) * S->
numCols;
  7166     f01 = pData[index + 1];
  7169     index = (xIndex - 1) + (yIndex) * S->
numCols;
  7174     f11 = pData[index + 1];
  7180     b4 = f00 - f01 - f10 + f11;
  7189     out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff;
  7212     q31_t xfract, yfract;                        
  7213     q31_t x1, x2, y1, y2;                        
  7215     q31_t *pYData = S->
pData;                    
  7222     rI = ((X & 0xFFF00000) >> 20u);
  7227     cI = ((Y & 0xFFF00000) >> 20u);
  7231     if(rI < 0 || rI > (S->
numRows - 1) || cI < 0 || cI > (S->
numCols - 1))
  7238     xfract = (X & 0x000FFFFF) << 11u;
  7241     x1 = pYData[(rI) + nCols * (cI)];
  7242     x2 = pYData[(rI) + nCols * (cI) + 1u];
  7246     yfract = (Y & 0x000FFFFF) << 11u;
  7249     y1 = pYData[(rI) + nCols * (cI + 1)];
  7250     y2 = pYData[(rI) + nCols * (cI + 1) + 1u];
  7253     out = ((
q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32));
  7254     acc = ((
q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32));
  7257     out = ((
q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32));
  7258     acc += ((
q31_t) ((q63_t) out * (xfract) >> 32));
  7261     out = ((
q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32));
  7262     acc += ((
q31_t) ((q63_t) out * (yfract) >> 32));
  7265     out = ((
q31_t) ((q63_t) y2 * (xfract) >> 32));
  7266     acc += ((
q31_t) ((q63_t) out * (yfract) >> 32));
  7288     q15_t x1, x2, y1, y2;                        
  7289     q31_t xfract, yfract;                        
  7291     q15_t *pYData = S->
pData;                    
  7297     rI = ((X & 0xFFF00000) >> 20);
  7302     cI = ((Y & 0xFFF00000) >> 20);
  7306     if(rI < 0 || rI > (S->
numRows - 1) || cI < 0 || cI > (S->
numCols - 1))
  7313     xfract = (X & 0x000FFFFF);
  7316     x1 = pYData[(rI) + nCols * (cI)];
  7317     x2 = pYData[(rI) + nCols * (cI) + 1u];
  7322     yfract = (Y & 0x000FFFFF);
  7325     y1 = pYData[(rI) + nCols * (cI + 1)];
  7326     y2 = pYData[(rI) + nCols * (cI + 1) + 1u];
  7332     out = (
q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4u);
  7333     acc = ((
q63_t) out * (0xFFFFF - yfract));
  7336     out = (
q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4u);
  7337     acc += ((
q63_t) out * (xfract));
  7340     out = (
q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4u);
  7341     acc += ((
q63_t) out * (yfract));
  7344     out = (
q31_t) (((q63_t) y2 * (xfract)) >> 4u);
  7345     acc += ((
q63_t) out * (yfract));
  7368     q31_t xfract, yfract;                        
  7369     q7_t x1, x2, y1, y2;                         
  7371     q7_t *pYData = S->
pData;                     
  7377     rI = ((X & 0xFFF00000) >> 20);
  7382     cI = ((Y & 0xFFF00000) >> 20);
  7386     if(rI < 0 || rI > (S->
numRows - 1) || cI < 0 || cI > (S->
numCols - 1))
  7393     xfract = (X & 0x000FFFFF);
  7396     x1 = pYData[(rI) + nCols * (cI)];
  7397     x2 = pYData[(rI) + nCols * (cI) + 1u];
  7402     yfract = (Y & 0x000FFFFF);
  7405     y1 = pYData[(rI) + nCols * (cI + 1)];
  7406     y2 = pYData[(rI) + nCols * (cI + 1) + 1u];
  7409     out = ((x1 * (0xFFFFF - xfract)));
  7410     acc = (((
q63_t) out * (0xFFFFF - yfract)));
  7413     out = ((x2 * (0xFFFFF - yfract)));
  7414     acc += (((
q63_t) out * (xfract)));
  7417     out = ((y1 * (0xFFFFF - xfract)));
  7418     acc += (((
q63_t) out * (yfract)));
  7421     out = ((y2 * (yfract)));
  7422     acc += (((
q63_t) out * (xfract)));
  7435 #define multAcc_32x32_keep32_R(a, x, y) \  7436     a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32)  7439 #define multSub_32x32_keep32_R(a, x, y) \  7440     a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32)  7443 #define mult_32x32_keep32_R(a, x, y) \  7444     a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32)  7447 #define multAcc_32x32_keep32(a, x, y) \  7448     a += (q31_t) (((q63_t) x * y) >> 32)  7451 #define multSub_32x32_keep32(a, x, y) \  7452     a -= (q31_t) (((q63_t) x * y) >> 32)  7455 #define mult_32x32_keep32(a, x, y) \  7456     a = (q31_t) (((q63_t) x * y ) >> 32)  7459 #if defined ( __CC_ARM ) //Keil  7463       #define LOW_OPTIMIZATION_ENTER \  7467       #define LOW_OPTIMIZATION_ENTER   7472       #define LOW_OPTIMIZATION_EXIT \  7475       #define LOW_OPTIMIZATION_EXIT    7479   #define IAR_ONLY_LOW_OPTIMIZATION_ENTER  7482   #define IAR_ONLY_LOW_OPTIMIZATION_EXIT  7484 #elif defined(__ICCARM__) //IAR  7488       #define LOW_OPTIMIZATION_ENTER \  7489          _Pragma ("optimize=low")  7491       #define LOW_OPTIMIZATION_ENTER     7495   #define LOW_OPTIMIZATION_EXIT  7499       #define IAR_ONLY_LOW_OPTIMIZATION_ENTER \  7500          _Pragma ("optimize=low")  7502       #define IAR_ONLY_LOW_OPTIMIZATION_ENTER     7506   #define IAR_ONLY_LOW_OPTIMIZATION_EXIT  7508 #elif defined(__GNUC__)  7510   #define LOW_OPTIMIZATION_ENTER __attribute__(( optimize("-O1") ))  7512   #define LOW_OPTIMIZATION_EXIT  7514   #define IAR_ONLY_LOW_OPTIMIZATION_ENTER  7516   #define IAR_ONLY_LOW_OPTIMIZATION_EXIT  7518 #elif defined(__CSMC__)         // Cosmic  7520 #define LOW_OPTIMIZATION_ENTER  7521 #define LOW_OPTIMIZATION_EXIT  7522 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER  7523 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT 
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. 
 
void arm_pid_reset_q15(arm_pid_instance_q15 *S)
Reset function for the Q15 PID Control. 
 
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. 
 
void arm_mat_init_f32(arm_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
Floating-point matrix initialization. 
 
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. 
 
arm_status arm_rfft_fast_init_f32(arm_rfft_fast_instance_f32 *S, uint16_t fftLen)
 
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. 
 
int8_t q7_t
8-bit fractional data type in 1.7 format. 
 
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. 
 
Instance structure for the Q15 FIR filter. 
 
static __INLINE q31_t arm_pid_q31(arm_pid_instance_q31 *S, q31_t in)
Process function for the Q31 PID Control. 
 
void arm_pid_init_q15(arm_pid_instance_q15 *S, int32_t resetStateFlag)
Initialization function for the Q15 PID Control. 
 
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...
 
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. 
 
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. 
 
void arm_copy_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Copies the elements of a Q7 vector. 
 
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. 
 
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. 
 
void arm_cfft_f32(const arm_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
 
static __INLINE q15_t clip_q31_to_q15(q31_t x)
Clips Q31 to Q15 values. 
 
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-...
 
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. 
 
static __INLINE arm_status arm_sqrt_f32(float32_t in, float32_t *pOut)
Floating-point square root function. 
 
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
 
void arm_scale_f32(float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize)
Multiplies a floating-point vector by a scalar. 
 
arm_cfft_radix4_instance_q31 * pCfft
 
float32_t * pTwiddleBReal
 
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. 
 
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. 
 
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. 
 
float float32_t
32-bit floating-point type definition. 
 
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. 
 
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. 
 
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. 
 
void arm_pid_init_q31(arm_pid_instance_q31 *S, int32_t resetStateFlag)
Initialization function for the Q31 PID Control. 
 
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. 
 
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. 
 
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
 
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. 
 
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. 
 
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. 
 
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. 
 
void arm_rfft_q31(const arm_rfft_instance_q31 *S, q31_t *pSrc, q31_t *pDst)
 
GeneratorWrapper< T > value(T &&value)
 
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. 
 
Instance structure for the floating-point IIR lattice filter. 
 
void arm_q15_to_q7(q15_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q7 vector. 
 
void arm_abs_q7(q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Q7 vector absolute value. 
 
void arm_cfft_radix4_f32(const arm_cfft_radix4_instance_f32 *S, float32_t *pSrc)
 
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. 
 
int64_t q63_t
64-bit fractional data type in 1.63 format. 
 
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. 
 
void arm_var_f32(float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Variance of the elements of a floating-point vector. 
 
uint16_t twidCoefModifier
 
size_t count(InputIterator first, InputIterator last, T const &item)
 
Instance structure for the Q15 bilinear interpolation function. 
 
Instance structure for the floating-point FIR lattice filter. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
uint16_t twidCoefModifier
 
const float32_t * pTwiddle
 
arm_status arm_cfft_radix2_init_q15(arm_cfft_radix2_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
 
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. 
 
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. 
 
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. 
 
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. 
 
void arm_rms_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Root Mean Square of the elements of a Q15 vector. 
 
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
 
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)
 
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. 
 
uint16_t twidCoefModifier
 
void arm_min_q7(q7_t *pSrc, uint32_t blockSize, q7_t *result, uint32_t *index)
Minimum value of a Q7 vector. 
 
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. 
 
arm_status arm_mat_inverse_f32(const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *dst)
Floating-point matrix inverse. 
 
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. 
 
Instance structure for the fixed-point CFFT/CIFFT function. 
 
void arm_add_f32(float32_t *pSrcA, float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector addition. 
 
const uint16_t * pBitRevTable
 
void arm_cfft_radix2_f32(const arm_cfft_radix2_instance_f32 *S, float32_t *pSrc)
 
uint16_t twidCoefModifier
 
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. 
 
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. 
 
void arm_pid_reset_q31(arm_pid_instance_q31 *S)
Reset function for the Q31 PID Control. 
 
void arm_dot_prod_f32(float32_t *pSrcA, float32_t *pSrcB, uint32_t blockSize, float32_t *result)
Dot product of floating-point vectors. 
 
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)
 
Instance structure for the Q31 LMS filter. 
 
Instance structure for the floating-point transposed direct form II Biquad cascade filter...
 
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. 
 
void arm_copy_f32(float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Copies the elements of a floating-point vector. 
 
void arm_correlate_q15(q15_t *pSrcA, uint32_t srcALen, q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences. 
 
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)
 
Instance structure for the floating-point RFFT/RIFFT function. 
 
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. 
 
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. 
 
void arm_cmplx_mult_real_q15(q15_t *pSrcCmplx, q15_t *pSrcReal, q15_t *pCmplxDst, uint32_t numSamples)
Q15 complex-by-real multiplication. 
 
void arm_add_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector addition. 
 
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. 
 
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. 
 
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. 
 
Instance structure for the Q31 CFFT/CIFFT function. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
Instance structure for the floating-point transposed direct form II Biquad cascade filter...
 
arm_status arm_cfft_radix2_init_f32(arm_cfft_radix2_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
 
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. 
 
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. 
 
void arm_rfft_fast_f32(arm_rfft_fast_instance_f32 *S, float32_t *p, float32_t *pOut, uint8_t ifftFlag)
 
Instance structure for the floating-point CFFT/CIFFT function. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
static __INLINE q31_t clip_q63_to_q31(q63_t x)
Clips Q63 to Q31 values. 
 
double float64_t
64-bit floating-point type definition. 
 
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. 
 
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. 
 
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. 
 
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
 
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. 
 
Instance structure for the Q31 FIR filter. 
 
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. 
 
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. 
 
arm_cfft_radix4_instance_q15 * pCfft
 
Instance structure for the Q15 FIR lattice filter. 
 
int16_t q15_t
16-bit fractional data type in 1.15 format. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
static __INLINE q63_t mult32x64(q63_t x, q31_t y)
Multiplies 32 X 64 and returns 32 bit result in 2.30 format. 
 
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
 
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. 
 
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. 
 
void arm_dot_prod_q31(q31_t *pSrcA, q31_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q31 vectors. 
 
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. 
 
uint16_t twidCoefModifier
 
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. 
 
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. 
 
USBInterfaceDescriptor data
 
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. 
 
Instance structure for the Q15 Biquad cascade filter. 
 
arm_rfft_instance_q15 * pRfft
 
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. 
 
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. 
 
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
 
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. 
 
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. 
 
void arm_rfft_f32(const arm_rfft_instance_f32 *S, float32_t *pSrc, float32_t *pDst)
 
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. 
 
Instance structure for the Q15 LMS filter. 
 
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. 
 
uint16_t twidCoefModifier
 
void arm_var_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Variance of the elements of a Q15 vector. 
 
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...
 
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. 
 
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. 
 
arm_status arm_rfft_init_q31(arm_rfft_instance_q31 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
 
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...
 
const uint16_t * pBitRevTable
 
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. 
 
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
 
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. 
 
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. 
 
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. 
 
Instance structure for the Q15 FIR interpolator. 
 
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. 
 
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. 
 
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. 
 
Instance structure for the Q15 CFFT/CIFFT function. 
 
Instance structure for the Q15 PID Control. 
 
Instance structure for the Q15 DCT4/IDCT4 function. 
 
Instance structure for the floating-point normalized LMS filter. 
 
static __INLINE q31_t arm_bilinear_interp_q31(arm_bilinear_interp_instance_q31 *S, q31_t X, q31_t Y)
Q31 bilinear interpolation. 
 
Instance structure for the Q31 RFFT/RIFFT function. 
 
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. 
 
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. 
 
uint32_t twidCoefRModifier
 
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. 
 
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. 
 
arm_status arm_mat_inverse_f64(const arm_matrix_instance_f64 *src, arm_matrix_instance_f64 *dst)
Floating-point matrix inverse. 
 
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. 
 
arm_status arm_cfft_radix4_init_f32(arm_cfft_radix4_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
 
Instance structure for the high precision Q31 Biquad cascade filter. 
 
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. 
 
Instance structure for the Q15 RFFT/RIFFT function. 
 
static __INLINE q15_t arm_pid_q15(arm_pid_instance_q15 *S, q15_t in)
Process function for the Q15 PID Control. 
 
Instance structure for the floating-point matrix structure. 
 
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. 
 
Instance structure for the floating-point matrix structure. 
 
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
 
static __INLINE void arm_clarke_q31(q31_t Ia, q31_t Ib, q31_t *pIalpha, q31_t *pIbeta)
Clarke transform for Q31 version. 
 
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. 
 
void arm_cfft_radix4_q31(const arm_cfft_radix4_instance_q31 *S, q31_t *pSrc)
 
uint32_t twidCoefRModifier
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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. 
 
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
 
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. 
 
void arm_dct4_q15(const arm_dct4_instance_q15 *S, q15_t *pState, q15_t *pInlineBuffer)
Processing function for the Q15 DCT4/IDCT4. 
 
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. 
 
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. 
 
void arm_correlate_q7(q7_t *pSrcA, uint32_t srcALen, q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Correlation of Q7 sequences. 
 
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. 
 
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. 
 
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. 
 
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. 
 
void arm_mean_q15(q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Mean value of a Q15 vector. 
 
arm_status
Error status returned by some functions in the library. 
 
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. 
 
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. 
 
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
 
Instance structure for the Q31 matrix structure. 
 
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. 
 
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. 
 
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. 
 
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. 
 
void arm_sin_cos_f32(float32_t theta, float32_t *pSinVal, float32_t *pCcosVal)
 
void arm_power_q31(q31_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q31 vector. 
 
Instance structure for the Q31 PID Control.