diff --git a/CMSIS/DSP/Include/dsp/interpolation_functions_f16.h b/CMSIS/DSP/Include/dsp/interpolation_functions_f16.h
index e102869..5072165 100755
--- a/CMSIS/DSP/Include/dsp/interpolation_functions_f16.h
+++ b/CMSIS/DSP/Include/dsp/interpolation_functions_f16.h
@@ -26,12 +26,78 @@
 #ifndef _INTERPOLATION_FUNCTIONS_F16_H_
 #define _INTERPOLATION_FUNCTIONS_F16_H_
 
+#include "arm_math_types_f16.h"
+#include "arm_math_memory.h"
+
+#include "dsp/none.h"
+#include "dsp/utils.h"
+
 #ifdef   __cplusplus
 extern "C"
 {
 #endif
 
 #if defined(ARM_FLOAT16_SUPPORTED)
+
+typedef struct
+{
+    uint32_t  nValues;        /**< nValues */
+    float16_t x1;             /**< x1 */
+    float16_t xSpacing;       /**< xSpacing */
+    float16_t *pYData;        /**< pointer to the table of Y values */
+} arm_linear_interp_instance_f16;
+
+/**
+ * @brief Instance structure for the floating-point bilinear interpolation function.
+ */
+typedef struct
+{
+    uint16_t  numRows;/**< number of rows in the data table. */
+    uint16_t  numCols;/**< number of columns in the data table. */
+    float16_t *pData; /**< points to the data table. */
+} arm_bilinear_interp_instance_f16;
+
+  /**
+   * @addtogroup LinearInterpolate
+   * @{
+   */
+
+    /**
+   * @brief  Process function for the floating-point Linear Interpolation Function.
+   * @param[in,out] S  is an instance of the floating-point Linear Interpolation structure
+   * @param[in]     x  input sample to process
+   * @return y processed output sample.
+   *
+   */
+  float16_t arm_linear_interp_f16(
+  arm_linear_interp_instance_f16 * S,
+  float16_t x);
+
+    /**
+   * @} end of LinearInterpolate group
+   */
+
+/**
+   * @addtogroup BilinearInterpolate
+   * @{
+   */
+
+  /**
+  * @brief  Floating-point bilinear interpolation.
+  * @param[in,out] S  points to an instance of the interpolation structure.
+  * @param[in]     X  interpolation coordinate.
+  * @param[in]     Y  interpolation coordinate.
+  * @return out interpolated value.
+  */
+  float16_t arm_bilinear_interp_f16(
+  const arm_bilinear_interp_instance_f16 * S,
+  float16_t X,
+  float16_t Y);
+
+
+  /**
+   * @} end of BilinearInterpolate group
+   */
 #endif /*defined(ARM_FLOAT16_SUPPORTED)*/
 #ifdef   __cplusplus
 }
diff --git a/CMSIS/DSP/PythonWrapper/setup.py b/CMSIS/DSP/PythonWrapper/setup.py
index a860aa7..6dc6766 100644
--- a/CMSIS/DSP/PythonWrapper/setup.py
+++ b/CMSIS/DSP/PythonWrapper/setup.py
@@ -55,7 +55,7 @@
 
 interpolation = glob.glob(os.path.join(ROOT,"Source","InterpolationFunctions","*.c"))
 interpolation.remove(os.path.join(ROOT,"Source","InterpolationFunctions","InterpolationFunctions.c"))
-
+interpolation.remove(os.path.join(ROOT,"Source","InterpolationFunctions","InterpolationFunctionsF16.c"))
 
 #modulesrc = glob.glob(os.path.join("cmsisdsp_pkg","src","*.c"))
 modulesrc = []
diff --git a/CMSIS/DSP/Source/InterpolationFunctions/CMakeLists.txt b/CMSIS/DSP/Source/InterpolationFunctions/CMakeLists.txt
index 82fb034..7ce79cf 100755
--- a/CMSIS/DSP/Source/InterpolationFunctions/CMakeLists.txt
+++ b/CMSIS/DSP/Source/InterpolationFunctions/CMakeLists.txt
@@ -5,9 +5,20 @@
 include(configLib)
 include(configDsp)
 
-file(GLOB SRC "./*_*.c")
 
-add_library(CMSISDSPInterpolation STATIC ${SRC})
+add_library(CMSISDSPInterpolation STATIC)
+
+target_sources(CMSISDSPInterpolation PRIVATE arm_bilinear_interp_f32.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_bilinear_interp_q15.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_bilinear_interp_q31.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_bilinear_interp_q7.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_linear_interp_f32.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_linear_interp_q15.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_linear_interp_q31.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_linear_interp_q7.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_spline_interp_f32.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_spline_interp_init_f32.c)
+
 
 configLib(CMSISDSPInterpolation ${ROOT})
 configDsp(CMSISDSPInterpolation ${ROOT})
@@ -17,3 +28,7 @@
 
 
 
+if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
+target_sources(CMSISDSPInterpolation PRIVATE arm_bilinear_interp_f16.c)
+target_sources(CMSISDSPInterpolation PRIVATE arm_linear_interp_f16.c)
+endif()
\ No newline at end of file
diff --git a/CMSIS/DSP/Source/InterpolationFunctions/InterpolationFunctionsF16.c b/CMSIS/DSP/Source/InterpolationFunctions/InterpolationFunctionsF16.c
new file mode 100755
index 0000000..d778de9
--- /dev/null
+++ b/CMSIS/DSP/Source/InterpolationFunctions/InterpolationFunctionsF16.c
@@ -0,0 +1,33 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        InterpolationFunctions.c
+ * Description:  Combination of all interpolation function source files.
+ *
+ * $Date:        22. July 2020
+ * $Revision:    V1.0.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "arm_bilinear_interp_f16.c"
+#include "arm_linear_interp_f16.c"
+
+
+
diff --git a/CMSIS/DSP/Source/InterpolationFunctions/arm_bilinear_interp_f16.c b/CMSIS/DSP/Source/InterpolationFunctions/arm_bilinear_interp_f16.c
new file mode 100755
index 0000000..154b5dc
--- /dev/null
+++ b/CMSIS/DSP/Source/InterpolationFunctions/arm_bilinear_interp_f16.c
@@ -0,0 +1,167 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_bilinear_interp_f16.c
+ * Description:  Floating-point bilinear interpolation
+ *
+ * $Date:        22 July 2020
+ * $Revision:    V1.9.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dsp/interpolation_functions_f16.h"
+
+#if defined(ARM_FLOAT16_SUPPORTED)
+
+
+/**
+  @ingroup groupInterpolation
+ */
+
+/**
+   * @defgroup BilinearInterpolate Bilinear Interpolation
+   *
+   * Bilinear interpolation is an extension of linear interpolation applied to a two dimensional grid.
+   * The underlying function <code>f(x, y)</code> is sampled on a regular grid and the interpolation process
+   * determines values between the grid points.
+   * Bilinear interpolation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-dimension.
+   * Bilinear interpolation is often used in image processing to rescale images.
+   * The CMSIS DSP library provides bilinear interpolation functions for Q7, Q15, Q31, and floating-point data types.
+   *
+   * <b>Algorithm</b>
+   * \par
+   * The instance structure used by the bilinear interpolation functions describes a two dimensional data table.
+   * For floating-point, the instance structure is defined as:
+   * <pre>
+   *   typedef struct
+   *   {
+   *     uint16_t numRows;
+   *     uint16_t numCols;
+   *     float16_t *pData;
+   * } arm_bilinear_interp_instance_f16;
+   * </pre>
+   *
+   * \par
+   * where <code>numRows</code> specifies the number of rows in the table;
+   * <code>numCols</code> specifies the number of columns in the table;
+   * and <code>pData</code> points to an array of size <code>numRows*numCols</code> values.
+   * The data table <code>pTable</code> is organized in row order and the supplied data values fall on integer indexes.
+   * That is, table element (x,y) is located at <code>pTable[x + y*numCols]</code> where x and y are integers.
+   *
+   * \par
+   * Let <code>(x, y)</code> specify the desired interpolation point.  Then define:
+   * <pre>
+   *     XF = floor(x)
+   *     YF = floor(y)
+   * </pre>
+   * \par
+   * The interpolated output point is computed as:
+   * <pre>
+   *  f(x, y) = f(XF, YF) * (1-(x-XF)) * (1-(y-YF))
+   *           + f(XF+1, YF) * (x-XF)*(1-(y-YF))
+   *           + f(XF, YF+1) * (1-(x-XF))*(y-YF)
+   *           + f(XF+1, YF+1) * (x-XF)*(y-YF)
+   * </pre>
+   * Note that the coordinates (x, y) contain integer and fractional components.
+   * The integer components specify which portion of the table to use while the
+   * fractional components control the interpolation processor.
+   *
+   * \par
+   * if (x,y) are outside of the table boundary, Bilinear interpolation returns zero output.
+   */
+
+
+  /**
+   * @addtogroup BilinearInterpolate
+   * @{
+   */
+
+
+  /**
+  * @brief  Floating-point bilinear interpolation.
+  * @param[in,out] S  points to an instance of the interpolation structure.
+  * @param[in]     X  interpolation coordinate.
+  * @param[in]     Y  interpolation coordinate.
+  * @return out interpolated value.
+  */
+  float16_t arm_bilinear_interp_f16(
+  const arm_bilinear_interp_instance_f16 * S,
+  float16_t X,
+  float16_t Y)
+  {
+    float16_t out;
+    float16_t f00, f01, f10, f11;
+    float16_t *pData = S->pData;
+    int32_t xIndex, yIndex, index;
+    float16_t xdiff, ydiff;
+    float16_t b1, b2, b3, b4;
+
+    xIndex = (int32_t) X;
+    yIndex = (int32_t) Y;
+
+    /* Care taken for table outside boundary */
+    /* Returns zero output when values are outside table boundary */
+    if (xIndex < 0 || xIndex > (S->numCols - 2) || yIndex < 0 || yIndex > (S->numRows - 2))
+    {
+      return (0);
+    }
+
+    /* Calculation of index for two nearest points in X-direction */
+    index = (xIndex ) + (yIndex ) * S->numCols;
+
+
+    /* Read two nearest points in X-direction */
+    f00 = pData[index];
+    f01 = pData[index + 1];
+
+    /* Calculation of index for two nearest points in Y-direction */
+    index = (xIndex ) + (yIndex+1) * S->numCols;
+
+
+    /* Read two nearest points in Y-direction */
+    f10 = pData[index];
+    f11 = pData[index + 1];
+
+    /* Calculation of intermediate values */
+    b1 = f00;
+    b2 = f01 - f00;
+    b3 = f10 - f00;
+    b4 = f00 - f01 - f10 + f11;
+
+    /* Calculation of fractional part in X */
+    xdiff = X - xIndex;
+
+    /* Calculation of fractional part in Y */
+    ydiff = Y - yIndex;
+
+    /* Calculation of bi-linear interpolated output */
+    out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff;
+
+    /* return to application */
+    return (out);
+  }
+
+  /**
+   * @} end of BilinearInterpolate group
+   */
+
+
+#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ 
+
diff --git a/CMSIS/DSP/Source/InterpolationFunctions/arm_linear_interp_f16.c b/CMSIS/DSP/Source/InterpolationFunctions/arm_linear_interp_f16.c
new file mode 100755
index 0000000..0fd13ea
--- /dev/null
+++ b/CMSIS/DSP/Source/InterpolationFunctions/arm_linear_interp_f16.c
@@ -0,0 +1,131 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_linear_interp_f16.c
+ * Description:  Floating-point linear interpolation
+ *
+ * $Date:        22 July 2020
+ * $Revision:    V1.9.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dsp/interpolation_functions_f16.h"
+
+#if defined(ARM_FLOAT16_SUPPORTED)
+
+
+/**
+  @ingroup groupInterpolation
+ */
+
+/**
+   * @defgroup LinearInterpolate Linear Interpolation
+   *
+   * Linear interpolation is a method of curve fitting using linear polynomials.
+   * Linear interpolation works by effectively drawing a straight line between two neighboring samples and returning the appropriate point along that line
+   *
+   * \par
+   * \image html LinearInterp.gif "Linear interpolation"
+   *
+   * \par
+   * A  Linear Interpolate function calculates an output value(y), for the input(x)
+   * using linear interpolation of the input values x0, x1( nearest input values) and the output values y0 and y1(nearest output values)
+   *
+   * \par Algorithm:
+   * <pre>
+   *       y = y0 + (x - x0) * ((y1 - y0)/(x1-x0))
+   *       where x0, x1 are nearest values of input x
+   *             y0, y1 are nearest values to output y
+   * </pre>
+   *
+   * \par
+   * This set of functions implements Linear interpolation process
+   * for Q7, Q15, Q31, and floating-point data types.  The functions operate on a single
+   * sample of data and each call to the function returns a single processed value.
+   * <code>S</code> points to an instance of the Linear Interpolate function data structure.
+   * <code>x</code> is the input sample value. The functions returns the output value.
+   *
+   * \par
+   * if x is outside of the table boundary, Linear interpolation returns first value of the table
+   * if x is below input range and returns last value of table if x is above range.
+   */
+
+/**
+   * @addtogroup LinearInterpolate
+   * @{
+   */
+
+  /**
+   * @brief  Process function for the floating-point Linear Interpolation Function.
+   * @param[in,out] S  is an instance of the floating-point Linear Interpolation structure
+   * @param[in]     x  input sample to process
+   * @return y processed output sample.
+   *
+   */
+  float16_t arm_linear_interp_f16(
+  arm_linear_interp_instance_f16 * S,
+  float16_t x)
+  {
+    float16_t y;
+    float16_t x0, x1;                            /* Nearest input values */
+    float16_t y0, y1;                            /* Nearest output values */
+    float16_t xSpacing = S->xSpacing;            /* spacing between input values */
+    int32_t i;                                   /* Index variable */
+    float16_t *pYData = S->pYData;               /* pointer to output table */
+
+    /* Calculation of index */
+    i = (int32_t) ((x - S->x1) / xSpacing);
+
+    if (i < 0)
+    {
+      /* Iniatilize output for below specified range as least output value of table */
+      y = pYData[0];
+    }
+    else if ((uint32_t)i >= (S->nValues - 1))
+    {
+      /* Iniatilize output for above specified range as last output value of table */
+      y = pYData[S->nValues - 1];
+    }
+    else
+    {
+      /* Calculation of nearest input values */
+      x0 = S->x1 +  i      * xSpacing;
+      x1 = S->x1 + (i + 1) * xSpacing;
+
+      /* Read of nearest output values */
+      y0 = pYData[i];
+      y1 = pYData[i + 1];
+
+      /* Calculation of output */
+      y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0));
+
+    }
+
+    /* returns output value */
+    return (y);
+  }
+
+  /**
+   * @} end of LinearInterpolate group
+   */
+
+
+#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ 
+
diff --git a/CMSIS/DSP/Testing/CMakeLists.txt b/CMSIS/DSP/Testing/CMakeLists.txt
index 6b4ea12..51b1665 100644
--- a/CMSIS/DSP/Testing/CMakeLists.txt
+++ b/CMSIS/DSP/Testing/CMakeLists.txt
@@ -328,6 +328,7 @@
 set(TESTSRC16 
   Source/Tests/BasicTestsF16.cpp
   Source/Tests/ComplexTestsF16.cpp
+  Source/Tests/InterpolationTestsF16.cpp
   Source/Tests/FIRF16.cpp
   Source/Tests/BIQUADF16.cpp
   Source/Tests/MISCF16.cpp
diff --git a/CMSIS/DSP/Testing/Include/Tests/InterpolationTestsF16.h b/CMSIS/DSP/Testing/Include/Tests/InterpolationTestsF16.h
new file mode 100755
index 0000000..5e4e03b
--- /dev/null
+++ b/CMSIS/DSP/Testing/Include/Tests/InterpolationTestsF16.h
@@ -0,0 +1,33 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/interpolation_functions_f16.h"
+
+class InterpolationTestsF16:public Client::Suite
+    {
+        public:
+            InterpolationTestsF16(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 "InterpolationTestsF16_decl.h"
+            
+            Client::Pattern<float16_t> input;
+            Client::Pattern<float16_t> y;
+            Client::Pattern<int16_t> config;
+            Client::LocalPattern<float16_t> output;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<float16_t> ref;
+
+            arm_linear_interp_instance_f16 S;
+            arm_bilinear_interp_instance_f16 SBI;
+
+
+            Client::Pattern<float16_t> inputX;
+            Client::Pattern<float16_t> inputY;
+            Client::Pattern<float16_t> outputX;
+
+            Client::LocalPattern<float16_t> buffer;
+            Client::LocalPattern<float16_t> splineCoefs;
+
+    };
diff --git a/CMSIS/DSP/Testing/PatternGeneration/Interpolate.py b/CMSIS/DSP/Testing/PatternGeneration/Interpolate.py
index 0455a1c..2c092ba 100755
--- a/CMSIS/DSP/Testing/PatternGeneration/Interpolate.py
+++ b/CMSIS/DSP/Testing/PatternGeneration/Interpolate.py
@@ -22,9 +22,9 @@
     data=data[:-1]
     z = f(data)
 
-    if format != 0:
+    if format != 0 and format != 16:
        data = data / 2.0**11
-    if format != 0:
+    if format != 0 and format != 16:
        config.writeInputQ31(1, data,"Input")
     else:
        config.writeInput(1, data)
@@ -81,10 +81,10 @@
     ref=np.array([f(i[0],i[1]) for i in inputVals])
 
 
-    if format != 0:
+    if format != 0 and format != 16:
        inputSamples = inputSamples / 2.0**11
     data = inputSamples.reshape(np.size(inputSamples))
-    if format != 0:
+    if format != 0 and format != 16:
        config.writeInputQ31(2, data,"Input")
     else:
        config.writeInput(2, data)
@@ -130,11 +130,13 @@
     PARAMDIR = os.path.join("Parameters","DSP","Interpolation","Interpolation")
     
     configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
+    configf16=Tools.Config(PATTERNDIR,PARAMDIR,"f16")
     configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31")
     configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15")
     configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7")
     
     writeTests(configf32,0)
+    writeTests(configf16,16)
     writeTests(configq31,31)
     writeTests(configq15,15)
     writeTests(configq7,7)
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Config2_s16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Config2_s16.txt
new file mode 100755
index 0000000..e1a80be
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Config2_s16.txt
@@ -0,0 +1,6 @@
+H
+2
+// 7
+0x0007
+// 8
+0x0008
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt
new file mode 100755
index 0000000..d3c792e
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt
@@ -0,0 +1,82 @@
+H
+40
+// 0.500000
+0x3800
+// 1.500000
+0x3e00
+// 2.500000
+0x4100
+// 3.500000
+0x4300
+// 4.500000
+0x4480
+// 5.500000
+0x4580
+// 6.500000
+0x4680
+// 7.500000
+0x4780
+// 8.500000
+0x4840
+// 9.500000
+0x48c0
+// 10.500000
+0x4940
+// 11.500000
+0x49c0
+// 12.500000
+0x4a40
+// 13.500000
+0x4ac0
+// 14.500000
+0x4b40
+// 15.500000
+0x4bc0
+// 16.500000
+0x4c20
+// 17.500000
+0x4c60
+// 18.500000
+0x4ca0
+// 19.500000
+0x4ce0
+// 20.500000
+0x4d20
+// 21.500000
+0x4d60
+// 22.500000
+0x4da0
+// 23.500000
+0x4de0
+// 24.500000
+0x4e20
+// 25.500000
+0x4e60
+// 26.500000
+0x4ea0
+// 27.500000
+0x4ee0
+// 28.500000
+0x4f20
+// 29.500000
+0x4f60
+// 30.500000
+0x4fa0
+// 31.500000
+0x4fe0
+// 32.500000
+0x5010
+// 33.500000
+0x5030
+// 34.500000
+0x5050
+// 35.500000
+0x5070
+// 36.500000
+0x5090
+// 37.500000
+0x50b0
+// 38.500000
+0x50d0
+// 39.500000
+0x50f0
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input2_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input2_f16.txt
new file mode 100755
index 0000000..891e726
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input2_f16.txt
@@ -0,0 +1,602 @@
+H
+300
+// 0.500000
+0x3800
+// 0.500000
+0x3800
+// 0.944444
+0x3b8e
+// 0.500000
+0x3800
+// 1.388889
+0x3d8e
+// 0.500000
+0x3800
+// 1.833333
+0x3f55
+// 0.500000
+0x3800
+// 2.277778
+0x408e
+// 0.500000
+0x3800
+// 2.722222
+0x4172
+// 0.500000
+0x3800
+// 3.166667
+0x4255
+// 0.500000
+0x3800
+// 3.611111
+0x4339
+// 0.500000
+0x3800
+// 4.055556
+0x440e
+// 0.500000
+0x3800
+// 4.500000
+0x4480
+// 0.500000
+0x3800
+// 0.500000
+0x3800
+// 0.857143
+0x3adb
+// 0.944444
+0x3b8e
+// 0.857143
+0x3adb
+// 1.388889
+0x3d8e
+// 0.857143
+0x3adb
+// 1.833333
+0x3f55
+// 0.857143
+0x3adb
+// 2.277778
+0x408e
+// 0.857143
+0x3adb
+// 2.722222
+0x4172
+// 0.857143
+0x3adb
+// 3.166667
+0x4255
+// 0.857143
+0x3adb
+// 3.611111
+0x4339
+// 0.857143
+0x3adb
+// 4.055556
+0x440e
+// 0.857143
+0x3adb
+// 4.500000
+0x4480
+// 0.857143
+0x3adb
+// 0.500000
+0x3800
+// 1.214286
+0x3cdb
+// 0.944444
+0x3b8e
+// 1.214286
+0x3cdb
+// 1.388889
+0x3d8e
+// 1.214286
+0x3cdb
+// 1.833333
+0x3f55
+// 1.214286
+0x3cdb
+// 2.277778
+0x408e
+// 1.214286
+0x3cdb
+// 2.722222
+0x4172
+// 1.214286
+0x3cdb
+// 3.166667
+0x4255
+// 1.214286
+0x3cdb
+// 3.611111
+0x4339
+// 1.214286
+0x3cdb
+// 4.055556
+0x440e
+// 1.214286
+0x3cdb
+// 4.500000
+0x4480
+// 1.214286
+0x3cdb
+// 0.500000
+0x3800
+// 1.571429
+0x3e49
+// 0.944444
+0x3b8e
+// 1.571429
+0x3e49
+// 1.388889
+0x3d8e
+// 1.571429
+0x3e49
+// 1.833333
+0x3f55
+// 1.571429
+0x3e49
+// 2.277778
+0x408e
+// 1.571429
+0x3e49
+// 2.722222
+0x4172
+// 1.571429
+0x3e49
+// 3.166667
+0x4255
+// 1.571429
+0x3e49
+// 3.611111
+0x4339
+// 1.571429
+0x3e49
+// 4.055556
+0x440e
+// 1.571429
+0x3e49
+// 4.500000
+0x4480
+// 1.571429
+0x3e49
+// 0.500000
+0x3800
+// 1.928571
+0x3fb7
+// 0.944444
+0x3b8e
+// 1.928571
+0x3fb7
+// 1.388889
+0x3d8e
+// 1.928571
+0x3fb7
+// 1.833333
+0x3f55
+// 1.928571
+0x3fb7
+// 2.277778
+0x408e
+// 1.928571
+0x3fb7
+// 2.722222
+0x4172
+// 1.928571
+0x3fb7
+// 3.166667
+0x4255
+// 1.928571
+0x3fb7
+// 3.611111
+0x4339
+// 1.928571
+0x3fb7
+// 4.055556
+0x440e
+// 1.928571
+0x3fb7
+// 4.500000
+0x4480
+// 1.928571
+0x3fb7
+// 0.500000
+0x3800
+// 2.285714
+0x4092
+// 0.944444
+0x3b8e
+// 2.285714
+0x4092
+// 1.388889
+0x3d8e
+// 2.285714
+0x4092
+// 1.833333
+0x3f55
+// 2.285714
+0x4092
+// 2.277778
+0x408e
+// 2.285714
+0x4092
+// 2.722222
+0x4172
+// 2.285714
+0x4092
+// 3.166667
+0x4255
+// 2.285714
+0x4092
+// 3.611111
+0x4339
+// 2.285714
+0x4092
+// 4.055556
+0x440e
+// 2.285714
+0x4092
+// 4.500000
+0x4480
+// 2.285714
+0x4092
+// 0.500000
+0x3800
+// 2.642857
+0x4149
+// 0.944444
+0x3b8e
+// 2.642857
+0x4149
+// 1.388889
+0x3d8e
+// 2.642857
+0x4149
+// 1.833333
+0x3f55
+// 2.642857
+0x4149
+// 2.277778
+0x408e
+// 2.642857
+0x4149
+// 2.722222
+0x4172
+// 2.642857
+0x4149
+// 3.166667
+0x4255
+// 2.642857
+0x4149
+// 3.611111
+0x4339
+// 2.642857
+0x4149
+// 4.055556
+0x440e
+// 2.642857
+0x4149
+// 4.500000
+0x4480
+// 2.642857
+0x4149
+// 0.500000
+0x3800
+// 3.000000
+0x4200
+// 0.944444
+0x3b8e
+// 3.000000
+0x4200
+// 1.388889
+0x3d8e
+// 3.000000
+0x4200
+// 1.833333
+0x3f55
+// 3.000000
+0x4200
+// 2.277778
+0x408e
+// 3.000000
+0x4200
+// 2.722222
+0x4172
+// 3.000000
+0x4200
+// 3.166667
+0x4255
+// 3.000000
+0x4200
+// 3.611111
+0x4339
+// 3.000000
+0x4200
+// 4.055556
+0x440e
+// 3.000000
+0x4200
+// 4.500000
+0x4480
+// 3.000000
+0x4200
+// 0.500000
+0x3800
+// 3.357143
+0x42b7
+// 0.944444
+0x3b8e
+// 3.357143
+0x42b7
+// 1.388889
+0x3d8e
+// 3.357143
+0x42b7
+// 1.833333
+0x3f55
+// 3.357143
+0x42b7
+// 2.277778
+0x408e
+// 3.357143
+0x42b7
+// 2.722222
+0x4172
+// 3.357143
+0x42b7
+// 3.166667
+0x4255
+// 3.357143
+0x42b7
+// 3.611111
+0x4339
+// 3.357143
+0x42b7
+// 4.055556
+0x440e
+// 3.357143
+0x42b7
+// 4.500000
+0x4480
+// 3.357143
+0x42b7
+// 0.500000
+0x3800
+// 3.714286
+0x436e
+// 0.944444
+0x3b8e
+// 3.714286
+0x436e
+// 1.388889
+0x3d8e
+// 3.714286
+0x436e
+// 1.833333
+0x3f55
+// 3.714286
+0x436e
+// 2.277778
+0x408e
+// 3.714286
+0x436e
+// 2.722222
+0x4172
+// 3.714286
+0x436e
+// 3.166667
+0x4255
+// 3.714286
+0x436e
+// 3.611111
+0x4339
+// 3.714286
+0x436e
+// 4.055556
+0x440e
+// 3.714286
+0x436e
+// 4.500000
+0x4480
+// 3.714286
+0x436e
+// 0.500000
+0x3800
+// 4.071429
+0x4412
+// 0.944444
+0x3b8e
+// 4.071429
+0x4412
+// 1.388889
+0x3d8e
+// 4.071429
+0x4412
+// 1.833333
+0x3f55
+// 4.071429
+0x4412
+// 2.277778
+0x408e
+// 4.071429
+0x4412
+// 2.722222
+0x4172
+// 4.071429
+0x4412
+// 3.166667
+0x4255
+// 4.071429
+0x4412
+// 3.611111
+0x4339
+// 4.071429
+0x4412
+// 4.055556
+0x440e
+// 4.071429
+0x4412
+// 4.500000
+0x4480
+// 4.071429
+0x4412
+// 0.500000
+0x3800
+// 4.428571
+0x446e
+// 0.944444
+0x3b8e
+// 4.428571
+0x446e
+// 1.388889
+0x3d8e
+// 4.428571
+0x446e
+// 1.833333
+0x3f55
+// 4.428571
+0x446e
+// 2.277778
+0x408e
+// 4.428571
+0x446e
+// 2.722222
+0x4172
+// 4.428571
+0x446e
+// 3.166667
+0x4255
+// 4.428571
+0x446e
+// 3.611111
+0x4339
+// 4.428571
+0x446e
+// 4.055556
+0x440e
+// 4.428571
+0x446e
+// 4.500000
+0x4480
+// 4.428571
+0x446e
+// 0.500000
+0x3800
+// 4.785714
+0x44c9
+// 0.944444
+0x3b8e
+// 4.785714
+0x44c9
+// 1.388889
+0x3d8e
+// 4.785714
+0x44c9
+// 1.833333
+0x3f55
+// 4.785714
+0x44c9
+// 2.277778
+0x408e
+// 4.785714
+0x44c9
+// 2.722222
+0x4172
+// 4.785714
+0x44c9
+// 3.166667
+0x4255
+// 4.785714
+0x44c9
+// 3.611111
+0x4339
+// 4.785714
+0x44c9
+// 4.055556
+0x440e
+// 4.785714
+0x44c9
+// 4.500000
+0x4480
+// 4.785714
+0x44c9
+// 0.500000
+0x3800
+// 5.142857
+0x4525
+// 0.944444
+0x3b8e
+// 5.142857
+0x4525
+// 1.388889
+0x3d8e
+// 5.142857
+0x4525
+// 1.833333
+0x3f55
+// 5.142857
+0x4525
+// 2.277778
+0x408e
+// 5.142857
+0x4525
+// 2.722222
+0x4172
+// 5.142857
+0x4525
+// 3.166667
+0x4255
+// 5.142857
+0x4525
+// 3.611111
+0x4339
+// 5.142857
+0x4525
+// 4.055556
+0x440e
+// 5.142857
+0x4525
+// 4.500000
+0x4480
+// 5.142857
+0x4525
+// 0.500000
+0x3800
+// 5.500000
+0x4580
+// 0.944444
+0x3b8e
+// 5.500000
+0x4580
+// 1.388889
+0x3d8e
+// 5.500000
+0x4580
+// 1.833333
+0x3f55
+// 5.500000
+0x4580
+// 2.277778
+0x408e
+// 5.500000
+0x4580
+// 2.722222
+0x4172
+// 5.500000
+0x4580
+// 3.166667
+0x4255
+// 5.500000
+0x4580
+// 3.611111
+0x4339
+// 5.500000
+0x4580
+// 4.055556
+0x440e
+// 5.500000
+0x4580
+// 4.500000
+0x4480
+// 5.500000
+0x4580
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX3_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX3_f16.txt
new file mode 100755
index 0000000..49e1b9b
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX3_f16.txt
@@ -0,0 +1,10 @@
+H
+4
+// 0.000000
+0x0
+// 3.000000
+0x4200
+// 10.000000
+0x4900
+// 20.000000
+0x4d00
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX4_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX4_f16.txt
new file mode 100755
index 0000000..70449cf
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX4_f16.txt
@@ -0,0 +1,20 @@
+H
+9
+// 0.000000
+0x0
+// 0.785398
+0x3a48
+// 1.570796
+0x3e48
+// 2.356194
+0x40b6
+// 3.141593
+0x4248
+// 3.926991
+0x43db
+// 4.712389
+0x44b6
+// 5.497787
+0x457f
+// 6.283185
+0x4648
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX5_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX5_f16.txt
new file mode 100755
index 0000000..d8becd9
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputX5_f16.txt
@@ -0,0 +1,8 @@
+H
+3
+// 0.000000
+0x0
+// 3.000000
+0x4200
+// 10.000000
+0x4900
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY3_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY3_f16.txt
new file mode 100755
index 0000000..95f9c6b
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY3_f16.txt
@@ -0,0 +1,10 @@
+H
+4
+// 0.000000
+0x0
+// 9.000000
+0x4880
+// 100.000000
+0x5640
+// 400.000000
+0x5e40
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY4_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY4_f16.txt
new file mode 100755
index 0000000..9b0da45
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY4_f16.txt
@@ -0,0 +1,20 @@
+H
+9
+// 0.000000
+0x0
+// 0.707107
+0x39a8
+// 1.000000
+0x3c00
+// 0.707107
+0x39a8
+// 0.000000
+0x0
+// -0.707107
+0xb9a8
+// -1.000000
+0xbc00
+// -0.707107
+0xb9a8
+// -0.000000
+0x8000
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY5_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY5_f16.txt
new file mode 100755
index 0000000..d8becd9
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/InputY5_f16.txt
@@ -0,0 +1,8 @@
+H
+3
+// 0.000000
+0x0
+// 3.000000
+0x4200
+// 10.000000
+0x4900
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX3_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX3_f16.txt
new file mode 100755
index 0000000..b0f7a9a
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX3_f16.txt
@@ -0,0 +1,42 @@
+H
+20
+// 0.000000
+0x0
+// 1.000000
+0x3c00
+// 2.000000
+0x4000
+// 3.000000
+0x4200
+// 4.000000
+0x4400
+// 5.000000
+0x4500
+// 6.000000
+0x4600
+// 7.000000
+0x4700
+// 8.000000
+0x4800
+// 9.000000
+0x4880
+// 10.000000
+0x4900
+// 11.000000
+0x4980
+// 12.000000
+0x4a00
+// 13.000000
+0x4a80
+// 14.000000
+0x4b00
+// 15.000000
+0x4b80
+// 16.000000
+0x4c00
+// 17.000000
+0x4c40
+// 18.000000
+0x4c80
+// 19.000000
+0x4cc0
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX4_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX4_f16.txt
new file mode 100755
index 0000000..dfc3775
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX4_f16.txt
@@ -0,0 +1,68 @@
+H
+33
+// 0.000000
+0x0
+// 0.196350
+0x3248
+// 0.392699
+0x3648
+// 0.589049
+0x38b6
+// 0.785398
+0x3a48
+// 0.981748
+0x3bdb
+// 1.178097
+0x3cb6
+// 1.374447
+0x3d7f
+// 1.570796
+0x3e48
+// 1.767146
+0x3f12
+// 1.963495
+0x3fdb
+// 2.159845
+0x4052
+// 2.356194
+0x40b6
+// 2.552544
+0x411b
+// 2.748894
+0x417f
+// 2.945243
+0x41e4
+// 3.141593
+0x4248
+// 3.337942
+0x42ad
+// 3.534292
+0x4312
+// 3.730641
+0x4376
+// 3.926991
+0x43db
+// 4.123340
+0x4420
+// 4.319690
+0x4452
+// 4.516039
+0x4484
+// 4.712389
+0x44b6
+// 4.908739
+0x44e9
+// 5.105088
+0x451b
+// 5.301438
+0x454d
+// 5.497787
+0x457f
+// 5.694137
+0x45b2
+// 5.890486
+0x45e4
+// 6.086836
+0x4616
+// 6.283185
+0x4648
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX5_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX5_f16.txt
new file mode 100755
index 0000000..b82cb18
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/OutputX5_f16.txt
@@ -0,0 +1,62 @@
+H
+30
+// -10.000000
+0xc900
+// -9.000000
+0xc880
+// -8.000000
+0xc800
+// -7.000000
+0xc700
+// -6.000000
+0xc600
+// -5.000000
+0xc500
+// -4.000000
+0xc400
+// -3.000000
+0xc200
+// -2.000000
+0xc000
+// -1.000000
+0xbc00
+// 0.000000
+0x0
+// 1.000000
+0x3c00
+// 2.000000
+0x4000
+// 3.000000
+0x4200
+// 4.000000
+0x4400
+// 5.000000
+0x4500
+// 6.000000
+0x4600
+// 7.000000
+0x4700
+// 8.000000
+0x4800
+// 9.000000
+0x4880
+// 10.000000
+0x4900
+// 11.000000
+0x4980
+// 12.000000
+0x4a00
+// 13.000000
+0x4a80
+// 14.000000
+0x4b00
+// 15.000000
+0x4b80
+// 16.000000
+0x4c00
+// 17.000000
+0x4c40
+// 18.000000
+0x4c80
+// 19.000000
+0x4cc0
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt
new file mode 100755
index 0000000..353af9a
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt
@@ -0,0 +1,82 @@
+H
+40
+// 0.999836
+0x3c00
+// 0.997208
+0x3bfa
+// 0.984118
+0x3bdf
+// 0.945255
+0x3b90
+// 0.859251
+0x3ae0
+// 0.702426
+0x399f
+// 0.456301
+0x374d
+// 0.119531
+0x2fa6
+// -0.277482
+0xb471
+// -0.661314
+0xb94a
+// -0.918537
+0xbb59
+// -0.925695
+0xbb68
+// -0.611097
+0xb8e4
+// -0.030945
+0xa7ec
+// 0.589481
+0x38b7
+// 0.915804
+0x3b54
+// 0.695054
+0x398f
+// -0.004498
+0x9c9b
+// -0.712082
+0xb9b2
+// -0.829765
+0xbaa3
+// -0.183298
+0xb1de
+// 0.647457
+0x392e
+// 0.765024
+0x3a1f
+// -0.024301
+0xa639
+// -0.770387
+0xba2a
+// -0.447708
+0xb72a
+// 0.521104
+0x382b
+// 0.650064
+0x3933
+// -0.298863
+0xb4c8
+// -0.688210
+0xb981
+// 0.207648
+0x32a5
+// 0.656951
+0x3941
+// -0.253282
+0xb40d
+// -0.570816
+0xb891
+// 0.398647
+0x3661
+// 0.379176
+0x3611
+// -0.548368
+0xb863
+// -0.036721
+0xa8b3
+// 0.524152
+0x3831
+// -0.358152
+0xb5bb
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference2_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference2_f16.txt
new file mode 100755
index 0000000..11a6132
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference2_f16.txt
@@ -0,0 +1,302 @@
+H
+150
+// 0.373384
+0x35f9
+// 0.203820
+0x3286
+// 0.011612
+0x21f2
+// -0.183830
+0xb1e2
+// -0.345125
+0xb586
+// -0.485933
+0xb7c6
+// -0.560815
+0xb87d
+// -0.525820
+0xb835
+// -0.435634
+0xb6f8
+// 0.040890
+0x293c
+// 0.026219
+0x26b6
+// -0.324983
+0xb533
+// -0.122774
+0xafdc
+// 0.158492
+0x3112
+// 0.004431
+0x1c8a
+// -0.410827
+0xb693
+// -0.590305
+0xb8b9
+// -0.376814
+0xb607
+// -0.151634
+0xb0da
+// 0.155369
+0x30f9
+// -0.057384
+0xab58
+// -0.300094
+0xb4cd
+// -0.099685
+0xae61
+// 0.164026
+0x3140
+// 0.075748
+0x2cd9
+// -0.223723
+0xb329
+// -0.350221
+0xb59b
+// -0.188431
+0xb208
+// -0.028933
+0xa768
+// 0.114515
+0x2f54
+// 0.034722
+0x2872
+// 0.093922
+0x2e03
+// 0.028388
+0x2744
+// -0.054967
+0xab09
+// -0.038428
+0xa8eb
+// 0.038047
+0x28df
+// 0.069578
+0x2c74
+// 0.026203
+0x26b5
+// -0.013765
+0xa30c
+// -0.029893
+0xa7a7
+// 0.126828
+0x300f
+// 0.487939
+0x37cf
+// 0.156461
+0x3102
+// -0.273959
+0xb462
+// -0.152604
+0xb0e2
+// 0.299816
+0x34cc
+// 0.489377
+0x37d4
+// 0.240837
+0x33b5
+// 0.001402
+0x15be
+// -0.174301
+0xb194
+// -0.145827
+0xb0ab
+// 0.144655
+0x30a1
+// 0.077152
+0x2cf0
+// -0.041492
+0xa950
+// 0.115844
+0x2f6a
+// 0.438769
+0x3705
+// 0.583165
+0x38aa
+// 0.430014
+0x36e1
+// 0.250144
+0x3401
+// -0.116764
+0xaf79
+// -0.509673
+0xb814
+// -0.382953
+0xb621
+// -0.054002
+0xaaea
+// 0.303839
+0x34dd
+// 0.479948
+0x37ae
+// 0.547017
+0x3860
+// 0.595451
+0x38c3
+// 0.612827
+0x38e7
+// 0.557279
+0x3875
+// -0.008740
+0xa07a
+// -0.873518
+0xbafd
+// -0.910562
+0xbb49
+// -0.185156
+0xb1ed
+// 0.649170
+0x3932
+// 0.844051
+0x3ac1
+// 0.655264
+0x393e
+// 0.607736
+0x38dd
+// 0.795640
+0x3a5d
+// 0.864414
+0x3aea
+// 0.099283
+0x2e5b
+// -0.814436
+0xba84
+// -0.928275
+0xbb6d
+// -0.201519
+0xb273
+// 0.645323
+0x392a
+// 0.793662
+0x3a59
+// 0.522901
+0x382f
+// 0.437868
+0x3702
+// 0.662386
+0x394d
+// 0.777657
+0x3a39
+// 0.128210
+0x301a
+// -0.755355
+0xba0b
+// -0.945988
+0xbb91
+// -0.217881
+0xb2f9
+// 0.641475
+0x3922
+// 0.743273
+0x39f2
+// 0.390537
+0x3640
+// 0.268001
+0x344a
+// 0.529132
+0x383c
+// 0.690901
+0x3987
+// 0.157136
+0x3107
+// -0.719795
+0xb9c2
+// -0.950653
+0xbb9b
+// -0.225545
+0xb338
+// 0.636130
+0x3917
+// 0.712439
+0x39b3
+// 0.317528
+0x3515
+// 0.175498
+0x319e
+// 0.454936
+0x3747
+// 0.640823
+0x3920
+// 0.171852
+0x3180
+// -0.778323
+0xba3a
+// -0.903125
+0xbb3a
+// -0.198415
+0xb259
+// 0.624797
+0x3900
+// 0.759823
+0x3a14
+// 0.481938
+0x37b6
+// 0.392455
+0x3647
+// 0.616975
+0x38f0
+// 0.737463
+0x39e6
+// 0.129721
+0x3027
+// -0.836852
+0xbab2
+// -0.855598
+0xbad8
+// -0.171286
+0xb17b
+// 0.613463
+0x38e8
+// 0.807207
+0x3a75
+// 0.646348
+0x392c
+// 0.609412
+0x38e0
+// 0.779014
+0x3a3b
+// 0.834102
+0x3aac
+// 0.087591
+0x2d9b
+// -0.681885
+0xb975
+// -0.591371
+0xb8bb
+// -0.101033
+0xae77
+// 0.446422
+0x3725
+// 0.648792
+0x3931
+// 0.644111
+0x3927
+// 0.668335
+0x3959
+// 0.740732
+0x39ed
+// 0.717385
+0x39bd
+// 0.023824
+0x2619
+// -0.206676
+0xb29d
+// -0.002096
+0x984b
+// 0.033904
+0x2857
+// 0.045820
+0x29dd
+// 0.181680
+0x31d0
+// 0.391905
+0x3645
+// 0.490207
+0x37d8
+// 0.401969
+0x366e
+// 0.280633
+0x347d
+// -0.072398
+0xaca2
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference3_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference3_f16.txt
new file mode 100755
index 0000000..8bef82d
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference3_f16.txt
@@ -0,0 +1,42 @@
+H
+20
+// 0.000000
+0x0
+// 1.000000
+0x3c00
+// 4.000000
+0x4400
+// 9.000000
+0x4880
+// 16.000000
+0x4c00
+// 25.000000
+0x4e40
+// 36.000000
+0x5080
+// 49.000000
+0x5220
+// 64.000000
+0x5400
+// 81.000000
+0x5510
+// 100.000000
+0x5640
+// 121.000000
+0x5790
+// 144.000000
+0x5880
+// 169.000000
+0x5948
+// 196.000000
+0x5a20
+// 225.000000
+0x5b08
+// 256.000000
+0x5c00
+// 289.000000
+0x5c84
+// 324.000000
+0x5d10
+// 361.000000
+0x5da4
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference4_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference4_f16.txt
new file mode 100755
index 0000000..d99c349
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference4_f16.txt
@@ -0,0 +1,68 @@
+H
+33
+// 0.000000
+0x0
+// 0.194708
+0x323b
+// 0.382243
+0x361e
+// 0.555433
+0x3872
+// 0.707107
+0x39a8
+// 0.830791
+0x3aa5
+// 0.922816
+0x3b62
+// 0.980209
+0x3bd7
+// 1.000000
+0x3c00
+// 0.980209
+0x3bd7
+// 0.922816
+0x3b62
+// 0.830791
+0x3aa5
+// 0.707107
+0x39a8
+// 0.555433
+0x3872
+// 0.382243
+0x361e
+// 0.194708
+0x323b
+// 0.000000
+0x0
+// -0.194708
+0xb23b
+// -0.382243
+0xb61e
+// -0.555433
+0xb872
+// -0.707107
+0xb9a8
+// -0.830791
+0xbaa5
+// -0.922816
+0xbb62
+// -0.980209
+0xbbd7
+// -1.000000
+0xbc00
+// -0.980209
+0xbbd7
+// -0.922816
+0xbb62
+// -0.830791
+0xbaa5
+// -0.707107
+0xb9a8
+// -0.555433
+0xb872
+// -0.382243
+0xb61e
+// -0.194708
+0xb23b
+// -0.000000
+0x8000
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference5_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference5_f16.txt
new file mode 100755
index 0000000..b82cb18
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference5_f16.txt
@@ -0,0 +1,62 @@
+H
+30
+// -10.000000
+0xc900
+// -9.000000
+0xc880
+// -8.000000
+0xc800
+// -7.000000
+0xc700
+// -6.000000
+0xc600
+// -5.000000
+0xc500
+// -4.000000
+0xc400
+// -3.000000
+0xc200
+// -2.000000
+0xc000
+// -1.000000
+0xbc00
+// 0.000000
+0x0
+// 1.000000
+0x3c00
+// 2.000000
+0x4000
+// 3.000000
+0x4200
+// 4.000000
+0x4400
+// 5.000000
+0x4500
+// 6.000000
+0x4600
+// 7.000000
+0x4700
+// 8.000000
+0x4800
+// 9.000000
+0x4880
+// 10.000000
+0x4900
+// 11.000000
+0x4980
+// 12.000000
+0x4a00
+// 13.000000
+0x4a80
+// 14.000000
+0x4b00
+// 15.000000
+0x4b80
+// 16.000000
+0x4c00
+// 17.000000
+0x4c40
+// 18.000000
+0x4c80
+// 19.000000
+0x4cc0
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/YVals1_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/YVals1_f16.txt
new file mode 100755
index 0000000..c3dd1ec
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/YVals1_f16.txt
@@ -0,0 +1,84 @@
+H
+41
+// 1.000000
+0x3c00
+// 0.999671
+0x3bff
+// 0.994745
+0x3bf5
+// 0.973491
+0x3bca
+// 0.917019
+0x3b56
+// 0.801483
+0x3a69
+// 0.603369
+0x38d4
+// 0.309233
+0x34f3
+// -0.070172
+0xac7e
+// -0.484793
+0xb7c2
+// -0.837836
+0xbab4
+// -0.999238
+0xbbfe
+// -0.852151
+0xbad1
+// -0.370043
+0xb5ec
+// 0.308154
+0x34ee
+// 0.870807
+0x3af7
+// 0.960802
+0x3bb0
+// 0.429307
+0x36de
+// -0.438304
+0xb703
+// -0.985860
+0xbbe3
+// -0.673670
+0xb964
+// 0.307075
+0x34ea
+// 0.987839
+0x3be7
+// 0.542209
+0x3856
+// -0.590811
+0xb8ba
+// -0.949963
+0xbb9a
+// 0.054547
+0x2afb
+// 0.987662
+0x3be7
+// 0.312466
+0x3500
+// -0.910193
+0xbb48
+// -0.466228
+0xb776
+// 0.881524
+0x3b0d
+// 0.432377
+0x36eb
+// -0.938941
+0xbb83
+// -0.202690
+0xb27c
+// 0.999984
+0x3c00
+// -0.241631
+0xb3bb
+// -0.855104
+0xbad7
+// 0.781662
+0x3a41
+// 0.266643
+0x3444
+// -0.982948
+0xbbdd
diff --git a/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/YVals2_f16.txt b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/YVals2_f16.txt
new file mode 100755
index 0000000..a43d32a
--- /dev/null
+++ b/CMSIS/DSP/Testing/Patterns/DSP/Interpolation/InterpolationF16/YVals2_f16.txt
@@ -0,0 +1,114 @@
+H
+56
+// 0.764099
+0x3a1d
+// 0.954734
+0x3ba3
+// -0.986643
+0xbbe5
+// -0.438943
+0xb706
+// -0.922467
+0xbb61
+// 0.683706
+0x3978
+// -0.724533
+0xb9cc
+// 0.364190
+0x35d4
+// -0.589486
+0xb8b7
+// 0.472403
+0x378f
+// -0.708934
+0xb9ac
+// -0.067933
+0xac59
+// 0.470253
+0x3786
+// 0.886085
+0x3b17
+// -0.328930
+0xb543
+// 0.619429
+0x38f5
+// -0.505195
+0xb80b
+// 0.681926
+0x3975
+// 0.030388
+0x27c8
+// -0.436752
+0xb6fd
+// -0.902880
+0xbb39
+// -0.831844
+0xbaa8
+// -0.915192
+0xbb52
+// 0.962043
+0x3bb2
+// 0.537273
+0x384c
+// 0.960055
+0x3bae
+// -0.761489
+0xba18
+// 0.642363
+0x3924
+// -0.424511
+0xb6cb
+// -0.991667
+0xbbef
+// 0.964409
+0x3bb7
+// 0.023198
+0x25f0
+// 0.676648
+0x396a
+// -0.316092
+0xb50f
+// 0.946295
+0x3b92
+// -0.922467
+0xbb61
+// -0.821471
+0xba92
+// 0.892290
+0x3b23
+// 0.688341
+0x3982
+// 0.995808
+0x3bf7
+// -0.871183
+0xbaf8
+// 0.484313
+0x37c0
+// 0.048810
+0x2a3f
+// 0.868424
+0x3af3
+// -0.791713
+0xba55
+// 0.358250
+0x35bb
+// -0.346284
+0xb58a
+// -0.067933
+0xac59
+// -0.998178
+0xbbfc
+// -0.201840
+0xb275
+// -0.934347
+0xbb7a
+// 0.876246
+0x3b03
+// -0.210401
+0xb2bc
+// 0.486444
+0x37c8
+// -0.086315
+0xad86
+// 0.995582
+0x3bf7
diff --git a/CMSIS/DSP/Testing/Source/Tests/InterpolationTestsF16.cpp b/CMSIS/DSP/Testing/Source/Tests/InterpolationTestsF16.cpp
new file mode 100755
index 0000000..088260d
--- /dev/null
+++ b/CMSIS/DSP/Testing/Source/Tests/InterpolationTestsF16.cpp
@@ -0,0 +1,202 @@
+#include "InterpolationTestsF16.h"
+#include <stdio.h>
+#include "Error.h"
+
+#define SNR_THRESHOLD 55
+
+/* 
+
+Reference patterns are generated with
+a double precision computation.
+
+*/
+
+#define REL_ERROR (5.0e-3)
+#define ABS_ERROR (5.0e-3)
+
+
+
+    void InterpolationTestsF16::test_linear_interp_f16()
+    {
+       const float16_t *inp = input.ptr();
+       float16_t *outp = output.ptr();
+
+       unsigned long nb;
+       for(nb = 0; nb < input.nbSamples(); nb++)
+       {
+          outp[nb] = arm_linear_interp_f16(&S,inp[nb]);
+       }
+
+       ASSERT_EMPTY_TAIL(output);
+
+       ASSERT_SNR(output,ref,(float16_t)SNR_THRESHOLD);
+
+       ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+    } 
+
+ 
+    void InterpolationTestsF16::test_bilinear_interp_f16()
+    {
+       const float16_t *inp = input.ptr();
+       float16_t *outp = output.ptr();
+       float16_t x,y;
+       unsigned long nb;
+       for(nb = 0; nb < input.nbSamples(); nb += 2)
+       {
+          x = inp[nb];
+          y = inp[nb+1];
+          *outp++=arm_bilinear_interp_f16(&SBI,x,y);
+       }
+
+       ASSERT_EMPTY_TAIL(output);
+
+       ASSERT_SNR(output,ref,(float16_t)SNR_THRESHOLD);
+
+       ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+    } 
+
+ #if 0
+    void InterpolationTestsF16::test_spline_square_f16()
+    {
+       const float16_t *inpX = inputX.ptr();
+       const float16_t *inpY = inputY.ptr();
+       const float16_t *outX = outputX.ptr();
+       float16_t *outp = output.ptr();
+       float16_t *buf = buffer.ptr();       // ((2*4-1)*sizeof(float16_t))
+       float16_t *coef = splineCoefs.ptr(); // ((3*(4-1))*sizeof(float16_t))
+
+       arm_spline_instance_f16 S;
+       arm_spline_init_f16(&S, ARM_SPLINE_PARABOLIC_RUNOUT, inpX, inpY, 4, coef, buf);
+       arm_spline_f16(&S, outX, outp, 20);
+
+       ASSERT_EMPTY_TAIL(buffer);
+       ASSERT_EMPTY_TAIL(splineCoefs);
+       ASSERT_EMPTY_TAIL(output);
+       ASSERT_SNR(output,ref,(float16_t)SNR_THRESHOLD);
+    } 
+
+    void InterpolationTestsF16::test_spline_sine_f16()
+    {
+       const float16_t *inpX = inputX.ptr();
+       const float16_t *inpY = inputY.ptr();
+       const float16_t *outX = outputX.ptr();
+       float16_t *outp = output.ptr();
+       float16_t *buf = buffer.ptr(); // ((2*9-1)*sizeof(float16_t))
+       float16_t *coef = splineCoefs.ptr(); // ((3*(9-1))*sizeof(float16_t))
+
+       arm_spline_instance_f16 S;
+       arm_spline_init_f16(&S, ARM_SPLINE_NATURAL, inpX, inpY, 9, coef, buf);
+       arm_spline_f16(&S, outX, outp, 33);
+
+       ASSERT_EMPTY_TAIL(buffer);
+       ASSERT_EMPTY_TAIL(splineCoefs);
+       ASSERT_EMPTY_TAIL(output);
+       ASSERT_SNR(output,ref,(float16_t)SNR_THRESHOLD);
+    } 
+
+    void InterpolationTestsF16::test_spline_ramp_f16()
+    {
+       const float16_t *inpX = inputX.ptr();
+       const float16_t *inpY = inputY.ptr();
+       const float16_t *outX = outputX.ptr();
+       float16_t *outp = output.ptr();
+       float16_t *buf = buffer.ptr(); // ((2*3-1)*sizeof(float16_t))
+       float16_t *coef = splineCoefs.ptr(); // ((3*(3-1))*sizeof(float16_t))
+
+       arm_spline_instance_f16 S;
+       arm_spline_init_f16(&S, ARM_SPLINE_PARABOLIC_RUNOUT, inpX, inpY, 3, coef, buf);
+       arm_spline_f16(&S, outX, outp, 30);
+
+       ASSERT_EMPTY_TAIL(buffer);
+       ASSERT_EMPTY_TAIL(splineCoefs);
+       ASSERT_EMPTY_TAIL(output);
+       ASSERT_SNR(output,ref,(float16_t)SNR_THRESHOLD);
+    } 
+#endif
+
+    void InterpolationTestsF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       const int16_t *pConfig;
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+       (void)params;
+
+       
+       switch(id)
+       {
+        case InterpolationTestsF16::TEST_LINEAR_INTERP_F16_1:
+          input.reload(InterpolationTestsF16::INPUT_F16_ID,mgr,nb);
+          y.reload(InterpolationTestsF16::YVAL_F16_ID,mgr,nb);
+          ref.reload(InterpolationTestsF16::REF_LINEAR_F16_ID,mgr,nb);
+
+           
+          S.nValues=y.nbSamples();           /**< nValues */
+          /* Those values must be coherent with the ones in the 
+          Python script generating the patterns */
+          S.x1=0.0;               /**< x1 */
+          S.xSpacing=1.0;         /**< xSpacing */
+          S.pYData=y.ptr();          /**< pointer to the table of Y values */
+          break;
+
+         case InterpolationTestsF16::TEST_BILINEAR_INTERP_F16_2:
+          input.reload(InterpolationTestsF16::INPUTBI_F16_ID,mgr,nb);
+          config.reload(InterpolationTestsF16::CONFIGBI_S16_ID,mgr,nb);
+          y.reload(InterpolationTestsF16::YVALBI_F16_ID,mgr,nb);
+          ref.reload(InterpolationTestsF16::REF_BILINEAR_F16_ID,mgr,nb);
+
+          pConfig = config.ptr();
+
+          SBI.numRows = pConfig[1];
+          SBI.numCols = pConfig[0];
+          
+          SBI.pData = y.ptr();
+         
+          break;
+#if 0
+          case TEST_SPLINE_SQUARE_F16_3:
+             inputX.reload(InterpolationTestsF16::INPUT_SPLINE_SQU_X_F16_ID,mgr,4);
+             inputY.reload(InterpolationTestsF16::INPUT_SPLINE_SQU_Y_F16_ID,mgr,4);
+             outputX.reload(InterpolationTestsF16::OUTPUT_SPLINE_SQU_X_F16_ID,mgr,20);
+             ref.reload(InterpolationTestsF16::REF_SPLINE_SQU_F16_ID,mgr,20);
+             splineCoefs.create(3*(4-1),InterpolationTestsF16::COEFS_SPLINE_F16_ID,mgr);
+             
+             buffer.create(2*4-1,InterpolationTestsF16::TEMP_SPLINE_F16_ID,mgr);
+             output.create(20,InterpolationTestsF16::OUT_SAMPLES_F16_ID,mgr);
+          break;
+
+          case TEST_SPLINE_SINE_F16_4:
+             inputX.reload(InterpolationTestsF16::INPUT_SPLINE_SIN_X_F16_ID,mgr,9);
+             inputY.reload(InterpolationTestsF16::INPUT_SPLINE_SIN_Y_F16_ID,mgr,9);
+             outputX.reload(InterpolationTestsF16::OUTPUT_SPLINE_SIN_X_F16_ID,mgr,33);
+             ref.reload(InterpolationTestsF16::REF_SPLINE_SIN_F16_ID,mgr,33);
+             splineCoefs.create(3*(9-1),InterpolationTestsF16::COEFS_SPLINE_F16_ID,mgr);
+             
+             buffer.create(2*9-1,InterpolationTestsF16::TEMP_SPLINE_F16_ID,mgr);
+             output.create(33,InterpolationTestsF16::OUT_SAMPLES_F16_ID,mgr);
+          break;
+
+          case TEST_SPLINE_RAMP_F16_5:
+             inputX.reload(InterpolationTestsF16::INPUT_SPLINE_RAM_X_F16_ID,mgr,3);
+             inputY.reload(InterpolationTestsF16::INPUT_SPLINE_RAM_Y_F16_ID,mgr,3);
+             outputX.reload(InterpolationTestsF16::OUTPUT_SPLINE_RAM_X_F16_ID,mgr,30);
+             ref.reload(InterpolationTestsF16::REF_SPLINE_RAM_F16_ID,mgr,30);
+             splineCoefs.create(3*(3-1),InterpolationTestsF16::COEFS_SPLINE_F16_ID,mgr);
+             
+             buffer.create(2*3-1,InterpolationTestsF16::TEMP_SPLINE_F16_ID,mgr);
+             output.create(30,InterpolationTestsF16::OUT_SAMPLES_F16_ID,mgr);
+          break;
+#endif
+       }
+      
+
+
+       output.create(ref.nbSamples(),InterpolationTestsF16::OUT_SAMPLES_F16_ID,mgr);
+    }
+
+    void InterpolationTestsF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        (void)id;
+        output.dump(mgr);
+    }
diff --git a/CMSIS/DSP/Testing/desc_f16.txt b/CMSIS/DSP/Testing/desc_f16.txt
index 0b29a3c..08101bd 100755
--- a/CMSIS/DSP/Testing/desc_f16.txt
+++ b/CMSIS/DSP/Testing/desc_f16.txt
@@ -5,6 +5,50 @@
         class = DSPTests
         folder = DSP
 
+        group Interpolation Tests{
+          class = InterpolationTests
+          folder = Interpolation
+
+          suite Interpolation Tests F16{
+              class = InterpolationTestsF16
+              folder = InterpolationF16
+
+              Pattern INPUT_F16_ID : Input1_f16.txt 
+              Pattern INPUTBI_F16_ID : Input2_f16.txt 
+              Pattern CONFIGBI_S16_ID : Config2_s16.txt 
+
+              Pattern YVAL_F16_ID : YVals1_f16.txt 
+              Pattern YVALBI_F16_ID : YVals2_f16.txt 
+
+              Pattern REF_LINEAR_F16_ID : Reference1_f16.txt
+              Pattern REF_BILINEAR_F16_ID : Reference2_f16.txt
+
+              Pattern REF_SPLINE_SQU_F16_ID : Reference3_f16.txt
+              Pattern REF_SPLINE_SIN_F16_ID : Reference4_f16.txt
+              Pattern REF_SPLINE_RAM_F16_ID : Reference5_f16.txt
+
+              Pattern INPUT_SPLINE_SQU_X_F16_ID : InputX3_f16.txt
+              Pattern INPUT_SPLINE_SQU_Y_F16_ID : InputY3_f16.txt
+              Pattern OUTPUT_SPLINE_SQU_X_F16_ID : OutputX3_f16.txt
+              Pattern INPUT_SPLINE_SIN_X_F16_ID : InputX4_f16.txt 
+              Pattern INPUT_SPLINE_SIN_Y_F16_ID : InputY4_f16.txt
+              Pattern OUTPUT_SPLINE_SIN_X_F16_ID : OutputX4_f16.txt 
+              Pattern INPUT_SPLINE_RAM_X_F16_ID : InputX5_f16.txt
+              Pattern INPUT_SPLINE_RAM_Y_F16_ID : InputY5_f16.txt
+              Pattern OUTPUT_SPLINE_RAM_X_F16_ID : OutputX5_f16.txt
+
+
+              Output  OUT_SAMPLES_F16_ID : Output
+              Output  COEFS_SPLINE_F16_ID : SplineCoefs
+              Output  TEMP_SPLINE_F16_ID : SplineTemp
+
+              Functions {
+                Test arm_linear_interp_f16:test_linear_interp_f16
+                Test arm_bilinear_interp_f16:test_bilinear_interp_f16
+              }
+          }
+        }
+
         group Basic Tests {
            class = BasicTests
            folder = BasicMaths
diff --git a/CMSIS/DoxyGen/DSP/src/history.txt b/CMSIS/DoxyGen/DSP/src/history.txt
index d37f458..9d5a9a1 100644
--- a/CMSIS/DoxyGen/DSP/src/history.txt
+++ b/CMSIS/DoxyGen/DSP/src/history.txt
@@ -29,6 +29,7 @@
       - f16 Complex Maths
       - f16 filtering (FIR and BiQuad ad correlate)
       - f16 matrix
+      - f16 interpolation
 
     </td>
   </tr>
