CMSIS-DSP: Added test patterns for fir
Added MVE version of arm_fir_f32
Improved test framework to display more information about errors.
diff --git a/CMSIS/DSP/Include/arm_math.h b/CMSIS/DSP/Include/arm_math.h
index 52b3f53..8c0991f 100644
--- a/CMSIS/DSP/Include/arm_math.h
+++ b/CMSIS/DSP/Include/arm_math.h
@@ -383,47 +383,47 @@
 #include <limits.h>
 
 
-#define F64_MAX   DBL_MAX
-#define F32_MAX   FLT_MAX
+#define F64_MAX   ((float64_t)DBL_MAX)
+#define F32_MAX   ((float32_t)FLT_MAX)
 
 #if defined(ARM_MATH_FLOAT16)
-#define F16_MAX   (float16_t)FLT_MAX
+#define F16_MAX   ((float16_t)FLT_MAX)
 #endif
 
-#define F64_MIN   -DBL_MAX
-#define F32_MIN   -FLT_MAX
+#define F64_MIN   (-DBL_MAX)
+#define F32_MIN   (-FLT_MAX)
 
 #if defined(ARM_MATH_FLOAT16)
-#define F16_MIN   -(float16_t)FLT_MAX
+#define F16_MIN   (-(float16_t)FLT_MAX)
 #endif
 
-#define F64_ABSMAX   DBL_MAX
-#define F32_ABSMAX   FLT_MAX
+#define F64_ABSMAX   ((float64_t)DBL_MAX)
+#define F32_ABSMAX   ((float32_t)FLT_MAX)
 
 #if defined(ARM_MATH_FLOAT16)
-#define F16_ABSMAX   (float16_t)FLT_MAX
+#define F16_ABSMAX   ((float16_t)FLT_MAX)
 #endif
 
-#define F64_ABSMIN   (float64_t)0.0
-#define F32_ABSMIN   (float32_t)0.0
+#define F64_ABSMIN   ((float64_t)0.0)
+#define F32_ABSMIN   ((float32_t)0.0)
 
 #if defined(ARM_MATH_FLOAT16)
-#define F16_ABSMIN   (float16_t)0.0
+#define F16_ABSMIN   ((float16_t)0.0)
 #endif
 
-#define Q31_MAX   (0x7FFFFFFFL)
-#define Q15_MAX   (0x7FFF)
-#define Q7_MAX    (0x7F)
-#define Q31_MIN   (0x80000000L)
-#define Q15_MIN   (0x8000)
-#define Q7_MIN    (0x80)
+#define Q31_MAX   ((q31_t)(0x7FFFFFFFL))
+#define Q15_MAX   ((q15_t)(0x7FFF))
+#define Q7_MAX    ((q7_t)(0x7F))
+#define Q31_MIN   ((q31_t)(0x80000000L))
+#define Q15_MIN   ((q15_t)(0x8000))
+#define Q7_MIN    ((q7_t)(0x80))
 
-#define Q31_ABSMAX   (0x7FFFFFFFL)
-#define Q15_ABSMAX   (0x7FFF)
-#define Q7_ABSMAX    (0x7F)
-#define Q31_ABSMIN   0
-#define Q15_ABSMIN   0
-#define Q7_ABSMIN    0
+#define Q31_ABSMAX   ((q31_t)(0x7FFFFFFFL))
+#define Q15_ABSMAX   ((q15_t)(0x7FFF))
+#define Q7_ABSMAX    ((q7_t)(0x7F))
+#define Q31_ABSMIN   ((q31_t)0)
+#define Q15_ABSMIN   ((q15_t)0)
+#define Q7_ABSMIN    ((q7_t)0)
 
 /* evaluate ARM DSP feature */
 #if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1))
@@ -453,8 +453,8 @@
    * @brief Macros required for reciprocal calculation in Normalized LMS
    */
 
-#define DELTA_Q31          (0x100)
-#define DELTA_Q15          0x5
+#define DELTA_Q31          ((q31_t)(0x100))
+#define DELTA_Q15          ((q15_t)0x5)
 #define INDEX_MASK         0x0000003F
 #ifndef PI
   #define PI               3.14159265358979f
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c
index 4be110f..d20a9b7 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_f32.c
@@ -96,6 +96,13 @@
   </pre>
                    where <code>numTaps</code> is the number of filter coefficients in the filter; <code>pState</code> is the address of the state buffer;
                    <code>pCoeffs</code> is the address of the coefficient buffer.
+  @par          Initialization of Helium version
+                 For Helium version the array of coefficients must be a multiple of 16 even if less
+                 then 16 coefficients are used. The additional coefficients must be set to 0.
+                 It does not mean that all the coefficients will be used in the filter (numTaps
+                 is still set to its right value in the init function.) It just means that
+                 the implementation may require to read more coefficients due to the vectorization and
+                 to avoid having to manage too many different cases in the code.
 
   @par           Fixed-Point Behavior
                    Care must be taken when using the fixed-point versions of the FIR filter functions.
@@ -116,6 +123,585 @@
   @param[in]     blockSize  number of samples to process
   @return        none
  */
+
+#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+static void arm_fir_f32_1_4_mve(const arm_fir_instance_f32 * S, const float32_t * pSrc, float32_t * pDst, uint32_t blockSize)
+{
+    float32_t *pState = S->pState;      /* State pointer */
+    const float32_t *pCoeffs = S->pCoeffs;    /* Coefficient pointer */
+    float32_t *pStateCur;               /* Points to the current sample of the state */
+    const float32_t *pSamples;          /* Temporary pointer to the sample buffer */
+    float32_t *pOutput;                 /* Temporary pointer to the output buffer */
+    const float32_t *pTempSrc;          /* Temporary pointer to the source data */
+    float32_t *pTempDest;               /* Temporary pointer to the destination buffer */
+    uint32_t  numTaps = S->numTaps;     /* Number of filter coefficients in the filter */
+    uint32_t  blkCnt;
+    f32x4_t vecIn0;
+    f32x4_t vecAcc0;
+    float32_t c0, c1, c2, c3;
+
+    /*
+     * pState points to state array which contains previous frame (numTaps - 1) samples
+     * pStateCur points to the location where the new input data should be written
+     */
+    pStateCur = &(pState[(numTaps - 1u)]);
+    pSamples  = pState;
+    pTempSrc  = pSrc;
+    pOutput   = pDst;
+
+    if (((numTaps - 1) / 4) == 0)
+    {
+        const float32_t *pCoeffsCur = pCoeffs;
+
+        c0 = *pCoeffsCur++;
+        c1 = *pCoeffsCur++;
+        c2 = *pCoeffsCur++;
+        c3 = *pCoeffsCur++;
+
+        blkCnt = blockSize >> 2;
+        while (blkCnt > 0U)
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            vecAcc0 = vmulq(vecIn0, c0);
+
+            vecIn0 = vld1q(&pSamples[1]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+
+            vecIn0 = vld1q(&pSamples[2]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+
+            vecIn0 = vld1q(&pSamples[3]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+
+            vst1q(pOutput, vecAcc0);
+
+            pOutput += 4;
+            pSamples += 4;
+
+            blkCnt--;
+        }
+        blkCnt = blockSize & 3;
+        {
+            mve_pred16_t p0 = vctp32q(blkCnt);
+
+            vstrwq_p_f32(pStateCur, vld1q(pTempSrc),p0);
+            pStateCur += blkCnt;
+            pTempSrc += blkCnt;
+
+            vecIn0 = vld1q(pSamples);
+            vecAcc0 = vmulq(vecIn0, c0);
+
+            vecIn0 = vld1q(&pSamples[1]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+
+            vecIn0 = vld1q(&pSamples[2]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+
+            vecIn0 = vld1q(&pSamples[3]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+
+            vstrwq_p_f32(pOutput, vecAcc0, p0);
+        }
+    }
+
+    /*
+     * Copy the samples back into the history buffer start
+     */
+    pTempSrc = &S->pState[blockSize];
+    pTempDest = S->pState;
+    blkCnt = numTaps >> 2;
+    while (blkCnt > 0U)
+    {
+        vst1q(pTempDest, vld1q(pTempSrc));
+        pTempSrc += 4;
+        pTempDest += 4;
+        blkCnt--;
+    }
+    blkCnt = numTaps & 3;
+    if (blkCnt > 0U)
+    {
+        mve_pred16_t p0 = vctp32q(blkCnt);
+        vstrwq_p_f32(pTempDest, vld1q(pTempSrc), p0);
+    }
+}
+
+
+
+static void arm_fir_f32_5_8_mve(const arm_fir_instance_f32 * S, const float32_t * pSrc, float32_t * pDst, uint32_t blockSize)
+{
+    float32_t *pState = S->pState;      /* State pointer */
+    const float32_t *pCoeffs = S->pCoeffs;    /* Coefficient pointer */
+    float32_t *pStateCur;               /* Points to the current sample of the state */
+    const float32_t *pSamples;          /* Temporary pointer to the sample buffer */
+    float32_t *pOutput;                 /* Temporary pointer to the output buffer */
+    const float32_t *pTempSrc;          /* Temporary pointer to the source data */
+    float32_t *pTempDest;               /* Temporary pointer to the destination buffer */
+    uint32_t  numTaps = S->numTaps;     /* Number of filter coefficients in the filter */
+    uint32_t  blkCnt;
+    f32x4_t vecIn0;
+    f32x4_t vecAcc0;
+    float32_t c0, c1, c2, c3;
+    float32_t c4, c5, c6, c7;
+    const float32_t *pCoeffsCur = pCoeffs;
+
+    /*
+     * pState points to state array which contains previous frame (numTaps - 1) samples
+     * pStateCur points to the location where the new input data should be written
+     */
+    pStateCur = &(pState[(numTaps - 1u)]);
+    pTempSrc = pSrc;
+
+    pSamples = pState;
+    pOutput = pDst;
+
+    c0 = *pCoeffsCur++;
+    c1 = *pCoeffsCur++;
+    c2 = *pCoeffsCur++;
+    c3 = *pCoeffsCur++;
+    c4 = *pCoeffsCur++;
+    c5 = *pCoeffsCur++;
+    c6 = *pCoeffsCur++;
+    c7 = *pCoeffsCur++;
+
+    blkCnt = blockSize >> 2;
+    while (blkCnt > 0U)
+    {
+        /*
+         * Save 4 input samples in the history buffer
+         */
+        vst1q(pStateCur, vld1q(pTempSrc));
+        pStateCur += 4;
+        pTempSrc += 4;
+
+        vecIn0 = vld1q(pSamples);
+        vecAcc0 = vmulq(vecIn0, c0);
+
+        vecIn0 = vld1q(&pSamples[1]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+
+        vecIn0 = vld1q(&pSamples[2]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+
+        vecIn0 = vld1q(&pSamples[3]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+
+        vecIn0 = vld1q(&pSamples[4]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c4);
+
+        vecIn0 = vld1q(&pSamples[5]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c5);
+
+        vecIn0 = vld1q(&pSamples[6]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c6);
+
+        vecIn0 = vld1q(&pSamples[7]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c7);
+
+        vst1q(pOutput, vecAcc0);
+
+        pOutput += 4;
+        pSamples += 4;
+
+        blkCnt--;
+    }
+
+    blkCnt = blockSize & 3;
+    {
+
+        mve_pred16_t p0 = vctp32q(blkCnt);
+
+        vstrwq_p_f32(pStateCur, vld1q(pTempSrc),p0);
+        pStateCur += blkCnt;
+        pTempSrc += blkCnt;
+
+        vecIn0 = vld1q(pSamples);
+        vecAcc0 = vmulq(vecIn0, c0);
+
+        vecIn0 = vld1q(&pSamples[1]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+
+        vecIn0 = vld1q(&pSamples[2]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+
+        vecIn0 = vld1q(&pSamples[3]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+
+        vecIn0 = vld1q(&pSamples[4]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c4);
+
+        vecIn0 = vld1q(&pSamples[5]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c5);
+
+        vecIn0 = vld1q(&pSamples[6]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c6);
+
+        vecIn0 = vld1q(&pSamples[7]);
+        vecAcc0 = vfmaq(vecAcc0, vecIn0, c7);
+
+        vstrwq_p_f32(pOutput, vecAcc0, p0);
+    }
+
+    /*
+     * Copy the samples back into the history buffer start
+     */
+    pTempSrc = &S->pState[blockSize];
+    pTempDest = S->pState;
+
+    blkCnt = numTaps >> 2;
+    while (blkCnt > 0U)
+    {
+        vst1q(pTempDest, vld1q(pTempSrc));
+        pTempSrc += 4;
+        pTempDest += 4;
+        blkCnt--;
+    }
+    blkCnt = numTaps & 3;
+    if (blkCnt > 0U)
+    {
+        mve_pred16_t p0 = vctp32q(blkCnt);
+        vstrwq_p_f32(pTempDest, vld1q(pTempSrc), p0);
+    }
+}
+
+void arm_fir_f32(
+const arm_fir_instance_f32 * S,
+const float32_t * pSrc,
+float32_t * pDst,
+uint32_t blockSize)
+{
+    float32_t *pState = S->pState;      /* State pointer */
+    const float32_t *pCoeffs = S->pCoeffs;    /* Coefficient pointer */
+    float32_t *pStateCur;               /* Points to the current sample of the state */
+    const float32_t *pSamples;          /* Temporary pointer to the sample buffer */
+    float32_t *pOutput;                 /* Temporary pointer to the output buffer */
+    const float32_t *pTempSrc;          /* Temporary pointer to the source data */
+    float32_t *pTempDest;               /* Temporary pointer to the destination buffer */
+    uint32_t  numTaps = S->numTaps;     /* Number of filter coefficients in the filter */
+    uint32_t  blkCnt;
+    int32_t numCnt;
+    f32x4_t vecIn0;
+    f32x4_t vecAcc0;
+    float32_t c0, c1, c2, c3;
+    float32_t c4, c5, c6, c7;
+
+    /*
+     * [1 to 8 taps] specialized routines
+     */
+    if (blockSize >= 8)
+    {
+       if (numTaps <= 4)
+       {
+           arm_fir_f32_1_4_mve(S, pSrc, pDst, blockSize);
+           return;
+       }
+    }
+    if (blockSize >= 8)
+    {
+       if (numTaps <= 8)
+       {
+           arm_fir_f32_5_8_mve(S, pSrc, pDst, blockSize);
+           return;
+       }
+    }
+
+
+   
+
+    if (blockSize >= 8)
+    {
+        /*
+         * pState points to state array which contains previous frame (numTaps - 1) samples
+         * pStateCur points to the location where the new input data should be written
+         */
+        pStateCur = &(pState[(numTaps - 1u)]);
+        pTempSrc = pSrc;
+        pSamples = pState;
+        pOutput = pDst;
+
+        blkCnt = blockSize >> 2;
+        while (blkCnt > 0U)
+        {
+            int32_t       i;
+            const float32_t *pCoeffsCur = pCoeffs;
+    
+            c0 = *pCoeffsCur++;
+            c1 = *pCoeffsCur++;
+            c2 = *pCoeffsCur++;
+            c3 = *pCoeffsCur++;
+            c4 = *pCoeffsCur++;
+            c5 = *pCoeffsCur++;
+            c6 = *pCoeffsCur++;
+            c7 = *pCoeffsCur++;
+    
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+    
+            vecIn0 = vld1q(pSamples);
+            vecAcc0 = vmulq(vecIn0, c0);
+    
+            vecIn0 = vld1q(&pSamples[1]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+    
+            vecIn0 = vld1q(&pSamples[2]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+    
+            vecIn0 = vld1q(&pSamples[3]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+    
+            vecIn0 = vld1q(&pSamples[4]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c4);
+    
+            vecIn0 = vld1q(&pSamples[5]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c5);
+    
+            vecIn0 = vld1q(&pSamples[6]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c6);
+    
+            vecIn0 = vld1q(&pSamples[7]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c7);
+    
+            pSamples += 8;
+    
+            numCnt = ((int32_t)numTaps - 8) / 8;
+
+            for (i = 0; i < numCnt; i++)
+            {
+                c0 = *pCoeffsCur++;
+                c1 = *pCoeffsCur++;
+                c2 = *pCoeffsCur++;
+                c3 = *pCoeffsCur++;
+                c4 = *pCoeffsCur++;
+                c5 = *pCoeffsCur++;
+                c6 = *pCoeffsCur++;
+                c7 = *pCoeffsCur++;
+    
+                vecIn0 = vld1q(pSamples);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c0);
+    
+                vecIn0 = vld1q(&pSamples[1]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+    
+                vecIn0 = vld1q(&pSamples[2]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+    
+                vecIn0 = vld1q(&pSamples[3]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+    
+                vecIn0 = vld1q(&pSamples[4]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c4);
+    
+                vecIn0 = vld1q(&pSamples[5]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c5);
+    
+                vecIn0 = vld1q(&pSamples[6]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c6);
+    
+                vecIn0 = vld1q(&pSamples[7]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c7);
+    
+                pSamples += 8;
+            }
+
+            numCnt = ((int32_t)numTaps - 8) & 7;
+
+            while (numCnt > 0)
+            {
+                c0 = *pCoeffsCur++;
+                vecIn0 = vld1q(pSamples);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c0);
+                pSamples ++;
+
+                numCnt --;
+            }
+    
+            vst1q(pOutput, vecAcc0);
+            pOutput += 4;
+            pSamples = pSamples - numTaps + 4;
+    
+            blkCnt--;
+        }
+    
+        blkCnt = blockSize & 3;
+        {
+            mve_pred16_t p0 = vctp32q(blkCnt);
+            int32_t       i;
+            const float32_t *pCoeffsCur = pCoeffs;
+    
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+    
+            c0 = *pCoeffsCur++;
+            c1 = *pCoeffsCur++;
+            c2 = *pCoeffsCur++;
+            c3 = *pCoeffsCur++;
+            c4 = *pCoeffsCur++;
+            c5 = *pCoeffsCur++;
+            c6 = *pCoeffsCur++;
+            c7 = *pCoeffsCur++;
+    
+            vecIn0 = vld1q(pSamples);
+            vecAcc0 = vmulq(vecIn0, c0);
+    
+            vecIn0 = vld1q(&pSamples[1]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+    
+            vecIn0 = vld1q(&pSamples[2]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+    
+            vecIn0 = vld1q(&pSamples[3]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+    
+            vecIn0 = vld1q(&pSamples[4]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c4);
+    
+            vecIn0 = vld1q(&pSamples[5]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c5);
+    
+            vecIn0 = vld1q(&pSamples[6]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c6);
+    
+            vecIn0 = vld1q(&pSamples[7]);
+            vecAcc0 = vfmaq(vecAcc0, vecIn0, c7);
+    
+            pSamples += 8;
+    
+            numCnt = ((int32_t)numTaps - 8) / 8;
+
+            for (i = 0; i < numCnt; i++)
+            {
+                c0 = *pCoeffsCur++;
+                c1 = *pCoeffsCur++;
+                c2 = *pCoeffsCur++;
+                c3 = *pCoeffsCur++;
+                c4 = *pCoeffsCur++;
+                c5 = *pCoeffsCur++;
+                c6 = *pCoeffsCur++;
+                c7 = *pCoeffsCur++;
+    
+                vecIn0 = vld1q(pSamples);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c0);
+    
+                vecIn0 = vld1q(&pSamples[1]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c1);
+    
+                vecIn0 = vld1q(&pSamples[2]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c2);
+    
+                vecIn0 = vld1q(&pSamples[3]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c3);
+    
+                vecIn0 = vld1q(&pSamples[4]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c4);
+    
+                vecIn0 = vld1q(&pSamples[5]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c5);
+    
+                vecIn0 = vld1q(&pSamples[6]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c6);
+    
+                vecIn0 = vld1q(&pSamples[7]);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c7);
+    
+                pSamples += 8;
+            }
+
+            numCnt = ((int32_t)numTaps - 8) & 7;
+
+            while (numCnt > 0)
+            {
+                c0 = *pCoeffsCur++;
+                vecIn0 = vld1q(pSamples);
+                vecAcc0 = vfmaq(vecAcc0, vecIn0, c0);
+                pSamples ++;
+
+                numCnt --;
+            }
+    
+    
+            vstrwq_p_f32(pOutput, vecAcc0, p0);
+        }
+    }
+    else
+    {
+        float32_t *pStateCurnt;                        /* Points to the current sample of the state */
+        float32_t *px;                                 /* Temporary pointer for state buffer */
+  const float32_t *pb;                                 /* Temporary pointer for coefficient buffer */
+        float32_t acc0;                                /* Accumulator */
+        uint32_t numTaps = S->numTaps;                 /* Number of filter coefficients in the filter */
+        uint32_t i, blkCnt;                    /* Loop counters */
+        pStateCurnt = &(S->pState[(numTaps - 1U)]);
+        blkCnt = blockSize;
+        while (blkCnt > 0U)
+        {
+          /* Copy one sample at a time into state buffer */
+          *pStateCurnt++ = *pSrc++;
+      
+          /* Set the accumulator to zero */
+          acc0 = 0.0f;
+      
+          /* Initialize state pointer */
+          px = pState;
+      
+          /* Initialize Coefficient pointer */
+          pb = pCoeffs;
+      
+          i = numTaps;
+      
+          /* Perform the multiply-accumulates */
+          while (i > 0U)
+          {
+            /* acc =  b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */
+            acc0 += *px++ * *pb++;
+      
+            i--;
+          }
+
+
+      
+          /* Store result in destination buffer. */
+          *pDst++ = acc0;
+      
+          /* Advance state pointer by 1 for the next sample */
+          pState = pState + 1U;
+      
+          /* Decrement loop counter */
+          blkCnt--;
+        }
+    }
+
+    /*
+     * Copy the samples back into the history buffer start
+     */
+    pTempSrc = &S->pState[blockSize];
+    pTempDest = S->pState;
+
+    blkCnt = numTaps >> 2;
+    while (blkCnt > 0U)
+    {
+        vst1q(pTempDest, vld1q(pTempSrc));
+        pTempSrc += 4;
+        pTempDest += 4;
+        blkCnt--;
+    }
+    blkCnt = numTaps & 3;
+    if (blkCnt > 0U)
+    {
+        mve_pred16_t p0 = vctp32q(blkCnt);
+        vstrwq_p_f32(pTempDest, vld1q(pTempSrc), p0);
+    }
+}
+
+#else
 #if defined(ARM_MATH_NEON)
 
 void arm_fir_f32(
@@ -645,13 +1231,13 @@
     i = numTaps;
 
     /* Perform the multiply-accumulates */
-    do
+    while (i > 0U)
     {
       /* acc =  b[numTaps-1] * x[n-numTaps-1] + b[numTaps-2] * x[n-numTaps-2] + b[numTaps-3] * x[n-numTaps-3] +...+ b[0] * x[0] */
       acc0 += *px++ * *pb++;
 
       i--;
-    } while (i > 0U);
+    }
 
     /* Store result in destination buffer. */
     *pDst++ = acc0;
@@ -709,6 +1295,8 @@
 }
 
 #endif /* #if defined(ARM_MATH_NEON) */
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
+
 /**
 * @} end of FIR group
 */
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c
index 02e82ad..2405c3f 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_init_f32.c
@@ -54,6 +54,14 @@
   @par
                    <code>pState</code> points to the array of state variables.
                    <code>pState</code> is of length <code>numTaps+blockSize-1</code> samples, where <code>blockSize</code> is the number of input samples processed by each call to <code>arm_fir_f32()</code>.
+  @par          Initialization of Helium version
+                 For Helium version the array of coefficients must be a multiple of 16 even if less
+                 then 16 coefficients are used. The additional coefficients must be set to 0.
+                 It does not mean that all the coefficients will be used in the filter (numTaps
+                 is still set to its right value in the init function.) It just means that
+                 the implementation may require to read more coefficients due to the vectorization and
+                 to avoid having to manage too many different cases in the code.
+
  */
 
 void arm_fir_init_f32(
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c
index e20798e..8081e34 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q15.c
@@ -262,14 +262,14 @@
 
     tapCnt = numTaps >> 1U;
 
-    do
+    while (tapCnt > 0U)
     {
       acc0 += (q31_t) *px++ * *pb++;
-	  acc0 += (q31_t) *px++ * *pb++;
+	    acc0 += (q31_t) *px++ * *pb++;
 
       tapCnt--;
     }
-    while (tapCnt > 0U);
+    
 
     /* The result is in 2.30 format. Convert to 1.15 with saturation.
        Then store the output in the destination buffer. */
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c
index c57371b..a54cf16 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q31.c
@@ -55,7 +55,627 @@
  @remark
                    Refer to \ref arm_fir_fast_q31() for a faster but less precise implementation of this filter.
  */
+//#if defined(ARM_MATH_MVEI)
+#if 0
 
+/* Work in progress. This MVEI implementation is not yet working */
+
+#include "arm_helium_utils.h"
+
+static void arm_fir_q31_1_4_mve(const arm_fir_instance_q31 * S, const q31_t * pSrc, q31_t * pDst, uint32_t blockSize)
+{
+    q31_t    *pState = S->pState;   /* State pointer */
+    const q31_t    *pCoeffs = S->pCoeffs; /* Coefficient pointer */
+    q31_t    *pStateCur;        /* Points to the current sample of the state */
+    const q31_t    *pSamples;         /* Temporary pointer to the sample buffer */
+    q31_t    *pOutput;          /* Temporary pointer to the output buffer */
+    const q31_t    *pTempSrc;         /* Temporary pointer to the source data */
+    q31_t    *pTempDest;        /* Temporary pointer to the destination buffer */
+    uint32_t  numTaps = S->numTaps; /* Number of filter coefficients in the filter */
+    uint32_t  blkCnt;
+    q31x4_t vecIn0;
+
+    /*
+     * pState points to state array which contains previous frame (numTaps - 1) samples
+     * pStateCur points to the location where the new input data should be written
+     */
+    pStateCur = &(pState[(numTaps - 1u)]);
+    pTempSrc = pSrc;
+    pSamples = pState;
+    pOutput = pDst;
+
+    q63_t     acc0, acc1, acc2, acc3;
+    /*
+     * load 4 coefs
+     */
+    q31x4_t vecCoeffs = *(q31x4_t *) pCoeffs;
+
+    blkCnt = blockSize >> 2;
+    while (blkCnt > 0U)
+    {
+        const q31_t    *pSamplesTmp = pSamples;
+
+        /*
+         * Save 4 input samples in the history buffer
+         */
+        vst1q(pStateCur, vld1q(pTempSrc));
+        pStateCur += 4;
+        pTempSrc += 4;
+
+        vecIn0 = vld1q(pSamplesTmp);
+        acc0 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+        vecIn0 = vld1q(&pSamplesTmp[1]);
+        acc1 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+        vecIn0 = vld1q(&pSamplesTmp[2]);
+        acc2 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+        vecIn0 = vld1q(&pSamplesTmp[3]);
+        acc3 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+        acc0 = asrl(acc0, 23);
+        acc1 = asrl(acc1, 23);
+        acc2 = asrl(acc2, 23);
+        acc3 = asrl(acc3, 23);
+
+        *pOutput++ = (q31_t) acc0;
+        *pOutput++ = (q31_t) acc1;
+        *pOutput++ = (q31_t) acc2;
+        *pOutput++ = (q31_t) acc3;
+
+        pSamples += 4;
+        /*
+         * Decrement the sample block loop counter
+         */
+        blkCnt--;
+    }
+
+    uint32_t  residual = blockSize & 3;
+    switch (residual)
+    {
+    case 3:
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            *(q31x4_t *) pStateCur = *(q31x4_t *) pTempSrc;
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            acc0 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+            vecIn0 = vld1q(&pSamples[1]);
+            acc1 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+            vecIn0 = vld1q(&pSamples[2]);
+            acc2 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+            acc0 = asrl(acc0, 23);
+            acc1 = asrl(acc1, 23);
+            acc2 = asrl(acc2, 23);
+
+            *pOutput++ = (q31_t) acc0;
+            *pOutput++ = (q31_t) acc1;
+            *pOutput++ = (q31_t) acc2;
+        }
+        break;
+
+    case 2:
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            acc0 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+            vecIn0 = vld1q(&pSamples[1]);
+            acc1 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+            acc0 = asrl(acc0, 23);
+            acc1 = asrl(acc1, 23);
+
+            *pOutput++ = (q31_t) acc0;
+            *pOutput++ = (q31_t) acc1;
+        }
+        break;
+
+    case 1:
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            acc0 = vrmlaldavhq(vecIn0, vecCoeffs);
+
+            acc0 = asrl(acc0, 23);
+
+            *pOutput++ = (q31_t) acc0;
+        }
+        break;
+    }
+
+    /*
+     * Copy the samples back into the history buffer start
+     */
+    pTempSrc = &pState[blockSize];
+    pTempDest = pState;
+
+    blkCnt = numTaps >> 2;
+    while (blkCnt > 0U)
+    {
+        vst1q(pTempDest, vld1q(pTempSrc));
+        pTempSrc += 4;
+        pTempDest += 4;
+        blkCnt--;
+    }
+    blkCnt = numTaps & 3;
+    if (blkCnt > 0U)
+    {
+        mve_pred16_t p0 = vctp32q(blkCnt);
+        vstrwq_p_s32(pTempDest, vld1q(pTempSrc), p0);
+    }
+}
+
+static void arm_fir_q31_5_8_mve(const arm_fir_instance_q31 * S, const q31_t * pSrc, q31_t * pDst, uint32_t blockSize)
+{
+    q31_t    *pState = S->pState;   /* State pointer */
+    const q31_t    *pCoeffs = S->pCoeffs; /* Coefficient pointer */
+    q31_t    *pStateCur;        /* Points to the current sample of the state */
+    const q31_t    *pSamples;         /* Temporary pointer to the sample buffer */
+    q31_t    *pOutput;          /* Temporary pointer to the output buffer */
+    const q31_t    *pTempSrc;         /* Temporary pointer to the source data */
+    q31_t    *pTempDest;        /* Temporary pointer to the destination buffer */
+    uint32_t  numTaps = S->numTaps; /* Number of filter coefficients in the filter */
+    uint32_t  blkCnt;
+    q31x4_t vecIn0;
+    q63_t     acc0, acc1, acc2, acc3;
+    q31x4_t vecCoeffs1_4, vecCoeffs5_8;
+
+    /*
+     * pState points to state array which contains previous frame (numTaps - 1) samples
+     * pStateCur points to the location where the new input data should be written
+     */
+    pStateCur = &(pState[(numTaps - 1u)]);
+    pTempSrc = pSrc;
+    pSamples = pState;
+    pOutput = pDst;
+
+
+    /*
+     * load 8 coefs
+     */
+    vecCoeffs1_4 = *(q31x4_t *) pCoeffs;
+    vecCoeffs5_8 = *(q31x4_t *) (pCoeffs + 4);
+
+    blkCnt = blockSize >> 2;
+    while (blkCnt > 0U)
+    {
+        const q31_t    *pSamplesTmp = pSamples;
+
+        /*
+         * Save 4 input samples in the history buffer
+         */
+        vst1q(pStateCur, vld1q(pTempSrc));
+
+        vecIn0 = vld1q(pSamplesTmp);
+        acc0 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+        vecIn0 = vld1q(&pSamplesTmp[1]);
+        acc1 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+        vecIn0 = vld1q(&pSamplesTmp[2]);
+        acc2 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+        vecIn0 = vld1q(&pSamplesTmp[3]);
+        acc3 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+        vecIn0 = vld1q(&pSamplesTmp[4]);
+        acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs5_8);
+
+        vecIn0 = vld1q(&pSamplesTmp[5]);
+        acc1 = vrmlaldavhaq(acc1, vecIn0, vecCoeffs5_8);
+
+        vecIn0 = vld1q(&pSamplesTmp[6]);
+        acc2 = vrmlaldavhaq(acc2, vecIn0, vecCoeffs5_8);
+
+        vecIn0 = vld1q(&pSamplesTmp[7]);
+        acc3 = vrmlaldavhaq(acc3, vecIn0, vecCoeffs5_8);
+
+
+        acc0 = asrl(acc0, 23);
+        acc1 = asrl(acc1, 23);
+        acc2 = asrl(acc2, 23);
+        acc3 = asrl(acc3, 23);
+
+        *pOutput++ = (q31_t) acc0;
+        *pOutput++ = (q31_t) acc1;
+        *pOutput++ = (q31_t) acc2;
+        *pOutput++ = (q31_t) acc3;
+
+        pSamples += 4;
+        pStateCur += 4;
+        pTempSrc += 4;
+
+        /*
+         * Decrement the sample block loop counter
+         */
+        blkCnt--;
+    }
+
+    uint32_t  residual = blockSize & 3;
+    switch (residual)
+    {
+    case 3:
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            *(q31x4_t *) pStateCur = *(q31x4_t *) pTempSrc;
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            acc0 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+            vecIn0 = vld1q(&pSamples[1]);
+            acc1 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+            vecIn0 = vld1q(&pSamples[2]);
+            acc2 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+            vecIn0 = vld1q(&pSamples[3]);
+            acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs5_8);
+
+            vecIn0 = vld1q(&pSamples[4]);
+            acc1 = vrmlaldavhaq(acc1, vecIn0, vecCoeffs5_8);
+
+            vecIn0 = vld1q(&pSamples[5]);
+            acc2 = vrmlaldavhaq(acc2, vecIn0, vecCoeffs5_8);
+
+            acc0 = asrl(acc0, 23);
+            acc1 = asrl(acc1, 23);
+            acc2 = asrl(acc2, 23);
+
+            *pOutput++ = (q31_t) acc0;
+            *pOutput++ = (q31_t) acc1;
+            *pOutput++ = (q31_t) acc2;
+        }
+        break;
+
+    case 2:
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            acc0 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+            vecIn0 = vld1q(&pSamples[1]);
+            acc1 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+            vecIn0 = vld1q(&pSamples[4]);
+            acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs5_8);
+
+            vecIn0 = vld1q(&pSamples[5]);
+            acc1 = vrmlaldavhaq(acc1, vecIn0, vecCoeffs5_8);
+
+            acc0 = asrl(acc0, 23);
+            acc1 = asrl(acc1, 23);
+
+            *pOutput++ = (q31_t) acc0;
+            *pOutput++ = (q31_t) acc1;
+        }
+        break;
+
+    case 1:
+        {
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            vecIn0 = vld1q(pSamples);
+            acc0 = vrmlaldavhq(vecIn0, vecCoeffs1_4);
+
+            vecIn0 = vld1q(&pSamples[4]);
+            acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs5_8);
+
+            acc0 = asrl(acc0, 23);
+
+            *pOutput++ = (q31_t) acc0;
+        }
+        break;
+    }
+
+    /*
+     * Copy the samples back into the history buffer start
+     */
+    pTempSrc = &pState[blockSize];
+    pTempDest = pState;
+
+    blkCnt = numTaps >> 2;
+    while (blkCnt > 0U)
+    {
+        vst1q(pTempDest, vld1q(pTempSrc));
+        pTempSrc += 4;
+        pTempDest += 4;
+        blkCnt--;
+    }
+    blkCnt = numTaps & 3;
+    if (blkCnt > 0U)
+    {
+        mve_pred16_t p0 = vctp32q(blkCnt);
+        vstrwq_p_s32(pTempDest, vld1q(pTempSrc), p0);
+    }
+}
+
+void arm_fir_q31(
+  const arm_fir_instance_q31 * S,
+  const q31_t * pSrc,
+        q31_t * pDst,
+        uint32_t blockSize)
+{
+    q31_t    *pState = S->pState;   /* State pointer */
+    const q31_t    *pCoeffs = S->pCoeffs; /* Coefficient pointer */
+    q31_t    *pStateCur;        /* Points to the current sample of the state */
+    const q31_t    *pSamples;         /* Temporary pointer to the sample buffer */
+    q31_t    *pOutput;          /* Temporary pointer to the output buffer */
+    const q31_t    *pTempSrc;         /* Temporary pointer to the source data */
+    q31_t    *pTempDest;        /* Temporary pointer to the destination buffer */
+    uint32_t  numTaps = S->numTaps; /* Number of filter coefficients in the filter */
+    uint32_t  blkCnt;
+    q31x4_t vecIn0;
+    uint32_t  tapsBlkCnt = (numTaps + 3) / 4;
+    q63_t     acc0, acc1, acc2, acc3;
+    q31x4_t vecCoeffs;
+
+    /*
+     * [1 to 8 taps] specialized routines
+     */
+    if (numTaps <= 4)
+    {
+        arm_fir_q31_1_4_mve(S, pSrc, pDst, blockSize);
+        return;
+    }
+    else if (numTaps <= 8)
+    {
+        arm_fir_q31_5_8_mve(S, pSrc, pDst, blockSize);
+        return;
+    }
+
+    /*
+     * pState points to state array which contains previous frame (numTaps - 1) samples
+     * pStateCur points to the location where the new input data should be written
+     */
+    pStateCur   = &(pState[(numTaps - 1u)]);
+    pSamples    = pState;
+    pTempSrc    = pSrc;
+    pOutput     = pDst;
+    blkCnt      = blockSize >> 2;
+    while (blkCnt > 0U)
+    {
+        const q31_t    *pCoeffsTmp = pCoeffs;
+        const q31_t    *pSamplesTmp = pSamples;
+
+        acc0 = 0LL;
+        acc1 = 0LL;
+        acc2 = 0LL;
+        acc3 = 0LL;
+
+        /*
+         * Save 4 input samples in the history buffer
+         */
+        vst1q(pStateCur, vld1q(pTempSrc));
+        pStateCur += 4;
+        pTempSrc += 4;
+
+        uint32_t       i = tapsBlkCnt;
+        while (i > 0U)
+        {
+            /*
+             * load 4 coefs
+             */
+            vecCoeffs = *(q31x4_t *) pCoeffsTmp;
+
+            vecIn0 = vld1q(pSamplesTmp);
+            acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs);
+
+            vecIn0 = vld1q(&pSamplesTmp[1]);
+            acc1 = vrmlaldavhaq(acc1, vecIn0, vecCoeffs);
+
+            vecIn0 = vld1q(&pSamplesTmp[2]);
+            acc2 = vrmlaldavhaq(acc2, vecIn0, vecCoeffs);
+
+            vecIn0 = vld1q(&pSamplesTmp[3]);
+            acc3 = vrmlaldavhaq(acc3, vecIn0, vecCoeffs);
+
+            pSamplesTmp += 4;
+            pCoeffsTmp += 4;
+            /*
+             * Decrement the taps block loop counter
+             */
+            i--;
+        }
+
+        /* .54-> .31 conversion and store accumulators */
+        acc0 = asrl(acc0, 23);
+        acc1 = asrl(acc1, 23);
+        acc2 = asrl(acc2, 23);
+        acc3 = asrl(acc3, 23);
+
+        *pOutput++ = (q31_t) acc0;
+        *pOutput++ = (q31_t) acc1;
+        *pOutput++ = (q31_t) acc2;
+        *pOutput++ = (q31_t) acc3;
+
+        pSamples += 4;
+
+        /*
+         * Decrement the sample block loop counter
+         */
+        blkCnt--;
+    }
+
+    uint32_t  residual = blockSize & 3;
+    switch (residual)
+    {
+    case 3:
+        {
+            const q31_t    *pCoeffsTmp = pCoeffs;
+            const q31_t    *pSamplesTmp = pSamples;
+
+            acc0 = 0LL;
+            acc1 = 0LL;
+            acc2 = 0LL;
+
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            *(q31x4_t *) pStateCur = *(q31x4_t *) pTempSrc;
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            uint32_t       i = tapsBlkCnt;
+            while (i > 0U)
+            {
+                vecCoeffs = *(q31x4_t *) pCoeffsTmp;
+
+                vecIn0 = vld1q(pSamplesTmp);
+                acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs);
+
+                vecIn0 = vld1q(&pSamplesTmp[1]);
+                acc1 = vrmlaldavhaq(acc1, vecIn0, vecCoeffs);
+
+                vecIn0 = vld1q(&pSamplesTmp[2]);
+                acc2 = vrmlaldavhaq(acc2, vecIn0, vecCoeffs);
+
+                pSamplesTmp += 4;
+                pCoeffsTmp += 4;
+                i--;
+            }
+
+            acc0 = asrl(acc0, 23);
+            acc1 = asrl(acc1, 23);
+            acc2 = asrl(acc2, 23);
+
+            *pOutput++ = (q31_t) acc0;
+            *pOutput++ = (q31_t) acc1;
+            *pOutput++ = (q31_t) acc2;
+        }
+        break;
+
+    case 2:
+        {
+            const q31_t    *pCoeffsTmp = pCoeffs;
+            const q31_t    *pSamplesTmp = pSamples;
+
+            acc0 = 0LL;
+            acc1 = 0LL;
+
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            uint32_t       i = tapsBlkCnt;
+            while (i > 0U)
+            {
+                vecCoeffs = *(q31x4_t *) pCoeffsTmp;
+
+                vecIn0 = vld1q(pSamplesTmp);
+                acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs);
+
+                vecIn0 = vld1q(&pSamplesTmp[1]);
+                acc1 = vrmlaldavhaq(acc1, vecIn0, vecCoeffs);
+
+                pSamplesTmp += 4;
+                pCoeffsTmp += 4;
+                i--;
+            }
+
+            acc0 = asrl(acc0, 23);
+            acc1 = asrl(acc1, 23);
+
+            *pOutput++ = (q31_t) acc0;
+            *pOutput++ = (q31_t) acc1;
+        }
+        break;
+
+    case 1:
+        {
+            const q31_t    *pCoeffsTmp = pCoeffs;
+            const q31_t    *pSamplesTmp = pSamples;
+
+            acc0 = 0LL;
+
+            /*
+             * Save 4 input samples in the history buffer
+             */
+            vst1q(pStateCur, vld1q(pTempSrc));
+            pStateCur += 4;
+            pTempSrc += 4;
+
+            uint32_t       i = tapsBlkCnt;
+            while (i > 0U)
+            {
+                vecCoeffs = *(q31x4_t *) pCoeffsTmp;
+
+                vecIn0 = vld1q(pSamplesTmp);
+                acc0 = vrmlaldavhaq(acc0, vecIn0, vecCoeffs);
+
+                pSamplesTmp += 4;
+                pCoeffsTmp += 4;
+                i--;
+            }
+
+            acc0 = asrl(acc0, 23);
+
+            *pOutput++ = (q31_t) acc0;
+        }
+        break;
+    }
+
+    /*
+     * Copy the samples back into the history buffer start
+     */
+    pTempSrc = &pState[blockSize];
+    pTempDest = pState;
+
+    blkCnt = numTaps >> 2;
+    while (blkCnt > 0U)
+    {
+        vst1q(pTempDest, vld1q(pTempSrc));
+        pTempSrc += 4;
+        pTempDest += 4;
+        blkCnt--;
+    }
+    blkCnt = numTaps & 3;
+    if (blkCnt > 0U)
+    {
+        mve_pred16_t p0 = vctp32q(blkCnt);
+        vstrwq_p_s32(pTempDest, vld1q(pTempSrc), p0);
+    }
+}
+
+#else
 void arm_fir_q31(
   const arm_fir_instance_q31 * S,
   const q31_t * pSrc,
@@ -282,6 +902,7 @@
   }
 
 }
+#endif /* defined(ARM_MATH_MVEI) */
 
 /**
   @} end of FIR group
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c
index 5f6d354..229c6b1 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_fir_q7.c
@@ -256,11 +256,11 @@
     i = numTaps;
 
     /* Perform the multiply-accumulates */
-    do
+    while (i > 0U)
     {
       acc0 += (q15_t) * (px++) * (*(pb++));
       i--;
-    } while (i > 0U);
+    } 
 
     /* The result is in 2.14 format. Convert to 1.7
        Then store the output in the destination buffer. */
diff --git a/CMSIS/DSP/Testing/CMakeLists.txt b/CMSIS/DSP/Testing/CMakeLists.txt
index e134d77..384edbf 100644
--- a/CMSIS/DSP/Testing/CMakeLists.txt
+++ b/CMSIS/DSP/Testing/CMakeLists.txt
@@ -176,6 +176,10 @@
   Source/Tests/MISCQ31.cpp
   Source/Tests/MISCQ15.cpp
   Source/Tests/MISCQ7.cpp
+  Source/Tests/FIRF32.cpp
+  Source/Tests/FIRQ31.cpp
+  Source/Tests/FIRQ15.cpp
+  Source/Tests/FIRQ7.cpp
   Source/Tests/Pooling.cpp
   Source/Tests/Softmax.cpp
   Source/Tests/NNSupport.cpp
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Error.h b/CMSIS/DSP/Testing/FrameworkInclude/Error.h
index dc7be87..e3743b2 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Error.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Error.h
@@ -55,10 +55,19 @@
     {
         this->errorID = id;
         this->lineNumber = nb;
+        this->details[0]='\0';
+    };
+
+    Error(Testing::errorID_t id,unsigned long nb, const char *details)
+    {
+        this->errorID = id;
+        this->lineNumber = nb;
+        strcpy(this->details,details);
     };
 
     Testing::errorID_t errorID;
     unsigned long lineNumber;
+    char details[200];
 };
 
 /*
@@ -148,13 +157,23 @@
     }
 
     unsigned long i=0;
+    char id[40];
 
     T *ptrA = pa.ptr();
     T *ptrB = pb.ptr();
 
     for(i=0; i < pa.nbSamples(); i++)
     {
-       assert_equal(nb,ptrA[i],ptrB[i]);
+       try
+       {
+          assert_equal(nb,ptrA[i],ptrB[i]);
+       }
+       catch(Error &err)
+       {          
+          sprintf(id," (id=%lu)",i);
+          strcat(err.details,id);
+          throw(err);
+       }
     }
 };
 
@@ -193,13 +212,24 @@
     }
 
     unsigned long i=0;
+    char id[40];
 
     T *ptrA = pa.ptr();
     T *ptrB = pb.ptr();
 
     for(i=0; i < pa.nbSamples(); i++)
     {
-       assert_near_equal(nb,ptrA[i],ptrB[i],threshold);
+       
+       try
+       {
+          assert_near_equal(nb,ptrA[i],ptrB[i],threshold);
+       }
+       catch(Error &err)
+       {          
+          sprintf(id," (id=%lu)",i);
+          strcat(err.details,id);
+          throw(err);
+       }
     }
 };
 
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h b/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h
index b24bd52..564d4bd 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/FPGA.h
@@ -51,6 +51,7 @@
       virtual void ReadTestIdentification();
       virtual Testing::nbParameters_t ReadNbParameters();
       virtual void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t);
+      virtual void DispErrorDetails(const char* );
       virtual void EndGroup();
       virtual void ReadPatternList();
       virtual void ReadOutputList();
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h b/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h
index 58fbd3b..fbcc326 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Semihosting.h
@@ -53,6 +53,7 @@
       virtual void ReadTestIdentification();
       virtual Testing::nbParameters_t ReadNbParameters();
       virtual void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t);
+      virtual void DispErrorDetails(const char* );
       virtual void EndGroup();
       virtual void ImportPattern(Testing::PatternID_t);
       virtual void ReadPatternList();
diff --git a/CMSIS/DSP/Testing/FrameworkInclude/Test.h b/CMSIS/DSP/Testing/FrameworkInclude/Test.h
index 521e28b..e3adaf7 100644
--- a/CMSIS/DSP/Testing/FrameworkInclude/Test.h
+++ b/CMSIS/DSP/Testing/FrameworkInclude/Test.h
@@ -231,6 +231,12 @@
       virtual void DispStatus(Testing::TestStatus,Testing::errorID_t,unsigned long,Testing::cycles_t cycles)=0;
       
 
+      /** Dump additional details for the error
+
+          For instance, for SNR error, it may contain the SNR value.
+      */
+      virtual void DispErrorDetails(const char* )=0;
+
       /** Dump parameters for a test
 
           When a test is run several time with different
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Error.cpp b/CMSIS/DSP/Testing/FrameworkSource/Error.cpp
index ed16214..00b88af 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Error.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Error.cpp
@@ -50,7 +50,9 @@
 {
     if (fabs(pa - pb) > threshold)
     {
-         throw (Error(EQUAL_ERROR,nb));
+         char details[200];
+         sprintf(details,"diff %g > %g",fabs(pa - pb) , threshold);
+         throw (Error(EQUAL_ERROR,nb,details));
     }
 };
 
@@ -59,7 +61,9 @@
 {
     if (fabs(pa - pb) > threshold)
     {
-         throw (Error(EQUAL_ERROR,nb));
+         char details[200];
+         sprintf(details,"diff %g > %g",fabs(pa - pb) , threshold);
+         throw (Error(EQUAL_ERROR,nb,details));
     }
 };
 
@@ -69,7 +73,9 @@
 {
     if (abs(pa - pb) > threshold)
     {
-         throw (Error(EQUAL_ERROR,nb));
+         char details[200];
+         sprintf(details,"diff %lld > %lld",abs(pa - pb) , threshold);
+         throw (Error(EQUAL_ERROR,nb,details));
     }
 };
 
@@ -78,7 +84,9 @@
 {
     if (abs(pa - pb) > threshold)
     {
-         throw (Error(EQUAL_ERROR,nb));
+         char details[200];
+         sprintf(details,"diff %d > %d",abs(pa - pb) , threshold);
+         throw (Error(EQUAL_ERROR,nb,details));
     }
 };
 
@@ -87,7 +95,9 @@
 {
     if (abs(pa - pb) > threshold)
     {
-         throw (Error(EQUAL_ERROR,nb));
+         char details[200];
+         sprintf(details,"diff %d > %d",abs(pa - pb) , threshold);
+         throw (Error(EQUAL_ERROR,nb,details));
     }
 };
 
@@ -96,7 +106,9 @@
 {
     if (abs(pa - pb) > threshold)
     {
-         throw (Error(EQUAL_ERROR,nb));
+         char details[200];
+         sprintf(details,"diff %d > %d",abs(pa - pb) , threshold);
+         throw (Error(EQUAL_ERROR,nb,details));
     }
 };
 
@@ -142,7 +154,10 @@
         //printf("%6.9f %6.9f %6.9f %g %g\n",a,b,rel,delta,average);
         if (rel > threshold)
         {
-            throw (Error(RELATIVE_ERROR,nb));
+            //printf("rel = %g, threshold %g \n",rel,threshold);
+            char details[200];
+            sprintf(details,"diff (%g,%g), %g > %g",a,b,rel , threshold);
+            throw (Error(RELATIVE_ERROR,nb,details));
         }
     }
 };
@@ -161,10 +176,20 @@
 
     float32_t *ptrA = pa.ptr();
     float32_t *ptrB = pb.ptr();
+    char id[40];
 
     for(i=0; i < pa.nbSamples(); i++)
     {
-       assert_relative_error(nb,ptrA[i],ptrB[i],threshold);
+       try
+       {
+          assert_relative_error(nb,ptrA[i],ptrB[i],threshold);
+       }
+       catch(Error &err)
+       {          
+          sprintf(id," (id=%lu)",i);
+          strcat(err.details,id);
+          throw(err);
+       }
     }
 };
 
@@ -173,7 +198,9 @@
     
     if (abs(val - ref) > (absthreshold + relthreshold * abs(ref)))
     {
-        throw (Error(CLOSE_ERROR,nb));
+        char details[200];
+        sprintf(details,"close %g : abs=%g, rel=%g",abs(val - ref) , absthreshold,relthreshold);
+        throw (Error(CLOSE_ERROR,nb,details));
     }
 };
 
@@ -188,13 +215,24 @@
     }
 
     unsigned long i=0;
+    char id[40];
 
     float64_t *ptrA = pref.ptr();
     float64_t *ptrB = pval.ptr();
 
     for(i=0; i < pref.nbSamples(); i++)
     {
-       assert_close_error(nb,ptrA[i],ptrB[i],absthreshold,relthreshold);
+       try
+       {
+          assert_close_error(nb,ptrA[i],ptrB[i],absthreshold,relthreshold);
+       }
+       catch(Error &err)
+       {          
+          sprintf(id," (id=%lu)",i);
+          strcat(err.details,id);
+          throw(err);
+       }
+       
     }
 };
 
@@ -203,7 +241,9 @@
     
     if (abs(val - ref) > (absthreshold + relthreshold * abs(ref)))
     {
-        throw (Error(CLOSE_ERROR,nb));
+        char details[200];
+        sprintf(details,"close %g : abs=%g, rel=%g",abs(val - ref) , absthreshold,relthreshold);
+        throw (Error(CLOSE_ERROR,nb,details));
     }
 };
 
@@ -218,13 +258,24 @@
     }
 
     unsigned long i=0;
+    char id[40];
 
     float32_t *ptrA = pref.ptr();
     float32_t *ptrB = pval.ptr();
 
     for(i=0; i < pref.nbSamples(); i++)
     {
-       assert_close_error(nb,ptrA[i],ptrB[i],absthreshold,relthreshold);
+       try
+       {
+          assert_close_error(nb,ptrA[i],ptrB[i],absthreshold,relthreshold);
+       }
+       catch(Error &err)
+       {          
+          sprintf(id," (id=%lu)",i);
+          strcat(err.details,id);
+          throw(err);
+       }
+       
     }
 };
 
@@ -467,7 +518,9 @@
    
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 }
 
@@ -477,11 +530,13 @@
 
    snr = arm_snr_f32(&a, &b, 1);
 
-   //printf("SNR = %f, %f %f\n",snr,a,b);
+   //printf("SNR = %f\n",snr);
    
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 }
 
@@ -506,7 +561,9 @@
    
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 }
 
@@ -532,7 +589,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -547,7 +606,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -570,11 +631,13 @@
 
    snr = arm_snr_q31(ptrA, ptrB, pa.nbSamples());
 
-   // printf("SNR = %f\n",snr);
+   //printf("SNR = %f\n",snr);
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -588,7 +651,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -614,7 +679,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -629,7 +696,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -655,7 +724,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
@@ -670,7 +741,9 @@
 
    if (snr < threshold)
    {
-     throw (Error(SNR_ERROR,nb));
+     char details[200];
+     sprintf(details,"SNR %g < %g",snr,threshold);
+     throw (Error(SNR_ERROR,nb,details));
    }
 
 }
diff --git a/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp b/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp
index fa5668c..38b7f85 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/FPGA.cpp
@@ -272,6 +272,11 @@
         }
     }
 
+    void FPGA::DispErrorDetails(const char* details)
+    {
+          printf("E: %s\n",details);
+    }
+
     void FPGA::EndGroup()
     {
        printf("S: p\n");
diff --git a/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp b/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp
index 0ef94bf..4ebd043 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/IORunner.cpp
@@ -134,6 +134,7 @@
         int failedTests=0;
         Testing::errorID_t error=0;
         unsigned long line = 0;
+        char details[200];
         Testing::cycles_t cycles=0;
         Testing::nbParameters_t nbParams;
 
@@ -157,6 +158,7 @@
             error = UNKNOWN_ERROR;
             line = 0;
             cycles = 0;
+            details[0]='\0';
             Testing::param_t *paramData=NULL;
             Testing::nbParameterEntries_t entries=0;
             std::vector<Testing::param_t> params(nbParams);
@@ -225,6 +227,7 @@
                  {
                     error = ex.errorID;
                     line = ex.lineNumber;
+                    strcpy(details,ex.details);
                     result=Testing::kTestFailed;
                  }
               }
@@ -268,6 +271,7 @@
   
               // Dump test status to output
               m_io->DispStatus(result,error,line,cycles);
+              m_io->DispErrorDetails(details);
               m_io->DumpParams(params);
             }
             if (paramData)
diff --git a/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp b/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp
index 29ca378..5849f29 100644
--- a/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp
+++ b/CMSIS/DSP/Testing/FrameworkSource/Semihosting.cpp
@@ -374,6 +374,11 @@
         }
       }
 
+      void Semihosting::DispErrorDetails(const char* details)
+      {
+          printf("E: %s\n",details);
+      }
+
       /**
            Signal end of group
 
diff --git a/CMSIS/DSP/Testing/Include/Tests/FIRF32.h b/CMSIS/DSP/Testing/Include/Tests/FIRF32.h
new file mode 100644
index 0000000..fd1ca73
--- /dev/null
+++ b/CMSIS/DSP/Testing/Include/Tests/FIRF32.h
@@ -0,0 +1,23 @@
+#include "Test.h"
+#include "Pattern.h"
+class FIRF32:public Client::Suite
+    {
+        public:
+            FIRF32(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "FIRF32_decl.h"
+            
+            Client::Pattern<float32_t> coefs;
+            Client::Pattern<float32_t> inputs;
+            Client::RefPattern<int16_t> configs;
+            Client::LocalPattern<float32_t> output;
+            Client::LocalPattern<float32_t> state;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<float32_t> ref;
+
+
+            arm_fir_instance_f32 S;
+
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/FIRQ15.h b/CMSIS/DSP/Testing/Include/Tests/FIRQ15.h
new file mode 100644
index 0000000..b17a6dd
--- /dev/null
+++ b/CMSIS/DSP/Testing/Include/Tests/FIRQ15.h
@@ -0,0 +1,22 @@
+#include "Test.h"
+#include "Pattern.h"
+class FIRQ15:public Client::Suite
+    {
+        public:
+            FIRQ15(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "FIRQ15_decl.h"
+            
+            Client::Pattern<q15_t> coefs;
+            Client::Pattern<q15_t> inputs;
+            Client::RefPattern<int16_t> configs;
+            Client::LocalPattern<q15_t> output;
+            Client::LocalPattern<q15_t> state;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<q15_t> ref;
+
+
+            arm_fir_instance_q15 S;
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/FIRQ31.h b/CMSIS/DSP/Testing/Include/Tests/FIRQ31.h
new file mode 100644
index 0000000..92298ce
--- /dev/null
+++ b/CMSIS/DSP/Testing/Include/Tests/FIRQ31.h
@@ -0,0 +1,22 @@
+#include "Test.h"
+#include "Pattern.h"
+class FIRQ31:public Client::Suite
+    {
+        public:
+            FIRQ31(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "FIRQ31_decl.h"
+            
+            Client::Pattern<q31_t> coefs;
+            Client::Pattern<q31_t> inputs;
+            Client::RefPattern<int16_t> configs;
+            Client::LocalPattern<q31_t> output;
+            Client::LocalPattern<q31_t> state;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<q31_t> ref;
+
+
+            arm_fir_instance_q31 S;
+    };
diff --git a/CMSIS/DSP/Testing/Include/Tests/FIRQ7.h b/CMSIS/DSP/Testing/Include/Tests/FIRQ7.h
new file mode 100644
index 0000000..59bb345
--- /dev/null
+++ b/CMSIS/DSP/Testing/Include/Tests/FIRQ7.h
@@ -0,0 +1,22 @@
+#include "Test.h"
+#include "Pattern.h"
+class FIRQ7:public Client::Suite
+    {
+        public:
+            FIRQ7(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "FIRQ7_decl.h"
+            
+            Client::Pattern<q7_t> coefs;
+            Client::Pattern<q7_t> inputs;
+            Client::RefPattern<int16_t> configs;
+            Client::LocalPattern<q7_t> output;
+            Client::LocalPattern<q7_t> state;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<q7_t> ref;
+
+
+            arm_fir_instance_q7 S;
+    };
diff --git a/CMSIS/DSP/Testing/PatternGeneration/FIR.py b/CMSIS/DSP/Testing/PatternGeneration/FIR.py
index cea47cd..07ad212 100755
--- a/CMSIS/DSP/Testing/PatternGeneration/FIR.py
+++ b/CMSIS/DSP/Testing/PatternGeneration/FIR.py
@@ -2,14 +2,19 @@
 import numpy as np
 import itertools
 import Tools
-
+from scipy import signal
+from pylab import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show,semilogx, semilogy
 
 # Those patterns are used for tests and benchmarks.
 # For tests, there is the need to add tests for saturation
 
+def cartesian(*somelists):
+   r=[]
+   for element in itertools.product(*somelists):
+       r.append(element)
+   return(r)
 
-
-def writeTests(config):
+def writeTests(config,format):
     NBSAMPLES=256
     NUMTAPS = 64
 
@@ -22,10 +27,72 @@
     taps = Tools.normalize(taps)
     
 
+    ### For benchmarks
+
     config.writeInput(1, samples,"Samples")
     config.writeInput(1, taps,"Coefs")
     config.writeInput(1, refs,"Refs")
 
+    ### For tests
+
+    # blocksize 1 2 3 8 11 
+    # taps 1 2 3 4 5 6 7 8 11 25
+    # state numTaps + blockSize - 1
+    # ref blockSize
+
+    # Maximum number of samples for all tested FIR configurations is 2*23
+    t = np.linspace(0, 1, 2*23)
+
+    x = np.sin(2*np.pi*50*t)+np.random.randn(len(t)) * 0.08
+    x = Tools.normalize(x)
+    # To avoid saturation
+    x = x / 30.0
+    
+
+    config.writeInput(1, x,"FirInput")
+    tapConfigs=[] 
+    output=[] 
+    defs=[] 
+
+    if format == 0 or format == 31:
+       blk = [1, 2, 3, 8, 11, 16, 23]
+       taps = [1, 2, 3, 4, 5, 6, 7, 8, 11, 16, 23, 25]
+    elif format == 15:
+       blk = [1, 2, 3, 8, 11]
+       taps = [1, 2, 3, 4, 5, 6, 7, 8, 11, 25]
+    elif format == 7:
+       blk = [1, 2, 3, 8, 11]
+       taps = [1, 2, 3, 4, 5, 6, 7, 8, 11, 25]
+
+    configs = cartesian(blk,taps)
+
+    nb=1
+
+    for (b,t) in configs:
+        nbTaps=t
+        # nbTaps + 2 to be sure all coefficients are not saturated
+        pythonCoefs = np.array(list(range(1,nbTaps+1)))/(1.0*(nbTaps+2))
+        coefs=pythonCoefs
+
+        if format == 15:
+          if t % 2 == 1:
+            nbTaps = nbTaps + 1 
+            coefs = np.append(coefs,[0.0])
+        
+        out=signal.lfilter(pythonCoefs,[1.0],x[0:2*b])
+
+        output += list(out)
+        coefs = list(coefs)
+        coefs.reverse()
+        tapConfigs += coefs
+        defs += [b,nbTaps]
+
+        nb = nb + 1
+
+    config.writeInput(1, output,"FirRefs")
+    config.writeInput(1, tapConfigs,"FirCoefs")
+    config.writeReferenceS16(1,defs,"FirConfigs")
+
     
 def generatePatterns():
     PATTERNDIR = os.path.join("Patterns","DSP","Filtering","FIR","FIR")
@@ -34,14 +101,14 @@
     configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
     configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31")
     configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15")
-    #configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7")
+    configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7")
     
     
     
-    writeTests(configf32)
-    writeTests(configq31)
-    writeTests(configq15)
-    #writeTests(configq7)
+    writeTests(configf32,0)
+    writeTests(configq31,31)
+    writeTests(configq15,15)
+    writeTests(configq7,7)
 
 
 if __name__ == '__main__':
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Coefs1_f32.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Coefs1_f32.txt
old mode 100755
new mode 100644
index cea8a6a..7573166
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Coefs1_f32.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Coefs1_f32.txt
@@ -1,130 +1,130 @@
 W
 64
-// -0.044678
-0xbd370015
+// -0.488655
+0xbefa30ee
+// -0.305729
+0xbe9c888b
+// 0.543618
+0x3f0b2a93
+// -0.077362
+0xbd9e6fd6
+// 0.023812
+0x3cc311aa
+// -0.297257
+0xbe983207
 // -1.000000
 0xbf800000
-// -0.560276
-0xbf0f6e3b
-// 0.169281
-0x3e2d5812
-// -0.161412
-0xbe25491a
-// 0.377224
-0x3ec1238d
-// 0.580869
-0x3f14b3d5
-// -0.312683
-0xbea017ed
-// 0.206083
-0x3e530784
-// -0.105459
-0xbdd7faba
-// -0.031071
-0xbcfe881c
-// 0.483385
-0x3ef77e4b
-// -0.328721
-0xbea84e1e
-// -0.107405
-0xbddbf761
-// 0.190200
-0x3e42c3d3
-// 0.330123
-0x3ea905d5
-// -0.191728
-0xbe44543a
-// 0.256903
-0x3e8388bb
-// -0.127187
-0xbe023d4d
-// -0.076466
-0xbd9c9a0f
-// -0.613172
-0xbf1cf8d4
-// -0.004895
-0xbba06249
-// -0.148820
-0xbe186427
-// 0.214758
-0x3e5be9a6
-// -0.070566
-0xbd9084c8
-// 0.281225
-0x3e8ffcc5
-// 0.079433
-0x3da2ade4
-// -0.007388
-0xbbf2142b
-// 0.276484
-0x3e8d8f55
-// 0.052687
-0x3d57ce91
-// 0.155441
-0x3e1f2c03
-// 0.121618
-0x3df9130d
-// -0.556913
-0xbf0e91d5
-// 0.229360
-0x3e6add39
-// 0.975222
-0x3f79a82d
-// 0.687700
-0x3f300d18
-// -0.171663
-0xbe2fc857
-// 0.104019
-0x3dd507cc
-// 0.318325
-0x3ea2fb77
-// -0.011347
-0xbc39e776
-// 0.160416
-0x3e244425
-// 0.816414
-0x3f510084
-// -0.239870
-0xbe75a066
-// 0.399895
-0x3eccbefc
-// 0.422700
-0x3ed86c20
-// -0.469895
-0xbef0960f
-// 0.203792
-0x3e50aee9
-// -0.528449
-0xbf074869
-// -0.208884
-0xbe55e5a3
-// 0.121820
-0x3df97cf3
-// 0.281372
-0x3e900ff2
-// -0.341252
-0xbeaeb8a0
-// 0.112234
-0x3de5dade
-// -0.445283
-0xbee3fc13
-// -0.024050
-0xbcc50547
-// -0.084320
-0xbdacb016
-// 0.003133
-0x3b4d5095
-// -0.225579
-0xbe66fe4c
-// 0.012826
-0x3c522612
-// 0.045872
-0x3d3be472
-// 0.165334
-0x3e294d3f
-// 0.106356
-0x3dd9d11b
-// 0.418000
-0x3ed6041a
-// -0.601288
-0xbf19edfd
+// -0.021071
+0xbcac9c73
+// 0.895448
+0x3f653c12
+// 0.723191
+0x3f39230e
+// 0.507527
+0x3f01ed4f
+// -0.293503
+0xbe964609
+// -0.026346
+0xbcd7d388
+// 0.022038
+0x3cb48960
+// -0.645802
+0xbf255341
+// -0.346309
+0xbeb14f7a
+// 0.258503
+0x3e845a71
+// -0.307125
+0xbe9d3f7e
+// 0.096340
+0x3dc54dc7
+// 0.256911
+0x3e8389dd
+// -0.063551
+0xbd82272d
+// 0.555975
+0x3f0e5461
+// -0.412917
+0xbed369d0
+// -0.045198
+0xbd3921fd
+// 0.449100
+0x3ee5f064
+// 0.291735
+0x3e955e51
+// -0.676432
+0xbf2d2aa8
+// 0.303655
+0x3e9b78b0
+// -0.253624
+0xbe81db0a
+// 0.257274
+0x3e83b96b
+// -0.059101
+0xbd7213dd
+// -0.518344
+0xbf04b235
+// 0.195128
+0x3e47cfc1
+// -0.381687
+0xbec36c7d
+// -0.024760
+0xbccad616
+// -0.569513
+0xbf11cba3
+// 0.204694
+0x3e519b40
+// -0.516617
+0xbf044106
+// -0.393688
+0xbec99176
+// 0.281210
+0x3e8ffabf
+// 0.016638
+0x3c884bd8
+// 0.050582
+0x3d4f2eee
+// 0.114955
+0x3deb6da1
+// 0.058042
+0x3d6dbdbd
+// -0.411764
+0xbed2d2bb
+// -0.291694
+0xbe9558f2
+// 0.271195
+0x3e8ada05
+// 0.073311
+0x3d962403
+// -0.654886
+0xbf27a69f
+// -0.673480
+0xbf2c6934
+// -0.148986
+0xbe188fe5
+// -0.157290
+0xbe2110a5
+// -0.446104
+0xbee467af
+// -0.202074
+0xbe4eec9c
+// -0.000992
+0xba81fa42
+// -0.132536
+0xbe07b79f
+// -0.581263
+0xbf14cda9
+// 0.152356
+0x3e1c0350
+// -0.246155
+0xbe7c1002
+// -0.634788
+0xbf228173
+// 0.986091
+0x3f7c7071
+// -0.530790
+0xbf07e1da
+// 0.439830
+0x3ee1316d
+// -0.217365
+0xbe5e9505
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirCoefs1_f32.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirCoefs1_f32.txt
new file mode 100644
index 0000000..4cfd277
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirCoefs1_f32.txt
@@ -0,0 +1,1556 @@
+W
+777
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
+// 0.333333
+0x3eaaaaab
+// 0.500000
+0x3f000000
+// 0.250000
+0x3e800000
+// 0.600000
+0x3f19999a
+// 0.400000
+0x3ecccccd
+// 0.200000
+0x3e4ccccd
+// 0.666667
+0x3f2aaaab
+// 0.500000
+0x3f000000
+// 0.333333
+0x3eaaaaab
+// 0.166667
+0x3e2aaaab
+// 0.714286
+0x3f36db6e
+// 0.571429
+0x3f124925
+// 0.428571
+0x3edb6db7
+// 0.285714
+0x3e924925
+// 0.142857
+0x3e124925
+// 0.750000
+0x3f400000
+// 0.625000
+0x3f200000
+// 0.500000
+0x3f000000
+// 0.375000
+0x3ec00000
+// 0.250000
+0x3e800000
+// 0.125000
+0x3e000000
+// 0.777778
+0x3f471c72
+// 0.666667
+0x3f2aaaab
+// 0.555556
+0x3f0e38e4
+// 0.444444
+0x3ee38e39
+// 0.333333
+0x3eaaaaab
+// 0.222222
+0x3e638e39
+// 0.111111
+0x3de38e39
+// 0.800000
+0x3f4ccccd
+// 0.700000
+0x3f333333
+// 0.600000
+0x3f19999a
+// 0.500000
+0x3f000000
+// 0.400000
+0x3ecccccd
+// 0.300000
+0x3e99999a
+// 0.200000
+0x3e4ccccd
+// 0.100000
+0x3dcccccd
+// 0.846154
+0x3f589d8a
+// 0.769231
+0x3f44ec4f
+// 0.692308
+0x3f313b14
+// 0.615385
+0x3f1d89d9
+// 0.538462
+0x3f09d89e
+// 0.461538
+0x3eec4ec5
+// 0.384615
+0x3ec4ec4f
+// 0.307692
+0x3e9d89d9
+// 0.230769
+0x3e6c4ec5
+// 0.153846
+0x3e1d89d9
+// 0.076923
+0x3d9d89d9
+// 0.888889
+0x3f638e39
+// 0.833333
+0x3f555555
+// 0.777778
+0x3f471c72
+// 0.722222
+0x3f38e38e
+// 0.666667
+0x3f2aaaab
+// 0.611111
+0x3f1c71c7
+// 0.555556
+0x3f0e38e4
+// 0.500000
+0x3f000000
+// 0.444444
+0x3ee38e39
+// 0.388889
+0x3ec71c72
+// 0.333333
+0x3eaaaaab
+// 0.277778
+0x3e8e38e4
+// 0.222222
+0x3e638e39
+// 0.166667
+0x3e2aaaab
+// 0.111111
+0x3de38e39
+// 0.055556
+0x3d638e39
+// 0.920000
+0x3f6b851f
+// 0.880000
+0x3f6147ae
+// 0.840000
+0x3f570a3d
+// 0.800000
+0x3f4ccccd
+// 0.760000
+0x3f428f5c
+// 0.720000
+0x3f3851ec
+// 0.680000
+0x3f2e147b
+// 0.640000
+0x3f23d70a
+// 0.600000
+0x3f19999a
+// 0.560000
+0x3f0f5c29
+// 0.520000
+0x3f051eb8
+// 0.480000
+0x3ef5c28f
+// 0.440000
+0x3ee147ae
+// 0.400000
+0x3ecccccd
+// 0.360000
+0x3eb851ec
+// 0.320000
+0x3ea3d70a
+// 0.280000
+0x3e8f5c29
+// 0.240000
+0x3e75c28f
+// 0.200000
+0x3e4ccccd
+// 0.160000
+0x3e23d70a
+// 0.120000
+0x3df5c28f
+// 0.080000
+0x3da3d70a
+// 0.040000
+0x3d23d70a
+// 0.925926
+0x3f6d097b
+// 0.888889
+0x3f638e39
+// 0.851852
+0x3f5a12f7
+// 0.814815
+0x3f5097b4
+// 0.777778
+0x3f471c72
+// 0.740741
+0x3f3da12f
+// 0.703704
+0x3f3425ed
+// 0.666667
+0x3f2aaaab
+// 0.629630
+0x3f212f68
+// 0.592593
+0x3f17b426
+// 0.555556
+0x3f0e38e4
+// 0.518519
+0x3f04bda1
+// 0.481481
+0x3ef684be
+// 0.444444
+0x3ee38e39
+// 0.407407
+0x3ed097b4
+// 0.370370
+0x3ebda12f
+// 0.333333
+0x3eaaaaab
+// 0.296296
+0x3e97b426
+// 0.259259
+0x3e84bda1
+// 0.222222
+0x3e638e39
+// 0.185185
+0x3e3da12f
+// 0.148148
+0x3e17b426
+// 0.111111
+0x3de38e39
+// 0.074074
+0x3d97b426
+// 0.037037
+0x3d17b426
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirConfigs1_s16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirConfigs1_s16.txt
new file mode 100644
index 0000000..94fd4c1
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirConfigs1_s16.txt
@@ -0,0 +1,338 @@
+H
+168
+// 1
+0x0001
+// 1
+0x0001
+// 1
+0x0001
+// 2
+0x0002
+// 1
+0x0001
+// 3
+0x0003
+// 1
+0x0001
+// 4
+0x0004
+// 1
+0x0001
+// 5
+0x0005
+// 1
+0x0001
+// 6
+0x0006
+// 1
+0x0001
+// 7
+0x0007
+// 1
+0x0001
+// 8
+0x0008
+// 1
+0x0001
+// 11
+0x000B
+// 1
+0x0001
+// 16
+0x0010
+// 1
+0x0001
+// 23
+0x0017
+// 1
+0x0001
+// 25
+0x0019
+// 2
+0x0002
+// 1
+0x0001
+// 2
+0x0002
+// 2
+0x0002
+// 2
+0x0002
+// 3
+0x0003
+// 2
+0x0002
+// 4
+0x0004
+// 2
+0x0002
+// 5
+0x0005
+// 2
+0x0002
+// 6
+0x0006
+// 2
+0x0002
+// 7
+0x0007
+// 2
+0x0002
+// 8
+0x0008
+// 2
+0x0002
+// 11
+0x000B
+// 2
+0x0002
+// 16
+0x0010
+// 2
+0x0002
+// 23
+0x0017
+// 2
+0x0002
+// 25
+0x0019
+// 3
+0x0003
+// 1
+0x0001
+// 3
+0x0003
+// 2
+0x0002
+// 3
+0x0003
+// 3
+0x0003
+// 3
+0x0003
+// 4
+0x0004
+// 3
+0x0003
+// 5
+0x0005
+// 3
+0x0003
+// 6
+0x0006
+// 3
+0x0003
+// 7
+0x0007
+// 3
+0x0003
+// 8
+0x0008
+// 3
+0x0003
+// 11
+0x000B
+// 3
+0x0003
+// 16
+0x0010
+// 3
+0x0003
+// 23
+0x0017
+// 3
+0x0003
+// 25
+0x0019
+// 8
+0x0008
+// 1
+0x0001
+// 8
+0x0008
+// 2
+0x0002
+// 8
+0x0008
+// 3
+0x0003
+// 8
+0x0008
+// 4
+0x0004
+// 8
+0x0008
+// 5
+0x0005
+// 8
+0x0008
+// 6
+0x0006
+// 8
+0x0008
+// 7
+0x0007
+// 8
+0x0008
+// 8
+0x0008
+// 8
+0x0008
+// 11
+0x000B
+// 8
+0x0008
+// 16
+0x0010
+// 8
+0x0008
+// 23
+0x0017
+// 8
+0x0008
+// 25
+0x0019
+// 11
+0x000B
+// 1
+0x0001
+// 11
+0x000B
+// 2
+0x0002
+// 11
+0x000B
+// 3
+0x0003
+// 11
+0x000B
+// 4
+0x0004
+// 11
+0x000B
+// 5
+0x0005
+// 11
+0x000B
+// 6
+0x0006
+// 11
+0x000B
+// 7
+0x0007
+// 11
+0x000B
+// 8
+0x0008
+// 11
+0x000B
+// 11
+0x000B
+// 11
+0x000B
+// 16
+0x0010
+// 11
+0x000B
+// 23
+0x0017
+// 11
+0x000B
+// 25
+0x0019
+// 16
+0x0010
+// 1
+0x0001
+// 16
+0x0010
+// 2
+0x0002
+// 16
+0x0010
+// 3
+0x0003
+// 16
+0x0010
+// 4
+0x0004
+// 16
+0x0010
+// 5
+0x0005
+// 16
+0x0010
+// 6
+0x0006
+// 16
+0x0010
+// 7
+0x0007
+// 16
+0x0010
+// 8
+0x0008
+// 16
+0x0010
+// 11
+0x000B
+// 16
+0x0010
+// 16
+0x0010
+// 16
+0x0010
+// 23
+0x0017
+// 16
+0x0010
+// 25
+0x0019
+// 23
+0x0017
+// 1
+0x0001
+// 23
+0x0017
+// 2
+0x0002
+// 23
+0x0017
+// 3
+0x0003
+// 23
+0x0017
+// 4
+0x0004
+// 23
+0x0017
+// 5
+0x0005
+// 23
+0x0017
+// 6
+0x0006
+// 23
+0x0017
+// 7
+0x0007
+// 23
+0x0017
+// 8
+0x0008
+// 23
+0x0017
+// 11
+0x000B
+// 23
+0x0017
+// 16
+0x0010
+// 23
+0x0017
+// 23
+0x0017
+// 23
+0x0017
+// 25
+0x0019
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirInput1_f32.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirInput1_f32.txt
new file mode 100644
index 0000000..afd2262
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirInput1_f32.txt
@@ -0,0 +1,94 @@
+W
+46
+// 0.002192
+0x3b0fa41e
+// 0.020534
+0x3ca836db
+// 0.027322
+0x3cdfd1c5
+// 0.026860
+0x3cdc0a6d
+// 0.011444
+0x3c3b8184
+// -0.007563
+0xbbf7d5b4
+// -0.024644
+0xbcc9e276
+// -0.027259
+0xbcdf4f3c
+// -0.021891
+0xbcb355c8
+// 0.001055
+0x3a8a4be1
+// 0.022344
+0x3cb70b24
+// 0.027327
+0x3cdfdbfa
+// 0.023073
+0x3cbd0319
+// 0.009354
+0x3c194258
+// -0.007111
+0xbbe90522
+// -0.019643
+0xbca0ea0c
+// -0.029853
+0xbcf48db0
+// -0.019234
+0xbc9d913c
+// -0.002017
+0xbb042bd5
+// 0.014282
+0x3c69fd5e
+// 0.024597
+0x3cc98034
+// 0.021232
+0x3cadeeeb
+// 0.012919
+0x3c53aac6
+// -0.012221
+0xbc48387f
+// -0.025151
+0xbcce087e
+// -0.028886
+0xbceca157
+// -0.021434
+0xbcaf9740
+// 0.001501
+0x3ac4ca97
+// 0.019082
+0x3c9c50e8
+// 0.025940
+0x3cd47f84
+// 0.027926
+0x3ce4c556
+// 0.009921
+0x3c228b80
+// -0.013082
+0xbc5655e0
+// -0.027423
+0xbce0a5ca
+// -0.033333
+0xbd088889
+// -0.021187
+0xbcad9031
+// -0.004010
+0xbb83666d
+// 0.023101
+0x3cbd3e3d
+// 0.025360
+0x3ccfbeba
+// 0.027450
+0x3ce0df23
+// 0.009591
+0x3c1d224c
+// -0.008435
+0xbc0a32e1
+// -0.023286
+0xbcbec1d8
+// -0.030024
+0xbcf5f51f
+// -0.019220
+0xbc9d7318
+// -0.003244
+0xbb54a0ae
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirRefs1_f32.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirRefs1_f32.txt
new file mode 100644
index 0000000..0aa0274
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/FirRefs1_f32.txt
@@ -0,0 +1,3074 @@
+W
+1536
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.009107
+0x3c153683
+// 0.008953
+0x3c12b19e
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.017097
+0x3c8c0fdf
+// 0.020376
+0x3ca6eb7e
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.014993
+0x3c75a535
+// 0.028621
+0x3cea76e8
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.012494
+0x3c4cb457
+// 0.025312
+0x3ccf5b6e
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.010709
+0x3c2f7602
+// 0.021696
+0x3cb1bc15
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.009371
+0x3c198741
+// 0.018984
+0x3c9b8493
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.008329
+0x3c08783a
+// 0.016875
+0x3c8a3cf4
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.007497
+0x3bf5a535
+// 0.015187
+0x3c78d41e
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.005767
+0x3bbcf53d
+// 0.011683
+0x3c3f6817
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.004165
+0x3b88783a
+// 0.008437
+0x3c0a3cf4
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.002999
+0x3b44842b
+// 0.006075
+0x3bc71018
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.002776
+0x3b35f5a3
+// 0.005625
+0x3bb85146
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.009107
+0x3c153683
+// 0.008953
+0x3c12b19e
+// 0.003815
+0x3b7a0205
+// -0.002521
+0xbb253923
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.017097
+0x3c8c0fdf
+// 0.020376
+0x3ca6eb7e
+// 0.016291
+0x3c857567
+// 0.003831
+0x3b7b182e
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.014993
+0x3c75a535
+// 0.028621
+0x3cea76e8
+// 0.029426
+0x3cf10efc
+// 0.019181
+0x3c9d2246
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.012494
+0x3c4cb457
+// 0.025312
+0x3ccf5b6e
+// 0.038211
+0x3d1c8332
+// 0.034199
+0x3d0c1434
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.010709
+0x3c2f7602
+// 0.021696
+0x3cb1bc15
+// 0.034318
+0x3d0c90ec
+// 0.043981
+0x3d3424e9
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.009371
+0x3c198741
+// 0.018984
+0x3c9b8493
+// 0.030028
+0x3cf5fd9d
+// 0.040127
+0x3d245bfd
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.008329
+0x3c08783a
+// 0.016875
+0x3c8a3cf4
+// 0.026692
+0x3cdaa88c
+// 0.035668
+0x3d1218e1
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.007497
+0x3bf5a535
+// 0.015187
+0x3c78d41e
+// 0.024023
+0x3cc4cae4
+// 0.032101
+0x3d037cca
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.005767
+0x3bbcf53d
+// 0.011683
+0x3c3f6817
+// 0.018479
+0x3c9760fe
+// 0.024693
+0x3cca49d5
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.004165
+0x3b88783a
+// 0.008437
+0x3c0a3cf4
+// 0.013346
+0x3c5aa88c
+// 0.017834
+0x3c9218e1
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.002999
+0x3b44842b
+// 0.006075
+0x3bc71018
+// 0.009609
+0x3c1d6f1d
+// 0.012841
+0x3c526144
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.002776
+0x3b35f5a3
+// 0.005625
+0x3bb85146
+// 0.008897
+0x3c11c5b2
+// 0.011889
+0x3c42cbd6
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.009107
+0x3c153683
+// 0.008953
+0x3c12b19e
+// 0.003815
+0x3b7a0205
+// -0.002521
+0xbb253923
+// -0.008215
+0xbc0696f9
+// -0.009086
+0xbc14df7d
+// -0.007297
+0xbbef1d0b
+// 0.000352
+0x39b8652c
+// 0.007448
+0x3bf40edb
+// 0.009109
+0x3c153d52
+// 0.007691
+0x3bfc0421
+// 0.003118
+0x3b4c5875
+// -0.002370
+0xbb1b58c1
+// -0.006548
+0xbbd68d66
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.017097
+0x3c8c0fdf
+// 0.020376
+0x3ca6eb7e
+// 0.016291
+0x3c857567
+// 0.003831
+0x3b7b182e
+// -0.009943
+0xbc22e6a8
+// -0.019137
+0xbc9cc50a
+// -0.019103
+0xbc9c7d10
+// -0.010682
+0xbc2f0369
+// 0.006114
+0x3bc854a1
+// 0.018004
+0x3c937c91
+// 0.019431
+0x3c9f2ec3
+// 0.013875
+0x3c6353af
+// 0.002899
+0x3b3e021e
+// -0.008466
+0xbc0ab64f
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.014993
+0x3c75a535
+// 0.028621
+0x3cea76e8
+// 0.029426
+0x3cf10efc
+// 0.019181
+0x3c9d2246
+// -0.001087
+0xba8e89ba
+// -0.019848
+0xbca29749
+// -0.030069
+0xbcf65253
+// -0.024901
+0xbccbfdb4
+// -0.008244
+0xbc0711e3
+// 0.015036
+0x3c7659cc
+// 0.028952
+0x3ced2c19
+// 0.027496
+0x3ce13f0f
+// 0.016163
+0x3c846878
+// -0.001161
+0xba981d20
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.012494
+0x3c4cb457
+// 0.025312
+0x3ccf5b6e
+// 0.038211
+0x3d1c8332
+// 0.034199
+0x3d0c1434
+// 0.017001
+0x3c8b451d
+// -0.008910
+0xbc11fb22
+// -0.030099
+0xbcf692e4
+// -0.037180
+0xbd184a88
+// -0.025043
+0xbccd26f1
+// -0.002064
+0xbb0748d9
+// 0.024830
+0x3ccb67e9
+// 0.037809
+0x3d1addfd
+// 0.031687
+0x3d01ca30
+// 0.014415
+0x3c6c2bc3
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.010709
+0x3c2f7602
+// 0.021696
+0x3cb1bc15
+// 0.034318
+0x3d0c90ec
+// 0.043981
+0x3d3424e9
+// 0.034088
+0x3d0b9f65
+// 0.011549
+0x3c3d37a3
+// -0.017625
+0xbc9061ef
+// -0.037271
+0xbd18a9d2
+// -0.039068
+0xbd200624
+// -0.021240
+0xbcae0066
+// 0.005646
+0x3bb90174
+// 0.033162
+0x3d07d48b
+// 0.043120
+0x3d309f00
+// 0.031874
+0x3d028ecc
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.009371
+0x3c198741
+// 0.018984
+0x3c9b8493
+// 0.030028
+0x3cf5fd9d
+// 0.040127
+0x3d245bfd
+// 0.045227
+0x3d39400a
+// 0.030597
+0x3cfaa5ab
+// 0.004724
+0x3b9ac882
+// -0.024029
+0xbcc4d89e
+// -0.039857
+0xbd234168
+// -0.037068
+0xbd17d519
+// -0.015504
+0xbc7e0637
+// 0.012598
+0x3c4e6739
+// 0.038522
+0x3d1dc8e7
+// 0.044648
+0x3d36e121
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.008329
+0x3c08783a
+// 0.016875
+0x3c8a3cf4
+// 0.026692
+0x3cdaa88c
+// 0.035668
+0x3d1218e1
+// 0.041907
+0x3d2ba63c
+// 0.043168
+0x3d30d0be
+// 0.025449
+0x3cd07a61
+// -0.000468
+0xb9f53897
+// -0.026527
+0xbcd95022
+// -0.038832
+0xbd1f0ea4
+// -0.032949
+0xbd06f5e5
+// -0.010004
+0xbc23e69c
+// 0.017215
+0x3c8d05ff
+// 0.040508
+0x3d25ebbc
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.007497
+0x3bf5a535
+// 0.015187
+0x3c78d41e
+// 0.024023
+0x3cc4cae4
+// 0.032101
+0x3d037cca
+// 0.037716
+0x3d1a7c03
+// 0.040604
+0x3d2650df
+// 0.039331
+0x3d2119d0
+// 0.021436
+0x3caf9b6b
+// -0.002386
+0xbb1c64a2
+// -0.025794
+0xbcd34cf3
+// -0.035705
+0xbd123f79
+// -0.028719
+0xbceb4358
+// -0.006314
+0xbbcee7f6
+// 0.018944
+0x3c9b3080
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.005767
+0x3bbcf53d
+// 0.011683
+0x3c3f6817
+// 0.018479
+0x3c9760fe
+// 0.024693
+0x3cca49d5
+// 0.029012
+0x3cedab18
+// 0.031234
+0x3cffdee1
+// 0.031772
+0x3d022392
+// 0.032391
+0x3d04accf
+// 0.034729
+0x3d0e4052
+// 0.037146
+0x3d182684
+// 0.024238
+0x3cc68e8b
+// 0.004204
+0x3b89c277
+// -0.018053
+0xbc93e313
+// -0.029656
+0xbcf2f1e1
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.004165
+0x3b88783a
+// 0.008437
+0x3c0a3cf4
+// 0.013346
+0x3c5aa88c
+// 0.017834
+0x3c9218e1
+// 0.020953
+0x3caba63c
+// 0.022558
+0x3cb8cba3
+// 0.022947
+0x3cbbfa7e
+// 0.023394
+0x3cbfa447
+// 0.025082
+0x3ccd795a
+// 0.028289
+0x3ce7be33
+// 0.032777
+0x3d06419c
+// 0.037786
+0x3d1ac50b
+// 0.042399
+0x3d2daa38
+// 0.045920
+0x3d3c171d
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.002999
+0x3b44842b
+// 0.006075
+0x3bc71018
+// 0.009609
+0x3c1d6f1d
+// 0.012841
+0x3c526144
+// 0.015086
+0x3c772cd2
+// 0.016242
+0x3c850d7f
+// 0.016522
+0x3c875832
+// 0.016844
+0x3c89fb67
+// 0.018059
+0x3c93f0f9
+// 0.020368
+0x3ca6dadd
+// 0.023600
+0x3cc1543d
+// 0.027206
+0x3cdede4d
+// 0.030527
+0x3cfa13d5
+// 0.033063
+0x3d076ccd
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.002776
+0x3b35f5a3
+// 0.005625
+0x3bb85146
+// 0.008897
+0x3c11c5b2
+// 0.011889
+0x3c42cbd6
+// 0.013969
+0x3c64dda6
+// 0.015039
+0x3c7664d9
+// 0.015298
+0x3c7aa353
+// 0.015596
+0x3c7f85b5
+// 0.016722
+0x3c88fb91
+// 0.018859
+0x3c9a7ecd
+// 0.021852
+0x3cb30226
+// 0.025190
+0x3cce5c0f
+// 0.028266
+0x3ce78d9f
+// 0.030614
+0x3cfac97c
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.009107
+0x3c153683
+// 0.008953
+0x3c12b19e
+// 0.003815
+0x3b7a0205
+// -0.002521
+0xbb253923
+// -0.008215
+0xbc0696f9
+// -0.009086
+0xbc14df7d
+// -0.007297
+0xbbef1d0b
+// 0.000352
+0x39b8652c
+// 0.007448
+0x3bf40edb
+// 0.009109
+0x3c153d52
+// 0.007691
+0x3bfc0421
+// 0.003118
+0x3b4c5875
+// -0.002370
+0xbb1b58c1
+// -0.006548
+0xbbd68d66
+// -0.009951
+0xbc230920
+// -0.006411
+0xbbd216fa
+// -0.000672
+0xba303a72
+// 0.004761
+0x3b9bfe3f
+// 0.008199
+0x3c065578
+// 0.007077
+0x3be7e93a
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.017097
+0x3c8c0fdf
+// 0.020376
+0x3ca6eb7e
+// 0.016291
+0x3c857567
+// 0.003831
+0x3b7b182e
+// -0.009943
+0xbc22e6a8
+// -0.019137
+0xbc9cc50a
+// -0.019103
+0xbc9c7d10
+// -0.010682
+0xbc2f0369
+// 0.006114
+0x3bc854a1
+// 0.018004
+0x3c937c91
+// 0.019431
+0x3c9f2ec3
+// 0.013875
+0x3c6353af
+// 0.002899
+0x3b3e021e
+// -0.008466
+0xbc0ab64f
+// -0.017285
+0xbc8d9872
+// -0.019735
+0xbca1ab27
+// -0.010121
+0xbc25d3f9
+// 0.002562
+0x3b27e773
+// 0.013290
+0x3c59bec9
+// 0.017607
+0x3c903bd5
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.014993
+0x3c75a535
+// 0.028621
+0x3cea76e8
+// 0.029426
+0x3cf10efc
+// 0.019181
+0x3c9d2246
+// -0.001087
+0xba8e89ba
+// -0.019848
+0xbca29749
+// -0.030069
+0xbcf65253
+// -0.024901
+0xbccbfdb4
+// -0.008244
+0xbc0711e3
+// 0.015036
+0x3c7659cc
+// 0.028952
+0x3ced2c19
+// 0.027496
+0x3ce13f0f
+// 0.016163
+0x3c846878
+// -0.001161
+0xba981d20
+// -0.018094
+0xbc943aba
+// -0.027574
+0xbce1e227
+// -0.026009
+0xbcd51034
+// -0.009491
+0xbc1b7ffd
+// 0.009422
+0x3c1a5eda
+// 0.022654
+0x3cb99579
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.012494
+0x3c4cb457
+// 0.025312
+0x3ccf5b6e
+// 0.038211
+0x3d1c8332
+// 0.034199
+0x3d0c1434
+// 0.017001
+0x3c8b451d
+// -0.008910
+0xbc11fb22
+// -0.030099
+0xbcf692e4
+// -0.037180
+0xbd184a88
+// -0.025043
+0xbccd26f1
+// -0.002064
+0xbb0748d9
+// 0.024830
+0x3ccb67e9
+// 0.037809
+0x3d1addfd
+// 0.031687
+0x3d01ca30
+// 0.014415
+0x3c6c2bc3
+// -0.008843
+0xbc10e051
+// -0.027719
+0xbce312a6
+// -0.034769
+0xbd0e6a1a
+// -0.027811
+0xbce3d3ca
+// -0.004971
+0xbba2e534
+// 0.017534
+0x3c8fa393
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.010709
+0x3c2f7602
+// 0.021696
+0x3cb1bc15
+// 0.034318
+0x3d0c90ec
+// 0.043981
+0x3d3424e9
+// 0.034088
+0x3d0b9f65
+// 0.011549
+0x3c3d37a3
+// -0.017625
+0xbc9061ef
+// -0.037271
+0xbd18a9d2
+// -0.039068
+0xbd200624
+// -0.021240
+0xbcae0066
+// 0.005646
+0x3bb90174
+// 0.033162
+0x3d07d48b
+// 0.043120
+0x3d309f00
+// 0.031874
+0x3d028ecc
+// 0.008901
+0x3c11d671
+// -0.017077
+0xbc8be601
+// -0.034882
+0xbd0edff9
+// -0.037869
+0xbd1b1c12
+// -0.025584
+0xbcd19652
+// 0.001290
+0x3aa922f2
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.009371
+0x3c198741
+// 0.018984
+0x3c9b8493
+// 0.030028
+0x3cf5fd9d
+// 0.040127
+0x3d245bfd
+// 0.045227
+0x3d39400a
+// 0.030597
+0x3cfaa5ab
+// 0.004724
+0x3b9ac882
+// -0.024029
+0xbcc4d89e
+// -0.039857
+0xbd234168
+// -0.037068
+0xbd17d519
+// -0.015504
+0xbc7e0637
+// 0.012598
+0x3c4e6739
+// 0.038522
+0x3d1dc8e7
+// 0.044648
+0x3d36e121
+// 0.028284
+0x3ce7b2cd
+// 0.002362
+0x3b1ac88e
+// -0.023506
+0xbcc08f13
+// -0.038468
+0xbd1d910b
+// -0.037118
+0xbd180989
+// -0.021260
+0xbcae2a5b
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.008329
+0x3c08783a
+// 0.016875
+0x3c8a3cf4
+// 0.026692
+0x3cdaa88c
+// 0.035668
+0x3d1218e1
+// 0.041907
+0x3d2ba63c
+// 0.043168
+0x3d30d0be
+// 0.025449
+0x3cd07a61
+// -0.000468
+0xb9f53897
+// -0.026527
+0xbcd95022
+// -0.038832
+0xbd1f0ea4
+// -0.032949
+0xbd06f5e5
+// -0.010004
+0xbc23e69c
+// 0.017215
+0x3c8d05ff
+// 0.040508
+0x3d25ebbc
+// 0.042520
+0x3d2e2922
+// 0.023353
+0x3cbf4f9a
+// -0.002948
+0xbb413b7a
+// -0.026919
+0xbcdc847f
+// -0.038525
+0xbd1dcc87
+// -0.034176
+0xbd0bfc11
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.007497
+0x3bf5a535
+// 0.015187
+0x3c78d41e
+// 0.024023
+0x3cc4cae4
+// 0.032101
+0x3d037cca
+// 0.037716
+0x3d1a7c03
+// 0.040604
+0x3d2650df
+// 0.039331
+0x3d2119d0
+// 0.021436
+0x3caf9b6b
+// -0.002386
+0xbb1c64a2
+// -0.025794
+0xbcd34cf3
+// -0.035705
+0xbd123f79
+// -0.028719
+0xbceb4358
+// -0.006314
+0xbbcee7f6
+// 0.018944
+0x3c9b3080
+// 0.039112
+0x3d2033b8
+// 0.038893
+0x3d1f4ead
+// 0.019208
+0x3c9d594b
+// -0.005769
+0xbbbd0647
+// -0.027189
+0xbcdebc04
+// -0.036447
+0xbd1549c6
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.005767
+0x3bbcf53d
+// 0.011683
+0x3c3f6817
+// 0.018479
+0x3c9760fe
+// 0.024693
+0x3cca49d5
+// 0.029012
+0x3cedab18
+// 0.031234
+0x3cffdee1
+// 0.031772
+0x3d022392
+// 0.032391
+0x3d04accf
+// 0.034729
+0x3d0e4052
+// 0.037146
+0x3d182684
+// 0.024238
+0x3cc68e8b
+// 0.004204
+0x3b89c277
+// -0.018053
+0xbc93e313
+// -0.029656
+0xbcf2f1e1
+// -0.026891
+0xbcdc4ada
+// -0.009257
+0xbc17aa06
+// 0.012532
+0x3c4d53da
+// 0.032562
+0x3d055f60
+// 0.034986
+0x3d0f4d28
+// 0.019310
+0x3c9e30c2
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.004165
+0x3b88783a
+// 0.008437
+0x3c0a3cf4
+// 0.013346
+0x3c5aa88c
+// 0.017834
+0x3c9218e1
+// 0.020953
+0x3caba63c
+// 0.022558
+0x3cb8cba3
+// 0.022947
+0x3cbbfa7e
+// 0.023394
+0x3cbfa447
+// 0.025082
+0x3ccd795a
+// 0.028289
+0x3ce7be33
+// 0.032777
+0x3d06419c
+// 0.037786
+0x3d1ac50b
+// 0.042399
+0x3d2daa38
+// 0.045920
+0x3d3c171d
+// 0.045714
+0x3d3b3e62
+// 0.026994
+0x3cdd21ac
+// 0.000610
+0x3a1fe465
+// -0.026063
+0xbcd58114
+// -0.038301
+0xbd1ce1b3
+// -0.032044
+0xbd0340e1
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.002999
+0x3b44842b
+// 0.006075
+0x3bc71018
+// 0.009609
+0x3c1d6f1d
+// 0.012841
+0x3c526144
+// 0.015086
+0x3c772cd2
+// 0.016242
+0x3c850d7f
+// 0.016522
+0x3c875832
+// 0.016844
+0x3c89fb67
+// 0.018059
+0x3c93f0f9
+// 0.020368
+0x3ca6dadd
+// 0.023600
+0x3cc1543d
+// 0.027206
+0x3cdede4d
+// 0.030527
+0x3cfa13d5
+// 0.033063
+0x3d076ccd
+// 0.034404
+0x3d0ceb92
+// 0.034977
+0x3d0f4399
+// 0.035468
+0x3d114709
+// 0.036531
+0x3d15a17c
+// 0.038578
+0x3d1e039e
+// 0.041474
+0x3d29e04a
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.002776
+0x3b35f5a3
+// 0.005625
+0x3bb85146
+// 0.008897
+0x3c11c5b2
+// 0.011889
+0x3c42cbd6
+// 0.013969
+0x3c64dda6
+// 0.015039
+0x3c7664d9
+// 0.015298
+0x3c7aa353
+// 0.015596
+0x3c7f85b5
+// 0.016722
+0x3c88fb91
+// 0.018859
+0x3c9a7ecd
+// 0.021852
+0x3cb30226
+// 0.025190
+0x3cce5c0f
+// 0.028266
+0x3ce78d9f
+// 0.030614
+0x3cfac97c
+// 0.031856
+0x3d027b4f
+// 0.032386
+0x3d04a6e3
+// 0.032841
+0x3d068424
+// 0.033825
+0x3d0a8c0a
+// 0.035720
+0x3d124f34
+// 0.038402
+0x3d1d4af0
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.009107
+0x3c153683
+// 0.008953
+0x3c12b19e
+// 0.003815
+0x3b7a0205
+// -0.002521
+0xbb253923
+// -0.008215
+0xbc0696f9
+// -0.009086
+0xbc14df7d
+// -0.007297
+0xbbef1d0b
+// 0.000352
+0x39b8652c
+// 0.007448
+0x3bf40edb
+// 0.009109
+0x3c153d52
+// 0.007691
+0x3bfc0421
+// 0.003118
+0x3b4c5875
+// -0.002370
+0xbb1b58c1
+// -0.006548
+0xbbd68d66
+// -0.009951
+0xbc230920
+// -0.006411
+0xbbd216fa
+// -0.000672
+0xba303a72
+// 0.004761
+0x3b9bfe3f
+// 0.008199
+0x3c065578
+// 0.007077
+0x3be7e93a
+// 0.004306
+0x3b8d1c84
+// -0.004074
+0xbb857b00
+// -0.008384
+0xbc095aff
+// -0.009629
+0xbc1dc0e5
+// -0.007145
+0xbbea1eff
+// 0.000500
+0x3a0331ba
+// 0.006361
+0x3bd06be1
+// 0.008647
+0x3c0daa58
+// 0.009309
+0x3c18838f
+// 0.003307
+0x3b58ba00
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.017097
+0x3c8c0fdf
+// 0.020376
+0x3ca6eb7e
+// 0.016291
+0x3c857567
+// 0.003831
+0x3b7b182e
+// -0.009943
+0xbc22e6a8
+// -0.019137
+0xbc9cc50a
+// -0.019103
+0xbc9c7d10
+// -0.010682
+0xbc2f0369
+// 0.006114
+0x3bc854a1
+// 0.018004
+0x3c937c91
+// 0.019431
+0x3c9f2ec3
+// 0.013875
+0x3c6353af
+// 0.002899
+0x3b3e021e
+// -0.008466
+0xbc0ab64f
+// -0.017285
+0xbc8d9872
+// -0.019735
+0xbca1ab27
+// -0.010121
+0xbc25d3f9
+// 0.002562
+0x3b27e773
+// 0.013290
+0x3c59bec9
+// 0.017607
+0x3c903bd5
+// 0.013846
+0x3c62d99d
+// 0.003404
+0x3b5f1d0d
+// -0.012398
+0xbc4b207f
+// -0.019797
+0xbca22c95
+// -0.019801
+0xbca2367b
+// -0.010342
+0xbc2970eb
+// 0.005521
+0x3bb4ea3b
+// 0.016026
+0x3c834855
+// 0.019951
+0x3ca37118
+// 0.016443
+0x3c86b41b
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.014993
+0x3c75a535
+// 0.028621
+0x3cea76e8
+// 0.029426
+0x3cf10efc
+// 0.019181
+0x3c9d2246
+// -0.001087
+0xba8e89ba
+// -0.019848
+0xbca29749
+// -0.030069
+0xbcf65253
+// -0.024901
+0xbccbfdb4
+// -0.008244
+0xbc0711e3
+// 0.015036
+0x3c7659cc
+// 0.028952
+0x3ced2c19
+// 0.027496
+0x3ce13f0f
+// 0.016163
+0x3c846878
+// -0.001161
+0xba981d20
+// -0.018094
+0xbc943aba
+// -0.027574
+0xbce1e227
+// -0.026009
+0xbcd51034
+// -0.009491
+0xbc1b7ffd
+// 0.009422
+0x3c1a5eda
+// 0.022654
+0x3cb99579
+// 0.025835
+0x3cd3a3f7
+// 0.015463
+0x3c7d57b6
+// -0.002167
+0xbb0e0154
+// -0.023170
+0xbcbdce37
+// -0.030931
+0xbcfd63e2
+// -0.025605
+0xbcd1c12c
+// -0.008444
+0xbc0a57ce
+// 0.013721
+0x3c60cfba
+// 0.027410
+0x3ce08b05
+// 0.028718
+0x3ceb42ff
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.012494
+0x3c4cb457
+// 0.025312
+0x3ccf5b6e
+// 0.038211
+0x3d1c8332
+// 0.034199
+0x3d0c1434
+// 0.017001
+0x3c8b451d
+// -0.008910
+0xbc11fb22
+// -0.030099
+0xbcf692e4
+// -0.037180
+0xbd184a88
+// -0.025043
+0xbccd26f1
+// -0.002064
+0xbb0748d9
+// 0.024830
+0x3ccb67e9
+// 0.037809
+0x3d1addfd
+// 0.031687
+0x3d01ca30
+// 0.014415
+0x3c6c2bc3
+// -0.008843
+0xbc10e051
+// -0.027719
+0xbce312a6
+// -0.034769
+0xbd0e6a1a
+// -0.027811
+0xbce3d3ca
+// -0.004971
+0xbba2e534
+// 0.017534
+0x3c8fa393
+// 0.031050
+0x3cfe5d18
+// 0.029284
+0x3cefe4ae
+// 0.012349
+0x3c4a539d
+// -0.010695
+0xbc2f3b2d
+// -0.033923
+0xbd0af309
+// -0.038104
+0xbd1c1352
+// -0.026294
+0xbcd7657a
+// -0.002855
+0xbb3b1ce7
+// 0.023843
+0x3cc351a0
+// 0.036653
+0x3d16218d
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.010709
+0x3c2f7602
+// 0.021696
+0x3cb1bc15
+// 0.034318
+0x3d0c90ec
+// 0.043981
+0x3d3424e9
+// 0.034088
+0x3d0b9f65
+// 0.011549
+0x3c3d37a3
+// -0.017625
+0xbc9061ef
+// -0.037271
+0xbd18a9d2
+// -0.039068
+0xbd200624
+// -0.021240
+0xbcae0066
+// 0.005646
+0x3bb90174
+// 0.033162
+0x3d07d48b
+// 0.043120
+0x3d309f00
+// 0.031874
+0x3d028ecc
+// 0.008901
+0x3c11d671
+// -0.017077
+0xbc8be601
+// -0.034882
+0xbd0edff9
+// -0.037869
+0xbd1b1c12
+// -0.025584
+0xbcd19652
+// 0.001290
+0x3aa922f2
+// 0.025174
+0x3cce3998
+// 0.035302
+0x3d109865
+// 0.028154
+0x3ce6a3fb
+// 0.005998
+0x3bc48e53
+// -0.019849
+0xbca29a7f
+// -0.041390
+0xbd29885d
+// -0.040502
+0xbd25e562
+// -0.023080
+0xbcbd11c4
+// 0.005126
+0x3ba7fa00
+// 0.032489
+0x3d051391
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.009371
+0x3c198741
+// 0.018984
+0x3c9b8493
+// 0.030028
+0x3cf5fd9d
+// 0.040127
+0x3d245bfd
+// 0.045227
+0x3d39400a
+// 0.030597
+0x3cfaa5ab
+// 0.004724
+0x3b9ac882
+// -0.024029
+0xbcc4d89e
+// -0.039857
+0xbd234168
+// -0.037068
+0xbd17d519
+// -0.015504
+0xbc7e0637
+// 0.012598
+0x3c4e6739
+// 0.038522
+0x3d1dc8e7
+// 0.044648
+0x3d36e121
+// 0.028284
+0x3ce7b2cd
+// 0.002362
+0x3b1ac88e
+// -0.023506
+0xbcc08f13
+// -0.038468
+0xbd1d910b
+// -0.037118
+0xbd180989
+// -0.021260
+0xbcae2a5b
+// 0.007601
+0x3bf915e2
+// 0.029376
+0x3cf0a694
+// 0.035346
+0x3d10c73f
+// 0.023697
+0x3cc21f49
+// -0.001444
+0xbabd3fe9
+// -0.026527
+0xbcd94e98
+// -0.044605
+0xbd36b34d
+// -0.039058
+0xbd1ffaf5
+// -0.017179
+0xbc8cba51
+// 0.012352
+0x3c4a619b
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.008329
+0x3c08783a
+// 0.016875
+0x3c8a3cf4
+// 0.026692
+0x3cdaa88c
+// 0.035668
+0x3d1218e1
+// 0.041907
+0x3d2ba63c
+// 0.043168
+0x3d30d0be
+// 0.025449
+0x3cd07a61
+// -0.000468
+0xb9f53897
+// -0.026527
+0xbcd95022
+// -0.038832
+0xbd1f0ea4
+// -0.032949
+0xbd06f5e5
+// -0.010004
+0xbc23e69c
+// 0.017215
+0x3c8d05ff
+// 0.040508
+0x3d25ebbc
+// 0.042520
+0x3d2e2922
+// 0.023353
+0x3cbf4f9a
+// -0.002948
+0xbb413b7a
+// -0.026919
+0xbcdc847f
+// -0.038525
+0xbd1dcc87
+// -0.034176
+0xbd0bfc11
+// -0.016462
+0xbc86db1e
+// 0.011152
+0x3c36b800
+// 0.029850
+0x3cf4889f
+// 0.032172
+0x3d03c648
+// 0.017848
+0x3c92357f
+// -0.007065
+0xbbe7857a
+// -0.029600
+0xbcf27c59
+// -0.044223
+0xbd3522f3
+// -0.034831
+0xbd0eab72
+// -0.011487
+0xbc3c326f
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.007497
+0x3bf5a535
+// 0.015187
+0x3c78d41e
+// 0.024023
+0x3cc4cae4
+// 0.032101
+0x3d037cca
+// 0.037716
+0x3d1a7c03
+// 0.040604
+0x3d2650df
+// 0.039331
+0x3d2119d0
+// 0.021436
+0x3caf9b6b
+// -0.002386
+0xbb1c64a2
+// -0.025794
+0xbcd34cf3
+// -0.035705
+0xbd123f79
+// -0.028719
+0xbceb4358
+// -0.006314
+0xbbcee7f6
+// 0.018944
+0x3c9b3080
+// 0.039112
+0x3d2033b8
+// 0.038893
+0x3d1f4ead
+// 0.019208
+0x3c9d594b
+// -0.005769
+0xbbbd0647
+// -0.027189
+0xbcdebc04
+// -0.036447
+0xbd1549c6
+// -0.030530
+0xbcfa1a0b
+// -0.013845
+0xbc62d6b4
+// 0.011478
+0x3c3c0d8c
+// 0.027341
+0x3cdffa20
+// 0.027488
+0x3ce12f18
+// 0.013319
+0x3c5a3776
+// -0.009655
+0xbc1e2e5b
+// -0.029465
+0xbcf160ff
+// -0.041125
+0xbd287266
+// -0.030458
+0xbcf983e4
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.005767
+0x3bbcf53d
+// 0.011683
+0x3c3f6817
+// 0.018479
+0x3c9760fe
+// 0.024693
+0x3cca49d5
+// 0.029012
+0x3cedab18
+// 0.031234
+0x3cffdee1
+// 0.031772
+0x3d022392
+// 0.032391
+0x3d04accf
+// 0.034729
+0x3d0e4052
+// 0.037146
+0x3d182684
+// 0.024238
+0x3cc68e8b
+// 0.004204
+0x3b89c277
+// -0.018053
+0xbc93e313
+// -0.029656
+0xbcf2f1e1
+// -0.026891
+0xbcdc4ada
+// -0.009257
+0xbc17aa06
+// 0.012532
+0x3c4d53da
+// 0.032562
+0x3d055f60
+// 0.034986
+0x3d0f4d28
+// 0.019310
+0x3c9e30c2
+// -0.001689
+0xbadd652c
+// -0.021804
+0xbcb29e74
+// -0.032965
+0xbd07068a
+// -0.031869
+0xbd028920
+// -0.020307
+0xbca65ade
+// 0.002306
+0x3b1720ac
+// 0.018882
+0x3c9aad96
+// 0.023039
+0x3cbcbc4b
+// 0.014455
+0x3c6cd4e9
+// -0.003986
+0xbb82a0f9
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.004165
+0x3b88783a
+// 0.008437
+0x3c0a3cf4
+// 0.013346
+0x3c5aa88c
+// 0.017834
+0x3c9218e1
+// 0.020953
+0x3caba63c
+// 0.022558
+0x3cb8cba3
+// 0.022947
+0x3cbbfa7e
+// 0.023394
+0x3cbfa447
+// 0.025082
+0x3ccd795a
+// 0.028289
+0x3ce7be33
+// 0.032777
+0x3d06419c
+// 0.037786
+0x3d1ac50b
+// 0.042399
+0x3d2daa38
+// 0.045920
+0x3d3c171d
+// 0.045714
+0x3d3b3e62
+// 0.026994
+0x3cdd21ac
+// 0.000610
+0x3a1fe465
+// -0.026063
+0xbcd58114
+// -0.038301
+0xbd1ce1b3
+// -0.032044
+0xbd0340e1
+// -0.008518
+0xbc0b8d85
+// 0.018169
+0x3c94d7c2
+// 0.039904
+0x3d2371f9
+// 0.039578
+0x3d221c1b
+// 0.017896
+0x3c929a38
+// -0.009650
+0xbc1e18f6
+// -0.033635
+0xbd09c542
+// -0.044506
+0xbd364b78
+// -0.038793
+0xbd1ee5bc
+// -0.020299
+0xbca64ae5
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.002999
+0x3b44842b
+// 0.006075
+0x3bc71018
+// 0.009609
+0x3c1d6f1d
+// 0.012841
+0x3c526144
+// 0.015086
+0x3c772cd2
+// 0.016242
+0x3c850d7f
+// 0.016522
+0x3c875832
+// 0.016844
+0x3c89fb67
+// 0.018059
+0x3c93f0f9
+// 0.020368
+0x3ca6dadd
+// 0.023600
+0x3cc1543d
+// 0.027206
+0x3cdede4d
+// 0.030527
+0x3cfa13d5
+// 0.033063
+0x3d076ccd
+// 0.034404
+0x3d0ceb92
+// 0.034977
+0x3d0f4399
+// 0.035468
+0x3d114709
+// 0.036531
+0x3d15a17c
+// 0.038578
+0x3d1e039e
+// 0.041474
+0x3d29e04a
+// 0.044886
+0x3d37dad5
+// 0.045706
+0x3d3b367b
+// 0.027824
+0x3ce3eeee
+// 0.001449
+0x3abddc5d
+// -0.026434
+0xbcd88cb2
+// -0.040532
+0xbd2604fa
+// -0.036077
+0xbd13c56f
+// -0.013884
+0xbc637a4c
+// 0.012922
+0x3c53b7ba
+// 0.036063
+0x3d13b652
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.002776
+0x3b35f5a3
+// 0.005625
+0x3bb85146
+// 0.008897
+0x3c11c5b2
+// 0.011889
+0x3c42cbd6
+// 0.013969
+0x3c64dda6
+// 0.015039
+0x3c7664d9
+// 0.015298
+0x3c7aa353
+// 0.015596
+0x3c7f85b5
+// 0.016722
+0x3c88fb91
+// 0.018859
+0x3c9a7ecd
+// 0.021852
+0x3cb30226
+// 0.025190
+0x3cce5c0f
+// 0.028266
+0x3ce78d9f
+// 0.030614
+0x3cfac97c
+// 0.031856
+0x3d027b4f
+// 0.032386
+0x3d04a6e3
+// 0.032841
+0x3d068424
+// 0.033825
+0x3d0a8c0a
+// 0.035720
+0x3d124f34
+// 0.038402
+0x3d1d4af0
+// 0.041562
+0x3d2a3c66
+// 0.044269
+0x3d355344
+// 0.046045
+0x3d3c9962
+// 0.044640
+0x3d36d88f
+// 0.024698
+0x3cca52b5
+// -0.002486
+0xbb22ed9c
+// -0.029531
+0xbcf1eaa0
+// -0.041765
+0xbd2b1166
+// -0.035084
+0xbd0fb47e
+// -0.011308
+0xbc39459a
+// 0.000731
+0x3a3f857d
+// 0.006845
+0x3be04923
+// 0.009107
+0x3c153683
+// 0.008953
+0x3c12b19e
+// 0.003815
+0x3b7a0205
+// -0.002521
+0xbb253923
+// -0.008215
+0xbc0696f9
+// -0.009086
+0xbc14df7d
+// -0.007297
+0xbbef1d0b
+// 0.000352
+0x39b8652c
+// 0.007448
+0x3bf40edb
+// 0.009109
+0x3c153d52
+// 0.007691
+0x3bfc0421
+// 0.003118
+0x3b4c5875
+// -0.002370
+0xbb1b58c1
+// -0.006548
+0xbbd68d66
+// -0.009951
+0xbc230920
+// -0.006411
+0xbbd216fa
+// -0.000672
+0xba303a72
+// 0.004761
+0x3b9bfe3f
+// 0.008199
+0x3c065578
+// 0.007077
+0x3be7e93a
+// 0.004306
+0x3b8d1c84
+// -0.004074
+0xbb857b00
+// -0.008384
+0xbc095aff
+// -0.009629
+0xbc1dc0e5
+// -0.007145
+0xbbea1eff
+// 0.000500
+0x3a0331ba
+// 0.006361
+0x3bd06be1
+// 0.008647
+0x3c0daa58
+// 0.009309
+0x3c18838f
+// 0.003307
+0x3b58ba00
+// -0.004361
+0xbb8ee3eb
+// -0.009141
+0xbc15c3dc
+// -0.011111
+0xbc360b61
+// -0.007062
+0xbbe76aec
+// -0.001337
+0xbaaf333c
+// 0.007700
+0x3bfc52fc
+// 0.008453
+0x3c0a7f27
+// 0.009150
+0x3c15ea18
+// 0.003197
+0x3b518310
+// -0.002812
+0xbb3843d7
+// -0.007762
+0xbbfe57ca
+// -0.010008
+0xbc23f8bf
+// -0.006407
+0xbbd1eecb
+// -0.001081
+0xba8dc074
+// 0.000548
+0x3a0fa41e
+// 0.006229
+0x3bcc1fe2
+// 0.017097
+0x3c8c0fdf
+// 0.020376
+0x3ca6eb7e
+// 0.016291
+0x3c857567
+// 0.003831
+0x3b7b182e
+// -0.009943
+0xbc22e6a8
+// -0.019137
+0xbc9cc50a
+// -0.019103
+0xbc9c7d10
+// -0.010682
+0xbc2f0369
+// 0.006114
+0x3bc854a1
+// 0.018004
+0x3c937c91
+// 0.019431
+0x3c9f2ec3
+// 0.013875
+0x3c6353af
+// 0.002899
+0x3b3e021e
+// -0.008466
+0xbc0ab64f
+// -0.017285
+0xbc8d9872
+// -0.019735
+0xbca1ab27
+// -0.010121
+0xbc25d3f9
+// 0.002562
+0x3b27e773
+// 0.013290
+0x3c59bec9
+// 0.017607
+0x3c903bd5
+// 0.013846
+0x3c62d99d
+// 0.003404
+0x3b5f1d0d
+// -0.012398
+0xbc4b207f
+// -0.019797
+0xbca22c95
+// -0.019801
+0xbca2367b
+// -0.010342
+0xbc2970eb
+// 0.005521
+0x3bb4ea3b
+// 0.016026
+0x3c834855
+// 0.019951
+0x3ca37118
+// 0.016443
+0x3c86b41b
+// 0.001690
+0x3add8242
+// -0.013397
+0xbc5b7dd5
+// -0.022045
+0xbcb49729
+// -0.021963
+0xbcb3ec95
+// -0.011596
+0xbc3dfcff
+// 0.003770
+0x3b77160c
+// 0.017890
+0x3c928ecd
+// 0.019542
+0x3ca01726
+// 0.016123
+0x3c8413db
+// 0.002687
+0x3b3011b8
+// -0.010039
+0xbc247a5c
+// -0.019149
+0xbc9cde34
+// -0.019817
+0xbca25756
+// -0.010421
+0xbc2abd23
+// 0.000438
+0x39e5d363
+// 0.004984
+0x3ba34cb5
+// 0.014993
+0x3c75a535
+// 0.028621
+0x3cea76e8
+// 0.029426
+0x3cf10efc
+// 0.019181
+0x3c9d2246
+// -0.001087
+0xba8e89ba
+// -0.019848
+0xbca29749
+// -0.030069
+0xbcf65253
+// -0.024901
+0xbccbfdb4
+// -0.008244
+0xbc0711e3
+// 0.015036
+0x3c7659cc
+// 0.028952
+0x3ced2c19
+// 0.027496
+0x3ce13f0f
+// 0.016163
+0x3c846878
+// -0.001161
+0xba981d20
+// -0.018094
+0xbc943aba
+// -0.027574
+0xbce1e227
+// -0.026009
+0xbcd51034
+// -0.009491
+0xbc1b7ffd
+// 0.009422
+0x3c1a5eda
+// 0.022654
+0x3cb99579
+// 0.025835
+0x3cd3a3f7
+// 0.015463
+0x3c7d57b6
+// -0.002167
+0xbb0e0154
+// -0.023170
+0xbcbdce37
+// -0.030931
+0xbcfd63e2
+// -0.025605
+0xbcd1c12c
+// -0.008444
+0xbc0a57ce
+// 0.013721
+0x3c60cfba
+// 0.027410
+0x3ce08b05
+// 0.028718
+0x3ceb42ff
+// 0.018108
+0x3c945684
+// -0.004765
+0xbb9c21ee
+// -0.025485
+0xbcd0c5e4
+// -0.034024
+0xbd0b5d2b
+// -0.029277
+0xbcefd5d7
+// -0.009696
+0xbc1edbd2
+// 0.011906
+0x3c43128d
+// 0.029494
+0x3cf19e43
+// 0.028114
+0x3ce64f1f
+// 0.018619
+0x3c9887a8
+// -0.002277
+0xbb15353d
+// -0.020380
+0xbca6f43a
+// -0.029825
+0xbcf453c6
+// -0.026351
+0xbcd7deba
+// 0.000365
+0x39bf857d
+// 0.004153
+0x3b881541
+// 0.012494
+0x3c4cb457
+// 0.025312
+0x3ccf5b6e
+// 0.038211
+0x3d1c8332
+// 0.034199
+0x3d0c1434
+// 0.017001
+0x3c8b451d
+// -0.008910
+0xbc11fb22
+// -0.030099
+0xbcf692e4
+// -0.037180
+0xbd184a88
+// -0.025043
+0xbccd26f1
+// -0.002064
+0xbb0748d9
+// 0.024830
+0x3ccb67e9
+// 0.037809
+0x3d1addfd
+// 0.031687
+0x3d01ca30
+// 0.014415
+0x3c6c2bc3
+// -0.008843
+0xbc10e051
+// -0.027719
+0xbce312a6
+// -0.034769
+0xbd0e6a1a
+// -0.027811
+0xbce3d3ca
+// -0.004971
+0xbba2e534
+// 0.017534
+0x3c8fa393
+// 0.031050
+0x3cfe5d18
+// 0.029284
+0x3cefe4ae
+// 0.012349
+0x3c4a539d
+// -0.010695
+0xbc2f3b2d
+// -0.033923
+0xbd0af309
+// -0.038104
+0xbd1c1352
+// -0.026294
+0xbcd7657a
+// -0.002855
+0xbb3b1ce7
+// 0.023843
+0x3cc351a0
+// 0.036653
+0x3d16218d
+// 0.032383
+0x3d04a3e3
+// 0.014647
+0x3c6ff8fb
+// -0.014624
+0xbc6f977c
+// -0.037075
+0xbd17dbf4
+// -0.042679
+0xbd2ed05d
+// -0.030302
+0xbcf83c4e
+// -0.004203
+0xbb89b6ed
+// 0.021905
+0x3cb372d0
+// 0.038829
+0x3d1f0b0c
+// 0.032422
+0x3d04cd6f
+// 0.016403
+0x3c865f36
+// -0.010590
+0xbc2d802d
+// -0.030478
+0xbcf9ac1b
+// -0.037483
+0xbd198816
+// 0.000313
+0x39a42947
+// 0.003560
+0x3b694902
+// 0.010709
+0x3c2f7602
+// 0.021696
+0x3cb1bc15
+// 0.034318
+0x3d0c90ec
+// 0.043981
+0x3d3424e9
+// 0.034088
+0x3d0b9f65
+// 0.011549
+0x3c3d37a3
+// -0.017625
+0xbc9061ef
+// -0.037271
+0xbd18a9d2
+// -0.039068
+0xbd200624
+// -0.021240
+0xbcae0066
+// 0.005646
+0x3bb90174
+// 0.033162
+0x3d07d48b
+// 0.043120
+0x3d309f00
+// 0.031874
+0x3d028ecc
+// 0.008901
+0x3c11d671
+// -0.017077
+0xbc8be601
+// -0.034882
+0xbd0edff9
+// -0.037869
+0xbd1b1c12
+// -0.025584
+0xbcd19652
+// 0.001290
+0x3aa922f2
+// 0.025174
+0x3cce3998
+// 0.035302
+0x3d109865
+// 0.028154
+0x3ce6a3fb
+// 0.005998
+0x3bc48e53
+// -0.019849
+0xbca29a7f
+// -0.041390
+0xbd29885d
+// -0.040502
+0xbd25e562
+// -0.023080
+0xbcbd11c4
+// 0.005126
+0x3ba7fa00
+// 0.032489
+0x3d051391
+// 0.041386
+0x3d2984cc
+// 0.031083
+0x3cfea138
+// 0.007413
+0x3bf2e6fe
+// -0.024692
+0xbcca473e
+// -0.045926
+0xbd3c1d5c
+// -0.045561
+0xbd3a9e33
+// -0.027412
+0xbce08ed1
+// 0.003642
+0x3b6eb6c3
+// 0.030418
+0x3cf92e5c
+// 0.044291
+0x3d356ae2
+// 0.032173
+0x3d03c85a
+// 0.010530
+0x3c2c87c3
+// -0.019273
+0xbc9de2b2
+// -0.038154
+0xbd1c46df
+// 0.000274
+0x398fa41e
+// 0.003115
+0x3b4c1fe2
+// 0.009371
+0x3c198741
+// 0.018984
+0x3c9b8493
+// 0.030028
+0x3cf5fd9d
+// 0.040127
+0x3d245bfd
+// 0.045227
+0x3d39400a
+// 0.030597
+0x3cfaa5ab
+// 0.004724
+0x3b9ac882
+// -0.024029
+0xbcc4d89e
+// -0.039857
+0xbd234168
+// -0.037068
+0xbd17d519
+// -0.015504
+0xbc7e0637
+// 0.012598
+0x3c4e6739
+// 0.038522
+0x3d1dc8e7
+// 0.044648
+0x3d36e121
+// 0.028284
+0x3ce7b2cd
+// 0.002362
+0x3b1ac88e
+// -0.023506
+0xbcc08f13
+// -0.038468
+0xbd1d910b
+// -0.037118
+0xbd180989
+// -0.021260
+0xbcae2a5b
+// 0.007601
+0x3bf915e2
+// 0.029376
+0x3cf0a694
+// 0.035346
+0x3d10c73f
+// 0.023697
+0x3cc21f49
+// -0.001444
+0xbabd3fe9
+// -0.026527
+0xbcd94e98
+// -0.044605
+0xbd36b34d
+// -0.039058
+0xbd1ffaf5
+// -0.017179
+0xbc8cba51
+// 0.012352
+0x3c4a619b
+// 0.037339
+0x3d18f0f2
+// 0.041509
+0x3d2a04df
+// 0.025941
+0x3cd4822b
+// -0.000661
+0xba2d4aa6
+// -0.032745
+0xbd061f88
+// -0.049677
+0xbd4b7a86
+// -0.044552
+0xbd367ca7
+// -0.021813
+0xbcb2b0cf
+// 0.010725
+0x3c2fb8d8
+// 0.035747
+0x3d126bec
+// 0.045478
+0x3d3a46a5
+// 0.028234
+0x3ce74a71
+// 0.003724
+0x3b7407f3
+// -0.026191
+0xbcd68f2a
+// 0.000244
+0x397f5ca7
+// 0.002769
+0x3b3571ac
+// 0.008329
+0x3c08783a
+// 0.016875
+0x3c8a3cf4
+// 0.026692
+0x3cdaa88c
+// 0.035668
+0x3d1218e1
+// 0.041907
+0x3d2ba63c
+// 0.043168
+0x3d30d0be
+// 0.025449
+0x3cd07a61
+// -0.000468
+0xb9f53897
+// -0.026527
+0xbcd95022
+// -0.038832
+0xbd1f0ea4
+// -0.032949
+0xbd06f5e5
+// -0.010004
+0xbc23e69c
+// 0.017215
+0x3c8d05ff
+// 0.040508
+0x3d25ebbc
+// 0.042520
+0x3d2e2922
+// 0.023353
+0x3cbf4f9a
+// -0.002948
+0xbb413b7a
+// -0.026919
+0xbcdc847f
+// -0.038525
+0xbd1dcc87
+// -0.034176
+0xbd0bfc11
+// -0.016462
+0xbc86db1e
+// 0.011152
+0x3c36b800
+// 0.029850
+0x3cf4889f
+// 0.032172
+0x3d03c648
+// 0.017848
+0x3c92357f
+// -0.007065
+0xbbe7857a
+// -0.029600
+0xbcf27c59
+// -0.044223
+0xbd3522f3
+// -0.034831
+0xbd0eab72
+// -0.011487
+0xbc3c326f
+// 0.016519
+0x3c875328
+// 0.038064
+0x3d1be941
+// 0.037900
+0x3d1b3cdf
+// 0.019588
+0x3ca07670
+// -0.007386
+0xbbf20885
+// -0.036441
+0xbd154390
+// -0.049777
+0xbd4be30e
+// -0.040718
+0xbd26c7f2
+// -0.016392
+0xbc864958
+// 0.015297
+0x3c7a9f6b
+// 0.037306
+0x3d18cdba
+// 0.043064
+0x3d3063f4
+// 0.023034
+0x3cbcb1ac
+// -0.001931
+0xbafd1b49
+// 0.000219
+0x3965d363
+// 0.002492
+0x3b234cb5
+// 0.007497
+0x3bf5a535
+// 0.015187
+0x3c78d41e
+// 0.024023
+0x3cc4cae4
+// 0.032101
+0x3d037cca
+// 0.037716
+0x3d1a7c03
+// 0.040604
+0x3d2650df
+// 0.039331
+0x3d2119d0
+// 0.021436
+0x3caf9b6b
+// -0.002386
+0xbb1c64a2
+// -0.025794
+0xbcd34cf3
+// -0.035705
+0xbd123f79
+// -0.028719
+0xbceb4358
+// -0.006314
+0xbbcee7f6
+// 0.018944
+0x3c9b3080
+// 0.039112
+0x3d2033b8
+// 0.038893
+0x3d1f4ead
+// 0.019208
+0x3c9d594b
+// -0.005769
+0xbbbd0647
+// -0.027189
+0xbcdebc04
+// -0.036447
+0xbd1549c6
+// -0.030530
+0xbcfa1a0b
+// -0.013845
+0xbc62d6b4
+// 0.011478
+0x3c3c0d8c
+// 0.027341
+0x3cdffa20
+// 0.027488
+0x3ce12f18
+// 0.013319
+0x3c5a3776
+// -0.009655
+0xbc1e2e5b
+// -0.029465
+0xbcf160ff
+// -0.041125
+0xbd287266
+// -0.030458
+0xbcf983e4
+// -0.008241
+0xbc07060f
+// 0.017110
+0x3c8c2adc
+// 0.035311
+0x3d10a240
+// 0.032894
+0x3d06bc10
+// 0.014104
+0x3c6714fe
+// -0.010456
+0xbc2b5116
+// -0.036863
+0xbd16fd40
+// -0.047112
+0xbd40f853
+// -0.036691
+0xbd1649b8
+// -0.012900
+0xbc5358a1
+// 0.016625
+0x3c883228
+// 0.035550
+0x3d119c84
+// 0.039211
+0x3d209c0c
+// 0.018550
+0x3c97f572
+// 0.000169
+0x3930c9fd
+// 0.001917
+0x3afb3aef
+// 0.005767
+0x3bbcf53d
+// 0.011683
+0x3c3f6817
+// 0.018479
+0x3c9760fe
+// 0.024693
+0x3cca49d5
+// 0.029012
+0x3cedab18
+// 0.031234
+0x3cffdee1
+// 0.031772
+0x3d022392
+// 0.032391
+0x3d04accf
+// 0.034729
+0x3d0e4052
+// 0.037146
+0x3d182684
+// 0.024238
+0x3cc68e8b
+// 0.004204
+0x3b89c277
+// -0.018053
+0xbc93e313
+// -0.029656
+0xbcf2f1e1
+// -0.026891
+0xbcdc4ada
+// -0.009257
+0xbc17aa06
+// 0.012532
+0x3c4d53da
+// 0.032562
+0x3d055f60
+// 0.034986
+0x3d0f4d28
+// 0.019310
+0x3c9e30c2
+// -0.001689
+0xbadd652c
+// -0.021804
+0xbcb29e74
+// -0.032965
+0xbd07068a
+// -0.031869
+0xbd028920
+// -0.020307
+0xbca65ade
+// 0.002306
+0x3b1720ac
+// 0.018882
+0x3c9aad96
+// 0.023039
+0x3cbcbc4b
+// 0.014455
+0x3c6cd4e9
+// -0.003986
+0xbb82a0f9
+// -0.022220
+0xbcb606ec
+// -0.036523
+0xbd15990b
+// -0.031178
+0xbcff688b
+// -0.014587
+0xbc6efe29
+// 0.007078
+0x3be7ec50
+// 0.025863
+0x3cd3df95
+// 0.027077
+0x3cddd0f0
+// 0.014059
+0x3c665833
+// -0.006020
+0xbbc54031
+// -0.030576
+0xbcfa7ae0
+// -0.042452
+0xbd2de216
+// -0.036167
+0xbd1423c2
+// -0.017116
+0xbc8c37a1
+// 0.009250
+0x3c178cfd
+// 0.000122
+0x38ff5ca7
+// 0.001384
+0x3ab571ac
+// 0.004165
+0x3b88783a
+// 0.008437
+0x3c0a3cf4
+// 0.013346
+0x3c5aa88c
+// 0.017834
+0x3c9218e1
+// 0.020953
+0x3caba63c
+// 0.022558
+0x3cb8cba3
+// 0.022947
+0x3cbbfa7e
+// 0.023394
+0x3cbfa447
+// 0.025082
+0x3ccd795a
+// 0.028289
+0x3ce7be33
+// 0.032777
+0x3d06419c
+// 0.037786
+0x3d1ac50b
+// 0.042399
+0x3d2daa38
+// 0.045920
+0x3d3c171d
+// 0.045714
+0x3d3b3e62
+// 0.026994
+0x3cdd21ac
+// 0.000610
+0x3a1fe465
+// -0.026063
+0xbcd58114
+// -0.038301
+0xbd1ce1b3
+// -0.032044
+0xbd0340e1
+// -0.008518
+0xbc0b8d85
+// 0.018169
+0x3c94d7c2
+// 0.039904
+0x3d2371f9
+// 0.039578
+0x3d221c1b
+// 0.017896
+0x3c929a38
+// -0.009650
+0xbc1e18f6
+// -0.033635
+0xbd09c542
+// -0.044506
+0xbd364b78
+// -0.038793
+0xbd1ee5bc
+// -0.020299
+0xbca64ae5
+// 0.008202
+0x3c06605f
+// 0.026809
+0x3cdb9f0d
+// 0.028373
+0x3ce86d7d
+// 0.013478
+0x3c5cd25c
+// -0.012176
+0xbc477bd4
+// -0.034734
+0xbd0e4510
+// -0.049212
+0xbd49923b
+// -0.039139
+0xbd205093
+// -0.015644
+0xbc8026dd
+// 0.012308
+0x3c49a93b
+// 0.033534
+0x3d095b44
+// 0.032621
+0x3d059dfe
+// 0.013954
+0x3c649e72
+// -0.012431
+0xbc4bac91
+// 0.000088
+0x38b7dc4f
+// 0.000997
+0x3a82a3c4
+// 0.002999
+0x3b44842b
+// 0.006075
+0x3bc71018
+// 0.009609
+0x3c1d6f1d
+// 0.012841
+0x3c526144
+// 0.015086
+0x3c772cd2
+// 0.016242
+0x3c850d7f
+// 0.016522
+0x3c875832
+// 0.016844
+0x3c89fb67
+// 0.018059
+0x3c93f0f9
+// 0.020368
+0x3ca6dadd
+// 0.023600
+0x3cc1543d
+// 0.027206
+0x3cdede4d
+// 0.030527
+0x3cfa13d5
+// 0.033063
+0x3d076ccd
+// 0.034404
+0x3d0ceb92
+// 0.034977
+0x3d0f4399
+// 0.035468
+0x3d114709
+// 0.036531
+0x3d15a17c
+// 0.038578
+0x3d1e039e
+// 0.041474
+0x3d29e04a
+// 0.044886
+0x3d37dad5
+// 0.045706
+0x3d3b367b
+// 0.027824
+0x3ce3eeee
+// 0.001449
+0x3abddc5d
+// -0.026434
+0xbcd88cb2
+// -0.040532
+0xbd2604fa
+// -0.036077
+0xbd13c56f
+// -0.013884
+0xbc637a4c
+// 0.012922
+0x3c53b7ba
+// 0.036063
+0x3d13b652
+// 0.037527
+0x3d19b565
+// 0.017414
+0x3c8ea77d
+// -0.009709
+0xbc1f1286
+// -0.034689
+0xbd0e15c9
+// -0.047582
+0xbd42e54f
+// -0.044119
+0xbd34b5a3
+// -0.027326
+0xbcdfda8c
+// 0.001152
+0x3a96fcd0
+// 0.021014
+0x3cac252f
+// 0.024779
+0x3ccafd09
+// 0.012047
+0x3c455f83
+// -0.012361
+0xbc4a84ab
+// -0.035290
+0xbd108c8b
+// -0.051218
+0xbd51ca71
+// 0.000081
+0x38aa3dc5
+// 0.000923
+0x3a71ece6
+// 0.002776
+0x3b35f5a3
+// 0.005625
+0x3bb85146
+// 0.008897
+0x3c11c5b2
+// 0.011889
+0x3c42cbd6
+// 0.013969
+0x3c64dda6
+// 0.015039
+0x3c7664d9
+// 0.015298
+0x3c7aa353
+// 0.015596
+0x3c7f85b5
+// 0.016722
+0x3c88fb91
+// 0.018859
+0x3c9a7ecd
+// 0.021852
+0x3cb30226
+// 0.025190
+0x3cce5c0f
+// 0.028266
+0x3ce78d9f
+// 0.030614
+0x3cfac97c
+// 0.031856
+0x3d027b4f
+// 0.032386
+0x3d04a6e3
+// 0.032841
+0x3d068424
+// 0.033825
+0x3d0a8c0a
+// 0.035720
+0x3d124f34
+// 0.038402
+0x3d1d4af0
+// 0.041562
+0x3d2a3c66
+// 0.044269
+0x3d355344
+// 0.046045
+0x3d3c9962
+// 0.044640
+0x3d36d88f
+// 0.024698
+0x3cca52b5
+// -0.002486
+0xbb22ed9c
+// -0.029531
+0xbcf1eaa0
+// -0.041765
+0xbd2b1166
+// -0.035084
+0xbd0fb47e
+// -0.011308
+0xbc39459a
+// 0.015415
+0x3c7c8e25
+// 0.036962
+0x3d1765e0
+// 0.035990
+0x3d1369c0
+// 0.013692
+0x3c6055ab
+// -0.014379
+0xbc6b9555
+// -0.038510
+0xbd1dbcf3
+// -0.049347
+0xbd4a1f92
+// -0.043657
+0xbd32d1a5
+// -0.025281
+0xbccf1ac0
+// 0.003341
+0x3b5af792
+// 0.021982
+0x3cb41303
+// 0.023643
+0x3cc1ae94
+// 0.008972
+0x3c12ff69
+// -0.016281
+0xbc8560bc
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Refs1_f32.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Refs1_f32.txt
old mode 100755
new mode 100644
index 40f8b70..f42e11d
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Refs1_f32.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Refs1_f32.txt
@@ -1,514 +1,514 @@
 W
 256
-// -0.511235
-0xbf02e04c
-// -0.112921
-0xbde7430c
-// -0.394130
-0xbec9cb6d
-// 0.363065
-0x3eb9e3a8
-// -0.501738
-0xbf0071ef
-// -0.348184
-0xbeb2451d
-// 0.484304
-0x3ef7f6b9
-// 0.053390
-0x3d5aaf22
-// 0.726619
-0x3f3a03b9
-// 0.538738
-0x3f09eac3
-// 0.132211
-0x3e076248
-// -0.533291
-0xbf0885bc
-// -0.193507
-0xbe4626bb
-// -0.233754
-0xbe6f5d4d
-// -0.024938
-0xbccc4aa7
-// 0.007021
-0x3be60fa3
-// -0.404636
-0xbecf2c7d
-// -0.317165
-0xbea26382
-// -0.318455
-0xbea30c7d
-// 0.355509
-0x3eb60541
-// 0.405424
-0x3ecf93c0
-// -0.032559
-0xbd055d05
-// -0.110447
-0xbde231e4
-// 0.252893
-0x3e817b30
-// 0.627990
-0x3f20c3fa
-// -0.574709
-0xbf132024
-// -0.272825
-0xbe8bafbe
-// -0.181746
-0xbe3a1baa
-// -0.111904
-0xbde52e1e
-// -0.089577
-0xbdb77411
-// 0.203756
-0x3e50a54a
-// -0.614457
-0xbf1d4d08
-// -0.004310
-0xbb8d38d7
-// -0.135679
-0xbe0aef5d
-// 0.439223
-0x3ee0e1ce
-// -0.268431
-0xbe896fd9
-// 0.158829
-0x3e22a40a
-// -0.179617
-0xbe37eda1
-// 0.208840
-0x3e55da1f
-// 0.045692
-0x3d3b27b4
-// -0.120467
-0xbdf6b769
-// 0.097116
-0x3dc6e4ab
-// 0.033163
-0x3d07d671
-// -0.114823
-0xbdeb2894
-// 0.300287
-0x3e99bf43
-// -0.401101
-0xbecd5d26
-// 0.623159
-0x3f1f8751
-// -0.168909
-0xbe2cf679
-// 0.359420
-0x3eb805de
-// -0.324806
-0xbea64ced
-// 0.084683
-0x3dad6e67
-// -0.067078
-0xbd895ff8
-// 0.093487
-0x3dbf765c
-// 0.499578
-0x3effc8a6
-// -0.358170
-0xbeb76218
-// 0.162900
-0x3e26cf29
-// -0.290693
-0xbe94d5b1
-// 0.331523
-0x3ea9bd5d
-// 0.063280
-0x3d8198f3
-// 0.702762
-0x3f33e839
-// 0.543238
-0x3f0b11a8
-// -0.199013
-0xbe4bca05
-// -0.147606
-0xbe1725fd
-// -0.620674
-0xbf1ee47d
-// 0.217686
-0x3e5ee930
-// 0.164053
-0x3e27fd76
-// 0.307261
-0x3e9d515b
-// -0.241562
-0xbe775c02
-// -0.036671
-0xbd163498
-// 0.015024
-0x3c7626a9
-// -0.194701
-0xbe475faa
-// -0.384215
-0xbec4b7df
-// 0.331752
-0x3ea9db58
-// -0.346233
-0xbeb1456a
-// 0.067281
-0x3d89cade
-// -0.019790
-0xbca21e79
-// -0.527364
-0xbf07014c
-// -0.130815
-0xbe05f474
-// 0.364764
-0x3ebac24e
-// -0.116927
-0xbdef773f
-// -0.077232
-0xbd9e2be9
-// -0.497342
-0xbefea38c
-// 0.422093
-0x3ed81c97
-// -0.104494
-0xbdd600c8
-// -0.533683
-0xbf089f70
-// -0.490703
-0xbefb3d70
-// 0.056467
-0x3d674a03
-// -0.053632
-0xbd5bad24
-// -0.109223
-0xbddfb044
-// 0.244378
-0x3e7a3e4a
-// 0.051963
-0x3d54d73c
-// -0.040913
-0xbd279490
-// 0.153720
-0x3e1d68b7
-// 0.392762
-0x3ec91822
-// 0.793524
-0x3f4b245d
-// -0.259866
-0xbe850d2e
-// 0.835880
-0x3f55fc35
-// -0.042101
-0xbd2c71fe
-// 0.009257
-0x3c17a96c
-// -0.273984
-0xbe8c47aa
-// 0.361290
-0x3eb8fb10
-// -0.550072
-0xbf0cd17d
-// -0.278887
-0xbe8eca54
-// -0.028788
-0xbcebd583
-// 0.149551
-0x3e1923d1
-// 0.523430
-0x3f05ff88
-// 0.075683
-0x3d9affbe
-// 0.059516
-0x3d73c761
-// -0.149648
-0xbe193d47
-// 0.102821
-0x3dd29412
-// -0.474836
-0xbef31da9
-// -0.113603
-0xbde8a8a7
-// 0.299031
-0x3e991a95
-// 0.186563
-0x3e3f0a42
-// 0.413151
-0x3ed38891
-// 0.582915
-0x3f1539eb
-// 0.219671
-0x3e60f153
-// 0.501231
-0x3f0050b2
-// 0.412143
-0x3ed30466
-// -0.255088
-0xbe829aee
-// 0.038088
-0x3d1c01f4
-// 0.041179
-0x3d28aae4
-// -0.109824
-0xbde0eb45
-// 0.241382
-0x3e772cf5
-// 0.083788
-0x3dab9940
-// 0.027993
-0x3ce550bd
-// 0.273520
-0x3e8c0acd
-// 0.422622
-0x3ed861d9
-// 0.225774
-0x3e673163
-// -0.445277
-0xbee3fb62
-// 0.402758
-0x3ece365b
-// -0.037491
-0xbd199099
-// -0.232831
-0xbe6e6b2a
-// -0.427231
-0xbedabe11
-// 0.008464
-0x3c0aabb4
-// -0.250147
-0xbe801345
-// 0.126176
-0x3e01342f
-// 0.215950
-0x3e5d21e0
-// 0.159835
-0x3e23abdb
-// -0.028372
-0xbce86ce5
-// -0.064437
-0xbd83f7ae
-// -0.042629
-0xbd2e9b90
-// -0.255702
-0xbe82eb63
-// 0.192799
-0x3e456d26
-// -0.178404
-0xbe36af94
-// -0.023405
-0xbcbfbafc
-// -0.025635
-0xbcd2005e
-// 0.073538
-0x3d969aeb
-// -0.506789
-0xbf01bcf2
-// -0.075980
-0xbd9b9b61
-// 0.608742
-0x3f1bd685
-// -0.296758
-0xbe97f0ba
-// -0.164384
-0xbe285447
-// -0.667669
-0xbf2aec57
-// -0.098906
-0xbdca8f10
-// -0.554846
-0xbf0e0a63
-// 0.159650
-0x3e237b54
-// 0.267417
-0x3e88eaf2
-// -0.276174
-0xbe8d66a5
-// -0.378930
-0xbec20325
-// -0.048871
-0xbd482c7e
-// -0.245384
-0xbe7b460d
-// 0.114322
-0x3dea21bb
-// -0.063491
-0xbd82076f
-// -0.068048
-0xbd8b5ca7
-// -0.018498
-0xbc9788b1
-// -0.275822
-0xbe8d3893
-// 0.163910
-0x3e27d7f3
-// 0.211524
-0x3e58999f
-// -0.146481
-0xbe15ff38
-// -0.302642
-0xbe9af3e2
-// 0.343822
-0x3eb00977
-// 0.021953
-0x3cb3d6c3
-// 0.082922
-0x3da9d2dc
-// -0.142431
-0xbe11d989
-// -0.120948
-0xbdf7b3b0
-// 0.051368
-0x3d5267ab
-// 0.218129
-0x3e5f5d23
-// 0.043464
-0x3d32078f
-// -0.006379
-0xbbd109c9
-// 0.334505
-0x3eab4443
-// 0.685650
-0x3f2f86c6
-// -0.482980
-0xbef7491a
-// 0.052513
-0x3d5717bf
-// 0.109942
-0x3de12925
-// -0.546476
-0xbf0be5d3
-// 0.053959
-0x3d5d03f8
-// -0.014192
-0xbc688378
-// 0.106758
-0x3ddaa3d6
-// 0.352152
-0x3eb44d50
-// 0.164018
-0x3e27f438
-// 0.074699
-0x3d98fbb4
-// -0.118448
-0xbdf29500
-// -0.131293
-0xbe0671c3
-// -0.293534
-0xbe964a22
-// -0.318366
-0xbea300e7
-// 0.508764
-0x3f023e55
-// -0.069718
-0xbd8ec885
-// 0.001181
-0x3a9ada39
-// -0.647084
-0xbf25a74b
-// 1.000000
-0x3f800000
-// -0.222763
-0xbe641bfe
-// 0.166675
-0x3e2aacec
-// -0.202601
-0xbe4f7695
-// -0.120148
-0xbdf61006
-// -0.024871
-0xbccbbf15
-// -0.251310
-0xbe80abc2
-// -0.048081
-0xbd44f051
-// -0.203501
-0xbe50628f
-// 0.364904
-0x3ebad4a5
-// -0.137313
-0xbe0c9be8
-// 0.162868
-0x3e26c6e7
-// -0.134729
-0xbe09f686
-// -0.495104
-0xbefd7e35
-// -0.080774
-0xbda56cde
-// -0.344341
-0xbeb04d67
-// 0.327933
-0x3ea7e6c8
-// -0.329034
-0xbea87728
-// -0.165020
-0xbe28faf5
-// 0.308630
-0x3e9e04ba
-// 0.460442
-0x3eebbf1c
-// -0.247069
-0xbe7cff9a
-// -0.806853
-0xbf4e8df0
-// -0.161665
-0xbe258b99
-// -0.959929
-0xbf75bdec
-// 0.112535
-0x3de67899
-// 0.126866
-0x3e01e915
-// -0.087025
-0xbdb23a58
-// -0.630032
-0xbf2149cf
-// -0.490338
-0xbefb0d9d
-// -0.421985
-0xbed80e71
-// -0.217872
-0xbe5f19cd
-// 0.122100
-0x3dfa0fc2
-// 0.129560
-0x3e04ab49
-// 0.890407
-0x3f63f1b8
-// 0.269540
-0x3e8a012c
-// -0.174001
-0xbe322d51
-// -0.118950
-0xbdf39c2e
-// 0.437141
-0x3edfd0ed
-// 0.139384
-0x3e0ebaa8
-// -0.517263
-0xbf046b53
-// -0.209688
-0xbe56b866
-// 0.151171
-0x3e1acc75
-// -0.183859
-0xbe3c4599
-// -0.386308
-0xbec5ca21
-// -0.079850
-0xbda38854
-// 0.154336
-0x3e1e0a3b
-// 0.059811
-0x3d74fcc3
-// -0.373464
-0xbebf36b0
-// -0.078613
-0xbda0ffa2
-// -0.202393
-0xbe4f403c
-// -0.086848
-0xbdb1dd90
-// 0.770726
-0x3f454e51
-// 0.426487
-0x3eda5c7a
-// -0.272649
-0xbe8b98a3
-// 0.695037
-0x3f31edeb
+// -0.274370
+0xbe8c7a3a
+// -0.346717
+0xbeb184ef
+// -0.205673
+0xbe529bf7
+// -0.014625
+0xbc6f9cc3
+// 0.149413
+0x3e18ffaa
+// -0.107289
+0xbddbba82
+// 0.378021
+0x3ec18bee
+// 0.135559
+0x3e0acfe5
+// -0.512260
+0xbf03237f
+// -0.071495
+0xbd926c29
+// 0.404585
+0x3ecf25c5
+// 0.404959
+0x3ecf56c9
+// 0.159975
+0x3e23d069
+// 0.118342
+0x3df25d11
+// -0.261809
+0xbe860bd3
+// -0.069816
+0xbd8efba5
+// -0.061189
+0xbd7aa183
+// -0.206457
+0xbe53696b
+// -0.329003
+0xbea87319
+// -0.521131
+0xbf0568d5
+// -0.134522
+0xbe09c01b
+// 0.227165
+0x3e689e03
+// 0.137938
+0x3e0d3f9c
+// 0.043708
+0x3d330703
+// -0.019143
+0xbc9cd176
+// -0.291537
+0xbe95444e
+// 0.150976
+0x3e1a9985
+// -0.361819
+0xbeb9404a
+// 0.060034
+0x3d75e5bd
+// 0.104021
+0x3dd5092f
+// -0.267995
+0xbe89369d
+// -0.434457
+0xbede712e
+// -0.081313
+0xbda687a7
+// -0.076385
+0xbd9c6fe5
+// -0.597489
+0xbf18f502
+// -0.108767
+0xbddec177
+// -0.111716
+0xbde4cb41
+// 0.047997
+0x3d4498a6
+// -0.131000
+0xbe0624ca
+// 0.215189
+0x3e5c5a6b
+// -0.170747
+0xbe2ed869
+// -0.327841
+0xbea7dac1
+// 0.114744
+0x3deafec8
+// -0.601945
+0xbf1a1914
+// -0.100609
+0xbdce0c27
+// 0.141339
+0x3e10bb30
+// 0.054073
+0x3d5d7b34
+// -0.453843
+0xbee85e17
+// 0.293958
+0x3e9681a1
+// -0.264181
+0xbe8742c5
+// -0.009424
+0xbc1a6564
+// 0.245662
+0x3e7b8ee0
+// 0.695136
+0x3f31f471
+// -0.116439
+0xbdee7767
+// 0.323690
+0x3ea5babc
+// 0.296943
+0x3e9808de
+// 0.053518
+0x3d5b3609
+// 0.023292
+0x3cbecfe0
+// -0.192461
+0xbe4514a0
+// -0.212423
+0xbe598568
+// -0.371388
+0xbebe268c
+// -0.430265
+0xbedc4bba
+// -0.460705
+0xbeebe18c
+// 0.118107
+0x3df1e24d
+// 0.704941
+0x3f347708
+// 0.110628
+0x3de290d4
+// -0.509304
+0xbf0261c3
+// -0.222715
+0xbe640f4b
+// 0.188679
+0x3e413506
+// 0.030398
+0x3cf905cc
+// 0.504170
+0x3f011148
+// -0.006916
+0xbbe2a2d5
+// 0.567932
+0x3f1163fd
+// 0.604657
+0x3f1acac8
+// 0.157760
+0x3e218bc9
+// 0.304737
+0x3e9c067a
+// 0.038664
+0x3d1e5e95
+// -0.460404
+0xbeebba0d
+// 0.247524
+0x3e7d7700
+// -0.256347
+0xbe833fef
+// -0.311677
+0xbe9f941c
+// -0.279791
+0xbe8f40be
+// 0.041568
+0x3d2a42e1
+// 0.354481
+0x3eb57e92
+// -0.388378
+0xbec6d975
+// 0.196821
+0x3e498b7a
+// 0.019480
+0x3c9f93da
+// 0.213897
+0x3e5b07b5
+// -0.376134
+0xbec09494
+// -0.043293
+0xbd31545f
+// 0.381531
+0x3ec3580e
+// 0.273995
+0x3e8c4911
+// 0.093725
+0x3dbff2d7
+// -0.160522
+0xbe245fea
+// 0.255519
+0x3e82d365
+// 0.099461
+0x3dcbb247
+// -0.405512
+0xbecf9f50
+// 0.561257
+0x3f0fae86
+// -0.047006
+0xbd4088f9
+// 0.053115
+0x3d598f14
+// -0.708820
+0xbf357540
+// -0.203724
+0xbe509d14
+// 0.603846
+0x3f1a95aa
+// 0.195304
+0x3e47fdde
+// -0.067659
+0xbd8a90a5
+// -0.175545
+0xbe33c228
+// -0.547801
+0xbf0c3cac
+// 0.140744
+0x3e101f46
+// -0.058114
+0xbd6e08ff
+// 0.027710
+0x3ce2ff7b
+// -0.505791
+0xbf017b7d
+// 0.149203
+0x3e18c89c
+// -0.025477
+0xbcd0b42b
+// 0.064604
+0x3d844f3d
+// 0.218235
+0x3e5f7919
+// 0.064068
+0x3d833601
+// -0.086639
+0xbdb16f9f
+// -0.105095
+0xbdd73c2c
+// -0.321698
+0xbea4b59a
+// 0.480715
+0x3ef62056
+// 0.091253
+0x3dbae2e7
+// -0.172897
+0xbe310bf6
+// 0.465358
+0x3eee435d
+// -0.136593
+0xbe0bdf1d
+// 0.599248
+0x3f196856
+// 0.063174
+0x3d816160
+// 0.220432
+0x3e61b8e8
+// 0.092801
+0x3dbe0e3a
+// 0.241869
+0x3e77ac7e
+// -0.699979
+0xbf3331d8
+// -0.150641
+0xbe1a4186
+// -0.035179
+0xbd101759
+// -0.190702
+0xbe43474d
+// -0.158747
+0xbe228e8d
+// -0.356111
+0xbeb6542a
+// -0.376093
+0xbec08f4c
+// -0.204105
+0xbe5100e6
+// 0.254577
+0x3e8257eb
+// 0.051323
+0x3d5237bd
+// 0.242116
+0x3e77ed51
+// 0.108590
+0x3dde647f
+// -0.428799
+0xbedb8b99
+// 0.078319
+0x3da065c0
+// 0.043706
+0x3d3304ae
+// 0.145745
+0x3e153e12
+// -0.542963
+0xbf0affa5
+// 0.382215
+0x3ec3b1aa
+// -0.143514
+0xbe12f55a
+// 0.350343
+0x3eb36034
+// 0.330949
+0x3ea97222
+// -0.139018
+0xbe0e5ab2
+// 0.329068
+0x3ea87ba0
+// 0.351647
+0x3eb40b0b
+// -0.250320
+0xbe8029e3
+// -0.378702
+0xbec1e535
+// -0.384490
+0xbec4dbeb
+// -0.193033
+0xbe45aa8d
+// 0.180848
+0x3e39301d
+// 0.318575
+0x3ea31c3e
+// 0.493402
+0x3efc9f2f
+// -0.155945
+0xbe1fb022
+// 0.002579
+0x3b290987
+// 0.057472
+0x3d6b6839
+// -0.219452
+0xbe60b7f8
+// 0.225430
+0x3e66d738
+// 0.228911
+0x3e6a679d
+// 0.430049
+0x3edc2f5a
+// -0.090958
+0xbdba4870
+// -0.085162
+0xbdae69a5
+// -0.107423
+0xbddc007e
+// -0.465799
+0xbeee7d3c
+// -0.110821
+0xbde2f62c
+// -0.175793
+0xbe340324
+// 0.364621
+0x3ebaaf8f
+// -0.195075
+0xbe47c1a7
+// 0.434294
+0x3ede5bd9
+// 0.059934
+0x3d757dc1
+// 0.187949
+0x3e4075a0
+// -0.128806
+0xbe03e5b3
+// -0.055795
+0xbd6488ea
+// -0.093406
+0xbdbf4b71
+// -0.098238
+0xbdc93112
+// 0.417998
+0x3ed603e2
+// -0.110975
+0xbde346e3
+// -0.366137
+0xbebb765b
+// -0.401769
+0xbecdb49a
+// 0.136897
+0x3e0c2ec0
+// 0.315613
+0x3ea19809
+// 0.026870
+0x3cdc1e3d
+// 0.361572
+0x3eb91ff8
+// -0.579547
+0xbf145d31
+// 0.067806
+0x3d8ade17
+// -0.306109
+0xbe9cba61
+// -0.180643
+0xbe38fa6c
+// -0.172737
+0xbe30e208
+// -0.104226
+0xbdd57473
+// 0.078490
+0x3da0bf7e
+// -0.058520
+0xbd6fb331
+// 0.480403
+0x3ef5f75d
+// 0.305495
+0x3e9c69d2
+// -0.570799
+0xbf121fe2
+// 0.525149
+0x3f06702c
+// -0.010282
+0xbc2873f7
+// 0.149454
+0x3e190a59
+// 0.075841
+0x3d9b5262
+// 0.089370
+0x3db707c5
+// 0.260207
+0x3e8539e8
+// -0.304805
+0xbe9c0f56
+// -0.299223
+0xbe9933bd
+// 0.207770
+0x3e54c187
+// 0.400982
+0x3ecd4d85
+// 0.106603
+0x3dda52da
+// -0.051498
+0xbd52ef87
+// -0.210094
+0xbe5722d8
+// 0.012716
+0x3c505731
+// -0.085535
+0xbdaf2d15
+// -0.218436
+0xbe5fad9c
+// -0.343083
+0xbeafa896
+// -0.201149
+0xbe4dfa0d
+// 0.085223
+0x3dae895a
+// -0.385922
+0xbec59781
+// 0.396434
+0x3ecaf960
+// -0.198351
+0xbe4b1ca1
+// 0.437699
+0x3ee01a0a
+// 0.461587
+0x3eec551a
+// 0.540229
+0x3f0a4c7b
+// -0.056149
+0xbd65fcb5
+// 0.183156
+0x3e3b8d57
+// -1.000000
+0xbf800000
+// -0.404148
+0xbeceec87
+// 0.605297
+0x3f1af4bb
+// 0.215643
+0x3e5cd1a3
+// -0.083814
+0xbdaba6e3
+// -0.078456
+0xbda0ad4e
+// 0.077296
+0x3d9e4d99
+// 0.043139
+0x3d30b200
+// -0.417355
+0xbed5af8d
+// -0.311129
+0xbe9f4c3f
+// -0.196635
+0xbe495a98
+// 0.188763
+0x3e414aff
+// 0.213840
+0x3e5af8fb
+// 0.053568
+0x3d5b69e2
+// -0.103672
+0xbdd451fa
+// -0.202700
+0xbe4f909f
+// -0.323316
+0xbea589bc
+// -0.098273
+0xbdc9436f
+// -0.195880
+0xbe4894a7
+// -0.038980
+0xbd1fa9c3
+// -0.503032
+0xbf00c6b8
+// 0.040436
+0x3d25a0b4
+// -0.589364
+0xbf16e095
+// 0.453079
+0x3ee7f9f2
+// 0.247501
+0x3e7d70d2
+// -0.039788
+0xbd22f864
+// 0.350449
+0x3eb36e0a
+// -0.259469
+0xbe84d925
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Samples1_f32.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Samples1_f32.txt
old mode 100755
new mode 100644
index 41e501b..669a02c
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Samples1_f32.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRF32/Samples1_f32.txt
@@ -1,514 +1,514 @@
 W
 256
-// 0.714082
-0x3f36ce1c
-// -0.578500
-0xbf141894
-// 0.210777
-0x3e57d604
-// -0.301291
-0xbe9a42db
-// 0.290798
-0x3e94e36a
-// 0.285095
-0x3e91f7fd
-// -0.018981
-0xbc9b7d87
-// -0.607480
-0xbf1b83d4
-// 0.412462
-0x3ed32e47
-// -0.491622
-0xbefbb5d5
-// 0.062035
-0x3d7e183c
-// 0.135455
-0x3e0ab4c9
-// 0.444812
-0x3ee3be74
-// -0.627825
-0xbf20b91f
-// -0.521390
-0xbf0579d6
-// 0.360408
-0x3eb8876c
-// -0.508246
-0xbf021c62
-// -0.229159
-0xbe6aa8a6
-// 0.344055
-0x3eb02805
-// 0.506261
-0x3f019a56
-// 0.771009
-0x3f4560da
-// 0.329785
-0x3ea8d992
-// 0.494600
-0x3efd3c2e
-// -0.301007
-0xbe9a1d99
-// 0.196034
-0x3e48bd2e
-// 0.095291
-0x3dc327e2
-// -0.716037
-0xbf374e31
-// 0.432914
-0x3edda6f3
-// 0.098400
-0x3dc9862f
-// 0.371129
-0x3ebe048f
-// 0.391768
-0x3ec895d5
-// -0.284095
-0xbe9174dc
-// 0.216063
-0x3e5d3f8a
-// 0.320420
-0x3ea40e0b
-// 0.417894
-0x3ed5f63b
-// 0.018435
-0x3c970520
-// -0.024612
-0xbcc99f01
-// -0.276671
-0xbe8da7c8
-// 0.584967
-0x3f15c06b
-// -0.010870
-0xbc32171b
-// -0.510457
-0xbf02ad55
-// -0.668921
-0xbf2b3e70
-// 0.385483
-0x3ec55e0f
-// 0.239146
-0x3e74e2be
-// 0.131401
-0x3e068df7
-// -0.077243
-0xbd9e3171
-// 0.152270
-0x3e1bec9b
-// -0.852168
-0xbf5a27a7
-// 0.309967
-0x3e9eb40c
-// 0.434265
-0x3ede580b
-// 0.758818
-0x3f4241e9
-// -0.469573
-0xbef06bd4
-// -0.387536
-0xbec66b0e
-// 0.226943
-0x3e6863c3
+// -0.048630
+0xbd473015
+// 0.075530
+0x3d9aaf6e
+// 0.073232
+0x3d95fa66
+// 0.011898
+0x3c42f02e
+// -0.057526
+0xbd6ba089
+// -0.046414
+0xbd3e1c92
+// 0.045522
+0x3d3a751b
+// -0.032642
+0xbd05b3fc
+// 0.119774
+0x3df54c1a
+// -0.179717
+0xbe3807cf
+// -0.175410
+0xbe339ec9
+// -0.177545
+0xbe35ce60
+// 0.034954
+0x3d0f2b73
+// 0.090168
+0x3db8a9d1
+// 0.490857
+0x3efb519a
+// -0.264935
+0xbe87a59d
+// 0.183772
+0x3e3c2ebd
+// -0.196350
+0xbe490ff9
+// -0.253898
+0xbe81fedc
+// -0.208431
+0xbe556ef1
+// 0.219102
+0x3e605c33
+// 0.607675
+0x3f1b9098
+// 0.269613
+0x3e8a0abc
+// -0.041764
+0xbd2b1094
+// 0.045647
+0x3d3af833
+// -0.388684
+0xbec70190
+// -0.050048
+0xbd4cff28
+// 0.264359
+0x3e875a0e
+// -0.456649
+0xbee9cde6
+// -0.298284
+0xbe98b8a1
+// -0.659650
+0xbf28deda
+// 0.261215
+0x3e85bdf3
+// -0.171072
+0xbe2f2d62
+// -0.076226
+0xbd9c1c3e
+// 0.308948
+0x3e9e2e79
+// -0.045775
+0xbd3b7ea6
+// 0.165158
+0x3e291f14
+// 0.000573
+0x3a16506b
+// -0.032293
+0xbd044528
+// -0.004495
+0xbb9347c0
+// -0.024733
+0xbcca9c50
+// -0.229893
+0xbe6b68fe
+// -0.150693
+0xbe1a4f3d
+// -0.015060
+0xbc76bece
+// -0.041239
+0xbd28e9e4
+// -0.385040
+0xbec52402
+// 0.436518
+0x3edf7f39
+// -0.126447
+0xbe017b65
+// 0.072514
+0x3d948222
+// 0.050875
+0x3d5061ee
+// -0.209028
+0xbe560b64
+// 0.341210
+0x3eaeb31e
+// 0.607478
+0x3f1b83b6
+// -0.132007
+0xbe072cd8
+// 0.563562
+0x3f1045a0
+// -0.064141
+0xbd835c5a
+// 0.494359
+0x3efd1c9d
+// 0.067495
+0x3d8a3aea
+// -0.375153
+0xbec01415
+// -0.433972
+0xbede3194
+// -0.113831
+0xbde92064
+// 0.072595
+0x3d94ac9b
+// -0.167232
+0xbe2b3ec5
+// 0.392761
+0x3ec91805
+// 0.201523
+0x3e4e5bff
+// -0.353875
+0xbeb52f21
+// 0.159028
+0x3e22d82f
+// 0.458134
+0x3eea907c
+// -0.193471
+0xbe461d5c
+// 0.507127
+0x3f01d310
+// 0.354871
+0x3eb5b1a6
+// 0.216537
+0x3e5dbbe9
+// -0.116227
+0xbdee082a
+// -0.275045
+0xbe8cd2b4
+// -0.475057
+0xbef33ab9
+// 0.133667
+0x3e08e016
+// -0.184389
+0xbe3cd07d
+// 0.729186
+0x3f3aabf0
+// -0.595002
+0xbf18520c
 // 1.000000
 0x3f800000
-// 0.186811
-0x3e3f4b60
-// 0.292609
-0x3e95d0e3
-// 0.502833
-0x3f00b9aa
-// 0.068480
-0x3d8c3f55
-// -0.220821
-0xbe621f00
-// 0.073545
-0x3d969e8d
-// 0.450903
-0x3ee6dcbe
-// 0.541029
-0x3f0a80e3
-// 0.422393
-0x3ed843f0
-// -0.349473
-0xbeb2ee28
-// -0.579399
-0xbf14537b
-// 0.127273
-0x3e0253cc
-// 0.524445
-0x3f064206
-// -0.388516
-0xbec6eb96
-// 0.291768
-0x3e9562a9
-// 0.042756
-0x3d2f215a
-// -0.801987
-0xbf4d4efd
-// -0.187754
-0xbe404279
-// 0.396373
-0x3ecaf16f
-// 0.625460
-0x3f201e29
-// 0.602410
-0x3f1a3792
-// -0.602794
-0xbf1a50bb
-// 0.158823
-0x3e22a266
-// 0.220836
-0x3e6222dc
-// -0.471503
-0xbef168c9
-// -0.089251
-0xbdb6c90b
-// 0.209578
-0x3e569bb1
-// -0.873137
-0xbf5f85ea
-// 0.680043
-0x3f2e174a
-// 0.162679
-0x3e269547
-// -0.090434
-0xbdb9356d
-// -0.649102
-0xbf262b8d
-// -0.197207
-0xbe49f0a4
-// -0.505731
-0xbf017796
-// -0.628602
-0xbf20ec09
-// 0.128981
-0x3e0413b4
-// 0.198985
-0x3e4bc2b8
-// 0.436790
-0x3edfa2ea
-// 0.083759
-0x3dab89d8
-// 0.671649
-0x3f2bf136
-// -0.632972
-0xbf220a71
-// 0.192648
-0x3e45459b
-// 0.051048
-0x3d5117f5
-// 0.418896
-0x3ed67985
-// -0.670032
-0xbf2b8736
-// -0.488035
-0xbef9dfb5
-// 0.081865
-0x3da7a8ef
-// 0.202344
-0x3e4f334d
-// 0.463048
-0x3eed14ac
-// 0.023460
-0x3cc0300d
-// -0.313518
-0xbea0857d
-// 0.125977
-0x3e010012
-// 0.513372
-0x3f036c61
-// 0.406712
-0x3ed03c9c
-// 0.393071
-0x3ec940a8
-// 0.583120
-0x3f15475e
-// -0.451591
-0xbee736f8
-// 0.702181
-0x3f33c228
-// 0.149770
-0x3e195d3e
-// -0.270325
-0xbe8a6815
-// -0.228471
-0xbe69f442
-// -0.685051
-0xbf2f5f7a
-// -0.398222
-0xbecbe3c7
-// 0.384758
-0x3ec4fef7
-// -0.103288
-0xbdd388d6
-// -0.068850
-0xbd8d015f
-// -0.912810
-0xbf69adf1
-// -0.466662
-0xbeeeee5a
-// -0.620053
-0xbf1ebbcf
-// -0.470793
-0xbef10bc9
-// 0.289368
-0x3e942817
-// -0.240594
-0xbe765e61
-// 0.173060
-0x3e313683
-// 0.402550
-0x3ece1b0e
-// -0.142858
-0xbe124969
-// 0.048108
-0x3d450c78
-// 0.389850
-0x3ec79a70
-// -0.950137
-0xbf733c34
-// -0.276567
-0xbe8d9a34
-// -0.381299
-0xbec339a8
-// 0.149652
-0x3e193e80
-// 0.312209
-0x3e9fd9e1
-// -0.124828
-0xbdffa591
-// -0.182338
-0xbe3ab6e7
-// 0.274791
-0x3e8cb168
-// 0.286598
-0x3e92bd07
-// -0.507571
-0xbf01f02f
-// -0.299490
-0xbe9956ce
-// -0.543196
-0xbf0b0ee9
-// -0.350695
-0xbeb38e54
-// -0.423229
-0xbed8b17a
-// -0.083015
-0xbdaa03f2
-// -0.088790
-0xbdb5d783
-// 0.378808
-0x3ec1f321
-// -0.323171
-0xbea576b1
-// 0.229631
-0x3e6b2454
-// -0.008098
-0xbc04ad18
-// -0.038982
-0xbd1fab50
-// 0.094723
-0x3dc1fe31
-// -0.155028
-0xbe1ebfa9
-// -0.011928
-0xbc436dff
-// -0.458894
-0xbeeaf433
-// -0.011485
-0xbc3c29f9
-// 0.267754
-0x3e89171c
-// 0.832291
-0x3f55110c
-// 0.430468
-0x3edc663f
-// 0.232059
-0x3e6da0d0
-// 0.106073
-0x3dd93c9c
-// -0.001219
-0xba9fba88
-// 0.150066
-0x3e19aadf
-// 0.094779
-0x3dc21b8f
-// 0.089880
-0x3db81338
-// -0.331768
-0xbea9dd87
-// 0.481860
-0x3ef6b653
-// -0.360369
-0xbeb88242
-// 0.097349
-0x3dc75efe
-// -0.392226
-0xbec8d1d3
-// -0.276520
-0xbe8d940b
-// -0.097639
-0xbdc7f732
-// -0.032551
-0xbd0553cd
-// -0.392742
-0xbec9157c
-// -0.967827
-0xbf77c385
-// -0.411442
-0xbed2a879
-// 0.398331
-0x3ecbf20c
-// 0.534323
-0x3f08c96a
-// -0.297605
-0xbe985fbc
-// 0.489103
-0x3efa6bb4
-// 0.212664
-0x3e59c4a1
-// 0.427885
-0x3edb13c3
-// 0.050691
-0x3d4fa110
-// 0.586594
-0x3f162b07
-// -0.560463
-0xbf0f7a7c
-// -0.700370
-0xbf334b78
-// -0.120769
-0xbdf755f0
-// 0.853629
-0x3f5a876b
-// 0.041318
-0x3d293d0f
-// -0.484134
-0xbef7e06b
-// -0.741868
-0xbf3deb0f
-// -0.073581
-0xbd96b170
-// 0.440764
-0x3ee1abcd
-// 0.555864
-0x3f0e4d19
-// 0.236605
-0x3e724895
-// -0.009117
-0xbc155f3f
-// -0.446215
-0xbee47659
-// 0.121143
-0x3df8199a
-// -0.478598
-0xbef50ac8
-// 0.151921
-0x3e1b914a
-// -0.018365
-0xbc96716a
-// 0.502923
-0x3f00bf8d
-// 0.576721
-0x3f13a3f9
-// 0.316918
-0x3ea24321
-// -0.270699
-0xbe8a991b
-// -0.747288
-0xbf3f4e43
-// 0.065880
-0x3d86ebf0
-// -0.497052
-0xbefe7d90
-// -0.145516
-0xbe15021c
-// -0.007311
-0xbbef8e4b
-// 0.009712
-0x3c1f1d72
-// -0.383152
-0xbec42c83
-// 0.095318
-0x3dc3363b
-// 0.236394
-0x3e721160
-// -0.419488
-0xbed6c722
-// -0.080074
-0xbda3fe10
-// -0.513248
-0xbf03643a
-// 0.160702
-0x3e248efb
-// 0.315850
-0x3ea1b713
-// 0.373979
-0x3ebf7a31
-// 0.861456
-0x3f5c8860
-// -0.598349
-0xbf192d6e
-// -0.119063
-0xbdf3d739
-// -0.264442
-0xbe8764ed
-// -0.371237
-0xbebe12c4
-// -0.083445
-0xbdaae55f
-// -0.582989
-0xbf153ebe
-// -0.603730
-0xbf1a8e08
-// 0.080506
-0x3da4e02a
-// -0.431192
-0xbedcc53e
-// 0.465275
-0x3eee387f
-// -0.059739
-0xbd74b0ad
-// 0.227250
-0x3e68b441
-// -0.708944
-0xbf357d5b
-// 0.745683
-0x3f3ee514
-// 0.365778
-0x3ebb4739
-// 0.512812
-0x3f0347ac
-// 0.606386
-0x3f1b3c22
-// 0.293277
-0x3e96286b
-// -0.318281
-0xbea2f5ba
-// -0.566745
-0xbf111636
-// 0.271558
-0x3e8b09b2
-// -0.047009
-0xbd408c64
-// -0.581657
-0xbf14e77f
-// 0.262365
-0x3e8654c5
-// -0.924192
-0xbf6c97d1
-// -0.666051
-0xbf2a8256
-// -0.659416
-0xbf28cf7d
-// 0.228408
-0x3e69e3aa
-// 0.441502
-0x3ee20c9b
-// 0.705839
-0x3f34b1db
-// -0.952463
-0xbf73d49c
-// -0.209310
-0xbe56557e
-// -0.112929
-0xbde7476a
+// 0.414730
+0x3ed4578a
+// -0.429722
+0xbedc047e
+// -0.613956
+0xbf1d2c38
+// -0.501007
+0xbf004206
+// 0.369889
+0x3ebd6208
+// 0.549455
+0x3f0ca911
+// 0.210385
+0x3e576f41
+// -0.054194
+0xbd5dfaa6
+// 0.160248
+0x3e2417f3
+// -0.636607
+0xbf22f8ae
+// -0.430847
+0xbedc97f2
+// 0.102604
+0x3dd221f4
+// -0.024520
+0xbcc8de96
+// 0.235862
+0x3e7185e6
+// 0.242207
+0x3e780523
+// 0.355114
+0x3eb5d183
+// -0.287272
+0xbe931548
+// -0.535212
+0xbf0903a1
+// -0.029535
+0xbcf1f360
+// 0.515445
+0x3f03f42c
+// 0.110020
+0x3de151ee
+// -0.076626
+0xbd9cee35
+// 0.103505
+0x3dd3fa9a
+// 0.247314
+0x3e7d3ffc
+// -0.095844
+0xbdc44a07
+// 0.127934
+0x3e030109
+// -0.361632
+0xbeb927e4
+// 0.182660
+0x3e3b0b29
+// 0.192275
+0x3e44e3b7
+// -0.255708
+0xbe82ec35
+// -0.479411
+0xbef5754f
+// -0.372333
+0xbebea26d
+// -0.408252
+0xbed10674
+// 0.046649
+0x3d3f12b5
+// -0.163831
+0xbe27c33b
+// -0.428901
+0xbedb98f2
+// 0.231949
+0x3e6d83f6
+// -0.151074
+0xbe1ab31e
+// -0.174127
+0xbe324e42
+// 0.015635
+0x3c80159b
+// 0.234848
+0x3e707bed
+// 0.255858
+0x3e82ffc3
+// -0.027075
+0xbcddcc84
+// -0.009003
+0xbc138176
+// -0.012588
+0xbc4e3c37
+// -0.076033
+0xbd9bb767
+// 0.471526
+0x3ef16bd5
+// 0.161004
+0x3e24de31
+// 0.103515
+0x3dd3ffb4
+// 0.017964
+0x3c9329c1
+// 0.221873
+0x3e6332a6
+// -0.703343
+0xbf340e4a
+// 0.183642
+0x3e3c0ca2
+// 0.264157
+0x3e873f94
+// 0.246733
+0x3e7ca78d
+// -0.187692
+0xbe403259
+// -0.142048
+0xbe117519
+// -0.139182
+0xbe0e85be
+// -0.255699
+0xbe82eafe
+// -0.079671
+0xbda32acb
+// -0.396699
+0xbecb1c2c
+// 0.535070
+0x3f08fa58
+// -0.377772
+0xbec16b4a
+// 0.167973
+0x3e2c0128
+// -0.049914
+0xbd4c7286
+// 0.221668
+0x3e62fd01
+// -0.170257
+0xbe2e57cc
+// 0.467000
+0x3eef1a92
+// -0.010601
+0xbc2daf7b
+// 0.041643
+0x3d2a9250
+// 0.079035
+0x3da1dd53
+// -0.100097
+0xbdccff70
+// 0.782631
+0x3f485a81
+// 0.039881
+0x3d235a3b
+// 0.002746
+0x3b33fd4e
+// 0.183057
+0x3e3b7366
+// 0.386682
+0x3ec5fb37
+// -0.033589
+0xbd0994f8
+// -0.055630
+0xbd63dcaa
+// 0.162253
+0x3e262596
+// 0.171359
+0x3e2f789b
+// 0.281692
+0x3e9039ea
+// -0.107698
+0xbddc90a4
+// -0.395456
+0xbeca7940
+// -0.015424
+0xbc7cb631
+// -0.100685
+0xbdce33b5
+// 0.030549
+0x3cfa411f
+// -0.464966
+0xbeee1004
+// 0.016126
+0x3c8419ba
+// -0.213473
+0xbe5a9897
+// 0.104527
+0x3dd61243
+// -0.020078
+0xbca47a81
+// -0.137993
+0xbe0d4e23
+// -0.220324
+0xbe619cb1
+// -0.365844
+0xbebb4fda
+// -0.273058
+0xbe8bce4a
+// 0.634555
+0x3f22722d
+// 0.577037
+0x3f13b8b6
+// -0.198745
+0xbe4b83ee
+// 0.227461
+0x3e68eb85
+// -0.071433
+0xbd924bba
+// 0.151269
+0x3e1ae638
+// -0.142375
+0xbe11cad8
+// -0.438643
+0xbee095cb
+// -0.110586
+0xbde27b19
+// -0.254716
+0xbe826a2f
+// -0.256667
+0xbe8369ce
+// -0.150172
+0xbe19c6b2
+// -0.065042
+0xbd8534a6
+// 0.186904
+0x3e3f63b2
+// 0.056399
+0x3d670272
+// 0.195193
+0x3e47e0ae
+// 0.064397
+0x3d83e27b
+// 0.169430
+0x3e2d7f1d
+// -0.200508
+0xbe4d5215
+// -0.106973
+0xbddb14c0
+// -0.246539
+0xbe7c74b6
+// -0.592446
+0xbf17aa92
+// 0.195318
+0x3e480157
+// 0.190999
+0x3e43954a
+// 0.296924
+0x3e98065c
+// 0.278128
+0x3e8e66db
+// -0.247000
+0xbe7cedb1
+// 0.017043
+0x3c8b9e1e
+// -0.242064
+0xbe77df98
+// 0.164012
+0x3e27f2a2
+// -0.279528
+0xbe8f1e3d
+// -0.191334
+0xbe43ed19
+// -0.241950
+0xbe77c1bf
+// 0.058514
+0x3d6facb6
+// 0.522635
+0x3f05cb60
+// 0.228979
+0x3e6a7974
+// -0.518826
+0xbf04d1c0
+// 0.318305
+0x3ea2f8dd
+// -0.444522
+0xbee39857
+// 0.382001
+0x3ec39598
+// -0.061125
+0xbd7a5ea0
+// -0.168540
+0xbe2c95c5
+// -0.095420
+0xbdc36b59
+// 0.115021
+0x3deb9020
+// 0.201657
+0x3e4e7f46
+// 0.605651
+0x3f1b0bf9
+// 0.286115
+0x3e927d9f
+// 0.140065
+0x3e0f6d49
+// 0.192886
+0x3e4583f3
+// 0.085933
+0x3daffdaa
+// -0.148132
+0xbe17afe4
+// 0.024617
+0x3cc9aa5e
+// -0.365004
+0xbebae1de
+// -0.065014
+0xbd8525e7
+// -0.186007
+0xbe3e7883
+// 0.319309
+0x3ea37c88
+// 0.028938
+0x3ced0ea1
+// -0.035992
+0xbd136c90
+// -0.253224
+0xbe81a68c
+// -0.233840
+0xbe6f73c7
+// 0.379919
+0x3ec284bf
+// 0.059553
+0x3d73edf9
+// -0.469447
+0xbef05b66
+// -0.252562
+0xbe814fc8
+// -0.539192
+0xbf0a0878
+// 0.204729
+0x3e51a494
+// 0.547642
+0x3f0c3249
+// 0.363175
+0x3eb9f21d
+// 0.411062
+0x3ed276b9
+// -0.102980
+0xbdd2e708
+// 0.171743
+0x3e2fdd4f
+// 0.333262
+0x3eaaa154
+// 0.088758
+0x3db5c6af
+// 0.214832
+0x3e5bfcec
+// -0.152767
+0xbe1c6ed7
+// -0.393551
+0xbec97f8b
+// -0.181690
+0xbe3a0cde
+// 0.433418
+0x3edde8f0
+// 0.123257
+0x3dfc6e40
+// -0.130194
+0xbe0551ac
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Coefs1_q15.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Coefs1_q15.txt
index d555652..576cf41 100755
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Coefs1_q15.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Coefs1_q15.txt
@@ -1,130 +1,130 @@
 H
 64
-// 0.077358
-0x09E7
-// -0.037885
-0xFB27
-// 0.121381
-0x0F89
-// 0.571546
-0x4928
-// 0.488081
-0x3E79
-// -0.001907
-0xFFC2
-// -0.348872
-0xD358
-// 0.168216
-0x1588
-// -0.525858
-0xBCB1
-// 0.428359
-0x36D4
-// 0.254955
-0x20A2
-// 0.415258
-0x3527
-// 0.068330
-0x08BF
-// -0.472813
-0xC37B
-// 0.542480
-0x4570
-// 0.766092
-0x620F
-// -0.762521
-0x9E66
-// -0.293615
-0xDA6B
-// 0.513989
-0x41CA
-// 0.794914
-0x65C0
-// 0.065464
-0x0861
-// -0.109178
-0xF206
-// 0.046093
-0x05E6
-// -0.260853
-0xDE9C
-// 0.695858
-0x5912
-// 0.463095
-0x3B47
-// 0.533402
-0x4447
-// -0.501960
-0xBFC0
-// -0.391290
-0xCDEA
-// -0.324158
-0xD682
-// -0.103458
-0xF2C2
-// 0.246919
-0x1F9B
-// -0.053837
-0xF91C
-// -0.508757
-0xBEE1
-// 1.000000
-0x7FFF
-// 0.202910
-0x19F9
-// 0.141960
-0x122C
-// -0.166644
-0xEAAB
-// -0.244547
-0xE0B3
-// 0.769493
-0x627F
-// 0.185452
-0x17BD
-// 0.249162
-0x1FE5
-// 0.577403
-0x49E8
-// 0.171061
-0x15E5
-// -0.039932
-0xFAE3
-// -0.341220
-0xD453
-// -0.718442
-0xA40A
-// 0.252056
-0x2043
-// -0.124016
-0xF020
-// 0.388750
-0x31C3
-// -0.726455
-0xA304
-// -0.484967
-0xC1ED
-// 0.791315
-0x654A
-// 0.335221
-0x2AE9
-// -0.359852
-0xD1F0
-// 0.411577
-0x34AF
-// 0.274920
-0x2331
-// -0.702330
-0xA61A
-// 0.326833
-0x29D6
-// 0.454496
-0x3A2D
-// 0.634148
-0x512C
-// 0.260728
-0x2160
-// 0.726640
-0x5D03
-// 0.681827
-0x5746
+// -0.167122
+0xEA9C
+// 0.041085
+0x0542
+// -1.000000
+0x8000
+// -0.467343
+0xC42E
+// -0.025549
+0xFCBB
+// -0.331005
+0xD5A2
+// 0.059851
+0x07A9
+// 0.040286
+0x0528
+// 0.710366
+0x5AED
+// -0.017774
+0xFDBA
+// -0.014706
+0xFE1E
+// 0.184477
+0x179D
+// 0.641585
+0x521F
+// 0.010706
+0x015F
+// -0.546564
+0xBA0A
+// 0.029256
+0x03BF
+// 0.015539
+0x01FD
+// -0.120463
+0xF095
+// 0.281078
+0x23FA
+// -0.137106
+0xEE73
+// -0.057143
+0xF8B0
+// -0.290425
+0xDAD3
+// 0.103329
+0x0D3A
+// 0.362765
+0x2E6F
+// -0.646532
+0xAD3E
+// 0.115809
+0x0ED3
+// 0.215445
+0x1B94
+// -0.216234
+0xE452
+// 0.371913
+0x2F9B
+// -0.541059
+0xBABF
+// 0.191476
+0x1882
+// -0.085940
+0xF500
+// -0.488651
+0xC174
+// -0.766034
+0x9DF3
+// 0.471843
+0x3C65
+// 0.234323
+0x1DFE
+// -0.142792
+0xEDB9
+// -0.318739
+0xD734
+// 0.540150
+0x4524
+// 0.210395
+0x1AEE
+// 0.113412
+0x0E84
+// 0.080853
+0x0A59
+// -0.064999
+0xF7AE
+// 0.132397
+0x10F2
+// -0.458349
+0xC555
+// -0.161362
+0xEB58
+// 0.212606
+0x1B37
+// 0.407670
+0x342F
+// 0.241639
+0x1EEE
+// -0.149194
+0xECE7
+// 0.387535
+0x319B
+// -0.159324
+0xEB9B
+// -0.317577
+0xD75A
+// -0.405661
+0xCC13
+// -0.224868
+0xE338
+// -0.359911
+0xD1EE
+// 0.039551
+0x0510
+// -0.068337
+0xF741
+// -0.157341
+0xEBDC
+// -0.037047
+0xFB42
+// -0.183824
+0xE878
+// 0.483951
+0x3DF2
+// -0.233759
+0xE214
+// 0.253102
+0x2066
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirCoefs1_q15.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirCoefs1_q15.txt
new file mode 100644
index 0000000..e909f71
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirCoefs1_q15.txt
@@ -0,0 +1,782 @@
+H
+390
+// 0.000000
+0x0000
+// 0.333333
+0x2AAB
+// 0.500000
+0x4000
+// 0.250000
+0x2000
+// 0.000000
+0x0000
+// 0.600000
+0x4CCD
+// 0.400000
+0x3333
+// 0.200000
+0x199A
+// 0.666667
+0x5555
+// 0.500000
+0x4000
+// 0.333333
+0x2AAB
+// 0.166667
+0x1555
+// 0.000000
+0x0000
+// 0.714286
+0x5B6E
+// 0.571429
+0x4925
+// 0.428571
+0x36DB
+// 0.285714
+0x2492
+// 0.142857
+0x1249
+// 0.750000
+0x6000
+// 0.625000
+0x5000
+// 0.500000
+0x4000
+// 0.375000
+0x3000
+// 0.250000
+0x2000
+// 0.125000
+0x1000
+// 0.000000
+0x0000
+// 0.777778
+0x638E
+// 0.666667
+0x5555
+// 0.555556
+0x471C
+// 0.444444
+0x38E4
+// 0.333333
+0x2AAB
+// 0.222222
+0x1C72
+// 0.111111
+0x0E39
+// 0.800000
+0x6666
+// 0.700000
+0x599A
+// 0.600000
+0x4CCD
+// 0.500000
+0x4000
+// 0.400000
+0x3333
+// 0.300000
+0x2666
+// 0.200000
+0x199A
+// 0.100000
+0x0CCD
+// 0.000000
+0x0000
+// 0.846154
+0x6C4F
+// 0.769231
+0x6276
+// 0.692308
+0x589E
+// 0.615385
+0x4EC5
+// 0.538462
+0x44EC
+// 0.461538
+0x3B14
+// 0.384615
+0x313B
+// 0.307692
+0x2762
+// 0.230769
+0x1D8A
+// 0.153846
+0x13B1
+// 0.076923
+0x09D9
+// 0.000000
+0x0000
+// 0.925926
+0x7685
+// 0.888889
+0x71C7
+// 0.851852
+0x6D09
+// 0.814815
+0x684C
+// 0.777778
+0x638E
+// 0.740741
+0x5ED1
+// 0.703704
+0x5A13
+// 0.666667
+0x5555
+// 0.629630
+0x5098
+// 0.592593
+0x4BDA
+// 0.555556
+0x471C
+// 0.518519
+0x425F
+// 0.481481
+0x3DA1
+// 0.444444
+0x38E4
+// 0.407407
+0x3426
+// 0.370370
+0x2F68
+// 0.333333
+0x2AAB
+// 0.296296
+0x25ED
+// 0.259259
+0x212F
+// 0.222222
+0x1C72
+// 0.185185
+0x17B4
+// 0.148148
+0x12F7
+// 0.111111
+0x0E39
+// 0.074074
+0x097B
+// 0.037037
+0x04BE
+// 0.000000
+0x0000
+// 0.333333
+0x2AAB
+// 0.500000
+0x4000
+// 0.250000
+0x2000
+// 0.000000
+0x0000
+// 0.600000
+0x4CCD
+// 0.400000
+0x3333
+// 0.200000
+0x199A
+// 0.666667
+0x5555
+// 0.500000
+0x4000
+// 0.333333
+0x2AAB
+// 0.166667
+0x1555
+// 0.000000
+0x0000
+// 0.714286
+0x5B6E
+// 0.571429
+0x4925
+// 0.428571
+0x36DB
+// 0.285714
+0x2492
+// 0.142857
+0x1249
+// 0.750000
+0x6000
+// 0.625000
+0x5000
+// 0.500000
+0x4000
+// 0.375000
+0x3000
+// 0.250000
+0x2000
+// 0.125000
+0x1000
+// 0.000000
+0x0000
+// 0.777778
+0x638E
+// 0.666667
+0x5555
+// 0.555556
+0x471C
+// 0.444444
+0x38E4
+// 0.333333
+0x2AAB
+// 0.222222
+0x1C72
+// 0.111111
+0x0E39
+// 0.800000
+0x6666
+// 0.700000
+0x599A
+// 0.600000
+0x4CCD
+// 0.500000
+0x4000
+// 0.400000
+0x3333
+// 0.300000
+0x2666
+// 0.200000
+0x199A
+// 0.100000
+0x0CCD
+// 0.000000
+0x0000
+// 0.846154
+0x6C4F
+// 0.769231
+0x6276
+// 0.692308
+0x589E
+// 0.615385
+0x4EC5
+// 0.538462
+0x44EC
+// 0.461538
+0x3B14
+// 0.384615
+0x313B
+// 0.307692
+0x2762
+// 0.230769
+0x1D8A
+// 0.153846
+0x13B1
+// 0.076923
+0x09D9
+// 0.000000
+0x0000
+// 0.925926
+0x7685
+// 0.888889
+0x71C7
+// 0.851852
+0x6D09
+// 0.814815
+0x684C
+// 0.777778
+0x638E
+// 0.740741
+0x5ED1
+// 0.703704
+0x5A13
+// 0.666667
+0x5555
+// 0.629630
+0x5098
+// 0.592593
+0x4BDA
+// 0.555556
+0x471C
+// 0.518519
+0x425F
+// 0.481481
+0x3DA1
+// 0.444444
+0x38E4
+// 0.407407
+0x3426
+// 0.370370
+0x2F68
+// 0.333333
+0x2AAB
+// 0.296296
+0x25ED
+// 0.259259
+0x212F
+// 0.222222
+0x1C72
+// 0.185185
+0x17B4
+// 0.148148
+0x12F7
+// 0.111111
+0x0E39
+// 0.074074
+0x097B
+// 0.037037
+0x04BE
+// 0.000000
+0x0000
+// 0.333333
+0x2AAB
+// 0.500000
+0x4000
+// 0.250000
+0x2000
+// 0.000000
+0x0000
+// 0.600000
+0x4CCD
+// 0.400000
+0x3333
+// 0.200000
+0x199A
+// 0.666667
+0x5555
+// 0.500000
+0x4000
+// 0.333333
+0x2AAB
+// 0.166667
+0x1555
+// 0.000000
+0x0000
+// 0.714286
+0x5B6E
+// 0.571429
+0x4925
+// 0.428571
+0x36DB
+// 0.285714
+0x2492
+// 0.142857
+0x1249
+// 0.750000
+0x6000
+// 0.625000
+0x5000
+// 0.500000
+0x4000
+// 0.375000
+0x3000
+// 0.250000
+0x2000
+// 0.125000
+0x1000
+// 0.000000
+0x0000
+// 0.777778
+0x638E
+// 0.666667
+0x5555
+// 0.555556
+0x471C
+// 0.444444
+0x38E4
+// 0.333333
+0x2AAB
+// 0.222222
+0x1C72
+// 0.111111
+0x0E39
+// 0.800000
+0x6666
+// 0.700000
+0x599A
+// 0.600000
+0x4CCD
+// 0.500000
+0x4000
+// 0.400000
+0x3333
+// 0.300000
+0x2666
+// 0.200000
+0x199A
+// 0.100000
+0x0CCD
+// 0.000000
+0x0000
+// 0.846154
+0x6C4F
+// 0.769231
+0x6276
+// 0.692308
+0x589E
+// 0.615385
+0x4EC5
+// 0.538462
+0x44EC
+// 0.461538
+0x3B14
+// 0.384615
+0x313B
+// 0.307692
+0x2762
+// 0.230769
+0x1D8A
+// 0.153846
+0x13B1
+// 0.076923
+0x09D9
+// 0.000000
+0x0000
+// 0.925926
+0x7685
+// 0.888889
+0x71C7
+// 0.851852
+0x6D09
+// 0.814815
+0x684C
+// 0.777778
+0x638E
+// 0.740741
+0x5ED1
+// 0.703704
+0x5A13
+// 0.666667
+0x5555
+// 0.629630
+0x5098
+// 0.592593
+0x4BDA
+// 0.555556
+0x471C
+// 0.518519
+0x425F
+// 0.481481
+0x3DA1
+// 0.444444
+0x38E4
+// 0.407407
+0x3426
+// 0.370370
+0x2F68
+// 0.333333
+0x2AAB
+// 0.296296
+0x25ED
+// 0.259259
+0x212F
+// 0.222222
+0x1C72
+// 0.185185
+0x17B4
+// 0.148148
+0x12F7
+// 0.111111
+0x0E39
+// 0.074074
+0x097B
+// 0.037037
+0x04BE
+// 0.000000
+0x0000
+// 0.333333
+0x2AAB
+// 0.500000
+0x4000
+// 0.250000
+0x2000
+// 0.000000
+0x0000
+// 0.600000
+0x4CCD
+// 0.400000
+0x3333
+// 0.200000
+0x199A
+// 0.666667
+0x5555
+// 0.500000
+0x4000
+// 0.333333
+0x2AAB
+// 0.166667
+0x1555
+// 0.000000
+0x0000
+// 0.714286
+0x5B6E
+// 0.571429
+0x4925
+// 0.428571
+0x36DB
+// 0.285714
+0x2492
+// 0.142857
+0x1249
+// 0.750000
+0x6000
+// 0.625000
+0x5000
+// 0.500000
+0x4000
+// 0.375000
+0x3000
+// 0.250000
+0x2000
+// 0.125000
+0x1000
+// 0.000000
+0x0000
+// 0.777778
+0x638E
+// 0.666667
+0x5555
+// 0.555556
+0x471C
+// 0.444444
+0x38E4
+// 0.333333
+0x2AAB
+// 0.222222
+0x1C72
+// 0.111111
+0x0E39
+// 0.800000
+0x6666
+// 0.700000
+0x599A
+// 0.600000
+0x4CCD
+// 0.500000
+0x4000
+// 0.400000
+0x3333
+// 0.300000
+0x2666
+// 0.200000
+0x199A
+// 0.100000
+0x0CCD
+// 0.000000
+0x0000
+// 0.846154
+0x6C4F
+// 0.769231
+0x6276
+// 0.692308
+0x589E
+// 0.615385
+0x4EC5
+// 0.538462
+0x44EC
+// 0.461538
+0x3B14
+// 0.384615
+0x313B
+// 0.307692
+0x2762
+// 0.230769
+0x1D8A
+// 0.153846
+0x13B1
+// 0.076923
+0x09D9
+// 0.000000
+0x0000
+// 0.925926
+0x7685
+// 0.888889
+0x71C7
+// 0.851852
+0x6D09
+// 0.814815
+0x684C
+// 0.777778
+0x638E
+// 0.740741
+0x5ED1
+// 0.703704
+0x5A13
+// 0.666667
+0x5555
+// 0.629630
+0x5098
+// 0.592593
+0x4BDA
+// 0.555556
+0x471C
+// 0.518519
+0x425F
+// 0.481481
+0x3DA1
+// 0.444444
+0x38E4
+// 0.407407
+0x3426
+// 0.370370
+0x2F68
+// 0.333333
+0x2AAB
+// 0.296296
+0x25ED
+// 0.259259
+0x212F
+// 0.222222
+0x1C72
+// 0.185185
+0x17B4
+// 0.148148
+0x12F7
+// 0.111111
+0x0E39
+// 0.074074
+0x097B
+// 0.037037
+0x04BE
+// 0.000000
+0x0000
+// 0.333333
+0x2AAB
+// 0.500000
+0x4000
+// 0.250000
+0x2000
+// 0.000000
+0x0000
+// 0.600000
+0x4CCD
+// 0.400000
+0x3333
+// 0.200000
+0x199A
+// 0.666667
+0x5555
+// 0.500000
+0x4000
+// 0.333333
+0x2AAB
+// 0.166667
+0x1555
+// 0.000000
+0x0000
+// 0.714286
+0x5B6E
+// 0.571429
+0x4925
+// 0.428571
+0x36DB
+// 0.285714
+0x2492
+// 0.142857
+0x1249
+// 0.750000
+0x6000
+// 0.625000
+0x5000
+// 0.500000
+0x4000
+// 0.375000
+0x3000
+// 0.250000
+0x2000
+// 0.125000
+0x1000
+// 0.000000
+0x0000
+// 0.777778
+0x638E
+// 0.666667
+0x5555
+// 0.555556
+0x471C
+// 0.444444
+0x38E4
+// 0.333333
+0x2AAB
+// 0.222222
+0x1C72
+// 0.111111
+0x0E39
+// 0.800000
+0x6666
+// 0.700000
+0x599A
+// 0.600000
+0x4CCD
+// 0.500000
+0x4000
+// 0.400000
+0x3333
+// 0.300000
+0x2666
+// 0.200000
+0x199A
+// 0.100000
+0x0CCD
+// 0.000000
+0x0000
+// 0.846154
+0x6C4F
+// 0.769231
+0x6276
+// 0.692308
+0x589E
+// 0.615385
+0x4EC5
+// 0.538462
+0x44EC
+// 0.461538
+0x3B14
+// 0.384615
+0x313B
+// 0.307692
+0x2762
+// 0.230769
+0x1D8A
+// 0.153846
+0x13B1
+// 0.076923
+0x09D9
+// 0.000000
+0x0000
+// 0.925926
+0x7685
+// 0.888889
+0x71C7
+// 0.851852
+0x6D09
+// 0.814815
+0x684C
+// 0.777778
+0x638E
+// 0.740741
+0x5ED1
+// 0.703704
+0x5A13
+// 0.666667
+0x5555
+// 0.629630
+0x5098
+// 0.592593
+0x4BDA
+// 0.555556
+0x471C
+// 0.518519
+0x425F
+// 0.481481
+0x3DA1
+// 0.444444
+0x38E4
+// 0.407407
+0x3426
+// 0.370370
+0x2F68
+// 0.333333
+0x2AAB
+// 0.296296
+0x25ED
+// 0.259259
+0x212F
+// 0.222222
+0x1C72
+// 0.185185
+0x17B4
+// 0.148148
+0x12F7
+// 0.111111
+0x0E39
+// 0.074074
+0x097B
+// 0.037037
+0x04BE
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirConfigs1_s16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirConfigs1_s16.txt
new file mode 100644
index 0000000..45616f0
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirConfigs1_s16.txt
@@ -0,0 +1,202 @@
+H
+100
+// 1
+0x0001
+// 2
+0x0002
+// 1
+0x0001
+// 2
+0x0002
+// 1
+0x0001
+// 4
+0x0004
+// 1
+0x0001
+// 4
+0x0004
+// 1
+0x0001
+// 6
+0x0006
+// 1
+0x0001
+// 6
+0x0006
+// 1
+0x0001
+// 8
+0x0008
+// 1
+0x0001
+// 8
+0x0008
+// 1
+0x0001
+// 12
+0x000C
+// 1
+0x0001
+// 26
+0x001A
+// 2
+0x0002
+// 2
+0x0002
+// 2
+0x0002
+// 2
+0x0002
+// 2
+0x0002
+// 4
+0x0004
+// 2
+0x0002
+// 4
+0x0004
+// 2
+0x0002
+// 6
+0x0006
+// 2
+0x0002
+// 6
+0x0006
+// 2
+0x0002
+// 8
+0x0008
+// 2
+0x0002
+// 8
+0x0008
+// 2
+0x0002
+// 12
+0x000C
+// 2
+0x0002
+// 26
+0x001A
+// 3
+0x0003
+// 2
+0x0002
+// 3
+0x0003
+// 2
+0x0002
+// 3
+0x0003
+// 4
+0x0004
+// 3
+0x0003
+// 4
+0x0004
+// 3
+0x0003
+// 6
+0x0006
+// 3
+0x0003
+// 6
+0x0006
+// 3
+0x0003
+// 8
+0x0008
+// 3
+0x0003
+// 8
+0x0008
+// 3
+0x0003
+// 12
+0x000C
+// 3
+0x0003
+// 26
+0x001A
+// 8
+0x0008
+// 2
+0x0002
+// 8
+0x0008
+// 2
+0x0002
+// 8
+0x0008
+// 4
+0x0004
+// 8
+0x0008
+// 4
+0x0004
+// 8
+0x0008
+// 6
+0x0006
+// 8
+0x0008
+// 6
+0x0006
+// 8
+0x0008
+// 8
+0x0008
+// 8
+0x0008
+// 8
+0x0008
+// 8
+0x0008
+// 12
+0x000C
+// 8
+0x0008
+// 26
+0x001A
+// 11
+0x000B
+// 2
+0x0002
+// 11
+0x000B
+// 2
+0x0002
+// 11
+0x000B
+// 4
+0x0004
+// 11
+0x000B
+// 4
+0x0004
+// 11
+0x000B
+// 6
+0x0006
+// 11
+0x000B
+// 6
+0x0006
+// 11
+0x000B
+// 8
+0x0008
+// 11
+0x000B
+// 8
+0x0008
+// 11
+0x000B
+// 12
+0x000C
+// 11
+0x000B
+// 26
+0x001A
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirInput1_q15.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirInput1_q15.txt
new file mode 100644
index 0000000..8442728
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirInput1_q15.txt
@@ -0,0 +1,94 @@
+H
+46
+// -0.001578
+0xFFCC
+// 0.022370
+0x02DD
+// 0.031800
+0x0412
+// 0.029809
+0x03D1
+// 0.009696
+0x013E
+// -0.012180
+0xFE71
+// -0.025470
+0xFCBD
+// -0.033333
+0xFBBC
+// -0.017364
+0xFDC7
+// -0.000134
+0xFFFC
+// 0.020261
+0x0298
+// 0.032453
+0x0427
+// 0.026206
+0x035B
+// 0.007367
+0x00F1
+// -0.012267
+0xFE6E
+// -0.027247
+0xFC83
+// -0.028953
+0xFC4B
+// -0.022472
+0xFD20
+// 0.001606
+0x0035
+// 0.023970
+0x0311
+// 0.031669
+0x040E
+// 0.028359
+0x03A1
+// 0.011205
+0x016F
+// -0.011007
+0xFE97
+// -0.030164
+0xFC24
+// -0.029474
+0xFC3A
+// -0.022559
+0xFD1D
+// 0.003345
+0x006E
+// 0.019856
+0x028B
+// 0.028855
+0x03B2
+// 0.024937
+0x0331
+// 0.009772
+0x0140
+// -0.008130
+0xFEF6
+// -0.027173
+0xFC86
+// -0.030286
+0xFC20
+// -0.024042
+0xFCEC
+// 0.001499
+0x0031
+// 0.022588
+0x02E4
+// 0.030631
+0x03EC
+// 0.032070
+0x041B
+// 0.011184
+0x016E
+// -0.013357
+0xFE4A
+// -0.026676
+0xFC96
+// -0.028766
+0xFC51
+// -0.016121
+0xFDF0
+// -0.002920
+0xFFA0
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirRefs1_q15.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirRefs1_q15.txt
new file mode 100644
index 0000000..5edd957
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/FirRefs1_q15.txt
@@ -0,0 +1,1002 @@
+H
+500
+// -0.000526
+0xFFEF
+// 0.007457
+0x00F4
+// -0.000394
+0xFFF3
+// 0.004803
+0x009D
+// -0.000316
+0xFFF6
+// 0.003843
+0x007E
+// -0.000263
+0xFFF7
+// 0.003202
+0x0069
+// -0.000225
+0xFFF9
+// 0.002745
+0x005A
+// -0.000197
+0xFFFA
+// 0.002402
+0x004F
+// -0.000175
+0xFFFA
+// 0.002135
+0x0046
+// -0.000158
+0xFFFB
+// 0.001921
+0x003F
+// -0.000121
+0xFFFC
+// 0.001478
+0x0030
+// -0.000058
+0xFFFE
+// 0.000712
+0x0017
+// -0.000526
+0xFFEF
+// 0.007457
+0x00F4
+// 0.010600
+0x015B
+// 0.009936
+0x0146
+// -0.000394
+0xFFF3
+// 0.004803
+0x009D
+// 0.019135
+0x0273
+// 0.023352
+0x02FD
+// -0.000316
+0xFFF6
+// 0.003843
+0x007E
+// 0.014361
+0x01D7
+// 0.032104
+0x041C
+// -0.000263
+0xFFF7
+// 0.003202
+0x0069
+// 0.011968
+0x0188
+// 0.025701
+0x034A
+// -0.000225
+0xFFF9
+// 0.002745
+0x005A
+// 0.010258
+0x0150
+// 0.022029
+0x02D2
+// -0.000197
+0xFFFA
+// 0.002402
+0x004F
+// 0.008976
+0x0126
+// 0.019276
+0x0278
+// -0.000175
+0xFFFA
+// 0.002135
+0x0046
+// 0.007978
+0x0105
+// 0.017134
+0x0231
+// -0.000158
+0xFFFB
+// 0.001921
+0x003F
+// 0.007181
+0x00EB
+// 0.015421
+0x01F9
+// -0.000121
+0xFFFC
+// 0.001478
+0x0030
+// 0.005524
+0x00B5
+// 0.011862
+0x0185
+// -0.000058
+0xFFFE
+// 0.000712
+0x0017
+// 0.002659
+0x0057
+// 0.005711
+0x00BB
+// -0.000526
+0xFFEF
+// 0.007457
+0x00F4
+// 0.010600
+0x015B
+// 0.009936
+0x0146
+// 0.003232
+0x006A
+// -0.004060
+0xFF7B
+// -0.000394
+0xFFF3
+// 0.004803
+0x009D
+// 0.019135
+0x0273
+// 0.023352
+0x02FD
+// 0.017328
+0x0238
+// 0.001803
+0x003B
+// -0.000316
+0xFFF6
+// 0.003843
+0x007E
+// 0.014361
+0x01D7
+// 0.032104
+0x041C
+// 0.032943
+0x0437
+// 0.019328
+0x0279
+// -0.000263
+0xFFF7
+// 0.003202
+0x0069
+// 0.011968
+0x0188
+// 0.025701
+0x034A
+// 0.042365
+0x056C
+// 0.037306
+0x04C6
+// -0.000225
+0xFFF9
+// 0.002745
+0x005A
+// 0.010258
+0x0150
+// 0.022029
+0x02D2
+// 0.035186
+0x0481
+// 0.047955
+0x0623
+// -0.000197
+0xFFFA
+// 0.002402
+0x004F
+// 0.008976
+0x0126
+// 0.019276
+0x0278
+// 0.030788
+0x03F1
+// 0.040777
+0x0538
+// -0.000175
+0xFFFA
+// 0.002135
+0x0046
+// 0.007978
+0x0105
+// 0.017134
+0x0231
+// 0.027367
+0x0381
+// 0.036247
+0x04A4
+// -0.000158
+0xFFFB
+// 0.001921
+0x003F
+// 0.007181
+0x00EB
+// 0.015421
+0x01F9
+// 0.024630
+0x0327
+// 0.032622
+0x042D
+// -0.000121
+0xFFFC
+// 0.001478
+0x0030
+// 0.005524
+0x00B5
+// 0.011862
+0x0185
+// 0.018946
+0x026D
+// 0.025094
+0x0336
+// -0.000058
+0xFFFE
+// 0.000712
+0x0017
+// 0.002659
+0x0057
+// 0.005711
+0x00BB
+// 0.009122
+0x012B
+// 0.012082
+0x018C
+// -0.000526
+0xFFEF
+// 0.007457
+0x00F4
+// 0.010600
+0x015B
+// 0.009936
+0x0146
+// 0.003232
+0x006A
+// -0.004060
+0xFF7B
+// -0.008490
+0xFEEA
+// -0.011111
+0xFE94
+// -0.005788
+0xFF42
+// -0.000045
+0xFFFF
+// 0.006754
+0x00DD
+// 0.010818
+0x0162
+// 0.008735
+0x011E
+// 0.002456
+0x0050
+// -0.004089
+0xFF7A
+// -0.009082
+0xFED6
+// -0.000394
+0xFFF3
+// 0.004803
+0x009D
+// 0.019135
+0x0273
+// 0.023352
+0x02FD
+// 0.017328
+0x0238
+// 0.001803
+0x003B
+// -0.012458
+0xFE68
+// -0.021068
+0xFD4E
+// -0.021008
+0xFD50
+// -0.008715
+0xFEE2
+// 0.004998
+0x00A4
+// 0.018244
+0x0256
+// 0.022778
+0x02EA
+// 0.014945
+0x01EA
+// 0.000617
+0x0014
+// -0.012946
+0xFE58
+// -0.000316
+0xFFF6
+// 0.003843
+0x007E
+// 0.014361
+0x01D7
+// 0.032104
+0x041C
+// 0.032943
+0x0437
+// 0.019328
+0x0279
+// -0.004148
+0xFF78
+// -0.024163
+0xFCE8
+// -0.032088
+0xFBE5
+// -0.026972
+0xFC8C
+// -0.006420
+0xFF2E
+// 0.014515
+0x01DC
+// 0.030379
+0x03E3
+// 0.031427
+0x0406
+// 0.016217
+0x0213
+// -0.005936
+0xFF3D
+// -0.000263
+0xFFF7
+// 0.003202
+0x0069
+// 0.011968
+0x0188
+// 0.025701
+0x034A
+// 0.042365
+0x056C
+// 0.037306
+0x04C6
+// 0.016416
+0x021A
+// -0.013671
+0xFE40
+// -0.034860
+0xFB8A
+// -0.039457
+0xFAF3
+// -0.027572
+0xFC79
+// 0.000520
+0x0011
+// 0.025227
+0x033B
+// 0.039697
+0x0515
+// 0.035149
+0x0480
+// 0.012524
+0x019A
+// -0.000225
+0xFFF9
+// 0.002745
+0x005A
+// 0.010258
+0x0150
+// 0.022029
+0x02D2
+// 0.035186
+0x0481
+// 0.047955
+0x0623
+// 0.036785
+0x04B5
+// 0.009574
+0x013A
+// -0.022954
+0xFD10
+// -0.042520
+0xFA8F
+// -0.041826
+0xFAA5
+// -0.023364
+0xFD02
+// 0.009220
+0x012E
+// 0.033931
+0x0458
+// 0.044600
+0x05B5
+// 0.033915
+0x0457
+// -0.000197
+0xFFFA
+// 0.002402
+0x004F
+// 0.008976
+0x0126
+// 0.019276
+0x0278
+// 0.030788
+0x03F1
+// 0.040777
+0x0538
+// 0.048964
+0x0644
+// 0.032227
+0x0420
+// 0.002272
+0x004A
+// -0.029933
+0xFC2B
+// -0.045733
+0xFA25
+// -0.039546
+0xFAF0
+// -0.016932
+0xFDD5
+// 0.016666
+0x0222
+// 0.038925
+0x04FB
+// 0.044872
+0x05BE
+// -0.000175
+0xFFFA
+// 0.002135
+0x0046
+// 0.007978
+0x0105
+// 0.017134
+0x0231
+// 0.027367
+0x0381
+// 0.036247
+0x04A4
+// 0.042296
+0x056A
+// 0.046045
+0x05E5
+// 0.026753
+0x036D
+// -0.003422
+0xFF90
+// -0.033110
+0xFBC3
+// -0.044625
+0xFA4A
+// -0.034861
+0xFB8A
+// -0.011112
+0xFE94
+// 0.021095
+0x02B3
+// 0.039782
+0x0518
+// -0.000158
+0xFFFB
+// 0.001921
+0x003F
+// 0.007181
+0x00EB
+// 0.015421
+0x01F9
+// 0.024630
+0x0327
+// 0.032622
+0x042D
+// 0.038067
+0x04DF
+// 0.040178
+0x0525
+// 0.041973
+0x055F
+// 0.022360
+0x02DD
+// -0.005952
+0xFF3D
+// -0.032406
+0xFBDA
+// -0.041119
+0xFABD
+// -0.030376
+0xFC1D
+// -0.007682
+0xFF04
+// 0.021913
+0x02CE
+// -0.000121
+0xFFFC
+// 0.001478
+0x0030
+// 0.005524
+0x00B5
+// 0.011862
+0x0185
+// 0.018946
+0x026D
+// 0.025094
+0x0336
+// 0.029282
+0x03C0
+// 0.030906
+0x03F5
+// 0.031195
+0x03FE
+// 0.031473
+0x0407
+// 0.033309
+0x0443
+// 0.039099
+0x0501
+// 0.024920
+0x0331
+// 0.000883
+0x001D
+// -0.024707
+0xFCD6
+// -0.036119
+0xFB60
+// -0.000058
+0xFFFE
+// 0.000712
+0x0017
+// 0.002659
+0x0057
+// 0.005711
+0x00BB
+// 0.009122
+0x012B
+// 0.012082
+0x018C
+// 0.014099
+0x01CE
+// 0.014881
+0x01E8
+// 0.015020
+0x01EC
+// 0.015154
+0x01F1
+// 0.016038
+0x020E
+// 0.018124
+0x0252
+// 0.021181
+0x02B6
+// 0.024511
+0x0323
+// 0.027386
+0x0381
+// 0.029252
+0x03BF
+// -0.000526
+0xFFEF
+// 0.007457
+0x00F4
+// 0.010600
+0x015B
+// 0.009936
+0x0146
+// 0.003232
+0x006A
+// -0.004060
+0xFF7B
+// -0.008490
+0xFEEA
+// -0.011111
+0xFE94
+// -0.005788
+0xFF42
+// -0.000045
+0xFFFF
+// 0.006754
+0x00DD
+// 0.010818
+0x0162
+// 0.008735
+0x011E
+// 0.002456
+0x0050
+// -0.004089
+0xFF7A
+// -0.009082
+0xFED6
+// -0.009651
+0xFEC4
+// -0.007491
+0xFF0B
+// 0.000535
+0x0012
+// 0.007990
+0x0106
+// 0.010556
+0x015A
+// 0.009453
+0x0136
+// -0.000394
+0xFFF3
+// 0.004803
+0x009D
+// 0.019135
+0x0273
+// 0.023352
+0x02FD
+// 0.017328
+0x0238
+// 0.001803
+0x003B
+// -0.012458
+0xFE68
+// -0.021068
+0xFD4E
+// -0.021008
+0xFD50
+// -0.008715
+0xFEE2
+// 0.004998
+0x00A4
+// 0.018244
+0x0256
+// 0.022778
+0x02EA
+// 0.014945
+0x01EA
+// 0.000617
+0x0014
+// -0.012946
+0xFE58
+// -0.020862
+0xFD54
+// -0.020095
+0xFD6E
+// -0.010835
+0xFE9D
+// 0.006796
+0x00DF
+// 0.019902
+0x028C
+// 0.022924
+0x02EF
+// -0.000316
+0xFFF6
+// 0.003843
+0x007E
+// 0.014361
+0x01D7
+// 0.032104
+0x041C
+// 0.032943
+0x0437
+// 0.019328
+0x0279
+// -0.004148
+0xFF78
+// -0.024163
+0xFCE8
+// -0.032088
+0xFBE5
+// -0.026972
+0xFC8C
+// -0.006420
+0xFF2E
+// 0.014515
+0x01DC
+// 0.030379
+0x03E3
+// 0.031427
+0x0406
+// 0.016217
+0x0213
+// -0.005936
+0xFF3D
+// -0.024050
+0xFCEC
+// -0.032424
+0xFBDA
+// -0.026039
+0xFCAB
+// -0.008047
+0xFEF8
+// 0.016886
+0x0229
+// 0.032721
+0x0430
+// -0.000263
+0xFFF7
+// 0.003202
+0x0069
+// 0.011968
+0x0188
+// 0.025701
+0x034A
+// 0.042365
+0x056C
+// 0.037306
+0x04C6
+// 0.016416
+0x021A
+// -0.013671
+0xFE40
+// -0.034860
+0xFB8A
+// -0.039457
+0xFAF3
+// -0.027572
+0xFC79
+// 0.000520
+0x0011
+// 0.025227
+0x033B
+// 0.039697
+0x0515
+// 0.035149
+0x0480
+// 0.012524
+0x019A
+// -0.015130
+0xFE10
+// -0.035198
+0xFB7F
+// -0.039864
+0xFAE6
+// -0.026008
+0xFCAC
+// -0.000910
+0xFFE2
+// 0.028339
+0x03A1
+// -0.000225
+0xFFF9
+// 0.002745
+0x005A
+// 0.010258
+0x0150
+// 0.022029
+0x02D2
+// 0.035186
+0x0481
+// 0.047955
+0x0623
+// 0.036785
+0x04B5
+// 0.009574
+0x013A
+// -0.022954
+0xFD10
+// -0.042520
+0xFA8F
+// -0.041826
+0xFAA5
+// -0.023364
+0xFD02
+// 0.009220
+0x012E
+// 0.033931
+0x0458
+// 0.044600
+0x05B5
+// 0.033915
+0x0457
+// 0.005750
+0x00BC
+// -0.024908
+0xFCD0
+// -0.042932
+0xFA81
+// -0.041755
+0xFAA8
+// -0.021461
+0xFD41
+// 0.008239
+0x010E
+// -0.000197
+0xFFFA
+// 0.002402
+0x004F
+// 0.008976
+0x0126
+// 0.019276
+0x0278
+// 0.030788
+0x03F1
+// 0.040777
+0x0538
+// 0.048964
+0x0644
+// 0.032227
+0x0420
+// 0.002272
+0x004A
+// -0.029933
+0xFC2B
+// -0.045733
+0xFA25
+// -0.039546
+0xFAF0
+// -0.016932
+0xFDD5
+// 0.016666
+0x0222
+// 0.038925
+0x04FB
+// 0.044872
+0x05BE
+// 0.029371
+0x03C2
+// -0.002140
+0xFFBA
+// -0.032040
+0xFBE6
+// -0.045736
+0xFA25
+// -0.039214
+0xFAFB
+// -0.014506
+0xFE25
+// -0.000175
+0xFFFA
+// 0.002135
+0x0046
+// 0.007978
+0x0105
+// 0.017134
+0x0231
+// 0.027367
+0x0381
+// 0.036247
+0x04A4
+// 0.042296
+0x056A
+// 0.046045
+0x05E5
+// 0.026753
+0x036D
+// -0.003422
+0xFF90
+// -0.033110
+0xFBC3
+// -0.044625
+0xFA4A
+// -0.034861
+0xFB8A
+// -0.011112
+0xFE94
+// 0.021095
+0x02B3
+// 0.039782
+0x0518
+// 0.041866
+0x055C
+// 0.023339
+0x02FD
+// -0.008097
+0xFEF7
+// -0.034924
+0xFB88
+// -0.044398
+0xFA51
+// -0.034086
+0xFBA3
+// -0.000158
+0xFFFB
+// 0.001921
+0x003F
+// 0.007181
+0x00EB
+// 0.015421
+0x01F9
+// 0.024630
+0x0327
+// 0.032622
+0x042D
+// 0.038067
+0x04DF
+// 0.040178
+0x0525
+// 0.041973
+0x055F
+// 0.022360
+0x02DD
+// -0.005952
+0xFF3D
+// -0.032406
+0xFBDA
+// -0.041119
+0xFABD
+// -0.030376
+0xFC1D
+// -0.007682
+0xFF04
+// 0.021913
+0x02CE
+// 0.037572
+0x04CF
+// 0.037214
+0x04C3
+// 0.018674
+0x0264
+// -0.010467
+0xFEA9
+// -0.034064
+0xFBA4
+// -0.040492
+0xFAD1
+// -0.000121
+0xFFFC
+// 0.001478
+0x0030
+// 0.005524
+0x00B5
+// 0.011862
+0x0185
+// 0.018946
+0x026D
+// 0.025094
+0x0336
+// 0.029282
+0x03C0
+// 0.030906
+0x03F5
+// 0.031195
+0x03FE
+// 0.031473
+0x0407
+// 0.033309
+0x0443
+// 0.039099
+0x0501
+// 0.024920
+0x0331
+// 0.000883
+0x001D
+// -0.024707
+0xFCD6
+// -0.036119
+0xFB60
+// -0.030312
+0xFC1F
+// -0.013028
+0xFE55
+// 0.013596
+0x01BE
+// 0.029888
+0x03D3
+// 0.034047
+0x045C
+// 0.021571
+0x02C3
+// -0.000058
+0xFFFE
+// 0.000712
+0x0017
+// 0.002659
+0x0057
+// 0.005711
+0x00BB
+// 0.009122
+0x012B
+// 0.012082
+0x018C
+// 0.014099
+0x01CE
+// 0.014881
+0x01E8
+// 0.015020
+0x01EC
+// 0.015154
+0x01F1
+// 0.016038
+0x020E
+// 0.018124
+0x0252
+// 0.021181
+0x02B6
+// 0.024511
+0x0323
+// 0.027386
+0x0381
+// 0.029252
+0x03BF
+// 0.030046
+0x03D9
+// 0.030008
+0x03D7
+// 0.030029
+0x03D8
+// 0.030938
+0x03F6
+// 0.033020
+0x043A
+// 0.036152
+0x04A1
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Refs1_q15.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Refs1_q15.txt
index 5b0d7a0..3aeb38f 100755
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Refs1_q15.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Refs1_q15.txt
@@ -1,514 +1,514 @@
 H
 256
-// -0.127294
-0xEFB5
-// -0.385976
-0xCE98
-// -0.116047
-0xF125
-// 0.211565
-0x1B15
-// -0.154727
-0xEC32
-// 0.033301
-0x0443
-// 0.447161
-0x393D
-// 0.107325
-0x0DBD
-// 0.279604
-0x23CA
-// 0.127506
-0x1052
-// 0.208172
-0x1AA5
-// -0.059355
-0xF867
-// -0.065522
-0xF79D
-// -0.139283
-0xEE2C
-// -0.171540
-0xEA0B
-// -0.738544
-0xA177
-// -0.068465
-0xF73D
-// 0.008441
-0x0115
-// 0.047528
-0x0615
-// 0.594497
-0x4C18
-// 0.604476
-0x4D5F
-// 0.013332
-0x01B5
-// 0.048720
-0x063C
-// 0.416499
-0x3550
-// -0.187608
-0xE7FC
-// 0.216221
-0x1BAD
-// 0.112737
-0x0E6E
-// -0.230283
-0xE286
-// -0.267492
-0xDDC3
-// -0.166500
-0xEAB0
-// -0.209500
-0xE52F
-// -0.567446
-0xB75E
-// 0.074877
-0x0996
-// -0.330873
-0xD5A6
-// -0.440695
-0xC797
-// 0.221684
-0x1C60
-// 0.045495
-0x05D3
-// 0.078572
-0x0A0F
-// 0.086795
-0x0B1C
-// 0.263366
-0x21B6
-// 0.553847
-0x46E4
-// -0.043818
-0xFA64
-// -1.000000
-0x8000
-// 0.132207
-0x10EC
-// 0.676117
-0x568B
-// -0.399671
-0xCCD8
-// 0.010339
-0x0153
-// 0.916807
-0x755A
-// -0.256895
-0xDF1E
-// -0.017133
-0xFDCF
-// -0.055390
-0xF8E9
-// 0.260111
-0x214B
-// 0.243717
-0x1F32
-// -0.184592
-0xE85F
-// 0.298497
-0x2635
-// -0.441219
-0xC786
-// -0.006309
-0xFF31
-// 0.316377
-0x287F
-// -0.293010
-0xDA7F
-// 0.122500
-0x0FAE
-// -0.785627
-0x9B71
-// 0.480941
-0x3D8F
-// -0.116109
-0xF123
-// 0.195363
-0x1902
-// -0.313746
-0xD7D7
-// -0.519920
-0xBD73
-// -0.024345
-0xFCE2
-// -0.196495
-0xE6D9
-// 0.463993
-0x3B64
-// -0.499236
-0xC019
-// 0.124091
-0x0FE2
-// 0.322140
-0x293C
-// -0.373383
-0xD035
-// -0.212060
-0xE4DB
-// 0.285414
-0x2488
-// 0.090286
-0x0B8E
-// -0.626924
-0xAFC1
-// -0.652460
-0xAC7C
-// 0.495018
-0x3F5D
-// 0.027138
-0x0379
-// -0.625115
-0xAFFC
-// -0.201911
-0xE628
-// -0.029444
-0xFC3B
-// 0.087746
-0x0B3B
-// 0.145318
-0x129A
-// 0.140813
-0x1206
-// -0.547713
-0xB9E5
-// 0.219310
-0x1C12
-// -0.405409
-0xCC1C
-// -0.188107
-0xE7EC
-// -0.106359
-0xF263
-// -0.261448
-0xDE89
-// -0.035005
-0xFB85
-// -0.228593
-0xE2BD
-// -0.194486
-0xE71B
-// 0.475757
-0x3CE6
-// 0.737020
-0x5E57
-// -0.249980
-0xE001
-// -0.134425
-0xEECB
-// 0.333118
-0x2AA4
-// 0.326769
-0x29D4
-// -0.127251
-0xEFB6
-// -0.208666
-0xE54A
-// -0.798320
-0x99D1
-// 0.091152
-0x0BAB
-// -0.023178
-0xFD08
-// 0.136086
-0x116B
-// -0.017676
-0xFDBD
-// -0.099442
-0xF345
-// 0.372455
-0x2FAD
-// 0.086683
-0x0B18
-// 0.109627
-0x0E08
-// 0.446636
-0x392B
-// 0.019784
-0x0288
-// -0.122004
-0xF062
-// 0.205356
-0x1A49
-// 0.295722
-0x25DA
-// -0.271749
-0xDD37
-// 0.008402
-0x0113
-// 0.293733
-0x2599
-// 0.157708
-0x1430
-// 0.254440
-0x2092
-// -0.141662
-0xEDDE
-// 0.169492
-0x15B2
-// 0.121915
-0x0F9B
-// 0.053621
-0x06DD
-// -0.109878
-0xF1F0
-// -0.095650
-0xF3C2
-// 0.036855
-0x04B8
-// -0.230039
-0xE28E
-// -0.430712
-0xC8DE
-// 0.199651
-0x198E
-// 0.047276
-0x060D
-// -0.222272
-0xE38D
-// 0.219292
-0x1C12
-// -0.049532
-0xF9A9
-// 0.180382
-0x1717
-// 0.053946
-0x06E8
-// 0.176704
-0x169E
-// 0.061019
-0x07CF
-// 0.171373
-0x15F0
-// 0.430928
-0x3729
-// -0.135527
-0xEEA7
-// 0.004462
-0x0092
-// -0.012411
-0xFE69
-// -0.041687
-0xFAAA
-// -0.303297
-0xD92E
-// 0.242618
-0x1F0E
-// 0.249589
-0x1FF3
-// -0.003130
-0xFF99
-// -0.321473
-0xD6DA
-// -0.039694
-0xFAEB
-// -0.209961
-0xE520
-// 0.035972
-0x049B
-// -0.375459
-0xCFF1
-// -0.045982
-0xFA1D
-// -0.407259
-0xCBDF
-// -0.490346
-0xC13C
-// -0.217959
-0xE41A
-// 0.125156
-0x1005
-// -0.220984
-0xE3B7
-// 0.160697
-0x1492
-// 0.163243
-0x14E5
-// -0.051222
-0xF972
-// 0.545709
-0x45DA
-// -0.402287
-0xCC82
-// -0.083474
-0xF551
-// -0.035379
-0xFB79
-// -0.157270
-0xEBDF
-// 0.139494
-0x11DB
-// -0.287480
-0xDB34
-// -0.164062
-0xEB00
-// -0.651153
-0xACA7
-// -0.255578
-0xDF49
-// -0.020002
-0xFD71
-// -0.204826
-0xE5C8
-// 0.238434
-0x1E85
-// 0.229481
-0x1D60
-// 0.278514
-0x23A6
-// 0.038889
-0x04FA
-// 0.262204
-0x2190
-// 0.112934
-0x0E75
-// 0.889139
-0x71CF
-// 0.275912
-0x2351
-// -0.191325
-0xE783
-// 0.259119
-0x212B
-// 0.555404
-0x4717
-// -0.190433
-0xE7A0
-// 0.057538
-0x075D
-// 0.068015
-0x08B5
-// -0.119592
-0xF0B1
-// 0.137983
+// 0.245826
+0x1F77
+// -0.148871
+0xECF2
+// -0.014824
+0xFE1A
+// 0.078654
+0x0A11
+// 0.022912
+0x02EF
+// 0.089540
+0x0B76
+// 0.330866
+0x2A5A
+// -0.129216
+0xEF76
+// 0.572608
+0x494B
+// -0.215668
+0xE465
+// -0.219839
+0xE3DC
+// -0.170177
+0xEA38
+// 0.035786
+0x0495
+// -0.391045
+0xCDF2
+// -0.026462
+0xFC9D
+// -0.194121
+0xE727
+// -0.214358
+0xE490
+// 0.052107
+0x06AB
+// 0.141015
+0x120D
+// 0.003658
+0x0078
+// -0.127864
+0xEFA2
+// -0.274750
+0xDCD5
+// -0.368122
+0xD0E1
+// -0.097044
+0xF394
+// -0.114618
+0xF154
+// 0.219701
+0x1C1F
+// -0.066571
+0xF77B
+// -0.111440
+0xF1BC
+// 0.061513
+0x07E0
+// -0.013211
+0xFE4F
+// -0.184255
+0xE86A
+// 0.287414
+0x24CA
+// 0.282564
+0x242B
+// 0.326734
+0x29D2
+// -0.125852
+0xEFE4
+// -0.274252
+0xDCE5
+// 0.102964
+0x0D2E
+// 0.467174
+0x3BCC
+// -0.046432
+0xFA0F
+// 0.411277
+0x34A5
+// 0.512960
+0x41A9
+// -0.231543
+0xE25D
+// -0.268055
+0xDDB0
+// 0.537247
+0x44C5
+// -0.260092
+0xDEB5
+// -0.187339
+0xE805
+// -0.474458
+0xC345
+// 0.282039
+0x241A
+// -0.573753
+0xB68F
+// 0.307679
+0x2762
+// -0.102761
+0xF2D9
+// 0.112287
+0x0E5F
+// 0.558589
+0x4780
+// 0.421937
+0x3602
+// 0.012739
+0x01A1
+// -0.098260
+0xF36C
+// 0.252032
+0x2043
+// 0.023130
+0x02F6
+// -0.177432
+0xE94A
+// -0.181109
+0xE8D1
+// 0.292179
+0x2566
+// 0.308979
+0x278D
+// 0.084323
+0x0ACB
+// -0.498516
+0xC031
+// 0.168815
+0x159C
+// 0.103208
+0x0D36
+// 0.408892
+0x3457
+// -0.153627
+0xEC56
+// -0.305951
+0xD8D7
+// -0.305801
+0xD8DC
+// -0.092007
+0xF439
+// -0.374442
+0xD012
+// 0.460680
+0x3AF8
+// -0.245856
+0xE088
+// -0.387252
+0xCE6F
+// -0.248412
+0xE034
+// 0.481872
+0x3DAE
+// 0.335794
+0x2AFB
+// -0.090546
+0xF469
+// 0.753070
+0x6065
+// -0.060811
+0xF837
+// -0.020084
+0xFD6E
+// 0.025249
+0x033B
+// 0.075613
+0x09AE
+// 0.589769
+0x4B7E
+// 0.261746
+0x2181
+// 0.368706
+0x2F32
+// 0.719055
+0x5C0A
+// 0.137978
 0x11A9
-// 0.363133
-0x2E7B
-// 0.313778
-0x282A
-// 0.338354
-0x2B4F
-// 0.132251
-0x10EE
-// -0.080118
-0xF5BF
-// 0.257270
-0x20EE
-// 0.432584
-0x375F
-// 0.509603
-0x413B
-// -0.082488
-0xF571
-// -0.094451
-0xF3E9
-// 0.219309
-0x1C12
-// 0.174027
-0x1647
-// -0.202657
-0xE60F
-// 0.060258
-0x07B7
-// -0.040754
-0xFAC9
-// 0.605297
-0x4D7A
-// 0.106734
-0x0DA9
-// 0.178700
-0x16E0
-// 0.165038
-0x1520
-// 0.339918
-0x2B82
-// -0.154834
-0xEC2E
-// 0.021981
-0x02D0
-// -0.295458
-0xDA2E
-// 0.042555
-0x0572
-// -0.609882
-0xB1EF
-// 0.503107
-0x4066
-// 0.158563
-0x144C
-// -0.078789
-0xF5EA
-// -0.851715
-0x92FB
-// -0.030086
-0xFC26
-// 0.340349
-0x2B91
-// 0.140644
-0x1201
-// 0.089423
-0x0B72
-// 0.099145
-0x0CB1
-// -0.490024
-0xC147
-// 0.178911
-0x16E7
-// -0.045521
-0xFA2C
-// -0.299393
-0xD9AD
-// 0.134817
-0x1142
-// -0.041062
-0xFABE
-// -0.043400
-0xFA72
-// 0.436994
-0x37EF
-// -0.128786
-0xEF84
-// 0.008404
-0x0113
-// 0.193124
-0x18B8
-// -0.085078
-0xF51C
-// 0.009354
-0x0133
-// -0.041358
-0xFAB5
-// 0.271853
-0x22CC
-// -0.448211
-0xC6A1
-// 0.236659
-0x1E4B
-// 0.007396
-0x00F2
-// -0.079448
-0xF5D5
-// 0.296425
-0x25F1
-// -0.334491
-0xD52F
-// 0.661768
-0x54B5
-// 0.121210
-0x0F84
-// 0.252759
-0x205A
-// 0.367873
-0x2F16
-// 0.031125
-0x03FC
-// -0.081897
-0xF584
-// -0.051112
-0xF975
-// -0.319014
-0xD72B
-// 0.089079
-0x0B67
+// 0.602304
+0x4D18
+// 0.077043
+0x09DD
+// 0.035603
+0x048F
+// 0.160446
+0x1489
+// -0.090798
+0xF461
+// -0.080646
+0xF5AD
+// 0.403916
+0x33B4
+// 0.524210
+0x4319
+// -0.013850
+0xFE3A
+// 0.392744
+0x3245
+// -0.038110
+0xFB1F
+// 0.211743
+0x1B1A
+// 0.207474
+0x1A8E
+// 0.215604
+0x1B99
+// 0.102422
+0x0D1C
+// 0.175792
+0x1680
+// 0.467779
+0x3BE0
+// 0.020873
+0x02AC
+// -0.065352
+0xF7A3
+// -0.073622
+0xF694
+// 0.053418
+0x06D6
+// -0.244182
+0xE0BF
+// -0.246330
+0xE078
+// -0.075700
+0xF64F
+// -0.088418
+0xF4AF
+// -0.091717
+0xF443
+// -0.204626
+0xE5CF
+// -0.327850
+0xD609
+// 0.017137
+0x0232
+// 0.366894
+0x2EF6
+// 0.294377
+0x25AE
+// -0.234864
+0xE1F0
+// -0.337393
+0xD4D0
+// -0.471639
+0xC3A1
+// -0.035987
+0xFB65
+// 0.269900
+0x228C
+// -0.672637
+0xA9E7
+// -0.123861
+0xF025
+// 0.268800
+0x2268
+// -0.575666
+0xB651
+// 0.240873
+0x1ED5
+// -0.588589
+0xB4A9
+// 0.129450
+0x1092
+// 0.144191
+0x1275
+// -0.482234
+0xC246
+// -0.490355
+0xC13C
+// 0.093981
+0x0C08
+// -0.337902
+0xD4C0
+// 0.665924
+0x553D
+// -0.028568
+0xFC58
+// -0.299066
+0xD9B8
+// -0.207486
+0xE571
+// 0.133345
+0x1111
+// 0.219276
+0x1C11
+// 0.200330
+0x19A4
+// 0.074133
+0x097D
+// -0.474376
+0xC348
+// -0.008425
+0xFEEC
+// -0.002192
+0xFFB8
+// 0.444452
+0x38E4
+// -0.080911
+0xF5A5
+// 0.171339
+0x15EE
+// -0.172610
+0xE9E8
+// -0.354971
+0xD290
+// 0.503994
+0x4083
+// -0.149159
+0xECE8
+// -0.239079
+0xE166
+// 0.283872
+0x2456
+// -0.274614
+0xDCD9
+// -0.341801
+0xD440
+// -0.154739
+0xEC31
+// -0.029634
+0xFC35
+// -0.076562
+0xF633
+// -0.322035
+0xD6C8
+// -0.574145
+0xB682
+// 0.449240
+0x3981
+// -0.459895
+0xC522
+// -0.435788
+0xC838
+// -0.517575
+0xBDC0
+// -0.097688
+0xF37F
+// 0.118271
+0x0F24
+// 0.986282
+0x7E3E
+// 0.052459
+0x06B7
+// 0.693899
+0x58D2
+// -0.319828
+0xD710
+// 0.094703
+0x0C1F
+// 0.152350
+0x1380
+// 0.461086
+0x3B05
+// 0.148894
+0x130F
+// 0.278367
+0x23A2
+// -0.162502
+0xEB33
+// 0.181579
+0x173E
+// -0.298828
+0xD9C0
+// -0.081265
+0xF599
+// -0.333820
+0xD545
+// -0.250448
+0xDFF1
+// 0.071755
+0x092F
+// 0.031592
+0x040B
+// -0.022370
+0xFD23
+// 1.000000
+0x7FFF
+// 0.261438
+0x2177
+// -0.047284
+0xF9F3
+// -0.530631
+0xBC14
+// 0.112647
+0x0E6B
+// 0.124862
+0x0FFB
+// 0.377611
+0x3056
+// -0.229406
+0xE2A3
+// -0.124157
+0xF01C
+// -0.299380
+0xD9AE
+// -0.208264
+0xE558
+// -0.149891
+0xECD0
+// 0.100941
+0x0CEC
+// 0.341104
+0x2BA9
+// 0.257952
+0x2105
+// -0.145654
+0xED5B
+// -0.497300
+0xC058
+// 0.676447
+0x5696
+// -0.035838
+0xFB6A
+// -0.391408
+0xCDE6
+// -0.384993
+0xCEB9
+// 0.071941
+0x0935
+// -0.032292
+0xFBDE
+// 0.210310
+0x1AEB
+// -0.481316
+0xC264
+// 0.142316
+0x1237
+// 0.003036
+0x0063
+// 0.020926
+0x02AE
+// -0.126934
+0xEFC1
+// -0.333625
+0xD54C
+// 0.176617
+0x169B
+// -0.086658
+0xF4E8
+// 0.211777
+0x1B1C
+// 0.262133
+0x218E
+// -0.129539
+0xEF6B
+// 0.378423
+0x3070
+// -0.042147
+0xFA9B
+// -0.592577
+0xB426
+// -0.352181
+0xD2EC
+// -0.436515
+0xC820
+// -0.460660
+0xC509
+// -0.374383
+0xD014
+// 0.405249
+0x33DF
+// 0.079390
+0x0A29
+// -0.394835
+0xCD76
+// -0.356739
+0xD256
+// 0.418343
+0x358C
+// 0.169158
+0x15A7
+// -0.193586
+0xE739
+// -0.428086
+0xC934
+// 0.043164
+0x0586
+// -0.098176
+0xF36F
+// 0.123854
+0x0FDA
+// -0.054459
+0xF907
+// -0.219046
+0xE3F6
+// 0.074014
+0x0979
+// 0.748945
+0x5FDD
+// 0.271442
+0x22BF
+// 0.236242
+0x1E3D
+// -0.037479
+0xFB34
+// 0.012558
+0x019B
+// 0.188637
+0x1825
+// -0.546429
+0xBA0F
+// 0.128719
+0x107A
+// 0.569941
+0x48F4
+// 0.452018
+0x39DC
+// 0.036495
+0x04AC
+// 0.405392
+0x33E4
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Samples1_q15.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Samples1_q15.txt
index 34887da..d205f77 100755
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Samples1_q15.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ15/Samples1_q15.txt
@@ -1,514 +1,514 @@
 H
 256
-// -0.283139
-0xDBC2
-// 0.639454
-0x51DA
-// -0.281769
-0xDBEF
-// 0.962511
-0x7B34
-// 0.070650
-0x090B
-// -0.157919
-0xEBC9
-// 0.029366
-0x03C2
-// 0.350384
-0x2CD9
-// -0.578349
-0xB5F9
-// 0.557729
-0x4764
-// 0.114595
-0x0EAB
-// 0.060352
-0x07BA
-// -0.382745
-0xCF02
-// -0.013423
-0xFE48
-// -0.317779
-0xD753
-// -0.010989
-0xFE98
-// 0.195672
-0x190C
-// 0.396792
-0x32CA
-// -0.063904
-0xF7D2
-// -0.066280
-0xF784
-// 0.046266
-0x05EC
-// -0.429817
-0xC8FC
-// -0.027148
-0xFC86
-// 0.510018
-0x4148
-// -0.370992
-0xD083
-// 0.428642
-0x36DE
-// -0.025654
-0xFCB7
-// -0.476466
-0xC303
-// -0.377701
-0xCFA8
-// 0.172010
-0x1604
-// 0.129041
-0x1084
-// 0.191264
-0x187B
-// -0.180959
-0xE8D6
-// 0.101630
-0x0D02
-// -0.051074
-0xF976
-// -0.349139
-0xD34F
-// -0.479515
-0xC29F
-// -0.285977
-0xDB65
-// 0.539787
-0x4518
-// -0.126259
-0xEFD7
-// -0.415484
-0xCAD1
-// -0.087535
-0xF4CC
-// 0.068765
-0x08CD
-// 0.124999
-0x1000
-// -0.620182
-0xB09E
-// 0.093285
-0x0BF1
-// 0.137391
-0x1196
-// 0.038590
-0x04F1
-// 0.324265
-0x2982
-// -0.116439
-0xF119
-// -0.144320
-0xED87
-// 0.131060
-0x10C7
-// -0.496284
-0xC07A
-// -0.081489
-0xF592
-// 0.344104
-0x2C0C
-// 0.022208
-0x02D8
-// -0.262955
-0xDE57
-// -0.242715
-0xE0EF
-// -0.044279
-0xFA55
-// 0.540180
-0x4525
-// 0.304713
-0x2701
-// 0.137304
-0x1193
-// -0.563070
-0xB7ED
-// 0.138453
-0x11B9
-// 0.092530
-0x0BD8
-// 0.194487
-0x18E5
-// 0.097766
-0x0C84
-// -0.140371
-0xEE08
-// -0.231399
-0xE262
-// -0.423971
-0xC9BB
-// -0.414015
-0xCB02
-// 0.543917
-0x459F
-// 0.451710
-0x39D2
-// 0.105420
-0x0D7E
-// 0.108192
-0x0DD9
-// 0.448176
-0x395E
-// 0.308196
-0x2773
-// 0.041811
-0x055A
-// -0.417729
-0xCA88
-// -0.291388
-0xDAB4
-// -0.032036
-0xFBE6
-// 0.027592
-0x0388
-// 0.382963
-0x3105
-// -0.422895
-0xC9DF
-// -0.139053
-0xEE34
-// -0.145323
-0xED66
-// -0.250000
-0xE000
-// 0.452930
-0x39FA
-// 0.137341
-0x1194
-// -0.296275
-0xDA14
-// -0.150582
-0xECBA
-// -0.293765
-0xDA66
-// 0.043071
-0x0583
-// -0.167877
-0xEA83
-// -0.064349
-0xF7C3
-// -0.092802
-0xF41F
-// -0.362502
-0xD19A
-// 0.224494
-0x1CBC
-// 0.145703
-0x12A6
-// 0.021757
-0x02C9
-// -0.546156
-0xBA18
-// -0.229866
-0xE294
-// -0.049568
-0xF9A8
-// 0.594595
-0x4C1C
-// 0.886385
-0x7175
-// 0.154990
-0x13D7
-// -0.456313
-0xC598
-// 0.544458
-0x45B1
-// -0.117662
-0xF0F0
-// 0.393631
-0x3263
-// -0.408949
-0xCBA8
-// -0.003558
-0xFF8B
-// -0.071784
-0xF6D0
-// 0.645969
-0x52AF
-// 0.099294
-0x0CB6
-// -0.297903
-0xD9DE
-// -0.297073
-0xD9FA
-// 0.220555
-0x1C3B
-// -0.224469
-0xE345
-// -0.226763
-0xE2F9
-// -0.174757
-0xE9A2
-// 0.143022
-0x124F
-// -0.231627
-0xE25A
-// -0.032568
-0xFBD5
-// 0.204037
-0x1A1E
-// 0.035350
-0x0486
-// -0.933376
-0x8887
-// 0.299584
-0x2659
-// 0.096552
-0x0C5C
-// 0.043042
-0x0582
-// -0.165947
-0xEAC2
-// 0.085635
-0x0AF6
-// -0.051852
-0xF95D
-// -0.311159
-0xD82C
-// -0.165537
-0xEAD0
-// 0.178664
-0x16DE
-// -0.111604
-0xF1B7
-// 0.100162
-0x0CD2
-// -0.668840
-0xAA63
-// 0.048641
-0x063A
-// -0.434918
-0xC855
-// -0.516722
-0xBDDC
-// 0.127986
-0x1062
-// 0.209087
-0x1AC3
-// -0.389053
-0xCE33
-// -0.361426
-0xD1BD
-// -0.127260
+// -0.042928
+0xFA81
+// 0.091006
+0x0BA6
+// -0.241176
+0xE121
+// 0.391383
+0x3219
+// 0.041534
+0x0551
+// 0.585059
+0x4AE3
+// -0.040221
+0xFADA
+// 0.006876
+0x00E1
+// -0.006438
+0xFF2D
+// 0.093944
+0x0C06
+// 0.329676
+0x2A33
+// 0.090658
+0x0B9B
+// 0.244342
+0x1F47
+// 0.079946
+0x0A3C
+// -0.151653
+0xEC97
+// 0.134441
+0x1135
+// -0.211674
+0xE4E8
+// 0.028843
+0x03B1
+// -0.142819
+0xEDB8
+// -0.067606
+0xF759
+// 0.130619
+0x10B8
+// -0.789641
+0x9AED
+// 0.132393
+0x10F2
+// -0.294190
+0xDA58
+// -0.250555
+0xDFEE
+// 0.171415
+0x15F1
+// 0.410239
+0x3483
+// -0.092330
+0xF42F
+// 0.096640
+0x0C5F
+// 0.166346
+0x154B
+// 0.042763
+0x0579
+// -0.145426
+0xED63
+// -0.569250
+0xB723
+// 0.393291
+0x3257
+// -0.489202
+0xC162
+// 0.255844
+0x20BF
+// 0.421446
+0x35F2
+// -0.193485
+0xE73C
+// 0.297271
+0x260D
+// 0.005098
+0x00A7
+// 0.367461
+0x2F09
+// -0.526180
+0xBCA6
+// -0.326644
+0xD631
+// 0.458988
+0x3AC0
+// -0.149400
+0xECE0
+// 0.452896
+0x39F8
+// 0.249622
+0x1FF4
+// -0.144771
+0xED78
+// 0.198215
+0x195F
+// 0.012010
+0x018A
+// -0.257448
+0xDF0C
+// -0.274171
+0xDCE8
+// -0.211328
+0xE4F3
+// 0.573060
+0x495A
+// -0.080734
+0xF5AB
+// 0.011194
+0x016F
+// 0.347986
+0x2C8B
+// -0.143558
+0xEDA0
+// -0.129053
+0xEF7B
+// -0.006090
+0xFF38
+// -0.481891
+0xC251
+// -0.018379
+0xFDA6
+// 0.058569
+0x077F
+// 0.166646
+0x1555
+// -0.507383
+0xBF0E
+// 0.443568
+0x38C7
+// -0.094922
+0xF3DA
+// -0.205160
+0xE5BD
+// 0.086385
+0x0B0F
+// 0.529496
+0x43C7
+// 0.601718
+0x4D05
+// -0.258259
+0xDEF1
+// -0.181107
+0xE8D1
+// 0.242240
+0x1F02
+// 0.548943
+0x4644
+// 0.062256
+0x07F8
+// -0.758680
+0x9EE4
+// 0.123877
+0x0FDB
+// 0.063613
+0x0824
+// 0.547277
+0x460D
+// 0.331098
+0x2A61
+// 0.088557
+0x0B56
+// -0.021976
+0xFD30
+// -0.321224
+0xD6E2
+// -0.378850
+0xCF82
+// 0.620945
+0x4F7B
+// -0.030149
+0xFC24
+// -0.026024
+0xFCAB
+// -0.094400
+0xF3EB
+// -0.235879
+0xE1CF
+// -0.237150
+0xE1A5
+// 0.555869
+0x4727
+// 0.071150
+0x091B
+// 0.078287
+0x0A05
+// 0.039643
+0x0513
+// 0.160353
+0x1486
+// -0.077617
+0xF611
+// -0.503373
+0xBF91
+// 0.348062
+0x2C8D
+// 0.174922
+0x1664
+// 0.261317
+0x2173
+// -0.630594
+0xAF49
+// 0.256526
+0x20D6
+// 0.013108
+0x01AE
+// -0.461599
+0xC4EA
+// 0.333139
+0x2AA4
+// 0.085826
+0x0AFC
+// 0.100260
+0x0CD5
+// 0.014824
+0x01E6
+// 0.294624
+0x25B6
+// -0.254306
+0xDF73
+// 0.181403
+0x1738
+// 0.290646
+0x2534
+// 0.079804
+0x0A37
+// -0.081969
+0xF582
+// -0.092821
+0xF41E
+// -0.005028
+0xFF5B
+// 0.343232
+0x2BEF
+// -0.149726
+0xECD6
+// -0.103486
+0xF2C1
+// -0.127263
 0xEFB6
-// 0.053717
-0x06E0
-// -0.277063
-0xDC89
-// 0.316805
-0x288D
-// -0.411073
-0xCB62
-// -0.666990
-0xAAA0
-// 0.106596
-0x0DA5
-// -0.185104
-0xE84F
-// 0.018340
-0x0259
-// -0.197493
-0xE6B9
-// 0.657103
-0x541C
-// -0.213377
-0xE4B0
-// -0.303392
-0xD92A
-// -0.384278
-0xCED0
-// 0.104706
-0x0D67
-// -0.260699
-0xDEA1
-// 0.143968
-0x126E
-// -0.393795
-0xCD98
-// 0.249937
-0x1FFE
-// -0.201498
-0xE635
-// -0.111913
-0xF1AD
-// 0.175321
-0x1671
-// -0.161138
-0xEB60
-// 0.061319
-0x07D9
-// 0.035289
-0x0484
-// 0.753624
-0x6077
-// -0.004908
-0xFF5F
-// -0.459541
-0xC52E
-// 0.429218
-0x36F1
-// 0.012572
-0x019C
-// 0.061921
-0x07ED
-// 0.437658
-0x3805
-// 0.474993
-0x3CCD
-// -0.425498
-0xC989
-// -0.165476
-0xEAD2
-// 0.392440
-0x323B
-// -0.082297
-0xF577
-// 0.031161
-0x03FD
-// 0.368584
-0x2F2E
-// 0.096268
-0x0C53
-// -0.024419
-0xFCE0
-// 0.109004
-0x0DF4
-// -0.289112
-0xDAFE
-// -0.168446
-0xEA70
-// 0.024758
-0x032B
-// -0.228323
-0xE2C6
-// 0.022597
-0x02E4
-// -0.114129
-0xF164
-// 0.153246
-0x139E
-// -0.080081
-0xF5C0
-// 0.138645
-0x11BF
-// -0.367378
-0xD0FA
-// 0.020227
-0x0297
-// -0.157029
-0xEBE6
-// -0.017459
-0xFDC4
-// -0.123564
-0xF02F
-// -0.059661
-0xF85D
-// 0.257274
-0x20EE
-// 0.193257
-0x18BD
-// 0.266755
-0x2225
-// 0.064989
-0x0852
-// 0.237519
-0x1E67
-// -0.081837
-0xF586
-// 0.005057
-0x00A6
-// -0.056227
-0xF8CE
-// -0.180870
-0xE8D9
-// 0.138781
-0x11C4
-// 0.025567
-0x0346
-// 0.241598
-0x1EED
-// -0.106705
-0xF257
-// -0.141584
-0xEDE1
-// -0.232778
-0xE234
-// -0.243707
-0xE0CE
-// -0.655776
-0xAC10
-// -0.338674
-0xD4A6
-// -0.062586
-0xF7FD
-// 0.161578
-0x14AF
-// -0.097641
-0xF381
-// -0.040658
-0xFACC
-// -0.257119
-0xDF17
-// -0.371969
-0xD063
-// -0.213634
-0xE4A8
-// 0.371150
-0x2F82
-// -0.433545
-0xC882
-// -0.359096
-0xD209
-// -0.365367
-0xD13C
-// 0.666616
-0x5554
-// -0.118261
-0xF0DD
-// -0.509182
-0xBED3
-// -0.211847
-0xE4E2
-// -0.078963
-0xF5E5
-// 0.003960
-0x0082
-// 0.235838
-0x1E30
-// 0.107107
-0x0DB6
-// 0.206434
-0x1A6C
-// 0.098585
-0x0C9E
-// -0.247314
-0xE058
-// -0.302208
-0xD951
-// -0.114309
-0xF15E
-// -0.101347
-0xF307
-// 0.349818
-0x2CC7
-// 0.668377
-0x558D
-// 0.007752
-0x00FE
-// 0.574010
-0x4979
-// 0.044081
-0x05A4
-// 0.027573
-0x0388
-// 0.371934
-0x2F9C
-// 0.462852
-0x3B3F
-// 1.000000
-0x7FFF
-// 0.146986
-0x12D0
+// 0.024229
+0x031A
+// -0.146402
+0xED43
+// 0.229867
+0x1D6C
+// -0.332515
+0xD570
+// 0.284277
+0x2463
+// 0.063493
+0x0821
+// 0.109461
+0x0E03
+// 0.189169
+0x1837
+// 0.655583
+0x53EA
+// -0.177430
+0xE94A
+// 0.499723
+0x3FF7
+// -0.226394
+0xE306
+// 0.233222
+0x1DDA
+// 0.105094
+0x0D74
+// -0.002732
+0xFFA6
+// 0.082607
+0x0A93
+// 0.177076
+0x16AA
+// 0.355877
+0x2D8D
+// 0.348949
+0x2CAA
+// -0.125211
+0xEFF9
+// 0.139612
+0x11DF
+// 0.041370
+0x054C
+// -0.028592
+0xFC57
+// -0.094263
+0xF3EF
+// 0.199783
+0x1992
+// -0.173450
+0xE9CC
+// -0.221142
+0xE3B2
+// -0.522182
+0xBD29
+// -0.241802
+0xE10D
+// -0.374059
+0xD01F
+// 0.259262
+0x212F
+// 0.049279
+0x064F
+// 0.100509
+0x0CDD
+// 0.207805
+0x1A99
+// -0.029454
+0xFC3B
+// 0.077076
+0x09DE
+// 0.206904
+0x1A7C
+// 0.047720
+0x061C
+// -0.080999
+0xF5A2
+// 0.170785
+0x15DC
+// 0.520186
+0x4295
+// -0.421068
+0xCA1A
+// -0.362266
+0xD1A1
+// 0.297424
+0x2612
+// 0.139154
+0x11D0
+// -0.258264
+0xDEF1
+// -0.674897
+0xA99D
+// -0.430037
+0xC8F5
+// 0.547457
+0x4613
+// -0.289029
+0xDB01
+// -0.268083
+0xDDAF
+// 0.645245
+0x5297
+// -0.167472
+0xEA90
+// 0.260876
+0x2164
+// 0.139339
+0x11D6
+// 0.266447
+0x221B
+// 0.136422
+0x1176
+// -0.147383
+0xED23
+// 0.074444
+0x0987
+// 0.239758
+0x1EB0
+// -0.469343
+0xC3ED
+// -0.045247
+0xFA35
+// -0.004870
+0xFF60
+// 0.236173
+0x1E3B
+// -0.289072
+0xDB00
+// 0.091795
+0x0BC0
+// -0.114901
+0xF14B
+// 0.257349
+0x20F1
+// 0.045044
+0x05C4
+// 0.394003
+0x326F
+// -0.115158
+0xF142
+// -0.037738
+0xFB2B
+// -0.094025
+0xF3F7
+// -0.148386
+0xED02
+// -0.227063
+0xE2F0
+// 0.000632
+0x0015
+// 0.117870
+0x0F16
+// -0.148160
+0xED09
+// 0.172048
+0x1606
+// 0.087266
+0x0B2C
+// 0.135273
+0x1151
+// 0.151304
+0x135E
+// -0.271647
+0xDD3B
+// 0.368794
+0x2F35
+// -0.203987
+0xE5E4
+// -0.344912
+0xD3DA
+// 0.027900
+0x0392
+// 0.280599
+0x23EB
+// 0.124673
+0x0FF5
+// -0.017900
+0xFDB5
+// 0.098710
+0x0CA3
+// -0.184951
+0xE854
+// 0.144551
+0x1281
+// 0.504612
+0x4097
+// 0.335485
+0x2AF1
+// -0.017602
+0xFDBF
+// 0.258833
+0x2121
+// -0.684064
+0xA871
+// -0.068034
+0xF74B
+// 0.225549
+0x1CDF
+// 0.160515
+0x148C
+// -1.000000
+0x8000
+// 0.177267
+0x16B1
+// -0.047044
+0xF9FA
+// -0.291030
+0xDAC0
+// 0.580632
+0x4A52
+// -0.076415
+0xF638
+// 0.040966
+0x053E
+// 0.356813
+0x2DAC
+// -0.220242
+0xE3CF
+// 0.197930
+0x1956
+// 0.342664
+0x2BDC
+// 0.303190
+0x26CF
+// 0.116917
+0x0EF7
+// 0.165625
+0x1533
+// 0.253020
+0x2063
+// -0.118010
+0xF0E5
+// -0.235932
+0xE1CD
+// 0.168805
+0x159B
+// -0.020174
+0xFD6B
+// -0.170779
+0xEA24
+// -0.290622
+0xDACD
+// -0.095314
+0xF3CD
+// 0.091641
+0x0BBB
+// 0.338997
+0x2B64
+// -0.008100
+0xFEF7
+// 0.190615
+0x1866
+// 0.233402
+0x1DE0
+// 0.164217
+0x1505
+// -0.040343
+0xFAD6
+// 0.351500
+0x2CFE
+// -0.431085
+0xC8D2
+// -0.409230
+0xCB9E
+// -0.250722
+0xDFE8
+// -0.219441
+0xE3E9
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Coefs1_q31.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Coefs1_q31.txt
index d39520e..7e37bbd 100755
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Coefs1_q31.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Coefs1_q31.txt
@@ -1,130 +1,130 @@
 W
 64
-// 0.514818
-0x41E58DCA
-// -0.028428
-0xFC5C7592
-// 0.221640
-0x1C5EB1DB
-// -0.443205
-0xC7450D86
-// 0.143399
-0x125AE51B
+// -0.440624
+0xC799A3CF
+// -0.020131
+0xFD6C565B
+// 0.223707
+0x1CA27034
+// -0.460865
+0xC502624D
+// 0.305483
+0x271A0DCB
+// -0.125994
+0xEFDF69E8
+// -0.345486
+0xD3C71E0B
+// -0.674560
+0xA9A8082A
+// -0.219192
+0xE3F1859B
+// -0.357393
+0xD240F284
+// -0.292593
+0xDA8C5276
+// -0.265881
+0xDDF79976
+// 0.523194
+0x42F803B3
+// 0.211665
+0x1B17D3CA
+// 0.161030
+0x149CA404
+// -0.609078
+0xB209B8C1
+// 0.054363
+0x06F559C1
+// 0.459718
+0x3AD80A04
+// 0.065876
+0x086EA12D
+// -0.318457
+0xD73CCCAB
+// -0.259414
+0xDECB894E
+// -0.528504
+0xBC59FE08
+// 0.103257
+0x0D3782D8
+// -0.204202
+0xE5DCB5F1
+// 0.361185
+0x2E3B4EB2
+// -0.134824
+0xEEBE166A
+// -0.002858
+0xFFA2580E
+// 0.440881
+0x386EC5B7
+// -0.597724
+0xB37DCBCE
+// 0.334700
+0x2AD7728D
 // 1.000000
 0x7FFFFFFF
-// -0.244889
-0xE0A77C77
-// 0.124989
-0x0FFFA056
-// -0.130777
-0xEF42B5D2
-// 0.023427
-0x02FFAB67
-// -0.611905
-0xB1AD1CF1
-// -0.148911
-0xECF07C2E
-// -0.454366
-0xC5D754F4
-// 0.513105
-0x41AD6AA2
-// 0.218069
-0x1BE9ADFD
-// -0.171586
-0xEA097A96
-// 0.191715
-0x188A208A
-// 0.247803
-0x1FB8002B
-// -0.087819
-0xF4C254FE
-// -0.068932
-0xF72D3F47
-// 0.004017
-0x0083A170
-// 0.066278
-0x087BCA07
-// -0.181694
-0xE8BE412A
-// 0.305385
-0x2716DEB2
-// -0.473115
-0xC370F447
-// -0.621226
-0xB07BA6BC
-// -0.412015
-0xCB4313DB
-// 0.031125
-0x03FBEAB3
-// -0.172841
-0xE9E05BA7
-// 0.797760
-0x661CFE8C
-// 0.054385
-0x06F619C2
-// -0.282382
-0xDBDAE421
-// 0.046904
-0x0600F291
-// 0.000333
-0x000AE7C0
-// -0.095990
-0xF3B697CF
-// 0.129207
-0x1089D7BE
-// 0.369957
-0x2F5ABF96
-// 0.009690
-0x013D816B
-// 0.421853
-0x35FF48FC
-// 0.380941
-0x30C2AB7A
-// 0.138303
-0x11B3E970
-// -0.158474
-0xEBB722DD
-// 0.380605
-0x30B7ACAF
-// 0.439500
-0x38418B53
-// 0.365688
-0x2ECEE145
-// 0.535423
-0x4488BEF1
-// -0.134012
-0xEED8AE9B
-// 0.246448
-0x1F8B9F3A
-// 0.346606
-0x2C5D9973
-// -0.228748
-0xE2B85E98
-// -0.066897
-0xF76FECC7
-// 0.219261
-0x1C10BE5F
-// 0.387680
-0x319F7C86
-// -0.175882
-0xE97CB174
-// 0.089282
-0x0B6D94ED
-// -0.108321
-0xF22285A9
-// -0.677255
-0xA94FB12E
-// -0.098224
-0xF36D6560
-// 0.367167
-0x2EFF5316
-// -0.049414
-0xF9ACCEFF
-// -0.218226
-0xE41127E4
-// 0.065775
-0x086B5023
-// 0.302192
-0x26AE3756
-// -0.560533
-0xB84073F7
+// -0.352092
+0xD2EEA8EC
+// -0.516010
+0xBDF362BE
+// 0.097020
+0x0C6B24F2
+// -0.307069
+0xD8B1F647
+// 0.265272
+0x21F471DC
+// -0.012420
+0xFE690941
+// -0.199806
+0xE66CBE59
+// -0.407294
+0xCBDDCDC2
+// 0.161555
+0x14ADD6B2
+// 0.265099
+0x21EEC1B4
+// -0.293503
+0xDA6E8266
+// -0.336242
+0xD4F60903
+// 0.315569
+0x28649271
+// 0.021360
+0x02BBED72
+// -0.048597
+0xF9C79437
+// -0.124846
+0xF0050A33
+// 0.275748
+0x234BB65F
+// -0.064471
+0xF7BF6840
+// -0.035854
+0xFB69229C
+// 0.074531
+0x098A39EC
+// -0.051416
+0xF96B2FDE
+// -0.262915
+0xDE58CD85
+// 0.188884
+0x182D56A7
+// -0.552953
+0xB938D79F
+// -0.055646
+0xF8E0967C
+// -0.449530
+0xC675CCBE
+// -0.096093
+0xF3B33745
+// -0.332864
+0xD564B2B2
+// 0.267353
+0x22389B80
+// 0.287500
+0x24CCCF37
+// 0.138693
+0x11C0AD8F
+// 0.194240
+0x18DCD8A5
+// 0.195224
+0x18FD183C
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirCoefs1_q31.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirCoefs1_q31.txt
new file mode 100644
index 0000000..4961de4
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirCoefs1_q31.txt
@@ -0,0 +1,1556 @@
+W
+777
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
+// 0.333333
+0x2AAAAAAB
+// 0.500000
+0x40000000
+// 0.250000
+0x20000000
+// 0.600000
+0x4CCCCCCD
+// 0.400000
+0x33333333
+// 0.200000
+0x1999999A
+// 0.666667
+0x55555555
+// 0.500000
+0x40000000
+// 0.333333
+0x2AAAAAAB
+// 0.166667
+0x15555555
+// 0.714286
+0x5B6DB6DB
+// 0.571429
+0x49249249
+// 0.428571
+0x36DB6DB7
+// 0.285714
+0x24924925
+// 0.142857
+0x12492492
+// 0.750000
+0x60000000
+// 0.625000
+0x50000000
+// 0.500000
+0x40000000
+// 0.375000
+0x30000000
+// 0.250000
+0x20000000
+// 0.125000
+0x10000000
+// 0.777778
+0x638E38E4
+// 0.666667
+0x55555555
+// 0.555556
+0x471C71C7
+// 0.444444
+0x38E38E39
+// 0.333333
+0x2AAAAAAB
+// 0.222222
+0x1C71C71C
+// 0.111111
+0x0E38E38E
+// 0.800000
+0x66666666
+// 0.700000
+0x5999999A
+// 0.600000
+0x4CCCCCCD
+// 0.500000
+0x40000000
+// 0.400000
+0x33333333
+// 0.300000
+0x26666666
+// 0.200000
+0x1999999A
+// 0.100000
+0x0CCCCCCD
+// 0.846154
+0x6C4EC4EC
+// 0.769231
+0x62762762
+// 0.692308
+0x589D89D9
+// 0.615385
+0x4EC4EC4F
+// 0.538462
+0x44EC4EC5
+// 0.461538
+0x3B13B13B
+// 0.384615
+0x313B13B1
+// 0.307692
+0x27627627
+// 0.230769
+0x1D89D89E
+// 0.153846
+0x13B13B14
+// 0.076923
+0x09D89D8A
+// 0.888889
+0x71C71C72
+// 0.833333
+0x6AAAAAAB
+// 0.777778
+0x638E38E4
+// 0.722222
+0x5C71C71C
+// 0.666667
+0x55555555
+// 0.611111
+0x4E38E38E
+// 0.555556
+0x471C71C7
+// 0.500000
+0x40000000
+// 0.444444
+0x38E38E39
+// 0.388889
+0x31C71C72
+// 0.333333
+0x2AAAAAAB
+// 0.277778
+0x238E38E4
+// 0.222222
+0x1C71C71C
+// 0.166667
+0x15555555
+// 0.111111
+0x0E38E38E
+// 0.055556
+0x071C71C7
+// 0.920000
+0x75C28F5C
+// 0.880000
+0x70A3D70A
+// 0.840000
+0x6B851EB8
+// 0.800000
+0x66666666
+// 0.760000
+0x6147AE14
+// 0.720000
+0x5C28F5C3
+// 0.680000
+0x570A3D71
+// 0.640000
+0x51EB851F
+// 0.600000
+0x4CCCCCCD
+// 0.560000
+0x47AE147B
+// 0.520000
+0x428F5C29
+// 0.480000
+0x3D70A3D7
+// 0.440000
+0x3851EB85
+// 0.400000
+0x33333333
+// 0.360000
+0x2E147AE1
+// 0.320000
+0x28F5C28F
+// 0.280000
+0x23D70A3D
+// 0.240000
+0x1EB851EC
+// 0.200000
+0x1999999A
+// 0.160000
+0x147AE148
+// 0.120000
+0x0F5C28F6
+// 0.080000
+0x0A3D70A4
+// 0.040000
+0x051EB852
+// 0.925926
+0x7684BDA1
+// 0.888889
+0x71C71C72
+// 0.851852
+0x6D097B42
+// 0.814815
+0x684BDA13
+// 0.777778
+0x638E38E4
+// 0.740741
+0x5ED097B4
+// 0.703704
+0x5A12F685
+// 0.666667
+0x55555555
+// 0.629630
+0x5097B426
+// 0.592593
+0x4BDA12F7
+// 0.555556
+0x471C71C7
+// 0.518519
+0x425ED098
+// 0.481481
+0x3DA12F68
+// 0.444444
+0x38E38E39
+// 0.407407
+0x3425ED09
+// 0.370370
+0x2F684BDA
+// 0.333333
+0x2AAAAAAB
+// 0.296296
+0x25ED097B
+// 0.259259
+0x212F684C
+// 0.222222
+0x1C71C71C
+// 0.185185
+0x17B425ED
+// 0.148148
+0x12F684BE
+// 0.111111
+0x0E38E38E
+// 0.074074
+0x097B425F
+// 0.037037
+0x04BDA12F
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirConfigs1_s16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirConfigs1_s16.txt
new file mode 100644
index 0000000..94fd4c1
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirConfigs1_s16.txt
@@ -0,0 +1,338 @@
+H
+168
+// 1
+0x0001
+// 1
+0x0001
+// 1
+0x0001
+// 2
+0x0002
+// 1
+0x0001
+// 3
+0x0003
+// 1
+0x0001
+// 4
+0x0004
+// 1
+0x0001
+// 5
+0x0005
+// 1
+0x0001
+// 6
+0x0006
+// 1
+0x0001
+// 7
+0x0007
+// 1
+0x0001
+// 8
+0x0008
+// 1
+0x0001
+// 11
+0x000B
+// 1
+0x0001
+// 16
+0x0010
+// 1
+0x0001
+// 23
+0x0017
+// 1
+0x0001
+// 25
+0x0019
+// 2
+0x0002
+// 1
+0x0001
+// 2
+0x0002
+// 2
+0x0002
+// 2
+0x0002
+// 3
+0x0003
+// 2
+0x0002
+// 4
+0x0004
+// 2
+0x0002
+// 5
+0x0005
+// 2
+0x0002
+// 6
+0x0006
+// 2
+0x0002
+// 7
+0x0007
+// 2
+0x0002
+// 8
+0x0008
+// 2
+0x0002
+// 11
+0x000B
+// 2
+0x0002
+// 16
+0x0010
+// 2
+0x0002
+// 23
+0x0017
+// 2
+0x0002
+// 25
+0x0019
+// 3
+0x0003
+// 1
+0x0001
+// 3
+0x0003
+// 2
+0x0002
+// 3
+0x0003
+// 3
+0x0003
+// 3
+0x0003
+// 4
+0x0004
+// 3
+0x0003
+// 5
+0x0005
+// 3
+0x0003
+// 6
+0x0006
+// 3
+0x0003
+// 7
+0x0007
+// 3
+0x0003
+// 8
+0x0008
+// 3
+0x0003
+// 11
+0x000B
+// 3
+0x0003
+// 16
+0x0010
+// 3
+0x0003
+// 23
+0x0017
+// 3
+0x0003
+// 25
+0x0019
+// 8
+0x0008
+// 1
+0x0001
+// 8
+0x0008
+// 2
+0x0002
+// 8
+0x0008
+// 3
+0x0003
+// 8
+0x0008
+// 4
+0x0004
+// 8
+0x0008
+// 5
+0x0005
+// 8
+0x0008
+// 6
+0x0006
+// 8
+0x0008
+// 7
+0x0007
+// 8
+0x0008
+// 8
+0x0008
+// 8
+0x0008
+// 11
+0x000B
+// 8
+0x0008
+// 16
+0x0010
+// 8
+0x0008
+// 23
+0x0017
+// 8
+0x0008
+// 25
+0x0019
+// 11
+0x000B
+// 1
+0x0001
+// 11
+0x000B
+// 2
+0x0002
+// 11
+0x000B
+// 3
+0x0003
+// 11
+0x000B
+// 4
+0x0004
+// 11
+0x000B
+// 5
+0x0005
+// 11
+0x000B
+// 6
+0x0006
+// 11
+0x000B
+// 7
+0x0007
+// 11
+0x000B
+// 8
+0x0008
+// 11
+0x000B
+// 11
+0x000B
+// 11
+0x000B
+// 16
+0x0010
+// 11
+0x000B
+// 23
+0x0017
+// 11
+0x000B
+// 25
+0x0019
+// 16
+0x0010
+// 1
+0x0001
+// 16
+0x0010
+// 2
+0x0002
+// 16
+0x0010
+// 3
+0x0003
+// 16
+0x0010
+// 4
+0x0004
+// 16
+0x0010
+// 5
+0x0005
+// 16
+0x0010
+// 6
+0x0006
+// 16
+0x0010
+// 7
+0x0007
+// 16
+0x0010
+// 8
+0x0008
+// 16
+0x0010
+// 11
+0x000B
+// 16
+0x0010
+// 16
+0x0010
+// 16
+0x0010
+// 23
+0x0017
+// 16
+0x0010
+// 25
+0x0019
+// 23
+0x0017
+// 1
+0x0001
+// 23
+0x0017
+// 2
+0x0002
+// 23
+0x0017
+// 3
+0x0003
+// 23
+0x0017
+// 4
+0x0004
+// 23
+0x0017
+// 5
+0x0005
+// 23
+0x0017
+// 6
+0x0006
+// 23
+0x0017
+// 7
+0x0007
+// 23
+0x0017
+// 8
+0x0008
+// 23
+0x0017
+// 11
+0x000B
+// 23
+0x0017
+// 16
+0x0010
+// 23
+0x0017
+// 23
+0x0017
+// 23
+0x0017
+// 25
+0x0019
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirInput1_q31.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirInput1_q31.txt
new file mode 100644
index 0000000..dd3e607
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirInput1_q31.txt
@@ -0,0 +1,94 @@
+W
+46
+// -0.003873
+0xFF81168C
+// 0.024268
+0x031B3A42
+// 0.024660
+0x03280BBF
+// 0.027911
+0x039293ED
+// 0.013627
+0x01BE8924
+// -0.008456
+0xFEEAE8E9
+// -0.023941
+0xFCEF808D
+// -0.032154
+0xFBE2642B
+// -0.020861
+0xFD547094
+// 0.001171
+0x0026606D
+// 0.021925
+0x02CE704F
+// 0.033333
+0x04444444
+// 0.024564
+0x0324E980
+// 0.008567
+0x0118BAF0
+// -0.009969
+0xFEB958F7
+// -0.030217
+0xFC21DA86
+// -0.031584
+0xFBF50F40
+// -0.018218
+0xFDAB076B
+// 0.002632
+0x00563E0B
+// 0.016359
+0x02181047
+// 0.024703
+0x032978E1
+// 0.021687
+0x02C6A0A5
+// 0.013125
+0x01AE1449
+// -0.008506
+0xFEE946BB
+// -0.027839
+0xFC6FC77D
+// -0.029298
+0xFC3FF289
+// -0.019623
+0xFD7CFACA
+// -0.002645
+0xFFA9515C
+// 0.017370
+0x02392B64
+// 0.027617
+0x0388F4E1
+// 0.020920
+0x02AD8562
+// 0.007015
+0x00E5DFD7
+// -0.013133
+0xFE51A992
+// -0.024798
+0xFCD367D3
+// -0.030807
+0xFC0E8254
+// -0.019101
+0xFD8E1C05
+// 0.001001
+0x0020CFE4
+// 0.016366
+0x021846F6
+// 0.031099
+0x03FB0CAD
+// 0.022902
+0x02EE7313
+// 0.014917
+0x01E8D07D
+// -0.009200
+0xFED28BE3
+// -0.024455
+0xFCDEA8E1
+// -0.028957
+0xFC4B2275
+// -0.020109
+0xFD6D1023
+// -0.001448
+0xFFD08ECB
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirRefs1_q31.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirRefs1_q31.txt
new file mode 100644
index 0000000..6342e95
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/FirRefs1_q31.txt
@@ -0,0 +1,3074 @@
+W
+1536
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// 0.008220
+0x010D5940
+// 0.009304
+0x0130DBFA
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// 0.018299
+0x0257A011
+// 0.019307
+0x0278AADB
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// 0.012315
+0x01938D95
+// 0.030007
+0x03D7453D
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// 0.010263
+0x01504B51
+// 0.022424
+0x02DEC8BB
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// 0.008797
+0x0120408F
+// 0.019220
+0x0275D0A0
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// 0.007697
+0x00FC387D
+// 0.016818
+0x0227168C
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// 0.006842
+0x00E03236
+// 0.014949
+0x01E9DB27
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// 0.006158
+0x00C9C6CA
+// 0.013454
+0x01B8DED7
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// 0.004737
+0x009B3674
+// 0.010349
+0x01532191
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// 0.003421
+0x0070191B
+// 0.007475
+0x00F4ED94
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// 0.002463
+0x0050B5EB
+// 0.005382
+0x00B05923
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// 0.002281
+0x004ABB67
+// 0.004983
+0x00A3490D
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// 0.008220
+0x010D5940
+// 0.009304
+0x0130DBFA
+// 0.004542
+0x0094D861
+// -0.002819
+0xFFA3A2F8
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// 0.018299
+0x0257A011
+// 0.019307
+0x0278AADB
+// 0.017362
+0x0238EC40
+// 0.004700
+0x0099FECC
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// 0.012315
+0x01938D95
+// 0.030007
+0x03D7453D
+// 0.028685
+0x03ABF73F
+// 0.020506
+0x029FF165
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// 0.010263
+0x01504B51
+// 0.022424
+0x02DEC8BB
+// 0.040084
+0x052174E1
+// 0.033528
+0x044AA654
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// 0.008797
+0x0120408F
+// 0.019220
+0x0275D0A0
+// 0.031591
+0x040B2B25
+// 0.046073
+0x05E5B82E
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// 0.007697
+0x00FC387D
+// 0.016818
+0x0227168C
+// 0.027642
+0x0389C5C0
+// 0.037409
+0x04C9D211
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// 0.006842
+0x00E03236
+// 0.014949
+0x01E9DB27
+// 0.024571
+0x0325218E
+// 0.033253
+0x04419E48
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// 0.006158
+0x00C9C6CA
+// 0.013454
+0x01B8DED7
+// 0.022114
+0x02D49E33
+// 0.029927
+0x03D4A80D
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// 0.004737
+0x009B3674
+// 0.010349
+0x01532191
+// 0.017010
+0x022D6600
+// 0.023021
+0x02F259E3
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// 0.003421
+0x0070191B
+// 0.007475
+0x00F4ED94
+// 0.012285
+0x019290C7
+// 0.016626
+0x0220CF24
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// 0.002463
+0x0050B5EB
+// 0.005382
+0x00B05923
+// 0.008845
+0x0121D8E1
+// 0.011971
+0x01884339
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// 0.002281
+0x004ABB67
+// 0.004983
+0x00A3490D
+// 0.008190
+0x010C6085
+// 0.011084
+0x016B34C3
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// 0.008220
+0x010D5940
+// 0.009304
+0x0130DBFA
+// 0.004542
+0x0094D861
+// -0.002819
+0xFFA3A2F8
+// -0.007980
+0xFEFA802F
+// -0.010718
+0xFEA0CC0E
+// -0.006954
+0xFF1C2587
+// 0.000390
+0x000CCACF
+// 0.007308
+0x00EF7AC5
+// 0.011111
+0x016C16C1
+// 0.008188
+0x010C4DD5
+// 0.002856
+0x005D93A5
+// -0.003323
+0xFF931DA8
+// -0.010072
+0xFEB5F382
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// 0.018299
+0x0257A011
+// 0.019307
+0x0278AADB
+// 0.017362
+0x0238EC40
+// 0.004700
+0x0099FECC
+// -0.010213
+0xFEB15498
+// -0.020009
+0xFD705951
+// -0.021292
+0xFD464E3B
+// -0.010138
+0xFEB3D065
+// 0.006067
+0x00C6CC4A
+// 0.019296
+0x02784939
+// 0.022808
+0x02EB5C82
+// 0.014424
+0x01D8A37C
+// 0.001791
+0x003AB3B6
+// -0.012539
+0xFE65231D
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// 0.012315
+0x01938D95
+// 0.030007
+0x03D7453D
+// 0.028685
+0x03ABF73F
+// 0.020506
+0x029FF165
+// 0.000006
+0x00002F8F
+// -0.021081
+0xFD4D399A
+// -0.031398
+0xFBFB2550
+// -0.027402
+0xFC7E1605
+// -0.007663
+0xFF04E6FB
+// 0.016139
+0x0210DAD5
+// 0.031401
+0x0404F3CB
+// 0.031539
+0x0409788C
+// 0.016172
+0x0211E8AB
+// -0.004891
+0xFF5FBF74
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// 0.010263
+0x01504B51
+// 0.022424
+0x02DEC8BB
+// 0.040084
+0x052174E1
+// 0.033528
+0x044AA654
+// 0.018612
+0x0261DF95
+// -0.008483
+0xFEEA0B6D
+// -0.031803
+0xFBEDE509
+// -0.038796
+0xFB08BD62
+// -0.027821
+0xFC705898
+// -0.000458
+0xFFF1016A
+// 0.026948
+0x03730B71
+// 0.040899
+0x053C2F54
+// 0.035699
+0x0491C4BC
+// 0.012301
+0x0193108B
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// 0.008797
+0x0120408F
+// 0.019220
+0x0275D0A0
+// 0.031591
+0x040B2B25
+// 0.046073
+0x05E5B82E
+// 0.033567
+0x044BEC9B
+// 0.012665
+0x019F05BE
+// -0.017526
+0xFDC1B88F
+// -0.039294
+0xFAF86D43
+// -0.040948
+0xFAC23A0C
+// -0.023359
+0xFD0291E7
+// 0.008198
+0x010CA35E
+// 0.035893
+0x0498244D
+// 0.046259
+0x05EBD448
+// 0.034353
+0x0465ACA8
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// 0.007697
+0x00FC387D
+// 0.016818
+0x0227168C
+// 0.027642
+0x0389C5C0
+// 0.037409
+0x04C9D211
+// 0.047572
+0x0616DAB9
+// 0.029577
+0x03C92DD6
+// 0.005598
+0x00B7706F
+// -0.024162
+0xFCE84676
+// -0.042171
+0xFA9A2179
+// -0.038395
+0xFB15E014
+// -0.016942
+0xFDD4DA12
+// 0.015761
+0x02047433
+// 0.041355
+0x054B2210
+// 0.046503
+0x05F3CB4F
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// 0.006842
+0x00E03236
+// 0.014949
+0x01E9DB27
+// 0.024571
+0x0325218E
+// 0.033253
+0x04419E48
+// 0.039274
+0x0506F067
+// 0.045166
+0x05C800B8
+// 0.024156
+0x03178986
+// 0.000231
+0x0007953E
+// -0.026887
+0xFC8EFA32
+// -0.040706
+0xFACA2700
+// -0.033680
+0xFBB05EB7
+// -0.010999
+0xFE9798C0
+// 0.020535
+0x02A0E79E
+// 0.042246
+0x0568550C
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// 0.006158
+0x00C9C6CA
+// 0.013454
+0x01B8DED7
+// 0.022114
+0x02D49E33
+// 0.029927
+0x03D4A80D
+// 0.035347
+0x04863EC3
+// 0.037551
+0x04CE7916
+// 0.041155
+0x054490C7
+// 0.019936
+0x028D42EA
+// -0.001869
+0xFFC2BDEB
+// -0.025733
+0xFCB4C403
+// -0.037077
+0xFB410F92
+// -0.029052
+0xFC4809EB
+// -0.007241
+0xFF12BA31
+// 0.021333
+0x02BB0D02
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// 0.004737
+0x009B3674
+// 0.010349
+0x01532191
+// 0.017010
+0x022D6600
+// 0.023021
+0x02F259E3
+// 0.027190
+0x037AF533
+// 0.028885
+0x03B28487
+// 0.028976
+0x03B57EFA
+// 0.029157
+0x03BB6D26
+// 0.031025
+0x03F89F0A
+// 0.039032
+0x04FEFC71
+// 0.023249
+0x02F9D2F5
+// 0.005898
+0x00C140C4
+// -0.017119
+0xFDCF0F6C
+// -0.031421
+0xFBFA639F
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// 0.003421
+0x0070191B
+// 0.007475
+0x00F4ED94
+// 0.012285
+0x019290C7
+// 0.016626
+0x0220CF24
+// 0.019637
+0x02837833
+// 0.020862
+0x02AB989A
+// 0.020927
+0x02ADBF43
+// 0.021058
+0x02B207B8
+// 0.022407
+0x02DE39F9
+// 0.025607
+0x03471AAF
+// 0.030173
+0x03DCB309
+// 0.035214
+0x0481E3FF
+// 0.039701
+0x0514EF3B
+// 0.042510
+0x0570F862
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// 0.002463
+0x0050B5EB
+// 0.005382
+0x00B05923
+// 0.008845
+0x0121D8E1
+// 0.011971
+0x01884339
+// 0.014139
+0x01CF4C4E
+// 0.015020
+0x01EC306F
+// 0.015068
+0x01EDBCE8
+// 0.015162
+0x01F0D25B
+// 0.016133
+0x0210A49F
+// 0.018437
+0x025C27B1
+// 0.021724
+0x02C7DD11
+// 0.025354
+0x033ECD1E
+// 0.028585
+0x03A8AC3F
+// 0.030607
+0x03EAF047
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// 0.002281
+0x004ABB67
+// 0.004983
+0x00A3490D
+// 0.008190
+0x010C6085
+// 0.011084
+0x016B34C3
+// 0.013091
+0x01ACFACD
+// 0.013908
+0x01C7BB12
+// 0.013952
+0x01C92A2C
+// 0.014039
+0x01CC0525
+// 0.014938
+0x01E97BFB
+// 0.017072
+0x022F671F
+// 0.020115
+0x02932206
+// 0.023476
+0x030142AA
+// 0.026468
+0x03634A27
+// 0.028340
+0x03A0A597
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// 0.008220
+0x010D5940
+// 0.009304
+0x0130DBFA
+// 0.004542
+0x0094D861
+// -0.002819
+0xFFA3A2F8
+// -0.007980
+0xFEFA802F
+// -0.010718
+0xFEA0CC0E
+// -0.006954
+0xFF1C2587
+// 0.000390
+0x000CCACF
+// 0.007308
+0x00EF7AC5
+// 0.011111
+0x016C16C1
+// 0.008188
+0x010C4DD5
+// 0.002856
+0x005D93A5
+// -0.003323
+0xFF931DA8
+// -0.010072
+0xFEB5F382
+// -0.010528
+0xFEA70515
+// -0.006073
+0xFF390279
+// 0.000877
+0x001CBF59
+// 0.005453
+0x00B2B018
+// 0.008234
+0x010DD2F6
+// 0.007229
+0x00ECE037
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// 0.018299
+0x0257A011
+// 0.019307
+0x0278AADB
+// 0.017362
+0x0238EC40
+// 0.004700
+0x0099FECC
+// -0.010213
+0xFEB15498
+// -0.020009
+0xFD705951
+// -0.021292
+0xFD464E3B
+// -0.010138
+0xFEB3D065
+// 0.006067
+0x00C6CC4A
+// 0.019296
+0x02784939
+// 0.022808
+0x02EB5C82
+// 0.014424
+0x01D8A37C
+// 0.001791
+0x003AB3B6
+// -0.012539
+0xFE65231D
+// -0.023004
+0xFD0E3113
+// -0.020346
+0xFD65497B
+// -0.008451
+0xFEEB1339
+// 0.005406
+0x00B12317
+// 0.014355
+0x01D6665B
+// 0.017773
+0x0246649A
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// 0.012315
+0x01938D95
+// 0.030007
+0x03D7453D
+// 0.028685
+0x03ABF73F
+// 0.020506
+0x029FF165
+// 0.000006
+0x00002F8F
+// -0.021081
+0xFD4D399A
+// -0.031398
+0xFBFB2550
+// -0.027402
+0xFC7E1605
+// -0.007663
+0xFF04E6FB
+// 0.016139
+0x0210DAD5
+// 0.031401
+0x0404F3CB
+// 0.031539
+0x0409788C
+// 0.016172
+0x0211E8AB
+// -0.004891
+0xFF5FBF74
+// -0.024385
+0xFCE0F63D
+// -0.034407
+0xFB988AB3
+// -0.025711
+0xFCB57EED
+// -0.006606
+0xFF2786ED
+// 0.013064
+0x01AC10B6
+// 0.024034
+0x03138D72
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// 0.010263
+0x01504B51
+// 0.022424
+0x02DEC8BB
+// 0.040084
+0x052174E1
+// 0.033528
+0x044AA654
+// 0.018612
+0x0261DF95
+// -0.008483
+0xFEEA0B6D
+// -0.031803
+0xFBEDE509
+// -0.038796
+0xFB08BD62
+// -0.027821
+0xFC705898
+// -0.000458
+0xFFF1016A
+// 0.026948
+0x03730B71
+// 0.040899
+0x053C2F54
+// 0.035699
+0x0491C4BC
+// 0.012301
+0x0193108B
+// -0.014609
+0xFE2149D3
+// -0.035319
+0xFB7AAEE4
+// -0.041571
+0xFAADD0CA
+// -0.026561
+0xFC99A545
+// -0.001259
+0xFFD6BD8A
+// 0.021783
+0x02C9C9E7
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// 0.008797
+0x0120408F
+// 0.019220
+0x0275D0A0
+// 0.031591
+0x040B2B25
+// 0.046073
+0x05E5B82E
+// 0.033567
+0x044BEC9B
+// 0.012665
+0x019F05BE
+// -0.017526
+0xFDC1B88F
+// -0.039294
+0xFAF86D43
+// -0.040948
+0xFAC23A0C
+// -0.023359
+0xFD0291E7
+// 0.008198
+0x010CA35E
+// 0.035893
+0x0498244D
+// 0.046259
+0x05EBD448
+// 0.034353
+0x0465ACA8
+// 0.005024
+0x00A49CEC
+// -0.024154
+0xFCE88926
+// -0.042752
+0xFA871714
+// -0.044350
+0xFA52BC09
+// -0.023639
+0xFCF96437
+// 0.005658
+0x00B96937
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// 0.007697
+0x00FC387D
+// 0.016818
+0x0227168C
+// 0.027642
+0x0389C5C0
+// 0.037409
+0x04C9D211
+// 0.047572
+0x0616DAB9
+// 0.029577
+0x03C92DD6
+// 0.005598
+0x00B7706F
+// -0.024162
+0xFCE84676
+// -0.042171
+0xFA9A2179
+// -0.038395
+0xFB15E014
+// -0.016942
+0xFDD4DA12
+// 0.015761
+0x02047433
+// 0.041355
+0x054B2210
+// 0.046503
+0x05F3CB4F
+// 0.029396
+0x03C33C81
+// -0.002711
+0xFFA72721
+// -0.030983
+0xFC08C066
+// -0.046283
+0xFA136741
+// -0.043347
+0xFA739B94
+// -0.018737
+0xFD9A0780
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// 0.006842
+0x00E03236
+// 0.014949
+0x01E9DB27
+// 0.024571
+0x0325218E
+// 0.033253
+0x04419E48
+// 0.039274
+0x0506F067
+// 0.045166
+0x05C800B8
+// 0.024156
+0x03178986
+// 0.000231
+0x0007953E
+// -0.026887
+0xFC8EFA32
+// -0.040706
+0xFACA2700
+// -0.033680
+0xFBB05EB7
+// -0.010999
+0xFE9798C0
+// 0.020535
+0x02A0E79E
+// 0.042246
+0x0568550C
+// 0.043182
+0x0586FEEA
+// 0.023516
+0x030290C4
+// -0.008435
+0xFEEB9985
+// -0.034477
+0xFB964283
+// -0.046284
+0xFA135DB5
+// -0.040157
+0xFADC2268
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// 0.006158
+0x00C9C6CA
+// 0.013454
+0x01B8DED7
+// 0.022114
+0x02D49E33
+// 0.029927
+0x03D4A80D
+// 0.035347
+0x04863EC3
+// 0.037551
+0x04CE7916
+// 0.041155
+0x054490C7
+// 0.019936
+0x028D42EA
+// -0.001869
+0xFFC2BDEB
+// -0.025733
+0xFCB4C403
+// -0.037077
+0xFB410F92
+// -0.029052
+0xFC4809EB
+// -0.007241
+0xFF12BA31
+// 0.021333
+0x02BB0D02
+// 0.039801
+0x0518328F
+// 0.038704
+0x04F4428A
+// 0.019075
+0x02710D95
+// -0.011378
+0xFE8B29DC
+// -0.034802
+0xFB8B9D17
+// -0.044116
+0xFA5A6623
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// 0.004737
+0x009B3674
+// 0.010349
+0x01532191
+// 0.017010
+0x022D6600
+// 0.023021
+0x02F259E3
+// 0.027190
+0x037AF533
+// 0.028885
+0x03B28487
+// 0.028976
+0x03B57EFA
+// 0.029157
+0x03BB6D26
+// 0.031025
+0x03F89F0A
+// 0.039032
+0x04FEFC71
+// 0.023249
+0x02F9D2F5
+// 0.005898
+0x00C140C4
+// -0.017119
+0xFDCF0F6C
+// -0.031421
+0xFBFA639F
+// -0.028817
+0xFC4FB881
+// -0.012670
+0xFE60D287
+// 0.013102
+0x01AD5067
+// 0.032181
+0x041E814A
+// 0.034428
+0x04682430
+// 0.019096
+0x0271BD5E
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// 0.003421
+0x0070191B
+// 0.007475
+0x00F4ED94
+// 0.012285
+0x019290C7
+// 0.016626
+0x0220CF24
+// 0.019637
+0x02837833
+// 0.020862
+0x02AB989A
+// 0.020927
+0x02ADBF43
+// 0.021058
+0x02B207B8
+// 0.022407
+0x02DE39F9
+// 0.025607
+0x03471AAF
+// 0.030173
+0x03DCB309
+// 0.035214
+0x0481E3FF
+// 0.039701
+0x0514EF3B
+// 0.042510
+0x0570F862
+// 0.047222
+0x060B5EDE
+// 0.024559
+0x0324BF3A
+// 0.000324
+0x000AA10F
+// -0.027442
+0xFC7CC9A3
+// -0.041896
+0xFAA32592
+// -0.035046
+0xFB839A23
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// 0.002463
+0x0050B5EB
+// 0.005382
+0x00B05923
+// 0.008845
+0x0121D8E1
+// 0.011971
+0x01884339
+// 0.014139
+0x01CF4C4E
+// 0.015020
+0x01EC306F
+// 0.015068
+0x01EDBCE8
+// 0.015162
+0x01F0D25B
+// 0.016133
+0x0210A49F
+// 0.018437
+0x025C27B1
+// 0.021724
+0x02C7DD11
+// 0.025354
+0x033ECD1E
+// 0.028585
+0x03A8AC3F
+// 0.030607
+0x03EAF047
+// 0.031366
+0x0403CE84
+// 0.031396
+0x0404CBC6
+// 0.031532
+0x04093C27
+// 0.032322
+0x04231DD2
+// 0.034100
+0x045D607C
+// 0.036745
+0x04B40FFA
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// 0.002281
+0x004ABB67
+// 0.004983
+0x00A3490D
+// 0.008190
+0x010C6085
+// 0.011084
+0x016B34C3
+// 0.013091
+0x01ACFACD
+// 0.013908
+0x01C7BB12
+// 0.013952
+0x01C92A2C
+// 0.014039
+0x01CC0525
+// 0.014938
+0x01E97BFB
+// 0.017072
+0x022F671F
+// 0.020115
+0x02932206
+// 0.023476
+0x030142AA
+// 0.026468
+0x03634A27
+// 0.028340
+0x03A0A597
+// 0.029043
+0x03B7AC41
+// 0.029071
+0x03B896C1
+// 0.029196
+0x03BCB2F4
+// 0.029927
+0x03D4A9D6
+// 0.031574
+0x040A9BB6
+// 0.034023
+0x045ADF63
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// 0.008220
+0x010D5940
+// 0.009304
+0x0130DBFA
+// 0.004542
+0x0094D861
+// -0.002819
+0xFFA3A2F8
+// -0.007980
+0xFEFA802F
+// -0.010718
+0xFEA0CC0E
+// -0.006954
+0xFF1C2587
+// 0.000390
+0x000CCACF
+// 0.007308
+0x00EF7AC5
+// 0.011111
+0x016C16C1
+// 0.008188
+0x010C4DD5
+// 0.002856
+0x005D93A5
+// -0.003323
+0xFF931DA8
+// -0.010072
+0xFEB5F382
+// -0.010528
+0xFEA70515
+// -0.006073
+0xFF390279
+// 0.000877
+0x001CBF59
+// 0.005453
+0x00B2B018
+// 0.008234
+0x010DD2F6
+// 0.007229
+0x00ECE037
+// 0.004375
+0x008F5C18
+// -0.002835
+0xFFA31794
+// -0.009280
+0xFECFED2A
+// -0.009766
+0xFEBFFB83
+// -0.006541
+0xFF29A8EE
+// -0.000882
+0xFFE31B1F
+// 0.005790
+0x00BDB921
+// 0.009206
+0x012DA6F6
+// 0.006973
+0x00E481CB
+// 0.002338
+0x004C9FF2
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// 0.018299
+0x0257A011
+// 0.019307
+0x0278AADB
+// 0.017362
+0x0238EC40
+// 0.004700
+0x0099FECC
+// -0.010213
+0xFEB15498
+// -0.020009
+0xFD705951
+// -0.021292
+0xFD464E3B
+// -0.010138
+0xFEB3D065
+// 0.006067
+0x00C6CC4A
+// 0.019296
+0x02784939
+// 0.022808
+0x02EB5C82
+// 0.014424
+0x01D8A37C
+// 0.001791
+0x003AB3B6
+// -0.012539
+0xFE65231D
+// -0.023004
+0xFD0E3113
+// -0.020346
+0xFD65497B
+// -0.008451
+0xFEEB1339
+// 0.005406
+0x00B12317
+// 0.014355
+0x01D6665B
+// 0.017773
+0x0246649A
+// 0.014125
+0x01CED565
+// 0.004436
+0x00915BD4
+// -0.011213
+0xFE90953D
+// -0.021244
+0xFD47E061
+// -0.019555
+0xFD7F37F7
+// -0.010473
+0xFEA8D1BC
+// 0.003020
+0x0062F387
+// 0.015589
+0x01FED2EA
+// 0.019039
+0x026FDBC9
+// 0.012214
+0x01903AA7
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// 0.012315
+0x01938D95
+// 0.030007
+0x03D7453D
+// 0.028685
+0x03ABF73F
+// 0.020506
+0x029FF165
+// 0.000006
+0x00002F8F
+// -0.021081
+0xFD4D399A
+// -0.031398
+0xFBFB2550
+// -0.027402
+0xFC7E1605
+// -0.007663
+0xFF04E6FB
+// 0.016139
+0x0210DAD5
+// 0.031401
+0x0404F3CB
+// 0.031539
+0x0409788C
+// 0.016172
+0x0211E8AB
+// -0.004891
+0xFF5FBF74
+// -0.024385
+0xFCE0F63D
+// -0.034407
+0xFB988AB3
+// -0.025711
+0xFCB57EED
+// -0.006606
+0xFF2786ED
+// 0.013064
+0x01AC10B6
+// 0.024034
+0x03138D72
+// 0.026122
+0x0357F33E
+// 0.016561
+0x021EA9D9
+// -0.001095
+0xFFDC1D2A
+// -0.022099
+0xFD2BDDF1
+// -0.032347
+0xFBDC0ADD
+// -0.025958
+0xFCAD6C82
+// -0.009358
+0xFECD594C
+// 0.010884
+0x0164A659
+// 0.025653
+0x034896AA
+// 0.026341
+0x035F2840
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// 0.010263
+0x01504B51
+// 0.022424
+0x02DEC8BB
+// 0.040084
+0x052174E1
+// 0.033528
+0x044AA654
+// 0.018612
+0x0261DF95
+// -0.008483
+0xFEEA0B6D
+// -0.031803
+0xFBEDE509
+// -0.038796
+0xFB08BD62
+// -0.027821
+0xFC705898
+// -0.000458
+0xFFF1016A
+// 0.026948
+0x03730B71
+// 0.040899
+0x053C2F54
+// 0.035699
+0x0491C4BC
+// 0.012301
+0x0193108B
+// -0.014609
+0xFE2149D3
+// -0.035319
+0xFB7AAEE4
+// -0.041571
+0xFAADD0CA
+// -0.026561
+0xFC99A545
+// -0.001259
+0xFFD6BD8A
+// 0.021783
+0x02C9C9E7
+// 0.032674
+0x042EAAE3
+// 0.030269
+0x03DFDE20
+// 0.013545
+0x01BBD8BB
+// -0.009666
+0xFEC3467A
+// -0.032627
+0xFBD2E2E0
+// -0.040190
+0xFADB0A15
+// -0.027331
+0xFC806C1A
+// -0.004012
+0xFF7C8726
+// 0.019614
+0x0282B3CA
+// 0.033531
+0x044ABE78
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// 0.008797
+0x0120408F
+// 0.019220
+0x0275D0A0
+// 0.031591
+0x040B2B25
+// 0.046073
+0x05E5B82E
+// 0.033567
+0x044BEC9B
+// 0.012665
+0x019F05BE
+// -0.017526
+0xFDC1B88F
+// -0.039294
+0xFAF86D43
+// -0.040948
+0xFAC23A0C
+// -0.023359
+0xFD0291E7
+// 0.008198
+0x010CA35E
+// 0.035893
+0x0498244D
+// 0.046259
+0x05EBD448
+// 0.034353
+0x0465ACA8
+// 0.005024
+0x00A49CEC
+// -0.024154
+0xFCE88926
+// -0.042752
+0xFA871714
+// -0.044350
+0xFA52BC09
+// -0.023639
+0xFCF96437
+// 0.005658
+0x00B96937
+// 0.029886
+0x03D35113
+// 0.037630
+0x04D11329
+// 0.029255
+0x03BEA266
+// 0.007206
+0x00EC1CDE
+// -0.018591
+0xFD9ED0F5
+// -0.040525
+0xFAD01698
+// -0.043311
+0xFA74C694
+// -0.024367
+0xFCE18ECC
+// 0.002795
+0x005B9663
+// 0.026851
+0x036FDD5F
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// 0.007697
+0x00FC387D
+// 0.016818
+0x0227168C
+// 0.027642
+0x0389C5C0
+// 0.037409
+0x04C9D211
+// 0.047572
+0x0616DAB9
+// 0.029577
+0x03C92DD6
+// 0.005598
+0x00B7706F
+// -0.024162
+0xFCE84676
+// -0.042171
+0xFA9A2179
+// -0.038395
+0xFB15E014
+// -0.016942
+0xFDD4DA12
+// 0.015761
+0x02047433
+// 0.041355
+0x054B2210
+// 0.046503
+0x05F3CB4F
+// 0.029396
+0x03C33C81
+// -0.002711
+0xFFA72721
+// -0.030983
+0xFC08C066
+// -0.046283
+0xFA136741
+// -0.043347
+0xFA739B94
+// -0.018737
+0xFD9A0780
+// 0.012487
+0x01992C82
+// 0.034901
+0x04779F4D
+// 0.037868
+0x04D8DA4E
+// 0.024832
+0x032DB3EB
+// -0.000002
+0xFFFFEF52
+// -0.025615
+0xFCB8A2FC
+// -0.044277
+0xFA5522CE
+// -0.042200
+0xFA993290
+// -0.019528
+0xFD80197D
+// 0.008777
+0x011F9DCB
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// 0.006842
+0x00E03236
+// 0.014949
+0x01E9DB27
+// 0.024571
+0x0325218E
+// 0.033253
+0x04419E48
+// 0.039274
+0x0506F067
+// 0.045166
+0x05C800B8
+// 0.024156
+0x03178986
+// 0.000231
+0x0007953E
+// -0.026887
+0xFC8EFA32
+// -0.040706
+0xFACA2700
+// -0.033680
+0xFBB05EB7
+// -0.010999
+0xFE9798C0
+// 0.020535
+0x02A0E79E
+// 0.042246
+0x0568550C
+// 0.043182
+0x0586FEEA
+// 0.023516
+0x030290C4
+// -0.008435
+0xFEEB9985
+// -0.034477
+0xFB964283
+// -0.046284
+0xFA135DB5
+// -0.040157
+0xFADC2268
+// -0.013466
+0xFE46C1A5
+// 0.016853
+0x02283E09
+// 0.035707
+0x04920EC0
+// 0.034797
+0x04743ACF
+// 0.019212
+0x02758814
+// -0.005902
+0xFF3E9C0B
+// -0.029149
+0xFC44D962
+// -0.044127
+0xFA5A0EA0
+// -0.039011
+0xFB01B1D0
+// -0.014986
+0xFE14F391
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// 0.006158
+0x00C9C6CA
+// 0.013454
+0x01B8DED7
+// 0.022114
+0x02D49E33
+// 0.029927
+0x03D4A80D
+// 0.035347
+0x04863EC3
+// 0.037551
+0x04CE7916
+// 0.041155
+0x054490C7
+// 0.019936
+0x028D42EA
+// -0.001869
+0xFFC2BDEB
+// -0.025733
+0xFCB4C403
+// -0.037077
+0xFB410F92
+// -0.029052
+0xFC4809EB
+// -0.007241
+0xFF12BA31
+// 0.021333
+0x02BB0D02
+// 0.039801
+0x0518328F
+// 0.038704
+0x04F4428A
+// 0.019075
+0x02710D95
+// -0.011378
+0xFE8B29DC
+// -0.034802
+0xFB8B9D17
+// -0.044116
+0xFA5A6623
+// -0.036293
+0xFB5AC380
+// -0.010099
+0xFEB510D5
+// 0.017562
+0x023F799C
+// 0.033423
+0x0447335D
+// 0.030378
+0x03E36DE4
+// 0.014451
+0x01D986BE
+// -0.008885
+0xFEDCDDC3
+// -0.029214
+0xFC42B6FE
+// -0.041914
+0xFAA28BD1
+// -0.035758
+0xFB6C4799
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// 0.004737
+0x009B3674
+// 0.010349
+0x01532191
+// 0.017010
+0x022D6600
+// 0.023021
+0x02F259E3
+// 0.027190
+0x037AF533
+// 0.028885
+0x03B28487
+// 0.028976
+0x03B57EFA
+// 0.029157
+0x03BB6D26
+// 0.031025
+0x03F89F0A
+// 0.039032
+0x04FEFC71
+// 0.023249
+0x02F9D2F5
+// 0.005898
+0x00C140C4
+// -0.017119
+0xFDCF0F6C
+// -0.031421
+0xFBFA639F
+// -0.028817
+0xFC4FB881
+// -0.012670
+0xFE60D287
+// 0.013102
+0x01AD5067
+// 0.032181
+0x041E814A
+// 0.034428
+0x04682430
+// 0.019096
+0x0271BD5E
+// -0.007444
+0xFF0C15A8
+// -0.029107
+0xFC463814
+// -0.040035
+0xFAE02066
+// -0.036766
+0xFB4B400D
+// -0.015549
+0xFE027E67
+// 0.009051
+0x0128953A
+// 0.025079
+0x0335C923
+// 0.025386
+0x033FDCE3
+// 0.014429
+0x01D8D19B
+// -0.004949
+0xFF5DD832
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// 0.003421
+0x0070191B
+// 0.007475
+0x00F4ED94
+// 0.012285
+0x019290C7
+// 0.016626
+0x0220CF24
+// 0.019637
+0x02837833
+// 0.020862
+0x02AB989A
+// 0.020927
+0x02ADBF43
+// 0.021058
+0x02B207B8
+// 0.022407
+0x02DE39F9
+// 0.025607
+0x03471AAF
+// 0.030173
+0x03DCB309
+// 0.035214
+0x0481E3FF
+// 0.039701
+0x0514EF3B
+// 0.042510
+0x0570F862
+// 0.047222
+0x060B5EDE
+// 0.024559
+0x0324BF3A
+// 0.000324
+0x000AA10F
+// -0.027442
+0xFC7CC9A3
+// -0.041896
+0xFAA32592
+// -0.035046
+0xFB839A23
+// -0.012373
+0xFE6A901E
+// 0.018914
+0x026BC85C
+// 0.039776
+0x05175DF3
+// 0.039360
+0x0509C2E9
+// 0.018189
+0x025404FF
+// -0.015122
+0xFE107D2F
+// -0.041037
+0xFABF49B7
+// -0.051675
+0xF962B4A0
+// -0.044121
+0xFA5A4035
+// -0.016499
+0xFDE358EC
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// 0.002463
+0x0050B5EB
+// 0.005382
+0x00B05923
+// 0.008845
+0x0121D8E1
+// 0.011971
+0x01884339
+// 0.014139
+0x01CF4C4E
+// 0.015020
+0x01EC306F
+// 0.015068
+0x01EDBCE8
+// 0.015162
+0x01F0D25B
+// 0.016133
+0x0210A49F
+// 0.018437
+0x025C27B1
+// 0.021724
+0x02C7DD11
+// 0.025354
+0x033ECD1E
+// 0.028585
+0x03A8AC3F
+// 0.030607
+0x03EAF047
+// 0.031366
+0x0403CE84
+// 0.031396
+0x0404CBC6
+// 0.031532
+0x04093C27
+// 0.032322
+0x04231DD2
+// 0.034100
+0x045D607C
+// 0.036745
+0x04B40FFA
+// 0.039915
+0x051BF37A
+// 0.046464
+0x05F286BA
+// 0.025038
+0x03346F68
+// 0.001093
+0x0023D3CA
+// -0.027743
+0xFC72E7F6
+// -0.044090
+0xFA5B4144
+// -0.039087
+0xFAFF30A5
+// -0.017776
+0xFDB984AF
+// 0.013214
+0x01B0FE67
+// 0.034929
+0x04788FDF
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// 0.002281
+0x004ABB67
+// 0.004983
+0x00A3490D
+// 0.008190
+0x010C6085
+// 0.011084
+0x016B34C3
+// 0.013091
+0x01ACFACD
+// 0.013908
+0x01C7BB12
+// 0.013952
+0x01C92A2C
+// 0.014039
+0x01CC0525
+// 0.014938
+0x01E97BFB
+// 0.017072
+0x022F671F
+// 0.020115
+0x02932206
+// 0.023476
+0x030142AA
+// 0.026468
+0x03634A27
+// 0.028340
+0x03A0A597
+// 0.029043
+0x03B7AC41
+// 0.029071
+0x03B896C1
+// 0.029196
+0x03BCB2F4
+// 0.029927
+0x03D4A9D6
+// 0.031574
+0x040A9BB6
+// 0.034023
+0x045ADF63
+// 0.036959
+0x04BB10DA
+// 0.039579
+0x0510EF9A
+// 0.041169
+0x05450526
+// 0.045403
+0x05CFC21E
+// 0.021954
+0x02CF6526
+// -0.002868
+0xFFA2066A
+// -0.031091
+0xFC0538AE
+// -0.045570
+0xFA2AC4C7
+// -0.038513
+0xFB11FDFF
+// -0.015973
+0xFDF49B5E
+// -0.001291
+0xFFD5B22F
+// 0.008089
+0x0109136B
+// 0.008220
+0x010D5940
+// 0.009304
+0x0130DBFA
+// 0.004542
+0x0094D861
+// -0.002819
+0xFFA3A2F8
+// -0.007980
+0xFEFA802F
+// -0.010718
+0xFEA0CC0E
+// -0.006954
+0xFF1C2587
+// 0.000390
+0x000CCACF
+// 0.007308
+0x00EF7AC5
+// 0.011111
+0x016C16C1
+// 0.008188
+0x010C4DD5
+// 0.002856
+0x005D93A5
+// -0.003323
+0xFF931DA8
+// -0.010072
+0xFEB5F382
+// -0.010528
+0xFEA70515
+// -0.006073
+0xFF390279
+// 0.000877
+0x001CBF59
+// 0.005453
+0x00B2B018
+// 0.008234
+0x010DD2F6
+// 0.007229
+0x00ECE037
+// 0.004375
+0x008F5C18
+// -0.002835
+0xFFA31794
+// -0.009280
+0xFECFED2A
+// -0.009766
+0xFEBFFB83
+// -0.006541
+0xFF29A8EE
+// -0.000882
+0xFFE31B1F
+// 0.005790
+0x00BDB921
+// 0.009206
+0x012DA6F6
+// 0.006973
+0x00E481CB
+// 0.002338
+0x004C9FF2
+// -0.004378
+0xFF708DDB
+// -0.008266
+0xFEF1229C
+// -0.010269
+0xFEAF80C7
+// -0.006367
+0xFF2F5EAC
+// 0.000334
+0x000AEFF7
+// 0.005455
+0x00B2C252
+// 0.010366
+0x0153AEE4
+// 0.007634
+0x00FA265C
+// 0.004972
+0x00A2F02A
+// -0.003067
+0xFF9B83F6
+// -0.008152
+0xFEF4E2F6
+// -0.009652
+0xFEC3B627
+// -0.006703
+0xFF245AB6
+// -0.000483
+0xFFF02F99
+// -0.000968
+0xFFE045A3
+// 0.004131
+0x008759D6
+// 0.018299
+0x0257A011
+// 0.019307
+0x0278AADB
+// 0.017362
+0x0238EC40
+// 0.004700
+0x0099FECC
+// -0.010213
+0xFEB15498
+// -0.020009
+0xFD705951
+// -0.021292
+0xFD464E3B
+// -0.010138
+0xFEB3D065
+// 0.006067
+0x00C6CC4A
+// 0.019296
+0x02784939
+// 0.022808
+0x02EB5C82
+// 0.014424
+0x01D8A37C
+// 0.001791
+0x003AB3B6
+// -0.012539
+0xFE65231D
+// -0.023004
+0xFD0E3113
+// -0.020346
+0xFD65497B
+// -0.008451
+0xFEEB1339
+// 0.005406
+0x00B12317
+// 0.014355
+0x01D6665B
+// 0.017773
+0x0246649A
+// 0.014125
+0x01CED565
+// 0.004436
+0x00915BD4
+// -0.011213
+0xFE90953D
+// -0.021244
+0xFD47E061
+// -0.019555
+0xFD7F37F7
+// -0.010473
+0xFEA8D1BC
+// 0.003020
+0x0062F387
+// 0.015589
+0x01FED2EA
+// 0.019039
+0x026FDBC9
+// 0.012214
+0x01903AA7
+// 0.000224
+0x00075A50
+// -0.012766
+0xFE5DAEBE
+// -0.020101
+0xFD6D547E
+// -0.020179
+0xFD6AC82B
+// -0.009300
+0xFECF41FB
+// 0.004592
+0x009679B0
+// 0.015958
+0x020AE6A6
+// 0.021275
+0x02B9231B
+// 0.015180
+0x01F16DA9
+// 0.005159
+0x00A90B37
+// -0.010714
+0xFEA0F02A
+// -0.019467
+0xFD821D0E
+// -0.019506
+0xFD80D543
+// -0.010417
+0xFEAAABC4
+// -0.000775
+0xFFE69E1C
+// 0.003304
+0x006C47DF
+// 0.012315
+0x01938D95
+// 0.030007
+0x03D7453D
+// 0.028685
+0x03ABF73F
+// 0.020506
+0x029FF165
+// 0.000006
+0x00002F8F
+// -0.021081
+0xFD4D399A
+// -0.031398
+0xFBFB2550
+// -0.027402
+0xFC7E1605
+// -0.007663
+0xFF04E6FB
+// 0.016139
+0x0210DAD5
+// 0.031401
+0x0404F3CB
+// 0.031539
+0x0409788C
+// 0.016172
+0x0211E8AB
+// -0.004891
+0xFF5FBF74
+// -0.024385
+0xFCE0F63D
+// -0.034407
+0xFB988AB3
+// -0.025711
+0xFCB57EED
+// -0.006606
+0xFF2786ED
+// 0.013064
+0x01AC10B6
+// 0.024034
+0x03138D72
+// 0.026122
+0x0357F33E
+// 0.016561
+0x021EA9D9
+// -0.001095
+0xFFDC1D2A
+// -0.022099
+0xFD2BDDF1
+// -0.032347
+0xFBDC0ADD
+// -0.025958
+0xFCAD6C82
+// -0.009358
+0xFECD594C
+// 0.010884
+0x0164A659
+// 0.025653
+0x034896AA
+// 0.026341
+0x035F2840
+// 0.012732
+0x01A131E1
+// -0.006004
+0xFF3B454C
+// -0.023961
+0xFCEEDC89
+// -0.031022
+0xFC077807
+// -0.025924
+0xFCAE82FB
+// -0.007787
+0xFF00D88F
+// 0.013367
+0x01B6020E
+// 0.026839
+0x036F79DD
+// 0.030804
+0x03F15F55
+// 0.017868
+0x02498137
+// 0.000380
+0x000C706C
+// -0.021093
+0xFD4CD193
+// -0.030278
+0xFC1FDCBD
+// -0.025707
+0xFCB59E17
+// -0.000646
+0xFFEAD917
+// 0.002754
+0x005A3BE4
+// 0.010263
+0x01504B51
+// 0.022424
+0x02DEC8BB
+// 0.040084
+0x052174E1
+// 0.033528
+0x044AA654
+// 0.018612
+0x0261DF95
+// -0.008483
+0xFEEA0B6D
+// -0.031803
+0xFBEDE509
+// -0.038796
+0xFB08BD62
+// -0.027821
+0xFC705898
+// -0.000458
+0xFFF1016A
+// 0.026948
+0x03730B71
+// 0.040899
+0x053C2F54
+// 0.035699
+0x0491C4BC
+// 0.012301
+0x0193108B
+// -0.014609
+0xFE2149D3
+// -0.035319
+0xFB7AAEE4
+// -0.041571
+0xFAADD0CA
+// -0.026561
+0xFC99A545
+// -0.001259
+0xFFD6BD8A
+// 0.021783
+0x02C9C9E7
+// 0.032674
+0x042EAAE3
+// 0.030269
+0x03DFDE20
+// 0.013545
+0x01BBD8BB
+// -0.009666
+0xFEC3467A
+// -0.032627
+0xFBD2E2E0
+// -0.040190
+0xFADB0A15
+// -0.027331
+0xFC806C1A
+// -0.004012
+0xFF7C8726
+// 0.019614
+0x0282B3CA
+// 0.033531
+0x044ABE78
+// 0.029021
+0x03B6F77C
+// 0.008944
+0x012512AB
+// -0.015290
+0xFE0AF7AC
+// -0.034607
+0xFB91FFBC
+// -0.038136
+0xFB1E5D08
+// -0.027027
+0xFC8A60AF
+// -0.001595
+0xFFCBBF0F
+// 0.023034
+0x02F2C57B
+// 0.036580
+0x04AEA96B
+// 0.035623
+0x048F4977
+// 0.015584
+0x01FEAA67
+// -0.007633
+0xFF05E44E
+// -0.031364
+0xFBFC3FDF
+// -0.037726
+0xFB2BC9A9
+// -0.000553
+0xFFEDDEA6
+// 0.002360
+0x004D57E8
+// 0.008797
+0x0120408F
+// 0.019220
+0x0275D0A0
+// 0.031591
+0x040B2B25
+// 0.046073
+0x05E5B82E
+// 0.033567
+0x044BEC9B
+// 0.012665
+0x019F05BE
+// -0.017526
+0xFDC1B88F
+// -0.039294
+0xFAF86D43
+// -0.040948
+0xFAC23A0C
+// -0.023359
+0xFD0291E7
+// 0.008198
+0x010CA35E
+// 0.035893
+0x0498244D
+// 0.046259
+0x05EBD448
+// 0.034353
+0x0465ACA8
+// 0.005024
+0x00A49CEC
+// -0.024154
+0xFCE88926
+// -0.042752
+0xFA871714
+// -0.044350
+0xFA52BC09
+// -0.023639
+0xFCF96437
+// 0.005658
+0x00B96937
+// 0.029886
+0x03D35113
+// 0.037630
+0x04D11329
+// 0.029255
+0x03BEA266
+// 0.007206
+0x00EC1CDE
+// -0.018591
+0xFD9ED0F5
+// -0.040525
+0xFAD01698
+// -0.043311
+0xFA74C694
+// -0.024367
+0xFCE18ECC
+// 0.002795
+0x005B9663
+// 0.026851
+0x036FDD5F
+// 0.037282
+0x04C5A9FB
+// 0.027393
+0x03819A58
+// 0.001837
+0x003C3390
+// -0.024652
+0xFCD831F2
+// -0.042069
+0xFA9D7FB9
+// -0.040879
+0xFAC47876
+// -0.023372
+0xFD02256D
+// 0.006100
+0x00C7E1DA
+// 0.032070
+0x041ADC91
+// 0.042224
+0x0567963A
+// 0.035571
+0x048D9B1D
+// 0.009816
+0x0141A82B
+// -0.016229
+0xFDEC3962
+// -0.038908
+0xFB0510C5
+// -0.000484
+0xFFF022D1
+// 0.002065
+0x0043ACEB
+// 0.007697
+0x00FC387D
+// 0.016818
+0x0227168C
+// 0.027642
+0x0389C5C0
+// 0.037409
+0x04C9D211
+// 0.047572
+0x0616DAB9
+// 0.029577
+0x03C92DD6
+// 0.005598
+0x00B7706F
+// -0.024162
+0xFCE84676
+// -0.042171
+0xFA9A2179
+// -0.038395
+0xFB15E014
+// -0.016942
+0xFDD4DA12
+// 0.015761
+0x02047433
+// 0.041355
+0x054B2210
+// 0.046503
+0x05F3CB4F
+// 0.029396
+0x03C33C81
+// -0.002711
+0xFFA72721
+// -0.030983
+0xFC08C066
+// -0.046283
+0xFA136741
+// -0.043347
+0xFA739B94
+// -0.018737
+0xFD9A0780
+// 0.012487
+0x01992C82
+// 0.034901
+0x04779F4D
+// 0.037868
+0x04D8DA4E
+// 0.024832
+0x032DB3EB
+// -0.000002
+0xFFFFEF52
+// -0.025615
+0xFCB8A2FC
+// -0.044277
+0xFA5522CE
+// -0.042200
+0xFA993290
+// -0.019528
+0xFD80197D
+// 0.008777
+0x011F9DCB
+// 0.030638
+0x03EBF1C0
+// 0.036996
+0x04BC4798
+// 0.022320
+0x02DB64C7
+// -0.005880
+0xFF3F4FBD
+// -0.031549
+0xFBF637A3
+// -0.045619
+0xFA292894
+// -0.039049
+0xFB006E9D
+// -0.017768
+0xFDB9C75E
+// 0.013736
+0x01C21602
+// 0.037697
+0x04D33F5E
+// 0.043399
+0x058E1CF2
+// 0.031913
+0x0415BCA8
+// 0.002976
+0x00618883
+// -0.022856
+0xFD130B0A
+// -0.000430
+0xFFF1E610
+// 0.001836
+0x003C27EE
+// 0.006842
+0x00E03236
+// 0.014949
+0x01E9DB27
+// 0.024571
+0x0325218E
+// 0.033253
+0x04419E48
+// 0.039274
+0x0506F067
+// 0.045166
+0x05C800B8
+// 0.024156
+0x03178986
+// 0.000231
+0x0007953E
+// -0.026887
+0xFC8EFA32
+// -0.040706
+0xFACA2700
+// -0.033680
+0xFBB05EB7
+// -0.010999
+0xFE9798C0
+// 0.020535
+0x02A0E79E
+// 0.042246
+0x0568550C
+// 0.043182
+0x0586FEEA
+// 0.023516
+0x030290C4
+// -0.008435
+0xFEEB9985
+// -0.034477
+0xFB964283
+// -0.046284
+0xFA135DB5
+// -0.040157
+0xFADC2268
+// -0.013466
+0xFE46C1A5
+// 0.016853
+0x02283E09
+// 0.035707
+0x04920EC0
+// 0.034797
+0x04743ACF
+// 0.019212
+0x02758814
+// -0.005902
+0xFF3E9C0B
+// -0.029149
+0xFC44D962
+// -0.044127
+0xFA5A0EA0
+// -0.039011
+0xFB01B1D0
+// -0.014986
+0xFE14F391
+// 0.011971
+0x0188449E
+// 0.030828
+0x03F22995
+// 0.033350
+0x0444D0A9
+// 0.016253
+0x02149390
+// -0.011772
+0xFE7E43DD
+// -0.035094
+0xFB820B0F
+// -0.044925
+0xFA3FE636
+// -0.035081
+0xFB8273BE
+// -0.011752
+0xFE7EEAB5
+// 0.018652
+0x026331AD
+// 0.039356
+0x05099EFA
+// 0.041096
+0x0542A5FF
+// 0.026834
+0x036F4A51
+// -0.002504
+0xFFADF189
+// -0.000387
+0xFFF34F0E
+// 0.001652
+0x003623EF
+// 0.006158
+0x00C9C6CA
+// 0.013454
+0x01B8DED7
+// 0.022114
+0x02D49E33
+// 0.029927
+0x03D4A80D
+// 0.035347
+0x04863EC3
+// 0.037551
+0x04CE7916
+// 0.041155
+0x054490C7
+// 0.019936
+0x028D42EA
+// -0.001869
+0xFFC2BDEB
+// -0.025733
+0xFCB4C403
+// -0.037077
+0xFB410F92
+// -0.029052
+0xFC4809EB
+// -0.007241
+0xFF12BA31
+// 0.021333
+0x02BB0D02
+// 0.039801
+0x0518328F
+// 0.038704
+0x04F4428A
+// 0.019075
+0x02710D95
+// -0.011378
+0xFE8B29DC
+// -0.034802
+0xFB8B9D17
+// -0.044116
+0xFA5A6623
+// -0.036293
+0xFB5AC380
+// -0.010099
+0xFEB510D5
+// 0.017562
+0x023F799C
+// 0.033423
+0x0447335D
+// 0.030378
+0x03E36DE4
+// 0.014451
+0x01D986BE
+// -0.008885
+0xFEDCDDC3
+// -0.029214
+0xFC42B6FE
+// -0.041914
+0xFAA28BD1
+// -0.035758
+0xFB6C4799
+// -0.012665
+0xFE60FFC8
+// 0.012046
+0x018ABADB
+// 0.027899
+0x03923015
+// 0.028523
+0x03A6A785
+// 0.011499
+0x0178CDC8
+// -0.014848
+0xFE1974A8
+// -0.034820
+0xFB8B0243
+// -0.042080
+0xFA9D2306
+// -0.030415
+0xFC1B597F
+// -0.007859
+0xFEFE7B5E
+// 0.020140
+0x0293F24B
+// 0.037788
+0x04D63BB6
+// 0.037243
+0x04C4620E
+// 0.022625
+0x02E56386
+// -0.000298
+0xFFF63CD0
+// 0.001271
+0x0029A57D
+// 0.004737
+0x009B3674
+// 0.010349
+0x01532191
+// 0.017010
+0x022D6600
+// 0.023021
+0x02F259E3
+// 0.027190
+0x037AF533
+// 0.028885
+0x03B28487
+// 0.028976
+0x03B57EFA
+// 0.029157
+0x03BB6D26
+// 0.031025
+0x03F89F0A
+// 0.039032
+0x04FEFC71
+// 0.023249
+0x02F9D2F5
+// 0.005898
+0x00C140C4
+// -0.017119
+0xFDCF0F6C
+// -0.031421
+0xFBFA639F
+// -0.028817
+0xFC4FB881
+// -0.012670
+0xFE60D287
+// 0.013102
+0x01AD5067
+// 0.032181
+0x041E814A
+// 0.034428
+0x04682430
+// 0.019096
+0x0271BD5E
+// -0.007444
+0xFF0C15A8
+// -0.029107
+0xFC463814
+// -0.040035
+0xFAE02066
+// -0.036766
+0xFB4B400D
+// -0.015549
+0xFE027E67
+// 0.009051
+0x0128953A
+// 0.025079
+0x0335C923
+// 0.025386
+0x033FDCE3
+// 0.014429
+0x01D8D19B
+// -0.004949
+0xFF5DD832
+// -0.024452
+0xFCDEBDD3
+// -0.039629
+0xFAED6F69
+// -0.038218
+0xFB1BAC21
+// -0.019776
+0xFD77F88E
+// 0.002231
+0x00491DE4
+// 0.018821
+0x0268B841
+// 0.023640
+0x0306A1A0
+// 0.011949
+0x01878941
+// -0.009390
+0xFECC4D70
+// -0.027380
+0xFC7ED2ED
+// -0.036024
+0xFB63917E
+// -0.028837
+0xFC4F111F
+// -0.011419
+0xFE89D555
+// 0.013343
+0x01B5354F
+// -0.000215
+0xFFF8F308
+// 0.000918
+0x001E13F7
+// 0.003421
+0x0070191B
+// 0.007475
+0x00F4ED94
+// 0.012285
+0x019290C7
+// 0.016626
+0x0220CF24
+// 0.019637
+0x02837833
+// 0.020862
+0x02AB989A
+// 0.020927
+0x02ADBF43
+// 0.021058
+0x02B207B8
+// 0.022407
+0x02DE39F9
+// 0.025607
+0x03471AAF
+// 0.030173
+0x03DCB309
+// 0.035214
+0x0481E3FF
+// 0.039701
+0x0514EF3B
+// 0.042510
+0x0570F862
+// 0.047222
+0x060B5EDE
+// 0.024559
+0x0324BF3A
+// 0.000324
+0x000AA10F
+// -0.027442
+0xFC7CC9A3
+// -0.041896
+0xFAA32592
+// -0.035046
+0xFB839A23
+// -0.012373
+0xFE6A901E
+// 0.018914
+0x026BC85C
+// 0.039776
+0x05175DF3
+// 0.039360
+0x0509C2E9
+// 0.018189
+0x025404FF
+// -0.015122
+0xFE107D2F
+// -0.041037
+0xFABF49B7
+// -0.051675
+0xF962B4A0
+// -0.044121
+0xFA5A4035
+// -0.016499
+0xFDE358EC
+// 0.013362
+0x01B5D98F
+// 0.030977
+0x03F7112F
+// 0.028202
+0x039C1C0B
+// 0.011254
+0x0170C204
+// -0.014428
+0xFE273A83
+// -0.037724
+0xFB2BE002
+// -0.052410
+0xF94A9E4B
+// -0.046125
+0xFA1895C0
+// -0.020279
+0xFD677ED2
+// 0.007981
+0x01058307
+// 0.027372
+0x0380ED21
+// 0.030210
+0x03DDEB3B
+// 0.013175
+0x01AFB43B
+// -0.014584
+0xFE2219CB
+// -0.000155
+0xFFFAEC6C
+// 0.000661
+0x0015A7F9
+// 0.002463
+0x0050B5EB
+// 0.005382
+0x00B05923
+// 0.008845
+0x0121D8E1
+// 0.011971
+0x01884339
+// 0.014139
+0x01CF4C4E
+// 0.015020
+0x01EC306F
+// 0.015068
+0x01EDBCE8
+// 0.015162
+0x01F0D25B
+// 0.016133
+0x0210A49F
+// 0.018437
+0x025C27B1
+// 0.021724
+0x02C7DD11
+// 0.025354
+0x033ECD1E
+// 0.028585
+0x03A8AC3F
+// 0.030607
+0x03EAF047
+// 0.031366
+0x0403CE84
+// 0.031396
+0x0404CBC6
+// 0.031532
+0x04093C27
+// 0.032322
+0x04231DD2
+// 0.034100
+0x045D607C
+// 0.036745
+0x04B40FFA
+// 0.039915
+0x051BF37A
+// 0.046464
+0x05F286BA
+// 0.025038
+0x03346F68
+// 0.001093
+0x0023D3CA
+// -0.027743
+0xFC72E7F6
+// -0.044090
+0xFA5B4144
+// -0.039087
+0xFAFF30A5
+// -0.017776
+0xFDB984AF
+// 0.013214
+0x01B0FE67
+// 0.034929
+0x04788FDF
+// 0.035803
+0x04953322
+// 0.015715
+0x0202F066
+// -0.017435
+0xFDC4AFB5
+// -0.044264
+0xFA559157
+// -0.056678
+0xF8BEC79C
+// -0.050986
+0xF9794D0E
+// -0.024213
+0xFCE69AC1
+// 0.005998
+0x00C488BC
+// 0.025237
+0x033AF69A
+// 0.024821
+0x032D540C
+// 0.010143
+0x014C5C96
+// -0.014358
+0xFE29868E
+// -0.037755
+0xFB2AD814
+// -0.053858
+0xF91B2A82
+// -0.000143
+0xFFFB4CB0
+// 0.000612
+0x00140D4F
+// 0.002281
+0x004ABB67
+// 0.004983
+0x00A3490D
+// 0.008190
+0x010C6085
+// 0.011084
+0x016B34C3
+// 0.013091
+0x01ACFACD
+// 0.013908
+0x01C7BB12
+// 0.013952
+0x01C92A2C
+// 0.014039
+0x01CC0525
+// 0.014938
+0x01E97BFB
+// 0.017072
+0x022F671F
+// 0.020115
+0x02932206
+// 0.023476
+0x030142AA
+// 0.026468
+0x03634A27
+// 0.028340
+0x03A0A597
+// 0.029043
+0x03B7AC41
+// 0.029071
+0x03B896C1
+// 0.029196
+0x03BCB2F4
+// 0.029927
+0x03D4A9D6
+// 0.031574
+0x040A9BB6
+// 0.034023
+0x045ADF63
+// 0.036959
+0x04BB10DA
+// 0.039579
+0x0510EF9A
+// 0.041169
+0x05450526
+// 0.045403
+0x05CFC21E
+// 0.021954
+0x02CF6526
+// -0.002868
+0xFFA2066A
+// -0.031091
+0xFC0538AE
+// -0.045570
+0xFA2AC4C7
+// -0.038513
+0xFB11FDFF
+// -0.015973
+0xFDF49B5E
+// 0.014877
+0x01E77B85
+// 0.035124
+0x047EF10A
+// 0.033787
+0x04532170
+// 0.011714
+0x017FD7B6
+// -0.022120
+0xFD2B2DB7
+// -0.048137
+0xF9D6A255
+// -0.058509
+0xF882C9D5
+// -0.050500
+0xF9893A0E
+// -0.022071
+0xFD2CC9A5
+// 0.008453
+0x0114FD9F
+// 0.026370
+0x036018E7
+// 0.023812
+0x030C42F5
+// 0.007192
+0x00EBAA58
+// -0.018122
+0xFDAE2CF3
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Refs1_q31.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Refs1_q31.txt
index a7919a1..464631b 100755
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Refs1_q31.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Refs1_q31.txt
@@ -1,514 +1,514 @@
 W
 256
-// -0.290999
-0xDAC08F9D
-// 0.247813
-0x1FB85369
-// -0.633415
-0xAEEC400F
-// -0.083437
-0xF551F390
-// -0.487630
-0xC1955513
-// 0.887883
-0x71A625F2
-// -0.502401
-0xBFB15387
-// 0.113910
-0x0E949DBB
-// 0.403747
-0x33ADFB67
-// 0.213615
-0x1B57BD81
-// -0.295296
-0xDA33C036
-// 0.165042
-0x15201B7A
-// 0.094004
-0x0C085052
-// -0.523535
-0xBCFCCF9C
-// 0.523434
-0x42FFE3D3
-// 0.400682
-0x33498BE0
-// -0.245045
-0xE0A25ABA
-// -0.090595
-0xF4675F10
-// 0.367288
-0x2F034E25
-// 0.293950
-0x25A02571
-// 0.060985
-0x07CE5D8D
-// 0.237362
-0x1E61DDAD
-// 0.823654
-0x696D7A5D
-// -0.159996
-0xEB853CA3
-// 0.414541
-0x350FAFBD
-// 0.457657
-0x3A948262
-// 0.123887
-0x0FDB8B15
-// 0.297206
-0x260AD4D4
-// -0.257437
-0xDF0C4FDC
-// 0.402252
-0x337CFB90
-// 0.226231
-0x1CF522E8
-// 0.345786
-0x2C42B9B9
-// -0.036744
-0xFB4BF7E7
-// -0.341594
-0xD446A41C
-// -0.582858
-0xB564EC22
-// -0.099472
-0xF3448294
-// 0.671430
-0x55F169EA
-// -0.569941
-0xB70C29E4
-// -0.190371
-0xE7A1EC97
-// -0.150301
-0xECC2F237
-// 0.118410
-0x0F280D6D
-// -0.284732
-0xDB8DE6B9
-// -0.239375
-0xE15C2AA6
-// 0.421846
-0x35FF0FB9
-// 0.174603
-0x165960C9
-// -0.428704
-0xC92036D5
-// 0.631152
-0x50C998A7
-// 0.449126
-0x397CF22E
-// 0.473101
-0x3C8E95CB
-// -0.140057
-0xEE129A7B
-// 0.214776
-0x1B7DC88E
-// 0.110038
-0x0E15BB61
-// -0.279240
-0xDC41DF6C
-// 0.266584
-0x221F6BAE
-// 0.012026
-0x018A10F7
-// -0.398738
-0xCCF62AE5
-// -0.436321
-0xC826A446
-// -0.148741
-0xECF60F00
-// 0.189819
-0x184C00BD
-// -0.140357
-0xEE08C87F
-// 0.780842
-0x63F2A505
-// -0.749284
-0xA0177779
-// -0.259831
-0xDEBDDB57
-// -0.626381
-0xAFD2BD1C
-// 0.456958
-0x3A7D9A9D
-// 0.622431
-0x4FABD0CD
-// 0.110169
-0x0E1A03C0
-// 0.095593
-0x0C3C6010
-// 0.563219
-0x48178FF5
-// 0.889934
-0x71E95B2A
-// -0.087209
-0xF4D6549A
-// 0.043950
-0x05A0299E
-// -0.026776
-0xFC9297A0
-// -0.168829
-0xEA63CD89
-// 0.493967
-0x3F3A4FA1
-// 0.120080
-0x0F5EC893
-// 0.142034
-0x122E2A59
-// 0.164100
-0x150138F1
-// -0.773022
-0x9D0D9AB4
-// -0.033100
-0xFBC36098
-// -0.349739
-0xD33BBDEC
-// 0.118753
-0x0F334D9A
-// -0.270618
-0xDD5C6379
-// -0.047693
-0xF9E53506
-// -0.337214
-0xD4D62B18
-// -0.198665
-0xE69224BE
-// -0.125124
-0xEFFBEE3A
-// 0.224230
-0x1CB39379
-// 0.432191
-0x375209B0
-// 0.014155
-0x01CFD4B3
-// 0.268240
-0x2255AFB6
-// -0.397226
-0xCD27B6F9
-// 0.123778
-0x0FD7F786
-// 0.086208
-0x0B08E0F5
-// 0.510455
-0x415699D3
-// 0.222523
-0x1C7BA204
-// -0.130113
-0xEF5873AF
-// -0.456576
-0xC58EEC77
-// 0.350575
-0x2CDFA497
-// 0.255128
-0x20A806FB
-// -0.762022
-0x9E76102A
-// -0.126291
-0xEFD5B581
-// -0.452020
-0xC6243346
-// -0.198341
-0xE69CC2EA
-// 0.110861
-0x0E30AEDA
-// -0.637907
-0xAE590C86
-// -0.475874
-0xC316925D
-// 0.718924
-0x5C05B374
-// -0.184674
-0xE85C9C96
-// 0.124102
-0x0FE29239
-// -0.141280
-0xEDEA86C4
-// 0.087779
-0x0B3C5B2D
-// 0.554818
-0x4704453C
-// -0.053145
-0xF9328C61
-// 0.333278
-0x2AA8D6A1
-// 0.357480
-0x2DC1EB5A
-// 0.125345
-0x100B5240
-// 0.893719
-0x726565F6
-// -0.414323
-0xCAF7748A
-// -0.031497
-0xFBF7E796
-// 0.144880
-0x128B69A1
-// -0.048652
-0xF9C5C2BD
-// -0.238693
-0xE1728110
-// 0.524897
-0x432FD05E
-// -0.169571
-0xEA4B807A
-// 0.673756
-0x563DA162
-// 0.257989
-0x2105CC97
-// 0.520674
-0x42A572CE
-// -0.198637
-0xE6931238
-// -0.646701
-0xAD38E493
-// -0.119709
-0xF0AD5EBC
-// 0.836682
-0x6B18623C
-// 0.076414
-0x09C7EF41
-// -0.058270
-0xF88A9C49
-// 0.203603
-0x1A0FAD30
-// 0.297821
-0x261EFCBF
-// 0.259654
-0x213C58F7
-// -0.891952
-0x8DD48668
-// -0.406039
-0xCC06EDE9
-// -0.139822
-0xEE1A513B
-// -0.152588
-0xEC77FF66
-// 0.527717
-0x438C3AE9
-// 0.034101
-0x045D688F
-// -0.603697
-0xB2BA11BE
-// 0.568173
-0x48B9E47F
-// 0.147430
-0x12DEFD75
-// -0.111915
-0xF1ACC33D
-// -0.080120
-0xF5BE9D4C
-// -0.410798
-0xCB6AFA2E
-// -0.301842
-0xD95D3CD7
-// 0.510000
-0x4147AE65
-// 0.089060
-0x0B66539A
-// 0.640919
-0x5209A1C0
-// -0.282184
-0xDBE166E6
-// -0.203577
-0xE5F132DA
-// 0.204517
-0x1A2D9C0C
-// -0.329284
-0xD5DA07B0
-// -0.019334
-0xFD86756D
-// 0.086878
-0x0B1ED14C
-// 0.239720
-0x1EAF27A4
-// 0.053699
-0x06DF9E34
-// 0.297174
-0x2609CCD5
-// 0.849315
-0x6CB65C1C
-// -0.434439
-0xC8644EFE
-// 0.314794
-0x284B2815
-// 0.205519
-0x1A4E6F7D
-// -0.203388
-0xE5F764E3
-// 0.685100
-0x57B15F58
-// 0.624388
-0x4FEBEE36
-// 0.655716
-0x53EE822A
-// -0.442026
-0xC76BB2B4
-// 0.302062
-0x26A9F3BC
-// 0.426669
-0x369D16FD
-// -0.027578
-0xFC785161
-// -0.541978
-0xBAA075B7
-// -0.990708
-0x81307A15
-// -0.041550
-0xFAAE7CD5
-// -0.753501
-0x9F8D446D
-// -0.389500
-0xCE24DFA1
-// 0.586935
-0x4B20ADA5
-// 0.354024
-0x2D50AACE
-// 0.464755
-0x3B7D1510
-// -0.538348
-0xBB176B5E
-// -0.536298
-0xBB5A98E0
-// -0.331969
-0xD5820751
-// 0.563481
-0x48202403
-// 0.835394
-0x6AEE2D76
-// 0.288994
-0x24FDBEEB
-// 0.347329
-0x2C7547C9
-// -0.424064
-0xC9B84762
-// -0.402148
-0xCC8666C3
-// 0.274823
-0x232D65D1
-// 0.038468
-0x04EC84D3
-// 0.189398
-0x183E358E
-// -0.673277
-0xA9D21186
-// 0.532906
-0x44364066
-// 0.506586
-0x40D7CC4D
-// -0.004876
-0xFF603854
-// 0.571911
-0x49345EF5
-// 0.468712
-0x3BFEC30A
-// -0.456237
-0xC59A0943
-// 0.036725
-0x04B36518
-// -1.000000
-0x80000000
-// -0.519268
-0xBD889C20
-// 0.138030
-0x11AAF830
-// -0.295338
-0xDA325C1F
-// -0.051272
-0xF96FEAAD
-// -0.752673
-0x9FA86A3B
-// -0.726816
-0xA2F7AF9E
-// 0.606363
-0x4D9D4BA8
-// 0.236464
-0x1E4472F1
-// -0.028089
-0xFC67918C
-// 0.495107
-0x3F5FA7C6
-// -0.669453
-0xAA4F60C9
-// 0.377245
-0x30498C7A
-// -0.077272
-0xF61BF441
-// -0.258524
-0xDEE8AF9D
-// 0.081229
-0x0A65B769
-// -0.194883
-0xE70E13F3
-// -0.514645
-0xBE201CAA
-// 0.860961
-0x6E33FBB8
-// 0.145633
-0x12A4199E
-// 0.469461
-0x3C174BFB
-// -0.133924
-0xEEDB90B6
-// -0.120895
-0xF08680EC
-// 0.123718
-0x0FD5FCAF
-// -0.412700
-0xCB2CA681
-// 0.594371
-0x4C145675
-// -0.492262
-0xC0FD8CBC
-// 0.227816
-0x1D2910F8
-// 0.780272
-0x63DFF79C
-// -0.239963
-0xE148E1A5
-// -0.113227
-0xF181C78E
-// -0.001159
-0xFFDA02EF
-// -0.127469
-0xEFAF1A03
-// 0.335827
-0x2AFC6241
-// 0.082734
-0x0A970510
-// -0.300844
-0xD97DEF25
-// 0.238464
-0x1E85F971
-// -0.253641
-0xDF88B31A
-// 0.277879
-0x239185F8
-// 0.017983
-0x024D4168
-// 0.231754
-0x1DAA1FB4
-// -0.102992
-0xF2D124BC
-// -0.347271
-0xD38C9E11
-// 0.935420
-0x77BBDB28
-// 0.196820
-0x19316920
-// 0.274074
-0x2314D9C0
-// 0.320161
-0x28FB08A9
-// -0.334849
-0xD523AB33
-// -0.387995
-0xCE562AA6
-// -0.757230
-0x9F13168A
-// -0.848555
-0x93628D54
-// 0.124670
-0x0FF52BA1
-// -0.346439
-0xD3A7E264
-// 0.524834
-0x432DC27A
+// 0.318792
+0x28CE2C85
+// 0.355892
+0x2D8DDC2E
+// 0.509237
+0x412EAC98
+// 0.972451
+0x7C794268
+// -0.047538
+0xF9EA44CD
+// 0.080648
+0x0A52ABFA
+// 0.080417
+0x0A4B19D5
+// -0.520268
+0xBD67D815
+// -0.076531
+0xF6343A6E
+// 0.553934
+0x46E751F7
+// -0.065097
+0xF7AAE6FE
+// -0.093955
+0xF3F947A0
+// 0.149087
+0x13154921
+// 0.040793
+0x0538B562
+// -0.006496
+0xFF2B2515
+// 0.195221
+0x18FCFD07
+// -0.046955
+0xF9FD5DEC
+// -0.628609
+0xAF89C071
+// 0.380290
+0x30AD5A91
+// -0.391247
+0xCDEB9A1A
+// 0.543498
+0x45915BA7
+// -0.134484
+0xEEC93954
+// -0.026919
+0xFC8DED4A
+// 0.005746
+0x00BC4607
+// -0.131694
+0xEF24A9B3
+// 0.018702
+0x0264D4BC
+// -0.518502
+0xBDA1B81F
+// 0.357565
+0x2DC4AD32
+// 0.142519
+0x123E1325
+// -0.061524
+0xF81FFBAD
+// -0.030725
+0xFC1136B3
+// -0.200641
+0xE651612C
+// 0.020751
+0x02A7F6CD
+// -0.690029
+0xA7AD21F2
+// 0.260089
+0x214A961E
+// -0.291645
+0xDAAB644C
+// 0.072545
+0x09492B65
+// 0.038883
+0x04FA1C28
+// 0.022348
+0x02DC4A78
+// 0.543906
+0x459EB986
+// 0.091369
+0x0BB1F868
+// 0.621392
+0x4F89C1D3
+// 0.370764
+0x2F753449
+// 0.002542
+0x00534800
+// -0.202654
+0xE60F6EFB
+// -0.237223
+0xE1A2AD88
+// -0.060535
+0xF8406614
+// 0.244763
+0x1F5466E2
+// -0.333020
+0xD55F966D
+// 0.262437
+0x219786CE
+// 0.371818
+0x2F97B8DC
+// 0.026623
+0x0368620B
+// -0.326722
+0xD62DF91F
+// -0.239730
+0xE1508931
+// -0.893583
+0x8D9F0F42
+// -0.118338
+0xF0DA4AF7
+// -0.377902
+0xCFA0E9D4
+// 0.163476
+0x14ECCC2C
+// -0.153404
+0xEC5D452F
+// -0.274684
+0xDCD7260B
+// 0.220104
+0x1C2C6113
+// 0.675106
+0x5669E170
+// -0.143508
+0xEDA1849A
+// 0.223327
+0x1C95FCBA
+// 0.951364
+0x79C64B4F
+// 0.326140
+0x29BEF435
+// -0.497013
+0xC061E195
+// 0.119191
+0x0F41A9AF
+// -0.161819
+0xEB498284
+// 0.411921
+0x34B9D1C1
+// -0.306741
+0xD8BCB2E9
+// 0.041083
+0x054231C4
+// 0.279631
+0x23CAF38E
+// 0.486012
+0x3E35A19B
+// -0.012303
+0xFE6CD9AD
+// -0.267154
+0xDDCDE273
+// -0.128553
+0xEF8B95B8
+// -0.283168
+0xDBC1270D
+// 0.067229
+0x089AF3EB
+// 0.221579
+0x1C5CB183
+// -0.269728
+0xDD798E0C
+// 0.121100
+0x0F80313D
+// -0.447949
+0xC6A9981E
+// -0.469404
+0xC3EA95CC
+// -0.208808
+0xE545C7D5
+// -0.210400
+0xE511A043
+// -0.003984
+0xFF7D740C
+// -0.207223
+0xE579B77A
+// -0.169553
+0xEA4C13A9
+// -0.093993
+0xF3F8096C
+// -0.402534
+0xCC79C2E4
+// 0.138235
+0x11B1B240
+// 0.139373
+0x11D6FA93
+// 0.337111
+0x2B2673B4
+// 0.139137
+0x11CF3B13
+// -0.124684
+0xF00A5E53
+// -0.329999
+0xD5C2946A
+// 0.241729
+0x1EF0F8FC
+// -0.228385
+0xE2C44A6B
+// -0.191805
+0xE772EF65
+// -0.090866
+0xF45E7CA3
+// 0.215599
+0x1B98C1BD
+// -0.361784
+0xD1B10F58
+// -0.448905
+0xC68A4BAD
+// -0.381361
+0xCF2F9367
+// -0.016030
+0xFDF2B741
+// 0.459950
+0x3ADFA18B
+// 0.004709
+0x009A5208
+// 0.143292
+0x125763D3
+// 0.238796
+0x1E90DD8D
+// -0.027755
+0xFC7282BF
+// -0.047671
+0xF9E5EA06
+// -0.288511
+0xDB120F54
+// 0.098529
+0x0C9C95E9
+// 0.505441
+0x40B24A62
+// -0.454190
+0xC5DD172A
+// -0.251903
+0xDFC1A6B0
+// -0.014901
+0xFE17BCB3
+// 0.375505
+0x30108854
+// -0.060391
+0xF8451DBA
+// -0.125976
+0xEFE003DE
+// 0.274750
+0x232B0313
+// -0.068768
+0xF73298A3
+// -0.500624
+0xBFEB8FAE
+// 0.626748
+0x5039445A
+// -0.252980
+0xDF9E5B49
+// 0.231954
+0x1DB0A8B7
+// -0.157035
+0xEBE648BB
+// 0.704876
+0x5A39615A
+// -0.351668
+0xD2FC8EBA
+// -0.406346
+0xCBFCD9C0
+// 0.382554
+0x30F785E0
+// 0.171954
+0x160293D5
+// 0.398114
+0x32F56A5F
+// -0.490370
+0xC13B9081
+// -0.069969
+0xF70B3F3A
+// -0.483691
+0xC21667FC
+// -0.267384
+0xDDC65F2B
+// -0.307292
+0xD8AAA95E
+// 0.217340
+0x1BD1CE59
+// -0.303052
+0xD9359998
+// 0.159516
+0x146B010D
+// -0.467404
+0xC42C1A3D
+// -0.031365
+0xFBFC3D51
+// -0.145978
+0xED50966F
+// 0.538691
+0x44F3D118
+// -0.385024
+0xCEB78A00
+// 0.119358
+0x0F47206A
+// 0.422822
+0x361F05B6
+// -0.243623
+0xE0D0F90D
+// 0.167105
+0x1563B3F5
+// -0.018210
+0xFDAB4F13
+// 0.401168
+0x33597828
+// -0.536451
+0xBB559492
+// 0.388758
+0x31C2D40F
+// 0.682780
+0x57655977
+// -0.079328
+0xF5D8936B
+// -0.393978
+0xCD921DF4
+// -0.180816
+0xE8DB04FD
+// -0.243496
+0xE0D51E00
+// -0.196803
+0xE6CF2891
+// 0.729210
+0x5D56BCE0
+// -0.504641
+0xBF67EB2C
+// -0.462405
+0xC4CFEB30
+// -0.078198
+0xF5FD9EE6
+// 0.256214
+0x20CB9E01
+// 0.341106
+0x2BA96018
+// 0.121026
+0x0F7DC37F
+// 0.034522
+0x046B38ED
+// -0.228319
+0xE2C671F4
+// -0.974678
+0x833DBD70
+// 0.644837
+0x528A0197
+// 0.003872
+0x007EE0E8
+// 0.406253
+0x34001A6E
+// -0.479916
+0xC2921C6B
+// 0.120157
+0x0F614B76
+// 0.024745
+0x032ADC44
+// -0.080050
+0xF5C0E962
+// 0.064607
+0x0845092A
+// 0.713743
+0x5B5BEDAB
+// 0.294789
+0x25BBA932
+// 0.269878
+0x228B5C46
+// 0.186139
+0x17D36723
+// -0.177576
+0xE9452F75
+// 0.249994
+0x1FFFCF1A
+// 0.301964
+0x26A6BECF
+// 0.068784
+0x08CDEB96
+// -0.115375
+0xF13B66FB
+// -0.012351
+0xFE6B4A7D
+// -0.261759
+0xDE7EAE28
+// 0.280352
+0x23E2912C
+// -0.024418
+0xFCDFDB60
+// -0.410007
+0xCB84E47B
+// 0.443854
+0x38D032F9
+// -0.536522
+0xBB53436B
+// -0.546273
+0xBA13B904
+// -0.068735
+0xF733AE9F
+// 0.370948
+0x2F7B3CC6
+// -0.103889
+0xF2B3BFE6
+// -0.446893
+0xC6CC3789
+// 0.152930
+0x139331E1
+// -0.242738
+0xE0EDFA08
+// -0.616321
+0xB11C687F
+// 0.754029
+0x608401D2
+// -0.039609
+0xFAEE1478
+// 0.160136
+0x147F545F
+// -0.600897
+0xB315CE6C
+// -0.030990
+0xFC088333
+// -0.060152
+0xF84CED3E
+// -0.404207
+0xCC42F5B4
+// 0.073277
+0x09612383
+// -0.054887
+0xF8F973CB
+// -0.590393
+0xB46E0227
+// 0.025356
+0x033EE004
+// 1.000000
+0x7FFFFFFF
+// 0.059429
+0x079B5F7C
+// 0.322314
+0x2941934B
+// -0.115707
+0xF13084DC
+// 0.409539
+0x346BC361
+// -0.025807
+0xFCB25C94
+// 0.362932
+0x2E748AB9
+// -0.567911
+0xB74EB3AD
+// -0.060082
+0xF84F3B40
+// 0.087034
+0x0B23EEC4
+// -0.127226
+0xEFB70D40
+// 0.317758
+0x28AC4CDB
+// 0.409474
+0x3469A7C4
+// -0.587376
+0xB4D0E0A9
+// 0.181397
+0x173807A2
+// -0.172016
+0xE9FB5EA3
+// -0.269476
+0xDD81CE43
+// 0.229599
+0x1D637D5E
+// 0.113459
+0x0E85D1EA
+// 0.364037
+0x2E98C0C0
+// 0.007275
+0x00EE627D
+// 0.212327
+0x1B2D859A
+// 0.004475
+0x0092A155
+// -0.018654
+0xFD9CBADA
+// 0.092883
+0x0BE3940E
+// -0.208761
+0xE54754BD
+// -0.376214
+0xCFD83724
+// 0.044825
+0x05BCD5C2
+// -0.107961
+0xF22E561D
+// 0.094575
+0x0C1B08EA
+// 0.749913
+0x5FFD269E
+// -0.130380
+0xEF4FB6B0
+// 0.475601
+0x3CE07E7F
+// 0.168657
+0x159690B8
+// -0.277903
+0xDC6DAA14
+// -0.219916
+0xE3D9CE1B
+// -0.090561
+0xF4687E12
+// -0.106416
+0xF260F351
+// -0.151366
+0xECA00BDF
+// 0.215764
+0x1B9E23E2
+// 0.076176
+0x09C02062
+// -0.045964
+0xFA1DDBAC
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Samples1_q31.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Samples1_q31.txt
index 022f09a..0a629d9 100755
--- a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Samples1_q31.txt
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ31/Samples1_q31.txt
@@ -1,514 +1,514 @@
 W
 256
-// -0.187504
-0xE7FFDA5C
-// 0.179894
-0x1706C338
-// 0.522862
-0x42ED274D
-// 0.180777
-0x1723B3A9
-// 0.171101
-0x15E6A05C
-// -0.317926
-0xD74E33FB
-// 0.059723
-0x07A4FF8B
-// -0.080292
-0xF5B8FE50
-// 0.196059
-0x19187233
-// 0.456080
-0x3A60D61B
-// -0.500326
-0xBFF54EC1
-// -0.941293
-0x8783B84B
-// -0.460783
-0xC5051028
-// 0.865382
-0x6EC4DA7E
-// -0.963673
-0x84A65A3E
-// 0.521704
-0x42C734DC
-// -0.165717
-0xEAC9C8D5
-// 0.114482
-0x0EA75A9B
-// -0.024893
-0xFCD051BE
-// -0.122227
-0xF05ADBF8
-// 0.333094
-0x2AA2CF47
-// 0.077345
-0x09E67111
-// -0.374084
-0xD01E0327
-// 0.182344
-0x1757094D
-// -0.424219
-0xC9B33033
-// -0.533923
-0xBBA86A47
-// -0.060271
-0xF8490645
-// -0.011567
-0xFE84F964
-// 0.085137
-0x0AE5C855
-// -0.080960
-0xF5A31701
-// 0.327283
-0x29E46B92
-// 0.122152
-0x0FA2B16A
-// -0.059551
-0xF860A5B9
-// -0.079014
-0xF5E2DC02
-// -0.023689
-0xFCF7C1EB
-// 0.080496
-0x0A4DB54C
-// -0.221892
-0xE3990E5E
-// 0.109268
-0x0DFC7E33
-// 0.177603
-0x16BBB479
-// -0.164773
-0xEAE8BA1F
-// 0.738845
-0x5E92767E
-// 0.168668
-0x1596EB51
-// 0.189742
-0x18497651
-// 0.293189
-0x258735F3
-// 0.840622
-0x6B997C9F
-// -0.387805
-0xCE5C651D
-// -0.401322
-0xCCA17B4F
-// -0.280959
-0xDC098893
-// 0.018689
-0x02646772
-// 0.018583
-0x0260EBEA
-// 0.011424
-0x01765B00
-// 0.515301
-0x41F56329
-// 0.084353
-0x0ACC132E
-// 0.193707
-0x18CB6016
-// 0.213698
-0x1B5A7562
-// -0.166127
-0xEABC5648
-// 0.435732
-0x37C61262
-// 0.525275
-0x433C32D6
-// -0.247236
-0xE05A9565
-// 0.200873
-0x19B63409
-// 0.052964
-0x06C78A0F
-// 0.063377
-0x081CBA54
-// -0.509175
-0xBED35C29
-// -0.107559
-0xF23B8281
-// 0.349738
-0x2CC436D6
-// 0.350458
-0x2CDBCF6F
-// 0.259320
-0x21316498
-// 0.522482
-0x42E0B483
-// -0.395313
-0xCD66621F
-// -0.830503
-0x95B212F0
-// 0.163817
-0x14F7F5B3
-// -0.023426
-0xFD006497
-// -0.493312
-0xC0DB288B
-// -0.839115
-0x9497DF11
-// -0.144323
-0xED86D61A
-// 0.156898
-0x14153E8C
-// 0.185455
-0x17BD00C9
-// 0.213957
-0x1B62F49A
-// 0.217578
-0x1BD9974B
-// -0.141146
-0xEDEEEC71
-// 0.514274
-0x41D3B77D
-// -0.385550
-0xCEA64963
-// 0.002038
-0x0042C928
-// -0.032666
-0xFBD19B4D
-// -0.430324
-0xC8EB224A
-// -0.906646
-0x8BF30450
-// 0.255061
-0x20A5DA6B
-// 0.437902
-0x380D2869
-// 0.151314
-0x135E4028
-// -0.479798
-0xC295FC91
-// 0.355527
-0x2D81E902
-// 0.211055
-0x1B03DC38
-// -0.030632
-0xFC143E7B
-// 0.166395
-0x154C6DC7
-// -0.197743
-0xE6B05884
-// 0.103269
-0x0D37E8E7
-// -0.606647
-0xB25966D9
-// -0.766773
-0x9DDA62F8
-// 0.197393
-0x19442E80
-// 0.014769
-0x01E3F12A
-// -0.643162
-0xADACE220
-// 0.097556
-0x0C7CBB30
-// -0.034053
-0xFBA4243F
-// -0.443724
-0xC7340A67
-// -0.395047
-0xCD6F1B91
-// 0.572077
-0x4939D306
-// -0.307502
-0xD8A3C5DD
-// 0.048539
-0x06368586
-// -0.455492
-0xC5B26D98
-// 0.508282
-0x410F5EC7
-// -0.014362
-0xFE2965FE
-// -0.035818
-0xFB6A53A6
-// 0.157304
-0x14228811
-// 0.021223
-0x02B7717E
-// -0.222632
-0xE380CA4A
-// -0.366804
-0xD10C9081
-// -0.311890
-0xD813FF44
-// 0.320675
-0x290BE40D
-// 0.274859
-0x232E90E6
-// -0.114629
-0xF153D54F
-// 0.097318
-0x0C74E93B
-// -0.095613
-0xF3C2F544
-// -0.089896
-0xF47E47F9
-// 0.261934
-0x21870A07
-// 0.040035
-0x051FDB7A
-// 0.088170
-0x0B492422
-// -0.531835
-0xBBECD64F
-// -0.313839
-0xD7D42339
-// 0.180318
-0x1714A78D
-// 0.317720
-0x28AB0B50
-// 0.141137
-0x1210C8CF
-// 0.344827
-0x2C234AE8
-// -0.380058
-0xCF5A40D0
-// 0.059098
-0x079083AA
-// -0.533113
-0xBBC2F46D
-// 0.769393
-0x627B7651
-// -0.040346
-0xFAD5F3E2
-// -0.099141
-0xF34F58CD
-// 0.465021
-0x3B85CB29
-// -0.521109
-0xBD4C4FFA
-// 0.316055
-0x28748137
-// 0.057907
-0x07697FDB
-// -0.398292
-0xCD04C43B
-// -0.509252
-0xBED0D41E
-// 0.004534
-0x0094909C
-// -0.159001
-0xEBA5DB69
-// -0.420865
-0xCA211B98
-// -0.396938
-0xCD311FF9
-// -0.430988
-0xC8D55F61
-// -0.010160
-0xFEB317AB
-// 0.561500
-0x47DF3E3A
-// -0.163312
-0xEB18986A
-// -0.104813
-0xF2957B80
-// 0.131441
-0x10D31235
-// -0.645631
-0xAD5BF6CD
-// -0.405027
-0xCC281224
-// 0.950590
-0x79ACEF2E
-// 0.368599
-0x2F2E4301
-// -0.113468
-0xF179E562
-// -0.157986
-0xEBC71C35
-// 0.308565
-0x277F0C5B
-// -0.147278
-0xED25FED6
-// -0.273812
-0xDCF3B65D
-// -0.178739
-0xE91F16C8
-// -0.318378
-0xD73F62DE
-// -0.327720
-0xD60D46DE
-// -0.013568
-0xFE436930
-// -0.221603
-0xE3A286A3
-// -0.209931
-0xE520F75A
-// -0.127088
-0xEFBB9631
-// 0.145812
-0x12A9FBE2
-// -0.089498
-0xF48B5882
-// -0.548365
-0xB9CF2938
-// -0.349320
-0xD349796A
-// 0.458303
-0x3AA9A9DF
-// 0.048980
-0x0644FC95
-// 0.434680
-0x37A39611
-// -0.208651
-0xE54AED7F
-// -0.097032
-0xF39478C1
-// -0.182640
-0xE89F3EA2
-// -0.062724
-0xF7F8A80A
-// 0.156692
-0x140E7953
-// -0.071409
-0xF6DC138E
-// -0.170471
-0xEA2E0366
-// 0.010707
-0x015ED5BD
-// 0.802447
-0x66B69565
-// 0.215713
-0x1B9C7AD0
-// 0.086418
-0x0B0FC122
-// -0.208315
-0xE555EB48
-// -0.365338
-0xD13C9EC4
-// 0.245770
-0x1F756397
-// -0.336169
-0xD4F86CA5
-// 0.787950
-0x64DB8C05
-// 0.183962
-0x178C133B
-// 0.352919
-0x2D2C73F9
-// 0.142383
-0x123998D0
-// 0.254519
-0x20941179
+// 0.086483
+0x0B11E26E
+// 0.364884
+0x2EB4882C
+// -0.028902
+0xFC4CEF54
+// 0.064461
+0x084040B1
+// -0.188671
+0xE7D9A031
+// 0.387011
+0x3189940F
+// 0.470994
+0x3C4988D9
+// -0.059618
+0xF85E7418
+// -0.476857
+0xC2F659F2
+// -0.162245
+0xEB3B8B21
+// -0.199446
+0xE6788E7A
+// 0.453791
+0x3A15D433
+// -0.004007
+0xFF7CB444
+// -0.320598
+0xD6F6A322
+// 0.318306
+0x28BE443B
+// -0.041522
+0xFAAF6A9B
+// -0.315003
+0xD7ADFEAA
+// -0.110528
+0xF1DA37FB
+// 0.054911
+0x07075517
+// -0.178368
+0xE92B3C84
+// 0.120731
+0x0F741D55
+// 0.257903
+0x2102F605
+// 0.006678
+0x00DAD128
+// 0.014240
+0x01D2A0EE
+// 0.337508
+0x2B33739A
+// 0.301918
+0x26A53F0D
+// 0.020032
+0x02906B65
+// 0.149695
+0x13293146
+// 0.091548
+0x0BB7D9A6
+// 0.061513
+0x07DFA61C
+// -0.587206
+0xB4D672EB
+// 0.121427
+0x0F8AE7F1
+// 0.196432
+0x1924AD68
+// -0.114422
+0xF15A9F86
+// -0.218271
+0xE40FB5E1
+// -0.914360
+0x8AF642D7
+// 0.008361
+0x0111FA9B
+// -0.199898
+0xE669BC6F
+// -0.086710
+0xF4E6B388
+// -0.316448
+0xD77EA419
+// 0.235850
+0x1E3057C4
+// 0.233482
+0x1DE2B9C6
+// 0.120952
+0x0F7B5BF0
+// -0.151460
+0xEC9CF7B5
+// 0.163249
+0x14E55A29
+// -0.012669
+0xFE60DB19
+// -0.303109
+0xD933B5AC
+// -0.291034
+0xDABF67DB
+// -0.252311
+0xDFB44313
+// -0.161439
+0xEB55F398
+// -0.322925
+0xD6AA664C
+// 0.077614
+0x09EF412E
+// 0.122465
+0x0FACEE85
+// 0.152544
+0x13868CDB
+// 0.070147
+0x08FA973D
+// 0.301400
+0x26944396
+// 0.212992
+0x1B434F3A
+// -0.276234
+0xDCA45A77
+// -0.216857
+0xE43E093B
+// -0.275518
+0xDCBBD263
+// 0.279455
+0x23C5329A
+// 0.415563
+0x35312B9E
+// 0.602844
+0x4D29FC46
+// 0.202997
+0x19FBCBFE
+// -0.205202
+0xE5BBECF9
+// 0.272222
+0x22D82F8F
+// 0.203890
+0x1A190FF2
+// 0.357144
+0x2DB6E334
+// 0.132016
+0x10E5E27C
+// -0.025156
+0xFCC7AE01
+// -0.289019
+0xDB016D61
+// -0.085835
+0xF5035A6B
+// 0.066969
+0x0892722C
+// -0.041578
+0xFAAD92E4
+// 0.096282
+0x0C52F661
+// 0.518954
+0x426D13F2
+// -0.138980
+0xEE35E47E
+// 0.083678
+0x0AB5F3A8
+// 0.321397
+0x2923888E
+// -0.316074
+0xD78AE3EF
+// -0.176527
+0xE9678C96
+// -0.003114
+0xFF99F3A3
+// 0.337096
+0x2B25F596
+// 0.332147
+0x2A83CCEE
+// 0.374116
+0x2FE3088C
+// -0.209395
+0xE5328E7D
+// 0.610664
+0x4E2A3A84
+// 0.674137
+0x564A20F7
+// -0.308887
+0xD8766248
+// -0.243771
+0xE0CC1FE3
+// 0.475059
+0x3CCEBD07
+// 0.009062
+0x0128F259
+// -0.145022
+0xED6FEF3D
+// 0.053124
+0x06CCC798
+// 0.277277
+0x237DD25E
+// -0.319965
+0xD70B651B
+// -0.147044
+0xED2DA71E
+// 0.049445
+0x0654363E
+// 0.196688
+0x192D0E5C
+// 0.339637
+0x2B79362D
+// -0.155923
+0xEC0AB3FE
+// -0.173930
+0xE9BCACE8
+// 0.179204
+0x16F0292A
+// 0.164367
+0x1509FB07
+// 0.231571
+0x1DA421E2
+// -0.460620
+0xC50A6873
+// 0.002403
+0x004EBFFB
+// -0.078231
+0xF5FC8624
+// -0.783201
+0x9BC00DF2
+// 0.426327
+0x3691E0E2
+// 0.143445
+0x125C6BD9
+// 0.153536
+0x13A71260
+// 0.033527
+0x044A9EDC
+// -0.057251
+0xF8ABFEB6
+// 0.210391
+0x1AEE1870
+// 0.106425
+0x0D9F551F
+// 0.056951
+0x074A2FC3
+// 0.368756
+0x2F33642E
+// -0.041856
+0xFAA4742D
+// -0.026209
+0xFCA52C19
+// 0.002585
+0x0054B276
+// -0.090985
+0xF45A9D1B
+// -0.354097
+0xD2ACF555
+// 0.076232
+0x09C1F8F4
+// -0.028085
+0xFC67B27B
+// -0.149708
+0xECD65C48
+// 0.147925
+0x12EF37DE
+// -0.021795
+0xFD35D251
+// -0.198971
+0xE6881A5E
+// 0.107550
+0x0DC4363C
+// 0.176819
+0x16A1FF65
+// -0.095538
+0xF3C5666D
+// 0.330628
+0x2A520338
+// 0.325460
+0x29A8ACA3
+// -0.191770
+0xE77414F8
+// 0.169871
+0x15BE5855
+// 0.236209
+0x1E3C1882
+// -0.340220
+0xD473AF5B
+// 0.085958
+0x0B00AD38
+// -0.303241
+0xD92F6505
+// -0.030949
+0xFC09DD06
+// 0.097230
+0x0C7204A8
+// 0.148736
+0x1309C693
+// -0.457528
+0xC56FBA5B
+// -0.189266
+0xE7C61F5D
+// -0.068268
+0xF7430291
+// -0.256306
+0xDF315A78
+// -0.168214
+0xEA77FA45
+// 0.560848
+0x47C9DCB8
+// -0.041606
+0xFAACA7C6
+// 0.249043
+0x1FE0A3B3
+// -0.260826
+0xDE9D4374
+// -0.000299
+0xFFF63062
+// 0.112371
+0x0E622ABE
+// 0.164585
+0x15111F55
+// -0.627100
+0xAFBB2DAA
+// 0.025112
+0x0336E281
+// 0.401085
+0x3356C0A5
+// -0.465892
+0xC45DA7C7
+// -0.144816
+0xED76AD76
+// 0.238110
+0x1E7A62BB
+// 0.076812
+0x09D4FC74
+// 0.417107
+0x3563C09E
+// 0.175781
+0x167FFC41
+// 0.451140
+0x39BEF26C
+// -0.181166
+0xE8CF8E7B
+// 0.367065
+0x2EFBFCFE
+// 0.260188
+0x214DD860
+// -0.489818
+0xC14DA305
+// -0.162097
+0xEB406530
+// 0.024759
+0x032B4F7A
+// 0.447729
+0x394F3102
+// 0.118977
+0x0F3AA56C
+// 0.027164
+0x037A1C8B
+// -0.276422
+0xDC9E35E7
+// 0.410740
+0x349322D6
+// -0.095868
+0xF3BA993D
+// 0.046418
+0x05F106D8
+// 0.038269
+0x04E5FED7
+// -0.021404
+0xFD42A596
+// -0.137121
+0xEE72D316
+// 0.166966
+0x155F2534
+// -0.180543
+0xE8E3F595
+// 0.171742
+0x15FBA1C5
+// 0.122631
+0x0FB25CE1
+// -0.042255
+0xFA9766D2
+// -0.028776
+0xFC510F89
+// 0.262129
+0x218D6DCE
+// 0.104550
+0x0D61E3DD
+// 0.042560
+0x05729E7B
+// -0.087433
+0xF4CEFE78
+// -0.223621
+0xE3606642
+// -0.405855
+0xCC0CF449
+// 0.311029
+0x27CFC8DE
+// -0.383143
+0xCEF52833
+// -0.248692
+0xE02ADFED
+// 0.215452
+0x1B93ECE8
+// 0.250096
+0x200325DF
+// 0.160996
+0x149B8525
+// -0.424754
+0xC9A1AB7B
+// 0.318630
+0x28C8DD91
+// 0.523426
+0x42FFA099
+// 0.087547
+0x0B34BBB9
+// 0.284964
+0x2479B3A1
+// 0.004107
+0x00869419
+// 0.023502
+0x03021E20
+// 0.242909
+0x1F17A061
+// -0.336253
+0xD4F5A6DF
+// -0.026142
+0xFCA76381
+// -0.629520
+0xAF6BE470
+// -0.675015
+0xA9991D9A
+// 0.124828
+0x0FFA5A4C
+// -0.036588
+0xFB511508
+// -0.751550
+0x9FCD323A
 // 1.000000
 0x7FFFFFFF
-// 0.553809
-0x46E334B6
-// 0.948112
-0x795BB804
-// 0.091130
-0x0BAA2965
-// 0.279947
-0x23D54BBA
-// -0.290408
-0xDAD3E9B1
-// -0.003591
-0xFF8A5500
-// -0.352453
-0xD2E2D47F
-// -0.475675
-0xC31D1516
-// 0.179878
-0x17064186
-// -0.296160
-0xDA176A90
-// 0.112871
-0x0E729144
-// 0.007996
-0x0106000C
-// -0.599760
-0xB33B10CE
-// -0.332637
-0xD56C272C
-// -0.184481
-0xE862E9F2
-// 0.141090
-0x120F38D6
-// -0.175793
-0xE97F9E9A
-// 0.128245
-0x106A52C0
-// 0.116064
-0x0EDB2BD8
-// 0.666495
-0x554FB1CA
-// 0.617685
-0x4F104B18
-// 0.488940
-0x3E9595D0
-// -0.049384
-0xF9ADC93F
-// -0.491336
-0xC11BE535
-// 0.533620
-0x444DAB11
-// 0.042690
-0x0576DC47
-// 0.250486
-0x200FEA1E
-// 0.319241
-0x28DCE144
-// 0.120880
-0x0F790194
-// 0.042312
-0x056A7B59
-// -0.222502
-0xE3850D96
-// -0.267136
-0xDDCE7F1E
-// -0.175957
-0xE97A3D1B
-// -0.303560
-0xD924F2F0
-// 0.458880
-0x3ABC9319
-// -0.068837
-0xF7305B5F
-// 0.555532
-0x471BAFD8
-// -0.363118
-0xD1855B65
-// 0.189281
-0x183A5C80
-// 0.009165
-0x012C4E0A
-// 0.232290
-0x1DBBACB1
-// -0.258565
-0xDEE756FC
-// 0.034981
-0x047A44C9
-// 0.265375
-0x21F7D10B
-// 0.017664
-0x0242D3FF
-// -0.202516
-0xE613F19A
-// 0.050493
-0x06768BB2
-// 0.156186
-0x13FDEAE3
-// -0.606491
-0xB25E83F4
-// -0.039170
-0xFAFC78C1
-// 0.066823
-0x088DA666
-// 0.594511
-0x4C18F1B7
-// -0.177680
-0xE941CBE1
-// 0.298040
-0x26262E35
-// 0.858973
-0x6DF2D3D1
-// -0.218712
-0xE4013FB9
-// -0.395245
-0xCD689CE5
-// 0.131127
-0x10C8C5D9
+// -0.237741
+0xE191B598
+// 0.220014
+0x1C2967AB
+// -0.203162
+0xE5FEC5FC
+// -0.282458
+0xDBD86780
+// 0.421169
+0x35E8DD54
+// -0.010951
+0xFE992556
+// -0.049972
+0xF99A82EF
+// 0.150747
+0x134BB181
+// 0.146142
+0x12B4CBE9
+// 0.190478
+0x1861913C
+// -0.074336
+0xF67C2A90
+// -0.540593
+0xBACDD5E4
+// 0.788487
+0x64ED2205
+// -0.514154
+0xBE303110
+// -0.152706
+0xEC7422E2
+// -0.153711
+0xEC533033
+// 0.564160
+0x48366481
+// -0.355962
+0xD26FD2C5
+// 0.431624
+0x373F735D
+// -0.304665
+0xD900BB56
+// 0.419722
+0x35B971A9
+// -0.223932
+0xE356315F
+// 0.259654
+0x213C5BA5
+// -0.116881
+0xF10A0B6C
+// -0.424320
+0xC9AFDF14
+// 0.088360
+0x0B4F5ED2
+// 0.278005
+0x2395AC52
+// 0.141450
+0x121B0B99
+// 0.004282
+0x008C4F06
+// 0.116027
+0x0ED9FA9F
+// -0.091140
+0xF45585E3
+// -0.311058
+0xD82F41E1
+// 0.318471
+0x28C3AA3C
+// 0.166259
+0x1547F66C
+// -0.528155
+0xBC6569A1
+// 0.064256
+0x08398C94
+// 0.257070
+0x20E7ACE5
+// 0.161588
+0x14AEE821
+// 0.119028
+0x0F3C4FFA
+// 0.261333
+0x217359A3
+// 0.162183
+0x14C26DA7
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Coefs1_q7.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Coefs1_q7.txt
new file mode 100644
index 0000000..0675a84
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Coefs1_q7.txt
@@ -0,0 +1,130 @@
+B
+64
+// 0.402908
+0x34
+// 0.302983
+0x27
+// 0.260935
+0x21
+// 0.343689
+0x2C
+// -0.264464
+0xDE
+// 0.700369
+0x5A
+// 0.332854
+0x2B
+// 0.013080
+0x02
+// 0.063702
+0x08
+// 0.388992
+0x32
+// 0.056596
+0x07
+// 0.658643
+0x54
+// -0.828451
+0x96
+// -0.184320
+0xE8
+// -0.049089
+0xFA
+// 0.483794
+0x3E
+// -0.452257
+0xC6
+// -0.336909
+0xD5
+// -0.557898
+0xB9
+// 0.347278
+0x2C
+// 0.163892
+0x15
+// 0.377398
+0x30
+// 0.265331
+0x22
+// -0.313964
+0xD8
+// 0.464188
+0x3B
+// 0.164580
+0x15
+// -0.633644
+0xAF
+// -0.135763
+0xEF
+// -0.441118
+0xC8
+// 0.466063
+0x3C
+// -0.368841
+0xD1
+// 0.181286
+0x17
+// 0.113700
+0x0F
+// 0.336404
+0x2B
+// -0.798513
+0x9A
+// -0.003039
+0x00
+// -0.431600
+0xC9
+// -0.086413
+0xF5
+// -0.078176
+0xF6
+// 0.424517
+0x36
+// -0.104712
+0xF3
+// -0.372150
+0xD0
+// -0.159514
+0xEC
+// -0.467644
+0xC4
+// 0.785066
+0x64
+// -0.164054
+0xEB
+// -0.153906
+0xEC
+// 0.029627
+0x04
+// 0.530836
+0x44
+// 0.159785
+0x14
+// -0.317170
+0xD7
+// -0.411475
+0xCB
+// 0.109241
+0x0E
+// 0.386141
+0x31
+// -0.516288
+0xBE
+// -0.167669
+0xEB
+// -0.351196
+0xD3
+// 0.227408
+0x1D
+// 0.115277
+0x0F
+// 1.000000
+0x7F
+// -0.191611
+0xE7
+// -0.577609
+0xB6
+// -0.399011
+0xCD
+// 0.032922
+0x04
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirCoefs1_q7.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirCoefs1_q7.txt
new file mode 100644
index 0000000..1c83557
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirCoefs1_q7.txt
@@ -0,0 +1,722 @@
+B
+360
+// 0.333333
+0x2B
+// 0.500000
+0x40
+// 0.250000
+0x20
+// 0.600000
+0x4D
+// 0.400000
+0x33
+// 0.200000
+0x1A
+// 0.666667
+0x55
+// 0.500000
+0x40
+// 0.333333
+0x2B
+// 0.166667
+0x15
+// 0.714286
+0x5B
+// 0.571429
+0x49
+// 0.428571
+0x37
+// 0.285714
+0x25
+// 0.142857
+0x12
+// 0.750000
+0x60
+// 0.625000
+0x50
+// 0.500000
+0x40
+// 0.375000
+0x30
+// 0.250000
+0x20
+// 0.125000
+0x10
+// 0.777778
+0x64
+// 0.666667
+0x55
+// 0.555556
+0x47
+// 0.444444
+0x39
+// 0.333333
+0x2B
+// 0.222222
+0x1C
+// 0.111111
+0x0E
+// 0.800000
+0x66
+// 0.700000
+0x5A
+// 0.600000
+0x4D
+// 0.500000
+0x40
+// 0.400000
+0x33
+// 0.300000
+0x26
+// 0.200000
+0x1A
+// 0.100000
+0x0D
+// 0.846154
+0x6C
+// 0.769231
+0x62
+// 0.692308
+0x59
+// 0.615385
+0x4F
+// 0.538462
+0x45
+// 0.461538
+0x3B
+// 0.384615
+0x31
+// 0.307692
+0x27
+// 0.230769
+0x1E
+// 0.153846
+0x14
+// 0.076923
+0x0A
+// 0.925926
+0x77
+// 0.888889
+0x72
+// 0.851852
+0x6D
+// 0.814815
+0x68
+// 0.777778
+0x64
+// 0.740741
+0x5F
+// 0.703704
+0x5A
+// 0.666667
+0x55
+// 0.629630
+0x51
+// 0.592593
+0x4C
+// 0.555556
+0x47
+// 0.518519
+0x42
+// 0.481481
+0x3E
+// 0.444444
+0x39
+// 0.407407
+0x34
+// 0.370370
+0x2F
+// 0.333333
+0x2B
+// 0.296296
+0x26
+// 0.259259
+0x21
+// 0.222222
+0x1C
+// 0.185185
+0x18
+// 0.148148
+0x13
+// 0.111111
+0x0E
+// 0.074074
+0x09
+// 0.037037
+0x05
+// 0.333333
+0x2B
+// 0.500000
+0x40
+// 0.250000
+0x20
+// 0.600000
+0x4D
+// 0.400000
+0x33
+// 0.200000
+0x1A
+// 0.666667
+0x55
+// 0.500000
+0x40
+// 0.333333
+0x2B
+// 0.166667
+0x15
+// 0.714286
+0x5B
+// 0.571429
+0x49
+// 0.428571
+0x37
+// 0.285714
+0x25
+// 0.142857
+0x12
+// 0.750000
+0x60
+// 0.625000
+0x50
+// 0.500000
+0x40
+// 0.375000
+0x30
+// 0.250000
+0x20
+// 0.125000
+0x10
+// 0.777778
+0x64
+// 0.666667
+0x55
+// 0.555556
+0x47
+// 0.444444
+0x39
+// 0.333333
+0x2B
+// 0.222222
+0x1C
+// 0.111111
+0x0E
+// 0.800000
+0x66
+// 0.700000
+0x5A
+// 0.600000
+0x4D
+// 0.500000
+0x40
+// 0.400000
+0x33
+// 0.300000
+0x26
+// 0.200000
+0x1A
+// 0.100000
+0x0D
+// 0.846154
+0x6C
+// 0.769231
+0x62
+// 0.692308
+0x59
+// 0.615385
+0x4F
+// 0.538462
+0x45
+// 0.461538
+0x3B
+// 0.384615
+0x31
+// 0.307692
+0x27
+// 0.230769
+0x1E
+// 0.153846
+0x14
+// 0.076923
+0x0A
+// 0.925926
+0x77
+// 0.888889
+0x72
+// 0.851852
+0x6D
+// 0.814815
+0x68
+// 0.777778
+0x64
+// 0.740741
+0x5F
+// 0.703704
+0x5A
+// 0.666667
+0x55
+// 0.629630
+0x51
+// 0.592593
+0x4C
+// 0.555556
+0x47
+// 0.518519
+0x42
+// 0.481481
+0x3E
+// 0.444444
+0x39
+// 0.407407
+0x34
+// 0.370370
+0x2F
+// 0.333333
+0x2B
+// 0.296296
+0x26
+// 0.259259
+0x21
+// 0.222222
+0x1C
+// 0.185185
+0x18
+// 0.148148
+0x13
+// 0.111111
+0x0E
+// 0.074074
+0x09
+// 0.037037
+0x05
+// 0.333333
+0x2B
+// 0.500000
+0x40
+// 0.250000
+0x20
+// 0.600000
+0x4D
+// 0.400000
+0x33
+// 0.200000
+0x1A
+// 0.666667
+0x55
+// 0.500000
+0x40
+// 0.333333
+0x2B
+// 0.166667
+0x15
+// 0.714286
+0x5B
+// 0.571429
+0x49
+// 0.428571
+0x37
+// 0.285714
+0x25
+// 0.142857
+0x12
+// 0.750000
+0x60
+// 0.625000
+0x50
+// 0.500000
+0x40
+// 0.375000
+0x30
+// 0.250000
+0x20
+// 0.125000
+0x10
+// 0.777778
+0x64
+// 0.666667
+0x55
+// 0.555556
+0x47
+// 0.444444
+0x39
+// 0.333333
+0x2B
+// 0.222222
+0x1C
+// 0.111111
+0x0E
+// 0.800000
+0x66
+// 0.700000
+0x5A
+// 0.600000
+0x4D
+// 0.500000
+0x40
+// 0.400000
+0x33
+// 0.300000
+0x26
+// 0.200000
+0x1A
+// 0.100000
+0x0D
+// 0.846154
+0x6C
+// 0.769231
+0x62
+// 0.692308
+0x59
+// 0.615385
+0x4F
+// 0.538462
+0x45
+// 0.461538
+0x3B
+// 0.384615
+0x31
+// 0.307692
+0x27
+// 0.230769
+0x1E
+// 0.153846
+0x14
+// 0.076923
+0x0A
+// 0.925926
+0x77
+// 0.888889
+0x72
+// 0.851852
+0x6D
+// 0.814815
+0x68
+// 0.777778
+0x64
+// 0.740741
+0x5F
+// 0.703704
+0x5A
+// 0.666667
+0x55
+// 0.629630
+0x51
+// 0.592593
+0x4C
+// 0.555556
+0x47
+// 0.518519
+0x42
+// 0.481481
+0x3E
+// 0.444444
+0x39
+// 0.407407
+0x34
+// 0.370370
+0x2F
+// 0.333333
+0x2B
+// 0.296296
+0x26
+// 0.259259
+0x21
+// 0.222222
+0x1C
+// 0.185185
+0x18
+// 0.148148
+0x13
+// 0.111111
+0x0E
+// 0.074074
+0x09
+// 0.037037
+0x05
+// 0.333333
+0x2B
+// 0.500000
+0x40
+// 0.250000
+0x20
+// 0.600000
+0x4D
+// 0.400000
+0x33
+// 0.200000
+0x1A
+// 0.666667
+0x55
+// 0.500000
+0x40
+// 0.333333
+0x2B
+// 0.166667
+0x15
+// 0.714286
+0x5B
+// 0.571429
+0x49
+// 0.428571
+0x37
+// 0.285714
+0x25
+// 0.142857
+0x12
+// 0.750000
+0x60
+// 0.625000
+0x50
+// 0.500000
+0x40
+// 0.375000
+0x30
+// 0.250000
+0x20
+// 0.125000
+0x10
+// 0.777778
+0x64
+// 0.666667
+0x55
+// 0.555556
+0x47
+// 0.444444
+0x39
+// 0.333333
+0x2B
+// 0.222222
+0x1C
+// 0.111111
+0x0E
+// 0.800000
+0x66
+// 0.700000
+0x5A
+// 0.600000
+0x4D
+// 0.500000
+0x40
+// 0.400000
+0x33
+// 0.300000
+0x26
+// 0.200000
+0x1A
+// 0.100000
+0x0D
+// 0.846154
+0x6C
+// 0.769231
+0x62
+// 0.692308
+0x59
+// 0.615385
+0x4F
+// 0.538462
+0x45
+// 0.461538
+0x3B
+// 0.384615
+0x31
+// 0.307692
+0x27
+// 0.230769
+0x1E
+// 0.153846
+0x14
+// 0.076923
+0x0A
+// 0.925926
+0x77
+// 0.888889
+0x72
+// 0.851852
+0x6D
+// 0.814815
+0x68
+// 0.777778
+0x64
+// 0.740741
+0x5F
+// 0.703704
+0x5A
+// 0.666667
+0x55
+// 0.629630
+0x51
+// 0.592593
+0x4C
+// 0.555556
+0x47
+// 0.518519
+0x42
+// 0.481481
+0x3E
+// 0.444444
+0x39
+// 0.407407
+0x34
+// 0.370370
+0x2F
+// 0.333333
+0x2B
+// 0.296296
+0x26
+// 0.259259
+0x21
+// 0.222222
+0x1C
+// 0.185185
+0x18
+// 0.148148
+0x13
+// 0.111111
+0x0E
+// 0.074074
+0x09
+// 0.037037
+0x05
+// 0.333333
+0x2B
+// 0.500000
+0x40
+// 0.250000
+0x20
+// 0.600000
+0x4D
+// 0.400000
+0x33
+// 0.200000
+0x1A
+// 0.666667
+0x55
+// 0.500000
+0x40
+// 0.333333
+0x2B
+// 0.166667
+0x15
+// 0.714286
+0x5B
+// 0.571429
+0x49
+// 0.428571
+0x37
+// 0.285714
+0x25
+// 0.142857
+0x12
+// 0.750000
+0x60
+// 0.625000
+0x50
+// 0.500000
+0x40
+// 0.375000
+0x30
+// 0.250000
+0x20
+// 0.125000
+0x10
+// 0.777778
+0x64
+// 0.666667
+0x55
+// 0.555556
+0x47
+// 0.444444
+0x39
+// 0.333333
+0x2B
+// 0.222222
+0x1C
+// 0.111111
+0x0E
+// 0.800000
+0x66
+// 0.700000
+0x5A
+// 0.600000
+0x4D
+// 0.500000
+0x40
+// 0.400000
+0x33
+// 0.300000
+0x26
+// 0.200000
+0x1A
+// 0.100000
+0x0D
+// 0.846154
+0x6C
+// 0.769231
+0x62
+// 0.692308
+0x59
+// 0.615385
+0x4F
+// 0.538462
+0x45
+// 0.461538
+0x3B
+// 0.384615
+0x31
+// 0.307692
+0x27
+// 0.230769
+0x1E
+// 0.153846
+0x14
+// 0.076923
+0x0A
+// 0.925926
+0x77
+// 0.888889
+0x72
+// 0.851852
+0x6D
+// 0.814815
+0x68
+// 0.777778
+0x64
+// 0.740741
+0x5F
+// 0.703704
+0x5A
+// 0.666667
+0x55
+// 0.629630
+0x51
+// 0.592593
+0x4C
+// 0.555556
+0x47
+// 0.518519
+0x42
+// 0.481481
+0x3E
+// 0.444444
+0x39
+// 0.407407
+0x34
+// 0.370370
+0x2F
+// 0.333333
+0x2B
+// 0.296296
+0x26
+// 0.259259
+0x21
+// 0.222222
+0x1C
+// 0.185185
+0x18
+// 0.148148
+0x13
+// 0.111111
+0x0E
+// 0.074074
+0x09
+// 0.037037
+0x05
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirConfigs1_s16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirConfigs1_s16.txt
new file mode 100644
index 0000000..1766ede
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirConfigs1_s16.txt
@@ -0,0 +1,202 @@
+H
+100
+// 1
+0x0001
+// 1
+0x0001
+// 1
+0x0001
+// 2
+0x0002
+// 1
+0x0001
+// 3
+0x0003
+// 1
+0x0001
+// 4
+0x0004
+// 1
+0x0001
+// 5
+0x0005
+// 1
+0x0001
+// 6
+0x0006
+// 1
+0x0001
+// 7
+0x0007
+// 1
+0x0001
+// 8
+0x0008
+// 1
+0x0001
+// 11
+0x000B
+// 1
+0x0001
+// 25
+0x0019
+// 2
+0x0002
+// 1
+0x0001
+// 2
+0x0002
+// 2
+0x0002
+// 2
+0x0002
+// 3
+0x0003
+// 2
+0x0002
+// 4
+0x0004
+// 2
+0x0002
+// 5
+0x0005
+// 2
+0x0002
+// 6
+0x0006
+// 2
+0x0002
+// 7
+0x0007
+// 2
+0x0002
+// 8
+0x0008
+// 2
+0x0002
+// 11
+0x000B
+// 2
+0x0002
+// 25
+0x0019
+// 3
+0x0003
+// 1
+0x0001
+// 3
+0x0003
+// 2
+0x0002
+// 3
+0x0003
+// 3
+0x0003
+// 3
+0x0003
+// 4
+0x0004
+// 3
+0x0003
+// 5
+0x0005
+// 3
+0x0003
+// 6
+0x0006
+// 3
+0x0003
+// 7
+0x0007
+// 3
+0x0003
+// 8
+0x0008
+// 3
+0x0003
+// 11
+0x000B
+// 3
+0x0003
+// 25
+0x0019
+// 8
+0x0008
+// 1
+0x0001
+// 8
+0x0008
+// 2
+0x0002
+// 8
+0x0008
+// 3
+0x0003
+// 8
+0x0008
+// 4
+0x0004
+// 8
+0x0008
+// 5
+0x0005
+// 8
+0x0008
+// 6
+0x0006
+// 8
+0x0008
+// 7
+0x0007
+// 8
+0x0008
+// 8
+0x0008
+// 8
+0x0008
+// 11
+0x000B
+// 8
+0x0008
+// 25
+0x0019
+// 11
+0x000B
+// 1
+0x0001
+// 11
+0x000B
+// 2
+0x0002
+// 11
+0x000B
+// 3
+0x0003
+// 11
+0x000B
+// 4
+0x0004
+// 11
+0x000B
+// 5
+0x0005
+// 11
+0x000B
+// 6
+0x0006
+// 11
+0x000B
+// 7
+0x0007
+// 11
+0x000B
+// 8
+0x0008
+// 11
+0x000B
+// 11
+0x000B
+// 11
+0x000B
+// 25
+0x0019
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirInput1_q7.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirInput1_q7.txt
new file mode 100644
index 0000000..4087c1b
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirInput1_q7.txt
@@ -0,0 +1,94 @@
+B
+46
+// 0.000367
+0x00
+// 0.018210
+0x02
+// 0.030434
+0x04
+// 0.024524
+0x03
+// 0.013149
+0x02
+// -0.014928
+0xFE
+// -0.028519
+0xFC
+// -0.029113
+0xFC
+// -0.021481
+0xFD
+// -0.000977
+0x00
+// 0.024664
+0x03
+// 0.027586
+0x04
+// 0.029135
+0x04
+// 0.010401
+0x01
+// -0.009060
+0xFF
+// -0.027148
+0xFD
+// -0.029180
+0xFC
+// -0.020006
+0xFD
+// -0.001987
+0x00
+// 0.018935
+0x02
+// 0.033333
+0x04
+// 0.025619
+0x03
+// 0.010810
+0x01
+// -0.008588
+0xFF
+// -0.028150
+0xFC
+// -0.030828
+0xFC
+// -0.021272
+0xFD
+// 0.001683
+0x00
+// 0.023511
+0x03
+// 0.032976
+0x04
+// 0.024043
+0x03
+// 0.010782
+0x01
+// -0.012400
+0xFE
+// -0.024030
+0xFD
+// -0.026964
+0xFD
+// -0.020223
+0xFD
+// -0.001965
+0x00
+// 0.019417
+0x02
+// 0.031812
+0x04
+// 0.024889
+0x03
+// 0.006053
+0x01
+// -0.010002
+0xFF
+// -0.030038
+0xFC
+// -0.030342
+0xFC
+// -0.019449
+0xFE
+// -0.001060
+0x00
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirRefs1_q7.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirRefs1_q7.txt
new file mode 100644
index 0000000..149f69e
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/FirRefs1_q7.txt
@@ -0,0 +1,1002 @@
+B
+500
+// 0.000122
+0x00
+// 0.006070
+0x01
+// 0.000092
+0x00
+// 0.004736
+0x01
+// 0.000073
+0x00
+// 0.003789
+0x00
+// 0.000061
+0x00
+// 0.003157
+0x00
+// 0.000052
+0x00
+// 0.002706
+0x00
+// 0.000046
+0x00
+// 0.002368
+0x00
+// 0.000041
+0x00
+// 0.002105
+0x00
+// 0.000037
+0x00
+// 0.001894
+0x00
+// 0.000028
+0x00
+// 0.001457
+0x00
+// 0.000014
+0x00
+// 0.000702
+0x00
+// 0.000122
+0x00
+// 0.006070
+0x01
+// 0.010145
+0x01
+// 0.008175
+0x01
+// 0.000092
+0x00
+// 0.004736
+0x01
+// 0.016713
+0x02
+// 0.021348
+0x03
+// 0.000073
+0x00
+// 0.003789
+0x00
+// 0.013591
+0x02
+// 0.028004
+0x04
+// 0.000061
+0x00
+// 0.003157
+0x00
+// 0.011326
+0x01
+// 0.023582
+0x03
+// 0.000052
+0x00
+// 0.002706
+0x00
+// 0.009708
+0x01
+// 0.020213
+0x03
+// 0.000046
+0x00
+// 0.002368
+0x00
+// 0.008494
+0x01
+// 0.017686
+0x02
+// 0.000041
+0x00
+// 0.002105
+0x00
+// 0.007551
+0x01
+// 0.015721
+0x02
+// 0.000037
+0x00
+// 0.001894
+0x00
+// 0.006796
+0x01
+// 0.014149
+0x02
+// 0.000028
+0x00
+// 0.001457
+0x00
+// 0.005227
+0x01
+// 0.010884
+0x01
+// 0.000014
+0x00
+// 0.000702
+0x00
+// 0.002517
+0x00
+// 0.005240
+0x01
+// 0.000122
+0x00
+// 0.006070
+0x01
+// 0.010145
+0x01
+// 0.008175
+0x01
+// 0.004383
+0x01
+// -0.004976
+0xFF
+// 0.000092
+0x00
+// 0.004736
+0x01
+// 0.016713
+0x02
+// 0.021348
+0x03
+// 0.015549
+0x02
+// 0.002842
+0x00
+// 0.000073
+0x00
+// 0.003789
+0x00
+// 0.013591
+0x02
+// 0.028004
+0x04
+// 0.030700
+0x04
+// 0.016988
+0x02
+// 0.000061
+0x00
+// 0.003157
+0x00
+// 0.011326
+0x01
+// 0.023582
+0x03
+// 0.037723
+0x05
+// 0.034446
+0x04
+// 0.000052
+0x00
+// 0.002706
+0x00
+// 0.009708
+0x01
+// 0.020213
+0x03
+// 0.032596
+0x04
+// 0.042532
+0x05
+// 0.000046
+0x00
+// 0.002368
+0x00
+// 0.008494
+0x01
+// 0.017686
+0x02
+// 0.028522
+0x04
+// 0.037491
+0x05
+// 0.000041
+0x00
+// 0.002105
+0x00
+// 0.007551
+0x01
+// 0.015721
+0x02
+// 0.025353
+0x03
+// 0.033326
+0x04
+// 0.000037
+0x00
+// 0.001894
+0x00
+// 0.006796
+0x01
+// 0.014149
+0x02
+// 0.022818
+0x03
+// 0.029993
+0x04
+// 0.000028
+0x00
+// 0.001457
+0x00
+// 0.005227
+0x01
+// 0.010884
+0x01
+// 0.017552
+0x02
+// 0.023072
+0x03
+// 0.000014
+0x00
+// 0.000702
+0x00
+// 0.002517
+0x00
+// 0.005240
+0x01
+// 0.008451
+0x01
+// 0.011109
+0x01
+// 0.000122
+0x00
+// 0.006070
+0x01
+// 0.010145
+0x01
+// 0.008175
+0x01
+// 0.004383
+0x01
+// -0.004976
+0xFF
+// -0.009506
+0xFF
+// -0.009704
+0xFF
+// -0.007160
+0xFF
+// -0.000326
+0x00
+// 0.008221
+0x01
+// 0.009195
+0x01
+// 0.009712
+0x01
+// 0.003467
+0x00
+// -0.003020
+0x00
+// -0.009049
+0xFF
+// 0.000092
+0x00
+// 0.004736
+0x01
+// 0.016713
+0x02
+// 0.021348
+0x03
+// 0.015549
+0x02
+// 0.002842
+0x00
+// -0.014594
+0xFE
+// -0.021538
+0xFD
+// -0.019927
+0xFD
+// -0.010985
+0xFF
+// 0.005677
+0x01
+// 0.019229
+0x02
+// 0.021077
+0x03
+// 0.017168
+0x02
+// 0.002936
+0x00
+// -0.011317
+0xFF
+// 0.000073
+0x00
+// 0.003789
+0x00
+// 0.013591
+0x02
+// 0.028004
+0x04
+// 0.030700
+0x04
+// 0.016988
+0x02
+// -0.003786
+0x00
+// -0.026187
+0xFD
+// -0.033053
+0xFC
+// -0.026256
+0xFD
+// -0.008346
+0xFF
+// 0.014797
+0x02
+// 0.031660
+0x04
+// 0.030286
+0x04
+// 0.019829
+0x03
+// -0.002813
+0x00
+// 0.000061
+0x00
+// 0.003157
+0x00
+// 0.011326
+0x01
+// 0.023582
+0x03
+// 0.037723
+0x05
+// 0.034446
+0x04
+// 0.013195
+0x02
+// -0.013057
+0xFE
+// -0.037496
+0xFB
+// -0.040893
+0xFB
+// -0.026364
+0xFD
+// -0.001990
+0x00
+// 0.025732
+0x03
+// 0.041681
+0x05
+// 0.034915
+0x04
+// 0.017079
+0x02
+// 0.000052
+0x00
+// 0.002706
+0x00
+// 0.009708
+0x01
+// 0.020213
+0x03
+// 0.032596
+0x04
+// 0.042532
+0x05
+// 0.033048
+0x04
+// 0.006326
+0x01
+// -0.022748
+0xFD
+// -0.045714
+0xFA
+// -0.042969
+0xFA
+// -0.022501
+0xFD
+// 0.006713
+0x01
+// 0.035029
+0x04
+// 0.047545
+0x06
+// 0.034344
+0x04
+// 0.000046
+0x00
+// 0.002368
+0x00
+// 0.008494
+0x01
+// 0.017686
+0x02
+// 0.028522
+0x04
+// 0.037491
+0x05
+// 0.042575
+0x05
+// 0.028361
+0x04
+// -0.001511
+0x00
+// -0.030138
+0xFC
+// -0.048794
+0xFA
+// -0.041078
+0xFB
+// -0.015962
+0xFE
+// 0.014540
+0x02
+// 0.040869
+0x05
+// 0.048549
+0x06
+// 0.000041
+0x00
+// 0.002105
+0x00
+// 0.007551
+0x01
+// 0.015721
+0x02
+// 0.025353
+0x03
+// 0.033326
+0x04
+// 0.038130
+0x05
+// 0.039372
+0x05
+// 0.022328
+0x03
+// -0.007715
+0xFF
+// -0.033145
+0xFC
+// -0.048124
+0xFA
+// -0.036370
+0xFB
+// -0.009720
+0xFF
+// 0.019621
+0x03
+// 0.042394
+0x05
+// 0.000037
+0x00
+// 0.001894
+0x00
+// 0.006796
+0x01
+// 0.014149
+0x02
+// 0.022818
+0x03
+// 0.029993
+0x04
+// 0.034317
+0x04
+// 0.035729
+0x05
+// 0.034663
+0x04
+// 0.017404
+0x02
+// -0.010212
+0xFF
+// -0.032793
+0xFC
+// -0.044675
+0xFA
+// -0.031563
+0xFC
+// -0.005632
+0xFF
+// 0.020971
+0x03
+// 0.000028
+0x00
+// 0.001457
+0x00
+// 0.005227
+0x01
+// 0.010884
+0x01
+// 0.017552
+0x02
+// 0.023072
+0x03
+// 0.026398
+0x03
+// 0.027484
+0x04
+// 0.026918
+0x03
+// 0.026277
+0x03
+// 0.027533
+0x04
+// 0.030572
+0x04
+// 0.019354
+0x02
+// -0.003749
+0x00
+// -0.024434
+0xFD
+// -0.038594
+0xFB
+// 0.000014
+0x00
+// 0.000702
+0x00
+// 0.002517
+0x00
+// 0.005240
+0x01
+// 0.008451
+0x01
+// 0.011109
+0x01
+// 0.012710
+0x02
+// 0.013233
+0x02
+// 0.012961
+0x02
+// 0.012652
+0x02
+// 0.013257
+0x02
+// 0.014883
+0x02
+// 0.017589
+0x02
+// 0.020680
+0x03
+// 0.023435
+0x03
+// 0.025185
+0x03
+// 0.000122
+0x00
+// 0.006070
+0x01
+// 0.010145
+0x01
+// 0.008175
+0x01
+// 0.004383
+0x01
+// -0.004976
+0xFF
+// -0.009506
+0xFF
+// -0.009704
+0xFF
+// -0.007160
+0xFF
+// -0.000326
+0x00
+// 0.008221
+0x01
+// 0.009195
+0x01
+// 0.009712
+0x01
+// 0.003467
+0x00
+// -0.003020
+0x00
+// -0.009049
+0xFF
+// -0.009727
+0xFF
+// -0.006669
+0xFF
+// -0.000662
+0x00
+// 0.006312
+0x01
+// 0.011111
+0x01
+// 0.008540
+0x01
+// 0.000092
+0x00
+// 0.004736
+0x01
+// 0.016713
+0x02
+// 0.021348
+0x03
+// 0.015549
+0x02
+// 0.002842
+0x00
+// -0.014594
+0xFE
+// -0.021538
+0xFD
+// -0.019927
+0xFD
+// -0.010985
+0xFF
+// 0.005677
+0x01
+// 0.019229
+0x02
+// 0.021077
+0x03
+// 0.017168
+0x02
+// 0.002936
+0x00
+// -0.011317
+0xFF
+// -0.020869
+0xFD
+// -0.019592
+0xFD
+// -0.010500
+0xFF
+// 0.003740
+0x00
+// 0.017801
+0x02
+// 0.023071
+0x03
+// 0.000073
+0x00
+// 0.003789
+0x00
+// 0.013591
+0x02
+// 0.028004
+0x04
+// 0.030700
+0x04
+// 0.016988
+0x02
+// -0.003786
+0x00
+// -0.026187
+0xFD
+// -0.033053
+0xFC
+// -0.026256
+0xFD
+// -0.008346
+0xFF
+// 0.014797
+0x02
+// 0.031660
+0x04
+// 0.030286
+0x04
+// 0.019829
+0x03
+// -0.002813
+0x00
+// -0.022131
+0xFD
+// -0.031962
+0xFC
+// -0.025908
+0xFD
+// -0.009012
+0xFF
+// 0.013048
+0x02
+// 0.029818
+0x04
+// 0.000061
+0x00
+// 0.003157
+0x00
+// 0.011326
+0x01
+// 0.023582
+0x03
+// 0.037723
+0x05
+// 0.034446
+0x04
+// 0.013195
+0x02
+// -0.013057
+0xFE
+// -0.037496
+0xFB
+// -0.040893
+0xFB
+// -0.026364
+0xFD
+// -0.001990
+0x00
+// 0.025732
+0x03
+// 0.041681
+0x05
+// 0.034915
+0x04
+// 0.017079
+0x02
+// -0.011509
+0xFF
+// -0.032675
+0xFC
+// -0.039689
+0xFB
+// -0.026963
+0xFD
+// -0.002464
+0x00
+// 0.023523
+0x03
+// 0.000052
+0x00
+// 0.002706
+0x00
+// 0.009708
+0x01
+// 0.020213
+0x03
+// 0.032596
+0x04
+// 0.042532
+0x05
+// 0.033048
+0x04
+// 0.006326
+0x01
+// -0.022748
+0xFD
+// -0.045714
+0xFA
+// -0.042969
+0xFA
+// -0.022501
+0xFD
+// 0.006713
+0x01
+// 0.035029
+0x04
+// 0.047545
+0x06
+// 0.034344
+0x04
+// 0.010946
+0x01
+// -0.020578
+0xFD
+// -0.040490
+0xFB
+// -0.042503
+0xFB
+// -0.022955
+0xFD
+// 0.005873
+0x01
+// 0.000046
+0x00
+// 0.002368
+0x00
+// 0.008494
+0x01
+// 0.017686
+0x02
+// 0.028522
+0x04
+// 0.037491
+0x05
+// 0.042575
+0x05
+// 0.028361
+0x04
+// -0.001511
+0x00
+// -0.030138
+0xFC
+// -0.048794
+0xFA
+// -0.041078
+0xFB
+// -0.015962
+0xFE
+// 0.014540
+0x02
+// 0.040869
+0x05
+// 0.048549
+0x06
+// 0.030267
+0x04
+// 0.003846
+0x00
+// -0.027628
+0xFC
+// -0.043985
+0xFA
+// -0.040446
+0xFB
+// -0.016746
+0xFE
+// 0.000041
+0x00
+// 0.002105
+0x00
+// 0.007551
+0x01
+// 0.015721
+0x02
+// 0.025353
+0x03
+// 0.033326
+0x04
+// 0.038130
+0x05
+// 0.039372
+0x05
+// 0.022328
+0x03
+// -0.007715
+0xFF
+// -0.033145
+0xFC
+// -0.048124
+0xFA
+// -0.036370
+0xFB
+// -0.009720
+0xFF
+// 0.019621
+0x03
+// 0.042394
+0x05
+// 0.046088
+0x06
+// 0.024874
+0x03
+// -0.001898
+0x00
+// -0.031008
+0xFC
+// -0.042999
+0xFA
+// -0.036001
+0xFB
+// 0.000037
+0x00
+// 0.001894
+0x00
+// 0.006796
+0x01
+// 0.014149
+0x02
+// 0.022818
+0x03
+// 0.029993
+0x04
+// 0.034317
+0x04
+// 0.035729
+0x05
+// 0.034663
+0x04
+// 0.017404
+0x02
+// -0.010212
+0xFF
+// -0.032793
+0xFC
+// -0.044675
+0xFA
+// -0.031563
+0xFC
+// -0.005632
+0xFF
+// 0.020971
+0x03
+// 0.040697
+0x05
+// 0.042118
+0x05
+// 0.020361
+0x03
+// -0.004599
+0xFF
+// -0.030378
+0xFC
+// -0.039649
+0xFB
+// 0.000028
+0x00
+// 0.001457
+0x00
+// 0.005227
+0x01
+// 0.010884
+0x01
+// 0.017552
+0x02
+// 0.023072
+0x03
+// 0.026398
+0x03
+// 0.027484
+0x04
+// 0.026918
+0x03
+// 0.026277
+0x03
+// 0.027533
+0x04
+// 0.030572
+0x04
+// 0.019354
+0x02
+// -0.003749
+0x00
+// -0.024434
+0xFD
+// -0.038594
+0xFB
+// -0.030092
+0xFC
+// -0.009436
+0xFF
+// 0.013810
+0x02
+// 0.033706
+0x04
+// 0.038892
+0x05
+// 0.022455
+0x03
+// 0.000014
+0x00
+// 0.000702
+0x00
+// 0.002517
+0x00
+// 0.005240
+0x01
+// 0.008451
+0x01
+// 0.011109
+0x01
+// 0.012710
+0x02
+// 0.013233
+0x02
+// 0.012961
+0x02
+// 0.012652
+0x02
+// 0.013257
+0x02
+// 0.014883
+0x02
+// 0.017589
+0x02
+// 0.020680
+0x03
+// 0.023435
+0x03
+// 0.025185
+0x03
+// 0.025854
+0x03
+// 0.025782
+0x03
+// 0.025636
+0x03
+// 0.026192
+0x03
+// 0.027982
+0x04
+// 0.030721
+0x04
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Refs1_q7.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Refs1_q7.txt
new file mode 100644
index 0000000..68c57bf
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Refs1_q7.txt
@@ -0,0 +1,514 @@
+B
+256
+// -0.350063
+0xD3
+// -0.359355
+0xD2
+// 0.432898
+0x37
+// -0.410620
+0xCB
+// -0.235031
+0xE2
+// -0.697074
+0xA7
+// 0.646466
+0x53
+// 0.288383
+0x25
+// 0.084201
+0x0B
+// -0.299550
+0xDA
+// 0.254983
+0x21
+// -0.047046
+0xFA
+// -0.652118
+0xAD
+// -0.427166
+0xC9
+// 0.224017
+0x1D
+// -0.810767
+0x98
+// 0.007052
+0x01
+// -0.637262
+0xAE
+// -0.362971
+0xD2
+// -0.249505
+0xE0
+// -0.413789
+0xCB
+// -0.957286
+0x85
+// 0.550748
+0x46
+// 0.278529
+0x24
+// 0.902547
+0x74
+// -0.133181
+0xEF
+// -0.197827
+0xE7
+// 0.021839
+0x03
+// 0.188603
+0x18
+// -0.556203
+0xB9
+// 0.818998
+0x69
+// -0.363088
+0xD2
+// -0.009319
+0xFF
+// -0.834437
+0x95
+// 0.046253
+0x06
+// -0.392918
+0xCE
+// -0.460027
+0xC5
+// 0.248801
+0x20
+// 0.522869
+0x43
+// 0.331302
+0x2A
+// 0.340223
+0x2C
+// 0.893737
+0x72
+// 0.567596
+0x49
+// -0.258867
+0xDF
+// 0.377568
+0x30
+// 0.270526
+0x23
+// -0.015793
+0xFE
+// -0.358719
+0xD2
+// -0.027515
+0xFC
+// 0.329488
+0x2A
+// 0.173102
+0x16
+// 0.427848
+0x37
+// -0.001894
+0x00
+// 0.176895
+0x17
+// -0.144018
+0xEE
+// -0.414544
+0xCB
+// -0.353723
+0xD3
+// -0.272371
+0xDD
+// -0.358185
+0xD2
+// 0.190347
+0x18
+// 0.035276
+0x05
+// -0.136841
+0xEE
+// 0.206321
+0x1A
+// 0.137521
+0x12
+// 0.002225
+0x00
+// -0.345676
+0xD4
+// -0.491556
+0xC1
+// -0.053000
+0xF9
+// -0.079450
+0xF6
+// 0.288453
+0x25
+// 0.369592
+0x2F
+// 0.122079
+0x10
+// 0.437364
+0x38
+// 0.065104
+0x08
+// -0.387653
+0xCE
+// 0.137682
+0x12
+// -0.276030
+0xDD
+// 0.230400
+0x1D
+// 0.110832
+0x0E
+// -0.522204
+0xBD
+// 0.009207
+0x01
+// -0.890263
+0x8E
+// -0.181269
+0xE9
+// 0.333919
+0x2B
+// 0.513723
+0x42
+// -0.074614
+0xF6
+// 0.039408
+0x05
+// 0.512073
+0x42
+// -0.565618
+0xB8
+// 0.134681
+0x11
+// -0.317896
+0xD7
+// -1.000000
+0x80
+// 0.443289
+0x39
+// -0.082167
+0xF5
+// 0.520966
+0x43
+// 0.376426
+0x30
+// -0.075895
+0xF6
+// -0.396055
+0xCD
+// -0.586501
+0xB5
+// 0.808975
+0x68
+// 0.132605
+0x11
+// -0.262980
+0xDE
+// -0.298503
+0xDA
+// 0.317059
+0x29
+// -0.498134
+0xC0
+// 0.329967
+0x2A
+// -0.217401
+0xE4
+// -0.157298
+0xEC
+// -0.477586
+0xC3
+// -0.070500
+0xF7
+// -0.138174
+0xEE
+// 0.035518
+0x05
+// 0.216394
+0x1C
+// -0.008920
+0xFF
+// 0.154938
+0x14
+// -0.072765
+0xF7
+// 0.389005
+0x32
+// 0.532540
+0x44
+// 0.794035
+0x66
+// -0.371526
+0xD0
+// 0.211993
+0x1B
+// -0.454263
+0xC6
+// -0.152440
+0xEC
+// -0.103354
+0xF3
+// 0.051405
+0x07
+// 0.819983
+0x69
+// -0.830960
+0x96
+// 0.497098
+0x40
+// -0.495422
+0xC1
+// -0.589325
+0xB5
+// 0.433306
+0x37
+// 0.148103
+0x13
+// -0.011122
+0xFF
+// 0.107693
+0x0E
+// -0.233574
+0xE2
+// 0.239502
+0x1F
+// 0.313413
+0x28
+// -0.728741
+0xA3
+// 0.816048
+0x68
+// 0.413658
+0x35
+// 0.181556
+0x17
+// 0.800210
+0x66
+// 0.678251
+0x57
+// -0.059705
+0xF8
+// 0.389972
+0x32
+// -0.170898
+0xEA
+// 0.419247
+0x36
+// -0.058998
+0xF8
+// 0.772377
+0x63
+// 0.155642
+0x14
+// 0.217131
+0x1C
+// -0.127787
+0xF0
+// -0.528872
+0xBC
+// 0.484950
+0x3E
+// -0.253115
+0xE0
+// 0.573060
+0x49
+// -0.634900
+0xAF
+// 0.253857
+0x20
+// 0.093590
+0x0C
+// 0.139178
+0x12
+// -0.151417
+0xED
+// -0.307031
+0xD9
+// -0.083533
+0xF5
+// 0.076245
+0x0A
+// 0.179467
+0x17
+// 0.096709
+0x0C
+// 0.170670
+0x16
+// 0.409140
+0x34
+// 0.582941
+0x4B
+// 0.650421
+0x53
+// -0.836426
+0x95
+// -0.029671
+0xFC
+// 0.426416
+0x37
+// -0.438566
+0xC8
+// 0.140565
+0x12
+// 0.024372
+0x03
+// -0.112013
+0xF2
+// 0.108489
+0x0E
+// 0.252779
+0x20
+// 0.239195
+0x1F
+// -0.618914
+0xB1
+// -0.123471
+0xF0
+// -0.641053
+0xAE
+// 0.219804
+0x1C
+// 0.090792
+0x0C
+// 0.089094
+0x0B
+// -0.150465
+0xED
+// -0.424937
+0xCA
+// 0.037090
+0x05
+// 0.059408
+0x08
+// -0.192774
+0xE7
+// -0.867765
+0x91
+// 0.161824
+0x15
+// -0.352048
+0xD3
+// 0.064521
+0x08
+// -0.541103
+0xBB
+// 0.687565
+0x58
+// -0.095815
+0xF4
+// 0.328557
+0x2A
+// 0.544142
+0x46
+// -0.623791
+0xB0
+// 0.632342
+0x51
+// 0.113167
+0x0E
+// 0.161896
+0x15
+// 0.853637
+0x6D
+// 0.661551
+0x55
+// 0.036377
+0x05
+// 0.004701
+0x01
+// -0.067624
+0xF7
+// 0.210677
+0x1B
+// 0.160735
+0x15
+// 0.105905
+0x0E
+// 0.694248
+0x59
+// 0.020220
+0x03
+// 0.249606
+0x20
+// 0.391483
+0x32
+// 0.154314
+0x14
+// -0.106673
+0xF2
+// -0.101201
+0xF3
+// -0.305525
+0xD9
+// 0.143561
+0x12
+// -0.466415
+0xC4
+// 0.091098
+0x0C
+// 0.003229
+0x00
+// -0.446768
+0xC7
+// 0.090523
+0x0C
+// 0.009806
+0x01
+// 0.154948
+0x14
+// -0.180637
+0xE9
+// 0.223434
+0x1D
+// -0.107680
+0xF2
+// -0.062028
+0xF8
+// 0.097722
+0x0D
+// 0.015594
+0x02
+// -0.447499
+0xC7
+// -0.259110
+0xDF
+// 0.431084
+0x37
+// 0.152343
+0x13
+// 0.388254
+0x32
+// -0.794644
+0x9A
+// -0.383528
+0xCF
+// -0.078877
+0xF6
+// 0.240602
+0x1F
+// -0.109552
+0xF2
+// -0.119527
+0xF1
+// 0.170055
+0x16
+// -0.472767
+0xC3
+// 0.136111
+0x11
+// -0.764617
+0x9E
+// 0.313232
+0x28
+// -0.134713
+0xEF
+// -0.706310
+0xA6
+// 0.171819
+0x16
+// 0.083707
+0x0B
+// 0.284367
+0x24
+// -0.340644
+0xD4
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Samples1_q7.txt b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Samples1_q7.txt
new file mode 100644
index 0000000..e0ba308
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Filtering/FIR/FIRQ7/Samples1_q7.txt
@@ -0,0 +1,514 @@
+B
+256
+// 0.437167
+0x38
+// 0.900863
+0x73
+// -0.165573
+0xEB
+// -0.867605
+0x91
+// 0.300775
+0x26
+// 0.004007
+0x01
+// 0.728558
+0x5D
+// 0.049256
+0x06
+// 0.658192
+0x54
+// -0.007081
+0xFF
+// -0.132565
+0xEF
+// -0.799263
+0x9A
+// 0.328879
+0x2A
+// 0.029151
+0x04
+// -0.338076
+0xD5
+// -0.048099
+0xFA
+// 0.309885
+0x28
+// 0.454834
+0x3A
+// -0.421019
+0xCA
+// 0.550065
+0x46
+// -0.280132
+0xDC
+// 0.311139
+0x28
+// 0.201152
+0x1A
+// 0.499458
+0x40
+// -0.453239
+0xC6
+// 0.146378
+0x13
+// 0.077906
+0x0A
+// 0.559085
+0x48
+// 0.554451
+0x47
+// -0.572934
+0xB7
+// -0.943801
+0x87
+// -0.224047
+0xE3
+// 0.051079
+0x07
+// 0.060345
+0x08
+// 0.607492
+0x4E
+// 0.131652
+0x11
+// -0.452184
+0xC6
+// -0.145147
+0xED
+// 0.362008
+0x2E
+// -0.324199
+0xD7
+// 0.115850
+0x0F
+// -0.130694
+0xEF
+// -0.280819
+0xDC
+// -0.536923
+0xBB
+// -0.649202
+0xAD
+// -0.450889
+0xC6
+// -0.194088
+0xE7
+// -0.039922
+0xFB
+// -0.421229
+0xCA
+// -0.024564
+0xFD
+// 0.036891
+0x05
+// 0.183446
+0x17
+// 0.484712
+0x3E
+// -0.085706
+0xF5
+// -0.825592
+0x96
+// -0.186796
+0xE8
+// -0.733002
+0xA2
+// 0.419869
+0x36
+// 0.029537
+0x04
+// 0.447962
+0x39
+// 0.315936
+0x28
+// 0.696782
+0x59
+// 0.168592
+0x16
+// -0.014565
+0xFE
+// 0.551439
+0x47
+// -0.262806
+0xDE
+// -0.335101
+0xD5
+// 0.310447
+0x28
+// 0.395844
+0x33
+// -0.105800
+0xF2
+// 0.144777
+0x13
+// -0.268058
+0xDE
+// 0.014434
+0x02
+// -0.261852
+0xDE
+// -0.749291
+0xA0
+// 0.111629
+0x0E
+// 0.238159
+0x1E
+// 0.408691
+0x34
+// -0.126157
+0xF0
+// 0.529823
+0x44
+// -0.179612
+0xE9
+// -0.154707
+0xEC
+// 0.411845
+0x35
+// 0.362818
+0x2E
+// 0.278319
+0x24
+// 0.061497
+0x08
+// 0.116019
+0x0F
+// 0.636167
+0x51
+// 0.443167
+0x39
+// 0.651606
+0x53
+// 0.186785
+0x18
+// 0.420678
+0x36
+// 0.277391
+0x24
+// 0.082715
+0x0B
+// 0.361721
+0x2E
+// -0.008436
+0xFF
+// 0.241027
+0x1F
+// 0.356424
+0x2E
+// 0.591141
+0x4C
+// -0.256156
+0xDF
+// -0.143766
+0xEE
+// 0.016045
+0x02
+// 0.091159
+0x0C
+// 0.083606
+0x0B
+// 0.054741
+0x07
+// -0.361596
+0xD2
+// 0.087600
+0x0B
+// 0.337698
+0x2B
+// -0.230265
+0xE3
+// 0.676945
+0x57
+// 0.069378
+0x09
+// 0.135760
+0x11
+// 0.073174
+0x09
+// -0.393425
+0xCE
+// -0.268259
+0xDE
+// -0.080380
+0xF6
+// 0.247835
+0x20
+// 0.348419
+0x2D
+// 0.006349
+0x01
+// -0.072362
+0xF7
+// -0.228134
+0xE3
+// 0.311650
+0x28
+// 0.209872
+0x1B
+// -0.155600
+0xEC
+// 0.021184
+0x03
+// -0.100698
+0xF3
+// -0.072403
+0xF7
+// 0.677051
+0x57
+// 0.416999
+0x35
+// -0.284411
+0xDC
+// 0.058450
+0x07
+// -0.177395
+0xE9
+// -0.456433
+0xC6
+// -0.050412
+0xFA
+// -0.791437
+0x9B
+// -0.261101
+0xDF
+// -0.466526
+0xC4
+// 0.244900
+0x1F
+// 0.111823
+0x0E
+// -0.465401
+0xC4
+// 0.868605
+0x6F
+// 0.370285
+0x2F
+// -0.146579
+0xED
+// 0.105215
+0x0D
+// -0.576766
+0xB6
+// 0.266103
+0x22
+// -0.067157
+0xF7
+// -0.027048
+0xFD
+// -0.370069
+0xD1
+// -0.185785
+0xE8
+// 0.006277
+0x01
+// 0.931296
+0x77
+// -0.104897
+0xF3
+// -0.703905
+0xA6
+// 0.183407
+0x17
+// -0.133320
+0xEF
+// 0.429109
+0x37
+// 0.044620
+0x06
+// 0.717697
+0x5C
+// 1.000000
+0x7F
+// 0.557157
+0x47
+// 0.158588
+0x14
+// -0.732348
+0xA2
+// 0.515111
+0x42
+// -0.025143
+0xFD
+// 0.160811
+0x15
+// 0.368131
+0x2F
+// -0.244720
+0xE1
+// -0.737671
+0xA2
+// -0.355054
+0xD3
+// -0.082841
+0xF5
+// -0.226852
+0xE3
+// 0.295844
+0x26
+// 0.117660
+0x0F
+// 0.546173
+0x46
+// -0.055551
+0xF9
+// 0.401036
+0x33
+// -0.223341
+0xE3
+// -0.116624
+0xF1
+// -0.393899
+0xCE
+// -0.409412
+0xCC
+// 0.285002
+0x24
+// -0.630636
+0xAF
+// 0.299348
+0x26
+// -0.006331
+0xFF
+// 0.024793
+0x03
+// 0.303130
+0x27
+// 0.142486
+0x12
+// -0.347861
+0xD3
+// -0.162271
+0xEB
+// 0.385909
+0x31
+// -0.233828
+0xE2
+// -0.553446
+0xB9
+// 0.061986
+0x08
+// 0.097745
+0x0D
+// -0.231477
+0xE2
+// 0.718095
+0x5C
+// 0.161169
+0x15
+// 0.196409
+0x19
+// -0.198866
+0xE7
+// -0.569369
+0xB7
+// 0.572038
+0x49
+// -0.416034
+0xCB
+// -0.128443
+0xF0
+// -0.619759
+0xB1
+// -0.050332
+0xFA
+// 0.087366
+0x0B
+// 0.270080
+0x23
+// -0.277682
+0xDC
+// -0.173154
+0xEA
+// 0.332557
+0x2B
+// -0.227218
+0xE3
+// -0.251967
+0xE0
+// -0.347091
+0xD4
+// -0.037374
+0xFB
+// 0.292401
+0x25
+// -0.354700
+0xD3
+// -0.005477
+0xFF
+// 0.544668
+0x46
+// 0.262989
+0x22
+// -0.023690
+0xFD
+// -0.283063
+0xDC
+// -0.193918
+0xE7
+// -0.292702
+0xDB
+// 0.346557
+0x2C
+// -0.296799
+0xDA
+// 0.056908
+0x07
+// -0.537311
+0xBB
+// -0.288972
+0xDB
+// -0.160006
+0xEC
+// -0.069089
+0xF7
+// 0.632783
+0x51
+// 0.097721
+0x0D
+// 0.140379
+0x12
+// 0.128600
+0x10
+// -0.082170
+0xF5
+// -0.183263
+0xE9
+// 0.087751
+0x0B
+// -0.878434
+0x90
+// -0.010263
+0xFF
+// 0.385006
+0x31
+// 0.068947
+0x09
+// -0.354610
+0xD3
+// 0.612151
+0x4E
+// -0.341358
+0xD4
+// 0.633104
+0x51
+// -0.327233
+0xD6
+// 0.672470
+0x56
+// -0.082826
+0xF5
+// 0.078675
+0x0A
+// 0.027710
+0x04
+// 0.029367
+0x04
+// 0.087025
+0x0B
+// -0.607253
+0xB2
+// 0.382469
+0x31
+// 0.300835
+0x27
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRF32.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRF32.cpp
new file mode 100644
index 0000000..bc29b84
--- /dev/null
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRF32.cpp
@@ -0,0 +1,134 @@
+#include "FIRF32.h"
+#include "Error.h"
+
+#define SNR_THRESHOLD 120
+
+/* 
+
+Reference patterns are generated with
+a double precision computation.
+
+*/
+#define REL_ERROR (3.0e-5)
+
+__ALIGNED(8) float32_t coeffArray[32];
+
+    void FIRF32::test_fir_f32()
+    {
+        
+
+        const int16_t *configp = configs.ptr();
+        float32_t *statep = state.ptr();
+        const float32_t *orgcoefsp = coefs.ptr();
+        
+        const float32_t *coefsp;
+        const float32_t *inputp = inputs.ptr();
+        float32_t *outp = output.ptr();
+
+        int i,j;
+        int blockSize;
+        int numTaps;
+        int nb=0;
+
+        
+
+        /*
+
+        Python script is generating different tests with
+        different blockSize and numTaps.
+
+        We loop on those configs.
+
+        */
+        for(i=0; i < configs.nbSamples() ; i += 2)
+        {
+           blockSize = configp[0];
+           numTaps = configp[1];
+
+#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+           /* Copy coefficients and pad to zero 
+           */
+           memset(coeffArray,0,32);
+           for(j=0;j < numTaps; j++)
+           {
+              coeffArray[j] = orgcoefsp[j];
+           }
+   
+           coefsp = coeffArray;
+#else
+           coefsp = orgcoefsp;
+#endif
+
+           /*
+
+           The filter is initialized with the coefs, blockSize and numTaps.
+
+           */
+           arm_fir_init_f32(&this->S,numTaps,coefsp,statep,blockSize);
+
+           /*
+
+           Input pointer is reset since the same input pattern is used
+
+           */
+           inputp = inputs.ptr();
+
+           /*
+           
+           Python script is filtering a 2*blockSize number of samples.
+           We do the same filtering in two pass to check (indirectly that
+           the state management of the fir is working.)
+
+           */
+
+           arm_fir_f32(&this->S,inputp,outp,blockSize);
+           outp += blockSize;
+           
+           inputp += blockSize;
+           arm_fir_f32(&this->S,inputp,outp,blockSize);
+           outp += blockSize;
+
+           configp += 2;
+           orgcoefsp += numTaps;
+
+           nb += 2*blockSize;
+        }
+
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_REL_ERROR(output,ref,REL_ERROR);
+
+    } 
+
+ 
+    void FIRF32::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+
+       
+       switch(id)
+       {
+        case FIRF32::TEST_FIR_F32_1:
+        break;
+
+       }
+      
+
+       inputs.reload(FIRF32::FIRINPUTS_F32_ID,mgr);
+       coefs.reload(FIRF32::FIRCOEFS_F32_ID,mgr);
+       configs.reload(FIRF32::FIRCONFIGS_S16_ID,mgr);
+       ref.reload(FIRF32::FIRREFS_F32_ID,mgr);
+
+       output.create(ref.nbSamples(),FIRF32::OUT_F32_ID,mgr);
+       /* Max blockSize + numTaps - 1 as generated by Python script */
+       state.create(47,FIRF32::OUT_F32_ID,mgr);
+    }
+
+    void FIRF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        output.dump(mgr);
+    }
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp
new file mode 100644
index 0000000..4820407
--- /dev/null
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp
@@ -0,0 +1,107 @@
+#include "FIRQ15.h"
+#include "Error.h"
+
+#define SNR_THRESHOLD 60
+
+#define ABS_ERROR_Q15 ((q15_t)2)
+
+    void FIRQ15::test_fir_q15()
+    {
+        
+
+        const int16_t *configp = configs.ptr();
+        q15_t *statep = state.ptr();
+        const q15_t *coefsp = coefs.ptr();
+        const q15_t *inputp = inputs.ptr();
+        q15_t *outp = output.ptr();
+
+        int i;
+        int blockSize;
+        int numTaps;
+
+        /*
+
+        Python script is generating different tests with
+        different blockSize and numTaps.
+
+        We loop on those configs.
+
+        */
+        for(i=0; i < configs.nbSamples() >> 1; i++)
+        {
+           blockSize = configp[0];
+           numTaps = configp[1];
+
+           /*
+
+           The filter is initialized with the coefs, blockSize and numTaps.
+
+           */
+           arm_fir_init_q15(&this->S,numTaps,coefsp,statep,blockSize);
+
+           /*
+
+           Input pointer is reset since the same input pattern is used
+
+           */
+           inputp = inputs.ptr();
+
+       
+           /*
+           
+           Python script is filtering a 2*blockSize number of samples.
+           We do the same filtering in two pass to check (indirectly that
+           the state management of the fir is working.)
+
+           */
+           arm_fir_q15(&this->S,inputp,outp,blockSize);
+           inputp += blockSize;
+           outp += blockSize;
+           arm_fir_q15(&this->S,inputp,outp,blockSize);
+           outp += blockSize;
+
+           configp += 2;
+           coefsp += numTaps;
+
+        }
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(q15_t)SNR_THRESHOLD);
+
+        ASSERT_NEAR_EQ(output,ref,ABS_ERROR_Q15);
+
+    } 
+
+ 
+    void FIRQ15::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+
+       
+       switch(id)
+       {
+        case FIRQ15::TEST_FIR_Q15_1:
+          
+        break;
+
+       }
+      
+
+       inputs.reload(FIRQ15::FIRINPUTS_Q15_ID,mgr);
+       coefs.reload(FIRQ15::FIRCOEFS_Q15_ID,mgr);
+       configs.reload(FIRQ15::FIRCONFIGS_S16_ID,mgr);
+       ref.reload(FIRQ15::FIRREFS_Q15_ID,mgr);
+
+       output.create(ref.nbSamples(),FIRQ15::OUT_Q15_ID,mgr);
+       /* Max blockSize + numTaps - 1 as generated by Python script 
+          numTaps may be increased by 1 by Python script to force it to even values
+          */
+       state.create(36,FIRQ15::OUT_Q15_ID,mgr);
+    }
+
+    void FIRQ15::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        output.dump(mgr);
+    }
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp
new file mode 100644
index 0000000..7d43a74
--- /dev/null
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp
@@ -0,0 +1,104 @@
+#include "FIRQ31.h"
+#include "Error.h"
+
+#define SNR_THRESHOLD 100
+
+#define ABS_ERROR_Q31 ((q31_t)2)
+
+    void FIRQ31::test_fir_q31()
+    {
+        
+
+        const int16_t *configp = configs.ptr();
+        q31_t *statep = state.ptr();
+        const q31_t *coefsp = coefs.ptr();
+        const q31_t *inputp = inputs.ptr();
+        q31_t *outp = output.ptr();
+
+        int i;
+        int blockSize;
+        int numTaps;
+
+        /*
+
+        Python script is generating different tests with
+        different blockSize and numTaps.
+
+        We loop on those configs.
+
+        */
+        for(i=0; i < configs.nbSamples() >> 1; i++)
+        {
+           blockSize = configp[0];
+           numTaps = configp[1];
+
+           /*
+
+           The filter is initialized with the coefs, blockSize and numTaps.
+
+           */
+           arm_fir_init_q31(&this->S,numTaps,coefsp,statep,blockSize);
+
+           /*
+
+           Input pointer is reset since the same input pattern is used
+
+           */
+           inputp = inputs.ptr();
+
+           /*
+           
+           Python script is filtering a 2*blockSize number of samples.
+           We do the same filtering in two pass to check (indirectly that
+           the state management of the fir is working.)
+
+           */
+           arm_fir_q31(&this->S,inputp,outp,blockSize);
+           inputp += blockSize;
+           outp += blockSize;
+           arm_fir_q31(&this->S,inputp,outp,blockSize);
+
+           configp += 2;
+           coefsp += numTaps;
+           outp += blockSize;
+
+        }
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(q31_t)SNR_THRESHOLD);
+
+        ASSERT_NEAR_EQ(output,ref,ABS_ERROR_Q31);
+
+    } 
+
+ 
+    void FIRQ31::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+
+       
+       switch(id)
+       {
+        case FIRQ31::TEST_FIR_Q31_1:
+          
+        break;
+
+       }
+      
+
+       inputs.reload(FIRQ31::FIRINPUTS_Q31_ID,mgr);
+       coefs.reload(FIRQ31::FIRCOEFS_Q31_ID,mgr);
+       configs.reload(FIRQ31::FIRCONFIGS_S16_ID,mgr);
+       ref.reload(FIRQ31::FIRREFS_Q31_ID,mgr);
+
+       output.create(ref.nbSamples(),FIRQ31::OUT_Q31_ID,mgr);
+       /* Max blockSize + numTaps - 1 as generated by Python script */
+       state.create(35,FIRQ31::OUT_Q31_ID,mgr);
+    }
+
+    void FIRQ31::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        output.dump(mgr);
+    }
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp
new file mode 100644
index 0000000..b96a1c9
--- /dev/null
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp
@@ -0,0 +1,104 @@
+#include "FIRQ7.h"
+#include "Error.h"
+
+#define SNR_THRESHOLD 10
+
+#define ABS_ERROR_Q7 ((q7_t)2)
+
+    void FIRQ7::test_fir_q7()
+    {
+        
+
+        const int16_t *configp = configs.ptr();
+        q7_t *statep = state.ptr();
+        const q7_t *coefsp = coefs.ptr();
+        const q7_t *inputp = inputs.ptr();
+        q7_t *outp = output.ptr();
+
+        int i;
+        int blockSize;
+        int numTaps;
+
+        /*
+
+        Python script is generating different tests with
+        different blockSize and numTaps.
+
+        We loop on those configs.
+
+        */
+        for(i=0; i < configs.nbSamples() >> 1; i++)
+        {
+           blockSize = configp[0];
+           numTaps = configp[1];
+
+           /*
+
+           The filter is initialized with the coefs, blockSize and numTaps.
+
+           */
+           arm_fir_init_q7(&this->S,numTaps,coefsp,statep,blockSize);
+
+           /*
+
+           Input pointer is reset since the same input pattern is used
+
+           */
+           inputp = inputs.ptr();
+
+           /*
+           
+           Python script is filtering a 2*blockSize number of samples.
+           We do the same filtering in two pass to check (indirectly that
+           the state management of the fir is working.)
+
+           */
+           arm_fir_q7(&this->S,inputp,outp,blockSize);
+           inputp += blockSize;
+           outp += blockSize;
+           arm_fir_q7(&this->S,inputp,outp,blockSize);
+
+           configp += 2;
+           coefsp += numTaps;
+           outp += blockSize;
+
+        }
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(q7_t)SNR_THRESHOLD);
+
+        ASSERT_NEAR_EQ(output,ref,ABS_ERROR_Q7);
+
+    } 
+
+ 
+    void FIRQ7::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+
+       
+       switch(id)
+       {
+        case FIRQ7::TEST_FIR_Q7_1:
+          
+        break;
+
+       }
+      
+
+       inputs.reload(FIRQ7::FIRINPUTS_Q7_ID,mgr);
+       coefs.reload(FIRQ7::FIRCOEFS_Q7_ID,mgr);
+       configs.reload(FIRQ7::FIRCONFIGS_S16_ID,mgr);
+       ref.reload(FIRQ7::FIRREFS_Q7_ID,mgr);
+
+       output.create(ref.nbSamples(),FIRQ7::OUT_Q7_ID,mgr);
+       /* Max blockSize + numTaps - 1 as generated by Python script */
+       state.create(35,FIRQ7::OUT_Q7_ID,mgr);
+    }
+
+    void FIRQ7::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        output.dump(mgr);
+    }
diff --git a/CMSIS/DSP/Testing/desc.txt b/CMSIS/DSP/Testing/desc.txt
index e8284bf..a4acfd3 100644
--- a/CMSIS/DSP/Testing/desc.txt
+++ b/CMSIS/DSP/Testing/desc.txt
@@ -1705,6 +1705,84 @@
                 }
 
              }
+          }
+
+
+           group FIR {
+             class = FIR 
+             folder = FIR
+
+             suite FIR F32 {
+                class = FIRF32 
+                folder = FIRF32
+
+                Pattern FIRINPUTS_F32_ID : FirInput1_f32.txt
+                Pattern FIRCOEFS_F32_ID : FirCoefs1_f32.txt
+                Pattern FIRCONFIGS_S16_ID : FirConfigs1_s16.txt 
+
+                Pattern FIRREFS_F32_ID : FirRefs1_f32.txt
+
+                Output  OUT_F32_ID : Output
+
+                Functions {
+                  arm_fir_f32:test_fir_f32
+                }
+
+             }
+
+             suite FIR Q31 {
+                class = FIRQ31 
+                folder = FIRQ31
+
+                Pattern FIRINPUTS_Q31_ID : FirInput1_q31.txt
+                Pattern FIRCOEFS_Q31_ID : FirCoefs1_q31.txt
+                Pattern FIRCONFIGS_S16_ID : FirConfigs1_s16.txt 
+
+                Pattern FIRREFS_Q31_ID : FirRefs1_q31.txt
+
+                Output  OUT_Q31_ID : Output
+
+                Functions {
+                  arm_fir_q31:test_fir_q31
+                }
+
+             }
+
+             suite FIR Q15 {
+                class = FIRQ15 
+                folder = FIRQ15
+
+                Pattern FIRINPUTS_Q15_ID : FirInput1_q15.txt
+                Pattern FIRCOEFS_Q15_ID : FirCoefs1_q15.txt
+                Pattern FIRCONFIGS_S16_ID : FirConfigs1_s16.txt 
+
+                Pattern FIRREFS_Q15_ID : FirRefs1_q15.txt
+
+                Output  OUT_Q15_ID : Output
+
+                Functions {
+                  arm_fir_q15:test_fir_q15
+                }
+
+             }
+
+             suite FIR Q7 {
+                class = FIRQ7 
+                folder = FIRQ7
+
+                Pattern FIRINPUTS_Q7_ID : FirInput1_q7.txt
+                Pattern FIRCOEFS_Q7_ID : FirCoefs1_q7.txt
+                Pattern FIRCONFIGS_S16_ID : FirConfigs1_s16.txt 
+
+                Pattern FIRREFS_Q7_ID : FirRefs1_q7.txt
+
+                Output  OUT_Q7_ID : Output
+
+                Functions {
+                  arm_fir_q7:test_fir_q7
+                }
+
+             }
            }
         }
 
diff --git a/CMSIS/DSP/Testing/processResult.py b/CMSIS/DSP/Testing/processResult.py
index f39655e..c74dfe8 100644
--- a/CMSIS/DSP/Testing/processResult.py
+++ b/CMSIS/DSP/Testing/processResult.py
@@ -89,7 +89,7 @@
            #print(elem.path)
            print(Style.BRIGHT + ("%s%s : %s (%d)" % (ident,kind,message,theId)) + Style.RESET_ALL)
 
-      def printTest(self,elem, theId, theError,theLine,passed,cycles,params):
+      def printTest(self,elem, theId, theError,errorDetail,theLine,passed,cycles,params):
           message=elem.data["message"]
           if not elem.data["deprecated"]:
              kind = "Test"
@@ -102,6 +102,8 @@
                 print("%s %s" % (ident,params))
              if passed != 1:
                 print(Fore.RED + ("%s %s at line %d" % (ident, errorStr(theError), theLine)) + Style.RESET_ALL)
+                if (len(errorDetail)>0):
+                   print(Fore.RED + ident + " " + errorDetail + Style.RESET_ALL)
 
       def pop(self):
           None
@@ -134,7 +136,7 @@
            if elem.kind == TestScripts.Parser.TreeElem.GROUP:
               kind = "Group"
 
-      def printTest(self,elem, theId, theError, theLine,passed,cycles,params):
+      def printTest(self,elem, theId, theError, errorDetail,theLine,passed,cycles,params):
           message=elem.data["message"]
           if not elem.data["deprecated"]:
              kind = "Test"
@@ -181,7 +183,7 @@
            #else:
            #   self._toPop.append("")
 
-      def printTest(self,elem, theId, theError,theLine,passed,cycles,params):
+      def printTest(self,elem, theId, theError,errorDetail,theLine,passed,cycles,params):
           message=elem.data["message"]
           if not elem.data["deprecated"]:
              kind = "Test"
@@ -210,6 +212,7 @@
 NORMAL = 1 
 INTEST = 2
 TESTPARAM = 3
+ERRORDESC = 4
 
 def createMissingDir(destPath):
   theDir=os.path.normpath(os.path.dirname(destPath))
@@ -277,6 +280,7 @@
     elem=None
     theId=None
     theError=None
+    errorDetail=""
     theLine=None
     passed=0
     cycles=None
@@ -402,7 +406,7 @@
                     elem = findItem(root,newPath)
    
                     
-                    state = TESTPARAM
+                    state = ERRORDESC
                else:
                  if re.match(r'^%sp.*$' % prefix,l):
                    if benchFile:
@@ -414,6 +418,15 @@
                     state = INTEST
                  else:
                     state = NORMAL
+           elif state == ERRORDESC:
+                    if len(l) > 0:
+                       if re.match(r'^.*E:.*$',l):
+                          if re.match(r'^.*E:[ ].*$',l):
+                             m = re.match(r'^.*E:[ ](.*)$',l)
+                             errorDetail = m.group(1)
+                          else:
+                             errorDetail = ""
+                          state = TESTPARAM
            else:
              if len(l) > 0:
                 state = INTEST 
@@ -429,7 +442,7 @@
                    params=""
                    writeBenchmark(elem,benchFile,theId,theError,passed,cycles,params,config)
                    # Format the node
-                formatter.printTest(elem,theId,theError,theLine,passed,cycles,params)
+                formatter.printTest(elem,theId,theError,errorDetail,theLine,passed,cycles,params)
 
              
     formatter.end()