Changeset 2916a33 in rtems


Ignore:
Timestamp:
Jan 12, 2016, 1:20:29 PM (4 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
b32a9cd
Parents:
bbccdb5
git-author:
Sebastian Huber <sebastian.huber@…> (01/12/16 13:20:29)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/19/16 07:36:19)
Message:

bsps/arm: Update CMSIS/Include

Remove duplicate and outdated files.

Location:
c/src/lib/libbsp/arm
Files:
7 added
16 deleted
10 moved

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/shared/CMSIS/Include/arm_common_tables.h

    rbbccdb5 r2916a33  
    22* Copyright (C) 2010-2014 ARM Limited. All rights reserved.
    33*
    4 * $Date:        19. March 2015
    5 * $Revision:    V.1.4.5
     4* $Date:        19. October 2015
     5* $Revision:    V.1.4.5 a
    66*
    77* Project:          CMSIS DSP Library
     
    4747extern const q15_t armRecipTableQ15[64];
    4848extern const q31_t armRecipTableQ31[64];
    49 //extern const q31_t realCoefAQ31[1024];
    50 //extern const q31_t realCoefBQ31[1024];
     49/* extern const q31_t realCoefAQ31[1024]; */
     50/* extern const q31_t realCoefBQ31[1024]; */
    5151extern const float32_t twiddleCoef_16[32];
    5252extern const float32_t twiddleCoef_32[64];
  • c/src/lib/libbsp/arm/shared/CMSIS/Include/arm_math.h

    rbbccdb5 r2916a33  
    22* Copyright (C) 2010-2015 ARM Limited. All rights reserved.
    33*
    4 * $Date:        19. March 2015
    5 * $Revision:    V.1.4.5
     4* $Date:        20. October 2015
     5* $Revision:    V1.4.5 b
    66*
    7 * Project:          CMSIS DSP Library
    8 * Title:            arm_math.h
     7* Project:      CMSIS DSP Library
     8* Title:        arm_math.h
    99*
    10 * Description:  Public header file for CMSIS DSP Library
     10* Description:  Public header file for CMSIS DSP Library
    1111*
    1212* Target Processor: Cortex-M7/Cortex-M4/Cortex-M3/Cortex-M0
     
    289289#define _ARM_MATH_H
    290290
     291/* ignore some GCC warnings */
     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"
     297#endif
     298
    291299#define __CMSIS_GENERIC         /* disable NVIC and Systick functions */
    292300
     
    299307#elif defined (ARM_MATH_CM0)
    300308  #include "core_cm0.h"
    301 #define ARM_MATH_CM0_FAMILY
    302   #elif defined (ARM_MATH_CM0PLUS)
    303 #include "core_cm0plus.h"
     309  #define ARM_MATH_CM0_FAMILY
     310#elif defined (ARM_MATH_CM0PLUS)
     311  #include "core_cm0plus.h"
    304312  #define ARM_MATH_CM0_FAMILY
    305313#else
     
    310318#include "string.h"
    311319#include "math.h"
    312 #ifdef  __cplusplus
     320#ifdef   __cplusplus
    313321extern "C"
    314322{
     
    320328   */
    321329
    322 #define DELTA_Q31                       (0x100)
    323 #define DELTA_Q15                       0x5
    324 #define INDEX_MASK                      0x0000003F
     330#define DELTA_Q31          (0x100)
     331#define DELTA_Q15          0x5
     332#define INDEX_MASK         0x0000003F
    325333#ifndef PI
    326 #define PI                                      3.14159265358979f
     334#define PI                 3.14159265358979f
    327335#endif
    328336
     
    336344#define CONTROLLER_Q31_SHIFT  (32 - 9)
    337345#define TABLE_SIZE  256
    338 #define TABLE_SPACING_Q31          0x400000
    339 #define TABLE_SPACING_Q15          0x80
     346#define TABLE_SPACING_Q31     0x400000
     347#define TABLE_SPACING_Q15     0x80
    340348
    341349  /**
     
    344352  /* 1.31(q31) Fixed value of 2/360 */
    345353  /* -1 to +1 is divided into 360 values so total spacing is (2/360) */
    346 #define INPUT_SPACING                   0xB60B61
     354#define INPUT_SPACING         0xB60B61
    347355
    348356  /**
     
    357365    #define ALIGN4 __align(4)
    358366  #endif
    359 #endif  /*      #ifndef UNALIGNED_SUPPORT_DISABLE       */
     367#endif   /* #ifndef UNALIGNED_SUPPORT_DISABLE */
    360368
    361369  /**
     
    410418  #define __SIMD32_TYPE int32_t __packed
    411419  #define CMSIS_UNUSED __attribute__((unused))
     420
     421#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
     422  #define __SIMD32_TYPE int32_t
     423  #define CMSIS_UNUSED __attribute__((unused))
     424
     425#elif defined __GNUC__
     426  #define __SIMD32_TYPE int32_t
     427  #define CMSIS_UNUSED __attribute__((unused))
     428
    412429#elif defined __ICCARM__
    413430  #define __SIMD32_TYPE int32_t __packed
    414431  #define CMSIS_UNUSED
    415 #elif defined __GNUC__
    416   #define __SIMD32_TYPE int32_t
    417   #define CMSIS_UNUSED __attribute__((unused))
    418 #elif defined __CSMC__                  /* Cosmic */
     432
     433#elif defined __CSMC__
    419434  #define __SIMD32_TYPE int32_t
    420435  #define CMSIS_UNUSED
     436
    421437#elif defined __TASKING__
    422438  #define __SIMD32_TYPE __unaligned int32_t
    423439  #define CMSIS_UNUSED
     440
    424441#else
    425442  #error Unknown compiler
    426443#endif
    427444
    428 #define __SIMD32(addr)  (*(__SIMD32_TYPE **) & (addr))
     445#define __SIMD32(addr)        (*(__SIMD32_TYPE **) & (addr))
    429446#define __SIMD32_CONST(addr)  ((__SIMD32_TYPE *)(addr))
    430 
    431447#define _SIMD32_OFFSET(addr)  (*(__SIMD32_TYPE *)  (addr))
    432 
    433 #define __SIMD64(addr)  (*(int64_t **) & (addr))
     448#define __SIMD64(addr)        (*(int64_t **) & (addr))
    434449
    435450#if defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY)
     
    450465#ifndef ARM_MATH_BIG_ENDIAN
    451466
    452 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) <<  0) & (int32_t)0x000000FF) | \
    453                                 (((int32_t)(v1) <<  8) & (int32_t)0x0000FF00) | \
    454                                                             (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) |     \
    455                                                             (((int32_t)(v3) << 24) & (int32_t)0xFF000000)  )
     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)  )
    456471#else
    457472
    458 #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) <<  0) & (int32_t)0x000000FF) | \
    459                                 (((int32_t)(v2) <<  8) & (int32_t)0x0000FF00) | \
    460                                                             (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) |     \
    461                                                             (((int32_t)(v0) << 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)  )
    462477
    463478#endif
     
    516531  }
    517532
    518 
    519 //#if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM   )
    520 //#define __CLZ __clz
    521 //#endif
    522 
    523 //note: function can be removed when all toolchain support __CLZ for Cortex-M0
     533/*
     534  #if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM   )
     535  #define __CLZ __clz
     536  #endif
     537 */
     538/* note: function can be removed when all toolchain support __CLZ for Cortex-M0 */
    524539#if defined (ARM_MATH_CM0_FAMILY) && ((defined (__ICCARM__))  )
    525 
    526540  static __INLINE uint32_t __CLZ(
    527541  q31_t data);
    528 
    529542
    530543  static __INLINE uint32_t __CLZ(
     
    541554
    542555    return (count);
    543 
    544556  }
    545 
    546557#endif
    547558
     
    555566  q31_t * pRecipTable)
    556567  {
    557 
    558     uint32_t out, tempVal;
     568    q31_t out;
     569    uint32_t tempVal;
    559570    uint32_t index, i;
    560571    uint32_t signBits;
     
    562573    if(in > 0)
    563574    {
    564       signBits = __CLZ(in) - 1;
     575      signBits = ((uint32_t) (__CLZ( in) - 1));
    565576    }
    566577    else
    567578    {
    568       signBits = __CLZ(-in) - 1;
     579      signBits = ((uint32_t) (__CLZ(-in) - 1));
    569580    }
    570581
    571582    /* Convert input sample to 1.31 format */
    572     in = in << signBits;
     583    in = (in << signBits);
    573584
    574585    /* calculation of index for initial approximated Val */
    575     index = (uint32_t) (in >> 24u);
     586    index = (uint32_t)(in >> 24);
    576587    index = (index & INDEX_MASK);
    577588
     
    583594    for (i = 0u; i < 2u; i++)
    584595    {
    585       tempVal = (q31_t) (((q63_t) in * out) >> 31u);
    586       tempVal = 0x7FFFFFFF - tempVal;
     596      tempVal = (uint32_t) (((q63_t) in * out) >> 31);
     597      tempVal = 0x7FFFFFFFu - tempVal;
    587598      /*      1.31 with exp 1 */
    588       //out = (q31_t) (((q63_t) out * tempVal) >> 30u);
    589       out = (q31_t) clip_q63_to_q31(((q63_t) out * tempVal) >> 30u);
     599      /* out = (q31_t) (((q63_t) out * tempVal) >> 30); */
     600      out = clip_q63_to_q31(((q63_t) out * tempVal) >> 30);
    590601    }
    591602
     
    595606    /* return num of signbits of out = 1/in value */
    596607    return (signBits + 1u);
    597 
    598608  }
     609
    599610
    600611  /**
     
    606617  q15_t * pRecipTable)
    607618  {
    608 
    609     uint32_t out = 0, tempVal = 0;
     619    q15_t out = 0;
     620    uint32_t tempVal = 0;
    610621    uint32_t index = 0, i = 0;
    611622    uint32_t signBits = 0;
     
    613624    if(in > 0)
    614625    {
    615       signBits = __CLZ(in) - 17;
     626      signBits = ((uint32_t)(__CLZ( in) - 17));
    616627    }
    617628    else
    618629    {
    619       signBits = __CLZ(-in) - 17;
     630      signBits = ((uint32_t)(__CLZ(-in) - 17));
    620631    }
    621632
    622633    /* Convert input sample to 1.15 format */
    623     in = in << signBits;
     634    in = (in << signBits);
    624635
    625636    /* calculation of index for initial approximated Val */
    626     index = in >> 8;
     637    index = (uint32_t)(in >>  8);
    627638    index = (index & INDEX_MASK);
    628639
     
    632643    /* calculation of reciprocal value */
    633644    /* running approximation for two iterations */
    634     for (i = 0; i < 2; i++)
     645    for (i = 0u; i < 2u; i++)
    635646    {
    636       tempVal = (q15_t) (((q31_t) in * out) >> 15);
    637       tempVal = 0x7FFF - tempVal;
     647      tempVal = (uint32_t) (((q31_t) in * out) >> 15);
     648      tempVal = 0x7FFFu - tempVal;
    638649      /*      1.15 with exp 1 */
    639650      out = (q15_t) (((q31_t) out * tempVal) >> 14);
     651      /* out = clip_q31_to_q15(((q31_t) out * tempVal) >> 14); */
    640652    }
    641653
     
    645657    /* return num of signbits of out = 1/in value */
    646658    return (signBits + 1);
    647 
    648659  }
    649660
     
    653664   */
    654665#if defined(ARM_MATH_CM0_FAMILY)
    655 
    656666  static __INLINE q31_t __SSAT(
    657667  q31_t x,
     
    686696    }
    687697    return (x);
    688 
    689 
    690698  }
    691 
    692699#endif /* end of ARM_MATH_CM0_FAMILY */
    693 
    694700
    695701
     
    702708   * @brief C custom defined QADD8 for M3 and M0 processors
    703709   */
    704   static __INLINE q31_t __QADD8(
    705   q31_t x,
    706   q31_t y)
    707   {
    708 
    709     q31_t sum;
    710     q7_t r, s, t, u;
    711 
    712     r = (q7_t) x;
    713     s = (q7_t) y;
    714 
    715     r = __SSAT((q31_t) (r + s), 8);
    716     s = __SSAT(((q31_t) (((x << 16) >> 24) + ((y << 16) >> 24))), 8);
    717     t = __SSAT(((q31_t) (((x << 8) >> 24) + ((y << 8) >> 24))), 8);
    718     u = __SSAT(((q31_t) ((x >> 24) + (y >> 24))), 8);
    719 
    720     sum =
    721       (((q31_t) u << 24) & 0xFF000000) | (((q31_t) t << 16) & 0x00FF0000) |
    722       (((q31_t) s << 8) & 0x0000FF00) | (r & 0x000000FF);
    723 
    724     return sum;
    725 
     710  static __INLINE uint32_t __QADD8(
     711  uint32_t x,
     712  uint32_t y)
     713  {
     714    q31_t r, s, t, u;
     715
     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;
     720
     721    return ((uint32_t)((u << 24) | (t << 16) | (s <<  8) | (r      )));
    726722  }
     723
    727724
    728725  /*
    729726   * @brief C custom defined QSUB8 for M3 and M0 processors
    730727   */
    731   static __INLINE q31_t __QSUB8(
    732   q31_t x,
    733   q31_t y)
    734   {
    735 
    736     q31_t sum;
     728  static __INLINE uint32_t __QSUB8(
     729  uint32_t x,
     730  uint32_t y)
     731  {
    737732    q31_t r, s, t, u;
    738733
    739     r = (q7_t) x;
    740     s = (q7_t) y;
    741 
    742     r = __SSAT((r - s), 8);
    743     s = __SSAT(((q31_t) (((x << 16) >> 24) - ((y << 16) >> 24))), 8) << 8;
    744     t = __SSAT(((q31_t) (((x << 8) >> 24) - ((y << 8) >> 24))), 8) << 16;
    745     u = __SSAT(((q31_t) ((x >> 24) - (y >> 24))), 8) << 24;
    746 
    747     sum =
    748       (u & 0xFF000000) | (t & 0x00FF0000) | (s & 0x0000FF00) | (r &
    749                                                                 0x000000FF);
    750 
    751     return sum;
     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;
     738
     739    return ((uint32_t)((u << 24) | (t << 16) | (s <<  8) | (r      )));
    752740  }
     741
    753742
    754743  /*
    755744   * @brief C custom defined QADD16 for M3 and M0 processors
    756745   */
    757 
    758   /*
    759    * @brief C custom defined QADD16 for M3 and M0 processors
    760    */
    761   static __INLINE q31_t __QADD16(
    762   q31_t x,
    763   q31_t y)
    764   {
    765 
    766     q31_t sum;
    767     q31_t r, s;
    768 
    769     r = (q15_t) x;
    770     s = (q15_t) y;
    771 
    772     r = __SSAT(r + s, 16);
    773     s = __SSAT(((q31_t) ((x >> 16) + (y >> 16))), 16) << 16;
    774 
    775     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
    776 
    777     return sum;
    778 
     746  static __INLINE uint32_t __QADD16(
     747  uint32_t x,
     748  uint32_t y)
     749  {
     750/*  q31_t r,     s;  without initialisation 'arm_offset_q15 test' fails  but 'intrinsic' tests pass! for armCC */
     751    q31_t r = 0, s = 0;
     752
     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;
     755
     756    return ((uint32_t)((s << 16) | (r      )));
    779757  }
     758
    780759
    781760  /*
    782761   * @brief C custom defined SHADD16 for M3 and M0 processors
    783762   */
    784   static __INLINE q31_t __SHADD16(
    785   q31_t x,
    786   q31_t y)
    787   {
    788 
    789     q31_t sum;
     763  static __INLINE uint32_t __SHADD16(
     764  uint32_t x,
     765  uint32_t y)
     766  {
    790767    q31_t r, s;
    791768
    792     r = (q15_t) x;
    793     s = (q15_t) y;
    794 
    795     r = ((r >> 1) + (s >> 1));
    796     s = ((q31_t) ((x >> 17) + (y >> 17))) << 16;
    797 
    798     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
    799 
    800     return sum;
    801 
     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;
     771
     772    return ((uint32_t)((s << 16) | (r      )));
    802773  }
     774
    803775
    804776  /*
    805777   * @brief C custom defined QSUB16 for M3 and M0 processors
    806778   */
    807   static __INLINE q31_t __QSUB16(
    808   q31_t x,
    809   q31_t y)
    810   {
    811 
    812     q31_t sum;
     779  static __INLINE uint32_t __QSUB16(
     780  uint32_t x,
     781  uint32_t y)
     782  {
    813783    q31_t r, s;
    814784
    815     r = (q15_t) x;
    816     s = (q15_t) y;
    817 
    818     r = __SSAT(r - s, 16);
    819     s = __SSAT(((q31_t) ((x >> 16) - (y >> 16))), 16) << 16;
    820 
    821     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
    822 
    823     return sum;
     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;
     787
     788    return ((uint32_t)((s << 16) | (r      )));
    824789  }
     790
    825791
    826792  /*
    827793   * @brief C custom defined SHSUB16 for M3 and M0 processors
    828794   */
    829   static __INLINE q31_t __SHSUB16(
    830   q31_t x,
    831   q31_t y)
    832   {
    833 
    834     q31_t diff;
     795  static __INLINE uint32_t __SHSUB16(
     796  uint32_t x,
     797  uint32_t y)
     798  {
    835799    q31_t r, s;
    836800
    837     r = (q15_t) x;
    838     s = (q15_t) y;
    839 
    840     r = ((r >> 1) - (s >> 1));
    841     s = (((x >> 17) - (y >> 17)) << 16);
    842 
    843     diff = (s & 0xFFFF0000) | (r & 0x0000FFFF);
    844 
    845     return diff;
     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;
     803
     804    return ((uint32_t)((s << 16) | (r      )));
    846805  }
     806
    847807
    848808  /*
    849809   * @brief C custom defined QASX for M3 and M0 processors
    850810   */
    851   static __INLINE q31_t __QASX(
    852   q31_t x,
    853   q31_t y)
    854   {
    855 
    856     q31_t sum = 0;
    857 
    858     sum =
    859       ((sum +
    860         clip_q31_to_q15((q31_t) ((q15_t) (x >> 16) + (q15_t) y))) << 16) +
    861       clip_q31_to_q15((q31_t) ((q15_t) x - (q15_t) (y >> 16)));
    862 
    863     return sum;
     811  static __INLINE uint32_t __QASX(
     812  uint32_t x,
     813  uint32_t y)
     814  {
     815    q31_t r, s;
     816
     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;
     819
     820    return ((uint32_t)((s << 16) | (r      )));
    864821  }
     822
    865823
    866824  /*
    867825   * @brief C custom defined SHASX for M3 and M0 processors
    868826   */
    869   static __INLINE q31_t __SHASX(
    870   q31_t x,
    871   q31_t y)
    872   {
    873 
    874     q31_t sum;
     827  static __INLINE uint32_t __SHASX(
     828  uint32_t x,
     829  uint32_t y)
     830  {
    875831    q31_t r, s;
    876832
    877     r = (q15_t) x;
    878     s = (q15_t) y;
    879 
    880     r = ((r >> 1) - (y >> 17));
    881     s = (((x >> 17) + (s >> 1)) << 16);
    882 
    883     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
    884 
    885     return sum;
     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;
     835
     836    return ((uint32_t)((s << 16) | (r      )));
    886837  }
    887838
     
    890841   * @brief C custom defined QSAX for M3 and M0 processors
    891842   */
    892   static __INLINE q31_t __QSAX(
    893   q31_t x,
    894   q31_t y)
    895   {
    896 
    897     q31_t sum = 0;
    898 
    899     sum =
    900       ((sum +
    901         clip_q31_to_q15((q31_t) ((q15_t) (x >> 16) - (q15_t) y))) << 16) +
    902       clip_q31_to_q15((q31_t) ((q15_t) x + (q15_t) (y >> 16)));
    903 
    904     return sum;
     843  static __INLINE uint32_t __QSAX(
     844  uint32_t x,
     845  uint32_t y)
     846  {
     847    q31_t r, s;
     848
     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;
     851
     852    return ((uint32_t)((s << 16) | (r      )));
    905853  }
     854
    906855
    907856  /*
    908857   * @brief C custom defined SHSAX for M3 and M0 processors
    909858   */
    910   static __INLINE q31_t __SHSAX(
    911   q31_t x,
    912   q31_t y)
    913   {
    914 
    915     q31_t sum;
     859  static __INLINE uint32_t __SHSAX(
     860  uint32_t x,
     861  uint32_t y)
     862  {
    916863    q31_t r, s;
    917864
    918     r = (q15_t) x;
    919     s = (q15_t) y;
    920 
    921     r = ((r >> 1) + (y >> 17));
    922     s = (((x >> 17) - (s >> 1)) << 16);
    923 
    924     sum = (s & 0xFFFF0000) | (r & 0x0000FFFF);
    925 
    926     return sum;
     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;
     867
     868    return ((uint32_t)((s << 16) | (r      )));
    927869  }
     870
    928871
    929872  /*
    930873   * @brief C custom defined SMUSDX for M3 and M0 processors
    931874   */
    932   static __INLINE q31_t __SMUSDX(
    933   q31_t x,
    934   q31_t y)
    935   {
    936 
    937     return ((q31_t) (((q15_t) x * (q15_t) (y >> 16)) -
    938                      ((q15_t) (x >> 16) * (q15_t) y)));
     875  static __INLINE uint32_t __SMUSDX(
     876  uint32_t x,
     877  uint32_t y)
     878  {
     879    return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y      ) >> 16)) -
     880                       ((((q31_t)x      ) >> 16) * (((q31_t)y << 16) >> 16))   ));
    939881  }
    940882
     
    942884   * @brief C custom defined SMUADX for M3 and M0 processors
    943885   */
    944   static __INLINE q31_t __SMUADX(
    945   q31_t x,
    946   q31_t y)
    947   {
    948 
    949     return ((q31_t) (((q15_t) x * (q15_t) (y >> 16)) +
    950                      ((q15_t) (x >> 16) * (q15_t) y)));
     886  static __INLINE uint32_t __SMUADX(
     887  uint32_t x,
     888  uint32_t y)
     889  {
     890    return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y      ) >> 16)) +
     891                       ((((q31_t)x      ) >> 16) * (((q31_t)y << 16) >> 16))   ));
    951892  }
     893
    952894
    953895  /*
    954896   * @brief C custom defined QADD for M3 and M0 processors
    955897   */
    956   static __INLINE q31_t __QADD(
    957   q31_t x,
    958   q31_t y)
    959   {
    960     return clip_q63_to_q31((q63_t) x + y);
     898  static __INLINE int32_t __QADD(
     899  int32_t x,
     900  int32_t y)
     901  {
     902    return ((int32_t)(clip_q63_to_q31((q63_t)x + (q31_t)y)));
    961903  }
     904
    962905
    963906  /*
    964907   * @brief C custom defined QSUB for M3 and M0 processors
    965908   */
    966   static __INLINE q31_t __QSUB(
    967   q31_t x,
    968   q31_t y)
    969   {
    970     return clip_q63_to_q31((q63_t) x - y);
     909  static __INLINE int32_t __QSUB(
     910  int32_t x,
     911  int32_t y)
     912  {
     913    return ((int32_t)(clip_q63_to_q31((q63_t)x - (q31_t)y)));
    971914  }
     915
    972916
    973917  /*
    974918   * @brief C custom defined SMLAD for M3 and M0 processors
    975919   */
    976   static __INLINE q31_t __SMLAD(
    977   q31_t x,
    978   q31_t y,
    979   q31_t sum)
    980   {
    981 
    982     return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) +
    983             ((q15_t) x * (q15_t) y));
     920  static __INLINE uint32_t __SMLAD(
     921  uint32_t x,
     922  uint32_t y,
     923  uint32_t sum)
     924  {
     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    )                                  )   ));
    984928  }
     929
    985930
    986931  /*
    987932   * @brief C custom defined SMLADX for M3 and M0 processors
    988933   */
    989   static __INLINE q31_t __SMLADX(
    990   q31_t x,
    991   q31_t y,
    992   q31_t sum)
    993   {
    994 
    995     return (sum + ((q15_t) (x >> 16) * (q15_t) (y)) +
    996             ((q15_t) x * (q15_t) (y >> 16)));
     934  static __INLINE uint32_t __SMLADX(
     935  uint32_t x,
     936  uint32_t y,
     937  uint32_t sum)
     938  {
     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    )                                  )   ));
    997942  }
     943
    998944
    999945  /*
    1000946   * @brief C custom defined SMLSDX for M3 and M0 processors
    1001947   */
    1002   static __INLINE q31_t __SMLSDX(
    1003   q31_t x,
    1004   q31_t y,
    1005   q31_t sum)
    1006   {
    1007 
    1008     return (sum - ((q15_t) (x >> 16) * (q15_t) (y)) +
    1009             ((q15_t) x * (q15_t) (y >> 16)));
     948  static __INLINE uint32_t __SMLSDX(
     949  uint32_t x,
     950  uint32_t y,
     951  uint32_t sum)
     952  {
     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    )                                  )   ));
    1010956  }
     957
    1011958
    1012959  /*
    1013960   * @brief C custom defined SMLALD for M3 and M0 processors
    1014961   */
    1015   static __INLINE q63_t __SMLALD(
    1016   q31_t x,
    1017   q31_t y,
    1018   q63_t sum)
    1019   {
    1020 
    1021     return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) +
    1022             ((q15_t) x * (q15_t) y));
     962  static __INLINE uint64_t __SMLALD(
     963  uint32_t x,
     964  uint32_t y,
     965  uint64_t sum)
     966  {
     967/*  return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + ((q15_t) x * (q15_t) y)); */
     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    )                                  )   ));
    1023971  }
     972
    1024973
    1025974  /*
    1026975   * @brief C custom defined SMLALDX for M3 and M0 processors
    1027976   */
    1028   static __INLINE q63_t __SMLALDX(
    1029   q31_t x,
    1030   q31_t y,
    1031   q63_t sum)
    1032   {
    1033 
    1034     return (sum + ((q15_t) (x >> 16) * (q15_t) y)) +
    1035       ((q15_t) x * (q15_t) (y >> 16));
     977  static __INLINE uint64_t __SMLALDX(
     978  uint32_t x,
     979  uint32_t y,
     980  uint64_t sum)
     981  {
     982/*  return (sum + ((q15_t) (x >> 16) * (q15_t) y)) + ((q15_t) x * (q15_t) (y >> 16)); */
     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    )                                  )   ));
    1036986  }
     987
    1037988
    1038989  /*
    1039990   * @brief C custom defined SMUAD for M3 and M0 processors
    1040991   */
    1041   static __INLINE q31_t __SMUAD(
    1042   q31_t x,
    1043   q31_t y)
    1044   {
    1045 
    1046     return (((x >> 16) * (y >> 16)) +
    1047             (((x << 16) >> 16) * ((y << 16) >> 16)));
     992  static __INLINE uint32_t __SMUAD(
     993  uint32_t x,
     994  uint32_t y)
     995  {
     996    return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
     997                       ((((q31_t)x      ) >> 16) * (((q31_t)y      ) >> 16))   ));
    1048998  }
     999
    10491000
    10501001  /*
    10511002   * @brief C custom defined SMUSD for M3 and M0 processors
    10521003   */
    1053   static __INLINE q31_t __SMUSD(
    1054   q31_t x,
    1055   q31_t y)
    1056   {
    1057 
    1058     return (-((x >> 16) * (y >> 16)) +
    1059             (((x << 16) >> 16) * ((y << 16) >> 16)));
     1004  static __INLINE uint32_t __SMUSD(
     1005  uint32_t x,
     1006  uint32_t y)
     1007  {
     1008    return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) -
     1009                       ((((q31_t)x      ) >> 16) * (((q31_t)y      ) >> 16))   ));
    10601010  }
    10611011
     
    10641014   * @brief C custom defined SXTB16 for M3 and M0 processors
    10651015   */
    1066   static __INLINE q31_t __SXTB16(
    1067   q31_t x)
    1068   {
    1069 
    1070     return ((((x << 24) >> 24) & 0x0000FFFF) |
    1071             (((x << 8) >> 8) & 0xFFFF0000));
     1016  static __INLINE uint32_t __SXTB16(
     1017  uint32_t x)
     1018  {
     1019    return ((uint32_t)(((((q31_t)x << 24) >> 24) & (q31_t)0x0000FFFF) |
     1020                       ((((q31_t)x <<  8) >>  8) & (q31_t)0xFFFF0000)  ));
    10721021  }
    1073 
    10741022
    10751023#endif /* defined (ARM_MATH_CM3) || defined (ARM_MATH_CM0_FAMILY) */
     
    11191067  /**
    11201068   * @brief Processing function for the Q7 FIR filter.
    1121    * @param[in] *S points to an instance of the Q7 FIR filter structure.
    1122    * @param[in] *pSrc points to the block of input data.
    1123    * @param[out] *pDst points to the block of output data.
    1124    * @param[in] blockSize number of samples to process.
    1125    * @return none.
     1069   * @param[in]  S          points to an instance of the Q7 FIR filter structure.
     1070   * @param[in]  pSrc       points to the block of input data.
     1071   * @param[out] pDst       points to the block of output data.
     1072   * @param[in]  blockSize  number of samples to process.
    11261073   */
    11271074  void arm_fir_q7(
     
    11341081  /**
    11351082   * @brief  Initialization function for the Q7 FIR filter.
    1136    * @param[in,out] *S points to an instance of the Q7 FIR structure.
    1137    * @param[in] numTaps  Number of filter coefficients in the filter.
    1138    * @param[in] *pCoeffs points to the filter coefficients.
    1139    * @param[in] *pState points to the state buffer.
    1140    * @param[in] blockSize number of samples that are processed.
    1141    * @return none
     1083   * @param[in,out] S          points to an instance of the Q7 FIR structure.
     1084   * @param[in]     numTaps    Number of filter coefficients in the filter.
     1085   * @param[in]     pCoeffs    points to the filter coefficients.
     1086   * @param[in]     pState     points to the state buffer.
     1087   * @param[in]     blockSize  number of samples that are processed.
    11421088   */
    11431089  void arm_fir_init_q7(
     
    11511097  /**
    11521098   * @brief Processing function for the Q15 FIR filter.
    1153    * @param[in] *S points to an instance of the Q15 FIR structure.
    1154    * @param[in] *pSrc points to the block of input data.
    1155    * @param[out] *pDst points to the block of output data.
    1156    * @param[in] blockSize number of samples to process.
    1157    * @return none.
     1099   * @param[in]  S          points to an instance of the Q15 FIR structure.
     1100   * @param[in]  pSrc       points to the block of input data.
     1101   * @param[out] pDst       points to the block of output data.
     1102   * @param[in]  blockSize  number of samples to process.
    11581103   */
    11591104  void arm_fir_q15(
     
    11631108  uint32_t blockSize);
    11641109
     1110
    11651111  /**
    11661112   * @brief Processing function for the fast Q15 FIR filter for Cortex-M3 and Cortex-M4.
    1167    * @param[in] *S points to an instance of the Q15 FIR filter structure.
    1168    * @param[in] *pSrc points to the block of input data.
    1169    * @param[out] *pDst points to the block of output data.
    1170    * @param[in] blockSize number of samples to process.
    1171    * @return none.
     1113   * @param[in]  S          points to an instance of the Q15 FIR filter structure.
     1114   * @param[in]  pSrc       points to the block of input data.
     1115   * @param[out] pDst       points to the block of output data.
     1116   * @param[in]  blockSize  number of samples to process.
    11721117   */
    11731118  void arm_fir_fast_q15(
     
    11771122  uint32_t blockSize);
    11781123
     1124
    11791125  /**
    11801126   * @brief  Initialization function for the Q15 FIR filter.
    1181    * @param[in,out] *S points to an instance of the Q15 FIR filter structure.
    1182    * @param[in] numTaps  Number of filter coefficients in the filter. Must be even and greater than or equal to 4.
    1183    * @param[in] *pCoeffs points to the filter coefficients.
    1184    * @param[in] *pState points to the state buffer.
    1185    * @param[in] blockSize number of samples that are processed at a time.
     1127   * @param[in,out] S          points to an instance of the Q15 FIR filter structure.
     1128   * @param[in]     numTaps    Number of filter coefficients in the filter. Must be even and greater than or equal to 4.
     1129   * @param[in]     pCoeffs    points to the filter coefficients.
     1130   * @param[in]     pState    points to the state buffer.
     1131   * @param[in]     blockSize number of samples that are processed at a time.
    11861132   * @return The function returns ARM_MATH_SUCCESS if initialization was successful or ARM_MATH_ARGUMENT_ERROR if
    11871133   * <code>numTaps</code> is not a supported value.
    11881134   */
    1189 
    11901135  arm_status arm_fir_init_q15(
    11911136  arm_fir_instance_q15 * S,
     
    11951140  uint32_t blockSize);
    11961141
     1142
    11971143  /**
    11981144   * @brief Processing function for the Q31 FIR filter.
    1199    * @param[in] *S points to an instance of the Q31 FIR filter structure.
    1200    * @param[in] *pSrc points to the block of input data.
    1201    * @param[out] *pDst points to the block of output data.
    1202    * @param[in] blockSize number of samples to process.
    1203    * @return none.
     1145   * @param[in]  S          points to an instance of the Q31 FIR filter structure.
     1146   * @param[in]  pSrc       points to the block of input data.
     1147   * @param[out] pDst       points to the block of output data.
     1148   * @param[in]  blockSize  number of samples to process.
    12041149   */
    12051150  void arm_fir_q31(
     
    12091154  uint32_t blockSize);
    12101155
     1156
    12111157  /**
    12121158   * @brief Processing function for the fast Q31 FIR filter for Cortex-M3 and Cortex-M4.
    1213    * @param[in] *S points to an instance of the Q31 FIR structure.
    1214    * @param[in] *pSrc points to the block of input data.
    1215    * @param[out] *pDst points to the block of output data.
    1216    * @param[in] blockSize number of samples to process.
    1217    * @return none.
     1159   * @param[in]  S          points to an instance of the Q31 FIR structure.
     1160   * @param[in]  pSrc       points to the block of input data.
     1161   * @param[out] pDst       points to the block of output data.
     1162   * @param[in]  blockSize  number of samples to process.
    12181163   */
    12191164  void arm_fir_fast_q31(
     
    12231168  uint32_t blockSize);
    12241169
     1170
    12251171  /**
    12261172   * @brief  Initialization function for the Q31 FIR filter.
    1227    * @param[in,out] *S points to an instance of the Q31 FIR structure.
    1228    * @param[in]         numTaps  Number of filter coefficients in the filter.
    1229    * @param[in]         *pCoeffs points to the filter coefficients.
    1230    * @param[in]         *pState points to the state buffer.
    1231    * @param[in]         blockSize number of samples that are processed at a time.
    1232    * @return            none.
     1173   * @param[in,out] S          points to an instance of the Q31 FIR structure.
     1174   * @param[in]     numTaps    Number of filter coefficients in the filter.
     1175   * @param[in]     pCoeffs    points to the filter coefficients.
     1176   * @param[in]     pState     points to the state buffer.
     1177   * @param[in]     blockSize  number of samples that are processed at a time.
    12331178   */
    12341179  void arm_fir_init_q31(
     
    12391184  uint32_t blockSize);
    12401185
     1186
    12411187  /**
    12421188   * @brief Processing function for the floating-point FIR filter.
    1243    * @param[in] *S points to an instance of the floating-point FIR structure.
    1244    * @param[in] *pSrc points to the block of input data.
    1245    * @param[out] *pDst points to the block of output data.
    1246    * @param[in] blockSize number of samples to process.
    1247    * @return none.
     1189   * @param[in]  S          points to an instance of the floating-point FIR structure.
     1190   * @param[in]  pSrc       points to the block of input data.
     1191   * @param[out] pDst       points to the block of output data.
     1192   * @param[in]  blockSize  number of samples to process.
    12481193   */
    12491194  void arm_fir_f32(
     
    12531198  uint32_t blockSize);
    12541199
     1200
    12551201  /**
    12561202   * @brief  Initialization function for the floating-point FIR filter.
    1257    * @param[in,out] *S points to an instance of the floating-point FIR filter structure.
    1258    * @param[in]         numTaps  Number of filter coefficients in the filter.
    1259    * @param[in]         *pCoeffs points to the filter coefficients.
    1260    * @param[in]         *pState points to the state buffer.
    1261    * @param[in]         blockSize number of samples that are processed at a time.
    1262    * @return            none.
     1203   * @param[in,out] S          points to an instance of the floating-point FIR filter structure.
     1204   * @param[in]     numTaps    Number of filter coefficients in the filter.
     1205   * @param[in]     pCoeffs    points to the filter coefficients.
     1206   * @param[in]     pState     points to the state buffer.
     1207   * @param[in]     blockSize  number of samples that are processed at a time.
    12631208   */
    12641209  void arm_fir_init_f32(
     
    12751220  typedef struct
    12761221  {
    1277     int8_t numStages;         /**< number of 2nd order stages in the filter.  Overall order is 2*numStages. */
    1278     q15_t *pState;            /**< Points to the array of state coefficients.  The array is of length 4*numStages. */
    1279     q15_t *pCoeffs;           /**< Points to the array of coefficients.  The array is of length 5*numStages. */
    1280     int8_t postShift;         /**< Additional shift, in bits, applied to each output sample. */
    1281 
     1222    int8_t numStages;        /**< number of 2nd order stages in the filter.  Overall order is 2*numStages. */
     1223    q15_t *pState;           /**< Points to the array of state coefficients.  The array is of length 4*numStages. */
     1224    q15_t *pCoeffs;          /**< Points to the array of coefficients.  The array is of length 5*numStages. */
     1225    int8_t postShift;        /**< Additional shift, in bits, applied to each output sample. */
    12821226  } arm_biquad_casd_df1_inst_q15;
    1283 
    12841227
    12851228  /**
     
    12921235    q31_t *pCoeffs;          /**< Points to the array of coefficients.  The array is of length 5*numStages. */
    12931236    uint8_t postShift;       /**< Additional shift, in bits, applied to each output sample. */
    1294 
    12951237  } arm_biquad_casd_df1_inst_q31;
    12961238
     
    13001242  typedef struct
    13011243  {
    1302     uint32_t numStages;         /**< number of 2nd order stages in the filter.  Overall order is 2*numStages. */
    1303     float32_t *pState;          /**< Points to the array of state coefficients.  The array is of length 4*numStages. */
    1304     float32_t *pCoeffs;         /**< Points to the array of coefficients.  The array is of length 5*numStages. */
    1305 
    1306 
     1244    uint32_t numStages;      /**< number of 2nd order stages in the filter.  Overall order is 2*numStages. */
     1245    float32_t *pState;       /**< Points to the array of state coefficients.  The array is of length 4*numStages. */
     1246    float32_t *pCoeffs;      /**< Points to the array of coefficients.  The array is of length 5*numStages. */
    13071247  } arm_biquad_casd_df1_inst_f32;
    13081248
    13091249
    1310 
    13111250  /**
    13121251   * @brief Processing function for the Q15 Biquad cascade filter.
    1313    * @param[in]  *S points to an instance of the Q15 Biquad cascade structure.
    1314    * @param[in]  *pSrc points to the block of input data.
    1315    * @param[out] *pDst points to the block of output data.
    1316    * @param[in]  blockSize number of samples to process.
    1317    * @return     none.
    1318    */
    1319 
     1252   * @param[in]  S          points to an instance of the Q15 Biquad cascade structure.
     1253   * @param[in]  pSrc       points to the block of input data.
     1254   * @param[out] pDst       points to the block of output data.
     1255   * @param[in]  blockSize  number of samples to process.
     1256   */
    13201257  void arm_biquad_cascade_df1_q15(
    13211258  const arm_biquad_casd_df1_inst_q15 * S,
     
    13241261  uint32_t blockSize);
    13251262
     1263
    13261264  /**
    13271265   * @brief  Initialization function for the Q15 Biquad cascade filter.
    1328    * @param[in,out] *S           points to an instance of the Q15 Biquad cascade structure.
    1329    * @param[in]     numStages    number of 2nd order stages in the filter.
    1330    * @param[in]     *pCoeffs     points to the filter coefficients.
    1331    * @param[in]     *pState      points to the state buffer.
    1332    * @param[in]     postShift    Shift to be applied to the output. Varies according to the coefficients format
    1333    * @return        none
    1334    */
    1335 
     1266   * @param[in,out] S          points to an instance of the Q15 Biquad cascade structure.
     1267   * @param[in]     numStages  number of 2nd order stages in the filter.
     1268   * @param[in]     pCoeffs    points to the filter coefficients.
     1269   * @param[in]     pState     points to the state buffer.
     1270   * @param[in]     postShift  Shift to be applied to the output. Varies according to the coefficients format
     1271   */
    13361272  void arm_biquad_cascade_df1_init_q15(
    13371273  arm_biquad_casd_df1_inst_q15 * S,
     
    13441280  /**
    13451281   * @brief Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-M4.
    1346    * @param[in]  *S points to an instance of the Q15 Biquad cascade structure.
    1347    * @param[in]  *pSrc points to the block of input data.
    1348    * @param[out] *pDst points to the block of output data.
    1349    * @param[in]  blockSize number of samples to process.
    1350    * @return     none.
    1351    */
    1352 
     1282   * @param[in]  S          points to an instance of the Q15 Biquad cascade structure.
     1283   * @param[in]  pSrc       points to the block of input data.
     1284   * @param[out] pDst       points to the block of output data.
     1285   * @param[in]  blockSize  number of samples to process.
     1286   */
    13531287  void arm_biquad_cascade_df1_fast_q15(
    13541288  const arm_biquad_casd_df1_inst_q15 * S,
     
    13601294  /**
    13611295   * @brief Processing function for the Q31 Biquad cascade filter
    1362    * @param[in]  *S         points to an instance of the Q31 Biquad cascade structure.
    1363    * @param[in]  *pSrc      points to the block of input data.
    1364    * @param[out] *pDst      points to the block of output data.
     1296   * @param[in]  S          points to an instance of the Q31 Biquad cascade structure.
     1297   * @param[in]  pSrc       points to the block of input data.
     1298   * @param[out] pDst       points to the block of output data.
    13651299   * @param[in]  blockSize  number of samples to process.
    1366    * @return     none.
    1367    */
    1368 
     1300   */
    13691301  void arm_biquad_cascade_df1_q31(
    13701302  const arm_biquad_casd_df1_inst_q31 * S,
     
    13731305  uint32_t blockSize);
    13741306
     1307
    13751308  /**
    13761309   * @brief Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-M4.
    1377    * @param[in]  *S         points to an instance of the Q31 Biquad cascade structure.
    1378    * @param[in]  *pSrc      points to the block of input data.
    1379    * @param[out] *pDst      points to the block of output data.
     1310   * @param[in]  S          points to an instance of the Q31 Biquad cascade structure.
     1311   * @param[in]  pSrc       points to the block of input data.
     1312   * @param[out] pDst       points to the block of output data.
    13801313   * @param[in]  blockSize  number of samples to process.
    1381    * @return     none.
    1382    */
    1383 
     1314   */
    13841315  void arm_biquad_cascade_df1_fast_q31(
    13851316  const arm_biquad_casd_df1_inst_q31 * S,
     
    13881319  uint32_t blockSize);
    13891320
     1321
    13901322  /**
    13911323   * @brief  Initialization function for the Q31 Biquad cascade filter.
    1392    * @param[in,out] *S           points to an instance of the Q31 Biquad cascade structure.
    1393    * @param[in]     numStages      number of 2nd order stages in the filter.
    1394    * @param[in]     *pCoeffs     points to the filter coefficients.
    1395    * @param[in]     *pState      points to the state buffer.
    1396    * @param[in]     postShift    Shift to be applied to the output. Varies according to the coefficients format
    1397    * @return        none
    1398    */
    1399 
     1324   * @param[in,out] S          points to an instance of the Q31 Biquad cascade structure.
     1325   * @param[in]     numStages  number of 2nd order stages in the filter.
     1326   * @param[in]     pCoeffs    points to the filter coefficients.
     1327   * @param[in]     pState     points to the state buffer.
     1328   * @param[in]     postShift  Shift to be applied to the output. Varies according to the coefficients format
     1329   */
    14001330  void arm_biquad_cascade_df1_init_q31(
    14011331  arm_biquad_casd_df1_inst_q31 * S,
     
    14051335  int8_t postShift);
    14061336
     1337
    14071338  /**
    14081339   * @brief Processing function for the floating-point Biquad cascade filter.
    1409    * @param[in]  *S         points to an instance of the floating-point Biquad cascade structure.
    1410    * @param[in]  *pSrc      points to the block of input data.
    1411    * @param[out] *pDst      points to the block of output data.
     1340   * @param[in]  S          points to an instance of the floating-point Biquad cascade structure.
     1341   * @param[in]  pSrc       points to the block of input data.
     1342   * @param[out] pDst       points to the block of output data.
    14121343   * @param[in]  blockSize  number of samples to process.
    1413    * @return     none.
    1414    */
    1415 
     1344   */
    14161345  void arm_biquad_cascade_df1_f32(
    14171346  const arm_biquad_casd_df1_inst_f32 * S,
     
    14201349  uint32_t blockSize);
    14211350
     1351
    14221352  /**
    14231353   * @brief  Initialization function for the floating-point Biquad cascade filter.
    1424    * @param[in,out] *S           points to an instance of the floating-point Biquad cascade structure.
    1425    * @param[in]     numStages    number of 2nd order stages in the filter.
    1426    * @param[in]     *pCoeffs     points to the filter coefficients.
    1427    * @param[in]     *pState      points to the state buffer.
    1428    * @return        none
    1429    */
    1430 
     1354   * @param[in,out] S          points to an instance of the floating-point Biquad cascade structure.
     1355   * @param[in]     numStages  number of 2nd order stages in the filter.
     1356   * @param[in]     pCoeffs    points to the filter coefficients.
     1357   * @param[in]     pState     points to the state buffer.
     1358   */
    14311359  void arm_biquad_cascade_df1_init_f32(
    14321360  arm_biquad_casd_df1_inst_f32 * S,
     
    14391367   * @brief Instance structure for the floating-point matrix structure.
    14401368   */
    1441 
    14421369  typedef struct
    14431370  {
     
    14511378   * @brief Instance structure for the floating-point matrix structure.
    14521379   */
    1453 
    14541380  typedef struct
    14551381  {
     
    14621388   * @brief Instance structure for the Q15 matrix structure.
    14631389   */
    1464 
    14651390  typedef struct
    14661391  {
     
    14681393    uint16_t numCols;     /**< number of columns of the matrix.  */
    14691394    q15_t *pData;         /**< points to the data of the matrix. */
    1470 
    14711395  } arm_matrix_instance_q15;
    14721396
     
    14741398   * @brief Instance structure for the Q31 matrix structure.
    14751399   */
    1476 
    14771400  typedef struct
    14781401  {
     
    14801403    uint16_t numCols;     /**< number of columns of the matrix.  */
    14811404    q31_t *pData;         /**< points to the data of the matrix. */
    1482 
    14831405  } arm_matrix_instance_q31;
    14841406
    14851407
    1486 
    14871408  /**
    14881409   * @brief Floating-point matrix addition.
    1489    * @param[in]       *pSrcA points to the first input matrix structure
    1490    * @param[in]       *pSrcB points to the second input matrix structure
    1491    * @param[out]      *pDst points to output matrix structure
     1410   * @param[in]  pSrcA points to the first input matrix structure
     1411   * @param[in]  pSrcB points to the second input matrix structure
     1412   * @param[out] pDst  points to output matrix structure
    14921413   * @return     The function returns either
    14931414   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    14941415   */
    1495 
    14961416  arm_status arm_mat_add_f32(
    14971417  const arm_matrix_instance_f32 * pSrcA,
     
    14991419  arm_matrix_instance_f32 * pDst);
    15001420
     1421
    15011422  /**
    15021423   * @brief Q15 matrix addition.
    1503    * @param[in]       *pSrcA points to the first input matrix structure
    1504    * @param[in]       *pSrcB points to the second input matrix structure
    1505    * @param[out]      *pDst points to output matrix structure
     1424   * @param[in]   pSrcA points to the first input matrix structure
     1425   * @param[in]   pSrcB points to the second input matrix structure
     1426   * @param[out]  pDst  points to output matrix structure
    15061427   * @return     The function returns either
    15071428   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15081429   */
    1509 
    15101430  arm_status arm_mat_add_q15(
    15111431  const arm_matrix_instance_q15 * pSrcA,
     
    15131433  arm_matrix_instance_q15 * pDst);
    15141434
     1435
    15151436  /**
    15161437   * @brief Q31 matrix addition.
    1517    * @param[in]       *pSrcA points to the first input matrix structure
    1518    * @param[in]       *pSrcB points to the second input matrix structure
    1519    * @param[out]      *pDst points to output matrix structure
     1438   * @param[in]  pSrcA points to the first input matrix structure
     1439   * @param[in]  pSrcB points to the second input matrix structure
     1440   * @param[out] pDst  points to output matrix structure
    15201441   * @return     The function returns either
    15211442   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15221443   */
    1523 
    15241444  arm_status arm_mat_add_q31(
    15251445  const arm_matrix_instance_q31 * pSrcA,
     
    15271447  arm_matrix_instance_q31 * pDst);
    15281448
     1449
    15291450  /**
    15301451   * @brief Floating-point, complex, matrix multiplication.
    1531    * @param[in]       *pSrcA points to the first input matrix structure
    1532    * @param[in]       *pSrcB points to the second input matrix structure
    1533    * @param[out]      *pDst points to output matrix structure
     1452   * @param[in]  pSrcA points to the first input matrix structure
     1453   * @param[in]  pSrcB points to the second input matrix structure
     1454   * @param[out] pDst  points to output matrix structure
    15341455   * @return     The function returns either
    15351456   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15361457   */
    1537 
    15381458  arm_status arm_mat_cmplx_mult_f32(
    15391459  const arm_matrix_instance_f32 * pSrcA,
     
    15411461  arm_matrix_instance_f32 * pDst);
    15421462
     1463
    15431464  /**
    15441465   * @brief Q15, complex,  matrix multiplication.
    1545    * @param[in]       *pSrcA points to the first input matrix structure
    1546    * @param[in]       *pSrcB points to the second input matrix structure
    1547    * @param[out]      *pDst points to output matrix structure
     1466   * @param[in]  pSrcA points to the first input matrix structure
     1467   * @param[in]  pSrcB points to the second input matrix structure
     1468   * @param[out] pDst  points to output matrix structure
    15481469   * @return     The function returns either
    15491470   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15501471   */
    1551 
    15521472  arm_status arm_mat_cmplx_mult_q15(
    15531473  const arm_matrix_instance_q15 * pSrcA,
     
    15561476  q15_t * pScratch);
    15571477
     1478
    15581479  /**
    15591480   * @brief Q31, complex, matrix multiplication.
    1560    * @param[in]       *pSrcA points to the first input matrix structure
    1561    * @param[in]       *pSrcB points to the second input matrix structure
    1562    * @param[out]      *pDst points to output matrix structure
     1481   * @param[in]  pSrcA points to the first input matrix structure
     1482   * @param[in]  pSrcB points to the second input matrix structure
     1483   * @param[out] pDst  points to output matrix structure
    15631484   * @return     The function returns either
    15641485   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15651486   */
    1566 
    15671487  arm_status arm_mat_cmplx_mult_q31(
    15681488  const arm_matrix_instance_q31 * pSrcA,
     
    15731493  /**
    15741494   * @brief Floating-point matrix transpose.
    1575    * @param[in]  *pSrc points to the input matrix
    1576    * @param[out] *pDst points to the output matrix
    1577    * @return    The function returns either  <code>ARM_MATH_SIZE_MISMATCH</code>
     1495   * @param[in]  pSrc points to the input matrix
     1496   * @param[out] pDst points to the output matrix
     1497   * @return    The function returns either  <code>ARM_MATH_SIZE_MISMATCH</code>
    15781498   * or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15791499   */
    1580 
    15811500  arm_status arm_mat_trans_f32(
    15821501  const arm_matrix_instance_f32 * pSrc,
     
    15861505  /**
    15871506   * @brief Q15 matrix transpose.
    1588    * @param[in]  *pSrc points to the input matrix
    1589    * @param[out] *pDst points to the output matrix
    1590    * @return    The function returns either  <code>ARM_MATH_SIZE_MISMATCH</code>
     1507   * @param[in]  pSrc points to the input matrix
     1508   * @param[out] pDst points to the output matrix
     1509   * @return    The function returns either  <code>ARM_MATH_SIZE_MISMATCH</code>
    15911510   * or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    15921511   */
    1593 
    15941512  arm_status arm_mat_trans_q15(
    15951513  const arm_matrix_instance_q15 * pSrc,
    15961514  arm_matrix_instance_q15 * pDst);
    15971515
     1516
    15981517  /**
    15991518   * @brief Q31 matrix transpose.
    1600    * @param[in]  *pSrc points to the input matrix
    1601    * @param[out] *pDst points to the output matrix
    1602    * @return    The function returns either  <code>ARM_MATH_SIZE_MISMATCH</code>
     1519   * @param[in]  pSrc points to the input matrix
     1520   * @param[out] pDst points to the output matrix
     1521   * @return    The function returns either  <code>ARM_MATH_SIZE_MISMATCH</code>
    16031522   * or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16041523   */
    1605 
    16061524  arm_status arm_mat_trans_q31(
    16071525  const arm_matrix_instance_q31 * pSrc,
     
    16111529  /**
    16121530   * @brief Floating-point matrix multiplication
    1613    * @param[in]       *pSrcA points to the first input matrix structure
    1614    * @param[in]       *pSrcB points to the second input matrix structure
    1615    * @param[out]      *pDst points to output matrix structure
     1531   * @param[in]  pSrcA points to the first input matrix structure
     1532   * @param[in]  pSrcB points to the second input matrix structure
     1533   * @param[out] pDst  points to output matrix structure
    16161534   * @return     The function returns either
    16171535   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16181536   */
    1619 
    16201537  arm_status arm_mat_mult_f32(
    16211538  const arm_matrix_instance_f32 * pSrcA,
     
    16231540  arm_matrix_instance_f32 * pDst);
    16241541
     1542
    16251543  /**
    16261544   * @brief Q15 matrix multiplication
    1627    * @param[in]       *pSrcA points to the first input matrix structure
    1628    * @param[in]       *pSrcB points to the second input matrix structure
    1629    * @param[out]      *pDst points to output matrix structure
    1630    * @param[in]          *pState points to the array for storing intermediate results
     1545   * @param[in]  pSrcA  points to the first input matrix structure
     1546   * @param[in]  pSrcB  points to the second input matrix structure
     1547   * @param[out] pDst    points to output matrix structure
     1548   * @param[in]  pState points to the array for storing intermediate results
    16311549   * @return     The function returns either
    16321550   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16331551   */
    1634 
    16351552  arm_status arm_mat_mult_q15(
    16361553  const arm_matrix_instance_q15 * pSrcA,
     
    16391556  q15_t * pState);
    16401557
     1558
    16411559  /**
    16421560   * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
    1643    * @param[in]       *pSrcA  points to the first input matrix structure
    1644    * @param[in]       *pSrcB  points to the second input matrix structure
    1645    * @param[out]      *pDst   points to output matrix structure
    1646    * @param[in]           *pState points to the array for storing intermediate results
     1561   * @param[in]  pSrcA   points to the first input matrix structure
     1562   * @param[in]  pSrcB   points to the second input matrix structure
     1563   * @param[out] pDst    points to output matrix structure
     1564   * @param[in]  pState points to the array for storing intermediate results
    16471565   * @return     The function returns either
    16481566   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16491567   */
    1650 
    16511568  arm_status arm_mat_mult_fast_q15(
    16521569  const arm_matrix_instance_q15 * pSrcA,
     
    16551572  q15_t * pState);
    16561573
     1574
    16571575  /**
    16581576   * @brief Q31 matrix multiplication
    1659    * @param[in]       *pSrcA points to the first input matrix structure
    1660    * @param[in]       *pSrcB points to the second input matrix structure
    1661    * @param[out]      *pDst points to output matrix structure
     1577   * @param[in]  pSrcA points to the first input matrix structure
     1578   * @param[in]  pSrcB points to the second input matrix structure
     1579   * @param[out] pDst  points to output matrix structure
    16621580   * @return     The function returns either
    16631581   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16641582   */
    1665 
    16661583  arm_status arm_mat_mult_q31(
    16671584  const arm_matrix_instance_q31 * pSrcA,
     
    16691586  arm_matrix_instance_q31 * pDst);
    16701587
     1588
    16711589  /**
    16721590   * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4
    1673    * @param[in]       *pSrcA points to the first input matrix structure
    1674    * @param[in]       *pSrcB points to the second input matrix structure
    1675    * @param[out]      *pDst points to output matrix structure
     1591   * @param[in]  pSrcA points to the first input matrix structure
     1592   * @param[in]  pSrcB points to the second input matrix structure
     1593   * @param[out] pDst  points to output matrix structure
    16761594   * @return     The function returns either
    16771595   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16781596   */
    1679 
    16801597  arm_status arm_mat_mult_fast_q31(
    16811598  const arm_matrix_instance_q31 * pSrcA,
     
    16861603  /**
    16871604   * @brief Floating-point matrix subtraction
    1688    * @param[in]       *pSrcA points to the first input matrix structure
    1689    * @param[in]       *pSrcB points to the second input matrix structure
    1690    * @param[out]      *pDst points to output matrix structure
     1605   * @param[in]  pSrcA points to the first input matrix structure
     1606   * @param[in]  pSrcB points to the second input matrix structure
     1607   * @param[out] pDst  points to output matrix structure
    16911608   * @return     The function returns either
    16921609   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    16931610   */
    1694 
    16951611  arm_status arm_mat_sub_f32(
    16961612  const arm_matrix_instance_f32 * pSrcA,
     
    16981614  arm_matrix_instance_f32 * pDst);
    16991615
     1616
    17001617  /**
    17011618   * @brief Q15 matrix subtraction
    1702    * @param[in]       *pSrcA points to the first input matrix structure
    1703    * @param[in]       *pSrcB points to the second input matrix structure
    1704    * @param[out]      *pDst points to output matrix structure
     1619   * @param[in]  pSrcA points to the first input matrix structure
     1620   * @param[in]  pSrcB points to the second input matrix structure
     1621   * @param[out] pDst  points to output matrix structure
    17051622   * @return     The function returns either
    17061623   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    17071624   */
    1708 
    17091625  arm_status arm_mat_sub_q15(
    17101626  const arm_matrix_instance_q15 * pSrcA,
     
    17121628  arm_matrix_instance_q15 * pDst);
    17131629
     1630
    17141631  /**
    17151632   * @brief Q31 matrix subtraction
    1716    * @param[in]       *pSrcA points to the first input matrix structure
    1717    * @param[in]       *pSrcB points to the second input matrix structure
    1718    * @param[out]      *pDst points to output matrix structure
     1633   * @param[in]  pSrcA points to the first input matrix structure
     1634   * @param[in]  pSrcB points to the second input matrix structure
     1635   * @param[out] pDst  points to output matrix structure
    17191636   * @return     The function returns either
    17201637   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    17211638   */
    1722 
    17231639  arm_status arm_mat_sub_q31(
    17241640  const arm_matrix_instance_q31 * pSrcA,
     
    17261642  arm_matrix_instance_q31 * pDst);
    17271643
     1644
    17281645  /**
    17291646   * @brief Floating-point matrix scaling.
    1730    * @param[in]  *pSrc points to the input matrix
    1731    * @param[in]  scale scale factor
    1732    * @param[out] *pDst points to the output matrix
     1647   * @param[in]  pSrc  points to the input matrix
     1648   * @param[in]  scale  scale factor
     1649   * @param[out] pDst  points to the output matrix
    17331650   * @return     The function returns either
    17341651   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    17351652   */
    1736 
    17371653  arm_status arm_mat_scale_f32(
    17381654  const arm_matrix_instance_f32 * pSrc,
     
    17401656  arm_matrix_instance_f32 * pDst);
    17411657
     1658
    17421659  /**
    17431660   * @brief Q15 matrix scaling.
    1744    * @param[in]       *pSrc points to input matrix
    1745    * @param[in]       scaleFract fractional portion of the scale factor
    1746    * @param[in]       shift number of bits to shift the result by
    1747    * @param[out]      *pDst points to output matrix
     1661   * @param[in]  pSrc        points to input matrix
     1662   * @param[in]  scaleFract fractional portion of the scale factor
     1663   * @param[in]  shift      number of bits to shift the result by
     1664   * @param[out] pDst        points to output matrix
    17481665   * @return     The function returns either
    17491666   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    17501667   */
    1751 
    17521668  arm_status arm_mat_scale_q15(
    17531669  const arm_matrix_instance_q15 * pSrc,
     
    17561672  arm_matrix_instance_q15 * pDst);
    17571673
     1674
    17581675  /**
    17591676   * @brief Q31 matrix scaling.
    1760    * @param[in]       *pSrc points to input matrix
    1761    * @param[in]       scaleFract fractional portion of the scale factor
    1762    * @param[in]       shift number of bits to shift the result by
    1763    * @param[out]      *pDst points to output matrix structure
     1677   * @param[in]  pSrc        points to input matrix
     1678   * @param[in]  scaleFract fractional portion of the scale factor
     1679   * @param[in]  shift      number of bits to shift the result by
     1680   * @param[out] pDst        points to output matrix structure
    17641681   * @return     The function returns either
    17651682   * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
    17661683   */
    1767 
    17681684  arm_status arm_mat_scale_q31(
    17691685  const arm_matrix_instance_q31 * pSrc,
     
    17751691  /**
    17761692   * @brief  Q31 matrix initialization.
    1777    * @param[in,out] *S             points to an instance of the floating-point matrix structure.
    1778    * @param[in]     nRows          number of rows in the matrix.
    1779    * @param[in]     nColumns       number of columns in the matrix.
    1780    * @param[in]     *pData             points to the matrix data array.
    1781    * @return        none
    1782    */
    1783 
     1693   * @param[in,out] S         points to an instance of the floating-point matrix structure.
     1694   * @param[in]     nRows     number of rows in the matrix.
     1695   * @param[in]     nColumns  number of columns in the matrix.
     1696   * @param[in]     pData     points to the matrix data array.
     1697   */
    17841698  void arm_mat_init_q31(
    17851699  arm_matrix_instance_q31 * S,
     
    17881702  q31_t * pData);
    17891703
     1704
    17901705  /**
    17911706   * @brief  Q15 matrix initialization.
    1792    * @param[in,out] *S             points to an instance of the floating-point matrix structure.
    1793    * @param[in]     nRows          number of rows in the matrix.
    1794    * @param[in]     nColumns       number of columns in the matrix.
    1795    * @param[in]     *pData             points to the matrix data array.
    1796    * @return        none
    1797    */
    1798 
     1707   * @param[in,out] S         points to an instance of the floating-point matrix structure.
     1708   * @param[in]     nRows     number of rows in the matrix.
     1709   * @param[in]     nColumns  number of columns in the matrix.
     1710   * @param[in]     pData     points to the matrix data array.
     1711   */
    17991712  void arm_mat_init_q15(
    18001713  arm_matrix_instance_q15 * S,
     
    18031716  q15_t * pData);
    18041717
     1718
    18051719  /**
    18061720   * @brief  Floating-point matrix initialization.
    1807    * @param[in,out] *S             points to an instance of the floating-point matrix structure.
    1808    * @param[in]     nRows          number of rows in the matrix.
    1809    * @param[in]     nColumns       number of columns in the matrix.
    1810    * @param[in]     *pData             points to the matrix data array.
    1811    * @return        none
    1812    */
    1813 
     1721   * @param[in,out] S         points to an instance of the floating-point matrix structure.
     1722   * @param[in]     nRows     number of rows in the matrix.
     1723   * @param[in]     nColumns  number of columns in the matrix.
     1724   * @param[in]     pData     points to the matrix data array.
     1725   */
    18141726  void arm_mat_init_f32(
    18151727  arm_matrix_instance_f32 * S,
     
    18251737  typedef struct
    18261738  {
    1827     q15_t A0;    /**< The derived gain, A0 = Kp + Ki + Kd . */
     1739    q15_t A0;           /**< The derived gain, A0 = Kp + Ki + Kd . */
    18281740#ifdef ARM_MATH_CM0_FAMILY
    18291741    q15_t A1;
     
    18321744    q31_t A1;           /**< The derived gain A1 = -Kp - 2Kd | Kd.*/
    18331745#endif
    1834     q15_t state[3];       /**< The state array of length 3. */
     1746    q15_t state[3];     /**< The state array of length 3. */
    18351747    q15_t Kp;           /**< The proportional gain. */
    18361748    q15_t Ki;           /**< The integral gain. */
     
    18501762    q31_t Ki;            /**< The integral gain. */
    18511763    q31_t Kd;            /**< The derivative gain. */
    1852 
    18531764  } arm_pid_instance_q31;
    18541765
     
    18621773    float32_t A2;          /**< The derived gain, A2 = Kd . */
    18631774    float32_t state[3];    /**< The state array of length 3. */
    1864     float32_t Kp;               /**< The proportional gain. */
    1865     float32_t Ki;               /**< The integral gain. */
    1866     float32_t Kd;               /**< The derivative gain. */
     1775    float32_t Kp;          /**< The proportional gain. */
     1776    float32_t Ki;          /**< The integral gain. */
     1777    float32_t Kd;          /**< The derivative gain. */
    18671778  } arm_pid_instance_f32;
    18681779
     
    18711782  /**
    18721783   * @brief  Initialization function for the floating-point PID Control.
    1873    * @param[in,out] *S      points to an instance of the PID structure.
     1784   * @param[in,out] S               points to an instance of the PID structure.
    18741785   * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
    1875    * @return none.
    18761786   */
    18771787  void arm_pid_init_f32(
     
    18791789  int32_t resetStateFlag);
    18801790
     1791
    18811792  /**
    18821793   * @brief  Reset function for the floating-point PID Control.
    1883    * @param[in,out] *S is an instance of the floating-point PID Control structure
    1884    * @return none
     1794   * @param[in,out] S  is an instance of the floating-point PID Control structure
    18851795   */
    18861796  void arm_pid_reset_f32(
     
    18901800  /**
    18911801   * @brief  Initialization function for the Q31 PID Control.
    1892    * @param[in,out] *S points to an instance of the Q15 PID structure.
     1802   * @param[in,out] S              points to an instance of the Q15 PID structure.
    18931803   * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
    1894    * @return none.
    18951804   */
    18961805  void arm_pid_init_q31(
     
    19011810  /**
    19021811   * @brief  Reset function for the Q31 PID Control.
    1903    * @param[in,out] *S points to an instance of the Q31 PID Control structure
    1904    * @return none
     1812   * @param[in,out] S   points to an instance of the Q31 PID Control structure
    19051813   */
    19061814
     
    19081816  arm_pid_instance_q31 * S);
    19091817
     1818
    19101819  /**
    19111820   * @brief  Initialization function for the Q15 PID Control.
    1912    * @param[in,out] *S points to an instance of the Q15 PID structure.
    1913    * @param[in] resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
    1914    * @return none.
     1821   * @param[in,out] S               points to an instance of the Q15 PID structure.
     1822   * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
    19151823   */
    19161824  void arm_pid_init_q15(
     
    19181826  int32_t resetStateFlag);
    19191827
     1828
    19201829  /**
    19211830   * @brief  Reset function for the Q15 PID Control.
    1922    * @param[in,out] *S points to an instance of the q15 PID Control structure
    1923    * @return none
     1831   * @param[in,out] S  points to an instance of the q15 PID Control structure
    19241832   */
    19251833  void arm_pid_reset_q15(
     
    19411849   * @brief Instance structure for the floating-point bilinear interpolation function.
    19421850   */
    1943 
    19441851  typedef struct
    19451852  {
     
    19521859   * @brief Instance structure for the Q31 bilinear interpolation function.
    19531860   */
    1954 
    19551861  typedef struct
    19561862  {
     
    19631869   * @brief Instance structure for the Q15 bilinear interpolation function.
    19641870   */
    1965 
    19661871  typedef struct
    19671872  {
     
    19741879   * @brief Instance structure for the Q15 bilinear interpolation function.
    19751880   */
    1976 
    19771881  typedef struct
    19781882  {
    19791883    uint16_t numRows;   /**< number of rows in the data table. */
    19801884    uint16_t numCols;   /**< number of columns in the data table. */
    1981     q7_t *pData;                /**< points to the data table. */
     1885    q7_t *pData;        /**< points to the data table. */
    19821886  } arm_bilinear_interp_instance_q7;
    19831887
     
    19851889  /**
    19861890   * @brief Q7 vector multiplication.
    1987    * @param[in]       *pSrcA points to the first input vector
    1988    * @param[in]       *pSrcB points to the second input vector
    1989    * @param[out]      *pDst  points to the output vector
    1990    * @param[in]       blockSize number of samples in each vector
    1991    * @return none.
    1992    */
    1993 
     1891   * @param[in]  pSrcA      points to the first input vector
     1892   * @param[in]  pSrcB      points to the second input vector
     1893   * @param[out] pDst       points to the output vector
     1894   * @param[in]  blockSize  number of samples in each vector
     1895   */
    19941896  void arm_mult_q7(
    19951897  q7_t * pSrcA,
     
    19981900  uint32_t blockSize);
    19991901
     1902
    20001903  /**
    20011904   * @brief Q15 vector multiplication.
    2002    * @param[in]       *pSrcA points to the first input vector
    2003    * @param[in]       *pSrcB points to the second input vector
    2004    * @param[out]      *pDst  points to the output vector
    2005    * @param[in]       blockSize number of samples in each vector
    2006    * @return none.
    2007    */
    2008 
     1905   * @param[in]  pSrcA      points to the first input vector
     1906   * @param[in]  pSrcB      points to the second input vector
     1907   * @param[out] pDst       points to the output vector
     1908   * @param[in]  blockSize  number of samples in each vector
     1909   */
    20091910  void arm_mult_q15(
    20101911  q15_t * pSrcA,
     
    20131914  uint32_t blockSize);
    20141915
     1916
    20151917  /**
    20161918   * @brief Q31 vector multiplication.
    2017    * @param[in]       *pSrcA points to the first input vector
    2018    * @param[in]       *pSrcB points to the second input vector
    2019    * @param[out]      *pDst points to the output vector
    2020    * @param[in]       blockSize number of samples in each vector
    2021    * @return none.
    2022    */
    2023 
     1919   * @param[in]  pSrcA      points to the first input vector
     1920   * @param[in]  pSrcB      points to the second input vector
     1921   * @param[out] pDst       points to the output vector
     1922   * @param[in]  blockSize  number of samples in each vector
     1923   */
    20241924  void arm_mult_q31(
    20251925  q31_t * pSrcA,
     
    20281928  uint32_t blockSize);
    20291929
     1930
    20301931  /**
    20311932   * @brief Floating-point vector multiplication.
    2032    * @param[in]       *pSrcA points to the first input vector
    2033    * @param[in]       *pSrcB points to the second input vector
    2034    * @param[out]      *pDst points to the output vector
    2035    * @param[in]       blockSize number of samples in each vector
    2036    * @return none.
    2037    */
    2038 
     1933   * @param[in]  pSrcA      points to the first input vector
     1934   * @param[in]  pSrcB      points to the second input vector
     1935   * @param[out] pDst       points to the output vector
     1936   * @param[in]  blockSize  number of samples in each vector
     1937   */
    20391938  void arm_mult_f32(
    20401939  float32_t * pSrcA,
     
    20441943
    20451944
    2046 
    2047 
    2048 
    2049 
    20501945  /**
    20511946   * @brief Instance structure for the Q15 CFFT/CIFFT function.
    20521947   */
    2053 
    20541948  typedef struct
    20551949  {
     
    20571951    uint8_t ifftFlag;                /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
    20581952    uint8_t bitReverseFlag;          /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
    2059     q15_t *pTwiddle;                     /**< points to the Sin twiddle factor table. */
     1953    q15_t *pTwiddle;                 /**< points to the Sin twiddle factor table. */
    20601954    uint16_t *pBitRevTable;          /**< points to the bit reversal table. */
    20611955    uint16_t twidCoefModifier;       /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
     
    20761970
    20771971
    2078 
    20791972  /**
    20801973   * @brief Instance structure for the Q15 CFFT/CIFFT function.
    20811974   */
    2082 
    20831975  typedef struct
    20841976  {
     
    21071999   * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function.
    21082000   */
    2109 
    21102001  typedef struct
    21112002  {
     
    21132004    uint8_t ifftFlag;                /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
    21142005    uint8_t bitReverseFlag;          /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
    2115     q31_t *pTwiddle;                     /**< points to the Twiddle factor table. */
     2006    q31_t *pTwiddle;                 /**< points to the Twiddle factor table. */
    21162007    uint16_t *pBitRevTable;          /**< points to the bit reversal table. */
    21172008    uint16_t twidCoefModifier;       /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
     
    21342025   * @brief Instance structure for the Q31 CFFT/CIFFT function.
    21352026   */
    2136 
    21372027  typedef struct
    21382028  {
     
    21612051   * @brief Instance structure for the floating-point CFFT/CIFFT function.
    21622052   */
    2163 
    21642053  typedef struct
    21652054  {
     
    21712060    uint16_t twidCoefModifier;         /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
    21722061    uint16_t bitRevFactor;             /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
    2173     float32_t onebyfftLen;                 /**< value of 1/fftLen. */
     2062    float32_t onebyfftLen;             /**< value of 1/fftLen. */
    21742063  } arm_cfft_radix2_instance_f32;
    21752064
     
    21892078   * @brief Instance structure for the floating-point CFFT/CIFFT function.
    21902079   */
    2191 
    21922080  typedef struct
    21932081  {
     
    21992087    uint16_t twidCoefModifier;         /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
    22002088    uint16_t bitRevFactor;             /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
    2201     float32_t onebyfftLen;                 /**< value of 1/fftLen. */
     2089    float32_t onebyfftLen;             /**< value of 1/fftLen. */
    22022090  } arm_cfft_radix4_instance_f32;
    22032091
     
    22172105   * @brief Instance structure for the fixed-point CFFT/CIFFT function.
    22182106   */
    2219 
    22202107  typedef struct
    22212108  {
     
    22352122   * @brief Instance structure for the fixed-point CFFT/CIFFT function.
    22362123   */
    2237 
    22382124  typedef struct
    22392125  {
     
    22532139   * @brief Instance structure for the floating-point CFFT/CIFFT function.
    22542140   */
    2255 
    22562141  typedef struct
    22572142  {
     
    22712156   * @brief Instance structure for the Q15 RFFT/RIFFT function.
    22722157   */
    2273 
    22742158  typedef struct
    22752159  {
     
    22972181   * @brief Instance structure for the Q31 RFFT/RIFFT function.
    22982182   */
    2299 
    23002183  typedef struct
    23012184  {
     
    23232206   * @brief Instance structure for the floating-point RFFT/RIFFT function.
    23242207   */
    2325 
    23262208  typedef struct
    23272209  {
     
    23512233   * @brief Instance structure for the floating-point RFFT/RIFFT function.
    23522234   */
    2353 
    23542235typedef struct
    23552236  {
    23562237    arm_cfft_instance_f32 Sint;      /**< Internal CFFT structure. */
    2357     uint16_t fftLenRFFT;                        /**< length of the real sequence */
    2358         float32_t * pTwiddleRFFT;                                       /**< Twiddle factors real stage  */
     2238    uint16_t fftLenRFFT;             /**< length of the real sequence */
     2239    float32_t * pTwiddleRFFT;        /**< Twiddle factors real stage  */
    23592240  } arm_rfft_fast_instance_f32 ;
    23602241
    23612242arm_status arm_rfft_fast_init_f32 (
    2362         arm_rfft_fast_instance_f32 * S,
    2363         uint16_t fftLen);
     2243   arm_rfft_fast_instance_f32 * S,
     2244   uint16_t fftLen);
    23642245
    23652246void arm_rfft_fast_f32(
     
    23712252   * @brief Instance structure for the floating-point DCT4/IDCT4 function.
    23722253   */
    2373 
    23742254  typedef struct
    23752255  {
    2376     uint16_t N;                         /**< length of the DCT4. */
    2377     uint16_t Nby2;                      /**< half of the length of the DCT4. */
    2378     float32_t normalize;                /**< normalizing factor. */
    2379     float32_t *pTwiddle;                /**< points to the twiddle factor table. */
    2380     float32_t *pCosFactor;              /**< points to the cosFactor table. */
     2256    uint16_t N;                          /**< length of the DCT4. */
     2257    uint16_t Nby2;                       /**< half of the length of the DCT4. */
     2258    float32_t normalize;                 /**< normalizing factor. */
     2259    float32_t *pTwiddle;                 /**< points to the twiddle factor table. */
     2260    float32_t *pCosFactor;               /**< points to the cosFactor table. */
    23812261    arm_rfft_instance_f32 *pRfft;        /**< points to the real FFT instance. */
    23822262    arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */
    23832263  } arm_dct4_instance_f32;
    23842264
     2265
    23852266  /**
    23862267   * @brief  Initialization function for the floating-point DCT4/IDCT4.
    2387    * @param[in,out] *S         points to an instance of floating-point DCT4/IDCT4 structure.
    2388    * @param[in]     *S_RFFT    points to an instance of floating-point RFFT/RIFFT structure.
    2389    * @param[in]     *S_CFFT    points to an instance of floating-point CFFT/CIFFT structure.
     2268   * @param[in,out] S          points to an instance of floating-point DCT4/IDCT4 structure.
     2269   * @param[in]     S_RFFT     points to an instance of floating-point RFFT/RIFFT structure.
     2270   * @param[in]     S_CFFT     points to an instance of floating-point CFFT/CIFFT structure.
    23902271   * @param[in]     N          length of the DCT4.
    23912272   * @param[in]     Nby2       half of the length of the DCT4.
    23922273   * @param[in]     normalize  normalizing factor.
    2393    * @return            arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLenReal</code> is not a supported transform length.
    2394    */
    2395 
     2274   * @return      arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLenReal</code> is not a supported transform length.
     2275   */
    23962276  arm_status arm_dct4_init_f32(
    23972277  arm_dct4_instance_f32 * S,
     
    24022282  float32_t normalize);
    24032283
     2284
    24042285  /**
    24052286   * @brief Processing function for the floating-point DCT4/IDCT4.
    2406    * @param[in]       *S             points to an instance of the floating-point DCT4/IDCT4 structure.
    2407    * @param[in]       *pState        points to state buffer.
    2408    * @param[in,out]   *pInlineBuffer points to the in-place input and output buffer.
    2409    * @return none.
    2410    */
    2411 
     2287   * @param[in]     S              points to an instance of the floating-point DCT4/IDCT4 structure.
     2288   * @param[in]     pState         points to state buffer.
     2289   * @param[in,out] pInlineBuffer  points to the in-place input and output buffer.
     2290   */
    24122291  void arm_dct4_f32(
    24132292  const arm_dct4_instance_f32 * S,
     
    24152294  float32_t * pInlineBuffer);
    24162295
     2296
    24172297  /**
    24182298   * @brief Instance structure for the Q31 DCT4/IDCT4 function.
    24192299   */
    2420 
    24212300  typedef struct
    24222301  {
    2423     uint16_t N;                         /**< length of the DCT4. */
    2424     uint16_t Nby2;                      /**< half of the length of the DCT4. */
    2425     q31_t normalize;                    /**< normalizing factor. */
    2426     q31_t *pTwiddle;                    /**< points to the twiddle factor table. */
    2427     q31_t *pCosFactor;                  /**< points to the cosFactor table. */
     2302    uint16_t N;                          /**< length of the DCT4. */
     2303    uint16_t Nby2;                       /**< half of the length of the DCT4. */
     2304    q31_t normalize;                     /**< normalizing factor. */
     2305    q31_t *pTwiddle;                     /**< points to the twiddle factor table. */
     2306    q31_t *pCosFactor;                   /**< points to the cosFactor table. */
    24282307    arm_rfft_instance_q31 *pRfft;        /**< points to the real FFT instance. */
    24292308    arm_cfft_radix4_instance_q31 *pCfft; /**< points to the complex FFT instance. */
    24302309  } arm_dct4_instance_q31;
    24312310
     2311
    24322312  /**
    24332313   * @brief  Initialization function for the Q31 DCT4/IDCT4.
    2434    * @param[in,out] *S         points to an instance of Q31 DCT4/IDCT4 structure.
    2435    * @param[in]     *S_RFFT    points to an instance of Q31 RFFT/RIFFT structure
    2436    * @param[in]     *S_CFFT    points to an instance of Q31 CFFT/CIFFT structure
     2314   * @param[in,out] S          points to an instance of Q31 DCT4/IDCT4 structure.
     2315   * @param[in]     S_RFFT     points to an instance of Q31 RFFT/RIFFT structure
     2316   * @param[in]     S_CFFT     points to an instance of Q31 CFFT/CIFFT structure
    24372317   * @param[in]     N          length of the DCT4.
    24382318   * @param[in]     Nby2       half of the length of the DCT4.
    24392319   * @param[in]     normalize  normalizing factor.
    2440    * @return            arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
    2441    */
    2442 
     2320   * @return      arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
     2321   */
    24432322  arm_status arm_dct4_init_q31(
    24442323  arm_dct4_instance_q31 * S,
     
    24492328  q31_t normalize);
    24502329
     2330
    24512331  /**
    24522332   * @brief Processing function for the Q31 DCT4/IDCT4.
    2453    * @param[in]       *S             points to an instance of the Q31 DCT4 structure.
    2454    * @param[in]       *pState        points to state buffer.
    2455    * @param[in,out]   *pInlineBuffer points to the in-place input and output buffer.
    2456    * @return none.
    2457    */
    2458 
     2333   * @param[in]     S              points to an instance of the Q31 DCT4 structure.
     2334   * @param[in]     pState         points to state buffer.
     2335   * @param[in,out] pInlineBuffer  points to the in-place input and output buffer.
     2336   */
    24592337  void arm_dct4_q31(
    24602338  const arm_dct4_instance_q31 * S,
     
    24622340  q31_t * pInlineBuffer);
    24632341
     2342
    24642343  /**
    24652344   * @brief Instance structure for the Q15 DCT4/IDCT4 function.
    24662345   */
    2467 
    24682346  typedef struct
    24692347  {
    2470     uint16_t N;                         /**< length of the DCT4. */
    2471     uint16_t Nby2;                      /**< half of the length of the DCT4. */
    2472     q15_t normalize;                    /**< normalizing factor. */
    2473     q15_t *pTwiddle;                    /**< points to the twiddle factor table. */
    2474     q15_t *pCosFactor;                  /**< points to the cosFactor table. */
     2348    uint16_t N;                          /**< length of the DCT4. */
     2349    uint16_t Nby2;                       /**< half of the length of the DCT4. */
     2350    q15_t normalize;                     /**< normalizing factor. */
     2351    q15_t *pTwiddle;                     /**< points to the twiddle factor table. */
     2352    q15_t *pCosFactor;                   /**< points to the cosFactor table. */
    24752353    arm_rfft_instance_q15 *pRfft;        /**< points to the real FFT instance. */
    24762354    arm_cfft_radix4_instance_q15 *pCfft; /**< points to the complex FFT instance. */
    24772355  } arm_dct4_instance_q15;
    24782356
     2357
    24792358  /**
    24802359   * @brief  Initialization function for the Q15 DCT4/IDCT4.
    2481    * @param[in,out] *S         points to an instance of Q15 DCT4/IDCT4 structure.
    2482    * @param[in]     *S_RFFT    points to an instance of Q15 RFFT/RIFFT structure.
    2483    * @param[in]     *S_CFFT    points to an instance of Q15 CFFT/CIFFT structure.
     2360   * @param[in,out] S          points to an instance of Q15 DCT4/IDCT4 structure.
     2361   * @param[in]     S_RFFT     points to an instance of Q15 RFFT/RIFFT structure.
     2362   * @param[in]     S_CFFT     points to an instance of Q15 CFFT/CIFFT structure.
    24842363   * @param[in]     N          length of the DCT4.
    24852364   * @param[in]     Nby2       half of the length of the DCT4.
    24862365   * @param[in]     normalize  normalizing factor.
    2487    * @return            arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
    2488    */
    2489 
     2366   * @return      arm_status function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>N</code> is not a supported transform length.
     2367   */
    24902368  arm_status arm_dct4_init_q15(
    24912369  arm_dct4_instance_q15 * S,
     
    24962374  q15_t normalize);
    24972375
     2376
    24982377  /**
    24992378   * @brief Processing function for the Q15 DCT4/IDCT4.
    2500    * @param[in]       *S             points to an instance of the Q15 DCT4 structure.
    2501    * @param[in]       *pState        points to state buffer.
    2502    * @param[in,out]   *pInlineBuffer points to the in-place input and output buffer.
    2503    * @return none.
    2504    */
    2505 
     2379   * @param[in]     S              points to an instance of the Q15 DCT4 structure.
     2380   * @param[in]     pState         points to state buffer.
     2381   * @param[in,out] pInlineBuffer  points to the in-place input and output buffer.
     2382   */
    25062383  void arm_dct4_q15(
    25072384  const arm_dct4_instance_q15 * S,
     
    25092386  q15_t * pInlineBuffer);
    25102387
     2388
    25112389  /**
    25122390   * @brief Floating-point vector addition.
    2513    * @param[in]       *pSrcA points to the first input vector
    2514    * @param[in]       *pSrcB points to the second input vector
    2515    * @param[out]      *pDst points to the output vector
    2516    * @param[in]       blockSize number of samples in each vector
    2517    * @return none.
    2518    */
    2519 
     2391   * @param[in]  pSrcA      points to the first input vector
     2392   * @param[in]  pSrcB      points to the second input vector
     2393   * @param[out] pDst       points to the output vector
     2394   * @param[in]  blockSize  number of samples in each vector
     2395   */
    25202396  void arm_add_f32(
    25212397  float32_t * pSrcA,
     
    25242400  uint32_t blockSize);
    25252401
     2402
    25262403  /**
    25272404   * @brief Q7 vector addition.
    2528    * @param[in]       *pSrcA points to the first input vector
    2529    * @param[in]       *pSrcB points to the second input vector
    2530    * @param[out]      *pDst points to the output vector
    2531    * @param[in]       blockSize number of samples in each vector
    2532    * @return none.
    2533    */
    2534 
     2405   * @param[in]  pSrcA      points to the first input vector
     2406   * @param[in]  pSrcB      points to the second input vector
     2407   * @param[out] pDst       points to the output vector
     2408   * @param[in]  blockSize  number of samples in each vector
     2409   */
    25352410  void arm_add_q7(
    25362411  q7_t * pSrcA,
     
    25392414  uint32_t blockSize);
    25402415
     2416
    25412417  /**
    25422418   * @brief Q15 vector addition.
    2543    * @param[in]       *pSrcA points to the first input vector
    2544    * @param[in]       *pSrcB points to the second input vector
    2545    * @param[out]      *pDst points to the output vector
    2546    * @param[in]       blockSize number of samples in each vector
    2547    * @return none.
    2548    */
    2549 
     2419   * @param[in]  pSrcA      points to the first input vector
     2420   * @param[in]  pSrcB      points to the second input vector
     2421   * @param[out] pDst       points to the output vector
     2422   * @param[in]  blockSize  number of samples in each vector
     2423   */
    25502424  void arm_add_q15(
    25512425  q15_t * pSrcA,
     
    25542428  uint32_t blockSize);
    25552429
     2430
    25562431  /**
    25572432   * @brief Q31 vector addition.
    2558    * @param[in]       *pSrcA points to the first input vector
    2559    * @param[in]       *pSrcB points to the second input vector
    2560    * @param[out]      *pDst points to the output vector
    2561    * @param[in]       blockSize number of samples in each vector
    2562    * @return none.
    2563    */
    2564 
     2433   * @param[in]  pSrcA      points to the first input vector
     2434   * @param[in]  pSrcB      points to the second input vector
     2435   * @param[out] pDst       points to the output vector
     2436   * @param[in]  blockSize  number of samples in each vector
     2437   */
    25652438  void arm_add_q31(
    25662439  q31_t * pSrcA,
     
    25692442  uint32_t blockSize);
    25702443
     2444
    25712445  /**
    25722446   * @brief Floating-point vector subtraction.
    2573    * @param[in]       *pSrcA points to the first input vector
    2574    * @param[in]       *pSrcB points to the second input vector
    2575    * @param[out]      *pDst points to the output vector
    2576    * @param[in]       blockSize number of samples in each vector
    2577    * @return none.
    2578    */
    2579 
     2447   * @param[in]  pSrcA      points to the first input vector
     2448   * @param[in]  pSrcB      points to the second input vector
     2449   * @param[out] pDst       points to the output vector
     2450   * @param[in]  blockSize  number of samples in each vector
     2451   */
    25802452  void arm_sub_f32(
    25812453  float32_t * pSrcA,
     
    25842456  uint32_t blockSize);
    25852457
     2458
    25862459  /**
    25872460   * @brief Q7 vector subtraction.
    2588    * @param[in]       *pSrcA points to the first input vector
    2589    * @param[in]       *pSrcB points to the second input vector
    2590    * @param[out]      *pDst points to the output vector
    2591    * @param[in]       blockSize number of samples in each vector
    2592    * @return none.
    2593    */
    2594 
     2461   * @param[in]  pSrcA      points to the first input vector
     2462   * @param[in]  pSrcB      points to the second input vector
     2463   * @param[out] pDst       points to the output vector
     2464   * @param[in]  blockSize  number of samples in each vector
     2465   */
    25952466  void arm_sub_q7(
    25962467  q7_t * pSrcA,
     
    25992470  uint32_t blockSize);
    26002471
     2472
    26012473  /**
    26022474   * @brief Q15 vector subtraction.
    2603    * @param[in]       *pSrcA points to the first input vector
    2604    * @param[in]       *pSrcB points to the second input vector
    2605    * @param[out]      *pDst points to the output vector
    2606    * @param[in]       blockSize number of samples in each vector
    2607    * @return none.
    2608    */
    2609 
     2475   * @param[in]  pSrcA      points to the first input vector
     2476   * @param[in]  pSrcB      points to the second input vector
     2477   * @param[out] pDst       points to the output vector
     2478   * @param[in]  blockSize  number of samples in each vector
     2479   */
    26102480  void arm_sub_q15(
    26112481  q15_t * pSrcA,
     
    26142484  uint32_t blockSize);
    26152485
     2486
    26162487  /**
    26172488   * @brief Q31 vector subtraction.
    2618    * @param[in]       *pSrcA points to the first input vector
    2619    * @param[in]       *pSrcB points to the second input vector
    2620    * @param[out]      *pDst points to the output vector
    2621    * @param[in]       blockSize number of samples in each vector
    2622    * @return none.
    2623    */
    2624 
     2489   * @param[in]  pSrcA      points to the first input vector
     2490   * @param[in]  pSrcB      points to the second input vector
     2491   * @param[out] pDst       points to the output vector
     2492   * @param[in]  blockSize  number of samples in each vector
     2493   */
    26252494  void arm_sub_q31(
    26262495  q31_t * pSrcA,
     
    26292498  uint32_t blockSize);
    26302499
     2500
    26312501  /**
    26322502   * @brief Multiplies a floating-point vector by a scalar.
    2633    * @param[in]       *pSrc points to the input vector
    2634    * @param[in]       scale scale factor to be applied
    2635    * @param[out]      *pDst points to the output vector
    2636    * @param[in]       blockSize number of samples in the vector
    2637    * @return none.
    2638    */
    2639 
     2503   * @param[in]  pSrc       points to the input vector
     2504   * @param[in]  scale      scale factor to be applied
     2505   * @param[out] pDst       points to the output vector
     2506   * @param[in]  blockSize  number of samples in the vector
     2507   */
    26402508  void arm_scale_f32(
    26412509  float32_t * pSrc,
     
    26442512  uint32_t blockSize);
    26452513
     2514
    26462515  /**
    26472516   * @brief Multiplies a Q7 vector by a scalar.
    2648    * @param[in]       *pSrc points to the input vector
    2649    * @param[in]       scaleFract fractional portion of the scale value
    2650    * @param[in]       shift number of bits to shift the result by
    2651    * @param[out]      *pDst points to the output vector
    2652    * @param[in]       blockSize number of samples in the vector
    2653    * @return none.
    2654    */
    2655 
     2517   * @param[in]  pSrc        points to the input vector
     2518   * @param[in]  scaleFract  fractional portion of the scale value
     2519   * @param[in]  shift       number of bits to shift the result by
     2520   * @param[out] pDst        points to the output vector
     2521   * @param[in]  blockSize   number of samples in the vector
     2522   */
    26562523  void arm_scale_q7(
    26572524  q7_t * pSrc,
     
    26612528  uint32_t blockSize);
    26622529
     2530
    26632531  /**
    26642532   * @brief Multiplies a Q15 vector by a scalar.
    2665    * @param[in]       *pSrc points to the input vector
    2666    * @param[in]       scaleFract fractional portion of the scale value
    2667    * @param[in]       shift number of bits to shift the result by
    2668    * @param[out]      *pDst points to the output vector
    2669    * @param[in]       blockSize number of samples in the vector
    2670    * @return none.
    2671    */
    2672 
     2533   * @param[in]  pSrc        points to the input vector
     2534   * @param[in]  scaleFract  fractional portion of the scale value
     2535   * @param[in]  shift       number of bits to shift the result by
     2536   * @param[out] pDst        points to the output vector
     2537   * @param[in]  blockSize   number of samples in the vector
     2538   */
    26732539  void arm_scale_q15(
    26742540  q15_t * pSrc,
     
    26782544  uint32_t blockSize);
    26792545
     2546
    26802547  /**
    26812548   * @brief Multiplies a Q31 vector by a scalar.
    2682    * @param[in]       *pSrc points to the input vector
    2683    * @param[in]       scaleFract fractional portion of the scale value
    2684    * @param[in]       shift number of bits to shift the result by
    2685    * @param[out]      *pDst points to the output vector
    2686    * @param[in]       blockSize number of samples in the vector
    2687    * @return none.
    2688    */
    2689 
     2549   * @param[in]  pSrc        points to the input vector
     2550   * @param[in]  scaleFract  fractional portion of the scale value
     2551   * @param[in]  shift       number of bits to shift the result by
     2552   * @param[out] pDst        points to the output vector
     2553   * @param[in]  blockSize   number of samples in the vector
     2554   */
    26902555  void arm_scale_q31(
    26912556  q31_t * pSrc,
     
    26952560  uint32_t blockSize);
    26962561
     2562
    26972563  /**
    26982564   * @brief Q7 vector absolute value.
    2699    * @param[in]       *pSrc points to the input buffer
    2700    * @param[out]      *pDst points to the output buffer
    2701    * @param[in]       blockSize number of samples in each vector
    2702    * @return none.
    2703    */
    2704 
     2565   * @param[in]  pSrc       points to the input buffer
     2566   * @param[out] pDst       points to the output buffer
     2567   * @param[in]  blockSize  number of samples in each vector
     2568   */
    27052569  void arm_abs_q7(
    27062570  q7_t * pSrc,
     
    27082572  uint32_t blockSize);
    27092573
     2574
    27102575  /**
    27112576   * @brief Floating-point vector absolute value.
    2712    * @param[in]       *pSrc points to the input buffer
    2713    * @param[out]      *pDst points to the output buffer
    2714    * @param[in]       blockSize number of samples in each vector
    2715    * @return none.
    2716    */
    2717 
     2577   * @param[in]  pSrc       points to the input buffer
     2578   * @param[out] pDst       points to the output buffer
     2579   * @param[in]  blockSize  number of samples in each vector
     2580   */
    27182581  void arm_abs_f32(
    27192582  float32_t * pSrc,
     
    27212584  uint32_t blockSize);
    27222585
     2586
    27232587  /**
    27242588   * @brief Q15 vector absolute value.
    2725    * @param[in]       *pSrc points to the input buffer
    2726    * @param[out]      *pDst points to the output buffer
    2727    * @param[in]       blockSize number of samples in each vector
    2728    * @return none.
    2729    */
    2730 
     2589   * @param[in]  pSrc       points to the input buffer
     2590   * @param[out] pDst       points to the output buffer
     2591   * @param[in]  blockSize  number of samples in each vector
     2592   */
    27312593  void arm_abs_q15(
    27322594  q15_t * pSrc,
     
    27342596  uint32_t blockSize);
    27352597
     2598
    27362599  /**
    27372600   * @brief Q31 vector absolute value.
    2738    * @param[in]       *pSrc points to the input buffer
    2739    * @param[out]      *pDst points to the output buffer
    2740    * @param[in]       blockSize number of samples in each vector
    2741    * @return none.
    2742    */
    2743 
     2601   * @param[in]  pSrc       points to the input buffer
     2602   * @param[out] pDst       points to the output buffer
     2603   * @param[in]  blockSize  number of samples in each vector
     2604   */
    27442605  void arm_abs_q31(
    27452606  q31_t * pSrc,
     
    27472608  uint32_t blockSize);
    27482609
     2610
    27492611  /**
    27502612   * @brief Dot product of floating-point vectors.
    2751    * @param[in]       *pSrcA points to the first input vector
    2752    * @param[in]       *pSrcB points to the second input vector
    2753    * @param[in]       blockSize number of samples in each vector
    2754    * @param[out]      *result output result returned here
    2755    * @return none.
    2756    */
    2757 
     2613   * @param[in]  pSrcA      points to the first input vector
     2614   * @param[in]  pSrcB      points to the second input vector
     2615   * @param[in]  blockSize  number of samples in each vector
     2616   * @param[out] result     output result returned here
     2617   */
    27582618  void arm_dot_prod_f32(
    27592619  float32_t * pSrcA,
     
    27622622  float32_t * result);
    27632623
     2624
    27642625  /**
    27652626   * @brief Dot product of Q7 vectors.
    2766    * @param[in]       *pSrcA points to the first input vector
    2767    * @param[in]       *pSrcB points to the second input vector
    2768    * @param[in]       blockSize number of samples in each vector
    2769    * @param[out]      *result output result returned here
    2770    * @return none.
    2771    */
    2772 
     2627   * @param[in]  pSrcA      points to the first input vector
     2628   * @param[in]  pSrcB      points to the second input vector
     2629   * @param[in]  blockSize  number of samples in each vector
     2630   * @param[out] result     output result returned here
     2631   */
    27732632  void arm_dot_prod_q7(
    27742633  q7_t * pSrcA,
     
    27772636  q31_t * result);
    27782637
     2638
    27792639  /**
    27802640   * @brief Dot product of Q15 vectors.
    2781    * @param[in]       *pSrcA points to the first input vector
    2782    * @param[in]       *pSrcB points to the second input vector
    2783    * @param[in]       blockSize number of samples in each vector
    2784    * @param[out]      *result output result returned here
    2785    * @return none.
    2786    */
    2787 
     2641   * @param[in]  pSrcA      points to the first input vector
     2642   * @param[in]  pSrcB      points to the second input vector
     2643   * @param[in]  blockSize  number of samples in each vector
     2644   * @param[out] result     output result returned here
     2645   */
    27882646  void arm_dot_prod_q15(
    27892647  q15_t * pSrcA,
     
    27922650  q63_t * result);
    27932651
     2652
    27942653  /**
    27952654   * @brief Dot product of Q31 vectors.
    2796    * @param[in]       *pSrcA points to the first input vector
    2797    * @param[in]       *pSrcB points to the second input vector
    2798    * @param[in]       blockSize number of samples in each vector
    2799    * @param[out]      *result output result returned here
    2800    * @return none.
    2801    */
    2802 
     2655   * @param[in]  pSrcA      points to the first input vector
     2656   * @param[in]  pSrcB      points to the second input vector
     2657   * @param[in]  blockSize  number of samples in each vector
     2658   * @param[out] result     output result returned here
     2659   */
    28032660  void arm_dot_prod_q31(
    28042661  q31_t * pSrcA,
     
    28072664  q63_t * result);
    28082665
     2666
    28092667  /**
    28102668   * @brief  Shifts the elements of a Q7 vector a specified number of bits.
    2811    * @param[in]  *pSrc points to the input vector
    2812    * @param[in]  shiftBits number of bits to shift.  A positive value shifts left; a negative value shifts right.
    2813    * @param[out]  *pDst points to the output vector
    2814    * @param[in]  blockSize number of samples in the vector
    2815    * @return none.
    2816    */
    2817 
     2669   * @param[in]  pSrc       points to the input vector
     2670   * @param[in]  shiftBits  number of bits to shift.  A positive value shifts left; a negative value shifts right.
     2671   * @param[out] pDst       points to the output vector
     2672   * @param[in]  blockSize  number of samples in the vector
     2673   */
    28182674  void arm_shift_q7(
    28192675  q7_t * pSrc,
     
    28222678  uint32_t blockSize);
    28232679
     2680
    28242681  /**
    28252682   * @brief  Shifts the elements of a Q15 vector a specified number of bits.
    2826    * @param[in]  *pSrc points to the input vector
    2827    * @param[in]  shiftBits number of bits to shift.  A positive value shifts left; a negative value shifts right.
    2828    * @param[out]  *pDst points to the output vector
    2829    * @param[in]  blockSize number of samples in the vector
    2830    * @return none.
    2831    */
    2832 
     2683   * @param[in]  pSrc       points to the input vector
     2684   * @param[in]  shiftBits  number of bits to shift.  A positive value shifts left; a negative value shifts right.
     2685   * @param[out] pDst       points to the output vector
     2686   * @param[in]  blockSize  number of samples in the vector
     2687   */
    28332688  void arm_shift_q15(
    28342689  q15_t * pSrc,
     
    28372692  uint32_t blockSize);
    28382693
     2694
    28392695  /**
    28402696   * @brief  Shifts the elements of a Q31 vector a specified number of bits.
    2841    * @param[in]  *pSrc points to the input vector
    2842    * @param[in]  shiftBits number of bits to shift.  A positive value shifts left; a negative value shifts right.
    2843    * @param[out]  *pDst points to the output vector
    2844    * @param[in]  blockSize number of samples in the vector
    2845    * @return none.
    2846    */
    2847 
     2697   * @param[in]  pSrc       points to the input vector
     2698   * @param[in]  shiftBits  number of bits to shift.  A positive value shifts left; a negative value shifts right.
     2699   * @param[out] pDst       points to the output vector
     2700   * @param[in]  blockSize  number of samples in the vector
     2701   */
    28482702  void arm_shift_q31(
    28492703  q31_t * pSrc,
     
    28522706  uint32_t blockSize);
    28532707
     2708
    28542709  /**
    28552710   * @brief  Adds a constant offset to a floating-point vector.
    2856    * @param[in]  *pSrc points to the input vector
    2857    * @param[in]  offset is the offset to be added
    2858    * @param[out]  *pDst points to the output vector
    2859    * @param[in]  blockSize number of samples in the vector
    2860    * @return none.
    2861    */
    2862 
     2711   * @param[in]  pSrc       points to the input vector
     2712   * @param[in]  offset     is the offset to be added
     2713   * @param[out] pDst       points to the output vector
     2714   * @param[in]  blockSize  number of samples in the vector
     2715   */
    28632716  void arm_offset_f32(
    28642717  float32_t * pSrc,
     
    28672720  uint32_t blockSize);
    28682721
     2722
    28692723  /**
    28702724   * @brief  Adds a constant offset to a Q7 vector.
    2871    * @param[in]  *pSrc points to the input vector
    2872    * @param[in]  offset is the offset to be added
    2873    * @param[out]  *pDst points to the output vector
    2874    * @param[in]  blockSize number of samples in the vector
    2875    * @return none.
    2876    */
    2877 
     2725   * @param[in]  pSrc       points to the input vector
     2726   * @param[in]  offset     is the offset to be added
     2727   * @param[out] pDst       points to the output vector
     2728   * @param[in]  blockSize  number of samples in the vector
     2729   */
    28782730  void arm_offset_q7(
    28792731  q7_t * pSrc,
     
    28822734  uint32_t blockSize);
    28832735
     2736
    28842737  /**
    28852738   * @brief  Adds a constant offset to a Q15 vector.
    2886    * @param[in]  *pSrc points to the input vector
    2887    * @param[in]  offset is the offset to be added
    2888    * @param[out]  *pDst points to the output vector
    2889    * @param[in]  blockSize number of samples in the vector
    2890    * @return none.
    2891    */
    2892 
     2739   * @param[in]  pSrc       points to the input vector
     2740   * @param[in]  offset     is the offset to be added
     2741   * @param[out] pDst       points to the output vector
     2742   * @param[in]  blockSize  number of samples in the vector
     2743   */
    28932744  void arm_offset_q15(
    28942745  q15_t * pSrc,
     
    28972748  uint32_t blockSize);
    28982749
     2750
    28992751  /**
    29002752   * @brief  Adds a constant offset to a Q31 vector.
    2901    * @param[in]  *pSrc points to the input vector
    2902    * @param[in]  offset is the offset to be added
    2903    * @param[out]  *pDst points to the output vector
    2904    * @param[in]  blockSize number of samples in the vector
    2905    * @return none.
    2906    */
    2907 
     2753   * @param[in]  pSrc       points to the input vector
     2754   * @param[in]  offset     is the offset to be added
     2755   * @param[out] pDst       points to the output vector
     2756   * @param[in]  blockSize  number of samples in the vector
     2757   */
    29082758  void arm_offset_q31(
    29092759  q31_t * pSrc,
     
    29122762  uint32_t blockSize);
    29132763
     2764
    29142765  /**
    29152766   * @brief  Negates the elements of a floating-point vector.
    2916    * @param[in]  *pSrc points to the input vector
    2917    * @param[out]  *pDst points to the output vector
    2918    * @param[in]  blockSize number of samples in the vector
    2919    * @return none.
    2920    */
    2921 
     2767   * @param[in]  pSrc       points to the input vector
     2768   * @param[out] pDst       points to the output vector
     2769   * @param[in]  blockSize  number of samples in the vector
     2770   */
    29222771  void arm_negate_f32(
    29232772  float32_t * pSrc,
     
    29252774  uint32_t blockSize);
    29262775
     2776
    29272777  /**
    29282778   * @brief  Negates the elements of a Q7 vector.
    2929    * @param[in]  *pSrc points to the input vector
    2930    * @param[out]  *pDst points to the output vector
    2931    * @param[in]  blockSize number of samples in the vector
    2932    * @return none.
    2933    */
    2934 
     2779   * @param[in]  pSrc       points to the input vector
     2780   * @param[out] pDst       points to the output vector
     2781   * @param[in]  blockSize  number of samples in the vector
     2782   */
    29352783  void arm_negate_q7(
    29362784  q7_t * pSrc,
     
    29382786  uint32_t blockSize);
    29392787
     2788
    29402789  /**
    29412790   * @brief  Negates the elements of a Q15 vector.
    2942    * @param[in]  *pSrc points to the input vector
    2943    * @param[out]  *pDst points to the output vector
    2944    * @param[in]  blockSize number of samples in the vector
    2945    * @return none.
    2946    */
    2947 
     2791   * @param[in]  pSrc       points to the input vector
     2792   * @param[out] pDst       points to the output vector
     2793   * @param[in]  blockSize  number of samples in the vector
     2794   */
    29482795  void arm_negate_q15(
    29492796  q15_t * pSrc,
     
    29512798  uint32_t blockSize);
    29522799
     2800
    29532801  /**
    29542802   * @brief  Negates the elements of a Q31 vector.
    2955    * @param[in]  *pSrc points to the input vector
    2956    * @param[out]  *pDst points to the output vector
    2957    * @param[in]  blockSize number of samples in the vector
    2958    * @return none.
    2959    */
    2960 
     2803   * @param[in]  pSrc       points to the input vector
     2804   * @param[out] pDst       points to the output vector
     2805   * @param[in]  blockSize  number of samples in the vector
     2806   */
    29612807  void arm_negate_q31(
    29622808  q31_t * pSrc,
    29632809  q31_t * pDst,
    29642810  uint32_t blockSize);
     2811
     2812
    29652813  /**
    29662814   * @brief  Copies the elements of a floating-point vector.
    2967    * @param[in]  *pSrc input pointer
    2968    * @param[out]  *pDst output pointer
    2969    * @param[in]  blockSize number of samples to process
    2970    * @return none.
     2815   * @param[in]  pSrc       input pointer
     2816   * @param[out] pDst       output pointer
     2817   * @param[in]  blockSize  number of samples to process
    29712818   */
    29722819  void arm_copy_f32(
     
    29752822  uint32_t blockSize);
    29762823
     2824
    29772825  /**
    29782826   * @brief  Copies the elements of a Q7 vector.
    2979    * @param[in]  *pSrc input pointer
    2980    * @param[out]  *pDst output pointer
    2981    * @param[in]  blockSize number of samples to process
    2982    * @return none.
     2827   * @param[in]  pSrc       input pointer
     2828   * @param[out] pDst       output pointer
     2829   * @param[in]  blockSize  number of samples to process
    29832830   */
    29842831  void arm_copy_q7(
     
    29872834  uint32_t blockSize);
    29882835
     2836
    29892837  /**
    29902838   * @brief  Copies the elements of a Q15 vector.
    2991    * @param[in]  *pSrc input pointer
    2992    * @param[out]  *pDst output pointer
    2993    * @param[in]  blockSize number of samples to process
    2994    * @return none.
     2839   * @param[in]  pSrc       input pointer
     2840   * @param[out] pDst       output pointer
     2841   * @param[in]  blockSize  number of samples to process
    29952842   */
    29962843  void arm_copy_q15(
     
    29992846  uint32_t blockSize);
    30002847
     2848
    30012849  /**
    30022850   * @brief  Copies the elements of a Q31 vector.
    3003    * @param[in]  *pSrc input pointer
    3004    * @param[out]  *pDst output pointer
    3005    * @param[in]  blockSize number of samples to process
    3006    * @return none.
     2851   * @param[in]  pSrc       input pointer
     2852   * @param[out] pDst       output pointer
     2853   * @param[in]  blockSize  number of samples to process
    30072854   */
    30082855  void arm_copy_q31(
     
    30102857  q31_t * pDst,
    30112858  uint32_t blockSize);
     2859
     2860
    30122861  /**
    30132862   * @brief  Fills a constant value into a floating-point vector.
    3014    * @param[in]  value input value to be filled
    3015    * @param[out]  *pDst output pointer
    3016    * @param[in]  blockSize number of samples to process
    3017    * @return none.
     2863   * @param[in]  value      input value to be filled
     2864   * @param[out] pDst       output pointer
     2865   * @param[in]  blockSize  number of samples to process
    30182866   */
    30192867  void arm_fill_f32(
     
    30222870  uint32_t blockSize);
    30232871
     2872
    30242873  /**
    30252874   * @brief  Fills a constant value into a Q7 vector.
    3026    * @param[in]  value input value to be filled
    3027    * @param[out]  *pDst output pointer
    3028    * @param[in]  blockSize number of samples to process
    3029    * @return none.
     2875   * @param[in]  value      input value to be filled
     2876   * @param[out] pDst       output pointer
     2877   * @param[in]  blockSize  number of samples to process
    30302878   */
    30312879  void arm_fill_q7(
     
    30342882  uint32_t blockSize);
    30352883
     2884
    30362885  /**
    30372886   * @brief  Fills a constant value into a Q15 vector.
    3038    * @param[in]  value input value to be filled
    3039    * @param[out]  *pDst output pointer
    3040    * @param[in]  blockSize number of samples to process
    3041    * @return none.
     2887   * @param[in]  value      input value to be filled
     2888   * @param[out] pDst       output pointer
     2889   * @param[in]  blockSize  number of samples to process
    30422890   */
    30432891  void arm_fill_q15(
     
    30462894  uint32_t blockSize);
    30472895
     2896
    30482897  /**
    30492898   * @brief  Fills a constant value into a Q31 vector.
    3050    * @param[in]  value input value to be filled
    3051    * @param[out]  *pDst output pointer
    3052    * @param[in]  blockSize number of samples to process
    3053    * @return none.
     2899   * @param[in]  value      input value to be filled
     2900   * @param[out] pDst       output pointer
     2901   * @param[in]  blockSize  number of samples to process
    30542902   */
    30552903  void arm_fill_q31(
     
    30582906  uint32_t blockSize);
    30592907
     2908
    30602909/**
    30612910 * @brief Convolution of floating-point sequences.
    3062  * @param[in] *pSrcA points to the first input sequence.
    3063  * @param[in] srcALen length of the first input sequence.
    3064  * @param[in] *pSrcB points to the second input sequence.
    3065  * @param[in] srcBLen length of the second input sequence.
    3066  * @param[out] *pDst points to the location where the output result is written.  Length srcALen+srcBLen-1.
    3067  * @return none.
     2911 * @param[in]  pSrcA    points to the first input sequence.
     2912 * @param[in]  srcALen  length of the first input sequence.
     2913 * @param[in]  pSrcB    points to the second input sequence.
     2914 * @param[in]  srcBLen  length of the second input sequence.
     2915 * @param[out] pDst     points to the location where the output result is written.  Length srcALen+srcBLen-1.
    30682916 */
    3069 
    30702917  void arm_conv_f32(
    30712918  float32_t * pSrcA,
     
    30782925  /**
    30792926   * @brief Convolution of Q15 sequences.
    3080    * @param[in] *pSrcA points to the first input sequence.
    3081    * @param[in] srcALen length of the first input sequence.
    3082    * @param[in] *pSrcB points to the second input sequence.
    3083    * @param[in] srcBLen length of the second input sequence.
    3084    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3085    * @param[in]  *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    3086    * @param[in]  *pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
    3087    * @return none.
    3088    */
    3089 
    3090 
     2927   * @param[in]  pSrcA      points to the first input sequence.
     2928   * @param[in]  srcALen    length of the first input sequence.
     2929   * @param[in]  pSrcB      points to the second input sequence.
     2930   * @param[in]  srcBLen    length of the second input sequence.
     2931   * @param[out] pDst       points to the block of output data  Length srcALen+srcBLen-1.
     2932   * @param[in]  pScratch1  points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     2933   * @param[in]  pScratch2  points to scratch buffer of size min(srcALen, srcBLen).
     2934   */
    30912935  void arm_conv_opt_q15(
    30922936  q15_t * pSrcA,
     
    31012945/**
    31022946 * @brief Convolution of Q15 sequences.
    3103  * @param[in] *pSrcA points to the first input sequence.
    3104  * @param[in] srcALen length of the first input sequence.
    3105  * @param[in] *pSrcB points to the second input sequence.
    3106  * @param[in] srcBLen length of the second input sequence.
    3107  * @param[out] *pDst points to the location where the output result is written.  Length srcALen+srcBLen-1.
    3108  * @return none.
     2947 * @param[in]  pSrcA    points to the first input sequence.
     2948 * @param[in]  srcALen  length of the first input sequence.
     2949 * @param[in]  pSrcB    points to the second input sequence.
     2950 * @param[in]  srcBLen  length of the second input sequence.
     2951 * @param[out] pDst     points to the location where the output result is written.  Length srcALen+srcBLen-1.
    31092952 */
    3110 
    31112953  void arm_conv_q15(
    31122954  q15_t * pSrcA,
     
    31162958  q15_t * pDst);
    31172959
     2960
    31182961  /**
    31192962   * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
    3120    * @param[in] *pSrcA points to the first input sequence.
    3121    * @param[in] srcALen length of the first input sequence.
    3122    * @param[in] *pSrcB points to the second input sequence.
    3123    * @param[in] srcBLen length of the second input sequence.
    3124    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3125    * @return none.
    3126    */
    3127 
     2963   * @param[in]  pSrcA    points to the first input sequence.
     2964   * @param[in]  srcALen  length of the first input sequence.
     2965   * @param[in]  pSrcB    points to the second input sequence.
     2966   * @param[in]  srcBLen  length of the second input sequence.
     2967   * @param[out] pDst     points to the block of output data  Length srcALen+srcBLen-1.
     2968   */
    31282969  void arm_conv_fast_q15(
    3129                           q15_t * pSrcA,
    3130                          uint32_t srcALen,
    3131                           q15_t * pSrcB,
    3132                          uint32_t srcBLen,
    3133                          q15_t * pDst);
     2970          q15_t * pSrcA,
     2971          uint32_t srcALen,
     2972          q15_t * pSrcB,
     2973          uint32_t srcBLen,
     2974          q15_t * pDst);
     2975
    31342976
    31352977  /**
    31362978   * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
    3137    * @param[in] *pSrcA points to the first input sequence.
    3138    * @param[in] srcALen length of the first input sequence.
    3139    * @param[in] *pSrcB points to the second input sequence.
    3140    * @param[in] srcBLen length of the second input sequence.
    3141    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3142    * @param[in]  *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    3143    * @param[in]  *pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
    3144    * @return none.
    3145    */
    3146 
     2979   * @param[in]  pSrcA      points to the first input sequence.
     2980   * @param[in]  srcALen    length of the first input sequence.
     2981   * @param[in]  pSrcB      points to the second input sequence.
     2982   * @param[in]  srcBLen    length of the second input sequence.
     2983   * @param[out] pDst       points to the block of output data  Length srcALen+srcBLen-1.
     2984   * @param[in]  pScratch1  points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     2985   * @param[in]  pScratch2  points to scratch buffer of size min(srcALen, srcBLen).
     2986   */
    31472987  void arm_conv_fast_opt_q15(
    31482988  q15_t * pSrcA,
     
    31552995
    31562996
    3157 
    31582997  /**
    31592998   * @brief Convolution of Q31 sequences.
    3160    * @param[in] *pSrcA points to the first input sequence.
    3161    * @param[in] srcALen length of the first input sequence.
    3162    * @param[in] *pSrcB points to the second input sequence.
    3163    * @param[in] srcBLen length of the second input sequence.
    3164    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3165    * @return none.
    3166    */
    3167 
     2999   * @param[in]  pSrcA    points to the first input sequence.
     3000   * @param[in]  srcALen  length of the first input sequence.
     3001   * @param[in]  pSrcB    points to the second input sequence.
     3002   * @param[in]  srcBLen  length of the second input sequence.
     3003   * @param[out] pDst     points to the block of output data  Length srcALen+srcBLen-1.
     3004   */
    31683005  void arm_conv_q31(
    31693006  q31_t * pSrcA,
     
    31733010  q31_t * pDst);
    31743011
     3012
    31753013  /**
    31763014   * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
    3177    * @param[in] *pSrcA points to the first input sequence.
    3178    * @param[in] srcALen length of the first input sequence.
    3179    * @param[in] *pSrcB points to the second input sequence.
    3180    * @param[in] srcBLen length of the second input sequence.
    3181    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3182    * @return none.
    3183    */
    3184 
     3015   * @param[in]  pSrcA    points to the first input sequence.
     3016   * @param[in]  srcALen  length of the first input sequence.
     3017   * @param[in]  pSrcB    points to the second input sequence.
     3018   * @param[in]  srcBLen  length of the second input sequence.
     3019   * @param[out] pDst     points to the block of output data  Length srcALen+srcBLen-1.
     3020   */
    31853021  void arm_conv_fast_q31(
    31863022  q31_t * pSrcA,
     
    31933029    /**
    31943030   * @brief Convolution of Q7 sequences.
    3195    * @param[in] *pSrcA points to the first input sequence.
    3196    * @param[in] srcALen length of the first input sequence.
    3197    * @param[in] *pSrcB points to the second input sequence.
    3198    * @param[in] srcBLen length of the second input sequence.
    3199    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3200    * @param[in]  *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    3201    * @param[in]  *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
    3202    * @return none.
    3203    */
    3204 
     3031   * @param[in]  pSrcA      points to the first input sequence.
     3032   * @param[in]  srcALen    length of the first input sequence.
     3033   * @param[in]  pSrcB      points to the second input sequence.
     3034   * @param[in]  srcBLen    length of the second input sequence.
     3035   * @param[out] pDst       points to the block of output data  Length srcALen+srcBLen-1.
     3036   * @param[in]  pScratch1  points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     3037   * @param[in]  pScratch2  points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
     3038   */
    32053039  void arm_conv_opt_q7(
    32063040  q7_t * pSrcA,
     
    32133047
    32143048
    3215 
    32163049  /**
    32173050   * @brief Convolution of Q7 sequences.
    3218    * @param[in] *pSrcA points to the first input sequence.
    3219    * @param[in] srcALen length of the first input sequence.
    3220    * @param[in] *pSrcB points to the second input sequence.
    3221    * @param[in] srcBLen length of the second input sequence.
    3222    * @param[out] *pDst points to the block of output data  Length srcALen+srcBLen-1.
    3223    * @return none.
    3224    */
    3225 
     3051   * @param[in]  pSrcA    points to the first input sequence.
     3052   * @param[in]  srcALen  length of the first input sequence.
     3053   * @param[in]  pSrcB    points to the second input sequence.
     3054   * @param[in]  srcBLen  length of the second input sequence.
     3055   * @param[out] pDst     points to the block of output data  Length srcALen+srcBLen-1.
     3056   */
    32263057  void arm_conv_q7(
    32273058  q7_t * pSrcA,
     
    32343065  /**
    32353066   * @brief Partial convolution of floating-point sequences.
    3236    * @param[in]       *pSrcA points to the first input sequence.
    3237    * @param[in]       srcALen length of the first input sequence.
    3238    * @param[in]       *pSrcB points to the second input sequence.
    3239    * @param[in]       srcBLen length of the second input sequence.
    3240    * @param[out]      *pDst points to the block of output data
    3241    * @param[in]       firstIndex is the first output sample to start with.
    3242    * @param[in]       numPoints is the number of output points to be computed.
     3067   * @param[in]  pSrcA      points to the first input sequence.
     3068   * @param[in]  srcALen    length of the first input sequence.
     3069   * @param[in]  pSrcB      points to the second input sequence.
     3070   * @param[in]  srcBLen    length of the second input sequence.
     3071   * @param[out] pDst        points to the block of output data
     3072   * @param[in]  firstIndex is the first output sample to start with.
     3073   * @param[in]  numPoints  is the number of output points to be computed.
    32433074   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    32443075   */
    3245 
    32463076  arm_status arm_conv_partial_f32(
    32473077  float32_t * pSrcA,
     
    32533083  uint32_t numPoints);
    32543084
    3255     /**
     3085
     3086  /**
    32563087   * @brief Partial convolution of Q15 sequences.
    3257    * @param[in]       *pSrcA points to the first input sequence.
    3258    * @param[in]       srcALen length of the first input sequence.
    3259    * @param[in]       *pSrcB points to the second input sequence.
    3260    * @param[in]       srcBLen length of the second input sequence.
    3261    * @param[out]      *pDst points to the block of output data
    3262    * @param[in]       firstIndex is the first output sample to start with.
    3263    * @param[in]       numPoints is the number of output points to be computed.
    3264    * @param[in]       * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    3265    * @param[in]       * pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
     3088   * @param[in]  pSrcA      points to the first input sequence.
     3089   * @param[in]  srcALen    length of the first input sequence.
     3090   * @param[in]  pSrcB      points to the second input sequence.
     3091   * @param[in]  srcBLen    length of the second input sequence.
     3092   * @param[out] pDst        points to the block of output data
     3093   * @param[in]  firstIndex is the first output sample to start with.
     3094   * @param[in]  numPoints  is the number of output points to be computed.
     3095   * @param[in]  pScratch1  points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     3096   * @param[in]  pScratch2  points to scratch buffer of size min(srcALen, srcBLen).
    32663097   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    32673098   */
    3268 
    32693099  arm_status arm_conv_partial_opt_q15(
    32703100  q15_t * pSrcA,
     
    32793109
    32803110
    3281 /**
     3111  /**
    32823112   * @brief Partial convolution of Q15 sequences.
    3283    * @param[in]       *pSrcA points to the first input sequence.
    3284    * @param[in]       srcALen length of the first input sequence.
    3285    * @param[in]       *pSrcB points to the second input sequence.
    3286    * @param[in]       srcBLen length of the second input sequence.
    3287    * @param[out]      *pDst points to the block of output data
    3288    * @param[in]       firstIndex is the first output sample to start with.
    3289    * @param[in]       numPoints is the number of output points to be computed.
     3113   * @param[in]  pSrcA      points to the first input sequence.
     3114   * @param[in]  srcALen    length of the first input sequence.
     3115   * @param[in]  pSrcB      points to the second input sequence.
     3116   * @param[in]  srcBLen    length of the second input sequence.
     3117   * @param[out] pDst        points to the block of output data
     3118   * @param[in]  firstIndex is the first output sample to start with.
     3119   * @param[in]  numPoints  is the number of output points to be computed.
    32903120   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    32913121   */
    3292 
    32933122  arm_status arm_conv_partial_q15(
    32943123  q15_t * pSrcA,
     
    33003129  uint32_t numPoints);
    33013130
     3131
    33023132  /**
    33033133   * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
    3304    * @param[in]       *pSrcA points to the first input sequence.
    3305    * @param[in]       srcALen length of the first input sequence.
    3306    * @param[in]       *pSrcB points to the second input sequence.
    3307    * @param[in]       srcBLen length of the second input sequence.
    3308    * @param[out]      *pDst points to the block of output data
    3309    * @param[in]       firstIndex is the first output sample to start with.
    3310    * @param[in]       numPoints is the number of output points to be computed.
     3134   * @param[in]  pSrcA      points to the first input sequence.
     3135   * @param[in]  srcALen    length of the first input sequence.
     3136   * @param[in]  pSrcB      points to the second input sequence.
     3137   * @param[in]  srcBLen    length of the second input sequence.
     3138   * @param[out] pDst        points to the block of output data
     3139   * @param[in]  firstIndex is the first output sample to start with.
     3140   * @param[in]  numPoints  is the number of output points to be computed.
    33113141   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    33123142   */
    3313 
    33143143  arm_status arm_conv_partial_fast_q15(
    3315                                         q15_t * pSrcA,
    3316                                        uint32_t srcALen,
    3317                                         q15_t * pSrcB,
    3318                                        uint32_t srcBLen,
    3319                                        q15_t * pDst,
    3320                                        uint32_t firstIndex,
    3321                                        uint32_t numPoints);
     3144  q15_t * pSrcA,
     3145  uint32_t srcALen,
     3146  q15_t * pSrcB,
     3147  uint32_t srcBLen,
     3148  q15_t * pDst,
     3149  uint32_t firstIndex,
     3150  uint32_t numPoints);
    33223151
    33233152
    33243153  /**
    33253154   * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4
    3326    * @param[in]       *pSrcA points to the first input sequence.
    3327    * @param[in]       srcALen length of the first input sequence.
    3328    * @param[in]       *pSrcB points to the second input sequence.
    3329    * @param[in]       srcBLen length of the second input sequence.
    3330    * @param[out]      *pDst points to the block of output data
    3331    * @param[in]       firstIndex is the first output sample to start with.
    3332    * @param[in]       numPoints is the number of output points to be computed.
    3333    * @param[in]       * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    3334    * @param[in]       * pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
     3155   * @param[in]  pSrcA      points to the first input sequence.
     3156   * @param[in]  srcALen    length of the first input sequence.
     3157   * @param[in]  pSrcB      points to the second input sequence.
     3158   * @param[in]  srcBLen    length of the second input sequence.
     3159   * @param[out] pDst        points to the block of output data
     3160   * @param[in]  firstIndex is the first output sample to start with.
     3161   * @param[in]  numPoints  is the number of output points to be computed.
     3162   * @param[in]  pScratch1  points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     3163   * @param[in]  pScratch2  points to scratch buffer of size min(srcALen, srcBLen).
    33353164   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    33363165   */
    3337 
    33383166  arm_status arm_conv_partial_fast_opt_q15(
    33393167  q15_t * pSrcA,
     
    33503178  /**
    33513179   * @brief Partial convolution of Q31 sequences.
    3352    * @param[in]       *pSrcA points to the first input sequence.
    3353    * @param[in]       srcALen length of the first input sequence.
    3354    * @param[in]       *pSrcB points to the second input sequence.
    3355    * @param[in]       srcBLen length of the second input sequence.
    3356    * @param[out]      *pDst points to the block of output data
    3357    * @param[in]       firstIndex is the first output sample to start with.
    3358    * @param[in]       numPoints is the number of output points to be computed.
     3180   * @param[in]  pSrcA      points to the first input sequence.
     3181   * @param[in]  srcALen    length of the first input sequence.
     3182   * @param[in]  pSrcB      points to the second input sequence.
     3183   * @param[in]  srcBLen    length of the second input sequence.
     3184   * @param[out] pDst        points to the block of output data
     3185   * @param[in]  firstIndex is the first output sample to start with.
     3186   * @param[in]  numPoints  is the number of output points to be computed.
    33593187   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    33603188   */
    3361 
    33623189  arm_status arm_conv_partial_q31(
    33633190  q31_t * pSrcA,
     
    33723199  /**
    33733200   * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
    3374    * @param[in]       *pSrcA points to the first input sequence.
    3375    * @param[in]       srcALen length of the first input sequence.
    3376    * @param[in]       *pSrcB points to the second input sequence.
    3377    * @param[in]       srcBLen length of the second input sequence.
    3378    * @param[out]      *pDst points to the block of output data
    3379    * @param[in]       firstIndex is the first output sample to start with.
    3380    * @param[in]       numPoints is the number of output points to be computed.
     3201   * @param[in]  pSrcA      points to the first input sequence.
     3202   * @param[in]  srcALen    length of the first input sequence.
     3203   * @param[in]  pSrcB      points to the second input sequence.
     3204   * @param[in]  srcBLen    length of the second input sequence.
     3205   * @param[out] pDst        points to the block of output data
     3206   * @param[in]  firstIndex is the first output sample to start with.
     3207   * @param[in]  numPoints  is the number of output points to be computed.
    33813208   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    33823209   */
    3383 
    33843210  arm_status arm_conv_partial_fast_q31(
    33853211  q31_t * pSrcA,
     
    33943220  /**
    33953221   * @brief Partial convolution of Q7 sequences
    3396    * @param[in]       *pSrcA points to the first input sequence.
    3397    * @param[in]       srcALen length of the first input sequence.
    3398    * @param[in]       *pSrcB points to the second input sequence.
    3399    * @param[in]       srcBLen length of the second input sequence.
    3400    * @param[out]      *pDst points to the block of output data
    3401    * @param[in]       firstIndex is the first output sample to start with.
    3402    * @param[in]       numPoints is the number of output points to be computed.
    3403    * @param[in]  *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    3404    * @param[in]  *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
     3222   * @param[in]  pSrcA      points to the first input sequence.
     3223   * @param[in]  srcALen    length of the first input sequence.
     3224   * @param[in]  pSrcB      points to the second input sequence.
     3225   * @param[in]  srcBLen    length of the second input sequence.
     3226   * @param[out] pDst        points to the block of output data
     3227   * @param[in]  firstIndex is the first output sample to start with.
     3228   * @param[in]  numPoints  is the number of output points to be computed.
     3229   * @param[in]  pScratch1  points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     3230   * @param[in]  pScratch2  points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
    34053231   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    34063232   */
    3407 
    34083233  arm_status arm_conv_partial_opt_q7(
    34093234  q7_t * pSrcA,
     
    34203245/**
    34213246   * @brief Partial convolution of Q7 sequences.
    3422    * @param[in]       *pSrcA points to the first input sequence.
    3423    * @param[in]       srcALen length of the first input sequence.
    3424    * @param[in]       *pSrcB points to the second input sequence.
    3425    * @param[in]       srcBLen length of the second input sequence.
    3426    * @param[out]      *pDst points to the block of output data
    3427    * @param[in]       firstIndex is the first output sample to start with.
    3428    * @param[in]       numPoints is the number of output points to be computed.
     3247   * @param[in]  pSrcA      points to the first input sequence.
     3248   * @param[in]  srcALen    length of the first input sequence.
     3249   * @param[in]  pSrcB      points to the second input sequence.
     3250   * @param[in]  srcBLen    length of the second input sequence.
     3251   * @param[out] pDst        points to the block of output data
     3252   * @param[in]  firstIndex is the first output sample to start with.
     3253   * @param[in]  numPoints  is the number of output points to be computed.
    34293254   * @return  Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen+srcBLen-2].
    34303255   */
    3431 
    34323256  arm_status arm_conv_partial_q7(
    34333257  q7_t * pSrcA,
     
    34403264
    34413265
    3442 
    34433266  /**
    34443267   * @brief Instance structure for the Q15 FIR decimator.
    34453268   */
    3446 
    3447   typedef struct
    3448   {
    3449     uint8_t M;                      /**< decimation factor. */
    3450     uint16_t numTaps;               /**< number of coefficients in the filter. */
    3451     q15_t *pCoeffs;                  /**< points to the coefficient array. The array is of length numTaps.*/
    3452     q15_t *pState;                   /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    3453   } arm_fir_decimate_instance_q15;
    3454 
    3455   /**
    3456    * @brief Instance structure for the Q31 FIR decimator.
    3457    */
    3458 
    34593269  typedef struct
    34603270  {
    34613271    uint8_t M;                  /**< decimation factor. */
    34623272    uint16_t numTaps;           /**< number of coefficients in the filter. */
    3463     q31_t *pCoeffs;              /**< points to the coefficient array. The array is of length numTaps.*/
    3464     q31_t *pState;               /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    3465 
     3273    q15_t *pCoeffs;             /**< points to the coefficient array. The array is of length numTaps.*/
     3274    q15_t *pState;              /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
     3275  } arm_fir_decimate_instance_q15;
     3276
     3277  /**
     3278   * @brief Instance structure for the Q31 FIR decimator.
     3279   */
     3280  typedef struct
     3281  {
     3282    uint8_t M;                  /**< decimation factor. */
     3283    uint16_t numTaps;           /**< number of coefficients in the filter. */
     3284    q31_t *pCoeffs;             /**< points to the coefficient array. The array is of length numTaps.*/
     3285    q31_t *pState;              /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    34663286  } arm_fir_decimate_instance_q31;
    34673287
     
    34693289   * @brief Instance structure for the floating-point FIR decimator.
    34703290   */
    3471 
    34723291  typedef struct
    34733292  {
    3474     uint8_t M;                          /**< decimation factor. */
    3475     uint16_t numTaps;                   /**< number of coefficients in the filter. */
    3476     float32_t *pCoeffs;                  /**< points to the coefficient array. The array is of length numTaps.*/
    3477     float32_t *pState;                   /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    3478 
     3293    uint8_t M;                  /**< decimation factor. */
     3294    uint16_t numTaps;           /**< number of coefficients in the filter. */
     3295    float32_t *pCoeffs;         /**< points to the coefficient array. The array is of length numTaps.*/
     3296    float32_t *pState;          /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    34793297  } arm_fir_decimate_instance_f32;
    34803298
    34813299
    3482 
    34833300  /**
    34843301   * @brief Processing function for the floating-point FIR decimator.
    3485    * @param[in] *S points to an instance of the floating-point FIR decimator structure.
    3486    * @param[in] *pSrc points to the block of input data.
    3487    * @param[out] *pDst points to the block of output data
    3488    * @param[in] blockSize number of input samples to process per call.
    3489    * @return none
    3490    */
    3491 
     3302   * @param[in]  S          points to an instance of the floating-point FIR decimator structure.
     3303   * @param[in]  pSrc       points to the block of input data.
     3304   * @param[out] pDst       points to the block of output data
     3305   * @param[in]  blockSize  number of input samples to process per call.
     3306   */
    34923307  void arm_fir_decimate_f32(
    34933308  const arm_fir_decimate_instance_f32 * S,
     
    34993314  /**
    35003315   * @brief  Initialization function for the floating-point FIR decimator.
    3501    * @param[in,out] *S points to an instance of the floating-point FIR decimator structure.
    3502    * @param[in] numTaps  number of coefficients in the filter.
    3503    * @param[in] M  decimation factor.
    3504    * @param[in] *pCoeffs points to the filter coefficients.
    3505    * @param[in] *pState points to the state buffer.
    3506    * @param[in] blockSize number of input samples to process per call.
     3316   * @param[in,out] S          points to an instance of the floating-point FIR decimator structure.
     3317   * @param[in]     numTaps    number of coefficients in the filter.
     3318   * @param[in]     M          decimation factor.
     3319   * @param[in]     pCoeffs    points to the filter coefficients.
     3320   * @param[in]     pState    points to the state buffer.
     3321   * @param[in]     blockSize number of input samples to process per call.
    35073322   * @return    The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
    35083323   * <code>blockSize</code> is not a multiple of <code>M</code>.
    35093324   */
    3510 
    35113325  arm_status arm_fir_decimate_init_f32(
    35123326  arm_fir_decimate_instance_f32 * S,
     
    35173331  uint32_t blockSize);
    35183332
     3333
    35193334  /**
    35203335   * @brief Processing function for the Q15 FIR decimator.
    3521    * @param[in] *S points to an instance of the Q15 FIR decimator structure.
    3522    * @param[in] *pSrc points to the block of input data.
    3523    * @param[out] *pDst points to the block of output data
    3524    * @param[in] blockSize number of input samples to process per call.
    3525    * @return none
    3526    */
    3527 
     3336   * @param[in]  S          points to an instance of the Q15 FIR decimator structure.
     3337   * @param[in]  pSrc       points to the block of input data.
     3338   * @param[out] pDst       points to the block of output data
     3339   * @param[in]  blockSize  number of input samples to process per call.
     3340   */
    35283341  void arm_fir_decimate_q15(
    35293342  const arm_fir_decimate_instance_q15 * S,
     
    35323345  uint32_t blockSize);
    35333346
     3347
    35343348  /**
    35353349   * @brief Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
    3536    * @param[in] *S points to an instance of the Q15 FIR decimator structure.
    3537    * @param[in] *pSrc points to the block of input data.
    3538    * @param[out] *pDst points to the block of output data
    3539    * @param[in] blockSize number of input samples to process per call.
    3540    * @return none
    3541    */
    3542 
     3350   * @param[in]  S          points to an instance of the Q15 FIR decimator structure.
     3351   * @param[in]  pSrc       points to the block of input data.
     3352   * @param[out] pDst       points to the block of output data
     3353   * @param[in]  blockSize  number of input samples to process per call.
     3354   */
    35433355  void arm_fir_decimate_fast_q15(
    35443356  const arm_fir_decimate_instance_q15 * S,
     
    35483360
    35493361
    3550 
    35513362  /**
    35523363   * @brief  Initialization function for the Q15 FIR decimator.
    3553    * @param[in,out] *S points to an instance of the Q15 FIR decimator structure.
    3554    * @param[in] numTaps  number of coefficients in the filter.
    3555    * @param[in] M  decimation factor.
    3556    * @param[in] *pCoeffs points to the filter coefficients.
    3557    * @param[in] *pState points to the state buffer.
    3558    * @param[in] blockSize number of input samples to process per call.
     3364   * @param[in,out] S          points to an instance of the Q15 FIR decimator structure.
     3365   * @param[in]     numTaps    number of coefficients in the filter.
     3366   * @param[in]     M          decimation factor.
     3367   * @param[in]     pCoeffs    points to the filter coefficients.
     3368   * @param[in]     pState    points to the state buffer.
     3369   * @param[in]     blockSize number of input samples to process per call.
    35593370   * @return    The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
    35603371   * <code>blockSize</code> is not a multiple of <code>M</code>.
    35613372   */
    3562 
    35633373  arm_status arm_fir_decimate_init_q15(
    35643374  arm_fir_decimate_instance_q15 * S,
     
    35693379  uint32_t blockSize);
    35703380
     3381
    35713382  /**
    35723383   * @brief Processing function for the Q31 FIR decimator.
    3573    * @param[in] *S points to an instance of the Q31 FIR decimator structure.
    3574    * @param[in] *pSrc points to the block of input data.
    3575    * @param[out] *pDst points to the block of output data
     3384   * @param[in]  S    points to an instance of the Q31 FIR decimator structure.
     3385   * @param[in]  pSrc points to the block of input data.
     3386   * @param[out] pDst points to the block of output data
    35763387   * @param[in] blockSize number of input samples to process per call.
    3577    * @return none
    3578    */
    3579 
     3388   */
    35803389  void arm_fir_decimate_q31(
    35813390  const arm_fir_decimate_instance_q31 * S,
     
    35863395  /**
    35873396   * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
    3588    * @param[in] *S points to an instance of the Q31 FIR decimator structure.
    3589    * @param[in] *pSrc points to the block of input data.
    3590    * @param[out] *pDst points to the block of output data
    3591    * @param[in] blockSize number of input samples to process per call.
    3592    * @return none
    3593    */
    3594 
     3397   * @param[in]  S          points to an instance of the Q31 FIR decimator structure.
     3398   * @param[in]  pSrc       points to the block of input data.
     3399   * @param[out] pDst       points to the block of output data
     3400   * @param[in]  blockSize  number of input samples to process per call.
     3401   */
    35953402  void arm_fir_decimate_fast_q31(
    35963403  arm_fir_decimate_instance_q31 * S,
     
    36023409  /**
    36033410   * @brief  Initialization function for the Q31 FIR decimator.
    3604    * @param[in,out] *S points to an instance of the Q31 FIR decimator structure.
    3605    * @param[in] numTaps  number of coefficients in the filter.
    3606    * @param[in] M  decimation factor.
    3607    * @param[in] *pCoeffs points to the filter coefficients.
    3608    * @param[in] *pState points to the state buffer.
    3609    * @param[in] blockSize number of input samples to process per call.
     3411   * @param[in,out] S          points to an instance of the Q31 FIR decimator structure.
     3412   * @param[in]     numTaps    number of coefficients in the filter.
     3413   * @param[in]     M          decimation factor.
     3414   * @param[in]     pCoeffs    points to the filter coefficients.
     3415   * @param[in]     pState    points to the state buffer.
     3416   * @param[in]     blockSize number of input samples to process per call.
    36103417   * @return    The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
    36113418   * <code>blockSize</code> is not a multiple of <code>M</code>.
    36123419   */
    3613 
    36143420  arm_status arm_fir_decimate_init_q31(
    36153421  arm_fir_decimate_instance_q31 * S,
     
    36213427
    36223428
    3623 
    36243429  /**
    36253430   * @brief Instance structure for the Q15 FIR interpolator.
    36263431   */
    3627 
    36283432  typedef struct
    36293433  {
     
    36373441   * @brief Instance structure for the Q31 FIR interpolator.
    36383442   */
    3639 
    36403443  typedef struct
    36413444  {
    36423445    uint8_t L;                      /**< upsample factor. */
    36433446    uint16_t phaseLength;           /**< length of each polyphase filter component. */
    3644     q31_t *pCoeffs;                  /**< points to the coefficient array. The array is of length L*phaseLength. */
    3645     q31_t *pState;                   /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */
     3447    q31_t *pCoeffs;                 /**< points to the coefficient array. The array is of length L*phaseLength. */
     3448    q31_t *pState;                  /**< points to the state variable array. The array is of length blockSize+phaseLength-1. */
    36463449  } arm_fir_interpolate_instance_q31;
    36473450
     
    36493452   * @brief Instance structure for the floating-point FIR interpolator.
    36503453   */
    3651 
    36523454  typedef struct
    36533455  {
    36543456    uint8_t L;                     /**< upsample factor. */
    36553457    uint16_t phaseLength;          /**< length of each polyphase filter component. */
    3656     float32_t *pCoeffs;             /**< points to the coefficient array. The array is of length L*phaseLength. */
    3657     float32_t *pState;              /**< points to the state variable array. The array is of length phaseLength+numTaps-1. */
     3458    float32_t *pCoeffs;            /**< points to the coefficient array. The array is of length L*phaseLength. */
     3459    float32_t *pState;             /**< points to the state variable array. The array is of length phaseLength+numTaps-1. */
    36583460  } arm_fir_interpolate_instance_f32;
    36593461
     
    36613463  /**
    36623464   * @brief Processing function for the Q15 FIR interpolator.
    3663    * @param[in] *S        points to an instance of the Q15 FIR interpolator structure.
    3664    * @param[in] *pSrc     points to the block of input data.
    3665    * @param[out] *pDst    points to the block of output data.
    3666    * @param[in] blockSize number of input samples to process per call.
    3667    * @return none.
    3668    */
    3669 
     3465   * @param[in]  S          points to an instance of the Q15 FIR interpolator structure.
     3466   * @param[in]  pSrc       points to the block of input data.
     3467   * @param[out] pDst       points to the block of output data.
     3468   * @param[in]  blockSize  number of input samples to process per call.
     3469   */
    36703470  void arm_fir_interpolate_q15(
    36713471  const arm_fir_interpolate_instance_q15 * S,
     
    36773477  /**
    36783478   * @brief  Initialization function for the Q15 FIR interpolator.
    3679    * @param[in,out] *S        points to an instance of the Q15 FIR interpolator structure.
    3680    * @param[in]     L         upsample factor.
    3681    * @param[in]     numTaps   number of filter coefficients in the filter.
    3682    * @param[in]     *pCoeffs  points to the filter coefficient buffer.
    3683    * @param[in]     *pState   points to the state buffer.
    3684    * @param[in]     blockSize number of input samples to process per call.
     3479   * @param[in,out]         points to an instance of the Q15 FIR interpolator structure.
     3480   * @param[in]     L          upsample factor.
     3481   * @param[in]     numTaps    number of filter coefficients in the filter.
     3482   * @param[in]     pCoeffs    points to the filter coefficient buffer.
     3483   * @param[in]     pState     points to the state buffer.
     3484   * @param[in]     blockSize  number of input samples to process per call.
    36853485   * @return        The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
    36863486   * the filter length <code>numTaps</code> is not a multiple of the interpolation factor <code>L</code>.
    36873487   */
    3688 
    36893488  arm_status arm_fir_interpolate_init_q15(
    36903489  arm_fir_interpolate_instance_q15 * S,
     
    36953494  uint32_t blockSize);
    36963495
     3496
    36973497  /**
    36983498   * @brief Processing function for the Q31 FIR interpolator.
    3699    * @param[in] *S        points to an instance of the Q15 FIR interpolator structure.
    3700    * @param[in] *pSrc     points to the block of input data.
    3701    * @param[out] *pDst    points to the block of output data.
    3702    * @param[in] blockSize number of input samples to process per call.
    3703    * @return none.
    3704    */
    3705 
     3499   * @param[in]  S          points to an instance of the Q15 FIR interpolator structure.
     3500   * @param[in]  pSrc       points to the block of input data.
     3501   * @param[out] pDst       points to the block of output data.
     3502   * @param[in]  blockSize  number of input samples to process per call.
     3503   */
    37063504  void arm_fir_interpolate_q31(
    37073505  const arm_fir_interpolate_instance_q31 * S,
     
    37103508  uint32_t blockSize);
    37113509
     3510
    37123511  /**
    37133512   * @brief  Initialization function for the Q31 FIR interpolator.
    3714    * @param[in,out] *S        points to an instance of the Q31 FIR interpolator structure.
    3715    * @param[in]     L         upsample factor.
    3716    * @param[in]     numTaps   number of filter coefficients in the filter.
    3717    * @param[in]     *pCoeffs  points to the filter coefficient buffer.
    3718    * @param[in]     *pState   points to the state buffer.
    3719    * @param[in]     blockSize number of input samples to process per call.
     3513   * @param[in,out]         points to an instance of the Q31 FIR interpolator structure.
     3514   * @param[in]     L          upsample factor.
     3515   * @param[in]     numTaps    number of filter coefficients in the filter.
     3516   * @param[in]     pCoeffs    points to the filter coefficient buffer.
     3517   * @param[in]     pState     points to the state buffer.
     3518   * @param[in]     blockSize  number of input samples to process per call.
    37203519   * @return        The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
    37213520   * the filter length <code>numTaps</code> is not a multiple of the interpolation factor <code>L</code>.
    37223521   */
    3723 
    37243522  arm_status arm_fir_interpolate_init_q31(
    37253523  arm_fir_interpolate_instance_q31 * S,
     
    37333531  /**
    37343532   * @brief Processing function for the floating-point FIR interpolator.
    3735    * @param[in] *S        points to an instance of the floating-point FIR interpolator structure.
    3736    * @param[in] *pSrc     points to the block of input data.
    3737    * @param[out] *pDst    points to the block of output data.
    3738    * @param[in] blockSize number of input samples to process per call.
    3739    * @return none.
    3740    */
    3741 
     3533   * @param[in]  S          points to an instance of the floating-point FIR interpolator structure.
     3534   * @param[in]  pSrc       points to the block of input data.
     3535   * @param[out] pDst       points to the block of output data.
     3536   * @param[in]  blockSize  number of input samples to process per call.
     3537   */
    37423538  void arm_fir_interpolate_f32(
    37433539  const arm_fir_interpolate_instance_f32 * S,
     
    37463542  uint32_t blockSize);
    37473543
     3544
    37483545  /**
    37493546   * @brief  Initialization function for the floating-point FIR interpolator.
    3750    * @param[in,out] *S        points to an instance of the floating-point FIR interpolator structure.
    3751    * @param[in]     L         upsample factor.
    3752    * @param[in]     numTaps   number of filter coefficients in the filter.
    3753    * @param[in]     *pCoeffs  points to the filter coefficient buffer.
    3754    * @param[in]     *pState   points to the state buffer.
    3755    * @param[in]     blockSize number of input samples to process per call.
     3547   * @param[in,out]         points to an instance of the floating-point FIR interpolator structure.
     3548   * @param[in]     L          upsample factor.
     3549   * @param[in]     numTaps    number of filter coefficients in the filter.
     3550   * @param[in]     pCoeffs    points to the filter coefficient buffer.
     3551   * @param[in]     pState     points to the state buffer.
     3552   * @param[in]     blockSize  number of input samples to process per call.
    37563553   * @return        The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_LENGTH_ERROR if
    37573554   * the filter length <code>numTaps</code> is not a multiple of the interpolation factor <code>L</code>.
    37583555   */
    3759 
    37603556  arm_status arm_fir_interpolate_init_f32(
    37613557  arm_fir_interpolate_instance_f32 * S,
     
    37663562  uint32_t blockSize);
    37673563
     3564
    37683565  /**
    37693566   * @brief Instance structure for the high precision Q31 Biquad cascade filter.
    37703567   */
    3771 
    37723568  typedef struct
    37733569  {
     
    37763572    q31_t *pCoeffs;          /**< points to the array of coefficients.  The array is of length 5*numStages. */
    37773573    uint8_t postShift;       /**< additional shift, in bits, applied to each output sample. */
    3778 
    37793574  } arm_biquad_cas_df1_32x64_ins_q31;
    37803575
    37813576
    37823577  /**
    3783    * @param[in]  *S        points to an instance of the high precision Q31 Biquad cascade filter structure.
    3784    * @param[in]  *pSrc     points to the block of input data.
    3785    * @param[out] *pDst     points to the block of output data
    3786    * @param[in]  blockSize number of samples to process.
    3787    * @return none.
    3788    */
    3789 
     3578   * @param[in]  S          points to an instance of the high precision Q31 Biquad cascade filter structure.
     3579   * @param[in]  pSrc       points to the block of input data.
     3580   * @param[out] pDst       points to the block of output data
     3581   * @param[in]  blockSize  number of samples to process.
     3582   */
    37903583  void arm_biquad_cas_df1_32x64_q31(
    37913584  const arm_biquad_cas_df1_32x64_ins_q31 * S,
     
    37963589
    37973590  /**
    3798    * @param[in,out] *S           points to an instance of the high precision Q31 Biquad cascade filter structure.
    3799    * @param[in]     numStages    number of 2nd order stages in the filter.
    3800    * @param[in]     *pCoeffs     points to the filter coefficients.
    3801    * @param[in]     *pState      points to the state buffer.
    3802    * @param[in]     postShift    shift to be applied to the output. Varies according to the coefficients format
    3803    * @return        none
    3804    */
    3805 
     3591   * @param[in,out] S          points to an instance of the high precision Q31 Biquad cascade filter structure.
     3592   * @param[in]     numStages  number of 2nd order stages in the filter.
     3593   * @param[in]     pCoeffs    points to the filter coefficients.
     3594   * @param[in]     pState     points to the state buffer.
     3595   * @param[in]     postShift  shift to be applied to the output. Varies according to the coefficients format
     3596   */
    38063597  void arm_biquad_cas_df1_32x64_init_q31(
    38073598  arm_biquad_cas_df1_32x64_ins_q31 * S,
     
    38123603
    38133604
    3814 
    38153605  /**
    38163606   * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter.
    38173607   */
    3818 
    38193608  typedef struct
    38203609  {
     
    38243613  } arm_biquad_cascade_df2T_instance_f32;
    38253614
    3826 
    3827 
    38283615  /**
    38293616   * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter.
    38303617   */
    3831 
    38323618  typedef struct
    38333619  {
     
    38373623  } arm_biquad_cascade_stereo_df2T_instance_f32;
    38383624
    3839 
    3840 
    38413625  /**
    38423626   * @brief Instance structure for the floating-point transposed direct form II Biquad cascade filter.
    38433627   */
    3844 
    38453628  typedef struct
    38463629  {
     
    38533636  /**
    38543637   * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter.
    3855    * @param[in]  *S        points to an instance of the filter data structure.
    3856    * @param[in]  *pSrc     points to the block of input data.
    3857    * @param[out] *pDst     points to the block of output data
    3858    * @param[in]  blockSize number of samples to process.
    3859    * @return none.
    3860    */
    3861 
     3638   * @param[in]  S          points to an instance of the filter data structure.
     3639   * @param[in]  pSrc       points to the block of input data.
     3640   * @param[out] pDst       points to the block of output data
     3641   * @param[in]  blockSize  number of samples to process.
     3642   */
    38623643  void arm_biquad_cascade_df2T_f32(
    38633644  const arm_biquad_cascade_df2T_instance_f32 * S,
     
    38693650  /**
    38703651   * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter. 2 channels
    3871    * @param[in]  *S        points to an instance of the filter data structure.
    3872    * @param[in]  *pSrc     points to the block of input data.
    3873    * @param[out] *pDst     points to the block of output data
    3874    * @param[in]  blockSize number of samples to process.
    3875    * @return none.
    3876    */
    3877 
     3652   * @param[in]  S          points to an instance of the filter data structure.
     3653   * @param[in]  pSrc       points to the block of input data.
     3654   * @param[out] pDst       points to the block of output data
     3655   * @param[in]  blockSize  number of samples to process.
     3656   */
    38783657  void arm_biquad_cascade_stereo_df2T_f32(
    38793658  const arm_biquad_cascade_stereo_df2T_instance_f32 * S,
     
    38823661  uint32_t blockSize);
    38833662
     3663
    38843664  /**
    38853665   * @brief Processing function for the floating-point transposed direct form II Biquad cascade filter.
    3886    * @param[in]  *S        points to an instance of the filter data structure.
    3887    * @param[in]  *pSrc     points to the block of input data.
    3888    * @param[out] *pDst     points to the block of output data
    3889    * @param[in]  blockSize number of samples to process.
    3890    * @return none.
    3891    */
    3892 
     3666   * @param[in]  S          points to an instance of the filter data structure.
     3667   * @param[in]  pSrc       points to the block of input data.
     3668   * @param[out] pDst       points to the block of output data
     3669   * @param[in]  blockSize  number of samples to process.
     3670   */
    38933671  void arm_biquad_cascade_df2T_f64(
    38943672  const arm_biquad_cascade_df2T_instance_f64 * S,
     
    39003678  /**
    39013679   * @brief  Initialization function for the floating-point transposed direct form II Biquad cascade filter.
    3902    * @param[in,out] *S           points to an instance of the filter data structure.
    3903    * @param[in]     numStages    number of 2nd order stages in the filter.
    3904    * @param[in]     *pCoeffs     points to the filter coefficients.
    3905    * @param[in]     *pState      points to the state buffer.
    3906    * @return        none
    3907    */
    3908 
     3680   * @param[in,out] S          points to an instance of the filter data structure.
     3681   * @param[in]     numStages  number of 2nd order stages in the filter.
     3682   * @param[in]     pCoeffs    points to the filter coefficients.
     3683   * @param[in]     pState     points to the state buffer.
     3684   */
    39093685  void arm_biquad_cascade_df2T_init_f32(
    39103686  arm_biquad_cascade_df2T_instance_f32 * S,
     
    39163692  /**
    39173693   * @brief  Initialization function for the floating-point transposed direct form II Biquad cascade filter.
    3918    * @param[in,out] *S           points to an instance of the filter data structure.
    3919    * @param[in]     numStages    number of 2nd order stages in the filter.
    3920    * @param[in]     *pCoeffs     points to the filter coefficients.
    3921    * @param[in]     *pState      points to the state buffer.
    3922    * @return        none
    3923    */
    3924 
     3694   * @param[in,out] S          points to an instance of the filter data structure.
     3695   * @param[in]     numStages  number of 2nd order stages in the filter.
     3696   * @param[in]     pCoeffs    points to the filter coefficients.
     3697   * @param[in]     pState     points to the state buffer.
     3698   */
    39253699  void arm_biquad_cascade_stereo_df2T_init_f32(
    39263700  arm_biquad_cascade_stereo_df2T_instance_f32 * S,
     
    39323706  /**
    39333707   * @brief  Initialization function for the floating-point transposed direct form II Biquad cascade filter.
    3934    * @param[in,out] *S           points to an instance of the filter data structure.
    3935    * @param[in]     numStages    number of 2nd order stages in the filter.
    3936    * @param[in]     *pCoeffs     points to the filter coefficients.
    3937    * @param[in]     *pState      points to the state buffer.
    3938    * @return        none
    3939    */
    3940 
     3708   * @param[in,out] S          points to an instance of the filter data structure.
     3709   * @param[in]     numStages  number of 2nd order stages in the filter.
     3710   * @param[in]     pCoeffs    points to the filter coefficients.
     3711   * @param[in]     pState     points to the state buffer.
     3712   */
    39413713  void arm_biquad_cascade_df2T_init_f64(
    39423714  arm_biquad_cascade_df2T_instance_f64 * S,
     
    39463718
    39473719
    3948 
    39493720  /**
    39503721   * @brief Instance structure for the Q15 FIR lattice filter.
    39513722   */
    3952 
    39533723  typedef struct
    39543724  {
    3955     uint16_t numStages;                          /**< number of filter stages. */
    3956     q15_t *pState;                               /**< points to the state variable array. The array is of length numStages. */
    3957     q15_t *pCoeffs;                              /**< points to the coefficient array. The array is of length numStages. */
     3725    uint16_t numStages;                  /**< number of filter stages. */
     3726    q15_t *pState;                       /**< points to the state variable array. The array is of length numStages. */
     3727    q15_t *pCoeffs;                      /**< points to the coefficient array. The array is of length numStages. */
    39583728  } arm_fir_lattice_instance_q15;
    39593729
     
    39613731   * @brief Instance structure for the Q31 FIR lattice filter.
    39623732   */
    3963 
    39643733  typedef struct
    39653734  {
    3966     uint16_t numStages;                          /**< number of filter stages. */
    3967     q31_t *pState;                               /**< points to the state variable array. The array is of length numStages. */
    3968     q31_t *pCoeffs;                              /**< points to the coefficient array. The array is of length numStages. */
     3735    uint16_t numStages;                  /**< number of filter stages. */
     3736    q31_t *pState;                       /**< points to the state variable array. The array is of length numStages. */
     3737    q31_t *pCoeffs;                      /**< points to the coefficient array. The array is of length numStages. */
    39693738  } arm_fir_lattice_instance_q31;
    39703739
     
    39723741   * @brief Instance structure for the floating-point FIR lattice filter.
    39733742   */
    3974 
    39753743  typedef struct
    39763744  {
     
    39803748  } arm_fir_lattice_instance_f32;
    39813749
     3750
    39823751  /**
    39833752   * @brief Initialization function for the Q15 FIR lattice filter.
    3984    * @param[in] *S points to an instance of the Q15 FIR lattice structure.
     3753   * @param[in] S          points to an instance of the Q15 FIR lattice structure.
    39853754   * @param[in] numStages  number of filter stages.
    3986    * @param[in] *pCoeffs points to the coefficient buffer.  The array is of length numStages.
    3987    * @param[in] *pState points to the state buffer.  The array is of length numStages.
    3988    * @return none.
    3989    */
    3990 
     3755   * @param[in] pCoeffs    points to the coefficient buffer.  The array is of length numStages.
     3756   * @param[in] pState     points to the state buffer.  The array is of length numStages.
     3757   */
    39913758  void arm_fir_lattice_init_q15(
    39923759  arm_fir_lattice_instance_q15 * S,
     
    39983765  /**
    39993766   * @brief Processing function for the Q15 FIR lattice filter.
    4000    * @param[in] *S points to an instance of the Q15 FIR lattice structure.
    4001    * @param[in] *pSrc points to the block of input data.
    4002    * @param[out] *pDst points to the block of output data.
    4003    * @param[in] blockSize number of samples to process.
    4004    * @return none.
     3767   * @param[in]  S          points to an instance of the Q15 FIR lattice structure.
     3768   * @param[in]  pSrc       points to the block of input data.
     3769   * @param[out] pDst       points to the block of output data.
     3770   * @param[in]  blockSize  number of samples to process.
    40053771   */
    40063772  void arm_fir_lattice_q15(
     
    40103776  uint32_t blockSize);
    40113777
     3778
    40123779  /**
    40133780   * @brief Initialization function for the Q31 FIR lattice filter.
    4014    * @param[in] *S points to an instance of the Q31 FIR lattice structure.
     3781   * @param[in] S          points to an instance of the Q31 FIR lattice structure.
    40153782   * @param[in] numStages  number of filter stages.
    4016    * @param[in] *pCoeffs points to the coefficient buffer.  The array is of length numStages.
    4017    * @param[in] *pState points to the state buffer.   The array is of length numStages.
    4018    * @return none.
    4019    */
    4020 
     3783   * @param[in] pCoeffs    points to the coefficient buffer.  The array is of length numStages.
     3784   * @param[in] pState     points to the state buffer.   The array is of length numStages.
     3785   */
    40213786  void arm_fir_lattice_init_q31(
    40223787  arm_fir_lattice_instance_q31 * S,
     
    40283793  /**
    40293794   * @brief Processing function for the Q31 FIR lattice filter.
    4030    * @param[in]  *S        points to an instance of the Q31 FIR lattice structure.
    4031    * @param[in]  *pSrc     points to the block of input data.
    4032    * @param[out] *pDst     points to the block of output data
    4033    * @param[in]  blockSize number of samples to process.
    4034    * @return none.
    4035    */
    4036 
     3795   * @param[in]  S          points to an instance of the Q31 FIR lattice structure.
     3796   * @param[in]  pSrc       points to the block of input data.
     3797   * @param[out] pDst       points to the block of output data
     3798   * @param[in]  blockSize  number of samples to process.
     3799   */
    40373800  void arm_fir_lattice_q31(
    40383801  const arm_fir_lattice_instance_q31 * S,
     
    40413804  uint32_t blockSize);
    40423805
     3806
    40433807/**
    40443808 * @brief Initialization function for the floating-point FIR lattice filter.
    4045  * @param[in] *S points to an instance of the floating-point FIR lattice structure.
     3809 * @param[in] S          points to an instance of the floating-point FIR lattice structure.
    40463810 * @param[in] numStages  number of filter stages.
    4047  * @param[in] *pCoeffs points to the coefficient buffer.  The array is of length numStages.
    4048  * @param[in] *pState points to the state buffer.  The array is of length numStages.
    4049  * @return none.
     3811 * @param[in] pCoeffs    points to the coefficient buffer.  The array is of length numStages.
     3812 * @param[in] pState     points to the state buffer.  The array is of length numStages.
    40503813 */
    4051 
    40523814  void arm_fir_lattice_init_f32(
    40533815  arm_fir_lattice_instance_f32 * S,
     
    40563818  float32_t * pState);
    40573819
     3820
    40583821  /**
    40593822   * @brief Processing function for the floating-point FIR lattice filter.
    4060    * @param[in]  *S        points to an instance of the floating-point FIR lattice structure.
    4061    * @param[in]  *pSrc     points to the block of input data.
    4062    * @param[out] *pDst     points to the block of output data
    4063    * @param[in]  blockSize number of samples to process.
    4064    * @return none.
    4065    */
    4066 
     3823   * @param[in]  S          points to an instance of the floating-point FIR lattice structure.
     3824   * @param[in]  pSrc       points to the block of input data.
     3825   * @param[out] pDst       points to the block of output data
     3826   * @param[in]  blockSize  number of samples to process.
     3827   */
    40673828  void arm_fir_lattice_f32(
    40683829  const arm_fir_lattice_instance_f32 * S,
     
    40713832  uint32_t blockSize);
    40723833
     3834
    40733835  /**
    40743836   * @brief Instance structure for the Q15 IIR lattice filter.
     
    40763838  typedef struct
    40773839  {
    4078     uint16_t numStages;                         /**< number of stages in the filter. */
    4079     q15_t *pState;                              /**< points to the state variable array. The array is of length numStages+blockSize. */
    4080     q15_t *pkCoeffs;                            /**< points to the reflection coefficient array. The array is of length numStages. */
    4081     q15_t *pvCoeffs;                            /**< points to the ladder coefficient array. The array is of length numStages+1. */
     3840    uint16_t numStages;                  /**< number of stages in the filter. */
     3841    q15_t *pState;                       /**< points to the state variable array. The array is of length numStages+blockSize. */
     3842    q15_t *pkCoeffs;                     /**< points to the reflection coefficient array. The array is of length numStages. */
     3843    q15_t *pvCoeffs;                     /**< points to the ladder coefficient array. The array is of length numStages+1. */
    40823844  } arm_iir_lattice_instance_q15;
    40833845
     
    40873849  typedef struct
    40883850  {
    4089     uint16_t numStages;                         /**< number of stages in the filter. */
    4090     q31_t *pState;                              /**< points to the state variable array. The array is of length numStages+blockSize. */
    4091     q31_t *pkCoeffs;                            /**< points to the reflection coefficient array. The array is of length numStages. */
    4092     q31_t *pvCoeffs;                            /**< points to the ladder coefficient array. The array is of length numStages+1. */
     3851    uint16_t numStages;                  /**< number of stages in the filter. */
     3852    q31_t *pState;                       /**< points to the state variable array. The array is of length numStages+blockSize. */
     3853    q31_t *pkCoeffs;                     /**< points to the reflection coefficient array. The array is of length numStages. */
     3854    q31_t *pvCoeffs;                     /**< points to the ladder coefficient array. The array is of length numStages+1. */
    40933855  } arm_iir_lattice_instance_q31;
    40943856
     
    40983860  typedef struct
    40993861  {
    4100     uint16_t numStages;                         /**< number of stages in the filter. */
    4101     float32_t *pState;                          /**< points to the state variable array. The array is of length numStages+blockSize. */
    4102     float32_t *pkCoeffs;                        /**< points to the reflection coefficient array. The array is of length numStages. */
    4103     float32_t *pvCoeffs;                        /**< points to the ladder coefficient array. The array is of length numStages+1. */
     3862    uint16_t numStages;                  /**< number of stages in the filter. */
     3863    float32_t *pState;                   /**< points to the state variable array. The array is of length numStages+blockSize. */
     3864    float32_t *pkCoeffs;                 /**< points to the reflection coefficient array. The array is of length numStages. */
     3865    float32_t *pvCoeffs;                 /**< points to the ladder coefficient array. The array is of length numStages+1. */
    41043866  } arm_iir_lattice_instance_f32;
    41053867
     3868
    41063869  /**
    41073870   * @brief Processing function for the floating-point IIR lattice filter.
    4108    * @param[in] *S points to an instance of the floating-point IIR lattice structure.
    4109    * @param[in] *pSrc points to the block of input data.
    4110    * @param[out] *pDst points to the block of output data.
    4111    * @param[in] blockSize number of samples to process.
    4112    * @return none.
    4113    */
    4114 
     3871   * @param[in]  S          points to an instance of the floating-point IIR lattice structure.
     3872   * @param[in]  pSrc       points to the block of input data.
     3873   * @param[out] pDst       points to the block of output data.
     3874   * @param[in]  blockSize  number of samples to process.
     3875   */
    41153876  void arm_iir_lattice_f32(
    41163877  const arm_iir_lattice_instance_f32 * S,
     
    41193880  uint32_t blockSize);
    41203881
     3882
    41213883  /**
    41223884   * @brief Initialization function for the floating-point IIR lattice filter.
    4123    * @param[in] *S points to an instance of the floating-point IIR lattice structure.
    4124    * @param[in] numStages number of stages in the filter.
    4125    * @param[in] *pkCoeffs points to the reflection coefficient buffer.  The array is of length numStages.
    4126    * @param[in] *pvCoeffs points to the ladder coefficient buffer.  The array is of length numStages+1.
    4127    * @param[in] *pState points to the state buffer.  The array is of length numStages+blockSize-1.
    4128    * @param[in] blockSize number of samples to process.
    4129    * @return none.
    4130    */
    4131 
     3885   * @param[in] S          points to an instance of the floating-point IIR lattice structure.
     3886   * @param[in] numStages  number of stages in the filter.
     3887   * @param[in] pkCoeffs   points to the reflection coefficient buffer.  The array is of length numStages.
     3888   * @param[in] pvCoeffs   points to the ladder coefficient buffer.  The array is of length numStages+1.
     3889   * @param[in] pState     points to the state buffer.  The array is of length numStages+blockSize-1.
     3890   * @param[in] blockSize  number of samples to process.
     3891   */
    41323892  void arm_iir_lattice_init_f32(
    41333893  arm_iir_lattice_instance_f32 * S,
     
    41413901  /**
    41423902   * @brief Processing function for the Q31 IIR lattice filter.
    4143    * @param[in] *S points to an instance of the Q31 IIR lattice structure.
    4144    * @param[in] *pSrc points to the block of input data.
    4145    * @param[out] *pDst points to the block of output data.
    4146    * @param[in] blockSize number of samples to process.
    4147    * @return none.
    4148    */
    4149 
     3903   * @param[in]  S          points to an instance of the Q31 IIR lattice structure.
     3904   * @param[in]  pSrc       points to the block of input data.
     3905   * @param[out] pDst       points to the block of output data.
     3906   * @param[in]  blockSize  number of samples to process.
     3907   */
    41503908  void arm_iir_lattice_q31(
    41513909  const arm_iir_lattice_instance_q31 * S,
     
    41573915  /**
    41583916   * @brief Initialization function for the Q31 IIR lattice filter.
    4159    * @param[in] *S points to an instance of the Q31 IIR lattice structure.
    4160    * @param[in] numStages number of stages in the filter.
    4161    * @param[in] *pkCoeffs points to the reflection coefficient buffer.  The array is of length numStages.
    4162    * @param[in] *pvCoeffs points to the ladder coefficient buffer.  The array is of length numStages+1.
    4163    * @param[in] *pState points to the state buffer.  The array is of length numStages+blockSize.
    4164    * @param[in] blockSize number of samples to process.
    4165    * @return none.
    4166    */
    4167 
     3917   * @param[in] S          points to an instance of the Q31 IIR lattice structure.
     3918   * @param[in] numStages  number of stages in the filter.
     3919   * @param[in] pkCoeffs   points to the reflection coefficient buffer.  The array is of length numStages.
     3920   * @param[in] pvCoeffs   points to the ladder coefficient buffer.  The array is of length numStages+1.
     3921   * @param[in] pState     points to the state buffer.  The array is of length numStages+blockSize.
     3922   * @param[in] blockSize  number of samples to process.
     3923   */
    41683924  void arm_iir_lattice_init_q31(
    41693925  arm_iir_lattice_instance_q31 * S,
     
    41773933  /**
    41783934   * @brief Processing function for the Q15 IIR lattice filter.
    4179    * @param[in] *S points to an instance of the Q15 IIR lattice structure.
    4180    * @param[in] *pSrc points to the block of input data.
    4181    * @param[out] *pDst points to the block of output data.
    4182    * @param[in] blockSize number of samples to process.
    4183    * @return none.
    4184    */
    4185 
     3935   * @param[in]  S          points to an instance of the Q15 IIR lattice structure.
     3936   * @param[in]  pSrc       points to the block of input data.
     3937   * @param[out] pDst       points to the block of output data.
     3938   * @param[in]  blockSize  number of samples to process.
     3939   */
    41863940  void arm_iir_lattice_q15(
    41873941  const arm_iir_lattice_instance_q15 * S,
     
    41933947/**
    41943948 * @brief Initialization function for the Q15 IIR lattice filter.
    4195  * @param[in] *S points to an instance of the fixed-point Q15 IIR lattice structure.
     3949 * @param[in] S          points to an instance of the fixed-point Q15 IIR lattice structure.
    41963950 * @param[in] numStages  number of stages in the filter.
    4197  * @param[in] *pkCoeffs points to reflection coefficient buffer.  The array is of length numStages.
    4198  * @param[in] *pvCoeffs points to ladder coefficient buffer.  The array is of length numStages+1.
    4199  * @param[in] *pState points to state buffer.  The array is of length numStages+blockSize.
    4200  * @param[in] blockSize number of samples to process per call.
    4201  * @return none.
     3951 * @param[in] pkCoeffs   points to reflection coefficient buffer.  The array is of length numStages.
     3952 * @param[in] pvCoeffs   points to ladder coefficient buffer.  The array is of length numStages+1.
     3953 * @param[in] pState     points to state buffer.  The array is of length numStages+blockSize.
     3954 * @param[in] blockSize  number of samples to process per call.
    42023955 */
    4203 
    42043956  void arm_iir_lattice_init_q15(
    42053957  arm_iir_lattice_instance_q15 * S,
     
    42103962  uint32_t blockSize);
    42113963
     3964
    42123965  /**
    42133966   * @brief Instance structure for the floating-point LMS filter.
    42143967   */
    4215 
    42163968  typedef struct
    42173969  {
     
    42223974  } arm_lms_instance_f32;
    42233975
     3976
    42243977  /**
    42253978   * @brief Processing function for floating-point LMS filter.
    4226    * @param[in]  *S points to an instance of the floating-point LMS filter structure.
    4227    * @param[in]  *pSrc points to the block of input data.
    4228    * @param[in]  *pRef points to the block of reference data.
    4229    * @param[out] *pOut points to the block of output data.
    4230    * @param[out] *pErr points to the block of error data.
    4231    * @param[in]  blockSize number of samples to process.
    4232    * @return     none.
    4233    */
    4234 
     3979   * @param[in]  S          points to an instance of the floating-point LMS filter structure.
     3980   * @param[in]  pSrc       points to the block of input data.
     3981   * @param[in]  pRef       points to the block of reference data.
     3982   * @param[out] pOut       points to the block of output data.
     3983   * @param[out] pErr       points to the block of error data.
     3984   * @param[in]  blockSize  number of samples to process.
     3985   */
    42353986  void arm_lms_f32(
    42363987  const arm_lms_instance_f32 * S,
     
    42413992  uint32_t blockSize);
    42423993
     3994
    42433995  /**
    42443996   * @brief Initialization function for floating-point LMS filter.
    4245    * @param[in] *S points to an instance of the floating-point LMS filter structure.
    4246    * @param[in] numTaps  number of filter coefficients.
    4247    * @param[in] *pCoeffs points to the coefficient buffer.
    4248    * @param[in] *pState points to state buffer.
    4249    * @param[in] mu step size that controls filter coefficient updates.
    4250    * @param[in] blockSize number of samples to process.
    4251    * @return none.
    4252    */
    4253 
     3997   * @param[in] S          points to an instance of the floating-point LMS filter structure.
     3998   * @param[in] numTaps    number of filter coefficients.
     3999   * @param[in] pCoeffs    points to the coefficient buffer.
     4000   * @param[in] pState     points to state buffer.
     4001   * @param[in] mu         step size that controls filter coefficient updates.
     4002   * @param[in] blockSize  number of samples to process.
     4003   */
    42544004  void arm_lms_init_f32(
    42554005  arm_lms_instance_f32 * S,
     
    42604010  uint32_t blockSize);
    42614011
     4012
    42624013  /**
    42634014   * @brief Instance structure for the Q15 LMS filter.
    42644015   */
    4265 
    42664016  typedef struct
    42674017  {
     
    42764026  /**
    42774027   * @brief Initialization function for the Q15 LMS filter.
    4278    * @param[in] *S points to an instance of the Q15 LMS filter structure.
    4279    * @param[in] numTaps  number of filter coefficients.
    4280    * @param[in] *pCoeffs points to the coefficient buffer.
    4281    * @param[in] *pState points to the state buffer.
    4282    * @param[in] mu step size that controls filter coefficient updates.
    4283    * @param[in] blockSize number of samples to process.
    4284    * @param[in] postShift bit shift applied to coefficients.
    4285    * @return    none.
    4286    */
    4287 
     4028   * @param[in] S          points to an instance of the Q15 LMS filter structure.
     4029   * @param[in] numTaps    number of filter coefficients.
     4030   * @param[in] pCoeffs    points to the coefficient buffer.
     4031   * @param[in] pState     points to the state buffer.
     4032   * @param[in] mu         step size that controls filter coefficient updates.
     4033   * @param[in] blockSize  number of samples to process.
     4034   * @param[in] postShift  bit shift applied to coefficients.
     4035   */
    42884036  void arm_lms_init_q15(
    42894037  arm_lms_instance_q15 * S,
     
    42954043  uint32_t postShift);
    42964044
     4045
    42974046  /**
    42984047   * @brief Processing function for Q15 LMS filter.
    4299    * @param[in] *S points to an instance of the Q15 LMS filter structure.
    4300    * @param[in] *pSrc points to the block of input data.
    4301    * @param[in] *pRef points to the block of reference data.
    4302    * @param[out] *pOut points to the block of output data.
    4303    * @param[out] *pErr points to the block of error data.
    4304    * @param[in] blockSize number of samples to process.
    4305    * @return none.
    4306    */
    4307 
     4048   * @param[in]  S          points to an instance of the Q15 LMS filter structure.
     4049   * @param[in]  pSrc       points to the block of input data.
     4050   * @param[in]  pRef       points to the block of reference data.
     4051   * @param[out] pOut       points to the block of output data.
     4052   * @param[out] pErr       points to the block of error data.
     4053   * @param[in]  blockSize  number of samples to process.
     4054   */
    43084055  void arm_lms_q15(
    43094056  const arm_lms_instance_q15 * S,
     
    43184065   * @brief Instance structure for the Q31 LMS filter.
    43194066   */
    4320 
    43214067  typedef struct
    43224068  {
     
    43264072    q31_t mu;            /**< step size that controls filter coefficient updates. */
    43274073    uint32_t postShift;  /**< bit shift applied to coefficients. */
    4328 
    43294074  } arm_lms_instance_q31;
    43304075
     4076
    43314077  /**
    43324078   * @brief Processing function for Q31 LMS filter.
    4333    * @param[in]  *S points to an instance of the Q15 LMS filter structure.
    4334    * @param[in]  *pSrc points to the block of input data.
    4335    * @param[in]  *pRef points to the block of reference data.
    4336    * @param[out] *pOut points to the block of output data.
    4337    * @param[out] *pErr points to the block of error data.
    4338    * @param[in]  blockSize number of samples to process.
    4339    * @return     none.
    4340    */
    4341 
     4079   * @param[in]  S          points to an instance of the Q15 LMS filter structure.
     4080   * @param[in]  pSrc       points to the block of input data.
     4081   * @param[in]  pRef       points to the block of reference data.
     4082   * @param[out] pOut       points to the block of output data.
     4083   * @param[out] pErr       points to the block of error data.
     4084   * @param[in]  blockSize  number of samples to process.
     4085   */
    43424086  void arm_lms_q31(
    43434087  const arm_lms_instance_q31 * S,
     
    43484092  uint32_t blockSize);
    43494093
     4094
    43504095  /**
    43514096   * @brief Initialization function for Q31 LMS filter.
    4352    * @param[in] *S points to an instance of the Q31 LMS filter structure.
    4353    * @param[in] numTaps  number of filter coefficients.
    4354    * @param[in] *pCoeffs points to coefficient buffer.
    4355    * @param[in] *pState points to state buffer.
    4356    * @param[in] mu step size that controls filter coefficient updates.
    4357    * @param[in] blockSize number of samples to process.
    4358    * @param[in] postShift bit shift applied to coefficients.
    4359    * @return none.
    4360    */
    4361 
     4097   * @param[in] S          points to an instance of the Q31 LMS filter structure.
     4098   * @param[in] numTaps    number of filter coefficients.
     4099   * @param[in] pCoeffs    points to coefficient buffer.
     4100   * @param[in] pState     points to state buffer.
     4101   * @param[in] mu         step size that controls filter coefficient updates.
     4102   * @param[in] blockSize  number of samples to process.
     4103   * @param[in] postShift  bit shift applied to coefficients.
     4104   */
    43624105  void arm_lms_init_q31(
    43634106  arm_lms_instance_q31 * S,
     
    43694112  uint32_t postShift);
    43704113
     4114
    43714115  /**
    43724116   * @brief Instance structure for the floating-point normalized LMS filter.
    43734117   */
    4374 
    43754118  typedef struct
    43764119  {
     
    43784121    float32_t *pState;    /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    43794122    float32_t *pCoeffs;   /**< points to the coefficient array. The array is of length numTaps. */
    4380     float32_t mu;        /**< step size that control filter coefficient updates. */
    4381     float32_t energy;    /**< saves previous frame energy. */
    4382     float32_t x0;        /**< saves previous input sample. */
     4123    float32_t mu;         /**< step size that control filter coefficient updates. */
     4124    float32_t energy;     /**< saves previous frame energy. */
     4125    float32_t x0;         /**< saves previous input sample. */
    43834126  } arm_lms_norm_instance_f32;
    43844127
     4128
    43854129  /**
    43864130   * @brief Processing function for floating-point normalized LMS filter.
    4387    * @param[in] *S points to an instance of the floating-point normalized LMS filter structure.
    4388    * @param[in] *pSrc points to the block of input data.
    4389    * @param[in] *pRef points to the block of reference data.
    4390    * @param[out] *pOut points to the block of output data.
    4391    * @param[out] *pErr points to the block of error data.
    4392    * @param[in] blockSize number of samples to process.
    4393    * @return none.
    4394    */
    4395 
     4131   * @param[in]  S          points to an instance of the floating-point normalized LMS filter structure.
     4132   * @param[in]  pSrc       points to the block of input data.
     4133   * @param[in]  pRef       points to the block of reference data.
     4134   * @param[out] pOut       points to the block of output data.
     4135   * @param[out] pErr       points to the block of error data.
     4136   * @param[in]  blockSize  number of samples to process.
     4137   */
    43964138  void arm_lms_norm_f32(
    43974139  arm_lms_norm_instance_f32 * S,
     
    44024144  uint32_t blockSize);
    44034145
     4146
    44044147  /**
    44054148   * @brief Initialization function for floating-point normalized LMS filter.
    4406    * @param[in] *S points to an instance of the floating-point LMS filter structure.
    4407    * @param[in] numTaps  number of filter coefficients.
    4408    * @param[in] *pCoeffs points to coefficient buffer.
    4409    * @param[in] *pState points to state buffer.
    4410    * @param[in] mu step size that controls filter coefficient updates.
    4411    * @param[in] blockSize number of samples to process.
    4412    * @return none.
    4413    */
    4414 
     4149   * @param[in] S          points to an instance of the floating-point LMS filter structure.
     4150   * @param[in] numTaps    number of filter coefficients.
     4151   * @param[in] pCoeffs    points to coefficient buffer.
     4152   * @param[in] pState     points to state buffer.
     4153   * @param[in] mu         step size that controls filter coefficient updates.
     4154   * @param[in] blockSize  number of samples to process.
     4155   */
    44154156  void arm_lms_norm_init_f32(
    44164157  arm_lms_norm_instance_f32 * S,
     
    44374178  } arm_lms_norm_instance_q31;
    44384179
     4180
    44394181  /**
    44404182   * @brief Processing function for Q31 normalized LMS filter.
    4441    * @param[in] *S points to an instance of the Q31 normalized LMS filter structure.
    4442    * @param[in] *pSrc points to the block of input data.
    4443    * @param[in] *pRef points to the block of reference data.
    4444    * @param[out] *pOut points to the block of output data.
    4445    * @param[out] *pErr points to the block of error data.
    4446    * @param[in] blockSize number of samples to process.
    4447    * @return none.
    4448    */
    4449 
     4183   * @param[in]  S          points to an instance of the Q31 normalized LMS filter structure.
     4184   * @param[in]  pSrc       points to the block of input data.
     4185   * @param[in]  pRef       points to the block of reference data.
     4186   * @param[out] pOut       points to the block of output data.
     4187   * @param[out] pErr       points to the block of error data.
     4188   * @param[in]  blockSize  number of samples to process.
     4189   */
    44504190  void arm_lms_norm_q31(
    44514191  arm_lms_norm_instance_q31 * S,
     
    44564196  uint32_t blockSize);
    44574197
     4198
    44584199  /**
    44594200   * @brief Initialization function for Q31 normalized LMS filter.
    4460    * @param[in] *S points to an instance of the Q31 normalized LMS filter structure.
    4461    * @param[in] numTaps  number of filter coefficients.
    4462    * @param[in] *pCoeffs points to coefficient buffer.
    4463    * @param[in] *pState points to state buffer.
    4464    * @param[in] mu step size that controls filter coefficient updates.
    4465    * @param[in] blockSize number of samples to process.
    4466    * @param[in] postShift bit shift applied to coefficients.
    4467    * @return none.
    4468    */
    4469 
     4201   * @param[in] S          points to an instance of the Q31 normalized LMS filter structure.
     4202   * @param[in] numTaps    number of filter coefficients.
     4203   * @param[in] pCoeffs    points to coefficient buffer.
     4204   * @param[in] pState     points to state buffer.
     4205   * @param[in] mu         step size that controls filter coefficient updates.
     4206   * @param[in] blockSize  number of samples to process.
     4207   * @param[in] postShift  bit shift applied to coefficients.
     4208   */
    44704209  void arm_lms_norm_init_q31(
    44714210  arm_lms_norm_instance_q31 * S,
     
    44774216  uint8_t postShift);
    44784217
     4218
    44794219  /**
    44804220   * @brief Instance structure for the Q15 normalized LMS filter.
    44814221   */
    4482 
    44834222  typedef struct
    44844223  {
    4485     uint16_t numTaps;    /**< Number of coefficients in the filter. */
     4224    uint16_t numTaps;     /**< Number of coefficients in the filter. */
    44864225    q15_t *pState;        /**< points to the state variable array. The array is of length numTaps+blockSize-1. */
    44874226    q15_t *pCoeffs;       /**< points to the coefficient array. The array is of length numTaps. */
    4488     q15_t mu;            /**< step size that controls filter coefficient updates. */
    4489     uint8_t postShift;   /**< bit shift applied to coefficients. */
    4490     q15_t *recipTable;   /**< Points to the reciprocal initial value table. */
    4491     q15_t energy;        /**< saves previous frame energy. */
    4492     q15_t x0;            /**< saves previous input sample. */
     4227    q15_t mu;             /**< step size that controls filter coefficient updates. */
     4228    uint8_t postShift;    /**< bit shift applied to coefficients. */
     4229    q15_t *recipTable;    /**< Points to the reciprocal initial value table. */
     4230    q15_t energy;         /**< saves previous frame energy. */
     4231    q15_t x0;             /**< saves previous input sample. */
    44934232  } arm_lms_norm_instance_q15;
    44944233
     4234
    44954235  /**
    44964236   * @brief Processing function for Q15 normalized LMS filter.
    4497    * @param[in] *S points to an instance of the Q15 normalized LMS filter structure.
    4498    * @param[in] *pSrc points to the block of input data.
    4499    * @param[in] *pRef points to the block of reference data.
    4500    * @param[out] *pOut points to the block of output data.
    4501    * @param[out] *pErr points to the block of error data.
    4502    * @param[in] blockSize number of samples to process.
    4503    * @return none.
    4504    */
    4505 
     4237   * @param[in]  S          points to an instance of the Q15 normalized LMS filter structure.
     4238   * @param[in]  pSrc       points to the block of input data.
     4239   * @param[in]  pRef       points to the block of reference data.
     4240   * @param[out] pOut       points to the block of output data.
     4241   * @param[out] pErr       points to the block of error data.
     4242   * @param[in]  blockSize  number of samples to process.
     4243   */
    45064244  void arm_lms_norm_q15(
    45074245  arm_lms_norm_instance_q15 * S,
     
    45154253  /**
    45164254   * @brief Initialization function for Q15 normalized LMS filter.
    4517    * @param[in] *S points to an instance of the Q15 normalized LMS filter structure.
    4518    * @param[in] numTaps  number of filter coefficients.
    4519    * @param[in] *pCoeffs points to coefficient buffer.
    4520    * @param[in] *pState points to state buffer.
    4521    * @param[in] mu step size that controls filter coefficient updates.
    4522    * @param[in] blockSize number of samples to process.
    4523    * @param[in] postShift bit shift applied to coefficients.
    4524    * @return none.
    4525    */
    4526 
     4255   * @param[in] S          points to an instance of the Q15 normalized LMS filter structure.
     4256   * @param[in] numTaps    number of filter coefficients.
     4257   * @param[in] pCoeffs    points to coefficient buffer.
     4258   * @param[in] pState     points to state buffer.
     4259   * @param[in] mu         step size that controls filter coefficient updates.
     4260   * @param[in] blockSize  number of samples to process.
     4261   * @param[in] postShift  bit shift applied to coefficients.
     4262   */
    45274263  void arm_lms_norm_init_q15(
    45284264  arm_lms_norm_instance_q15 * S,
     
    45344270  uint8_t postShift);
    45354271
     4272
    45364273  /**
    45374274   * @brief Correlation of floating-point sequences.
    4538    * @param[in] *pSrcA points to the first input sequence.
    4539    * @param[in] srcALen length of the first input sequence.
    4540    * @param[in] *pSrcB points to the second input sequence.
    4541    * @param[in] srcBLen length of the second input sequence.
    4542    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4543    * @return none.
    4544    */
    4545 
     4275   * @param[in]  pSrcA    points to the first input sequence.
     4276   * @param[in]  srcALen  length of the first input sequence.
     4277   * @param[in]  pSrcB    points to the second input sequence.
     4278   * @param[in]  srcBLen  length of the second input sequence.
     4279   * @param[out] pDst     points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4280   */
    45464281  void arm_correlate_f32(
    45474282  float32_t * pSrcA,
     
    45544289   /**
    45554290   * @brief Correlation of Q15 sequences
    4556    * @param[in] *pSrcA points to the first input sequence.
    4557    * @param[in] srcALen length of the first input sequence.
    4558    * @param[in] *pSrcB points to the second input sequence.
    4559    * @param[in] srcBLen length of the second input sequence.
    4560    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4561    * @param[in]  *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    4562    * @return none.
     4291   * @param[in]  pSrcA     points to the first input sequence.
     4292   * @param[in]  srcALen   length of the first input sequence.
     4293   * @param[in]  pSrcB     points to the second input sequence.
     4294   * @param[in]  srcBLen   length of the second input sequence.
     4295   * @param[out] pDst      points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4296   * @param[in]  pScratch  points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    45634297   */
    45644298  void arm_correlate_opt_q15(
     
    45734307  /**
    45744308   * @brief Correlation of Q15 sequences.
    4575    * @param[in] *pSrcA points to the first input sequence.
    4576    * @param[in] srcALen length of the first input sequence.
    4577    * @param[in] *pSrcB points to the second input sequence.
    4578    * @param[in] srcBLen length of the second input sequence.
    4579    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4580    * @return none.
     4309   * @param[in]  pSrcA    points to the first input sequence.
     4310   * @param[in]  srcALen  length of the first input sequence.
     4311   * @param[in]  pSrcB    points to the second input sequence.
     4312   * @param[in]  srcBLen  length of the second input sequence.
     4313   * @param[out] pDst     points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    45814314   */
    45824315
     
    45884321  q15_t * pDst);
    45894322
     4323
    45904324  /**
    45914325   * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
    4592    * @param[in] *pSrcA points to the first input sequence.
    4593    * @param[in] srcALen length of the first input sequence.
    4594    * @param[in] *pSrcB points to the second input sequence.
    4595    * @param[in] srcBLen length of the second input sequence.
    4596    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4597    * @return none.
     4326   * @param[in]  pSrcA    points to the first input sequence.
     4327   * @param[in]  srcALen  length of the first input sequence.
     4328   * @param[in]  pSrcB    points to the second input sequence.
     4329   * @param[in]  srcBLen  length of the second input sequence.
     4330   * @param[out] pDst     points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    45984331   */
    45994332
    46004333  void arm_correlate_fast_q15(
    4601                                q15_t * pSrcA,
    4602                               uint32_t srcALen,
    4603                                q15_t * pSrcB,
    4604                               uint32_t srcBLen,
    4605                               q15_t * pDst);
    4606 
     4334  q15_t * pSrcA,
     4335  uint32_t srcALen,
     4336  q15_t * pSrcB,
     4337  uint32_t srcBLen,
     4338  q15_t * pDst);
    46074339
    46084340
    46094341  /**
    46104342   * @brief Correlation of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
    4611    * @param[in] *pSrcA points to the first input sequence.
    4612    * @param[in] srcALen length of the first input sequence.
    4613    * @param[in] *pSrcB points to the second input sequence.
    4614    * @param[in] srcBLen length of the second input sequence.
    4615    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4616    * @param[in]  *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    4617    * @return none.
    4618    */
    4619 
     4343   * @param[in]  pSrcA     points to the first input sequence.
     4344   * @param[in]  srcALen   length of the first input sequence.
     4345   * @param[in]  pSrcB     points to the second input sequence.
     4346   * @param[in]  srcBLen   length of the second input sequence.
     4347   * @param[out] pDst      points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4348   * @param[in]  pScratch  points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     4349   */
    46204350  void arm_correlate_fast_opt_q15(
    46214351  q15_t * pSrcA,
     
    46264356  q15_t * pScratch);
    46274357
     4358
    46284359  /**
    46294360   * @brief Correlation of Q31 sequences.
    4630    * @param[in] *pSrcA points to the first input sequence.
    4631    * @param[in] srcALen length of the first input sequence.
    4632    * @param[in] *pSrcB points to the second input sequence.
    4633    * @param[in] srcBLen length of the second input sequence.
    4634    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4635    * @return none.
    4636    */
    4637 
     4361   * @param[in]  pSrcA    points to the first input sequence.
     4362   * @param[in]  srcALen  length of the first input sequence.
     4363   * @param[in]  pSrcB    points to the second input sequence.
     4364   * @param[in]  srcBLen  length of the second input sequence.
     4365   * @param[out] pDst     points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4366   */
    46384367  void arm_correlate_q31(
    46394368  q31_t * pSrcA,
     
    46434372  q31_t * pDst);
    46444373
     4374
    46454375  /**
    46464376   * @brief Correlation of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4
    4647    * @param[in] *pSrcA points to the first input sequence.
    4648    * @param[in] srcALen length of the first input sequence.
    4649    * @param[in] *pSrcB points to the second input sequence.
    4650    * @param[in] srcBLen length of the second input sequence.
    4651    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4652    * @return none.
    4653    */
    4654 
     4377   * @param[in]  pSrcA    points to the first input sequence.
     4378   * @param[in]  srcALen  length of the first input sequence.
     4379   * @param[in]  pSrcB    points to the second input sequence.
     4380   * @param[in]  srcBLen  length of the second input sequence.
     4381   * @param[out] pDst     points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4382   */
    46554383  void arm_correlate_fast_q31(
    46564384  q31_t * pSrcA,
     
    46614389
    46624390
    4663 
    46644391 /**
    46654392   * @brief Correlation of Q7 sequences.
    4666    * @param[in] *pSrcA points to the first input sequence.
    4667    * @param[in] srcALen length of the first input sequence.
    4668    * @param[in] *pSrcB points to the second input sequence.
    4669    * @param[in] srcBLen length of the second input sequence.
    4670    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4671    * @param[in]  *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
    4672    * @param[in]  *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
    4673    * @return none.
    4674    */
    4675 
     4393   * @param[in]  pSrcA      points to the first input sequence.
     4394   * @param[in]  srcALen    length of the first input sequence.
     4395   * @param[in]  pSrcB      points to the second input sequence.
     4396   * @param[in]  srcBLen    length of the second input sequence.
     4397   * @param[out] pDst       points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4398   * @param[in]  pScratch1  points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2*min(srcALen, srcBLen) - 2.
     4399   * @param[in]  pScratch2  points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
     4400   */
    46764401  void arm_correlate_opt_q7(
    46774402  q7_t * pSrcA,
     
    46864411  /**
    46874412   * @brief Correlation of Q7 sequences.
    4688    * @param[in] *pSrcA points to the first input sequence.
    4689    * @param[in] srcALen length of the first input sequence.
    4690    * @param[in] *pSrcB points to the second input sequence.
    4691    * @param[in] srcBLen length of the second input sequence.
    4692    * @param[out] *pDst points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
    4693    * @return none.
    4694    */
    4695 
     4413   * @param[in]  pSrcA    points to the first input sequence.
     4414   * @param[in]  srcALen  length of the first input sequence.
     4415   * @param[in]  pSrcB    points to the second input sequence.
     4416   * @param[in]  srcBLen  length of the second input sequence.
     4417   * @param[out] pDst     points to the block of output data  Length 2 * max(srcALen, srcBLen) - 1.
     4418   */
    46964419  void arm_correlate_q7(
    46974420  q7_t * pSrcA,
     
    47184441   * @brief Instance structure for the Q31 sparse FIR filter.
    47194442   */
    4720 
    47214443  typedef struct
    47224444  {
     
    47324454   * @brief Instance structure for the Q15 sparse FIR filter.
    47334455   */
    4734 
    47354456  typedef struct
    47364457  {
     
    47464467   * @brief Instance structure for the Q7 sparse FIR filter.
    47474468   */
    4748 
    47494469  typedef struct
    47504470  {
     
    47574477  } arm_fir_sparse_instance_q7;
    47584478
     4479
    47594480  /**
    47604481   * @brief Processing function for the floating-point sparse FIR filter.
    4761    * @param[in]  *S          points to an instance of the floating-point sparse FIR structure.
    4762    * @param[in]  *pSrc       points to the block of input data.
    4763    * @param[out] *pDst       points to the block of output data
    4764    * @param[in]  *pScratchIn points to a temporary buffer of size blockSize.
     4482   * @param[in]  S           points to an instance of the floating-point sparse FIR structure.
     4483   * @param[in]  pSrc        points to the block of input data.
     4484   * @param[out] pDst        points to the block of output data
     4485   * @param[in]  pScratchIn points to a temporary buffer of size blockSize.
    47654486   * @param[in]  blockSize   number of input samples to process per call.
    4766    * @return none.
    4767    */
    4768 
     4487   */
    47694488  void arm_fir_sparse_f32(
    47704489  arm_fir_sparse_instance_f32 * S,
     
    47744493  uint32_t blockSize);
    47754494
     4495
    47764496  /**
    47774497   * @brief  Initialization function for the floating-point sparse FIR filter.
    4778    * @param[in,out] *S         points to an instance of the floating-point sparse FIR structure.
     4498   * @param[in,out] S          points to an instance of the floating-point sparse FIR structure.
    47794499   * @param[in]     numTaps    number of nonzero coefficients in the filter.
    4780    * @param[in]     *pCoeffs   points to the array of filter coefficients.
    4781    * @param[in]     *pState    points to the state buffer.
    4782    * @param[in]     *pTapDelay points to the array of offset times.
     4500   * @param[in]     pCoeffs    points to the array of filter coefficients.
     4501   * @param[in]     pState     points to the state buffer.
     4502   * @param[in]     pTapDelay points to the array of offset times.
    47834503   * @param[in]     maxDelay   maximum offset time supported.
    47844504   * @param[in]     blockSize  number of samples that will be processed per block.
    4785    * @return none
    4786    */
    4787 
     4505   */
    47884506  void arm_fir_sparse_init_f32(
    47894507  arm_fir_sparse_instance_f32 * S,
     
    47954513  uint32_t blockSize);
    47964514
     4515
    47974516  /**
    47984517   * @brief Processing function for the Q31 sparse FIR filter.
    4799    * @param[in]  *S          points to an instance of the Q31 sparse FIR structure.
    4800    * @param[in]  *pSrc       points to the block of input data.
    4801    * @param[out] *pDst       points to the block of output data
    4802    * @param[in]  *pScratchIn points to a temporary buffer of size blockSize.
     4518   * @param[in]  S           points to an instance of the Q31 sparse FIR structure.
     4519   * @param[in]  pSrc        points to the block of input data.
     4520   * @param[out] pDst        points to the block of output data
     4521   * @param[in]  pScratchIn points to a temporary buffer of size blockSize.
    48034522   * @param[in]  blockSize   number of input samples to process per call.
    4804    * @return none.
    4805    */
    4806 
     4523   */
    48074524  void arm_fir_sparse_q31(
    48084525  arm_fir_sparse_instance_q31 * S,
     
    48124529  uint32_t blockSize);
    48134530
     4531
    48144532  /**
    48154533   * @brief  Initialization function for the Q31 sparse FIR filter.
    4816    * @param[in,out] *S         points to an instance of the Q31 sparse FIR structure.
     4534   * @param[in,out] S          points to an instance of the Q31 sparse FIR structure.
    48174535   * @param[in]     numTaps    number of nonzero coefficients in the filter.
    4818    * @param[in]     *pCoeffs   points to the array of filter coefficients.
    4819    * @param[in]     *pState    points to the state buffer.
    4820    * @param[in]     *pTapDelay points to the array of offset times.
     4536   * @param[in]     pCoeffs    points to the array of filter coefficients.
     4537   * @param[in]     pState     points to the state buffer.
     4538   * @param[in]     pTapDelay points to the array of offset times.
    48214539   * @param[in]     maxDelay   maximum offset time supported.
    48224540   * @param[in]     blockSize  number of samples that will be processed per block.
    4823    * @return none
    4824    */
    4825 
     4541   */
    48264542  void arm_fir_sparse_init_q31(
    48274543  arm_fir_sparse_instance_q31 * S,
     
    48334549  uint32_t blockSize);
    48344550
     4551
    48354552  /**
    48364553   * @brief Processing function for the Q15 sparse FIR filter.
    4837    * @param[in]  *S           points to an instance of the Q15 sparse FIR structure.
    4838    * @param[in]  *pSrc        points to the block of input data.
    4839    * @param[out] *pDst        points to the block of output data
    4840    * @param[in]  *pScratchIn  points to a temporary buffer of size blockSize.
    4841    * @param[in]  *pScratchOut points to a temporary buffer of size blockSize.
     4554   * @param[in]  S            points to an instance of the Q15 sparse FIR structure.
     4555   * @param[in]  pSrc         points to the block of input data.
     4556   * @param[out] pDst         points to the block of output data
     4557   * @param[in]  pScratchIn   points to a temporary buffer of size blockSize.
     4558   * @param[in]  pScratchOut points to a temporary buffer of size blockSize.
    48424559   * @param[in]  blockSize    number of input samples to process per call.
    4843    * @return none.
    4844    */
    4845 
     4560   */
    48464561  void arm_fir_sparse_q15(
    48474562  arm_fir_sparse_instance_q15 * S,
     
    48554570  /**
    48564571   * @brief  Initialization function for the Q15 sparse FIR filter.
    4857    * @param[in,out] *S         points to an instance of the Q15 sparse FIR structure.
     4572   * @param[in,out] S          points to an instance of the Q15 sparse FIR structure.
    48584573   * @param[in]     numTaps    number of nonzero coefficients in the filter.
    4859    * @param[in]     *pCoeffs   points to the array of filter coefficients.
    4860    * @param[in]     *pState    points to the state buffer.
    4861    * @param[in]     *pTapDelay points to the array of offset times.
     4574   * @param[in]     pCoeffs    points to the array of filter coefficients.
     4575   * @param[in]     pState     points to the state buffer.
     4576   * @param[in]     pTapDelay points to the array of offset times.
    48624577   * @param[in]     maxDelay   maximum offset time supported.
    48634578   * @param[in]     blockSize  number of samples that will be processed per block.
    4864    * @return none
    4865    */
    4866 
     4579   */
    48674580  void arm_fir_sparse_init_q15(
    48684581  arm_fir_sparse_instance_q15 * S,
     
    48744587  uint32_t blockSize);
    48754588
     4589
    48764590  /**
    48774591   * @brief Processing function for the Q7 sparse FIR filter.
    4878    * @param[in]  *S           points to an instance of the Q7 sparse FIR structure.
    4879    * @param[in]  *pSrc        points to the block of input data.
    4880    * @param[out] *pDst        points to the block of output data
    4881    * @param[in]  *pScratchIn  points to a temporary buffer of size blockSize.
    4882    * @param[in]  *pScratchOut points to a temporary buffer of size blockSize.
     4592   * @param[in]  S            points to an instance of the Q7 sparse FIR structure.
     4593   * @param[in]  pSrc       &