Przeglądaj źródła

CMSIS-DSP: Added new f16 tests

Christophe Favergeon 5 lat temu
rodzic
commit
1b34e464ba
78 zmienionych plików z 28896 dodań i 2090 usunięć
  1. 9 9
      Include/arm_const_structs_f16.h
  2. 7 0
      Include/dsp/distance_functions.h
  3. 7 0
      Include/dsp/distance_functions_f16.h
  4. 1 0
      Include/dsp/fast_math_functions.h
  5. 25 0
      Include/dsp/transform_functions_f16.h
  6. 9 0
      Source/CommonTables/CMakeLists.txt
  7. 0 2
      Source/CommonTables/arm_mve_tables.c
  8. 19 0
      Source/DistanceFunctions/arm_minkowski_distance_f32.c
  9. 1 1
      Source/InterpolationFunctions/arm_spline_interp_init_f32.c
  10. 1 1
      Source/SupportFunctions/arm_quick_sort_f32.c
  11. 1 1
      Source/SupportFunctions/arm_selection_sort_f32.c
  12. 1 1
      Source/SupportFunctions/arm_sort_f32.c
  13. 1 1
      Source/SupportFunctions/arm_sort_init_f32.c
  14. 0 1
      Source/SupportFunctions/arm_weighted_sum_f16.c
  15. 0 1
      Source/SupportFunctions/arm_weighted_sum_f32.c
  16. 21 3
      Source/TransformFunctions/CMakeLists.txt
  17. 5 1
      Source/TransformFunctions/TransformFunctionsF16.c
  18. 195 0
      Source/TransformFunctions/arm_cfft_radix2_init_f16.c
  19. 157 0
      Source/TransformFunctions/arm_cfft_radix4_init_f16.c
  20. 70 44
      Source/fft.cmake
  21. 19 0
      Testing/CMakeLists.txt
  22. 31 0
      Testing/Include/Benchmarks/BIQUADF16.h
  23. 29 0
      Testing/Include/Benchmarks/BasicMathsBenchmarksF16.h
  24. 37 0
      Testing/Include/Benchmarks/BayesF16.h
  25. 26 0
      Testing/Include/Benchmarks/BinaryF16.h
  26. 27 0
      Testing/Include/Benchmarks/ComplexMathsBenchmarksF16.h
  27. 30 0
      Testing/Include/Benchmarks/DistanceF16.h
  28. 33 0
      Testing/Include/Benchmarks/FIRF16.h
  29. 24 0
      Testing/Include/Benchmarks/FastMathF16.h
  30. 25 0
      Testing/Include/Benchmarks/MISCF16.h
  31. 22 0
      Testing/Include/Benchmarks/MicroBenchmarksF16.h
  32. 46 0
      Testing/Include/Benchmarks/SVMF16.h
  33. 30 0
      Testing/Include/Benchmarks/StatsF16.h
  34. 28 0
      Testing/Include/Benchmarks/SupportBarF16.h
  35. 31 0
      Testing/Include/Benchmarks/SupportF16.h
  36. 35 0
      Testing/Include/Benchmarks/TransformF16.h
  37. 26 0
      Testing/Include/Benchmarks/UnaryF16.h
  38. 226 0
      Testing/Parameters/DSP/Filtering/DECIM/DECIMF16/Params1.txt
  39. 121 0
      Testing/Parameters/DSP/Filtering/DECIM/DECIMF16/Params2.txt
  40. 2 0
      Testing/PatternGeneration/Controller.py
  41. 6 2
      Testing/PatternGeneration/Decimate.py
  42. 514 0
      Testing/Patterns/DSP/Controller/ControllerF16/Samples1_f16.txt
  43. 130 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Coefs1_f16.txt
  44. 2282 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Coefs2_f16.txt
  45. 2090 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Coefs3_f16.txt
  46. 578 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Configs2_u32.txt
  47. 290 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Configs3_u32.txt
  48. 8282 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Input2_f16.txt
  49. 1106 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Input3_f16.txt
  50. 2210 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Reference2_f16.txt
  51. 5338 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Reference3_f16.txt
  52. 514 0
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Samples1_f16.txt
  53. 128 128
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF32/Coefs1_f32.txt
  54. 510 510
      Testing/Patterns/DSP/Filtering/DECIM/DECIMF32/Samples1_f32.txt
  55. 128 128
      Testing/Patterns/DSP/Filtering/DECIM/DECIMQ15/Coefs1_q15.txt
  56. 510 510
      Testing/Patterns/DSP/Filtering/DECIM/DECIMQ15/Samples1_q15.txt
  57. 126 126
      Testing/Patterns/DSP/Filtering/DECIM/DECIMQ31/Coefs1_q31.txt
  58. 512 512
      Testing/Patterns/DSP/Filtering/DECIM/DECIMQ31/Samples1_q31.txt
  59. 100 0
      Testing/Source/Benchmarks/BIQUADF16.cpp
  60. 96 0
      Testing/Source/Benchmarks/BasicMathsBenchmarksF16.cpp
  61. 79 0
      Testing/Source/Benchmarks/BayesF16.cpp
  62. 59 0
      Testing/Source/Benchmarks/BinaryF16.cpp
  63. 82 0
      Testing/Source/Benchmarks/ComplexMathsBenchmarksF16.cpp
  64. 122 0
      Testing/Source/Benchmarks/DistanceF16.cpp
  65. 46 0
      Testing/Source/Benchmarks/FIRF16.cpp
  66. 49 0
      Testing/Source/Benchmarks/FastMathF16.cpp
  67. 52 0
      Testing/Source/Benchmarks/MISCF16.cpp
  68. 105 0
      Testing/Source/Benchmarks/MicroBenchmarksF16.cpp
  69. 262 0
      Testing/Source/Benchmarks/SVMF16.cpp
  70. 190 0
      Testing/Source/Benchmarks/StatsF16.cpp
  71. 42 0
      Testing/Source/Benchmarks/SupportBarF16.cpp
  72. 75 0
      Testing/Source/Benchmarks/SupportF16.cpp
  73. 99 0
      Testing/Source/Benchmarks/TransformF16.cpp
  74. 95 0
      Testing/Source/Benchmarks/UnaryF16.cpp
  75. 67 67
      Testing/bench.txt
  76. 594 0
      Testing/bench_f16.txt
  77. 46 40
      Testing/extractDb.py
  78. 4 1
      Testing/runAllTests.py

+ 9 - 9
Include/arm_const_structs_f16.h

@@ -41,31 +41,31 @@ extern "C"
 #endif
 
 #if !defined(__CC_ARM) && defined(ARM_FLOAT16_SUPPORTED)
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_16) && defined(ARM_TABLE_BITREVIDX_FXT_16))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_16) && defined(ARM_TABLE_BITREVIDX_FLT_16))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len16;
    #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_32) && defined(ARM_TABLE_BITREVIDX_FXT_32))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_32) && defined(ARM_TABLE_BITREVIDX_FLT_32))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len32;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_64) && defined(ARM_TABLE_BITREVIDX_FXT_64))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_64) && defined(ARM_TABLE_BITREVIDX_FLT_64))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len64;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_128) && defined(ARM_TABLE_BITREVIDX_FXT_128))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_128) && defined(ARM_TABLE_BITREVIDX_FLT_128))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len128;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_256) && defined(ARM_TABLE_BITREVIDX_FXT_256))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_256) && defined(ARM_TABLE_BITREVIDX_FLT_256))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len256;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_512) && defined(ARM_TABLE_BITREVIDX_FXT_512))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_512) && defined(ARM_TABLE_BITREVIDX_FLT_512))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len512;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_1024) && defined(ARM_TABLE_BITREVIDX_FXT_1024))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_1024) && defined(ARM_TABLE_BITREVIDX_FLT_1024))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len1024;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_2048) && defined(ARM_TABLE_BITREVIDX_FXT_2048))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_2048) && defined(ARM_TABLE_BITREVIDX_FLT_2048))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len2048;
     #endif
-  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_4096) && defined(ARM_TABLE_BITREVIDX_FXT_4096))
+  #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F16_4096) && defined(ARM_TABLE_BITREVIDX_FLT_4096))
    extern const arm_cfft_instance_f16 arm_cfft_sR_f16_len4096;
   #endif
 #endif

+ 7 - 0
Include/dsp/distance_functions.h

@@ -50,6 +50,13 @@ extern "C"
  *
  */
 
+/* 6.14 bug */
+#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) && (__ARMCC_VERSION < 6150001)
+ 
+__attribute__((weak)) float __powisf2(float a, int b);
+
+#endif 
+
 /**
  * @brief        Euclidean distance between two vectors
  * @param[in]    pA         First vector

+ 7 - 0
Include/dsp/distance_functions_f16.h

@@ -32,8 +32,15 @@
 #include "dsp/none.h"
 #include "dsp/utils.h"
 
+/* 6.14 bug */
+#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) && (__ARMCC_VERSION < 6150001)
+/* Defined in minkowski_f32 */
+__attribute__((weak)) float __powisf2(float a, int b);
+#endif 
+
 #include "dsp/statistics_functions_f16.h"
 #include "dsp/basic_math_functions_f16.h"
+
 #include "dsp/fast_math_functions_f16.h"
 
 #ifdef   __cplusplus

+ 1 - 0
Include/dsp/fast_math_functions.h

@@ -63,6 +63,7 @@ extern "C"
    * @ingroup groupFastMath
    */
 
+
 /**
   @addtogroup sin
   @{

+ 25 - 0
Include/dsp/transform_functions_f16.h

@@ -119,6 +119,31 @@ arm_status arm_rfft_fast_init_f16 (
         const arm_rfft_fast_instance_f16 * S,
         float16_t * p, float16_t * pOut,
         uint8_t ifftFlag);
+
+/* Deprecated */
+  arm_status arm_cfft_radix4_init_f16(
+        arm_cfft_radix4_instance_f16 * S,
+        uint16_t fftLen,
+        uint8_t ifftFlag,
+        uint8_t bitReverseFlag);
+
+/* Deprecated */
+  void arm_cfft_radix4_f16(
+  const arm_cfft_radix4_instance_f16 * S,
+        float16_t * pSrc);
+
+
+/* Deprecated */
+  arm_status arm_cfft_radix2_init_f16(
+        arm_cfft_radix2_instance_f16 * S,
+        uint16_t fftLen,
+        uint8_t ifftFlag,
+        uint8_t bitReverseFlag);
+
+/* Deprecated */
+  void arm_cfft_radix2_f16(
+  const arm_cfft_radix2_instance_f16 * S,
+        float16_t * pSrc);
   
 #endif /* defined(ARM_FLOAT16_SUPPORTED)*/
 

+ 9 - 0
Source/CommonTables/CMakeLists.txt

@@ -41,3 +41,12 @@ if (HELIUM OR MVEF)
 endif()
 
 
+if (WRAPPER)
+    target_compile_definitions(CMSISDSPCommon PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(CMSISDSPCommon PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096)
+    target_compile_definitions(CMSISDSPCommon PUBLIC ARM_TABLE_TWIDDLECOEF_Q31_4096)
+    target_compile_definitions(CMSISDSPCommon PUBLIC ARM_TABLE_TWIDDLECOEF_Q15_4096)
+    if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
+    target_compile_definitions(CMSISDSPCommon PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+    endif()
+endif()

+ 0 - 2
Source/CommonTables/arm_mve_tables.c

@@ -3763,7 +3763,6 @@ float32_t rearranged_twiddle_stride3_4096_f32[2728]={
 #endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
 #endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
 
-#include "arm_math.h"
 
 #if defined(ARM_MATH_MVEI) 
 
@@ -5429,7 +5428,6 @@ q31_t rearranged_twiddle_stride3_4096_q31[2728]={
 #endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
 #endif /* defined(ARM_MATH_MVEI)  */
 
-#include "arm_math.h"
 
 #if defined(ARM_MATH_MVEI) 
 

+ 19 - 0
Source/DistanceFunctions/arm_minkowski_distance_f32.c

@@ -35,6 +35,25 @@
   @{
  */
 
+/* 6.14 bug */
+#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) && (__ARMCC_VERSION < 6150001)
+ 
+__attribute__((weak)) float __powisf2(float a, int b)
+{ 
+    const int recip = b < 0;
+    float r = 1;
+    while (1)
+    {
+        if (b & 1)
+            r *= a;
+        b /= 2;
+        if (b == 0)
+            break;
+        a *= a;
+    }
+    return recip ? 1/r : r;
+}
+#endif 
 
 /**
  * @brief        Minkowski distance between two vectors

+ 1 - 1
Source/InterpolationFunctions/arm_spline_interp_init_f32.c

@@ -26,7 +26,7 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
+#include "dsp/interpolation_functions.h"
 
 /**
   @ingroup groupInterpolation

+ 1 - 1
Source/SupportFunctions/arm_quick_sort_f32.c

@@ -26,7 +26,7 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
+#include "dsp/support_functions_f16.h"
 #include "arm_sorting.h"
 
 static uint32_t arm_quick_sort_partition_f32(float32_t *pSrc, int32_t first, int32_t last, uint8_t dir)

+ 1 - 1
Source/SupportFunctions/arm_selection_sort_f32.c

@@ -26,7 +26,7 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
+#include "dsp/support_functions_f16.h"
 #include "arm_sorting.h"
 
 /**

+ 1 - 1
Source/SupportFunctions/arm_sort_f32.c

@@ -26,7 +26,7 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
+#include "dsp/support_functions_f16.h"
 #include "arm_sorting.h"
 
 /**

+ 1 - 1
Source/SupportFunctions/arm_sort_init_f32.c

@@ -26,7 +26,7 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
+#include "dsp/support_functions_f16.h"
 #include "arm_sorting.h"
 
 /**

+ 0 - 1
Source/SupportFunctions/arm_weighted_sum_f16.c

@@ -24,7 +24,6 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
 #include <limits.h>
 #include <math.h>
 

+ 0 - 1
Source/SupportFunctions/arm_weighted_sum_f32.c

@@ -24,7 +24,6 @@
  * limitations under the License.
  */
 
-#include "arm_math.h"
 #include <limits.h>
 #include <math.h>
 

+ 21 - 3
Source/TransformFunctions/CMakeLists.txt

@@ -38,6 +38,13 @@ target_sources(CMSISDSPTransform PRIVATE arm_cfft_init_f16.c)
 endif()
 endif()
 
+if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
+if (NOT CONFIGTABLE OR ALLFFT OR RFFT_F16_128 OR RFFT_F16_512 OR RFFT_F16_2048 OR RFFT_F16_8192)
+target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix4_init_f16.c)
+target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix4_f16.c)
+endif()
+endif()
+
 if (NOT CONFIGTABLE OR ALLFFT OR CFFT_F64_16 OR CFFT_F64_32 OR CFFT_F64_64 OR CFFT_F64_128 OR CFFT_F64_256 OR CFFT_F64_512 
     OR CFFT_F64_1024 OR CFFT_F64_2048 OR CFFT_F64_4096)
 target_sources(CMSISDSPTransform PRIVATE arm_cfft_f64.c)
@@ -112,9 +119,9 @@ target_sources(CMSISDSPTransform PRIVATE arm_rfft_fast_f64.c)
 target_sources(CMSISDSPTransform PRIVATE arm_rfft_fast_init_f64.c)
 endif()
 
-if (NOT CONFIGTABLE OR ALLFFT OR RFFT_FAST_F32_32 OR RFFT_FAST_F32_64 OR RFFT_FAST_F32_128
-   OR RFFT_FAST_F32_256 OR RFFT_FAST_F32_512 OR RFFT_FAST_F32_1024 OR RFFT_FAST_F32_2048
-   OR RFFT_FAST_F32_4096 )
+if (NOT CONFIGTABLE OR ALLFFT OR RFFT_FAST_F16_32 OR RFFT_FAST_F16_64 OR RFFT_FAST_F16_128
+   OR RFFT_FAST_F16_256 OR RFFT_FAST_F16_512 OR RFFT_FAST_F16_1024 OR RFFT_FAST_F16_2048
+   OR RFFT_FAST_F16_4096 )
 target_sources(CMSISDSPTransform PRIVATE arm_rfft_fast_f16.c)
 target_sources(CMSISDSPTransform PRIVATE arm_rfft_fast_init_f16.c)
 target_sources(CMSISDSPTransform PRIVATE arm_cfft_f16.c)
@@ -152,6 +159,17 @@ if (WRAPPER)
 target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix2_init_f32.c)
 target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix2_init_q31.c)
 target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix2_init_q15.c)
+if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
+target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix2_init_f16.c)
+endif()
+
+    target_compile_definitions(CMSISDSPTransform PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(CMSISDSPTransform PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096)
+    target_compile_definitions(CMSISDSPTransform PUBLIC ARM_TABLE_TWIDDLECOEF_Q31_4096)
+    target_compile_definitions(CMSISDSPTransform PUBLIC ARM_TABLE_TWIDDLECOEF_Q15_4096)
+if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
+    target_compile_definitions(CMSISDSPTransform PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
 endif()
 
 ### Includes

+ 5 - 1
Source/TransformFunctions/TransformFunctionsF16.c

@@ -32,4 +32,8 @@
 #include "arm_cfft_radix4_f16.c"
 #include "arm_rfft_fast_init_f16.c"
 #include "arm_rfft_fast_f16.c"
-#include "arm_cfft_radix8_f16.c"
+#include "arm_cfft_radix8_f16.c"
+
+/* Deprecated */
+#include "arm_cfft_radix2_init_f16.c"
+#include "arm_cfft_radix4_init_f16.c"

+ 195 - 0
Source/TransformFunctions/arm_cfft_radix2_init_f16.c

@@ -0,0 +1,195 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_cfft_radix2_init_f16.c
+ * Description:  Radix-2 Decimation in Frequency Floating-point CFFT & CIFFT Initialization function
+ *
+ * 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/transform_functions_f16.h"
+#include "arm_common_tables.h"
+#include "arm_common_tables_f16.h"
+
+/**
+  @ingroup groupTransforms
+ */
+
+/**
+  @addtogroup ComplexFFT
+  @{
+ */
+
+/**
+  @brief         Initialization function for the floating-point CFFT/CIFFT.
+  @deprecated    Do not use this function. It has been superseded by \ref arm_cfft_f16 and will be removed in the future.
+  @param[in,out] S              points to an instance of the floating-point CFFT/CIFFT structure
+  @param[in]     fftLen         length of the FFT
+  @param[in]     ifftFlag       flag that selects transform direction
+                   - value = 0: forward transform
+                   - value = 1: inverse transform
+  @param[in]     bitReverseFlag flag that enables / disables bit reversal of output
+                   - value = 0: disables bit reversal of output
+                   - value = 1: enables bit reversal of output
+  @return        execution status
+                   - \ref ARM_MATH_SUCCESS        : Operation successful
+                   - \ref ARM_MATH_ARGUMENT_ERROR : <code>fftLen</code> is not a supported length
+
+  @par           Details
+                   The parameter <code>ifftFlag</code> controls whether a forward or inverse transform is computed.
+                   Set(=1) ifftFlag for calculation of CIFFT otherwise  CFFT is calculated
+  @par
+                   The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order.
+                   Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order.
+  @par
+                   The parameter <code>fftLen</code> Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024.
+  @par
+                   This Function also initializes Twiddle factor table pointer and Bit reversal table pointer.
+*/
+
+arm_status arm_cfft_radix2_init_f16(
+  arm_cfft_radix2_instance_f16 * S,
+  uint16_t fftLen,
+  uint8_t ifftFlag,
+  uint8_t bitReverseFlag)
+{
+  /*  Initialise the default arm status */
+  arm_status status = ARM_MATH_SUCCESS;
+
+  /*  Initialise the FFT length */
+  S->fftLen = fftLen;
+
+  /*  Initialise the Twiddle coefficient pointer */
+  S->pTwiddle = (float16_t *) twiddleCoefF16_4096;
+
+  /*  Initialise the Flag for selection of CFFT or CIFFT */
+  S->ifftFlag = ifftFlag;
+
+  /*  Initialise the Flag for calculation Bit reversal or not */
+  S->bitReverseFlag = bitReverseFlag;
+
+  /*  Initializations of structure parameters depending on the FFT length */
+  switch (S->fftLen)
+  {
+
+  case 4096U:
+    /*  Initializations of structure parameters for 4096 point FFT */
+
+    /*  Initialise the twiddle coef modifier value */
+    S->twidCoefModifier = 1U;
+    /*  Initialise the bit reversal table modifier */
+    S->bitRevFactor = 1U;
+    /*  Initialise the bit reversal table pointer */
+    S->pBitRevTable = (uint16_t *) armBitRevTable;
+    /*  Initialise the 1/fftLen Value */
+    S->onebyfftLen = 0.000244140625;
+    break;
+
+  case 2048U:
+    /*  Initializations of structure parameters for 2048 point FFT */
+
+    /*  Initialise the twiddle coef modifier value */
+    S->twidCoefModifier = 2U;
+    /*  Initialise the bit reversal table modifier */
+    S->bitRevFactor = 2U;
+    /*  Initialise the bit reversal table pointer */
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[1];
+    /*  Initialise the 1/fftLen Value */
+    S->onebyfftLen = 0.00048828125;
+    break;
+
+  case 1024U:
+    /*  Initializations of structure parameters for 1024 point FFT */
+
+    /*  Initialise the twiddle coef modifier value */
+    S->twidCoefModifier = 4U;
+    /*  Initialise the bit reversal table modifier */
+    S->bitRevFactor = 4U;
+    /*  Initialise the bit reversal table pointer */
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[3];
+    /*  Initialise the 1/fftLen Value */
+    S->onebyfftLen = 0.0009765625f;
+    break;
+
+  case 512U:
+    /*  Initializations of structure parameters for 512 point FFT */
+
+    /*  Initialise the twiddle coef modifier value */
+    S->twidCoefModifier = 8U;
+    /*  Initialise the bit reversal table modifier */
+    S->bitRevFactor = 8U;
+    /*  Initialise the bit reversal table pointer */
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[7];
+    /*  Initialise the 1/fftLen Value */
+    S->onebyfftLen = 0.001953125;
+    break;
+
+  case 256U:
+    /*  Initializations of structure parameters for 256 point FFT */
+    S->twidCoefModifier = 16U;
+    S->bitRevFactor = 16U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[15];
+    S->onebyfftLen = 0.00390625f;
+    break;
+
+  case 128U:
+    /*  Initializations of structure parameters for 128 point FFT */
+    S->twidCoefModifier = 32U;
+    S->bitRevFactor = 32U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[31];
+    S->onebyfftLen = 0.0078125;
+    break;
+
+  case 64U:
+    /*  Initializations of structure parameters for 64 point FFT */
+    S->twidCoefModifier = 64U;
+    S->bitRevFactor = 64U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[63];
+    S->onebyfftLen = 0.015625f;
+    break;
+
+  case 32U:
+    /*  Initializations of structure parameters for 64 point FFT */
+    S->twidCoefModifier = 128U;
+    S->bitRevFactor = 128U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[127];
+    S->onebyfftLen = 0.03125;
+    break;
+
+  case 16U:
+    /*  Initializations of structure parameters for 16 point FFT */
+    S->twidCoefModifier = 256U;
+    S->bitRevFactor = 256U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[255];
+    S->onebyfftLen = 0.0625f;
+    break;
+
+
+  default:
+    /*  Reporting argument error if fftSize is not valid value */
+    status = ARM_MATH_ARGUMENT_ERROR;
+    break;
+  }
+
+  return (status);
+}
+
+/**
+  @} end of ComplexFFT group
+ */

+ 157 - 0
Source/TransformFunctions/arm_cfft_radix4_init_f16.c

@@ -0,0 +1,157 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_cfft_radix4_init_f16.c
+ * Description:  Radix-4 Decimation in Frequency Floating-point CFFT & CIFFT Initialization function
+ *
+ * $Date:        18. March 2019
+ * $Revision:    V1.6.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2019 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/transform_functions_f16.h"
+#include "arm_common_tables.h"
+#include "arm_common_tables_f16.h"
+
+/**
+  @ingroup groupTransforms
+ */
+
+/**
+  @addtogroup ComplexFFT
+  @{
+ */
+
+/**
+  @brief         Initialization function for the floating-point CFFT/CIFFT.
+  @deprecated    Do not use this function. It has been superceded by \ref arm_cfft_f16 and will be removed in the future.
+  @param[in,out] S              points to an instance of the floating-point CFFT/CIFFT structure
+  @param[in]     fftLen         length of the FFT
+  @param[in]     ifftFlag       flag that selects transform direction
+                   - value = 0: forward transform
+                   - value = 1: inverse transform
+  @param[in]     bitReverseFlag flag that enables / disables bit reversal of output
+                   - value = 0: disables bit reversal of output
+                   - value = 1: enables bit reversal of output
+  @return        execution status
+                   - \ref ARM_MATH_SUCCESS        : Operation successful
+                   - \ref ARM_MATH_ARGUMENT_ERROR : <code>fftLen</code> is not a supported length
+
+  @par           Details
+                   The parameter <code>ifftFlag</code> controls whether a forward or inverse transform is computed.
+                   Set(=1) ifftFlag for calculation of CIFFT otherwise  CFFT is calculated
+  @par
+                   The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order.
+                   Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order.
+  @par
+                   The parameter <code>fftLen</code> Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024.
+  @par
+                   This Function also initializes Twiddle factor table pointer and Bit reversal table pointer.
+ */
+
+arm_status arm_cfft_radix4_init_f16(
+  arm_cfft_radix4_instance_f16 * S,
+  uint16_t fftLen,
+  uint8_t ifftFlag,
+  uint8_t bitReverseFlag)
+{
+  /*  Initialise the default arm status */
+  arm_status status = ARM_MATH_SUCCESS;
+
+  /*  Initialise the FFT length */
+  S->fftLen = fftLen;
+
+  /*  Initialise the Twiddle coefficient pointer */
+  S->pTwiddle = (float16_t *) twiddleCoef;
+
+  /*  Initialise the Flag for selection of CFFT or CIFFT */
+  S->ifftFlag = ifftFlag;
+
+  /*  Initialise the Flag for calculation Bit reversal or not */
+  S->bitReverseFlag = bitReverseFlag;
+
+  /*  Initializations of structure parameters depending on the FFT length */
+  switch (S->fftLen)
+  {
+
+  case 4096U:
+    /*  Initializations of structure parameters for 4096 point FFT */
+
+    /*  Initialise the twiddle coef modifier value */
+    S->twidCoefModifier = 1U;
+    /*  Initialise the bit reversal table modifier */
+    S->bitRevFactor = 1U;
+    /*  Initialise the bit reversal table pointer */
+    S->pBitRevTable = (uint16_t *) armBitRevTable;
+    /*  Initialise the 1/fftLen Value */
+    S->onebyfftLen = 0.000244140625;
+    break;
+
+  case 1024U:
+    /*  Initializations of structure parameters for 1024 point FFT */
+
+    /*  Initialise the twiddle coef modifier value */
+    S->twidCoefModifier = 4U;
+    /*  Initialise the bit reversal table modifier */
+    S->bitRevFactor = 4U;
+    /*  Initialise the bit reversal table pointer */
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[3];
+    /*  Initialise the 1/fftLen Value */
+    S->onebyfftLen = 0.0009765625f;
+    break;
+
+
+  case 256U:
+    /*  Initializations of structure parameters for 256 point FFT */
+    S->twidCoefModifier = 16U;
+    S->bitRevFactor = 16U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[15];
+    S->onebyfftLen = 0.00390625f;
+    break;
+
+  case 64U:
+    /*  Initializations of structure parameters for 64 point FFT */
+    S->twidCoefModifier = 64U;
+    S->bitRevFactor = 64U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[63];
+    S->onebyfftLen = 0.015625f;
+    break;
+
+  case 16U:
+    /*  Initializations of structure parameters for 16 point FFT */
+    S->twidCoefModifier = 256U;
+    S->bitRevFactor = 256U;
+    S->pBitRevTable = (uint16_t *) & armBitRevTable[255];
+    S->onebyfftLen = 0.0625f;
+    break;
+
+
+  default:
+    /*  Reporting argument error if fftSize is not valid value */
+    status = ARM_MATH_ARGUMENT_ERROR;
+    break;
+  }
+
+  return (status);
+}
+
+/**
+  @} end of ComplexFFT group
+ */

+ 70 - 44
Source/fft.cmake

@@ -94,83 +94,47 @@ endif()
 
 if (CONFIGTABLE AND CFFT_F16_16)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_16)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_16)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_16)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_32)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_32)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_32)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_32)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_64)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_64)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_64)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_64)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_128)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_128)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_128)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_128)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_256)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_256)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_256)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_256)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_512)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_512)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_512)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_512)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_1024)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_1024)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_1024)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_1024)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_2048)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_2048)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_2048)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_2048)
-endif()
 endif()
 
 if (CONFIGTABLE AND CFFT_F16_4096)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
-if (HELIUM OR MVEF)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_4096)
-else()
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_4096)
-endif()
 endif()
 
 #######################################
@@ -445,49 +409,49 @@ endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_32)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_16)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_16)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_16)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_32)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_64)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_32)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_32)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_32)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_64)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_128)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_64)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_64)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_64)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_128)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_256)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_128)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_128)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_128)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_256)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_512)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_256)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_256)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_256)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_512)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_1024)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_512)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_512)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_512)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_1024)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_2048)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_1024)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_1024)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_2048)
 endif()
 
 if (CONFIGTABLE AND RFFT_FAST_F16_4096)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_2048)
-    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_2048)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_2048)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_RFFT_F16_4096)
 endif()
 
@@ -559,6 +523,66 @@ if (CONFIGTABLE AND RFFT_F32_8192)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096)
 endif()
 
+
+#######################################
+#
+# RFFT F16 (for radix4 and radix2)
+#
+
+if (CONFIGTABLE AND RFFT_F16_32)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_64)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_128)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_256)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_512)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_1024)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_2048)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_4096)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
+if (CONFIGTABLE AND RFFT_F16_8192)
+    # For cfft_radix4_init
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREV_1024)
+    target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
+endif()
+
 #######################################
 #
 # RFFT Q31
@@ -800,4 +824,6 @@ if (CONFIGTABLE AND DCT4_Q15_8192)
     target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_Q15_4096)
 endif()
 
+
+
 endfunction()

+ 19 - 0
Testing/CMakeLists.txt

@@ -198,6 +198,25 @@ set (NNSRC
  target_include_directories(TestingLib PRIVATE Include/Benchmarks)
  endif()
 
+ if ((NOT ARMAC5) AND (FLOAT16TESTS) AND ((FLOAT16) OR (MVEF) OR (HELIUM) OR (NEON) OR (NEONEXPERIMENTAL)))
+ set(TESTSRC16 Source/Benchmarks/BasicMathsBenchmarksF16.cpp
+   Source/Benchmarks/ComplexMathsBenchmarksF16.cpp
+   Source/Benchmarks/BayesF16.cpp
+   Source/Benchmarks/SVMF16.cpp
+   Source/Benchmarks/DistanceF16.cpp
+   Source/Benchmarks/StatsF16.cpp
+   Source/Benchmarks/FIRF16.cpp
+   Source/Benchmarks/MISCF16.cpp
+   Source/Benchmarks/BIQUADF16.cpp
+   Source/Benchmarks/FastMathF16.cpp
+   Source/Benchmarks/SupportF16.cpp
+   Source/Benchmarks/SupportBarF16.cpp
+   Source/Benchmarks/UnaryF16.cpp
+   Source/Benchmarks/BinaryF16.cpp
+   Source/Benchmarks/TransformF16.cpp
+  )
+endif()
+
 else()
 
 set(STANDARDTEST ON)

+ 31 - 0
Testing/Include/Benchmarks/BIQUADF16.h

@@ -0,0 +1,31 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/filtering_functions_f16.h"
+
+class BIQUADF16:public Client::Suite
+    {
+        public:
+            BIQUADF16(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 "BIQUADF16_decl.h"
+            Client::Pattern<float16_t> samples;
+            Client::Pattern<float16_t> coefs;
+
+            Client::LocalPattern<float16_t> output;
+            Client::LocalPattern<float16_t> state;
+            Client::LocalPattern<float16_t> neonCoefs;
+
+            arm_biquad_casd_df1_inst_f16 instBiquadDf1;
+            arm_biquad_cascade_df2T_instance_f16 instBiquadDf2T;
+            arm_biquad_cascade_stereo_df2T_instance_f16 instStereo;
+
+            int nbSamples;
+            int numStages;    
+
+            const float16_t *pSrc;
+            float16_t *pDst;     
+            
+    };

+ 29 - 0
Testing/Include/Benchmarks/BasicMathsBenchmarksF16.h

@@ -0,0 +1,29 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/basic_math_functions_f16.h"
+
+class BasicMathsBenchmarksF16:public Client::Suite
+    {
+        public:
+            BasicMathsBenchmarksF16(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 "BasicMathsBenchmarksF16_decl.h"
+            Client::Pattern<float16_t> input1;
+            Client::Pattern<float16_t> input2;
+            Client::LocalPattern<float16_t> output;
+
+            Client::RefPattern<float16_t> ref;
+
+
+            int nb;
+
+            float16_t *inp1;
+            float16_t *inp2;
+            float16_t *outp;
+
+            float16_t *refp;
+            
+    };

+ 37 - 0
Testing/Include/Benchmarks/BayesF16.h

@@ -0,0 +1,37 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/bayes_functions_f16.h"
+
+class BayesF16:public Client::Suite
+    {
+        public:
+            BayesF16(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "BayesF16_decl.h"
+            
+            Client::Pattern<float16_t> input;
+            Client::Pattern<float16_t> params;
+            Client::Pattern<int16_t> dims;
+
+            Client::LocalPattern<float16_t> outputProbas;
+            Client::LocalPattern<int16_t> outputPredicts;
+
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<int16_t> predicts;
+
+            int classNb,vecDim;
+            int nb=0;
+            const float16_t *theta;
+            const float16_t *sigma;
+            const float16_t *classPrior;
+            float16_t epsilon;
+
+            arm_gaussian_naive_bayes_instance_f16 bayes;
+
+            const float16_t *inp;
+            float16_t *bufp;
+
+    };

+ 26 - 0
Testing/Include/Benchmarks/BinaryF16.h

@@ -0,0 +1,26 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/matrix_functions_f16.h"
+
+class BinaryF16:public Client::Suite
+    {
+        public:
+            BinaryF16(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 "BinaryF16_decl.h"
+            Client::Pattern<float16_t> input1;
+            Client::Pattern<float16_t> input2;
+            Client::LocalPattern<float16_t> output;
+
+            int nbr;
+            int nbi;
+            int nbc;
+
+            arm_matrix_instance_f16 in1;
+            arm_matrix_instance_f16 in2;
+            arm_matrix_instance_f16 out;
+            
+    };

+ 27 - 0
Testing/Include/Benchmarks/ComplexMathsBenchmarksF16.h

@@ -0,0 +1,27 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/complex_math_functions_f16.h"
+
+class ComplexMathsBenchmarksF16:public Client::Suite
+    {
+        public:
+            ComplexMathsBenchmarksF16(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 "ComplexMathsBenchmarksF16_decl.h"
+            Client::Pattern<float16_t> input1;
+            Client::Pattern<float16_t> input2;
+            // REal input
+            Client::Pattern<float16_t> input3;
+            Client::LocalPattern<float16_t> output;
+
+            int nb;
+
+            const float16_t *inp1;
+            const float16_t *inp2;
+            const float16_t *inp3;
+            float16_t *outp;
+            
+    };

+ 30 - 0
Testing/Include/Benchmarks/DistanceF16.h

@@ -0,0 +1,30 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/distance_functions_f16.h"
+
+class DistanceF16:public Client::Suite
+    {
+        public:
+            DistanceF16(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "DistanceF16_decl.h"
+            
+            Client::Pattern<float16_t> inputA;
+            Client::Pattern<float16_t> inputB;
+
+            Client::LocalPattern<float16_t> tmpA;
+            Client::LocalPattern<float16_t> tmpB;
+
+            int vecDim;
+
+            const float16_t *inpA;
+            const float16_t *inpB;
+
+            float16_t *tmpAp;
+            float16_t *tmpBp;
+
+
+    };

+ 33 - 0
Testing/Include/Benchmarks/FIRF16.h

@@ -0,0 +1,33 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/filtering_functions_f16.h"
+
+class FIRF16:public Client::Suite
+    {
+        public:
+            FIRF16(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 "FIRF16_decl.h"
+            Client::Pattern<float16_t> coefs;
+            Client::Pattern<float16_t> samples;
+            Client::Pattern<float16_t> refs;
+
+            Client::LocalPattern<float16_t> output;
+            Client::LocalPattern<float16_t> error;
+            Client::LocalPattern<float16_t> state;
+
+            int nbTaps;
+            int nbSamples;
+
+            arm_fir_instance_f16  instFir;
+
+            const float16_t *pSrc;
+            const float16_t *pCoefs;
+            float16_t *pDst;
+            const float16_t *pRef;
+            float16_t *pErr;
+            
+    };

+ 24 - 0
Testing/Include/Benchmarks/FastMathF16.h

@@ -0,0 +1,24 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/fast_math_functions_f16.h"
+
+class FastMathF16:public Client::Suite
+    {
+        public:
+            FastMathF16(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 "FastMathF16_decl.h"
+            Client::Pattern<float16_t> samples;
+
+            Client::LocalPattern<float16_t> output;
+            
+            int nbSamples;
+
+            float16_t *pSrc;
+            float16_t *pDst;
+            
+            
+    };

+ 25 - 0
Testing/Include/Benchmarks/MISCF16.h

@@ -0,0 +1,25 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/filtering_functions_f16.h"
+
+class MISCF16:public Client::Suite
+    {
+        public:
+            MISCF16(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 "MISCF16_decl.h"
+            Client::Pattern<float16_t> input1;
+            Client::Pattern<float16_t> input2;
+            Client::LocalPattern<float16_t> output;
+
+            int nba;
+            int nbb;
+
+            const float16_t *inp1;
+            const float16_t *inp2;
+            float16_t *outp;
+            
+    };

+ 22 - 0
Testing/Include/Benchmarks/MicroBenchmarksF16.h

@@ -0,0 +1,22 @@
+#include "Test.h"
+#include "Pattern.h"
+class MicroBenchmarksF16:public Client::Suite
+    {
+        public:
+            MicroBenchmarksF16(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 "MicroBenchmarksF16_decl.h"
+
+            Client::Pattern<float16_t> input1;
+            Client::Pattern<float16_t> input2;
+            Client::LocalPattern<float16_t> output;
+
+            
+            int nbSamples;
+
+            float16_t *inp1;
+            float16_t *inp2;
+            float16_t *outp;
+    };

+ 46 - 0
Testing/Include/Benchmarks/SVMF16.h

@@ -0,0 +1,46 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/svm_functions_f16.h"
+
+
+class SVMF16:public Client::Suite
+    {
+        public:
+            SVMF16(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 "SVMF16_decl.h"
+            Client::Pattern<float16_t> samples;
+            Client::Pattern<int16_t> dims;
+            Client::Pattern<float16_t> params;
+
+
+            arm_svm_linear_instance_f16 linear;
+            arm_svm_polynomial_instance_f16 poly;
+            arm_svm_rbf_instance_f16 rbf;
+            arm_svm_sigmoid_instance_f16 sigmoid;
+
+            int vecDim,nbSupportVectors,nbTestSamples,degree;
+            int32_t classes[2]={0,0};
+            float16_t intercept;
+            const float16_t *supportVectors;
+            const float16_t *dualCoefs;
+            float16_t coef0, gamma;
+
+            float16_t *inp;
+
+
+            int nbLinear=0,nbPoly=0,nbRBF=0,nbSigmoid=0;
+
+
+            enum {
+                LINEAR=1,
+                POLY=2,
+                RBF=3,
+                SIGMOID=4
+            } kind;
+
+            
+    };

+ 30 - 0
Testing/Include/Benchmarks/StatsF16.h

@@ -0,0 +1,30 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/statistics_functions_f16.h"
+
+class StatsF16:public Client::Suite
+    {
+        public:
+            StatsF16(Testing::testID_t id);
+            virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
+            virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
+        private:
+            #include "StatsF16_decl.h"
+            
+            Client::Pattern<float16_t> inputA;
+            Client::Pattern<float16_t> inputB;
+
+            Client::LocalPattern<float16_t> output;
+            Client::LocalPattern<int16_t> index;
+            Client::LocalPattern<float16_t> tmp;
+
+            float16_t *inap;
+            float16_t *inbp;
+            float16_t *outp;
+            float16_t *tmpp;
+
+            int nb;
+           
+
+    };

+ 28 - 0
Testing/Include/Benchmarks/SupportBarF16.h

@@ -0,0 +1,28 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/support_functions_f16.h"
+
+class SupportBarF16:public Client::Suite
+    {
+        public:
+            SupportBarF16(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 "SupportBarF16_decl.h"
+            Client::Pattern<float16_t> input;
+            Client::Pattern<float16_t> coefs;
+
+            Client::LocalPattern<float16_t> output;
+
+            int vecDim;
+            int nbVectors;
+
+            const float16_t *inp;
+            const float16_t *coefsp;
+
+            float16_t *outp;
+
+            
+    };

+ 31 - 0
Testing/Include/Benchmarks/SupportF16.h

@@ -0,0 +1,31 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/support_functions_f16.h"
+
+class SupportF16:public Client::Suite
+    {
+        public:
+            SupportF16(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 "SupportF16_decl.h"
+            Client::Pattern<float16_t> samples;
+            Client::Pattern<float16_t> weights;
+            Client::Pattern<q15_t> samplesQ15;
+            Client::Pattern<float32_t> samplesF32;
+
+            Client::LocalPattern<float16_t> output;
+            
+            int nbSamples;
+
+            float16_t *pSrc;
+            float16_t *pWeights;
+
+            float32_t *pSrcF32;
+            q15_t *pSrcQ15;
+
+            float16_t *pDst;
+            
+    };

+ 35 - 0
Testing/Include/Benchmarks/TransformF16.h

@@ -0,0 +1,35 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/transform_functions_f16.h"
+
+class TransformF16:public Client::Suite
+    {
+        public:
+            TransformF16(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 "TransformF16_decl.h"
+            Client::Pattern<float16_t> samples;
+
+            Client::LocalPattern<float16_t> output;
+            Client::LocalPattern<float16_t> state;
+            
+            int nbSamples;
+            int ifft;
+            int bitRev;
+
+            float16_t *pSrc;
+            float16_t *pDst;
+            float16_t *pState;
+
+            arm_cfft_instance_f16 cfftInstance;
+            arm_rfft_fast_instance_f16 rfftFastInstance;
+
+            arm_status status;
+
+            arm_cfft_radix4_instance_f16 cfftRadix4Instance;
+            arm_cfft_radix2_instance_f16 cfftRadix2Instance;
+            
+    };

+ 26 - 0
Testing/Include/Benchmarks/UnaryF16.h

@@ -0,0 +1,26 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/matrix_functions_f16.h"
+
+class UnaryF16:public Client::Suite
+    {
+        public:
+            UnaryF16(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 "UnaryF16_decl.h"
+            Client::Pattern<float16_t> input1;
+            Client::Pattern<float16_t> vec;
+
+            Client::LocalPattern<float16_t> output;
+
+            int nbr;
+            int nbc;
+
+            float16_t *vecp;
+            float16_t *outp;
+            arm_matrix_instance_f16 in1;
+            arm_matrix_instance_f16 out;
+    };

+ 226 - 0
Testing/Parameters/DSP/Filtering/DECIM/DECIMF16/Params1.txt

@@ -0,0 +1,226 @@
+225
+1
+4
+4
+1
+5
+5
+1
+8
+8
+1
+8
+4
+1
+10
+5
+1
+16
+8
+1
+16
+4
+1
+20
+5
+1
+32
+8
+1
+32
+4
+1
+40
+5
+1
+64
+8
+1
+64
+4
+1
+80
+5
+1
+128
+8
+2
+4
+4
+2
+5
+5
+2
+8
+8
+2
+8
+4
+2
+10
+5
+2
+16
+8
+2
+16
+4
+2
+20
+5
+2
+32
+8
+2
+32
+4
+2
+40
+5
+2
+64
+8
+2
+64
+4
+2
+80
+5
+2
+128
+8
+4
+4
+4
+4
+5
+5
+4
+8
+8
+4
+8
+4
+4
+10
+5
+4
+16
+8
+4
+16
+4
+4
+20
+5
+4
+32
+8
+4
+32
+4
+4
+40
+5
+4
+64
+8
+4
+64
+4
+4
+80
+5
+4
+128
+8
+8
+4
+4
+8
+5
+5
+8
+8
+8
+8
+8
+4
+8
+10
+5
+8
+16
+8
+8
+16
+4
+8
+20
+5
+8
+32
+8
+8
+32
+4
+8
+40
+5
+8
+64
+8
+8
+64
+4
+8
+80
+5
+8
+128
+8
+16
+4
+4
+16
+5
+5
+16
+8
+8
+16
+8
+4
+16
+10
+5
+16
+16
+8
+16
+16
+4
+16
+20
+5
+16
+32
+8
+16
+32
+4
+16
+40
+5
+16
+64
+8
+16
+64
+4
+16
+80
+5
+16
+128
+8

+ 121 - 0
Testing/Parameters/DSP/Filtering/DECIM/DECIMF16/Params2.txt

@@ -0,0 +1,121 @@
+120
+2
+16
+2
+4
+16
+4
+5
+16
+5
+8
+16
+8
+9
+16
+9
+2
+64
+2
+4
+64
+4
+5
+64
+5
+8
+64
+8
+9
+64
+9
+4
+16
+2
+8
+16
+4
+10
+16
+5
+16
+16
+8
+18
+16
+9
+4
+64
+2
+8
+64
+4
+10
+64
+5
+16
+64
+8
+18
+64
+9
+8
+16
+2
+16
+16
+4
+20
+16
+5
+32
+16
+8
+36
+16
+9
+8
+64
+2
+16
+64
+4
+20
+64
+5
+32
+64
+8
+36
+64
+9
+16
+16
+2
+32
+16
+4
+40
+16
+5
+64
+16
+8
+72
+16
+9
+16
+64
+2
+32
+64
+4
+40
+64
+5
+64
+64
+8
+72
+64
+9

+ 2 - 0
Testing/PatternGeneration/Controller.py

@@ -22,11 +22,13 @@ def generatePatterns():
     PARAMDIR = os.path.join("Parameters","DSP","Controller","Controller")
     
     configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
+    configf16=Tools.Config(PATTERNDIR,PARAMDIR,"f16")
     configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31")
     configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15")
     
     
     writeTests(configf32)
+    writeTests(configf16)
     writeTests(configq31)
     writeTests(configq15)
 

+ 6 - 2
Testing/PatternGeneration/Decimate.py

@@ -42,16 +42,16 @@ def generateBenchmarkPatterns():
     PARAMDIR = os.path.join("Parameters","DSP","Filtering","DECIM","DECIM")
     
     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")
     
     
     
     writeBenchmarks(configf32)
+    writeBenchmarks(configf16)
     writeBenchmarks(configq31)
     writeBenchmarks(configq15)
-    #writeBenchmarks(configq7)
     
     
     # For decimation, number of samples must be a multiple of decimation factor.
@@ -67,6 +67,7 @@ def generateBenchmarkPatterns():
     r = r.reshape(finalLength)
     
     configf32.writeParam(1, r)
+    configf16.writeParam(1, r)
     configq31.writeParam(1, r)
     configq15.writeParam(1, r)
     
@@ -83,6 +84,7 @@ def generateBenchmarkPatterns():
     r = r.reshape(finalLength)
     
     configf32.writeParam(2, r)
+    configf16.writeParam(2, r)
     configq31.writeParam(2, r)
     configq15.writeParam(2, r)
 
@@ -223,10 +225,12 @@ def generateTestPatterns():
     PARAMDIR = os.path.join("Parameters","DSP","Filtering","DECIM","DECIM")
     
     configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
+    configf16=Tools.Config(PATTERNDIR,PARAMDIR,"f16")
     configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31")
     configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15")
 
     writeTests(configf32,0)
+    writeTests(configf16,16)
     writeTests(configq31,31)
     writeTests(configq15,15)
 

+ 514 - 0
Testing/Patterns/DSP/Controller/ControllerF16/Samples1_f16.txt

@@ -0,0 +1,514 @@
+H
+256
+// 0.251535
+0x3406
+// -0.521380
+0xb82c
+// -0.429203
+0xb6de
+// 0.444876
+0x371e
+// -0.158328
+0xb111
+// 0.206526
+0x329c
+// 0.058162
+0x2b72
+// 0.229484
+0x3358
+// -0.060484
+0xabbe
+// 0.611340
+0x38e4
+// -0.278521
+0xb475
+// -0.052971
+0xaac8
+// -0.084553
+0xad69
+// 0.381280
+0x361a
+// 0.564132
+0x3883
+// -0.024084
+0xa62a
+// -0.759257
+0xba13
+// 0.140628
+0x3080
+// -0.228127
+0xb34d
+// 0.090093
+0x2dc4
+// -0.382767
+0xb620
+// 0.251874
+0x3408
+// -0.138609
+0xb06f
+// 0.221692
+0x3318
+// -0.352944
+0xb5a6
+// 0.260691
+0x342c
+// 0.337106
+0x3565
+// 0.127079
+0x3011
+// -0.300711
+0xb4d0
+// -0.043177
+0xa987
+// 0.557621
+0x3876
+// 0.006900
+0x1f11
+// 0.051840
+0x2aa3
+// -0.044126
+0xa9a6
+// 0.504226
+0x3809
+// -0.573480
+0xb896
+// 0.055161
+0x2b10
+// 0.342847
+0x357c
+// -0.142210
+0xb08d
+// -0.019973
+0xa51d
+// -0.832556
+0xbaa9
+// 0.024559
+0x2649
+// -0.235166
+0xb386
+// 0.854500
+0x3ad6
+// -0.338866
+0xb56c
+// -0.577304
+0xb89e
+// 0.331855
+0x354f
+// 0.972540
+0x3bc8
+// 0.421474
+0x36be
+// -0.328348
+0xb541
+// 0.312677
+0x3501
+// -0.198160
+0xb257
+// 0.213659
+0x32d6
+// 0.057851
+0x2b68
+// -0.164482
+0xb143
+// -1.000000
+0xbc00
+// 0.260355
+0x342a
+// 0.079910
+0x2d1d
+// -0.245885
+0xb3de
+// 0.167650
+0x315d
+// 0.007285
+0x1f76
+// 0.235373
+0x3388
+// -0.401764
+0xb66e
+// 0.110140
+0x2f0d
+// 0.675048
+0x3966
+// -0.135715
+0xb058
+// 0.827423
+0x3a9f
+// -0.008004
+0xa019
+// 0.060725
+0x2bc6
+// -0.064991
+0xac29
+// -0.455621
+0xb74a
+// -0.225508
+0xb337
+// 0.527300
+0x3838
+// -0.573761
+0xb897
+// 0.273610
+0x3461
+// 0.692229
+0x398a
+// -0.169341
+0xb16b
+// -0.398268
+0xb65f
+// 0.611399
+0x38e4
+// -0.175155
+0xb19b
+// -0.128563
+0xb01d
+// 0.392247
+0x3647
+// -0.036059
+0xa89e
+// -0.907987
+0xbb44
+// 0.082720
+0x2d4b
+// -0.431594
+0xb6e8
+// -0.710805
+0xb9b0
+// 0.252036
+0x3408
+// 0.498426
+0x37fa
+// 0.314976
+0x350a
+// 0.691501
+0x3988
+// -0.364978
+0xb5d7
+// -0.188105
+0xb205
+// -0.212691
+0xb2ce
+// 0.415095
+0x36a4
+// -0.225373
+0xb336
+// -0.551607
+0xb86a
+// -0.073888
+0xacbb
+// -0.217913
+0xb2f9
+// 0.932649
+0x3b76
+// 0.001831
+0x1780
+// -0.219932
+0xb30a
+// -0.158751
+0xb114
+// 0.147282
+0x30b7
+// -0.305986
+0xb4e5
+// -0.317092
+0xb513
+// -0.566955
+0xb889
+// 0.357029
+0x35b6
+// 0.850052
+0x3acd
+// -0.412848
+0xb69b
+// -0.847632
+0xbac8
+// 0.759301
+0x3a13
+// 0.697314
+0x3994
+// 0.341750
+0x3578
+// 0.011683
+0x21fb
+// 0.195285
+0x3240
+// -0.435982
+0xb6fa
+// 0.645581
+0x392a
+// 0.062430
+0x2bfe
+// -0.780520
+0xba3f
+// -0.399379
+0xb664
+// 0.155903
+0x30fd
+// 0.602852
+0x38d3
+// 0.290879
+0x34a7
+// -0.339329
+0xb56e
+// -0.344572
+0xb583
+// -0.112968
+0xaf3b
+// -0.124557
+0xaff9
+// 0.580374
+0x38a5
+// 0.195869
+0x3245
+// 0.335509
+0x355e
+// 0.344066
+0x3581
+// 0.272493
+0x345c
+// -0.089621
+0xadbc
+// 0.074729
+0x2cc8
+// -0.425459
+0xb6cf
+// 0.723022
+0x39c9
+// 0.208432
+0x32ab
+// -0.175967
+0xb1a2
+// -0.254260
+0xb411
+// 0.221417
+0x3316
+// 0.869643
+0x3af5
+// 0.104031
+0x2ea8
+// 0.177479
+0x31ae
+// 0.425261
+0x36ce
+// -0.031165
+0xa7fa
+// 0.312417
+0x3500
+// 0.140912
+0x3082
+// 0.197742
+0x3254
+// 0.336508
+0x3562
+// 0.103458
+0x2e9f
+// 0.369596
+0x35ea
+// -0.571974
+0xb893
+// 0.447660
+0x372a
+// 0.359271
+0x35c0
+// 0.393368
+0x364b
+// -0.214764
+0xb2df
+// 0.200286
+0x3269
+// 0.136990
+0x3062
+// 0.628241
+0x3907
+// 0.039301
+0x2908
+// 0.197620
+0x3253
+// 0.217357
+0x32f5
+// 0.988537
+0x3be9
+// -0.465204
+0xb771
+// 0.184979
+0x31eb
+// 0.349360
+0x3597
+// -0.375006
+0xb600
+// -0.088246
+0xada6
+// 0.176585
+0x31a7
+// -0.501042
+0xb802
+// 0.203499
+0x3283
+// -0.462527
+0xb767
+// -0.160806
+0xb125
+// 0.209425
+0x32b4
+// 0.740892
+0x39ed
+// 0.485576
+0x37c5
+// 0.472151
+0x378e
+// 0.698987
+0x3998
+// 0.108114
+0x2eeb
+// -0.154337
+0xb0f0
+// 0.839611
+0x3ab8
+// -0.242329
+0xb3c1
+// 0.173053
+0x318a
+// -0.545567
+0xb85d
+// -0.173119
+0xb18a
+// 0.142486
+0x308f
+// -0.621215
+0xb8f8
+// 0.006774
+0x1ef0
+// -0.168133
+0xb161
+// 0.023593
+0x260a
+// 0.545516
+0x385d
+// -0.064846
+0xac26
+// 0.352409
+0x35a3
+// -0.474198
+0xb796
+// -0.129172
+0xb022
+// -0.328647
+0xb542
+// 0.442849
+0x3716
+// 0.058341
+0x2b78
+// 0.247877
+0x33ef
+// -0.121096
+0xafc0
+// -0.480854
+0xb7b2
+// -0.013311
+0xa2d1
+// 0.186322
+0x31f6
+// -0.287421
+0xb499
+// 0.051041
+0x2a89
+// -0.208944
+0xb2b0
+// -0.339993
+0xb571
+// 0.387487
+0x3633
+// -0.308673
+0xb4f0
+// -0.099450
+0xae5d
+// 0.396048
+0x3656
+// 0.243255
+0x33c9
+// -0.237574
+0xb39a
+// -0.403596
+0xb675
+// -0.140185
+0xb07c
+// -0.679623
+0xb970
+// 0.130785
+0x302f
+// -0.173342
+0xb18c
+// -0.428392
+0xb6db
+// 0.208429
+0x32ab
+// 0.088412
+0x2da9
+// 0.373213
+0x35f9
+// 0.229547
+0x3358
+// -0.282329
+0xb484
+// -0.136411
+0xb05d
+// -0.246878
+0xb3e6
+// 0.257811
+0x3420
+// -0.573858
+0xb897
+// -0.320316
+0xb520
+// -0.513126
+0xb81b
+// 0.395758
+0x3655
+// -0.092480
+0xadeb
+// 0.160334
+0x3121
+// 0.448558
+0x372d
+// 0.507607
+0x3810
+// 0.037301
+0x28c6
+// -0.682850
+0xb976
+// 0.330718
+0x354b
+// -0.087212
+0xad95
+// 0.845461
+0x3ac4
+// 0.401284
+0x366c
+// -0.276324
+0xb46c
+// 0.425477
+0x36cf
+// -0.207387
+0xb2a3
+// -0.514653
+0xb81e
+// 0.075690
+0x2cd8
+// 0.196432
+0x3249
+// -0.570443
+0xb890
+// 0.000005
+0x5b
+// -0.006457
+0x9e9d
+// 0.352580
+0x35a4
+// 0.540107
+0x3852
+// 0.182069
+0x31d4
+// -0.633604
+0xb912
+// 0.380086
+0x3615

+ 130 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Coefs1_f16.txt

@@ -0,0 +1,130 @@
+H
+64
+// -0.088810
+0xadaf
+// 0.543566
+0x3859
+// 0.127150
+0x3012
+// -0.291713
+0xb4ab
+// -0.918474
+0xbb59
+// -0.272877
+0xb45e
+// -1.000000
+0xbc00
+// -0.403025
+0xb673
+// 0.144870
+0x30a3
+// 0.275101
+0x3467
+// -0.108669
+0xaef4
+// -0.312490
+0xb500
+// -0.360363
+0xb5c4
+// 0.158760
+0x3115
+// -0.090518
+0xadcb
+// -0.254862
+0xb414
+// 0.292027
+0x34ac
+// 0.017793
+0x248e
+// 0.209733
+0x32b6
+// -0.038753
+0xa8f6
+// 0.168743
+0x3166
+// 0.000470
+0xfb3
+// -0.079246
+0xad12
+// 0.596153
+0x38c5
+// -0.248824
+0xb3f6
+// 0.387119
+0x3632
+// 0.395495
+0x3654
+// -0.341173
+0xb575
+// -0.113490
+0xaf43
+// -0.244112
+0xb3d0
+// -0.502651
+0xb805
+// 0.303600
+0x34dc
+// 0.047838
+0x2a20
+// -0.119829
+0xafab
+// 0.115682
+0x2f67
+// -0.357728
+0xb5b9
+// 0.288830
+0x349f
+// -0.075723
+0xacd9
+// -0.289685
+0xb4a3
+// -0.141660
+0xb088
+// -0.093463
+0xadfb
+// -0.528745
+0xb83b
+// -0.133434
+0xb045
+// 0.285986
+0x3493
+// 0.430721
+0x36e4
+// 0.125294
+0x3002
+// -0.373612
+0xb5fa
+// 0.086861
+0x2d8f
+// 0.260113
+0x3429
+// 0.509117
+0x3813
+// 0.201940
+0x3276
+// -0.483363
+0xb7bc
+// 0.449686
+0x3732
+// -0.575492
+0xb89b
+// -0.017241
+0xa46a
+// -0.042966
+0xa980
+// -0.082650
+0xad4a
+// 0.626308
+0x3903
+// 0.054350
+0x2af5
+// 0.140637
+0x3080
+// -0.245748
+0xb3dd
+// -0.279332
+0xb478
+// 0.303673
+0x34dc
+// 0.029143
+0x2776

+ 2282 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Coefs2_f16.txt

@@ -0,0 +1,2282 @@
+H
+1140
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290
+// 0.259259
+0x3426
+// 0.222222
+0x331c
+// 0.185185
+0x31ed
+// 0.148148
+0x30be
+// 0.111111
+0x2f1c
+// 0.074074
+0x2cbe
+// 0.037037
+0x28be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.306667
+0x34e8
+// 0.293333
+0x34b1
+// 0.280000
+0x347b
+// 0.266667
+0x3444
+// 0.253333
+0x340e
+// 0.240000
+0x33ae
+// 0.226667
+0x3341
+// 0.213333
+0x32d4
+// 0.200000
+0x3266
+// 0.186667
+0x31f9
+// 0.173333
+0x318c
+// 0.160000
+0x311f
+// 0.146667
+0x30b1
+// 0.133333
+0x3044
+// 0.120000
+0x2fae
+// 0.106667
+0x2ed4
+// 0.093333
+0x2df9
+// 0.080000
+0x2d1f
+// 0.066667
+0x2c44
+// 0.053333
+0x2ad4
+// 0.040000
+0x291f
+// 0.026667
+0x26d4
+// 0.013333
+0x22d4
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.298246
+0x34c6
+// 0.280702
+0x347e
+// 0.263158
+0x3436
+// 0.245614
+0x33dc
+// 0.228070
+0x334c
+// 0.210526
+0x32bd
+// 0.192982
+0x322d
+// 0.175439
+0x319d
+// 0.157895
+0x310d
+// 0.140351
+0x307e
+// 0.122807
+0x2fdc
+// 0.105263
+0x2ebd
+// 0.087719
+0x2d9d
+// 0.070175
+0x2c7e
+// 0.052632
+0x2abd
+// 0.035088
+0x287e
+// 0.017544
+0x247e
+// 0.307692
+0x34ec
+// 0.294872
+0x34b8
+// 0.282051
+0x3483
+// 0.269231
+0x344f
+// 0.256410
+0x341a
+// 0.243590
+0x33cb
+// 0.230769
+0x3362
+// 0.217949
+0x32f9
+// 0.205128
+0x3290
+// 0.192308
+0x3227
+// 0.179487
+0x31be
+// 0.166667
+0x3155
+// 0.153846
+0x30ec
+// 0.141026
+0x3083
+// 0.128205
+0x301a
+// 0.115385
+0x2f62
+// 0.102564
+0x2e90
+// 0.089744
+0x2dbe
+// 0.076923
+0x2cec
+// 0.064103
+0x2c1a
+// 0.051282
+0x2a90
+// 0.038462
+0x28ec
+// 0.025641
+0x2690
+// 0.012821
+0x2290

+ 2090 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Coefs3_f16.txt

@@ -0,0 +1,2090 @@
+H
+1044
+// 0.222222
+0x331c
+// 0.166667
+0x3155
+// 0.111111
+0x2f1c
+// 0.055556
+0x2b1c
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.222222
+0x331c
+// 0.166667
+0x3155
+// 0.111111
+0x2f1c
+// 0.055556
+0x2b1c
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.222222
+0x331c
+// 0.166667
+0x3155
+// 0.111111
+0x2f1c
+// 0.055556
+0x2b1c
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.266667
+0x3444
+// 0.233333
+0x3377
+// 0.200000
+0x3266
+// 0.166667
+0x3155
+// 0.133333
+0x3044
+// 0.100000
+0x2e66
+// 0.066667
+0x2c44
+// 0.033333
+0x2844
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.313725
+0x3505
+// 0.303922
+0x34dd
+// 0.294118
+0x34b5
+// 0.284314
+0x348d
+// 0.274510
+0x3464
+// 0.264706
+0x343c
+// 0.254902
+0x3414
+// 0.245098
+0x33d8
+// 0.235294
+0x3388
+// 0.225490
+0x3337
+// 0.215686
+0x32e7
+// 0.205882
+0x3297
+// 0.196078
+0x3246
+// 0.186275
+0x31f6
+// 0.176471
+0x31a6
+// 0.166667
+0x3155
+// 0.156863
+0x3105
+// 0.147059
+0x30b5
+// 0.137255
+0x3064
+// 0.127451
+0x3014
+// 0.117647
+0x2f88
+// 0.107843
+0x2ee7
+// 0.098039
+0x2e46
+// 0.088235
+0x2da6
+// 0.078431
+0x2d05
+// 0.068627
+0x2c64
+// 0.058824
+0x2b88
+// 0.049020
+0x2a46
+// 0.039216
+0x2905
+// 0.029412
+0x2788
+// 0.019608
+0x2505
+// 0.009804
+0x2105
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.313725
+0x3505
+// 0.303922
+0x34dd
+// 0.294118
+0x34b5
+// 0.284314
+0x348d
+// 0.274510
+0x3464
+// 0.264706
+0x343c
+// 0.254902
+0x3414
+// 0.245098
+0x33d8
+// 0.235294
+0x3388
+// 0.225490
+0x3337
+// 0.215686
+0x32e7
+// 0.205882
+0x3297
+// 0.196078
+0x3246
+// 0.186275
+0x31f6
+// 0.176471
+0x31a6
+// 0.166667
+0x3155
+// 0.156863
+0x3105
+// 0.147059
+0x30b5
+// 0.137255
+0x3064
+// 0.127451
+0x3014
+// 0.117647
+0x2f88
+// 0.107843
+0x2ee7
+// 0.098039
+0x2e46
+// 0.088235
+0x2da6
+// 0.078431
+0x2d05
+// 0.068627
+0x2c64
+// 0.058824
+0x2b88
+// 0.049020
+0x2a46
+// 0.039216
+0x2905
+// 0.029412
+0x2788
+// 0.019608
+0x2505
+// 0.009804
+0x2105
+// 0.296296
+0x34be
+// 0.277778
+0x3472
+// 0.259259
+0x3426
+// 0.240741
+0x33b4
+// 0.222222
+0x331c
+// 0.203704
+0x3285
+// 0.185185
+0x31ed
+// 0.166667
+0x3155
+// 0.148148
+0x30be
+// 0.129630
+0x3026
+// 0.111111
+0x2f1c
+// 0.092593
+0x2ded
+// 0.074074
+0x2cbe
+// 0.055556
+0x2b1c
+// 0.037037
+0x28be
+// 0.018519
+0x24be
+// 0.313725
+0x3505
+// 0.303922
+0x34dd
+// 0.294118
+0x34b5
+// 0.284314
+0x348d
+// 0.274510
+0x3464
+// 0.264706
+0x343c
+// 0.254902
+0x3414
+// 0.245098
+0x33d8
+// 0.235294
+0x3388
+// 0.225490
+0x3337
+// 0.215686
+0x32e7
+// 0.205882
+0x3297
+// 0.196078
+0x3246
+// 0.186275
+0x31f6
+// 0.176471
+0x31a6
+// 0.166667
+0x3155
+// 0.156863
+0x3105
+// 0.147059
+0x30b5
+// 0.137255
+0x3064
+// 0.127451
+0x3014
+// 0.117647
+0x2f88
+// 0.107843
+0x2ee7
+// 0.098039
+0x2e46
+// 0.088235
+0x2da6
+// 0.078431
+0x2d05
+// 0.068627
+0x2c64
+// 0.058824
+0x2b88
+// 0.049020
+0x2a46
+// 0.039216
+0x2905
+// 0.029412
+0x2788
+// 0.019608
+0x2505
+// 0.009804
+0x2105
+// 0.303030
+0x34d9
+// 0.287879
+0x349b
+// 0.272727
+0x345d
+// 0.257576
+0x341f
+// 0.242424
+0x33c2
+// 0.227273
+0x3346
+// 0.212121
+0x32ca
+// 0.196970
+0x324e
+// 0.181818
+0x31d1
+// 0.166667
+0x3155
+// 0.151515
+0x30d9
+// 0.136364
+0x305d
+// 0.121212
+0x2fc2
+// 0.106061
+0x2eca
+// 0.090909
+0x2dd1
+// 0.075758
+0x2cd9
+// 0.060606
+0x2bc2
+// 0.045455
+0x29d1
+// 0.030303
+0x27c2
+// 0.015152
+0x23c2
+// 0.317460
+0x3514
+// 0.309524
+0x34f4
+// 0.301587
+0x34d3
+// 0.293651
+0x34b3
+// 0.285714
+0x3492
+// 0.277778
+0x3472
+// 0.269841
+0x3451
+// 0.261905
+0x3431
+// 0.253968
+0x3410
+// 0.246032
+0x33df
+// 0.238095
+0x339e
+// 0.230159
+0x335d
+// 0.222222
+0x331c
+// 0.214286
+0x32db
+// 0.206349
+0x329a
+// 0.198413
+0x3259
+// 0.190476
+0x3218
+// 0.182540
+0x31d7
+// 0.174603
+0x3196
+// 0.166667
+0x3155
+// 0.158730
+0x3114
+// 0.150794
+0x30d3
+// 0.142857
+0x3092
+// 0.134921
+0x3051
+// 0.126984
+0x3010
+// 0.119048
+0x2f9e
+// 0.111111
+0x2f1c
+// 0.103175
+0x2e9a
+// 0.095238
+0x2e18
+// 0.087302
+0x2d96
+// 0.079365
+0x2d14
+// 0.071429
+0x2c92
+// 0.063492
+0x2c10
+// 0.055556
+0x2b1c
+// 0.047619
+0x2a18
+// 0.039683
+0x2914
+// 0.031746
+0x2810
+// 0.023810
+0x2618
+// 0.015873
+0x2410
+// 0.007937
+0x2010
+// 0.303030
+0x34d9
+// 0.287879
+0x349b
+// 0.272727
+0x345d
+// 0.257576
+0x341f
+// 0.242424
+0x33c2
+// 0.227273
+0x3346
+// 0.212121
+0x32ca
+// 0.196970
+0x324e
+// 0.181818
+0x31d1
+// 0.166667
+0x3155
+// 0.151515
+0x30d9
+// 0.136364
+0x305d
+// 0.121212
+0x2fc2
+// 0.106061
+0x2eca
+// 0.090909
+0x2dd1
+// 0.075758
+0x2cd9
+// 0.060606
+0x2bc2
+// 0.045455
+0x29d1
+// 0.030303
+0x27c2
+// 0.015152
+0x23c2
+// 0.317460
+0x3514
+// 0.309524
+0x34f4
+// 0.301587
+0x34d3
+// 0.293651
+0x34b3
+// 0.285714
+0x3492
+// 0.277778
+0x3472
+// 0.269841
+0x3451
+// 0.261905
+0x3431
+// 0.253968
+0x3410
+// 0.246032
+0x33df
+// 0.238095
+0x339e
+// 0.230159
+0x335d
+// 0.222222
+0x331c
+// 0.214286
+0x32db
+// 0.206349
+0x329a
+// 0.198413
+0x3259
+// 0.190476
+0x3218
+// 0.182540
+0x31d7
+// 0.174603
+0x3196
+// 0.166667
+0x3155
+// 0.158730
+0x3114
+// 0.150794
+0x30d3
+// 0.142857
+0x3092
+// 0.134921
+0x3051
+// 0.126984
+0x3010
+// 0.119048
+0x2f9e
+// 0.111111
+0x2f1c
+// 0.103175
+0x2e9a
+// 0.095238
+0x2e18
+// 0.087302
+0x2d96
+// 0.079365
+0x2d14
+// 0.071429
+0x2c92
+// 0.063492
+0x2c10
+// 0.055556
+0x2b1c
+// 0.047619
+0x2a18
+// 0.039683
+0x2914
+// 0.031746
+0x2810
+// 0.023810
+0x2618
+// 0.015873
+0x2410
+// 0.007937
+0x2010
+// 0.303030
+0x34d9
+// 0.287879
+0x349b
+// 0.272727
+0x345d
+// 0.257576
+0x341f
+// 0.242424
+0x33c2
+// 0.227273
+0x3346
+// 0.212121
+0x32ca
+// 0.196970
+0x324e
+// 0.181818
+0x31d1
+// 0.166667
+0x3155
+// 0.151515
+0x30d9
+// 0.136364
+0x305d
+// 0.121212
+0x2fc2
+// 0.106061
+0x2eca
+// 0.090909
+0x2dd1
+// 0.075758
+0x2cd9
+// 0.060606
+0x2bc2
+// 0.045455
+0x29d1
+// 0.030303
+0x27c2
+// 0.015152
+0x23c2
+// 0.317460
+0x3514
+// 0.309524
+0x34f4
+// 0.301587
+0x34d3
+// 0.293651
+0x34b3
+// 0.285714
+0x3492
+// 0.277778
+0x3472
+// 0.269841
+0x3451
+// 0.261905
+0x3431
+// 0.253968
+0x3410
+// 0.246032
+0x33df
+// 0.238095
+0x339e
+// 0.230159
+0x335d
+// 0.222222
+0x331c
+// 0.214286
+0x32db
+// 0.206349
+0x329a
+// 0.198413
+0x3259
+// 0.190476
+0x3218
+// 0.182540
+0x31d7
+// 0.174603
+0x3196
+// 0.166667
+0x3155
+// 0.158730
+0x3114
+// 0.150794
+0x30d3
+// 0.142857
+0x3092
+// 0.134921
+0x3051
+// 0.126984
+0x3010
+// 0.119048
+0x2f9e
+// 0.111111
+0x2f1c
+// 0.103175
+0x2e9a
+// 0.095238
+0x2e18
+// 0.087302
+0x2d96
+// 0.079365
+0x2d14
+// 0.071429
+0x2c92
+// 0.063492
+0x2c10
+// 0.055556
+0x2b1c
+// 0.047619
+0x2a18
+// 0.039683
+0x2914
+// 0.031746
+0x2810
+// 0.023810
+0x2618
+// 0.015873
+0x2410
+// 0.007937
+0x2010
+// 0.313725
+0x3505
+// 0.303922
+0x34dd
+// 0.294118
+0x34b5
+// 0.284314
+0x348d
+// 0.274510
+0x3464
+// 0.264706
+0x343c
+// 0.254902
+0x3414
+// 0.245098
+0x33d8
+// 0.235294
+0x3388
+// 0.225490
+0x3337
+// 0.215686
+0x32e7
+// 0.205882
+0x3297
+// 0.196078
+0x3246
+// 0.186275
+0x31f6
+// 0.176471
+0x31a6
+// 0.166667
+0x3155
+// 0.156863
+0x3105
+// 0.147059
+0x30b5
+// 0.137255
+0x3064
+// 0.127451
+0x3014
+// 0.117647
+0x2f88
+// 0.107843
+0x2ee7
+// 0.098039
+0x2e46
+// 0.088235
+0x2da6
+// 0.078431
+0x2d05
+// 0.068627
+0x2c64
+// 0.058824
+0x2b88
+// 0.049020
+0x2a46
+// 0.039216
+0x2905
+// 0.029412
+0x2788
+// 0.019608
+0x2505
+// 0.009804
+0x2105
+// 0.323232
+0x352c
+// 0.318182
+0x3517
+// 0.313131
+0x3503
+// 0.308081
+0x34ee
+// 0.303030
+0x34d9
+// 0.297980
+0x34c5
+// 0.292929
+0x34b0
+// 0.287879
+0x349b
+// 0.282828
+0x3486
+// 0.277778
+0x3472
+// 0.272727
+0x345d
+// 0.267677
+0x3448
+// 0.262626
+0x3434
+// 0.257576
+0x341f
+// 0.252525
+0x340a
+// 0.247475
+0x33eb
+// 0.242424
+0x33c2
+// 0.237374
+0x3399
+// 0.232323
+0x336f
+// 0.227273
+0x3346
+// 0.222222
+0x331c
+// 0.217172
+0x32f3
+// 0.212121
+0x32ca
+// 0.207071
+0x32a0
+// 0.202020
+0x3277
+// 0.196970
+0x324e
+// 0.191919
+0x3224
+// 0.186869
+0x31fb
+// 0.181818
+0x31d1
+// 0.176768
+0x31a8
+// 0.171717
+0x317f
+// 0.166667
+0x3155
+// 0.161616
+0x312c
+// 0.156566
+0x3103
+// 0.151515
+0x30d9
+// 0.146465
+0x30b0
+// 0.141414
+0x3086
+// 0.136364
+0x305d
+// 0.131313
+0x3034
+// 0.126263
+0x300a
+// 0.121212
+0x2fc2
+// 0.116162
+0x2f6f
+// 0.111111
+0x2f1c
+// 0.106061
+0x2eca
+// 0.101010
+0x2e77
+// 0.095960
+0x2e24
+// 0.090909
+0x2dd1
+// 0.085859
+0x2d7f
+// 0.080808
+0x2d2c
+// 0.075758
+0x2cd9
+// 0.070707
+0x2c86
+// 0.065657
+0x2c34
+// 0.060606
+0x2bc2
+// 0.055556
+0x2b1c
+// 0.050505
+0x2a77
+// 0.045455
+0x29d1
+// 0.040404
+0x292c
+// 0.035354
+0x2886
+// 0.030303
+0x27c2
+// 0.025253
+0x2677
+// 0.020202
+0x252c
+// 0.015152
+0x23c2
+// 0.010101
+0x212c
+// 0.005051
+0x1d2c
+// 0.313725
+0x3505
+// 0.303922
+0x34dd
+// 0.294118
+0x34b5
+// 0.284314
+0x348d
+// 0.274510
+0x3464
+// 0.264706
+0x343c
+// 0.254902
+0x3414
+// 0.245098
+0x33d8
+// 0.235294
+0x3388
+// 0.225490
+0x3337
+// 0.215686
+0x32e7
+// 0.205882
+0x3297
+// 0.196078
+0x3246
+// 0.186275
+0x31f6
+// 0.176471
+0x31a6
+// 0.166667
+0x3155
+// 0.156863
+0x3105
+// 0.147059
+0x30b5
+// 0.137255
+0x3064
+// 0.127451
+0x3014
+// 0.117647
+0x2f88
+// 0.107843
+0x2ee7
+// 0.098039
+0x2e46
+// 0.088235
+0x2da6
+// 0.078431
+0x2d05
+// 0.068627
+0x2c64
+// 0.058824
+0x2b88
+// 0.049020
+0x2a46
+// 0.039216
+0x2905
+// 0.029412
+0x2788
+// 0.019608
+0x2505
+// 0.009804
+0x2105
+// 0.323232
+0x352c
+// 0.318182
+0x3517
+// 0.313131
+0x3503
+// 0.308081
+0x34ee
+// 0.303030
+0x34d9
+// 0.297980
+0x34c5
+// 0.292929
+0x34b0
+// 0.287879
+0x349b
+// 0.282828
+0x3486
+// 0.277778
+0x3472
+// 0.272727
+0x345d
+// 0.267677
+0x3448
+// 0.262626
+0x3434
+// 0.257576
+0x341f
+// 0.252525
+0x340a
+// 0.247475
+0x33eb
+// 0.242424
+0x33c2
+// 0.237374
+0x3399
+// 0.232323
+0x336f
+// 0.227273
+0x3346
+// 0.222222
+0x331c
+// 0.217172
+0x32f3
+// 0.212121
+0x32ca
+// 0.207071
+0x32a0
+// 0.202020
+0x3277
+// 0.196970
+0x324e
+// 0.191919
+0x3224
+// 0.186869
+0x31fb
+// 0.181818
+0x31d1
+// 0.176768
+0x31a8
+// 0.171717
+0x317f
+// 0.166667
+0x3155
+// 0.161616
+0x312c
+// 0.156566
+0x3103
+// 0.151515
+0x30d9
+// 0.146465
+0x30b0
+// 0.141414
+0x3086
+// 0.136364
+0x305d
+// 0.131313
+0x3034
+// 0.126263
+0x300a
+// 0.121212
+0x2fc2
+// 0.116162
+0x2f6f
+// 0.111111
+0x2f1c
+// 0.106061
+0x2eca
+// 0.101010
+0x2e77
+// 0.095960
+0x2e24
+// 0.090909
+0x2dd1
+// 0.085859
+0x2d7f
+// 0.080808
+0x2d2c
+// 0.075758
+0x2cd9
+// 0.070707
+0x2c86
+// 0.065657
+0x2c34
+// 0.060606
+0x2bc2
+// 0.055556
+0x2b1c
+// 0.050505
+0x2a77
+// 0.045455
+0x29d1
+// 0.040404
+0x292c
+// 0.035354
+0x2886
+// 0.030303
+0x27c2
+// 0.025253
+0x2677
+// 0.020202
+0x252c
+// 0.015152
+0x23c2
+// 0.010101
+0x212c
+// 0.005051
+0x1d2c
+// 0.313725
+0x3505
+// 0.303922
+0x34dd
+// 0.294118
+0x34b5
+// 0.284314
+0x348d
+// 0.274510
+0x3464
+// 0.264706
+0x343c
+// 0.254902
+0x3414
+// 0.245098
+0x33d8
+// 0.235294
+0x3388
+// 0.225490
+0x3337
+// 0.215686
+0x32e7
+// 0.205882
+0x3297
+// 0.196078
+0x3246
+// 0.186275
+0x31f6
+// 0.176471
+0x31a6
+// 0.166667
+0x3155
+// 0.156863
+0x3105
+// 0.147059
+0x30b5
+// 0.137255
+0x3064
+// 0.127451
+0x3014
+// 0.117647
+0x2f88
+// 0.107843
+0x2ee7
+// 0.098039
+0x2e46
+// 0.088235
+0x2da6
+// 0.078431
+0x2d05
+// 0.068627
+0x2c64
+// 0.058824
+0x2b88
+// 0.049020
+0x2a46
+// 0.039216
+0x2905
+// 0.029412
+0x2788
+// 0.019608
+0x2505
+// 0.009804
+0x2105
+// 0.323232
+0x352c
+// 0.318182
+0x3517
+// 0.313131
+0x3503
+// 0.308081
+0x34ee
+// 0.303030
+0x34d9
+// 0.297980
+0x34c5
+// 0.292929
+0x34b0
+// 0.287879
+0x349b
+// 0.282828
+0x3486
+// 0.277778
+0x3472
+// 0.272727
+0x345d
+// 0.267677
+0x3448
+// 0.262626
+0x3434
+// 0.257576
+0x341f
+// 0.252525
+0x340a
+// 0.247475
+0x33eb
+// 0.242424
+0x33c2
+// 0.237374
+0x3399
+// 0.232323
+0x336f
+// 0.227273
+0x3346
+// 0.222222
+0x331c
+// 0.217172
+0x32f3
+// 0.212121
+0x32ca
+// 0.207071
+0x32a0
+// 0.202020
+0x3277
+// 0.196970
+0x324e
+// 0.191919
+0x3224
+// 0.186869
+0x31fb
+// 0.181818
+0x31d1
+// 0.176768
+0x31a8
+// 0.171717
+0x317f
+// 0.166667
+0x3155
+// 0.161616
+0x312c
+// 0.156566
+0x3103
+// 0.151515
+0x30d9
+// 0.146465
+0x30b0
+// 0.141414
+0x3086
+// 0.136364
+0x305d
+// 0.131313
+0x3034
+// 0.126263
+0x300a
+// 0.121212
+0x2fc2
+// 0.116162
+0x2f6f
+// 0.111111
+0x2f1c
+// 0.106061
+0x2eca
+// 0.101010
+0x2e77
+// 0.095960
+0x2e24
+// 0.090909
+0x2dd1
+// 0.085859
+0x2d7f
+// 0.080808
+0x2d2c
+// 0.075758
+0x2cd9
+// 0.070707
+0x2c86
+// 0.065657
+0x2c34
+// 0.060606
+0x2bc2
+// 0.055556
+0x2b1c
+// 0.050505
+0x2a77
+// 0.045455
+0x29d1
+// 0.040404
+0x292c
+// 0.035354
+0x2886
+// 0.030303
+0x27c2
+// 0.025253
+0x2677
+// 0.020202
+0x252c
+// 0.015152
+0x23c2
+// 0.010101
+0x212c
+// 0.005051
+0x1d2c
+// 0.315789
+0x350d
+// 0.307018
+0x34ea
+// 0.298246
+0x34c6
+// 0.289474
+0x34a2
+// 0.280702
+0x347e
+// 0.271930
+0x345a
+// 0.263158
+0x3436
+// 0.254386
+0x3412
+// 0.245614
+0x33dc
+// 0.236842
+0x3394
+// 0.228070
+0x334c
+// 0.219298
+0x3304
+// 0.210526
+0x32bd
+// 0.201754
+0x3275
+// 0.192982
+0x322d
+// 0.184211
+0x31e5
+// 0.175439
+0x319d
+// 0.166667
+0x3155
+// 0.157895
+0x310d
+// 0.149123
+0x30c6
+// 0.140351
+0x307e
+// 0.131579
+0x3036
+// 0.122807
+0x2fdc
+// 0.114035
+0x2f4c
+// 0.105263
+0x2ebd
+// 0.096491
+0x2e2d
+// 0.087719
+0x2d9d
+// 0.078947
+0x2d0d
+// 0.070175
+0x2c7e
+// 0.061404
+0x2bdc
+// 0.052632
+0x2abd
+// 0.043860
+0x299d
+// 0.035088
+0x287e
+// 0.026316
+0x26bd
+// 0.017544
+0x247e
+// 0.008772
+0x207e
+// 0.324324
+0x3530
+// 0.319820
+0x351e
+// 0.315315
+0x350c
+// 0.310811
+0x34f9
+// 0.306306
+0x34e7
+// 0.301802
+0x34d4
+// 0.297297
+0x34c2
+// 0.292793
+0x34af
+// 0.288288
+0x349d
+// 0.283784
+0x348a
+// 0.279279
+0x3478
+// 0.274775
+0x3465
+// 0.270270
+0x3453
+// 0.265766
+0x3441
+// 0.261261
+0x342e
+// 0.256757
+0x341c
+// 0.252252
+0x3409
+// 0.247748
+0x33ee
+// 0.243243
+0x33c9
+// 0.238739
+0x33a4
+// 0.234234
+0x337f
+// 0.229730
+0x335a
+// 0.225225
+0x3335
+// 0.220721
+0x3310
+// 0.216216
+0x32eb
+// 0.211712
+0x32c6
+// 0.207207
+0x32a1
+// 0.202703
+0x327d
+// 0.198198
+0x3258
+// 0.193694
+0x3233
+// 0.189189
+0x320e
+// 0.184685
+0x31e9
+// 0.180180
+0x31c4
+// 0.175676
+0x319f
+// 0.171171
+0x317a
+// 0.166667
+0x3155
+// 0.162162
+0x3130
+// 0.157658
+0x310c
+// 0.153153
+0x30e7
+// 0.148649
+0x30c2
+// 0.144144
+0x309d
+// 0.139640
+0x3078
+// 0.135135
+0x3053
+// 0.130631
+0x302e
+// 0.126126
+0x3009
+// 0.121622
+0x2fc9
+// 0.117117
+0x2f7f
+// 0.112613
+0x2f35
+// 0.108108
+0x2eeb
+// 0.103604
+0x2ea1
+// 0.099099
+0x2e58
+// 0.094595
+0x2e0e
+// 0.090090
+0x2dc4
+// 0.085586
+0x2d7a
+// 0.081081
+0x2d30
+// 0.076577
+0x2ce7
+// 0.072072
+0x2c9d
+// 0.067568
+0x2c53
+// 0.063063
+0x2c09
+// 0.058559
+0x2b7f
+// 0.054054
+0x2aeb
+// 0.049550
+0x2a58
+// 0.045045
+0x29c4
+// 0.040541
+0x2930
+// 0.036036
+0x289d
+// 0.031532
+0x2809
+// 0.027027
+0x26eb
+// 0.022523
+0x25c4
+// 0.018018
+0x249d
+// 0.013514
+0x22eb
+// 0.009009
+0x209d
+// 0.004505
+0x1c9d
+// 0.315789
+0x350d
+// 0.307018
+0x34ea
+// 0.298246
+0x34c6
+// 0.289474
+0x34a2
+// 0.280702
+0x347e
+// 0.271930
+0x345a
+// 0.263158
+0x3436
+// 0.254386
+0x3412
+// 0.245614
+0x33dc
+// 0.236842
+0x3394
+// 0.228070
+0x334c
+// 0.219298
+0x3304
+// 0.210526
+0x32bd
+// 0.201754
+0x3275
+// 0.192982
+0x322d
+// 0.184211
+0x31e5
+// 0.175439
+0x319d
+// 0.166667
+0x3155
+// 0.157895
+0x310d
+// 0.149123
+0x30c6
+// 0.140351
+0x307e
+// 0.131579
+0x3036
+// 0.122807
+0x2fdc
+// 0.114035
+0x2f4c
+// 0.105263
+0x2ebd
+// 0.096491
+0x2e2d
+// 0.087719
+0x2d9d
+// 0.078947
+0x2d0d
+// 0.070175
+0x2c7e
+// 0.061404
+0x2bdc
+// 0.052632
+0x2abd
+// 0.043860
+0x299d
+// 0.035088
+0x287e
+// 0.026316
+0x26bd
+// 0.017544
+0x247e
+// 0.008772
+0x207e
+// 0.324324
+0x3530
+// 0.319820
+0x351e
+// 0.315315
+0x350c
+// 0.310811
+0x34f9
+// 0.306306
+0x34e7
+// 0.301802
+0x34d4
+// 0.297297
+0x34c2
+// 0.292793
+0x34af
+// 0.288288
+0x349d
+// 0.283784
+0x348a
+// 0.279279
+0x3478
+// 0.274775
+0x3465
+// 0.270270
+0x3453
+// 0.265766
+0x3441
+// 0.261261
+0x342e
+// 0.256757
+0x341c
+// 0.252252
+0x3409
+// 0.247748
+0x33ee
+// 0.243243
+0x33c9
+// 0.238739
+0x33a4
+// 0.234234
+0x337f
+// 0.229730
+0x335a
+// 0.225225
+0x3335
+// 0.220721
+0x3310
+// 0.216216
+0x32eb
+// 0.211712
+0x32c6
+// 0.207207
+0x32a1
+// 0.202703
+0x327d
+// 0.198198
+0x3258
+// 0.193694
+0x3233
+// 0.189189
+0x320e
+// 0.184685
+0x31e9
+// 0.180180
+0x31c4
+// 0.175676
+0x319f
+// 0.171171
+0x317a
+// 0.166667
+0x3155
+// 0.162162
+0x3130
+// 0.157658
+0x310c
+// 0.153153
+0x30e7
+// 0.148649
+0x30c2
+// 0.144144
+0x309d
+// 0.139640
+0x3078
+// 0.135135
+0x3053
+// 0.130631
+0x302e
+// 0.126126
+0x3009
+// 0.121622
+0x2fc9
+// 0.117117
+0x2f7f
+// 0.112613
+0x2f35
+// 0.108108
+0x2eeb
+// 0.103604
+0x2ea1
+// 0.099099
+0x2e58
+// 0.094595
+0x2e0e
+// 0.090090
+0x2dc4
+// 0.085586
+0x2d7a
+// 0.081081
+0x2d30
+// 0.076577
+0x2ce7
+// 0.072072
+0x2c9d
+// 0.067568
+0x2c53
+// 0.063063
+0x2c09
+// 0.058559
+0x2b7f
+// 0.054054
+0x2aeb
+// 0.049550
+0x2a58
+// 0.045045
+0x29c4
+// 0.040541
+0x2930
+// 0.036036
+0x289d
+// 0.031532
+0x2809
+// 0.027027
+0x26eb
+// 0.022523
+0x25c4
+// 0.018018
+0x249d
+// 0.013514
+0x22eb
+// 0.009009
+0x209d
+// 0.004505
+0x1c9d
+// 0.315789
+0x350d
+// 0.307018
+0x34ea
+// 0.298246
+0x34c6
+// 0.289474
+0x34a2
+// 0.280702
+0x347e
+// 0.271930
+0x345a
+// 0.263158
+0x3436
+// 0.254386
+0x3412
+// 0.245614
+0x33dc
+// 0.236842
+0x3394
+// 0.228070
+0x334c
+// 0.219298
+0x3304
+// 0.210526
+0x32bd
+// 0.201754
+0x3275
+// 0.192982
+0x322d
+// 0.184211
+0x31e5
+// 0.175439
+0x319d
+// 0.166667
+0x3155
+// 0.157895
+0x310d
+// 0.149123
+0x30c6
+// 0.140351
+0x307e
+// 0.131579
+0x3036
+// 0.122807
+0x2fdc
+// 0.114035
+0x2f4c
+// 0.105263
+0x2ebd
+// 0.096491
+0x2e2d
+// 0.087719
+0x2d9d
+// 0.078947
+0x2d0d
+// 0.070175
+0x2c7e
+// 0.061404
+0x2bdc
+// 0.052632
+0x2abd
+// 0.043860
+0x299d
+// 0.035088
+0x287e
+// 0.026316
+0x26bd
+// 0.017544
+0x247e
+// 0.008772
+0x207e
+// 0.324324
+0x3530
+// 0.319820
+0x351e
+// 0.315315
+0x350c
+// 0.310811
+0x34f9
+// 0.306306
+0x34e7
+// 0.301802
+0x34d4
+// 0.297297
+0x34c2
+// 0.292793
+0x34af
+// 0.288288
+0x349d
+// 0.283784
+0x348a
+// 0.279279
+0x3478
+// 0.274775
+0x3465
+// 0.270270
+0x3453
+// 0.265766
+0x3441
+// 0.261261
+0x342e
+// 0.256757
+0x341c
+// 0.252252
+0x3409
+// 0.247748
+0x33ee
+// 0.243243
+0x33c9
+// 0.238739
+0x33a4
+// 0.234234
+0x337f
+// 0.229730
+0x335a
+// 0.225225
+0x3335
+// 0.220721
+0x3310
+// 0.216216
+0x32eb
+// 0.211712
+0x32c6
+// 0.207207
+0x32a1
+// 0.202703
+0x327d
+// 0.198198
+0x3258
+// 0.193694
+0x3233
+// 0.189189
+0x320e
+// 0.184685
+0x31e9
+// 0.180180
+0x31c4
+// 0.175676
+0x319f
+// 0.171171
+0x317a
+// 0.166667
+0x3155
+// 0.162162
+0x3130
+// 0.157658
+0x310c
+// 0.153153
+0x30e7
+// 0.148649
+0x30c2
+// 0.144144
+0x309d
+// 0.139640
+0x3078
+// 0.135135
+0x3053
+// 0.130631
+0x302e
+// 0.126126
+0x3009
+// 0.121622
+0x2fc9
+// 0.117117
+0x2f7f
+// 0.112613
+0x2f35
+// 0.108108
+0x2eeb
+// 0.103604
+0x2ea1
+// 0.099099
+0x2e58
+// 0.094595
+0x2e0e
+// 0.090090
+0x2dc4
+// 0.085586
+0x2d7a
+// 0.081081
+0x2d30
+// 0.076577
+0x2ce7
+// 0.072072
+0x2c9d
+// 0.067568
+0x2c53
+// 0.063063
+0x2c09
+// 0.058559
+0x2b7f
+// 0.054054
+0x2aeb
+// 0.049550
+0x2a58
+// 0.045045
+0x29c4
+// 0.040541
+0x2930
+// 0.036036
+0x289d
+// 0.031532
+0x2809
+// 0.027027
+0x26eb
+// 0.022523
+0x25c4
+// 0.018018
+0x249d
+// 0.013514
+0x22eb
+// 0.009009
+0x209d
+// 0.004505
+0x1c9d

+ 578 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Configs2_u32.txt

@@ -0,0 +1,578 @@
+W
+288
+// 1
+0x00000001
+// 7
+0x00000007
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 16
+0x00000010
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 23
+0x00000017
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 8
+0x00000008
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 17
+0x00000011
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 24
+0x00000018
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 7
+0x00000007
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 16
+0x00000010
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 23
+0x00000017
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 8
+0x00000008
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 17
+0x00000011
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 24
+0x00000018
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 7
+0x00000007
+// 23
+0x00000017
+// 23
+0x00000017
+// 1
+0x00000001
+// 16
+0x00000010
+// 23
+0x00000017
+// 23
+0x00000017
+// 1
+0x00000001
+// 23
+0x00000017
+// 23
+0x00000017
+// 23
+0x00000017
+// 1
+0x00000001
+// 8
+0x00000008
+// 23
+0x00000017
+// 23
+0x00000017
+// 1
+0x00000001
+// 17
+0x00000011
+// 23
+0x00000017
+// 23
+0x00000017
+// 1
+0x00000001
+// 24
+0x00000018
+// 23
+0x00000017
+// 23
+0x00000017
+// 2
+0x00000002
+// 7
+0x00000007
+// 14
+0x0000000E
+// 7
+0x00000007
+// 2
+0x00000002
+// 16
+0x00000010
+// 14
+0x0000000E
+// 7
+0x00000007
+// 2
+0x00000002
+// 23
+0x00000017
+// 14
+0x0000000E
+// 7
+0x00000007
+// 2
+0x00000002
+// 8
+0x00000008
+// 14
+0x0000000E
+// 7
+0x00000007
+// 2
+0x00000002
+// 17
+0x00000011
+// 14
+0x0000000E
+// 7
+0x00000007
+// 2
+0x00000002
+// 24
+0x00000018
+// 14
+0x0000000E
+// 7
+0x00000007
+// 2
+0x00000002
+// 7
+0x00000007
+// 32
+0x00000020
+// 16
+0x00000010
+// 2
+0x00000002
+// 16
+0x00000010
+// 32
+0x00000020
+// 16
+0x00000010
+// 2
+0x00000002
+// 23
+0x00000017
+// 32
+0x00000020
+// 16
+0x00000010
+// 2
+0x00000002
+// 8
+0x00000008
+// 32
+0x00000020
+// 16
+0x00000010
+// 2
+0x00000002
+// 17
+0x00000011
+// 32
+0x00000020
+// 16
+0x00000010
+// 2
+0x00000002
+// 24
+0x00000018
+// 32
+0x00000020
+// 16
+0x00000010
+// 2
+0x00000002
+// 7
+0x00000007
+// 46
+0x0000002E
+// 23
+0x00000017
+// 2
+0x00000002
+// 16
+0x00000010
+// 46
+0x0000002E
+// 23
+0x00000017
+// 2
+0x00000002
+// 23
+0x00000017
+// 46
+0x0000002E
+// 23
+0x00000017
+// 2
+0x00000002
+// 8
+0x00000008
+// 46
+0x0000002E
+// 23
+0x00000017
+// 2
+0x00000002
+// 17
+0x00000011
+// 46
+0x0000002E
+// 23
+0x00000017
+// 2
+0x00000002
+// 24
+0x00000018
+// 46
+0x0000002E
+// 23
+0x00000017
+// 4
+0x00000004
+// 7
+0x00000007
+// 28
+0x0000001C
+// 7
+0x00000007
+// 4
+0x00000004
+// 16
+0x00000010
+// 28
+0x0000001C
+// 7
+0x00000007
+// 4
+0x00000004
+// 23
+0x00000017
+// 28
+0x0000001C
+// 7
+0x00000007
+// 4
+0x00000004
+// 8
+0x00000008
+// 28
+0x0000001C
+// 7
+0x00000007
+// 4
+0x00000004
+// 17
+0x00000011
+// 28
+0x0000001C
+// 7
+0x00000007
+// 4
+0x00000004
+// 24
+0x00000018
+// 28
+0x0000001C
+// 7
+0x00000007
+// 4
+0x00000004
+// 7
+0x00000007
+// 64
+0x00000040
+// 16
+0x00000010
+// 4
+0x00000004
+// 16
+0x00000010
+// 64
+0x00000040
+// 16
+0x00000010
+// 4
+0x00000004
+// 23
+0x00000017
+// 64
+0x00000040
+// 16
+0x00000010
+// 4
+0x00000004
+// 8
+0x00000008
+// 64
+0x00000040
+// 16
+0x00000010
+// 4
+0x00000004
+// 17
+0x00000011
+// 64
+0x00000040
+// 16
+0x00000010
+// 4
+0x00000004
+// 24
+0x00000018
+// 64
+0x00000040
+// 16
+0x00000010
+// 4
+0x00000004
+// 7
+0x00000007
+// 92
+0x0000005C
+// 23
+0x00000017
+// 4
+0x00000004
+// 16
+0x00000010
+// 92
+0x0000005C
+// 23
+0x00000017
+// 4
+0x00000004
+// 23
+0x00000017
+// 92
+0x0000005C
+// 23
+0x00000017
+// 4
+0x00000004
+// 8
+0x00000008
+// 92
+0x0000005C
+// 23
+0x00000017
+// 4
+0x00000004
+// 17
+0x00000011
+// 92
+0x0000005C
+// 23
+0x00000017
+// 4
+0x00000004
+// 24
+0x00000018
+// 92
+0x0000005C
+// 23
+0x00000017
+// 8
+0x00000008
+// 7
+0x00000007
+// 56
+0x00000038
+// 7
+0x00000007
+// 8
+0x00000008
+// 16
+0x00000010
+// 56
+0x00000038
+// 7
+0x00000007
+// 8
+0x00000008
+// 23
+0x00000017
+// 56
+0x00000038
+// 7
+0x00000007
+// 8
+0x00000008
+// 8
+0x00000008
+// 56
+0x00000038
+// 7
+0x00000007
+// 8
+0x00000008
+// 17
+0x00000011
+// 56
+0x00000038
+// 7
+0x00000007
+// 8
+0x00000008
+// 24
+0x00000018
+// 56
+0x00000038
+// 7
+0x00000007
+// 8
+0x00000008
+// 7
+0x00000007
+// 128
+0x00000080
+// 16
+0x00000010
+// 8
+0x00000008
+// 16
+0x00000010
+// 128
+0x00000080
+// 16
+0x00000010
+// 8
+0x00000008
+// 23
+0x00000017
+// 128
+0x00000080
+// 16
+0x00000010
+// 8
+0x00000008
+// 8
+0x00000008
+// 128
+0x00000080
+// 16
+0x00000010
+// 8
+0x00000008
+// 17
+0x00000011
+// 128
+0x00000080
+// 16
+0x00000010
+// 8
+0x00000008
+// 24
+0x00000018
+// 128
+0x00000080
+// 16
+0x00000010
+// 8
+0x00000008
+// 7
+0x00000007
+// 184
+0x000000B8
+// 23
+0x00000017
+// 8
+0x00000008
+// 16
+0x00000010
+// 184
+0x000000B8
+// 23
+0x00000017
+// 8
+0x00000008
+// 23
+0x00000017
+// 184
+0x000000B8
+// 23
+0x00000017
+// 8
+0x00000008
+// 8
+0x00000008
+// 184
+0x000000B8
+// 23
+0x00000017
+// 8
+0x00000008
+// 17
+0x00000011
+// 184
+0x000000B8
+// 23
+0x00000017
+// 8
+0x00000008
+// 24
+0x00000018
+// 184
+0x000000B8
+// 23
+0x00000017

+ 290 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Configs3_u32.txt

@@ -0,0 +1,290 @@
+W
+144
+// 1
+0x00000001
+// 4
+0x00000004
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 8
+0x00000008
+// 7
+0x00000007
+// 7
+0x00000007
+// 1
+0x00000001
+// 4
+0x00000004
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 8
+0x00000008
+// 16
+0x00000010
+// 16
+0x00000010
+// 1
+0x00000001
+// 4
+0x00000004
+// 23
+0x00000017
+// 23
+0x00000017
+// 1
+0x00000001
+// 8
+0x00000008
+// 23
+0x00000017
+// 23
+0x00000017
+// 2
+0x00000002
+// 8
+0x00000008
+// 7
+0x00000007
+// 14
+0x0000000E
+// 2
+0x00000002
+// 16
+0x00000010
+// 7
+0x00000007
+// 14
+0x0000000E
+// 2
+0x00000002
+// 8
+0x00000008
+// 16
+0x00000010
+// 32
+0x00000020
+// 2
+0x00000002
+// 16
+0x00000010
+// 16
+0x00000010
+// 32
+0x00000020
+// 2
+0x00000002
+// 8
+0x00000008
+// 23
+0x00000017
+// 46
+0x0000002E
+// 2
+0x00000002
+// 16
+0x00000010
+// 23
+0x00000017
+// 46
+0x0000002E
+// 4
+0x00000004
+// 16
+0x00000010
+// 7
+0x00000007
+// 28
+0x0000001C
+// 4
+0x00000004
+// 32
+0x00000020
+// 7
+0x00000007
+// 28
+0x0000001C
+// 4
+0x00000004
+// 16
+0x00000010
+// 16
+0x00000010
+// 64
+0x00000040
+// 4
+0x00000004
+// 32
+0x00000020
+// 16
+0x00000010
+// 64
+0x00000040
+// 4
+0x00000004
+// 16
+0x00000010
+// 23
+0x00000017
+// 92
+0x0000005C
+// 4
+0x00000004
+// 32
+0x00000020
+// 23
+0x00000017
+// 92
+0x0000005C
+// 5
+0x00000005
+// 20
+0x00000014
+// 7
+0x00000007
+// 35
+0x00000023
+// 5
+0x00000005
+// 40
+0x00000028
+// 7
+0x00000007
+// 35
+0x00000023
+// 5
+0x00000005
+// 20
+0x00000014
+// 16
+0x00000010
+// 80
+0x00000050
+// 5
+0x00000005
+// 40
+0x00000028
+// 16
+0x00000010
+// 80
+0x00000050
+// 5
+0x00000005
+// 20
+0x00000014
+// 23
+0x00000017
+// 115
+0x00000073
+// 5
+0x00000005
+// 40
+0x00000028
+// 23
+0x00000017
+// 115
+0x00000073
+// 8
+0x00000008
+// 32
+0x00000020
+// 7
+0x00000007
+// 56
+0x00000038
+// 8
+0x00000008
+// 64
+0x00000040
+// 7
+0x00000007
+// 56
+0x00000038
+// 8
+0x00000008
+// 32
+0x00000020
+// 16
+0x00000010
+// 128
+0x00000080
+// 8
+0x00000008
+// 64
+0x00000040
+// 16
+0x00000010
+// 128
+0x00000080
+// 8
+0x00000008
+// 32
+0x00000020
+// 23
+0x00000017
+// 184
+0x000000B8
+// 8
+0x00000008
+// 64
+0x00000040
+// 23
+0x00000017
+// 184
+0x000000B8
+// 9
+0x00000009
+// 36
+0x00000024
+// 7
+0x00000007
+// 63
+0x0000003F
+// 9
+0x00000009
+// 72
+0x00000048
+// 7
+0x00000007
+// 63
+0x0000003F
+// 9
+0x00000009
+// 36
+0x00000024
+// 16
+0x00000010
+// 144
+0x00000090
+// 9
+0x00000009
+// 72
+0x00000048
+// 16
+0x00000010
+// 144
+0x00000090
+// 9
+0x00000009
+// 36
+0x00000024
+// 23
+0x00000017
+// 207
+0x000000CF
+// 9
+0x00000009
+// 72
+0x00000048
+// 23
+0x00000017
+// 207
+0x000000CF

+ 8282 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Input2_f16.txt

@@ -0,0 +1,8282 @@
+H
+4140
+// 0.783208
+0x3a44
+// 0.330576
+0x354a
+// 0.867901
+0x3af1
+// -0.053906
+0xaae6
+// -1.000000
+0xbc00
+// -0.692979
+0xb98b
+// -0.824045
+0xba98
+// -0.792583
+0xba57
+// 0.104932
+0x2eb7
+// 0.286858
+0x3497
+// -0.436285
+0xb6fb
+// -0.366031
+0xb5db
+// -0.584742
+0xb8ae
+// 1.000000
+0x3c00
+// 0.098518
+0x2e4e
+// -0.443958
+0xb71a
+// 0.084519
+0x2d69
+// 0.516797
+0x3822
+// -0.253768
+0xb40f
+// 1.000000
+0x3c00
+// -0.540184
+0xb852
+// -0.094904
+0xae13
+// -1.000000
+0xbc00
+// 0.417226
+0x36ad
+// -0.029153
+0xa777
+// -0.016906
+0xa454
+// 0.229084
+0x3355
+// -0.149950
+0xb0cc
+// 0.709746
+0x39ae
+// 0.511939
+0x3818
+// 1.000000
+0x3c00
+// -0.515959
+0xb821
+// -0.002531
+0x992f
+// 0.245809
+0x33de
+// 0.148480
+0x30c0
+// -0.841267
+0xbabb
+// 0.719074
+0x39c1
+// 0.438590
+0x3704
+// -0.444982
+0xb71f
+// 1.000000
+0x3c00
+// 0.138619
+0x3070
+// -0.274556
+0xb465
+// 0.119287
+0x2fa2
+// -0.270385
+0xb453
+// -0.218629
+0xb2ff
+// 0.091262
+0x2dd7
+// -0.235736
+0xb38b
+// -0.805698
+0xba72
+// -0.038302
+0xa8e7
+// -0.204470
+0xb28b
+// -1.000000
+0xbc00
+// 0.067797
+0x2c57
+// -0.433862
+0xb6f1
+// -0.179373
+0xb1bd
+// -0.180063
+0xb1c3
+// -0.194491
+0xb239
+// -0.170537
+0xb175
+// -0.319863
+0xb51e
+// -0.110273
+0xaf0f
+// -0.230667
+0xb362
+// 0.362472
+0x35cd
+// -0.410110
+0xb690
+// 0.895591
+0x3b2a
+// -0.403904
+0xb676
+// 0.668650
+0x3959
+// -0.914884
+0xbb52
+// -0.443457
+0xb718
+// 0.370056
+0x35ec
+// 0.636757
+0x3918
+// -0.209055
+0xb2b1
+// -1.000000
+0xbc00
+// 0.703284
+0x39a0
+// 0.384199
+0x3626
+// 0.213210
+0x32d3
+// 0.378089
+0x360d
+// -0.487494
+0xb7cd
+// -0.075825
+0xacda
+// 0.202093
+0x3278
+// 0.338101
+0x3569
+// 0.142310
+0x308e
+// 0.525791
+0x3835
+// 0.164732
+0x3145
+// -0.380338
+0xb616
+// 1.000000
+0x3c00
+// -0.069726
+0xac76
+// -0.016871
+0xa452
+// -0.072982
+0xacac
+// 0.017042
+0x245d
+// -0.108576
+0xaef3
+// 0.101936
+0x2e86
+// 0.770031
+0x3a29
+// 0.478703
+0x37a9
+// -0.675313
+0xb967
+// -0.402250
+0xb670
+// 0.074823
+0x2cca
+// -0.555554
+0xb872
+// 0.033093
+0x283c
+// -0.054419
+0xaaf7
+// -0.597957
+0xb8c9
+// 1.000000
+0x3c00
+// -0.265071
+0xb43e
+// 0.736224
+0x39e4
+// -0.258817
+0xb424
+// -0.715796
+0xb9ba
+// 0.038746
+0x28f6
+// -0.396774
+0xb659
+// -0.133447
+0xb045
+// -0.065734
+0xac35
+// 0.081786
+0x2d3c
+// 0.134906
+0x3051
+// -0.152001
+0xb0dd
+// 0.247604
+0x33ec
+// 0.545929
+0x385e
+// -0.259359
+0xb426
+// -0.255760
+0xb418
+// 0.461209
+0x3761
+// -1.000000
+0xbc00
+// -0.146635
+0xb0b1
+// 0.555154
+0x3871
+// -0.130186
+0xb02a
+// 0.477558
+0x37a4
+// 0.201350
+0x3271
+// 0.293582
+0x34b3
+// 0.295950
+0x34bc
+// -0.837183
+0xbab3
+// 0.540947
+0x3854
+// 0.558217
+0x3877
+// -0.982123
+0xbbdb
+// 1.000000
+0x3c00
+// 0.381303
+0x361a
+// 0.061380
+0x2bdb
+// -0.259235
+0xb426
+// -0.236751
+0xb393
+// 0.415013
+0x36a4
+// 0.091801
+0x2de0
+// -0.512312
+0xb819
+// -0.286948
+0xb497
+// 0.527877
+0x3839
+// -0.339339
+0xb56e
+// 0.449666
+0x3732
+// -0.401536
+0xb66d
+// 0.134468
+0x304e
+// -0.002035
+0x982b
+// -0.483825
+0xb7be
+// 0.462781
+0x3768
+// -0.077594
+0xacf7
+// -0.240357
+0xb3b1
+// 0.145529
+0x30a8
+// -0.303183
+0xb4da
+// -0.369673
+0xb5ea
+// 0.166832
+0x3157
+// 1.000000
+0x3c00
+// 0.191070
+0x321d
+// 0.441805
+0x3712
+// -0.635112
+0xb915
+// -0.112142
+0xaf2d
+// -0.206682
+0xb29d
+// 0.758391
+0x3a11
+// -0.392838
+0xb649
+// 0.396499
+0x3658
+// -0.414887
+0xb6a3
+// -0.085961
+0xad80
+// -0.439511
+0xb708
+// 0.322681
+0x352a
+// 0.242755
+0x33c5
+// 0.529699
+0x383d
+// 0.030234
+0x27bd
+// 0.599867
+0x38cd
+// 1.000000
+0x3c00
+// -0.697805
+0xb995
+// -0.660520
+0xb949
+// -0.635045
+0xb915
+// 0.460272
+0x375d
+// -0.516960
+0xb823
+// 0.223698
+0x3329
+// 0.354490
+0x35ac
+// 0.181575
+0x31cf
+// -0.062249
+0xabf8
+// 0.963923
+0x3bb6
+// 0.949623
+0x3b99
+// -0.545500
+0xb85d
+// 0.784859
+0x3a47
+// -0.410350
+0xb691
+// -0.014863
+0xa39c
+// -0.314048
+0xb506
+// 0.881222
+0x3b0d
+// 0.046361
+0x29ef
+// 0.515250
+0x381f
+// -0.224401
+0xb32e
+// -1.000000
+0xbc00
+// 0.321647
+0x3525
+// -0.329999
+0xb548
+// 0.938058
+0x3b81
+// 0.473284
+0x3793
+// 0.267021
+0x3446
+// 0.037532
+0x28ce
+// -0.836898
+0xbab2
+// 0.365611
+0x35da
+// 0.442891
+0x3716
+// -0.429075
+0xb6dd
+// -0.400881
+0xb66a
+// -0.874601
+0xbaff
+// 0.447588
+0x3729
+// -0.674481
+0xb965
+// 0.850779
+0x3ace
+// 0.090748
+0x2dcf
+// -0.390680
+0xb640
+// 0.184069
+0x31e4
+// -0.620876
+0xb8f8
+// -1.000000
+0xbc00
+// -0.319659
+0xb51d
+// -0.792776
+0xba58
+// 0.235155
+0x3386
+// 0.135311
+0x3054
+// -0.114152
+0xaf4e
+// 0.080980
+0x2d2f
+// -0.512536
+0xb81a
+// -0.342143
+0xb579
+// 0.947390
+0x3b94
+// 0.723851
+0x39ca
+// -0.088964
+0xadb2
+// -0.302513
+0xb4d7
+// -0.157648
+0xb10b
+// -0.381563
+0xb61b
+// -0.717496
+0xb9bd
+// -0.264816
+0xb43d
+// -0.065963
+0xac39
+// -0.291645
+0xb4ab
+// 0.085458
+0x2d78
+// 0.736909
+0x39e5
+// -0.089345
+0xadb8
+// 0.493068
+0x37e4
+// 0.091505
+0x2ddb
+// 0.218585
+0x32ff
+// -1.000000
+0xbc00
+// -0.196334
+0xb248
+// 0.089659
+0x2dbd
+// 0.129031
+0x3021
+// -0.150452
+0xb0d1
+// -0.864077
+0xbaea
+// -0.115953
+0xaf6c
+// 0.525100
+0x3833
+// 0.595093
+0x38c3
+// -0.131100
+0xb032
+// 0.401724
+0x366d
+// 0.255262
+0x3416
+// -0.314964
+0xb50a
+// 0.054002
+0x2aea
+// 0.610136
+0x38e2
+// -0.409268
+0xb68c
+// 0.424847
+0x36cc
+// 0.081001
+0x2d2f
+// 0.314060
+0x3506
+// 0.108307
+0x2eef
+// -1.000000
+0xbc00
+// -0.200211
+0xb268
+// -0.400227
+0xb667
+// -0.870088
+0xbaf6
+// -0.105105
+0xaeba
+// 0.482469
+0x37b8
+// 0.572317
+0x3894
+// 0.102428
+0x2e8e
+// -0.646590
+0xb92c
+// -0.027987
+0xa72a
+// 0.144592
+0x30a0
+// 0.004286
+0x1c63
+// 0.336349
+0x3562
+// 0.713539
+0x39b5
+// -0.083344
+0xad56
+// 0.775558
+0x3a34
+// 0.095148
+0x2e17
+// -0.344180
+0xb582
+// -0.336072
+0xb561
+// -0.248019
+0xb3f0
+// -0.050146
+0xaa6b
+// -0.398846
+0xb662
+// 0.008796
+0x2081
+// -0.682575
+0xb976
+// -0.329788
+0xb547
+// -0.130285
+0xb02b
+// 0.122875
+0x2fdd
+// 1.000000
+0x3c00
+// 0.314120
+0x3507
+// 0.248469
+0x33f3
+// 0.025662
+0x2692
+// 0.338594
+0x356b
+// 0.495342
+0x37ed
+// 0.800180
+0x3a67
+// 0.005956
+0x1e19
+// 0.612227
+0x38e6
+// 0.586281
+0x38b1
+// 0.605128
+0x38d7
+// -0.447027
+0xb727
+// -0.479149
+0xb7ab
+// 0.420118
+0x36b9
+// -0.508859
+0xb812
+// -0.170975
+0xb179
+// 0.209081
+0x32b1
+// -0.129797
+0xb027
+// -0.471335
+0xb78b
+// -1.000000
+0xbc00
+// 0.044767
+0x29bb
+// 0.074134
+0x2cbf
+// 0.244320
+0x33d1
+// 0.441107
+0x370f
+// 0.383544
+0x3623
+// -0.848184
+0xbac9
+// 0.852460
+0x3ad2
+// 0.448325
+0x372c
+// -0.062921
+0xac07
+// 0.312924
+0x3502
+// -0.155532
+0xb0fa
+// -0.874280
+0xbaff
+// 0.822235
+0x3a94
+// -1.000000
+0xbc00
+// 0.173140
+0x318a
+// -0.329085
+0xb544
+// -0.586021
+0xb8b0
+// 0.411871
+0x3697
+// 0.402367
+0x3670
+// 0.535127
+0x3848
+// 0.115223
+0x2f60
+// -0.125366
+0xb003
+// -0.125297
+0xb002
+// 0.025455
+0x2684
+// -0.408316
+0xb688
+// 0.231513
+0x3369
+// -0.092134
+0xade6
+// 0.437869
+0x3702
+// -0.221683
+0xb318
+// 0.034494
+0x286a
+// -1.000000
+0xbc00
+// -0.013275
+0xa2cc
+// 0.808312
+0x3a77
+// -0.846883
+0xbac6
+// 0.036124
+0x28a0
+// -0.718029
+0xb9bf
+// 0.456335
+0x374d
+// -0.099761
+0xae62
+// -0.673259
+0xb963
+// 0.343945
+0x3581
+// -1.000000
+0xbc00
+// -0.395539
+0xb654
+// 0.998679
+0x3bfd
+// 0.704336
+0x39a2
+// -0.364746
+0xb5d6
+// 0.088913
+0x2db1
+// -1.000000
+0xbc00
+// 0.437409
+0x3700
+// -0.505983
+0xb80c
+// 0.300619
+0x34cf
+// -0.714091
+0xb9b6
+// -0.066419
+0xac40
+// 0.035248
+0x2883
+// 0.024356
+0x263c
+// 0.491155
+0x37dc
+// -0.869449
+0xbaf5
+// -0.910379
+0xbb48
+// -0.698608
+0xb997
+// -0.596185
+0xb8c5
+// 0.053649
+0x2ade
+// -0.687043
+0xb97f
+// -0.036952
+0xa8bb
+// 0.290206
+0x34a5
+// -0.701136
+0xb99c
+// 0.998577
+0x3bfd
+// -0.508448
+0xb811
+// -0.285996
+0xb493
+// -0.747336
+0xb9fb
+// 0.063372
+0x2c0e
+// 0.156930
+0x3106
+// -0.224589
+0xb330
+// -0.718583
+0xb9c0
+// 0.047346
+0x2a0f
+// 0.552545
+0x386c
+// 0.476449
+0x37a0
+// -0.424960
+0xb6cd
+// -0.033978
+0xa859
+// 0.047483
+0x2a14
+// 0.144905
+0x30a3
+// -0.025362
+0xa67e
+// -1.000000
+0xbc00
+// -0.086585
+0xad8b
+// -0.447954
+0xb72b
+// 0.662946
+0x394e
+// 0.546474
+0x385f
+// 0.085726
+0x2d7d
+// -0.509391
+0xb813
+// -0.144667
+0xb0a1
+// -0.453536
+0xb742
+// 0.289483
+0x34a2
+// 0.014169
+0x2341
+// -0.582582
+0xb8a9
+// -0.237049
+0xb396
+// 0.073113
+0x2cae
+// 0.963564
+0x3bb5
+// 0.261401
+0x342f
+// 0.357328
+0x35b8
+// 0.168634
+0x3165
+// -0.207851
+0xb2a7
+// -0.191283
+0xb21f
+// 0.625952
+0x3902
+// -0.155148
+0xb0f7
+// -0.068213
+0xac5e
+// -0.117666
+0xaf88
+// -0.112782
+0xaf38
+// -0.182176
+0xb1d4
+// -0.175422
+0xb19d
+// 0.035082
+0x287e
+// -0.613548
+0xb8e9
+// 0.569970
+0x388f
+// -0.215462
+0xb2e5
+// -0.497802
+0xb7f7
+// 0.159087
+0x3117
+// -0.921838
+0xbb60
+// -0.465713
+0xb774
+// -0.212910
+0xb2d0
+// 1.000000
+0x3c00
+// -0.012394
+0xa258
+// -0.250135
+0xb401
+// 0.317040
+0x3513
+// -0.083705
+0xad5b
+// -0.764903
+0xba1f
+// -0.038373
+0xa8e9
+// -0.211077
+0xb2c1
+// -0.165695
+0xb14d
+// -0.156817
+0xb105
+// -0.090147
+0xadc5
+// -0.210020
+0xb2b8
+// -0.047125
+0xaa08
+// -0.461237
+0xb761
+// -0.073998
+0xacbc
+// -0.113255
+0xaf40
+// -0.740749
+0xb9ed
+// 0.668097
+0x3958
+// 0.301554
+0x34d3
+// -0.153597
+0xb0ea
+// 0.369221
+0x35e8
+// 0.029532
+0x278f
+// -0.353396
+0xb5a8
+// 0.152346
+0x30e0
+// -1.000000
+0xbc00
+// -0.080595
+0xad28
+// -0.184161
+0xb1e5
+// -0.043712
+0xa998
+// 0.417044
+0x36ac
+// -0.423486
+0xb6c7
+// -0.565531
+0xb886
+// -0.218245
+0xb2fc
+// -0.336676
+0xb563
+// 0.353789
+0x35a9
+// 0.520712
+0x382a
+// 0.279333
+0x3478
+// 0.486636
+0x37c9
+// 0.069032
+0x2c6b
+// 0.059128
+0x2b91
+// 0.095956
+0x2e24
+// -0.489032
+0xb7d3
+// -0.176286
+0xb1a4
+// -0.646208
+0xb92b
+// -0.377115
+0xb609
+// -0.260687
+0xb42c
+// 0.386748
+0x3630
+// 0.067253
+0x2c4e
+// -0.703407
+0xb9a1
+// 0.585180
+0x38ae
+// 0.528094
+0x383a
+// -0.082398
+0xad46
+// 0.162093
+0x3130
+// -0.257743
+0xb420
+// -0.108589
+0xaef3
+// -0.114511
+0xaf54
+// 0.073196
+0x2caf
+// -0.439895
+0xb70a
+// -0.331653
+0xb54e
+// -0.008517
+0xa05c
+// -0.699645
+0xb999
+// 0.598701
+0x38ca
+// -0.575952
+0xb89c
+// -0.154567
+0xb0f2
+// -0.738000
+0xb9e7
+// 0.708933
+0x39ac
+// -0.721263
+0xb9c5
+// -1.000000
+0xbc00
+// -0.380921
+0xb618
+// -0.572453
+0xb894
+// -0.461678
+0xb763
+// -0.478549
+0xb7a8
+// -0.467114
+0xb779
+// 0.409154
+0x368c
+// -0.286112
+0xb494
+// -0.152585
+0xb0e2
+// -0.129253
+0xb023
+// 0.552095
+0x386b
+// -0.369989
+0xb5eb
+// 0.146225
+0x30ae
+// -0.428269
+0xb6da
+// 0.119152
+0x2fa0
+// -0.087854
+0xad9f
+// -0.048179
+0xaa2b
+// -0.017477
+0xa479
+// 0.126103
+0x3009
+// -0.038250
+0xa8e5
+// 0.537710
+0x384d
+// -0.746840
+0xb9fa
+// 0.006034
+0x1e2e
+// -0.008713
+0xa076
+// -0.324048
+0xb52f
+// -0.005149
+0x9d46
+// -0.225030
+0xb333
+// 0.389111
+0x363a
+// -0.523199
+0xb830
+// 0.051378
+0x2a94
+// 0.323113
+0x352b
+// -0.244244
+0xb3d1
+// -0.555753
+0xb872
+// -0.091946
+0xade2
+// -0.158500
+0xb112
+// -1.000000
+0xbc00
+// -0.199089
+0xb25f
+// -0.023879
+0xa61d
+// -0.396245
+0xb657
+// 0.480108
+0x37af
+// 0.283222
+0x3488
+// 0.942776
+0x3b8b
+// 0.862507
+0x3ae6
+// -0.035308
+0xa885
+// -0.608575
+0xb8de
+// -0.697068
+0xb994
+// -0.636923
+0xb918
+// -0.729331
+0xb9d6
+// 0.409925
+0x368f
+// 0.104592
+0x2eb2
+// -0.603197
+0xb8d3
+// -1.000000
+0xbc00
+// 0.285023
+0x348f
+// -0.108880
+0xaef8
+// 0.818886
+0x3a8d
+// -0.743604
+0xb9f3
+// 0.585172
+0x38ae
+// -0.544591
+0xb85b
+// -0.392071
+0xb646
+// 0.140338
+0x307e
+// 0.023967
+0x2623
+// 0.605435
+0x38d8
+// -0.457475
+0xb752
+// -0.073740
+0xacb8
+// -0.278289
+0xb474
+// 0.298563
+0x34c7
+// 0.756513
+0x3a0d
+// 0.429884
+0x36e1
+// 0.702025
+0x399e
+// -0.074809
+0xacca
+// -0.373971
+0xb5fc
+// 0.046073
+0x29e6
+// -0.277889
+0xb472
+// -0.857744
+0xbadd
+// 0.393808
+0x364d
+// 0.056763
+0x2b44
+// 0.192099
+0x3226
+// -0.157098
+0xb107
+// -0.378068
+0xb60d
+// -0.196223
+0xb247
+// 0.205893
+0x3297
+// 0.003772
+0x1bba
+// -0.003291
+0x9abe
+// -0.024751
+0xa656
+// -0.151927
+0xb0dd
+// -0.402351
+0xb670
+// 0.384629
+0x3627
+// -0.423640
+0xb6c7
+// 0.482101
+0x37b7
+// -0.107072
+0xaeda
+// 0.002506
+0x1922
+// -0.747026
+0xb9fa
+// -0.171916
+0xb180
+// -0.968200
+0xbbbf
+// -1.000000
+0xbc00
+// 0.296037
+0x34bd
+// -0.232823
+0xb373
+// -0.120527
+0xafb7
+// -0.278558
+0xb475
+// 0.076912
+0x2cec
+// -0.043702
+0xa998
+// -0.017869
+0xa493
+// -0.202656
+0xb27c
+// -0.378464
+0xb60e
+// 0.002496
+0x191d
+// -0.524546
+0xb832
+// -0.232754
+0xb373
+// -0.982321
+0xbbdc
+// -0.135000
+0xb052
+// 0.085710
+0x2d7c
+// -0.526204
+0xb836
+// -0.332776
+0xb553
+// 0.015938
+0x2415
+// 0.079890
+0x2d1d
+// -0.453037
+0xb740
+// 0.617365
+0x38f0
+// -0.577946
+0xb8a0
+// 0.388019
+0x3635
+// 0.398799
+0x3661
+// -0.384237
+0xb626
+// 0.165670
+0x314d
+// 0.642315
+0x3923
+// 0.238894
+0x33a5
+// -0.146389
+0xb0af
+// 0.293108
+0x34b1
+// -0.154520
+0xb0f2
+// -0.093493
+0xadfc
+// -0.460799
+0xb75f
+// -0.194477
+0xb239
+// 0.271385
+0x3458
+// -0.004453
+0x9c8f
+// -0.074756
+0xacc9
+// 0.593958
+0x38c0
+// -0.492364
+0xb7e1
+// 0.300318
+0x34ce
+// 0.088637
+0x2dac
+// -0.574913
+0xb899
+// -0.398769
+0xb661
+// 0.187763
+0x3202
+// 0.056678
+0x2b41
+// 0.184240
+0x31e5
+// -0.106590
+0xaed2
+// -0.152329
+0xb0e0
+// 0.274039
+0x3462
+// 0.649451
+0x3932
+// -0.307702
+0xb4ec
+// -0.506609
+0xb80e
+// -0.217243
+0xb2f4
+// -0.919003
+0xbb5a
+// 0.640379
+0x391f
+// 0.305241
+0x34e2
+// -1.000000
+0xbc00
+// 0.322468
+0x3529
+// 0.713496
+0x39b5
+// -0.590012
+0xb8b8
+// -0.502181
+0xb804
+// -0.406725
+0xb682
+// -0.503870
+0xb808
+// -0.296480
+0xb4be
+// 0.053121
+0x2acd
+// -0.418396
+0xb6b2
+// -0.367287
+0xb5e0
+// 0.651092
+0x3935
+// 0.608842
+0x38df
+// -0.160820
+0xb125
+// -0.533236
+0xb844
+// 0.071944
+0x2c9b
+// 0.276246
+0x346c
+// 0.135461
+0x3056
+// 0.170723
+0x3177
+// -0.452565
+0xb73e
+// -1.000000
+0xbc00
+// -0.048659
+0xaa3a
+// 0.143430
+0x3097
+// 0.060512
+0x2bbf
+// 0.241493
+0x33ba
+// 0.254009
+0x3410
+// 0.231080
+0x3365
+// 0.191246
+0x321f
+// 0.082363
+0x2d45
+// 0.248892
+0x33f7
+// 0.212774
+0x32cf
+// 0.077180
+0x2cf1
+// 0.136963
+0x3062
+// -0.324181
+0xb530
+// -0.507162
+0xb80f
+// -0.179948
+0xb1c2
+// 0.164182
+0x3141
+// -0.140508
+0xb07f
+// 0.181837
+0x31d2
+// 0.638801
+0x391c
+// -0.580394
+0xb8a5
+// -0.117677
+0xaf88
+// 0.514654
+0x381e
+// 0.367039
+0x35df
+// -0.304641
+0xb4e0
+// 0.406984
+0x3683
+// -0.302067
+0xb4d5
+// -0.148109
+0xb0bd
+// 0.133290
+0x3044
+// -0.212051
+0xb2c9
+// 0.038906
+0x28fb
+// -0.029691
+0xa79a
+// 0.182342
+0x31d6
+// 0.643300
+0x3925
+// -0.302138
+0xb4d6
+// 0.048180
+0x2a2b
+// -0.116819
+0xaf7a
+// 0.071700
+0x2c97
+// -0.514211
+0xb81d
+// 0.366468
+0x35dd
+// -0.019947
+0xa51b
+// -0.500234
+0xb800
+// 0.097102
+0x2e37
+// 0.348324
+0x3593
+// -0.642755
+0xb924
+// 0.674408
+0x3965
+// 0.321409
+0x3524
+// -0.330888
+0xb54b
+// 0.146845
+0x30b3
+// 0.205239
+0x3291
+// -0.460834
+0xb760
+// 0.018291
+0x24af
+// -0.308046
+0xb4ee
+// -0.040195
+0xa925
+// 0.554012
+0x386f
+// 0.025912
+0x26a2
+// 0.510083
+0x3815
+// 0.284906
+0x348f
+// 0.250377
+0x3402
+// 0.272826
+0x345d
+// -0.125535
+0xb004
+// -0.084967
+0xad70
+// 0.042376
+0x296d
+// -0.185730
+0xb1f1
+// -0.174614
+0xb196
+// -1.000000
+0xbc00
+// 0.002275
+0x18a9
+// -0.583796
+0xb8ac
+// 0.043981
+0x29a1
+// 0.149319
+0x30c7
+// -0.193659
+0xb232
+// 0.317190
+0x3513
+// 0.314852
+0x350a
+// 0.194217
+0x3237
+// -0.193084
+0xb22e
+// -0.127910
+0xb018
+// -0.074168
+0xacbf
+// 0.521275
+0x382c
+// -0.474170
+0xb796
+// 0.344057
+0x3581
+// -0.510617
+0xb816
+// 0.517491
+0x3824
+// -0.140663
+0xb080
+// -0.634963
+0xb914
+// -0.247081
+0xb3e8
+// 0.027556
+0x270e
+// 0.751971
+0x3a04
+// 0.483059
+0x37bb
+// 0.327230
+0x353c
+// -0.052044
+0xaaa9
+// 0.082967
+0x2d4f
+// -0.603791
+0xb8d5
+// 0.472336
+0x378f
+// 0.249197
+0x33f9
+// -0.674075
+0xb965
+// -0.579323
+0xb8a2
+// -0.229729
+0xb35a
+// 0.191411
+0x3220
+// 0.229478
+0x3358
+// -0.190849
+0xb21b
+// 0.462914
+0x3768
+// -0.049378
+0xaa52
+// -0.062027
+0xabf0
+// -0.036834
+0xa8b7
+// -0.338448
+0xb56a
+// -0.223265
+0xb325
+// 0.084332
+0x2d66
+// -0.234730
+0xb383
+// -0.184054
+0xb1e4
+// -0.004968
+0x9d16
+// 0.172623
+0x3186
+// -0.465055
+0xb771
+// 0.588495
+0x38b5
+// -0.379605
+0xb613
+// -0.097628
+0xae40
+// -0.670209
+0xb95d
+// -0.132259
+0xb03b
+// -0.322643
+0xb52a
+// 0.432457
+0x36eb
+// -0.564116
+0xb883
+// 0.188337
+0x3207
+// -0.124622
+0xaffa
+// 0.694325
+0x398e
+// 0.212550
+0x32cd
+// -0.477841
+0xb7a5
+// 0.542830
+0x3858
+// 0.162541
+0x3134
+// 1.000000
+0x3c00
+// 0.256284
+0x341a
+// 0.324059
+0x352f
+// -0.030939
+0xa7ec
+// 0.090187
+0x2dc6
+// 0.785814
+0x3a49
+// -0.907341
+0xbb42
+// -0.292835
+0xb4af
+// -0.110054
+0xaf0b
+// 0.505069
+0x380a
+// 0.290484
+0x34a6
+// 0.420940
+0x36bc
+// 0.790848
+0x3a54
+// 0.028275
+0x273d
+// -0.445437
+0xb721
+// 0.130737
+0x302f
+// -0.240443
+0xb3b2
+// 0.013580
+0x22f4
+// -0.522407
+0xb82e
+// 0.589190
+0x38b7
+// 0.022401
+0x25bc
+// 0.375733
+0x3603
+// -0.338792
+0xb56c
+// -0.377624
+0xb60b
+// 0.587379
+0x38b3
+// 0.417610
+0x36af
+// 0.162619
+0x3134
+// -0.257593
+0xb41f
+// -0.700147
+0xb99a
+// -1.000000
+0xbc00
+// 0.029893
+0x27a7
+// 0.538728
+0x384f
+// -0.055922
+0xab28
+// 0.177816
+0x31b1
+// -0.273945
+0xb462
+// -0.070228
+0xac7f
+// 0.340100
+0x3571
+// -0.717343
+0xb9bd
+// 0.287387
+0x3499
+// -0.362296
+0xb5cc
+// -0.194643
+0xb23b
+// -0.140246
+0xb07d
+// 0.164103
+0x3140
+// -0.261376
+0xb42f
+// -0.729477
+0xb9d6
+// 0.518856
+0x3827
+// -0.128357
+0xb01c
+// -0.023685
+0xa610
+// -0.297925
+0xb4c4
+// -0.438354
+0xb703
+// -0.326960
+0xb53b
+// 0.482187
+0x37b7
+// 0.309175
+0x34f2
+// 0.219736
+0x3308
+// 0.166030
+0x3150
+// 0.390825
+0x3641
+// 0.009456
+0x20d7
+// -0.284204
+0xb48c
+// -0.247950
+0xb3ef
+// -0.127469
+0xb014
+// 0.126850
+0x300f
+// 0.324025
+0x352f
+// 0.253666
+0x340f
+// 0.956915
+0x3ba8
+// 1.000000
+0x3c00
+// -0.190502
+0xb219
+// -0.304513
+0xb4df
+// 0.802476
+0x3a6b
+// 0.180658
+0x31c8
+// -0.194862
+0xb23c
+// 0.336996
+0x3564
+// -0.255672
+0xb417
+// -0.572228
+0xb894
+// 0.256764
+0x341c
+// -0.257794
+0xb420
+// 0.066326
+0x2c3f
+// -0.079165
+0xad11
+// -0.006256
+0x9e68
+// 0.313367
+0x3504
+// -0.110715
+0xaf16
+// 0.229309
+0x3357
+// 0.054237
+0x2af1
+// -0.220542
+0xb30f
+// -0.360271
+0xb5c4
+// -0.197523
+0xb252
+// -0.012845
+0xa294
+// 0.252293
+0x3409
+// -0.469277
+0xb782
+// 0.479738
+0x37ad
+// -0.311915
+0xb4fe
+// 1.000000
+0x3c00
+// -0.700397
+0xb99a
+// 0.927729
+0x3b6c
+// 0.452887
+0x373f
+// -0.180559
+0xb1c7
+// -0.335934
+0xb560
+// 0.156561
+0x3103
+// -0.271167
+0xb457
+// -0.518281
+0xb825
+// -0.453770
+0xb743
+// -0.368735
+0xb5e6
+// -0.093140
+0xadf6
+// -0.358366
+0xb5bc
+// 0.366322
+0x35dc
+// 0.046624
+0x29f8
+// -0.109830
+0xaf07
+// -0.273054
+0xb45e
+// 0.093909
+0x2e03
+// -0.898344
+0xbb30
+// 0.314827
+0x350a
+// -0.010143
+0xa131
+// 0.489038
+0x37d3
+// 0.160609
+0x3124
+// 0.206871
+0x329f
+// -0.060083
+0xabb1
+// -0.027722
+0xa719
+// -0.567358
+0xb88a
+// 1.000000
+0x3c00
+// -0.724094
+0xb9cb
+// 0.611436
+0x38e4
+// 0.200328
+0x3269
+// 0.988733
+0x3be9
+// -0.032363
+0xa824
+// -0.305403
+0xb4e3
+// 0.215948
+0x32e9
+// 0.277859
+0x3472
+// 0.036988
+0x28bc
+// -0.380224
+0xb615
+// -0.272868
+0xb45e
+// 0.058112
+0x2b70
+// 0.131044
+0x3032
+// 1.000000
+0x3c00
+// 0.090242
+0x2dc7
+// -0.113847
+0xaf49
+// -0.168777
+0xb167
+// 0.074302
+0x2cc1
+// 0.177790
+0x31b0
+// -0.510669
+0xb816
+// -0.253681
+0xb40f
+// 0.019285
+0x24f0
+// -0.015831
+0xa40d
+// -0.293020
+0xb4b0
+// 0.129267
+0x3023
+// 0.548094
+0x3862
+// -0.126604
+0xb00d
+// -0.276816
+0xb46e
+// -0.152887
+0xb0e4
+// 0.300368
+0x34ce
+// -0.058828
+0xab88
+// 0.100092
+0x2e68
+// 0.119354
+0x2fa3
+// -0.493118
+0xb7e4
+// -0.854895
+0xbad7
+// 0.376331
+0x3605
+// 0.167042
+0x3158
+// -0.233280
+0xb377
+// -0.277748
+0xb472
+// 0.059815
+0x2ba8
+// -0.068909
+0xac69
+// -0.354807
+0xb5ad
+// -0.219437
+0xb306
+// -0.129015
+0xb021
+// 0.114457
+0x2f53
+// -0.171386
+0xb17c
+// -0.337794
+0xb568
+// 0.135860
+0x3059
+// -0.173651
+0xb18f
+// 0.600436
+0x38ce
+// -0.567581
+0xb88a
+// -0.179118
+0xb1bb
+// -0.065557
+0xac32
+// -0.179645
+0xb1c0
+// -0.100206
+0xae6a
+// -0.077533
+0xacf6
+// 0.037780
+0x28d6
+// 0.045300
+0x29cc
+// 0.759065
+0x3a13
+// -0.088380
+0xada8
+// 0.088859
+0x2db0
+// 0.383206
+0x3622
+// -0.041587
+0xa953
+// -1.000000
+0xbc00
+// 0.433161
+0x36ee
+// -0.331688
+0xb54f
+// 0.055093
+0x2b0d
+// 0.213090
+0x32d2
+// -0.001515
+0x9635
+// 0.094195
+0x2e07
+// -0.442432
+0xb714
+// 0.557708
+0x3876
+// 0.084670
+0x2d6b
+// -0.115127
+0xaf5e
+// -0.519897
+0xb829
+// 0.409208
+0x368c
+// -0.014813
+0xa396
+// 0.161622
+0x312c
+// -0.006826
+0x9efd
+// -0.333900
+0xb558
+// -0.323591
+0xb52d
+// -0.254696
+0xb413
+// -0.460855
+0xb760
+// 1.000000
+0x3c00
+// -0.471806
+0xb78d
+// 0.090200
+0x2dc6
+// -0.520916
+0xb82b
+// -0.447783
+0xb72a
+// -0.730174
+0xb9d7
+// 0.206763
+0x329e
+// 0.104768
+0x2eb5
+// -0.647635
+0xb92e
+// -0.370966
+0xb5ef
+// 0.096730
+0x2e31
+// 0.486419
+0x37c8
+// 0.166570
+0x3155
+// 0.265195
+0x343e
+// -0.631337
+0xb90d
+// 0.011746
+0x2204
+// -0.684117
+0xb979
+// 0.186984
+0x31fc
+// -0.015294
+0xa3d5
+// -0.055415
+0xab18
+// 0.336027
+0x3560
+// -0.458667
+0xb757
+// -0.447362
+0xb728
+// 0.616889
+0x38ef
+// 0.070743
+0x2c87
+// -0.522461
+0xb82e
+// -0.077372
+0xacf4
+// -0.104717
+0xaeb4
+// -0.166321
+0xb153
+// 0.125234
+0x3002
+// 0.180847
+0x31c9
+// -0.043568
+0xa994
+// 0.300628
+0x34cf
+// 0.420763
+0x36bb
+// -0.804122
+0xba6f
+// 0.177305
+0x31ac
+// -0.597318
+0xb8c7
+// 0.589760
+0x38b8
+// 1.000000
+0x3c00
+// -0.010877
+0xa192
+// -0.451503
+0xb739
+// 0.006452
+0x1e9b
+// -0.104813
+0xaeb5
+// 0.087482
+0x2d99
+// -0.584787
+0xb8ae
+// 0.421689
+0x36bf
+// 0.338501
+0x356b
+// 0.218197
+0x32fb
+// 0.136500
+0x305e
+// 0.194589
+0x323a
+// 0.238778
+0x33a4
+// -0.753637
+0xba07
+// -0.132665
+0xb03f
+// -0.196328
+0xb248
+// -0.640982
+0xb921
+// 0.039153
+0x2903
+// -0.962998
+0xbbb4
+// 0.036574
+0x28ae
+// -0.184255
+0xb1e5
+// 0.284575
+0x348e
+// -0.732946
+0xb9dd
+// 0.307461
+0x34eb
+// -0.011325
+0xa1cc
+// 0.705023
+0x39a4
+// -0.124750
+0xaffc
+// 0.011101
+0x21af
+// -0.176706
+0xb1a8
+// -0.581950
+0xb8a8
+// 0.512541
+0x381a
+// 0.783379
+0x3a44
+// 0.250951
+0x3404
+// -0.405146
+0xb67b
+// -0.130369
+0xb02c
+// -0.207390
+0xb2a3
+// -0.139494
+0xb077
+// -0.240863
+0xb3b5
+// 0.194164
+0x3237
+// -0.018294
+0xa4af
+// 0.017040
+0x245d
+// -0.853784
+0xbad5
+// 0.052166
+0x2aad
+// 0.511859
+0x3818
+// -0.486714
+0xb7ca
+// 0.161558
+0x312b
+// 0.473636
+0x3794
+// -0.411291
+0xb695
+// 0.026242
+0x26b8
+// 0.224826
+0x3332
+// -0.076536
+0xace6
+// 0.176878
+0x31a9
+// -0.138469
+0xb06e
+// 0.254214
+0x3411
+// -0.751999
+0xba04
+// 0.358003
+0x35ba
+// -0.867394
+0xbaf0
+// 0.178109
+0x31b3
+// 0.242197
+0x33c0
+// -0.088431
+0xada9
+// -0.006853
+0x9f05
+// 0.915644
+0x3b53
+// -0.227501
+0xb348
+// -0.882950
+0xbb10
+// -0.083846
+0xad5e
+// 0.234786
+0x3383
+// 0.186838
+0x31fb
+// 0.054096
+0x2aed
+// 0.566944
+0x3889
+// -0.086468
+0xad89
+// -0.030673
+0xa7da
+// 0.472361
+0x378f
+// -0.261911
+0xb431
+// 0.052116
+0x2aac
+// -0.043115
+0xa985
+// -0.087207
+0xad95
+// 0.401763
+0x366e
+// -0.049867
+0xaa62
+// 0.064353
+0x2c1e
+// -0.171478
+0xb17d
+// 0.371422
+0x35f1
+// -0.101021
+0xae77
+// 0.166545
+0x3154
+// 0.180494
+0x31c7
+// -0.132218
+0xb03b
+// 0.087840
+0x2d9f
+// 0.139753
+0x3079
+// -0.297647
+0xb4c3
+// 0.458604
+0x3756
+// -0.127689
+0xb016
+// -0.060247
+0xabb6
+// 1.000000
+0x3c00
+// 0.094832
+0x2e12
+// 0.465109
+0x3771
+// -0.348622
+0xb594
+// -0.058672
+0xab83
+// 0.111489
+0x2f23
+// 0.035593
+0x288e
+// -0.080428
+0xad26
+// 0.009526
+0x20e1
+// 0.016362
+0x2430
+// -0.287647
+0xb49a
+// 0.192429
+0x3228
+// 0.122397
+0x2fd5
+// 0.403862
+0x3676
+// 0.430278
+0x36e2
+// 0.301682
+0x34d4
+// -0.327621
+0xb53e
+// 0.270055
+0x3452
+// 0.566890
+0x3889
+// -0.185280
+0xb1ee
+// -0.329715
+0xb547
+// 0.210806
+0x32bf
+// -0.313196
+0xb503
+// -0.577902
+0xb8a0
+// -0.137671
+0xb068
+// -0.102591
+0xae91
+// 0.797064
+0x3a60
+// -0.072500
+0xaca4
+// -0.865535
+0xbaed
+// 0.466839
+0x3778
+// 0.033251
+0x2842
+// 0.191129
+0x321e
+// 0.589244
+0x38b7
+// 0.377368
+0x360a
+// 0.425457
+0x36cf
+// -0.347579
+0xb590
+// -0.136179
+0xb05c
+// 0.044569
+0x29b4
+// 0.408124
+0x3688
+// -0.272837
+0xb45e
+// 0.699568
+0x3999
+// 0.181558
+0x31cf
+// -0.268716
+0xb44d
+// 0.668299
+0x3959
+// -0.097349
+0xae3b
+// -0.716321
+0xb9bb
+// 0.135603
+0x3057
+// 0.695229
+0x3990
+// 0.316142
+0x350f
+// 0.422712
+0x36c3
+// -0.140052
+0xb07b
+// -1.000000
+0xbc00
+// -0.139883
+0xb07a
+// -0.450718
+0xb736
+// -0.502018
+0xb804
+// -0.313592
+0xb504
+// 0.459653
+0x375b
+// -0.110337
+0xaf10
+// 0.532496
+0x3843
+// -0.783144
+0xba44
+// 0.187477
+0x3200
+// 0.204087
+0x3288
+// -0.296729
+0xb4bf
+// 0.375832
+0x3603
+// -0.354147
+0xb5ab
+// -0.902133
+0xbb38
+// 0.211184
+0x32c2
+// -0.421908
+0xb6c0
+// 0.464734
+0x3770
+// 0.377993
+0x360c
+// 0.910082
+0x3b48
+// -0.937223
+0xbb7f
+// 0.109651
+0x2f05
+// 0.410078
+0x3690
+// -0.374677
+0xb5ff
+// -0.264929
+0xb43d
+// 0.507059
+0x380e
+// -0.784468
+0xba47
+// -0.668819
+0xb95a
+// -0.430265
+0xb6e2
+// -0.528823
+0xb83b
+// 0.561230
+0x387d
+// -0.286122
+0xb494
+// -0.225873
+0xb33a
+// 0.069954
+0x2c7a
+// 0.216312
+0x32ec
+// -0.244386
+0xb3d2
+// -0.118195
+0xaf91
+// -0.368356
+0xb5e5
+// -0.053326
+0xaad3
+// 0.334336
+0x3559
+// 0.290476
+0x34a6
+// -0.103560
+0xaea1
+// 0.419670
+0x36b7
+// 0.251192
+0x3405
+// 0.064212
+0x2c1c
+// -0.269774
+0xb451
+// 0.229480
+0x3358
+// 0.590200
+0x38b9
+// -0.284312
+0xb48d
+// -0.287711
+0xb49a
+// -0.239744
+0xb3ac
+// 0.374908
+0x3600
+// 0.108340
+0x2eef
+// 0.329565
+0x3546
+// -0.166915
+0xb157
+// -0.045856
+0xa9df
+// -0.423415
+0xb6c6
+// -0.248071
+0xb3f0
+// -0.308662
+0xb4f0
+// 0.000953
+0x13d0
+// 0.257142
+0x341d
+// -0.293993
+0xb4b4
+// -0.273719
+0xb461
+// 0.058412
+0x2b7a
+// -0.193691
+0xb233
+// 0.322549
+0x3529
+// -0.047535
+0xaa16
+// 0.538283
+0x384e
+// 0.641389
+0x3922
+// -0.595503
+0xb8c4
+// 0.267014
+0x3446
+// 0.170947
+0x3178
+// 0.384276
+0x3626
+// -0.013273
+0xa2cc
+// -0.597296
+0xb8c7
+// 0.328587
+0x3542
+// 0.042428
+0x296e
+// 0.032491
+0x2829
+// 0.067033
+0x2c4a
+// -0.303180
+0xb4da
+// 0.323219
+0x352c
+// 0.283126
+0x3488
+// 0.230158
+0x335d
+// 0.214786
+0x32e0
+// -0.090736
+0xadcf
+// 0.237731
+0x339b
+// 0.706219
+0x39a6
+// 0.164362
+0x3142
+// -1.000000
+0xbc00
+// 0.202453
+0x327a
+// 0.288499
+0x349e
+// 0.328643
+0x3542
+// 0.043426
+0x298f
+// -0.221766
+0xb319
+// 0.066148
+0x2c3c
+// 0.717541
+0x39be
+// 0.571057
+0x3892
+// 0.410048
+0x3690
+// 0.371511
+0x35f2
+// -0.132300
+0xb03c
+// 0.055051
+0x2b0c
+// -0.446980
+0xb727
+// 0.642143
+0x3923
+// 0.000313
+0xd23
+// -0.094640
+0xae0f
+// 0.512000
+0x3819
+// -0.202354
+0xb27a
+// -0.187006
+0xb1fc
+// -0.007785
+0x9ff9
+// 0.681725
+0x3974
+// 0.068609
+0x2c64
+// -0.131195
+0xb033
+// -0.436859
+0xb6fd
+// 0.443934
+0x371a
+// 0.281297
+0x3480
+// 0.346111
+0x358a
+// -0.723246
+0xb9c9
+// 0.103652
+0x2ea2
+// -0.262967
+0xb435
+// -0.045688
+0xa9d9
+// -0.125624
+0xb005
+// 0.104120
+0x2eaa
+// -0.523042
+0xb82f
+// 0.124941
+0x2fff
+// 0.414486
+0x36a2
+// 0.443587
+0x3719
+// -0.362484
+0xb5cd
+// -0.324258
+0xb530
+// -0.522860
+0xb82f
+// -0.079852
+0xad1c
+// -0.379674
+0xb613
+// 0.315825
+0x350e
+// 1.000000
+0x3c00
+// 0.325130
+0x3534
+// -0.811534
+0xba7e
+// -0.279957
+0xb47b
+// -0.904565
+0xbb3d
+// -0.093634
+0xadfe
+// 0.674632
+0x3966
+// 0.239760
+0x33ac
+// 0.511544
+0x3818
+// -0.387118
+0xb632
+// -0.257210
+0xb41e
+// 0.314911
+0x350a
+// 0.475106
+0x379a
+// -0.381661
+0xb61b
+// 0.477352
+0x37a3
+// -0.257069
+0xb41d
+// 0.436935
+0x36fe
+// -0.687702
+0xb980
+// -0.356569
+0xb5b5
+// -0.474131
+0xb796
+// 0.184750
+0x31e9
+// -0.483118
+0xb7bb
+// -0.603456
+0xb8d4
+// -0.157119
+0xb107
+// -0.027862
+0xa722
+// -1.000000
+0xbc00
+// -0.422408
+0xb6c2
+// 0.088407
+0x2da8
+// -0.386981
+0xb631
+// -0.181721
+0xb1d1
+// -0.117342
+0xaf83
+// 0.734570
+0x39e0
+// 0.179598
+0x31bf
+// -0.254479
+0xb412
+// -0.240689
+0xb3b4
+// 0.113239
+0x2f3f
+// -0.033628
+0xa84e
+// 0.110071
+0x2f0b
+// -0.296950
+0xb4c0
+// -0.295995
+0xb4bc
+// -0.053310
+0xaad3
+// 0.508237
+0x3811
+// 0.482573
+0x37b9
+// -0.551585
+0xb86a
+// -0.149222
+0xb0c6
+// -0.183172
+0xb1dd
+// 0.209347
+0x32b3
+// -0.038369
+0xa8e9
+// 0.203491
+0x3283
+// 0.512598
+0x381a
+// 0.573070
+0x3896
+// -0.829504
+0xbaa3
+// -0.437321
+0xb6ff
+// -0.008396
+0xa04d
+// -0.628482
+0xb907
+// -0.047164
+0xaa09
+// -0.439541
+0xb708
+// -0.099514
+0xae5e
+// -0.113476
+0xaf43
+// 0.458432
+0x3756
+// 0.426178
+0x36d2
+// 0.133197
+0x3043
+// -0.190754
+0xb21b
+// -0.323217
+0xb52c
+// -0.409898
+0xb68f
+// 0.142874
+0x3092
+// 0.070005
+0x2c7b
+// -0.849993
+0xbacd
+// 0.110998
+0x2f1b
+// 0.372668
+0x35f6
+// -0.123241
+0xafe3
+// 0.046458
+0x29f2
+// -0.896252
+0xbb2c
+// -0.873403
+0xbafd
+// -0.018703
+0xa4ca
+// -0.983073
+0xbbdd
+// 0.401473
+0x366c
+// 0.736087
+0x39e4
+// 0.756371
+0x3a0d
+// 0.295883
+0x34bc
+// 0.292876
+0x34b0
+// -0.532618
+0xb843
+// 0.710297
+0x39af
+// -0.248556
+0xb3f4
+// 0.173868
+0x3190
+// -0.449380
+0xb731
+// -0.054068
+0xaaec
+// 0.447949
+0x372b
+// -0.102445
+0xae8e
+// 0.756313
+0x3a0d
+// -0.047102
+0xaa07
+// 0.563645
+0x3882
+// -0.598682
+0xb8ca
+// 0.172102
+0x3182
+// 0.152037
+0x30dd
+// -0.291878
+0xb4ac
+// 0.163576
+0x313c
+// 0.213265
+0x32d3
+// 0.744393
+0x39f5
+// -0.222511
+0xb31f
+// 0.612291
+0x38e6
+// -0.714179
+0xb9b7
+// 0.217791
+0x32f8
+// -1.000000
+0xbc00
+// 0.171143
+0x317a
+// -0.072834
+0xaca9
+// 0.049836
+0x2a61
+// -0.461722
+0xb763
+// 0.429738
+0x36e0
+// 0.072618
+0x2ca6
+// 0.178329
+0x31b5
+// -0.005132
+0x9d41
+// -0.715199
+0xb9b9
+// -0.461507
+0xb762
+// 0.495816
+0x37ef
+// 0.233028
+0x3375
+// 0.129601
+0x3026
+// -0.046588
+0xa9f7
+// -0.038869
+0xa8fa
+// 0.529488
+0x383c
+// -0.552060
+0xb86b
+// -0.951499
+0xbb9d
+// 0.607727
+0x38dd
+// -0.398949
+0xb662
+// -0.885138
+0xbb15
+// -0.644932
+0xb929
+// -0.037543
+0xa8ce
+// -0.176725
+0xb1a8
+// 0.061499
+0x2bdf
+// 0.241509
+0x33ba
+// 0.774309
+0x3a32
+// 0.159949
+0x311e
+// 0.414249
+0x36a1
+// -0.992421
+0xbbf0
+// 0.868272
+0x3af2
+// 0.232750
+0x3373
+// -0.152691
+0xb0e3
+// -0.303124
+0xb4da
+// 0.247989
+0x33f0
+// -0.040485
+0xa92f
+// 0.370654
+0x35ee
+// -0.276074
+0xb46b
+// 0.372549
+0x35f6
+// -0.471301
+0xb78a
+// -0.240650
+0xb3b3
+// -0.338095
+0xb569
+// 0.298696
+0x34c7
+// -0.083578
+0xad59
+// 0.249194
+0x33f9
+// 0.659065
+0x3946
+// 0.262181
+0x3432
+// -0.472068
+0xb78e
+// 0.086583
+0x2d8b
+// -0.785844
+0xba49
+// -0.095366
+0xae1a
+// 0.319109
+0x351b
+// 0.091552
+0x2ddc
+// -0.360162
+0xb5c3
+// 0.083431
+0x2d57
+// 0.043975
+0x29a1
+// 0.815680
+0x3a87
+// 0.237125
+0x3397
+// -0.184062
+0xb1e4
+// -0.308949
+0xb4f1
+// -0.683366
+0xb978
+// -0.051921
+0xaaa5
+// -0.469518
+0xb783
+// 0.106663
+0x2ed4
+// 0.987788
+0x3be7
+// 0.255433
+0x3416
+// 0.451246
+0x3738
+// 0.394042
+0x364e
+// 0.487413
+0x37cc
+// -0.304314
+0xb4de
+// -0.768293
+0xba25
+// -0.075861
+0xacdb
+// -0.129845
+0xb028
+// -0.196411
+0xb249
+// -0.132460
+0xb03d
+// -0.361461
+0xb5c9
+// -0.154261
+0xb0f0
+// -0.067753
+0xac56
+// -0.105559
+0xaec1
+// -0.217594
+0xb2f7
+// -0.023405
+0xa5fe
+// 0.305434
+0x34e3
+// 0.151330
+0x30d8
+// 0.401568
+0x366d
+// 0.212937
+0x32d0
+// 0.392638
+0x3648
+// -0.131000
+0xb031
+// 1.000000
+0x3c00
+// 0.883977
+0x3b12
+// -0.423921
+0xb6c8
+// 0.505379
+0x380b
+// -0.070029
+0xac7b
+// -0.371993
+0xb5f4
+// 0.352775
+0x35a5
+// 0.267941
+0x3449
+// 0.332511
+0x3552
+// -0.239514
+0xb3aa
+// 0.971848
+0x3bc6
+// -0.332463
+0xb552
+// -0.560945
+0xb87d
+// 0.237227
+0x3397
+// 0.023569
+0x2609
+// 0.862716
+0x3ae7
+// 0.534068
+0x3846
+// -0.490635
+0xb7da
+// -0.254267
+0xb411
+// -0.124980
+0xb000
+// -0.270728
+0xb455
+// -0.161286
+0xb129
+// -0.050253
+0xaa6f
+// 0.012844
+0x2293
+// -0.318372
+0xb518
+// -0.659733
+0xb947
+// -0.097103
+0xae37
+// -0.178330
+0xb1b5
+// -0.359610
+0xb5c1
+// 0.747422
+0x39fb
+// -0.106701
+0xaed4
+// 0.205756
+0x3296
+// 0.555564
+0x3872
+// 0.003522
+0x1b37
+// -0.431955
+0xb6e9
+// -0.057772
+0xab65
+// 0.344142
+0x3582
+// 0.070596
+0x2c85
+// -0.023241
+0xa5f3
+// -0.766461
+0xba22
+// -0.919316
+0xbb5b
+// 0.403530
+0x3675
+// -0.932563
+0xbb76
+// -0.200579
+0xb26b
+// -0.357613
+0xb5b9
+// -0.033771
+0xa853
+// -0.240405
+0xb3b1
+// 0.379900
+0x3614
+// -0.324663
+0xb532
+// 0.518940
+0x3827
+// 0.017495
+0x247b
+// 0.366175
+0x35dc
+// 0.371910
+0x35f3
+// -0.090010
+0xadc3
+// 0.547381
+0x3861
+// 0.424420
+0x36ca
+// -0.530503
+0xb83e
+// -0.118492
+0xaf95
+// -0.314037
+0xb506
+// 0.797532
+0x3a61
+// -0.195783
+0xb244
+// 0.076029
+0x2cde
+// -0.541239
+0xb854
+// -0.603602
+0xb8d4
+// 0.550790
+0x3868
+// -0.374023
+0xb5fc
+// 0.344156
+0x3582
+// 0.355673
+0x35b1
+// 0.063487
+0x2c10
+// -0.252547
+0xb40a
+// -0.408275
+0xb688
+// -0.484007
+0xb7be
+// 0.279447
+0x3479
+// -0.286538
+0xb496
+// 0.315943
+0x350e
+// -0.106009
+0xaec9
+// 0.442800
+0x3716
+// 0.147465
+0x30b8
+// 0.364841
+0x35d6
+// -0.019087
+0xa4e3
+// -0.363702
+0xb5d2
+// 0.220349
+0x330d
+// 0.769669
+0x3a28
+// 0.823936
+0x3a97
+// 0.049836
+0x2a61
+// 0.382237
+0x361e
+// -0.177986
+0xb1b2
+// -0.181451
+0xb1ce
+// -0.474719
+0xb798
+// 0.644830
+0x3929
+// -0.193080
+0xb22e
+// 0.564488
+0x3884
+// 0.233773
+0x337b
+// 0.696129
+0x3992
+// -0.640951
+0xb921
+// -0.531790
+0xb841
+// 0.376625
+0x3607
+// 0.128955
+0x3020
+// 0.043123
+0x2985
+// 0.161453
+0x312b
+// 0.625637
+0x3901
+// -0.096330
+0xae2a
+// 0.188124
+0x3205
+// -0.628865
+0xb908
+// 0.470725
+0x3788
+// -0.217779
+0xb2f8
+// -0.193731
+0xb233
+// 0.646837
+0x392d
+// -0.535652
+0xb849
+// -0.246310
+0xb3e2
+// -0.335682
+0xb55f
+// 0.266775
+0x3445
+// -0.009978
+0xa11c
+// 0.954376
+0x3ba3
+// -0.255937
+0xb418
+// -0.153089
+0xb0e6
+// -0.518745
+0xb826
+// -0.664607
+0xb951
+// 0.127870
+0x3018
+// -0.380447
+0xb616
+// -0.237169
+0xb397
+// -0.350049
+0xb59a
+// -0.197644
+0xb253
+// 0.387193
+0x3632
+// -0.326666
+0xb53a
+// -0.020073
+0xa524
+// -0.031801
+0xa812
+// -0.326281
+0xb538
+// -0.638263
+0xb91b
+// -0.244940
+0xb3d7
+// 0.300565
+0x34cf
+// 0.014447
+0x2366
+// 0.269449
+0x3450
+// 0.376106
+0x3605
+// -0.273425
+0xb460
+// 0.219875
+0x3309
+// -0.790761
+0xba53
+// 0.171881
+0x3180
+// -0.325498
+0xb535
+// -0.474162
+0xb796
+// 1.000000
+0x3c00
+// 0.139084
+0x3073
+// -0.276110
+0xb46b
+// 0.275217
+0x3467
+// 0.171643
+0x317e
+// 0.120620
+0x2fb8
+// -0.425826
+0xb6d0
+// 0.034753
+0x2873
+// 0.473178
+0x3792
+// -0.030541
+0xa7d2
+// 0.141839
+0x308a
+// -0.526394
+0xb836
+// 0.130053
+0x3029
+// -0.833267
+0xbaab
+// 0.519093
+0x3827
+// -0.340995
+0xb575
+// 0.253850
+0x3410
+// -0.276044
+0xb46b
+// -0.515932
+0xb821
+// -0.178820
+0xb1b9
+// -0.533941
+0xb846
+// 0.628600
+0x3907
+// 0.366822
+0x35df
+// 0.122882
+0x2fdd
+// -0.149544
+0xb0c9
+// 0.355861
+0x35b2
+// 0.265258
+0x343e
+// 0.387537
+0x3633
+// 0.120926
+0x2fbd
+// 0.217248
+0x32f4
+// -0.347818
+0xb591
+// -0.403100
+0xb673
+// -0.084164
+0xad63
+// -0.891568
+0xbb22
+// 0.200303
+0x3269
+// 0.561937
+0x387f
+// 0.054305
+0x2af3
+// -0.242896
+0xb3c6
+// 0.079247
+0x2d12
+// -0.326758
+0xb53a
+// 0.348106
+0x3592
+// -0.077856
+0xacfc
+// -0.270341
+0xb453
+// -0.217987
+0xb2fa
+// 0.010495
+0x2160
+// -0.158935
+0xb116
+// 0.053004
+0x2ac9
+// -0.700556
+0xb99b
+// 0.169642
+0x316e
+// 0.216477
+0x32ed
+// -0.256632
+0xb41b
+// 0.081109
+0x2d31
+// -0.088601
+0xadac
+// -0.299081
+0xb4c9
+// -0.484585
+0xb7c1
+// 0.022471
+0x25c1
+// 0.294265
+0x34b5
+// 0.468300
+0x377e
+// -0.409968
+0xb68f
+// -0.176138
+0xb1a3
+// -0.016532
+0xa43b
+// 0.164848
+0x3146
+// 0.042662
+0x2976
+// -0.010873
+0xa191
+// 0.122950
+0x2fde
+// 0.076589
+0x2ce7
+// 0.104684
+0x2eb3
+// -0.140025
+0xb07b
+// 0.062353
+0x2bfb
+// 0.147505
+0x30b8
+// 0.087032
+0x2d92
+// 0.653798
+0x393b
+// -0.735231
+0xb9e2
+// -0.139201
+0xb074
+// 0.206971
+0x32a0
+// -0.024108
+0xa62c
+// 0.117505
+0x2f85
+// -0.387238
+0xb632
+// 0.463442
+0x376a
+// 0.210618
+0x32bd
+// 0.637766
+0x391a
+// 0.229768
+0x335a
+// -0.435849
+0xb6f9
+// 0.131226
+0x3033
+// -0.220306
+0xb30d
+// 0.206362
+0x329b
+// 0.080042
+0x2d1f
+// -0.097484
+0xae3d
+// -0.071466
+0xac93
+// -0.209988
+0xb2b8
+// -0.480163
+0xb7af
+// 0.056459
+0x2b3a
+// -0.377956
+0xb60c
+// -0.024765
+0xa657
+// 0.192287
+0x3227
+// -0.520639
+0xb82a
+// -0.254840
+0xb414
+// -0.310167
+0xb4f6
+// -0.171977
+0xb181
+// 0.123000
+0x2fdf
+// -0.050376
+0xaa73
+// -0.116228
+0xaf70
+// 0.039305
+0x2908
+// -0.031679
+0xa80e
+// -0.693809
+0xb98d
+// 0.221947
+0x331a
+// 0.270878
+0x3456
+// 0.390359
+0x363f
+// 0.392168
+0x3646
+// -0.021292
+0xa573
+// -0.320174
+0xb51f
+// -0.135139
+0xb053
+// 0.591545
+0x38bb
+// -0.022711
+0xa5d0
+// -0.503518
+0xb807
+// -0.092688
+0xadef
+// -0.643889
+0xb927
+// -0.079267
+0xad13
+// 0.207204
+0x32a1
+// 0.102911
+0x2e96
+// 1.000000
+0x3c00
+// -0.446783
+0xb726
+// 0.194178
+0x3237
+// -0.103136
+0xae9a
+// 0.082706
+0x2d4b
+// 0.640459
+0x3920
+// 0.686299
+0x397e
+// 0.236713
+0x3393
+// 0.138293
+0x306d
+// -0.587183
+0xb8b3
+// 0.100319
+0x2e6c
+// 0.561910
+0x387f
+// -0.044794
+0xa9bc
+// -0.002267
+0x98a5
+// -0.005100
+0x9d39
+// 0.122658
+0x2fda
+// -0.102422
+0xae8e
+// 0.854722
+0x3ad6
+// -0.088191
+0xada5
+// 0.635483
+0x3915
+// -0.707816
+0xb9aa
+// 0.418244
+0x36b1
+// -0.079239
+0xad12
+// -0.385978
+0xb62d
+// 0.262687
+0x3434
+// -0.435947
+0xb6fa
+// -0.579418
+0xb8a3
+// 0.023303
+0x25f7
+// -0.175435
+0xb19d
+// 0.196818
+0x324c
+// 0.438443
+0x3704
+// -0.054082
+0xaaec
+// 0.118928
+0x2f9d
+// 0.221287
+0x3315
+// 0.460272
+0x375d
+// 0.548100
+0x3863
+// 0.149158
+0x30c6
+// -0.880414
+0xbb0b
+// 0.730014
+0x39d7
+// -0.742038
+0xb9f0
+// 0.640393
+0x3920
+// -0.396150
+0xb657
+// 0.359423
+0x35c0
+// -0.163743
+0xb13d
+// -0.175829
+0xb1a0
+// 0.221809
+0x3319
+// -0.971258
+0xbbc5
+// -0.043646
+0xa996
+// 0.276885
+0x346e
+// -0.082616
+0xad4a
+// -0.554454
+0xb870
+// 0.050795
+0x2a80
+// 0.111958
+0x2f2a
+// -0.295041
+0xb4b8
+// -0.350835
+0xb59d
+// 0.295862
+0x34bc
+// -0.123684
+0xafea
+// -0.427871
+0xb6d9
+// 0.598385
+0x38c9
+// -0.314354
+0xb508
+// 0.222782
+0x3321
+// 0.714047
+0x39b6
+// -0.774415
+0xba32
+// -0.795932
+0xba5e
+// -0.386786
+0xb630
+// -0.458987
+0xb758
+// -0.124586
+0xaff9
+// -0.718616
+0xb9c0
+// 0.126407
+0x300c
+// -1.000000
+0xbc00
+// 0.606709
+0x38db
+// 0.051094
+0x2a8a
+// 0.179177
+0x31bc
+// -0.391439
+0xb643
+// 0.509732
+0x3814
+// 0.292811
+0x34af
+// -0.358372
+0xb5bc
+// 0.014604
+0x237a
+// 0.180155
+0x31c4
+// 0.981667
+0x3bda
+// 0.223330
+0x3326
+// -0.961746
+0xbbb2
+// 0.377703
+0x360b
+// 0.725782
+0x39ce
+// -0.218157
+0xb2fb
+// -0.154452
+0xb0f1
+// -0.045226
+0xa9ca
+// 0.074271
+0x2cc1
+// -0.175109
+0xb19a
+// -0.050146
+0xaa6b
+// 0.725637
+0x39ce
+// -0.289249
+0xb4a1
+// -0.303704
+0xb4dc
+// 0.320365
+0x3520
+// 0.195984
+0x3245
+// -0.362207
+0xb5cc
+// -0.469040
+0xb781
+// 0.427858
+0x36d9
+// 0.494022
+0x37e8
+// 0.571001
+0x3891
+// -0.273868
+0xb462
+// 0.175234
+0x319c
+// 0.093186
+0x2df7
+// -0.254344
+0xb412
+// -0.244434
+0xb3d2
+// 0.452697
+0x373e
+// -0.706311
+0xb9a7
+// -0.060399
+0xabbb
+// -0.417235
+0xb6ad
+// 0.254849
+0x3414
+// 0.611948
+0x38e5
+// 0.508334
+0x3811
+// 0.638240
+0x391b
+// -0.338527
+0xb56b
+// -0.034624
+0xa86f
+// -0.132893
+0xb041
+// 0.399638
+0x3665
+// -0.084836
+0xad6e
+// -0.256413
+0xb41a
+// 0.077076
+0x2cef
+// 0.660897
+0x394a
+// -0.255268
+0xb416
+// 0.188378
+0x3207
+// -0.369314
+0xb5e9
+// 0.715692
+0x39ba
+// 0.853124
+0x3ad3
+// -0.299552
+0xb4cb
+// -0.522260
+0xb82e
+// -0.415071
+0xb6a4
+// 0.665470
+0x3953
+// 0.018178
+0x24a7
+// -0.217292
+0xb2f4
+// 0.176243
+0x31a4
+// 0.156069
+0x30ff
+// -0.598561
+0xb8ca
+// 0.305283
+0x34e2
+// -0.021305
+0xa574
+// -0.298294
+0xb4c6
+// 0.155352
+0x30f9
+// -0.108980
+0xaefa
+// -0.908512
+0xbb45
+// 0.035002
+0x287b
+// -0.399091
+0xb663
+// -0.184774
+0xb1ea
+// 0.376145
+0x3605
+// 0.005577
+0x1db6
+// -0.446566
+0xb725
+// -0.642007
+0xb923
+// 0.762316
+0x3a19
+// -0.507897
+0xb810
+// -0.305705
+0xb4e4
+// 0.200514
+0x326b
+// 0.290703
+0x34a7
+// 0.068315
+0x2c5f
+// 0.303022
+0x34d9
+// 0.916083
+0x3b54
+// -0.192693
+0xb22b
+// 0.940213
+0x3b86
+// 0.670029
+0x395c
+// 0.107319
+0x2ede
+// 0.519066
+0x3827
+// -0.045232
+0xa9ca
+// 0.095858
+0x2e23
+// -0.529705
+0xb83d
+// 0.029707
+0x279b
+// 0.203298
+0x3281
+// -0.284405
+0xb48d
+// 0.097416
+0x2e3c
+// 0.173336
+0x318c
+// -0.065794
+0xac36
+// -0.057861
+0xab68
+// -0.363369
+0xb5d0
+// 0.011364
+0x21d2
+// -0.084787
+0xad6d
+// 0.108915
+0x2ef8
+// 0.253163
+0x340d
+// -1.000000
+0xbc00
+// -0.227118
+0xb345
+// 0.430880
+0x36e5
+// 0.126190
+0x300a
+// -0.102432
+0xae8e
+// -0.465754
+0xb774
+// -0.408664
+0xb68a
+// -0.707445
+0xb9a9
+// 0.303896
+0x34dd
+// 0.416023
+0x36a8
+// -0.062437
+0xabfe
+// -0.031974
+0xa818
+// -0.340619
+0xb573
+// 0.063184
+0x2c0b
+// -0.015995
+0xa418
+// 0.307606
+0x34ec
+// -0.412307
+0xb699
+// 0.301627
+0x34d3
+// 0.743873
+0x39f3
+// 0.434817
+0x36f5
+// 0.226730
+0x3341
+// 0.014035
+0x2330
+// 0.052193
+0x2aae
+// -0.292801
+0xb4af
+// -0.258117
+0xb421
+// -0.947644
+0xbb95
+// -0.469443
+0xb783
+// -0.568302
+0xb88c
+// 0.117736
+0x2f89
+// 0.397999
+0x365e
+// 0.231929
+0x336c
+// 0.067250
+0x2c4e
+// 0.574093
+0x3898
+// -0.552559
+0xb86c
+// -0.110506
+0xaf13
+// -0.224751
+0xb331
+// 0.130833
+0x3030
+// 0.407820
+0x3686
+// -0.217655
+0xb2f7
+// 0.998351
+0x3bfd
+// -0.452292
+0xb73d
+// -0.234823
+0xb384
+// 0.339689
+0x356f
+// -0.847454
+0xbac8
+// 0.307613
+0x34ec
+// 0.638138
+0x391b
+// 0.194503
+0x3239
+// 0.137753
+0x3068
+// 0.041555
+0x2952
+// -0.200309
+0xb269
+// 0.067240
+0x2c4e
+// 0.266551
+0x3444
+// 0.191145
+0x321e
+// -0.748417
+0xb9fd
+// 0.025845
+0x269e
+// -0.063263
+0xac0c
+// -0.168777
+0xb167
+// -0.637912
+0xb91a
+// -1.000000
+0xbc00
+// 0.803538
+0x3a6e
+// -0.575835
+0xb89b
+// -0.474694
+0xb798
+// 0.014948
+0x23a7
+// -0.497966
+0xb7f8
+// 0.260866
+0x342d
+// -0.506003
+0xb80c
+// -0.175764
+0xb1a0
+// 0.327155
+0x353c
+// -0.247852
+0xb3ee
+// -0.366027
+0xb5db
+// -0.197008
+0xb24e
+// 0.396945
+0x365a
+// 0.039154
+0x2903
+// -0.407075
+0xb683
+// 0.466051
+0x3775
+// -0.197269
+0xb250
+// 0.275843
+0x346a
+// -0.224310
+0xb32e
+// 0.375143
+0x3601
+// -0.238104
+0xb39f
+// -0.629466
+0xb909
+// 0.824723
+0x3a99
+// 0.273507
+0x3460
+// -0.245023
+0xb3d7
+// -0.146164
+0xb0ad
+// 0.139386
+0x3076
+// 0.110232
+0x2f0e
+// -0.187197
+0xb1fe
+// 0.116790
+0x2f79
+// -0.030857
+0xa7e6
+// -0.208415
+0xb2ab
+// 0.210914
+0x32c0
+// 0.221151
+0x3314
+// -0.773790
+0xba31
+// 0.095648
+0x2e1f
+// 0.381978
+0x361d
+// -0.612665
+0xb8e7
+// 0.800196
+0x3a67
+// 0.400149
+0x3667
+// -1.000000
+0xbc00
+// 0.165794
+0x314e
+// 0.249657
+0x33fd
+// -0.129716
+0xb027
+// 0.354592
+0x35ac
+// -0.142946
+0xb093
+// 0.035264
+0x2884
+// 0.028430
+0x2747
+// -0.161083
+0xb128
+// -0.562407
+0xb880
+// 0.027325
+0x26ff
+// 0.723744
+0x39ca
+// -0.391587
+0xb644
+// 0.142832
+0x3092
+// 0.174086
+0x3192
+// -0.032200
+0xa81f
+// 0.275782
+0x346a
+// -0.234296
+0xb37f
+// -0.546887
+0xb860
+// 0.203441
+0x3283
+// 0.035589
+0x288e
+// 0.069259
+0x2c6f
+// 0.113062
+0x2f3c
+// -0.059032
+0xab8e
+// -0.331141
+0xb54c
+// 0.178520
+0x31b6
+// 0.298414
+0x34c6
+// -0.894643
+0xbb28
+// 0.302223
+0x34d6
+// 0.038997
+0x28fe
+// -0.173760
+0xb18f
+// -0.423600
+0xb6c7
+// -0.081100
+0xad31
+// 0.117941
+0x2f8c
+// 0.011002
+0x21a2
+// -0.939013
+0xbb83
+// -0.282576
+0xb485
+// 0.048781
+0x2a3e
+// -0.104898
+0xaeb7
+// 0.026466
+0x26c6
+// -0.261609
+0xb430
+// -0.478048
+0xb7a6
+// -0.265203
+0xb43e
+// -0.831539
+0xbaa7
+// -0.258987
+0xb425
+// 0.376202
+0x3605
+// -0.076719
+0xace9
+// 0.394081
+0x364e
+// -0.099849
+0xae64
+// 0.301362
+0x34d2
+// -0.004842
+0x9cf5
+// -0.917805
+0xbb58
+// -0.779156
+0xba3c
+// -0.725626
+0xb9ce
+// 0.927055
+0x3b6b
+// 0.804365
+0x3a6f
+// -0.104232
+0xaeac
+// 0.336634
+0x3563
+// 0.327481
+0x353d
+// -0.273809
+0xb462
+// -0.408043
+0xb687
+// 0.715406
+0x39b9
+// 0.694633
+0x398f
+// 0.907130
+0x3b42
+// -1.000000
+0xbc00
+// 0.362012
+0x35cb
+// 0.774572
+0x3a32
+// -0.133265
+0xb044
+// -0.061495
+0xabdf
+// 0.018768
+0x24ce
+// 0.152651
+0x30e3
+// -0.641265
+0xb921
+// 0.111547
+0x2f24
+// 0.377087
+0x3609
+// -0.387359
+0xb633
+// 0.526610
+0x3836
+// -0.665181
+0xb952
+// -0.107705
+0xaee5
+// -0.124594
+0xaff9
+// -0.273530
+0xb460
+// 0.054993
+0x2b0a
+// 0.300051
+0x34cd
+// -0.518953
+0xb827
+// 0.691976
+0x3989
+// -0.336982
+0xb564
+// -0.946466
+0xbb92
+// -0.432746
+0xb6ed
+// 0.294007
+0x34b4
+// -0.004059
+0x9c28
+// 0.147536
+0x30b9
+// 0.093011
+0x2df4
+// 0.746285
+0x39f8
+// 0.098764
+0x2e52
+// -0.086874
+0xad8f
+// 0.057097
+0x2b4f
+// 0.146388
+0x30af
+// 0.970852
+0x3bc4
+// -0.274078
+0xb463
+// -0.396691
+0xb659
+// 0.181150
+0x31cc
+// 0.240399
+0x33b1
+// 0.166827
+0x3157
+// -0.389625
+0xb63c
+// 0.101164
+0x2e79
+// -0.407647
+0xb686
+// -0.544488
+0xb85b
+// 0.139806
+0x3079
+// -0.354689
+0xb5ad
+// -0.434539
+0xb6f4
+// -0.244360
+0xb3d2
+// 1.000000
+0x3c00
+// -0.546519
+0xb85f
+// 0.139748
+0x3079
+// 0.117424
+0x2f84
+// 0.015818
+0x240d
+// -0.191768
+0xb223
+// -0.571027
+0xb891
+// -0.058521
+0xab7e
+// -0.436666
+0xb6fd
+// 0.213040
+0x32d1
+// 0.286081
+0x3494
+// 0.702031
+0x399e
+// 0.088151
+0x2da4
+// -0.674740
+0xb966
+// 0.504452
+0x3809
+// 0.016996
+0x245a
+// -0.120310
+0xafb3
+// 0.051768
+0x2aa0
+// 0.247262
+0x33ea
+// -0.364655
+0xb5d6
+// -0.382067
+0xb61d
+// 0.210124
+0x32b9
+// 0.212860
+0x32d0
+// -0.723899
+0xb9cb
+// -0.355890
+0xb5b2
+// 0.601132
+0x38cf
+// 0.217007
+0x32f2
+// 0.182175
+0x31d4
+// -0.700635
+0xb99b
+// -0.287456
+0xb499
+// 0.132172
+0x303b
+// 0.228579
+0x3351
+// 0.469236
+0x3782
+// 0.221659
+0x3318
+// -0.317782
+0xb516
+// -0.502060
+0xb804
+// -0.432948
+0xb6ed
+// -0.305051
+0xb4e1
+// -0.037284
+0xa8c6
+// -0.249938
+0xb3ff
+// 0.541698
+0x3855
+// 0.103874
+0x2ea6
+// 0.167952
+0x3160
+// 0.267820
+0x3449
+// -0.059097
+0xab91
+// -1.000000
+0xbc00
+// 0.873805
+0x3afe
+// 0.781222
+0x3a40
+// -0.880689
+0xbb0c
+// 0.251100
+0x3405
+// -0.145013
+0xb0a4
+// 0.774139
+0x3a31
+// 0.771613
+0x3a2c
+// -0.596635
+0xb8c6
+// 0.931904
+0x3b75
+// 0.360370
+0x35c4
+// 0.042241
+0x2968
+// 0.635379
+0x3915
+// 0.555409
+0x3871
+// -0.952468
+0xbb9f
+// -0.066007
+0xac39
+// 0.538857
+0x3850
+// -0.059897
+0xabab
+// 0.274818
+0x3466
+// 0.098560
+0x2e4f
+// 0.367289
+0x35e0
+// 0.604737
+0x38d7
+// -0.727515
+0xb9d2
+// -0.116970
+0xaf7c
+// 0.046321
+0x29ee
+// -0.958298
+0xbbab
+// 0.066945
+0x2c49
+// 0.126781
+0x300f
+// 0.253796
+0x3410
+// -0.070810
+0xac88
+// 0.492450
+0x37e1
+// 0.613070
+0x38e8
+// 0.424960
+0x36cd
+// -0.177700
+0xb1b0
+// 0.450061
+0x3733
+// 0.595357
+0x38c3
+// 0.031099
+0x27f6
+// -0.142125
+0xb08c
+// -0.204333
+0xb28a
+// 0.435027
+0x36f6
+// -0.008088
+0xa024
+// 0.156618
+0x3103
+// 0.253373
+0x340e
+// 0.078863
+0x2d0c
+// -0.109404
+0xaf00
+// -0.262074
+0xb431
+// 0.546380
+0x385f
+// -0.023847
+0xa61b
+// -0.192319
+0xb227
+// -0.311793
+0xb4fd
+// -0.276235
+0xb46b
+// -0.101955
+0xae86
+// 0.129154
+0x3022
+// 0.039555
+0x2910
+// 0.042506
+0x2971
+// -0.183781
+0xb1e2
+// 0.145446
+0x30a7
+// 0.109754
+0x2f06
+// 0.175001
+0x319a
+// 0.441131
+0x370f
+// 0.422218
+0x36c1
+// 0.008744
+0x207a
+// -0.072238
+0xaca0
+// 0.229671
+0x3359
+// -0.300755
+0xb4d0
+// 0.480606
+0x37b1
+// 0.183880
+0x31e2
+// 0.151716
+0x30db
+// 0.253404
+0x340e
+// 1.000000
+0x3c00
+// -0.369562
+0xb5ea
+// 0.366708
+0x35de
+// -0.041501
+0xa950
+// 0.327807
+0x353f
+// 0.092951
+0x2df3
+// -0.067613
+0xac54
+// -0.075037
+0xaccd
+// 0.060593
+0x2bc2
+// -0.157985
+0xb10e
+// 0.293418
+0x34b2
+// 0.676291
+0x3969
+// -0.109445
+0xaf01
+// 0.210691
+0x32be
+// 0.215490
+0x32e5
+// 0.009763
+0x2100
+// -0.647099
+0xb92d
+// -0.279330
+0xb478
+// 0.039460
+0x290d
+// 0.361035
+0x35c7
+// -0.826359
+0xba9c
+// 0.513189
+0x381b
+// 0.191139
+0x321e
+// -0.576838
+0xb89d
+// -0.719656
+0xb9c2
+// -0.075365
+0xacd3
+// 0.073642
+0x2cb7
+// 0.310743
+0x34f9
+// 0.352314
+0x35a3
+// 0.056986
+0x2b4b
+// -0.295510
+0xb4ba
+// -0.360974
+0xb5c7
+// 0.320391
+0x3520
+// 0.585313
+0x38af
+// -0.243633
+0xb3cc
+// -0.192299
+0xb227
+// -0.306654
+0xb4e8
+// -0.303208
+0xb4da
+// -0.001932
+0x97e9
+// -0.343305
+0xb57e
+// 0.394448
+0x3650
+// -0.557984
+0xb877
+// 0.167409
+0x315b
+// -0.048132
+0xaa29
+// 0.734208
+0x39e0
+// 0.858300
+0x3ade
+// 0.363708
+0x35d2
+// 0.301563
+0x34d3
+// 0.282228
+0x3484
+// -0.266779
+0xb445
+// -0.521009
+0xb82b
+// -0.605516
+0xb8d8
+// -0.247677
+0xb3ed
+// -0.346259
+0xb58a
+// 0.328214
+0x3540
+// 0.431986
+0x36e9
+// 0.623485
+0x38fd
+// 0.350379
+0x359b
+// 0.120628
+0x2fb8
+// 0.139554
+0x3077
+// 0.096424
+0x2e2c
+// 0.214764
+0x32df
+// -0.153963
+0xb0ed
+// -0.075542
+0xacd6
+// -0.903995
+0xbb3b
+// -0.210037
+0xb2b9
+// 0.132811
+0x3040
+// 0.433027
+0x36ee
+// 0.208745
+0x32ae
+// -0.231060
+0xb365
+// 0.422809
+0x36c4
+// -0.101565
+0xae80
+// -0.330796
+0xb54b
+// -0.060171
+0xabb4
+// 0.160363
+0x3122
+// 0.526913
+0x3837
+// -0.341561
+0xb577
+// -0.190266
+0xb217
+// -0.462411
+0xb766
+// -0.126708
+0xb00e
+// -0.108786
+0xaef6
+// 0.681977
+0x3975
+// 0.253202
+0x340d
+// -0.030391
+0xa7c8
+// 0.585073
+0x38ae
+// -0.200905
+0xb26e
+// 0.090570
+0x2dcc
+// -0.454657
+0xb746
+// 0.365867
+0x35db
+// 0.066100
+0x2c3b
+// 0.411788
+0x3697
+// 0.651922
+0x3937
+// 0.059874
+0x2baa
+// -0.222485
+0xb31f
+// 0.295568
+0x34bb
+// 0.069124
+0x2c6d
+// 0.376548
+0x3606
+// -0.337867
+0xb568
+// 0.430753
+0x36e4
+// -0.478276
+0xb7a7
+// -0.933498
+0xbb78
+// 0.035915
+0x2899
+// 0.475087
+0x379a
+// 0.328649
+0x3542
+// -0.600047
+0xb8cd
+// 0.206851
+0x329f
+// 0.125199
+0x3002
+// 0.114631
+0x2f56
+// -0.300355
+0xb4ce
+// -0.370242
+0xb5ed
+// -0.429261
+0xb6de
+// 0.304690
+0x34e0
+// -0.433047
+0xb6ee
+// -0.012037
+0xa22a
+// -0.092113
+0xade5
+// 0.283156
+0x3488
+// -0.260500
+0xb42b
+// 0.327366
+0x353d
+// 0.137102
+0x3063
+// 0.219668
+0x3308
+// -0.366846
+0xb5df
+// 0.216195
+0x32eb
+// 0.011140
+0x21b4
+// -0.148836
+0xb0c3
+// 0.145427
+0x30a7
+// 0.535973
+0x384a
+// -0.389690
+0xb63c
+// 0.258489
+0x3423
+// 0.480411
+0x37b0
+// -0.311193
+0xb4fb
+// 0.678970
+0x396f
+// -0.140095
+0xb07c
+// 0.024210
+0x2633
+// 0.374107
+0x35fc
+// -0.572742
+0xb895
+// -0.277154
+0xb46f
+// -0.212907
+0xb2d0
+// -0.362469
+0xb5cd
+// 0.651390
+0x3936
+// 0.028236
+0x273a
+// 0.111263
+0x2f1f
+// 0.214210
+0x32db
+// -0.376438
+0xb606
+// 0.079392
+0x2d15
+// -0.321646
+0xb525
+// -0.025899
+0xa6a1
+// 0.516647
+0x3822
+// 0.783126
+0x3a44
+// -0.345660
+0xb588
+// -1.000000
+0xbc00
+// -0.342006
+0xb579
+// 0.396784
+0x3659
+// -0.147969
+0xb0bc
+// 0.160585
+0x3124
+// -0.004277
+0x9c61
+// 0.363442
+0x35d1
+// -0.160870
+0xb126
+// -0.175381
+0xb19d
+// 0.293042
+0x34b0
+// 0.201293
+0x3271
+// 0.116959
+0x2f7c
+// -0.357373
+0xb5b8
+// -0.458979
+0xb758
+// 0.230103
+0x335d
+// 0.433420
+0x36ef
+// -0.404705
+0xb67a
+// 0.382296
+0x361e
+// 0.197879
+0x3255
+// -0.005730
+0x9dde
+// 0.004611
+0x1cb9
+// -0.396926
+0xb65a
+// -0.870775
+0xbaf7
+// 0.015928
+0x2414
+// 0.336328
+0x3562
+// -0.145837
+0xb0ab
+// -0.275066
+0xb467
+// 0.316331
+0x3510
+// -0.114043
+0xaf4c
+// 0.250264
+0x3401
+// -0.014308
+0xa353
+// -0.245236
+0xb3d9
+// -0.112126
+0xaf2d
+// 0.333705
+0x3557
+// -0.516756
+0xb822
+// 0.253521
+0x340e
+// 0.470121
+0x3786
+// 0.013134
+0x22b9
+// 0.163851
+0x313e
+// -0.064594
+0xac22
+// 0.248312
+0x33f2
+// -0.027524
+0xa70c
+// -0.080304
+0xad24
+// -0.260454
+0xb42b
+// 0.682828
+0x3976
+// 0.353142
+0x35a6
+// 0.226054
+0x333c
+// -0.423129
+0xb6c5
+// 0.465746
+0x3774
+// -0.176313
+0xb1a4
+// 0.224969
+0x3333
+// -0.052060
+0xaaaa
+// 0.268849
+0x344d
+// 0.104973
+0x2eb8
+// 0.296439
+0x34be
+// 0.130680
+0x302f
+// 0.378700
+0x360f
+// -0.776370
+0xba36
+// 0.207658
+0x32a5
+// 0.458003
+0x3754
+// -0.302133
+0xb4d6
+// -0.073795
+0xacb9
+// 0.284983
+0x348f
+// 0.358751
+0x35bd
+// 0.269731
+0x3451
+// -0.007909
+0xa00d
+// -0.217580
+0xb2f6
+// 0.325352
+0x3535
+// 0.401746
+0x366e
+// -0.487000
+0xb7cb
+// -0.076518
+0xace6
+// 0.584239
+0x38ad
+// 0.060600
+0x2bc2
+// 0.803132
+0x3a6d
+// 0.473737
+0x3794
+// 0.433888
+0x36f1
+// 0.066064
+0x2c3a
+// 0.042352
+0x296c
+// -0.520399
+0xb82a
+// 0.026832
+0x26de
+// -0.379311
+0xb612
+// -0.307623
+0xb4ec
+// 0.252116
+0x3409
+// -0.267130
+0xb446
+// 0.609947
+0x38e1
+// -0.367275
+0xb5e0
+// -0.222245
+0xb31d
+// -0.302348
+0xb4d6
+// 0.001623
+0x16a6
+// -0.328076
+0xb540
+// 0.356057
+0x35b2
+// 1.000000
+0x3c00
+// 0.217096
+0x32f2
+// 0.397758
+0x365d
+// 0.472624
+0x3790
+// -0.186022
+0xb1f4
+// -0.021302
+0xa574
+// 0.435591
+0x36f8
+// -0.118227
+0xaf91
+// 0.558894
+0x3879
+// -0.253938
+0xb410
+// 0.134333
+0x304c
+// 0.301656
+0x34d4
+// -0.086254
+0xad85
+// -0.003753
+0x9baf
+// 0.263396
+0x3437
+// -0.143358
+0xb096
+// 0.475528
+0x379c
+// -0.277163
+0xb46f
+// 0.136011
+0x305a
+// -0.280820
+0xb47e
+// 0.318010
+0x3517
+// -0.373648
+0xb5fa
+// 0.327828
+0x353f
+// 0.212629
+0x32ce
+// -0.253905
+0xb410
+// -0.229663
+0xb359
+// -0.109998
+0xaf0a
+// -0.323507
+0xb52d
+// 0.007321
+0x1f7f
+// 0.456392
+0x374d
+// 0.459713
+0x375b
+// 0.194295
+0x3238
+// 0.121949
+0x2fce
+// 0.070539
+0x2c84
+// -0.479712
+0xb7ad
+// 0.207150
+0x32a1
+// 0.198836
+0x325d
+// -0.063688
+0xac13
+// -0.197698
+0xb254
+// -0.241514
+0xb3ba
+// 0.313382
+0x3504
+// -0.031169
+0xa7fb
+// 0.140728
+0x3081
+// 0.328745
+0x3543
+// -0.311779
+0xb4fd
+// 0.100742
+0x2e73
+// 0.547341
+0x3861
+// 0.192152
+0x3226
+// -0.145872
+0xb0ab
+// 0.085267
+0x2d75
+// -0.570568
+0xb891
+// 0.129775
+0x3027
+// -0.191853
+0xb224
+// 0.661152
+0x394a
+// 0.307437
+0x34eb
+// -0.279869
+0xb47a
+// -0.015448
+0xa3e9
+// 0.491026
+0x37db
+// -0.700387
+0xb99a
+// 0.026409
+0x26c3
+// 0.134019
+0x304a
+// 0.361249
+0x35c8
+// -0.073343
+0xacb2
+// 0.475874
+0x379d
+// -0.610237
+0xb8e2
+// 0.343365
+0x357e
+// -0.078781
+0xad0b
+// -0.353007
+0xb5a6
+// -0.731379
+0xb9da
+// 0.872625
+0x3afb
+// 0.290038
+0x34a4
+// 0.379320
+0x3612
+// -0.028277
+0xa73d
+// 0.251364
+0x3406
+// -0.357551
+0xb5b9
+// -0.398959
+0xb662
+// -0.302432
+0xb4d7
+// 0.254398
+0x3412
+// -0.554973
+0xb871
+// 0.630489
+0x390b
+// -0.582120
+0xb8a8
+// 0.096407
+0x2e2c
+// 0.190006
+0x3215
+// -0.460239
+0xb75d
+// 0.060251
+0x2bb6
+// -0.031066
+0xa7f4
+// 0.125847
+0x3007
+// 0.364419
+0x35d5
+// 0.234200
+0x337f
+// -0.243216
+0xb3c8
+// 0.183680
+0x31e1
+// 0.364578
+0x35d5
+// 0.412047
+0x3698
+// -0.678930
+0xb96e
+// 0.238704
+0x33a3
+// 0.285675
+0x3492
+// -0.281500
+0xb481
+// -0.280479
+0xb47d
+// -0.093452
+0xadfb
+// -0.059289
+0xab97
+// 0.005372
+0x1d80
+// 0.427640
+0x36d8
+// -0.153248
+0xb0e7
+// 0.914451
+0x3b51
+// 0.725779
+0x39ce
+// 0.072662
+0x2ca6
+// -0.043349
+0xa98c
+// -0.604085
+0xb8d5
+// -0.352141
+0xb5a2
+// 0.290430
+0x34a6
+// -0.086509
+0xad89
+// -0.186162
+0xb1f5
+// -0.506363
+0xb80d
+// -0.136191
+0xb05c
+// -0.941584
+0xbb88
+// 0.545687
+0x385e
+// -0.209679
+0xb2b6
+// 0.088924
+0x2db1
+// 0.389193
+0x363a
+// -0.025467
+0xa685
+// 0.078604
+0x2d08
+// -0.559726
+0xb87a
+// -0.357439
+0xb5b8
+// -0.452790
+0xb73f
+// 0.032559
+0x282b
+// 0.446365
+0x3724
+// -0.053326
+0xaad3
+// 0.421582
+0x36bf
+// 0.517107
+0x3823
+// 0.141442
+0x3087
+// 0.014066
+0x2334
+// -0.102069
+0xae88
+// 0.284411
+0x348d
+// -0.716840
+0xb9bc
+// 0.288284
+0x349d
+// 0.392349
+0x3647
+// 1.000000
+0x3c00
+// 0.051345
+0x2a92
+// -0.026227
+0xa6b7
+// 0.229319
+0x3357
+// 0.871235
+0x3af8
+// -0.165006
+0xb148
+// -0.402940
+0xb672
+// -0.085134
+0xad73
+// 0.100818
+0x2e74
+// 0.054804
+0x2b04
+// 0.064299
+0x2c1d
+// 0.002034
+0x182a
+// -0.114526
+0xaf54
+// 0.649821
+0x3933
+// -0.307681
+0xb4ec
+// -0.815440
+0xba86
+// 0.026631
+0x26d1
+// 0.309187
+0x34f2
+// -0.044513
+0xa9b3
+// 0.350547
+0x359c
+// 0.562205
+0x387f
+// 0.216432
+0x32ed
+// 0.355553
+0x35b0
+// -0.043382
+0xa98e
+// 0.662566
+0x394d
+// -0.214042
+0xb2d9
+// -0.302862
+0xb4d9
+// 0.029893
+0x27a7
+// -0.288021
+0xb49c
+// -0.300681
+0xb4d0
+// 0.213409
+0x32d4
+// 0.362912
+0x35ce
+// 0.627323
+0x3905
+// -0.469378
+0xb783
+// 0.130670
+0x302e
+// -0.066927
+0xac49
+// 0.119110
+0x2f9f
+// -0.073408
+0xacb3
+// 0.038950
+0x28fc
+// 0.524321
+0x3832
+// -0.296892
+0xb4c0
+// 0.340861
+0x3574
+// 0.086960
+0x2d91
+// 0.248543
+0x33f4
+// -0.261823
+0xb430
+// -0.056152
+0xab30
+// 0.710599
+0x39af
+// -0.015485
+0xa3ee
+// -0.158876
+0xb116
+// 0.172814
+0x3188
+// -0.438338
+0xb703
+// -0.514495
+0xb81e
+// 0.140827
+0x3082
+// 0.309731
+0x34f5
+// 0.259107
+0x3425
+// -0.170412
+0xb174
+// 0.430966
+0x36e5
+// 0.000752
+0x1229
+// -0.461751
+0xb763
+// 0.216364
+0x32ec
+// 0.336984
+0x3564
+// 0.072811
+0x2ca9
+// 0.131322
+0x3034
+// -0.389179
+0xb63a
+// 0.055886
+0x2b27
+// 0.019973
+0x251d
+// -0.291929
+0xb4ac
+// 0.461774
+0x3763
+// -0.366694
+0xb5de
+// 0.853428
+0x3ad4
+// 0.402071
+0x366f
+// 0.215019
+0x32e1
+// 0.626098
+0x3902
+// -0.335711
+0xb55f
+// -0.292805
+0xb4af
+// 0.405568
+0x367d
+// -0.463203
+0xb769
+// 0.068028
+0x2c5b
+// 0.441164
+0x370f
+// 0.446999
+0x3727
+// 0.189524
+0x3211
+// 0.060676
+0x2bc4
+// -0.334002
+0xb558
+// -0.020481
+0xa53e
+// -0.060854
+0xabca
+// -0.146243
+0xb0ae
+// 0.156041
+0x30fe
+// -0.000353
+0x8dc8
+// -0.089635
+0xadbd
+// -0.226443
+0xb33f
+// 0.229926
+0x335c
+// -0.276138
+0xb46b
+// 0.034405
+0x2867
+// -0.198773
+0xb25c
+// -0.085473
+0xad78
+// -0.442423
+0xb714
+// 0.023051
+0x25e7
+// 0.150883
+0x30d4
+// -0.167740
+0xb15e
+// -0.469050
+0xb781
+// -0.281421
+0xb481
+// -0.216602
+0xb2ee
+// 0.060785
+0x2bc8
+// 0.121819
+0x2fcc
+// -0.423769
+0xb6c8
+// 0.303077
+0x34d9
+// -0.008283
+0xa03e
+// -0.030060
+0xa7b2
+// -0.129136
+0xb022
+// -0.056972
+0xab4b
+// -0.361883
+0xb5ca
+// -0.338071
+0xb569
+// -0.491063
+0xb7db
+// -0.169797
+0xb16f
+// 0.191771
+0x3223
+// 0.225412
+0x3337
+// 0.126415
+0x300c
+// 0.068770
+0x2c67
+// -0.552541
+0xb86c
+// -0.098099
+0xae47
+// 0.278780
+0x3476
+// 0.137695
+0x3068
+// -0.267408
+0xb447
+// -0.807162
+0xba75
+// 0.253887
+0x3410
+// -0.033359
+0xa845
+// -0.612852
+0xb8e7
+// -0.472936
+0xb791
+// -0.484296
+0xb7c0
+// 0.186869
+0x31fb
+// -0.045942
+0xa9e1
+// 0.464814
+0x3770
+// -0.065501
+0xac31
+// -0.213201
+0xb2d3
+// -0.600692
+0xb8ce
+// 0.236667
+0x3393
+// -0.041163
+0xa945
+// -0.171107
+0xb17a
+// 0.365611
+0x35da
+// -0.059680
+0xaba4
+// -0.192068
+0xb225
+// -0.580779
+0xb8a5
+// -0.107512
+0xaee1
+// 0.280290
+0x347c
+// 0.538645
+0x384f
+// 0.502761
+0x3806
+// -0.018880
+0xa4d5
+// 0.032082
+0x281b
+// -0.571638
+0xb893
+// -0.420631
+0xb6bb
+// -1.000000
+0xbc00
+// 0.682049
+0x3975
+// 0.309425
+0x34f3
+// 0.343391
+0x357f
+// -0.674421
+0xb965
+// 0.044183
+0x29a8
+// 0.497012
+0x37f4
+// 0.180374
+0x31c6
+// -0.184308
+0xb1e6
+// 0.087772
+0x2d9e
+// 0.662042
+0x394c
+// -0.594106
+0xb8c1
+// 0.038723
+0x28f5
+// 0.156576
+0x3103
+// -0.117959
+0xaf8d
+// 0.759957
+0x3a14
+// 0.415287
+0x36a5
+// -0.118455
+0xaf95
+// 0.277361
+0x3470
+// -0.532764
+0xb843
+// -0.476950
+0xb7a2
+// -0.219819
+0xb309
+// -0.022077
+0xa5a7
+// -0.341172
+0xb575
+// -0.283687
+0xb48a
+// -0.303194
+0xb4da
+// -0.218976
+0xb302
+// 0.640445
+0x3920
+// -0.257548
+0xb41f
+// -0.169763
+0xb16f
+// -0.076476
+0xace5
+// -0.419939
+0xb6b8
+// -0.401048
+0xb66b
+// -0.070699
+0xac86
+// -0.048729
+0xaa3d
+// -0.065734
+0xac35
+// 0.270913
+0x3456
+// 0.206163
+0x3299
+// -0.574077
+0xb898
+// 0.272631
+0x345d
+// -0.077546
+0xacf7
+// 0.266280
+0x3443
+// 0.399689
+0x3665
+// -0.306145
+0xb4e6
+// -0.001284
+0x9543
+// 0.042046
+0x2962
+// 0.175737
+0x31a0
+// -0.344375
+0xb583
+// -0.320932
+0xb523
+// -0.126465
+0xb00c
+// -0.651202
+0xb936
+// -0.049570
+0xaa58
+// 0.588388
+0x38b5
+// 0.511373
+0x3817
+// 0.174503
+0x3196
+// 0.040461
+0x292e
+// -0.315088
+0xb50b
+// -0.274745
+0xb465
+// 0.255958
+0x3418
+// 0.358506
+0x35bc
+// 0.119628
+0x2fa8
+// 0.562871
+0x3881
+// 0.040357
+0x292a
+// -0.217006
+0xb2f2
+// 0.459764
+0x375b
+// -0.093046
+0xadf4
+// 0.677471
+0x396b
+// -0.673852
+0xb964
+// -0.047848
+0xaa20
+// -0.119290
+0xafa2
+// -0.543866
+0xb85a
+// -0.749861
+0xba00
+// -0.344427
+0xb583
+// 0.805833
+0x3a72
+// -0.348261
+0xb592
+// -0.038810
+0xa8f8
+// 0.279374
+0x3478
+// 0.163261
+0x3139
+// -1.000000
+0xbc00
+// 0.163105
+0x3138
+// 0.282525
+0x3485
+// -0.350751
+0xb59d
+// 0.099808
+0x2e63
+// -0.232884
+0xb374
+// 0.139829
+0x3079
+// -0.040913
+0xa93d
+// -0.038966
+0xa8fd
+// 0.218776
+0x3300
+// -0.381105
+0xb619
+// 0.436589
+0x36fc
+// 0.716014
+0x39ba
+// -0.438747
+0xb705
+// -0.341588
+0xb577
+// -0.340675
+0xb573
+// 0.480536
+0x37b0
+// 0.404428
+0x3679
+// -0.156656
+0xb103
+// -0.315078
+0xb50b
+// -0.745014
+0xb9f6
+// -0.399765
+0xb665
+// 0.267140
+0x3446
+// 0.026492
+0x26c8
+// 0.065449
+0x2c30
+// -0.369081
+0xb5e8
+// 0.580440
+0x38a5
+// 0.369300
+0x35e9
+// -0.251231
+0xb405
+// 0.054206
+0x2af0
+// -0.341217
+0xb576
+// 0.763607
+0x3a1c
+// -0.253943
+0xb410
+// 0.086099
+0x2d83
+// 0.114210
+0x2f4f
+// 0.398668
+0x3661
+// 0.540076
+0x3852
+// 0.082490
+0x2d48
+// -0.323754
+0xb52e
+// 0.180008
+0x31c3
+// -0.396625
+0xb659
+// 0.107311
+0x2ede
+// -0.165800
+0xb14e
+// 0.215905
+0x32e9
+// 0.133244
+0x3044
+// -0.307297
+0xb4eb
+// -0.175487
+0xb19e
+// -0.087457
+0xad99
+// 0.012222
+0x2242
+// 0.087563
+0x2d9b
+// 0.206220
+0x3299
+// -0.397078
+0xb65a
+// -0.759897
+0xba14
+// -0.110946
+0xaf1a
+// -0.301806
+0xb4d4
+// 0.004657
+0x1cc5
+// 0.347329
+0x358f
+// 0.150859
+0x30d4
+// -0.290238
+0xb4a5
+// -0.415562
+0xb6a6
+// -0.149825
+0xb0cb
+// -0.204740
+0xb28d
+// -0.033727
+0xa851
+// -0.526960
+0xb837
+// -0.329077
+0xb544
+// 0.642351
+0x3924
+// 0.273575
+0x3461
+// -0.185293
+0xb1ee
+// 0.016172
+0x2424
+// 0.821744
+0x3a93
+// 0.300050
+0x34cd
+// 0.209186
+0x32b2
+// -0.167959
+0xb160
+// -0.254402
+0xb412
+// -0.061365
+0xabdb
+// -0.200917
+0xb26e
+// 0.063472
+0x2c10
+// -0.209166
+0xb2b1
+// -0.063999
+0xac19
+// -0.418799
+0xb6b3
+// 0.425061
+0x36cd
+// 0.167798
+0x315f
+// -0.088654
+0xadad
+// -0.053887
+0xaae6
+// -0.195932
+0xb245
+// -0.539793
+0xb851
+// 0.783716
+0x3a45
+// -0.052738
+0xaac0
+// 0.317995
+0x3517
+// 0.127661
+0x3016
+// 0.191753
+0x3223
+// -0.443718
+0xb719
+// -0.527521
+0xb838
+// 0.375813
+0x3603
+// 0.900782
+0x3b35
+// 0.302280
+0x34d6
+// -0.304942
+0xb4e1
+// 0.696432
+0x3992
+// -0.686535
+0xb97e
+// -0.060050
+0xabb0
+// 0.651102
+0x3935
+// 0.360854
+0x35c6
+// -0.130031
+0xb029
+// -0.390146
+0xb63e
+// 0.123975
+0x2fef
+// -0.227966
+0xb34b
+// 0.254082
+0x3411
+// -0.281347
+0xb480
+// -0.359782
+0xb5c2
+// 0.419559
+0x36b7
+// 0.477098
+0x37a2
+// 0.083876
+0x2d5e
+// -0.038461
+0xa8ec
+// 0.171143
+0x317a
+// -0.597967
+0xb8c9
+// -0.651357
+0xb936
+// -0.248562
+0xb3f4
+// 0.252066
+0x3408
+// 0.213716
+0x32d7
+// 0.177900
+0x31b1
+// -0.074549
+0xacc5
+// -0.066524
+0xac42
+// -0.277417
+0xb470
+// 0.352943
+0x35a6
+// -0.921633
+0xbb60
+// -0.813962
+0xba83
+// 0.855608
+0x3ad8
+// -0.388810
+0xb639
+// 0.398585
+0x3661
+// -0.635811
+0xb916
+// 0.166136
+0x3151
+// 0.147857
+0x30bb
+// -0.453747
+0xb743
+// 0.513874
+0x381c
+// 0.319858
+0x351e
+// 0.388778
+0x3638
+// -0.040341
+0xa92a
+// 0.444838
+0x371e
+// -0.745845
+0xb9f7
+// -0.813163
+0xba81
+// -0.601298
+0xb8cf
+// -0.307453
+0xb4eb
+// -0.096412
+0xae2c
+// 0.600976
+0x38cf
+// 0.055759
+0x2b23
+// -0.152885
+0xb0e4
+// -0.509899
+0xb814
+// 0.061818
+0x2bea
+// -0.295742
+0xb4bb
+// -0.410206
+0xb690
+// -0.194223
+0xb237
+// -0.223547
+0xb327
+// 0.190908
+0x321c
+// 0.164244
+0x3141
+// -0.597886
+0xb8c8
+// 0.439701
+0x3709
+// -0.178064
+0xb1b3
+// -0.040617
+0xa933
+// 0.083966
+0x2d60
+// 0.414092
+0x36a0
+// 0.165313
+0x314a
+// 0.382562
+0x361f
+// 1.000000
+0x3c00
+// -0.655441
+0xb93e
+// -0.028283
+0xa73e
+// -0.028495
+0xa74b
+// -0.508026
+0xb810
+// -0.550409
+0xb867
+// -0.078662
+0xad09
+// 0.212695
+0x32ce
+// -0.031333
+0xa803
+// -0.378807
+0xb610
+// -0.042836
+0xa97c
+// -0.559647
+0xb87a
+// -0.950134
+0xbb9a
+// 0.522002
+0x382d
+// 0.359119
+0x35bf
+// 0.156371
+0x3101
+// -0.203619
+0xb284
+// 0.145846
+0x30ab
+// 0.344419
+0x3583
+// -0.134732
+0xb050
+// -0.501675
+0xb803
+// -0.049556
+0xaa58
+// -0.016165
+0xa423
+// 0.641614
+0x3922
+// 0.172817
+0x3188
+// 0.072961
+0x2cab
+// -0.118574
+0xaf97
+// 0.380722
+0x3617
+// 0.328285
+0x3541
+// -0.786360
+0xba4a
+// 0.376109
+0x3605
+// -0.589016
+0xb8b6
+// -0.148370
+0xb0bf
+// 0.067618
+0x2c54
+// 0.339238
+0x356e
+// 0.179222
+0x31bc
+// -0.560426
+0xb87c
+// 0.163126
+0x3138
+// -0.033047
+0xa83b
+// -0.441168
+0xb70f
+// 0.185722
+0x31f1
+// 0.015633
+0x2401
+// 0.674690
+0x3966
+// 0.190848
+0x321b
+// -0.184003
+0xb1e3
+// -0.491205
+0xb7dc
+// -0.076503
+0xace5
+// 0.032477
+0x2828
+// -0.210919
+0xb2c0
+// -0.416229
+0xb6a9
+// 0.340791
+0x3574
+// -0.232786
+0xb373
+// -0.224361
+0xb32e
+// 0.288317
+0x349d
+// -0.276781
+0xb46e
+// 0.288454
+0x349e
+// 0.060562
+0x2bc0
+// 0.107157
+0x2edc
+// 0.331057
+0x354c
+// 0.438145
+0x3703
+// 0.068361
+0x2c60
+// -0.095264
+0xae19
+// -0.575149
+0xb89a
+// 0.499671
+0x37ff
+// -0.164460
+0xb143
+// -0.142506
+0xb08f
+// 0.563417
+0x3882
+// -0.455175
+0xb748
+// 0.198815
+0x325d
+// 0.030289
+0x27c1
+// -0.151821
+0xb0dc
+// 0.551320
+0x3869
+// -0.133381
+0xb045
+// 0.200642
+0x326c
+// 0.925497
+0x3b67
+// 0.065494
+0x2c31
+// -0.296497
+0xb4be
+// 0.232516
+0x3371
+// -0.161233
+0xb129
+// -0.393754
+0xb64d
+// 0.484048
+0x37bf
+// 1.000000
+0x3c00
+// -0.000727
+0x91f5
+// 0.443982
+0x371b
+// 0.290834
+0x34a7
+// -0.081206
+0xad32
+// 0.165132
+0x3149
+// 0.465146
+0x3771
+// -0.459865
+0xb75c
+// -0.242754
+0xb3c5
+// -0.131584
+0xb036
+// 0.196470
+0x3249
+// 0.060308
+0x2bb8
+// -0.379311
+0xb612
+// -0.705722
+0xb9a5
+// 0.466459
+0x3777
+// 0.535384
+0x3848
+// -0.333989
+0xb558
+// -0.210422
+0xb2bc
+// -0.441966
+0xb712
+// -0.118039
+0xaf8e
+// 0.375218
+0x3601
+// -0.115542
+0xaf65
+// 0.155050
+0x30f6
+// 0.324961
+0x3533
+// 0.097879
+0x2e44
+// 0.179038
+0x31bb
+// 0.288380
+0x349d
+// -0.722400
+0xb9c7
+// -0.536529
+0xb84b
+// -0.119789
+0xafab
+// -0.796151
+0xba5f
+// 0.161283
+0x3129
+// -0.093058
+0xadf5
+// -0.148516
+0xb0c1
+// -0.006687
+0x9ed9
+// -0.444666
+0xb71d
+// 0.382776
+0x3620
+// 0.359396
+0x35c0
+// 0.188801
+0x320b
+// -0.650906
+0xb935
+// -0.275395
+0xb468
+// -0.020773
+0xa551
+// 0.007167
+0x1f57
+// -0.122142
+0xafd1
+// -0.031212
+0xa7fe
+// -0.026729
+0xa6d8
+// 0.336613
+0x3563
+// -0.063400
+0xac0f
+// -0.276039
+0xb46b
+// 0.388067
+0x3636
+// 0.099618
+0x2e60
+// 0.167167
+0x3159
+// -0.234742
+0xb383
+// 0.371670
+0x35f2
+// -0.011756
+0xa205
+// 0.504261
+0x3809
+// 0.165475
+0x314c
+// -0.071834
+0xac99
+// -0.063935
+0xac18
+// 0.390731
+0x3640
+// -0.563158
+0xb881
+// -0.194531
+0xb23a
+// -0.249843
+0xb3ff
+// 0.390953
+0x3641
+// -0.296676
+0xb4bf
+// 0.513609
+0x381c
+// -0.005989
+0x9e22
+// 0.156305
+0x3100
+// 0.077812
+0x2cfb
+// 0.271080
+0x3456
+// -0.188826
+0xb20b
+// -0.356051
+0xb5b2
+// 0.266064
+0x3442
+// -0.313748
+0xb505
+// 0.042368
+0x296c
+// -0.048899
+0xaa42
+// 0.673295
+0x3963
+// -0.075587
+0xacd6
+// 0.173041
+0x318a
+// 0.086180
+0x2d84
+// 0.185468
+0x31ef
+// -0.242138
+0xb3c0
+// -0.114156
+0xaf4e
+// -0.430672
+0xb6e4
+// 0.225180
+0x3335
+// 0.112887
+0x2f3a
+// 0.072334
+0x2ca1
+// 0.108786
+0x2ef6
+// -0.276292
+0xb46c
+// 0.332255
+0x3551
+// -0.093103
+0xadf5
+// 0.757519
+0x3a0f
+// -0.369602
+0xb5ea
+// -0.339763
+0xb570
+// -0.402689
+0xb671
+// -0.310528
+0xb4f8
+// 0.437796
+0x3701
+// 0.170846
+0x3178
+// -0.324273
+0xb530
+// 0.285782
+0x3493
+// -0.218346
+0xb2fd
+// -0.380144
+0xb615
+// -0.279126
+0xb477
+// 0.514960
+0x381f
+// 0.430402
+0x36e3
+// -0.030430
+0xa7ca
+// -0.293117
+0xb4b1
+// -0.080212
+0xad22
+// -0.208624
+0xb2ad
+// -0.354876
+0xb5ae
+// 0.083351
+0x2d56
+// 0.646804
+0x392d
+// 0.175545
+0x319e
+// 0.402480
+0x3671
+// -0.417860
+0xb6b0
+// -0.458646
+0xb757
+// -0.071153
+0xac8e
+// 0.055520
+0x2b1b
+// -0.174467
+0xb195
+// 0.009364
+0x20cb
+// 0.551873
+0x386a
+// 0.126976
+0x3010
+// -0.156159
+0xb0ff
+// -0.733413
+0xb9de
+// -0.202769
+0xb27d
+// 0.348543
+0x3594
+// -0.205073
+0xb290
+// -0.171708
+0xb17f
+// -0.430175
+0xb6e2
+// -0.139632
+0xb078
+// 0.263313
+0x3437
+// 0.300598
+0x34cf
+// -0.286490
+0xb495
+// 0.711148
+0x39b0
+// -0.338287
+0xb56a
+// 0.264680
+0x343c
+// 0.152692
+0x30e3
+// -0.247793
+0xb3ee
+// 0.059469
+0x2b9d
+// 0.676405
+0x3969
+// 0.031917
+0x2816
+// 0.297982
+0x34c5
+// -0.097169
+0xae38
+// 0.119921
+0x2fad
+// 0.453049
+0x3740
+// 0.092550
+0x2dec
+// 0.187883
+0x3203
+// 0.015854
+0x240f
+// -0.323660
+0xb52e
+// -1.000000
+0xbc00
+// -0.457877
+0xb753
+// 0.621010
+0x38f8
+// -0.508985
+0xb812
+// -0.599918
+0xb8cd
+// 0.174135
+0x3193
+// 0.527959
+0x3839
+// -0.262738
+0xb434
+// 0.048182
+0x2a2b
+// 0.064075
+0x2c1a
+// -0.650597
+0xb934
+// 0.346057
+0x3589
+// -0.024302
+0xa639
+// 0.123093
+0x2fe1
+// -0.110527
+0xaf13
+// -0.343738
+0xb580
+// -0.123442
+0xafe6
+// 0.340330
+0x3572
+// -0.833414
+0xbaab
+// -0.218838
+0xb301
+// -0.860819
+0xbae3
+// 0.653294
+0x393a
+// 0.132818
+0x3040
+// 0.318895
+0x351a
+// 0.609156
+0x38e0
+// 0.025634
+0x2690
+// -0.207081
+0xb2a0
+// -0.088221
+0xada5
+// -0.949073
+0xbb98
+// 0.124492
+0x2ff8
+// -0.356321
+0xb5b3
+// 0.235305
+0x3388
+// 0.031165
+0x27fa
+// 0.001034
+0x143c
+// -0.552597
+0xb86c
+// -0.271868
+0xb45a
+// -0.082738
+0xad4c
+// 0.002919
+0x19fb
+// 0.090549
+0x2dcc
+// 0.038741
+0x28f5
+// -0.082718
+0xad4b
+// 0.125802
+0x3007
+// 0.058246
+0x2b75
+// -0.076814
+0xaceb
+// -0.385207
+0xb62a
+// -0.353186
+0xb5a7
+// 0.231042
+0x3365
+// 0.327199
+0x353c
+// 0.250245
+0x3401
+// -0.406459
+0xb681
+// -0.394575
+0xb650
+// -0.179059
+0xb1bb
+// -0.386926
+0xb631
+// 0.192725
+0x322b
+// -0.209395
+0xb2b3
+// -0.284934
+0xb48f
+// -0.019426
+0xa4f9
+// 0.528506
+0x383a
+// -0.016821
+0xa44e
+// -0.386159
+0xb62e
+// -0.416372
+0xb6a9
+// 0.191498
+0x3221
+// -0.003581
+0x9b55
+// -0.015997
+0xa418
+// 0.159280
+0x3119
+// -0.172088
+0xb182
+// -0.334111
+0xb559
+// -0.344424
+0xb583
+// 0.196428
+0x3249
+// 0.176503
+0x31a6
+// -0.120274
+0xafb3
+// -0.481677
+0xb7b5
+// -0.338171
+0xb569
+// -0.180020
+0xb1c3
+// 0.310332
+0x34f7
+// -0.376339
+0xb605
+// 0.372535
+0x35f6
+// -0.333448
+0xb556
+// -0.066451
+0xac41
+// 0.216264
+0x32ec
+// 0.207436
+0x32a3
+// 0.262229
+0x3432
+// 0.757282
+0x3a0f
+// 0.042727
+0x2978
+// 0.207505
+0x32a4
+// 0.054118
+0x2aed
+// -0.103343
+0xae9d
+// 0.534895
+0x3847
+// -0.506176
+0xb80d
+// -0.280741
+0xb47e
+// -0.183877
+0xb1e2
+// 0.239725
+0x33ac
+// 0.026518
+0x26ca
+// -0.253960
+0xb410
+// 0.684712
+0x397a
+// -0.335383
+0xb55e
+// 0.217885
+0x32f9
+// 0.132956
+0x3041
+// 0.153836
+0x30ec
+// -0.126599
+0xb00d
+// -0.531929
+0xb841
+// 0.022499
+0x25c2
+// 0.900598
+0x3b34
+// 0.104923
+0x2eb7
+// 0.014976
+0x23ab
+// -0.124033
+0xaff0
+// 0.182424
+0x31d6
+// -0.103587
+0xaea1
+// 0.404727
+0x367a
+// -0.065809
+0xac36
+// 0.228775
+0x3352
+// 0.396786
+0x3659
+// -0.520981
+0xb82b
+// 0.265085
+0x343e
+// -0.160768
+0xb125
+// -0.020340
+0xa535
+// -0.548907
+0xb864
+// 0.045360
+0x29ce
+// -0.923030
+0xbb62
+// -0.108117
+0xaeeb
+// 0.136758
+0x3060
+// 0.043199
+0x2988
+// 0.109982
+0x2f0a
+// -0.185492
+0xb1f0
+// 0.113906
+0x2f4a
+// -0.682905
+0xb977
+// 0.083840
+0x2d5e
+// 0.042712
+0x2978
+// 0.010465
+0x215c
+// -0.119377
+0xafa4
+// -0.302131
+0xb4d6
+// -0.393869
+0xb64d
+// -0.191496
+0xb221
+// 0.158632
+0x3114
+// 0.304726
+0x34e0
+// 0.314912
+0x350a
+// 0.832086
+0x3aa8
+// -0.149019
+0xb0c5
+// 0.176295
+0x31a4
+// -0.408692
+0xb68a
+// 0.184545
+0x31e8
+// 0.119902
+0x2fac
+// 0.109451
+0x2f01
+// -0.228402
+0xb34f
+// -0.106980
+0xaed9
+// 0.100427
+0x2e6d
+// 0.150754
+0x30d3
+// 0.565258
+0x3886
+// 0.142910
+0x3093
+// -0.898683
+0xbb31
+// -0.281034
+0xb47f
+// 0.096914
+0x2e34
+// 0.080098
+0x2d20
+// 0.144426
+0x309f
+// -0.157465
+0xb10a
+// 0.058181
+0x2b72
+// -0.335714
+0xb55f
+// 0.787347
+0x3a4c
+// -0.305486
+0xb4e3
+// -0.019797
+0xa511
+// 0.468405
+0x377f
+// -0.090463
+0xadca
+// 0.680456
+0x3972
+// -0.126661
+0xb00e
+// -0.260264
+0xb42a
+// 0.384366
+0x3626
+// -0.056533
+0xab3c
+// 0.576819
+0x389d
+// 0.004508
+0x1c9e
+// -0.513451
+0xb81c
+// 0.153895
+0x30ed
+// 0.426047
+0x36d1
+// -0.582727
+0xb8a9
+// 0.124293
+0x2ff4
+// -0.051646
+0xaa9c
+// 0.654877
+0x393d
+// -0.588119
+0xb8b4
+// -0.441728
+0xb711
+// -0.063516
+0xac11
+// -0.110671
+0xaf15
+// -0.400367
+0xb668
+// -0.568817
+0xb88d
+// 0.082138
+0x2d42
+// -0.100127
+0xae68
+// 0.074950
+0x2ccc
+// -0.787392
+0xba4d
+// -0.283661
+0xb48a
+// -0.491055
+0xb7db
+// 0.228399
+0x334f
+// -0.504451
+0xb809
+// -0.182388
+0xb1d6
+// 0.540486
+0x3853
+// 0.178912
+0x31ba
+// 0.382502
+0x361f
+// 0.407230
+0x3684
+// -0.230031
+0xb35c
+// -0.194024
+0xb235
+// -0.203163
+0xb280
+// -0.153908
+0xb0ed
+// 0.402527
+0x3671
+// -0.345751
+0xb588
+// 0.468881
+0x3781
+// -0.184910
+0xb1eb
+// 0.209257
+0x32b2
+// -0.187217
+0xb1fe
+// 0.005176
+0x1d4d
+// -0.286529
+0xb496
+// 0.480364
+0x37b0
+// 0.101296
+0x2e7c
+// 0.323806
+0x352e
+// 0.042379
+0x296d
+// -0.477189
+0xb7a3
+// -0.000538
+0x9067
+// -0.353257
+0xb5a7
+// 0.162228
+0x3131
+// -0.536536
+0xb84b
+// -0.027364
+0xa701
+// -0.986431
+0xbbe4
+// 0.240099
+0x33af
+// 0.562682
+0x3880
+// 0.770176
+0x3a29
+// -0.346565
+0xb58c
+// -0.033664
+0xa84f
+// 0.495406
+0x37ed
+// -0.397836
+0xb65e
+// -0.469449
+0xb783
+// 0.346418
+0x358b
+// 0.115370
+0x2f62
+// 0.725608
+0x39ce
+// -0.019778
+0xa510
+// -0.118965
+0xaf9d
+// 0.581374
+0x38a7
+// 0.082696
+0x2d4b
+// 0.555073
+0x3871
+// -0.398481
+0xb660
+// -0.466594
+0xb777
+// -0.320714
+0xb522
+// 0.160109
+0x3120
+// -0.361602
+0xb5c9
+// -0.069472
+0xac72
+// -0.392117
+0xb646
+// 0.003919
+0x1c03
+// 0.000176
+0x9c4
+// -0.142336
+0xb08e
+// 0.190922
+0x321c
+// 0.219067
+0x3303
+// 0.003362
+0x1ae3
+// 0.015475
+0x23ec
+// 0.287328
+0x3499
+// 0.444460
+0x371d
+// -0.140586
+0xb080
+// -0.045015
+0xa9c3
+// -0.260226
+0xb42a
+// 0.011142
+0x21b4
+// 0.579629
+0x38a3
+// -0.398450
+0xb660
+// -0.227703
+0xb349
+// 0.416046
+0x36a8
+// -0.429080
+0xb6de
+// -0.387403
+0xb633
+// -0.298789
+0xb4c8
+// 0.666541
+0x3955
+// -0.675249
+0xb967
+// 0.382989
+0x3621
+// 0.364360
+0x35d4
+// -0.148915
+0xb0c4
+// 0.015570
+0x23f9
+// -0.131099
+0xb032
+// 0.645238
+0x3929
+// -0.036848
+0xa8b7
+// 0.282121
+0x3484
+// 0.474254
+0x3797
+// 0.410319
+0x3691
+// -0.189560
+0xb211
+// -1.000000
+0xbc00
+// -0.157016
+0xb106
+// -0.386214
+0xb62e
+// -0.099336
+0xae5c
+// -0.626047
+0xb902
+// -0.524811
+0xb833
+// 0.294250
+0x34b5
+// -0.186759
+0xb1fa
+// -0.109247
+0xaefe
+// 0.510436
+0x3815
+// 0.156737
+0x3104
+// 0.370057
+0x35ec
+// -0.565199
+0xb886
+// 0.197054
+0x324e
+// -0.636061
+0xb917
+// -0.746899
+0xb9fa
+// -0.705771
+0xb9a5
+// 0.280163
+0x347c
+// -0.054344
+0xaaf5
+// 0.275744
+0x3469
+// -0.212658
+0xb2ce
+// -0.383330
+0xb622
+// -0.183647
+0xb1e0
+// -0.529383
+0xb83c
+// -0.493296
+0xb7e5
+// 0.421601
+0x36bf
+// 0.060673
+0x2bc4
+// 0.783146
+0x3a44
+// -0.176138
+0xb1a3
+// 0.649465
+0x3932
+// 0.041574
+0x2952
+// 0.450804
+0x3736
+// -0.122280
+0xafd3
+// -0.674976
+0xb966
+// 0.572889
+0x3895
+// -0.138944
+0xb072
+// 0.589925
+0x38b8
+// -0.400501
+0xb668
+// 0.190452
+0x3218
+// -0.196281
+0xb248
+// -0.253764
+0xb40f
+// -0.539053
+0xb850
+// -0.127299
+0xb013
+// -0.609056
+0xb8df
+// -0.018328
+0xa4b1
+// -0.248725
+0xb3f6
+// 0.213771
+0x32d7
+// 0.164369
+0x3143
+// 0.039994
+0x291f
+// -0.333915
+0xb558
+// -0.274166
+0xb463
+// -0.072908
+0xacab
+// 0.223371
+0x3326
+// 0.317006
+0x3512
+// 0.218296
+0x32fc
+// -0.187424
+0xb1ff
+// -0.274177
+0xb463
+// -0.200072
+0xb267
+// 0.207097
+0x32a1
+// 0.328008
+0x3540
+// 0.013505
+0x22ea
+// -0.482749
+0xb7b9
+// 0.165585
+0x314c
+// 0.285135
+0x3490
+// -0.086901
+0xad90
+// 0.302660
+0x34d8
+// 0.151561
+0x30da
+// 0.797157
+0x3a61
+// -0.269916
+0xb452
+// 0.349715
+0x3598
+// 0.292487
+0x34ae
+// -0.441737
+0xb711
+// -0.338840
+0xb56c
+// -0.279679
+0xb47a
+// 0.427291
+0x36d6
+// -0.003847
+0x9be1
+// 0.407695
+0x3686
+// 0.188098
+0x3205
+// 0.246004
+0x33df
+// 0.124040
+0x2ff0
+// 0.020295
+0x2532
+// -0.261672
+0xb430
+// -0.550805
+0xb868
+// 0.044403
+0x29af
+// -0.107380
+0xaedf
+// 0.102682
+0x2e92
+// 0.122908
+0x2fde
+// 0.366050
+0x35db
+// -0.007645
+0x9fd4
+// -0.513577
+0xb81c
+// -0.115042
+0xaf5d
+// -0.052801
+0xaac2
+// 0.447105
+0x3727
+// 0.442605
+0x3715
+// 0.140953
+0x3083
+// 0.119596
+0x2fa7
+// -0.240994
+0xb3b6
+// 0.079397
+0x2d15
+// 0.390627
+0x3640
+// 0.228383
+0x334f
+// -0.115225
+0xaf60
+// -0.205164
+0xb291
+// -0.031720
+0xa80f
+// -0.537351
+0xb84c
+// -0.072797
+0xaca9
+// -0.155885
+0xb0fd
+// 0.076583
+0x2ce7
+// -0.066407
+0xac40
+// -0.049158
+0xaa4b
+// -0.268510
+0xb44c
+// -0.171215
+0xb17b
+// 0.106467
+0x2ed0
+// -0.239792
+0xb3ac
+// 0.175453
+0x319d
+// 0.086575
+0x2d8a
+// -0.276276
+0xb46c
+// -0.585710
+0xb8b0
+// 0.046552
+0x29f5
+// 0.142781
+0x3092
+// 0.126016
+0x3008
+// 0.420471
+0x36ba
+// 0.500462
+0x3801
+// -0.454351
+0xb745
+// 0.482068
+0x37b7
+// -0.377474
+0xb60a
+// -0.180859
+0xb1ca
+// 0.556588
+0x3874
+// -0.245832
+0xb3de
+// -0.031314
+0xa802
+// -0.436397
+0xb6fb
+// 0.121465
+0x2fc6
+// -0.275872
+0xb46a
+// -0.037635
+0xa8d1
+// -0.427507
+0xb6d7
+// -0.220901
+0xb312
+// 0.045319
+0x29cd
+// -0.100744
+0xae73
+// 0.272713
+0x345d
+// -0.474260
+0xb797
+// -0.116553
+0xaf76
+// -0.115284
+0xaf61
+// -0.155466
+0xb0fa
+// -0.465207
+0xb771
+// 0.001737
+0x171d
+// 0.093297
+0x2df9
+// 0.366650
+0x35de
+// 0.326131
+0x3538
+// -0.034401
+0xa867
+// 0.178979
+0x31ba
+// -0.097856
+0xae43
+// 0.073625
+0x2cb6
+// 0.257717
+0x3420
+// 0.115297
+0x2f61
+// -0.132962
+0xb041
+// 0.134872
+0x3051
+// 0.294756
+0x34b7
+// -0.026697
+0xa6d6
+// 0.259182
+0x3426
+// 0.335727
+0x355f
+// -0.070778
+0xac88
+// 0.496097
+0x37f0
+// -0.218391
+0xb2fd
+// 0.145721
+0x30aa
+// 0.008354
+0x2047
+// 0.313546
+0x3504
+// 0.112745
+0x2f37
+// 0.288307
+0x349d
+// -0.729265
+0xb9d6
+// -0.313449
+0xb504
+// 0.083483
+0x2d58
+// -0.090757
+0xadcf
+// 0.370150
+0x35ec
+// -0.311659
+0xb4fd
+// 0.258793
+0x3424
+// -0.075061
+0xacce
+// 0.065624
+0x2c33
+// 0.142196
+0x308d
+// -0.159892
+0xb11e
+// 0.023995
+0x2625
+// -0.203415
+0xb282
+// 0.198456
+0x325a
+// 0.164731
+0x3145
+// 0.188396
+0x3207
+// 0.079520
+0x2d17
+// -0.013492
+0xa2e8
+// 0.107189
+0x2edc
+// -0.158542
+0xb113
+// -0.319019
+0xb51b
+// 0.152274
+0x30df
+// -0.480152
+0xb7af
+// 0.042900
+0x297e
+// 0.450933
+0x3737
+// 0.073534
+0x2cb5
+// -0.091913
+0xade2
+// 0.378881
+0x3610
+// 0.030216
+0x27bc
+// 0.082553
+0x2d49
+// -0.255352
+0xb416
+// -0.168215
+0xb162
+// -0.631789
+0xb90e
+// 0.076372
+0x2ce3
+// 0.229639
+0x3359
+// -0.112290
+0xaf30
+// -0.374476
+0xb5fe
+// 0.091239
+0x2dd7
+// -0.249931
+0xb3ff
+// 0.622668
+0x38fb
+// 0.154474
+0x30f1
+// -0.731968
+0xb9db
+// -0.183834
+0xb1e2
+// 0.204116
+0x3288
+// -0.151816
+0xb0dc
+// 1.000000
+0x3c00
+// -0.479798
+0xb7ad
+// -0.803758
+0xba6e
+// 0.283051
+0x3487
+// -0.738447
+0xb9e8
+// -0.022295
+0xa5b5
+// -0.004876
+0x9cfe
+// 0.048519
+0x2a36
+// 0.324880
+0x3533
+// -0.013101
+0xa2b5
+// -0.298942
+0xb4c8
+// 0.401499
+0x366d
+// 0.242170
+0x33c0
+// 0.162182
+0x3131
+// -0.340021
+0xb571
+// 0.323317
+0x352c
+// -0.138080
+0xb06b
+// 0.113627
+0x2f46
+// -0.138518
+0xb06f
+// -0.186362
+0xb1f7
+// 0.183050
+0x31dc
+// 0.061949
+0x2bee
+// -0.014313
+0xa354
+// 0.086256
+0x2d85
+// 0.181931
+0x31d2
+// -0.675275
+0xb967
+// 0.630079
+0x390a
+// 0.006940
+0x1f1b
+// 0.054574
+0x2afc
+// 0.683167
+0x3977
+// 0.978173
+0x3bd3
+// -0.090392
+0xadc9
+// -0.397459
+0xb65c
+// -0.023644
+0xa60e
+// 0.038177
+0x28e3
+// -0.484058
+0xb7bf
+// -0.086314
+0xad86
+// 0.302875
+0x34d9
+// -0.226583
+0xb340
+// -0.277829
+0xb472
+// -0.301748
+0xb4d4
+// -0.246393
+0xb3e2
+// 0.130797
+0x302f
+// 0.165302
+0x314a
+// -0.371970
+0xb5f4
+// 0.231244
+0x3366
+// -0.105606
+0xaec2
+// -0.047171
+0xaa0a
+// -0.006372
+0x9e86
+// -0.559619
+0xb87a
+// 0.019751
+0x250e
+// 0.138724
+0x3070
+// 0.216065
+0x32ea
+// -0.070626
+0xac85
+// -0.038871
+0xa8fa
+// -0.956346
+0xbba7
+// 0.174157
+0x3193
+// -0.006229
+0x9e61
+// 0.209218
+0x32b2
+// -0.287471
+0xb499
+// 0.274961
+0x3466
+// -0.427801
+0xb6d8
+// -0.146737
+0xb0b2
+// -0.424052
+0xb6c9
+// 0.099320
+0x2e5b
+// -0.024924
+0xa661
+// 0.512600
+0x381a
+// -0.204460
+0xb28b
+// -0.226769
+0xb342
+// -0.158004
+0xb10e
+// -0.341655
+0xb577
+// 0.245541
+0x33db
+// 0.072110
+0x2c9d
+// 0.226310
+0x333e
+// -0.295331
+0xb4ba
+// -0.127530
+0xb015
+// 0.298144
+0x34c5
+// -0.245845
+0xb3de
+// -0.381134
+0xb619
+// 0.318199
+0x3517
+// -0.143576
+0xb098
+// 0.182179
+0x31d4
+// -0.231088
+0xb365
+// 0.214866
+0x32e0
+// 0.125004
+0x3000
+// 0.436732
+0x36fd
+// -0.118110
+0xaf8f
+// -0.016309
+0xa42d
+// 0.201822
+0x3275
+// 0.016025
+0x241a
+// 0.010119
+0x212e
+// -0.067405
+0xac50
+// -0.147997
+0xb0bc
+// 0.109904
+0x2f09
+// 0.068153
+0x2c5d
+// -0.279535
+0xb479
+// -0.101699
+0xae82
+// 0.203966
+0x3287
+// -0.036685
+0xa8b2
+// 0.059071
+0x2b90
+// 0.433101
+0x36ee
+// 0.343496
+0x357f
+// 0.695686
+0x3991
+// 0.124707
+0x2ffb
+// -0.229197
+0xb356
+// -0.457763
+0xb753
+// -0.145183
+0xb0a5
+// -0.216158
+0xb2eb
+// -0.139686
+0xb078
+// 0.147104
+0x30b5
+// -0.354811
+0xb5ad
+// 0.098173
+0x2e48
+// 0.108544
+0x2ef2
+// 0.028122
+0x2733
+// -0.514563
+0xb81e
+// -0.463184
+0xb769
+// -0.430388
+0xb6e3
+// -0.227806
+0xb34a
+// 0.081836
+0x2d3d
+// -0.564925
+0xb885
+// 0.159046
+0x3117
+// -0.234565
+0xb382
+// 0.405126
+0x367b
+// 0.088853
+0x2db0
+// -0.132226
+0xb03b
+// -0.157501
+0xb10a
+// 0.421187
+0x36bd
+// 0.146334
+0x30af
+// -0.305855
+0xb4e5
+// -0.041695
+0xa956
+// 0.217749
+0x32f8
+// -0.188328
+0xb207
+// -0.182500
+0xb1d7
+// 0.135308
+0x3054
+// 0.011007
+0x21a3
+// 0.071617
+0x2c95
+// -0.173602
+0xb18e
+// 0.032086
+0x281b
+// 0.271615
+0x3459
+// 0.032740
+0x2831
+// 0.121526
+0x2fc7
+// -0.406319
+0xb680
+// -0.040549
+0xa931
+// -0.281403
+0xb481
+// 0.123796
+0x2fec
+// -0.237449
+0xb399
+// 0.322010
+0x3527
+// 0.023109
+0x25ea
+// -0.046408
+0xa9f1
+// 0.271297
+0x3457
+// -0.274313
+0xb464
+// -0.334157
+0xb559
+// -0.141076
+0xb084
+// -0.029674
+0xa799
+// -0.061505
+0xabdf
+// -0.332366
+0xb551
+// 0.333656
+0x3557
+// 0.146180
+0x30ae
+// -0.546814
+0xb860
+// 0.046252
+0x29ec
+// -0.352909
+0xb5a6
+// -0.389319
+0xb63b
+// -0.302321
+0xb4d6
+// 0.059388
+0x2b9a
+// 0.319279
+0x351c
+// 0.425463
+0x36cf
+// 0.047886
+0x2a21
+// -0.074567
+0xacc6
+// -0.259453
+0xb427
+// 0.320731
+0x3522
+// -0.318527
+0xb519
+// 0.139965
+0x307b
+// -0.612164
+0xb8e6
+// 0.242777
+0x33c5
+// -0.093796
+0xae01
+// -0.214266
+0xb2db
+// 0.044313
+0x29ac
+// -0.092798
+0xadf0
+// 0.367818
+0x35e3
+// 0.497251
+0x37f5
+// -1.000000
+0xbc00
+// -0.458234
+0xb755
+// -0.357753
+0xb5b9
+// 0.058683
+0x2b83
+// 0.316336
+0x3510
+// 0.424764
+0x36cc
+// -0.514608
+0xb81e
+// 0.499315
+0x37fd
+// -0.162915
+0xb137
+// 0.123627
+0x2fea
+// -0.021438
+0xa57d
+// -0.098706
+0xae51
+// -0.013570
+0xa2f3
+// -0.092881
+0xadf2
+// -0.670839
+0xb95e
+// 0.296849
+0x34c0
+// 0.283741
+0x348a
+// 0.174780
+0x3198
+// 0.198538
+0x325a
+// 0.051248
+0x2a8f
+// -0.104908
+0xaeb7
+// 0.087891
+0x2da0
+// 0.306223
+0x34e6
+// -0.029395
+0xa786
+// -0.106601
+0xaed3
+// -0.100549
+0xae6f
+// 0.385770
+0x362c
+// 0.266705
+0x3444
+// -0.005468
+0x9d99
+// -0.773067
+0xba2f
+// 0.094377
+0x2e0a
+// 0.088873
+0x2db0
+// 0.160652
+0x3124
+// -0.150174
+0xb0ce
+// -0.252015
+0xb408
+// -0.359712
+0xb5c1
+// -0.098818
+0xae53
+// -0.787097
+0xba4c
+// 0.432856
+0x36ed
+// -0.350871
+0xb59d
+// -0.543040
+0xb858
+// -0.172735
+0xb187
+// -0.407509
+0xb685
+// -0.244360
+0xb3d2
+// 0.051001
+0x2a87
+// 0.200637
+0x326c
+// -0.169870
+0xb170
+// 0.059343
+0x2b99
+// -0.272588
+0xb45d
+// -0.289851
+0xb4a3
+// -0.226685
+0xb341
+// 0.188351
+0x3207
+// 0.053116
+0x2acd
+// 0.434047
+0x36f2
+// -0.094494
+0xae0c
+// 0.141177
+0x3085
+// -0.094706
+0xae10
+// 0.444301
+0x371c
+// -0.471372
+0xb78b
+// 0.388746
+0x3638
+// 0.225789
+0x333a
+// -0.018623
+0xa4c4
+// -0.498075
+0xb7f8
+// -0.087902
+0xada0
+// 0.616322
+0x38ee
+// -0.197135
+0xb24f
+// 0.177617
+0x31af
+// 0.134201
+0x304b
+// -0.252939
+0xb40c
+// 0.194207
+0x3237
+// 0.354311
+0x35ab
+// -0.088940
+0xadb1
+// 0.363076
+0x35cf
+// -0.120992
+0xafbe
+// 0.248519
+0x33f4
+// 0.268427
+0x344b
+// 0.142025
+0x308b
+// 0.215267
+0x32e3
+// 0.175752
+0x31a0
+// -0.417586
+0xb6ae
+// -0.427368
+0xb6d6
+// 0.170487
+0x3175
+// -0.766337
+0xba21
+// 0.518191
+0x3825
+// -0.034628
+0xa86f
+// -0.018790
+0xa4cf
+// 0.346009
+0x3589
+// -0.271942
+0xb45a
+// 0.155284
+0x30f8
+// 0.206959
+0x329f
+// -0.207928
+0xb2a7
+// 0.240780
+0x33b4
+// -0.682850
+0xb976
+// -0.135296
+0xb054
+// -0.539313
+0xb851
+// 0.367978
+0x35e3
+// 0.359789
+0x35c2
+// -0.086212
+0xad84
+// 0.007140
+0x1f50
+// -0.428800
+0xb6dc
+// -0.248540
+0xb3f4
+// -0.128120
+0xb01a
+// -0.060334
+0xabb9
+// -0.021932
+0xa59d
+// -0.027718
+0xa719
+// -0.020013
+0xa520
+// -0.102092
+0xae89
+// 0.047978
+0x2a24
+// -0.374787
+0xb5ff
+// -0.138527
+0xb06f
+// -0.006465
+0x9e9f
+// 0.108119
+0x2eeb
+// -0.184651
+0xb1e9
+// -0.407193
+0xb684
+// -0.029943
+0xa7aa
+// 0.210773
+0x32bf
+// 0.151414
+0x30d8
+// 0.288120
+0x349c
+// -0.179920
+0xb1c2
+// -0.823185
+0xba96
+// 0.113611
+0x2f45
+// -0.109277
+0xaefe
+// 0.187684
+0x3202
+// 0.107971
+0x2ee9
+// 0.243687
+0x33cc
+// -0.476894
+0xb7a1
+// -0.290690
+0xb4a7
+// 0.321254
+0x3524
+// -0.164279
+0xb142
+// -0.496265
+0xb7f1
+// 0.064104
+0x2c1a
+// -0.084980
+0xad70
+// -0.638088
+0xb91b
+// -0.235340
+0xb388
+// -0.109455
+0xaf01
+// 0.050745
+0x2a7f
+// -0.015666
+0xa403
+// 0.244199
+0x33d0
+// 0.218007
+0x32fa
+// 0.320209
+0x3520
+// 0.098570
+0x2e4f
+// -0.314462
+0xb508
+// 0.159911
+0x311e
+// -0.055696
+0xab21
+// 0.178719
+0x31b8
+// 0.293045
+0x34b0
+// 0.117554
+0x2f86
+// -0.394919
+0xb652
+// 0.585618
+0x38af
+// 0.128450
+0x301c
+// -0.463825
+0xb76c
+// -0.185010
+0xb1ec
+// -0.253686
+0xb40f
+// 0.098002
+0x2e46
+// 0.097846
+0x2e43
+// 0.032020
+0x2819
+// -0.015032
+0xa3b2
+// 0.371608
+0x35f2
+// -0.063878
+0xac17
+// -0.008372
+0xa049
+// -0.578700
+0xb8a1
+// 0.066648
+0x2c44
+// -0.467163
+0xb779
+// 0.008349
+0x2046
+// -0.367576
+0xb5e2
+// -0.003541
+0x9b40
+// -0.029858
+0xa7a5
+// -0.047448
+0xaa13
+// -0.098307
+0xae4b
+// -0.128059
+0xb019
+// 0.371960
+0x35f4
+// -0.304660
+0xb4e0
+// 0.127881
+0x3018
+// -0.354181
+0xb5ab
+// 0.198042
+0x3256
+// -0.379765
+0xb614
+// 0.204776
+0x328e
+// 0.387612
+0x3634
+// 0.235213
+0x3387
+// 0.323597
+0x352d
+// -0.737812
+0xb9e7
+// -0.127178
+0xb012
+// -0.224403
+0xb32e
+// 0.425933
+0x36d1
+// 0.150444
+0x30d0
+// -0.075227
+0xacd1
+// -0.102712
+0xae93
+// 0.067376
+0x2c50
+// -0.308890
+0xb4f1
+// -0.116874
+0xaf7b
+// 0.102167
+0x2e8a
+// -0.513069
+0xb81b
+// 0.353815
+0x35a9
+// -0.158055
+0xb10f
+// -0.243966
+0xb3cf
+// -0.183779
+0xb1e2
+// 0.056582
+0x2b3e
+// -0.046610
+0xa9f7
+// 0.511817
+0x3818
+// -0.035114
+0xa87f
+// -0.117605
+0xaf87
+// -0.074016
+0xacbd
+// 0.684812
+0x397a
+// 0.092672
+0x2dee
+// 0.132244
+0x303b
+// -0.181295
+0xb1cd
+// 0.376233
+0x3605
+// -1.000000
+0xbc00
+// 0.145075
+0x30a4
+// 0.434121
+0x36f2
+// 0.062744
+0x2c04
+// 0.063108
+0x2c0a
+// 0.009292
+0x20c2
+// 0.627327
+0x3905
+// 0.379161
+0x3611
+// 0.205475
+0x3293
+// -0.079589
+0xad18
+// 0.197552
+0x3252
+// -0.045001
+0xa9c3
+// -0.431735
+0xb6e8
+// 0.195127
+0x323e
+// 0.174754
+0x3198
+// 0.072350
+0x2ca1
+// 0.307983
+0x34ed
+// -0.291492
+0xb4aa
+// 0.021106
+0x2567
+// -0.330594
+0xb54a
+// -0.286594
+0xb496
+// 0.079800
+0x2d1b
+// -0.158337
+0xb111
+// 0.130177
+0x302a
+// -0.253647
+0xb40f
+// 0.008041
+0x201e
+// -0.048062
+0xaa27

+ 1106 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Input3_f16.txt

@@ -0,0 +1,1106 @@
+H
+552
+// 0.217408
+0x32f5
+// -1.000000
+0xbc00
+// 0.265731
+0x3440
+// 0.019134
+0x24e6
+// -0.276584
+0xb46d
+// -0.005066
+0x9d30
+// 0.726528
+0x39d0
+// -0.811492
+0xba7e
+// 0.154691
+0x30f3
+// -0.067072
+0xac4b
+// -0.066776
+0xac46
+// -1.000000
+0xbc00
+// -0.796278
+0xba5f
+// 0.724462
+0x39cc
+// -0.225191
+0xb335
+// -0.554357
+0xb86f
+// -0.179373
+0xb1bd
+// -0.473397
+0xb793
+// 0.867915
+0x3af1
+// -0.555851
+0xb872
+// -0.389518
+0xb63b
+// 0.047235
+0x2a0c
+// -0.307042
+0xb4ea
+// -0.039023
+0xa8ff
+// -0.121685
+0xafca
+// 0.065227
+0x2c2d
+// -0.609684
+0xb8e1
+// -0.862159
+0xbae6
+// -1.000000
+0xbc00
+// -0.488135
+0xb7cf
+// 0.295299
+0x34ba
+// 0.641425
+0x3922
+// 0.021880
+0x259a
+// -0.056173
+0xab31
+// 0.238235
+0x33a0
+// -0.157908
+0xb10e
+// -0.070433
+0xac82
+// -0.059575
+0xaba0
+// 0.192633
+0x322a
+// 0.206422
+0x329b
+// -0.187765
+0xb202
+// -0.207086
+0xb2a0
+// 1.000000
+0x3c00
+// 0.181261
+0x31cd
+// 0.296181
+0x34bd
+// 0.794431
+0x3a5b
+// 0.153442
+0x30e9
+// 0.675303
+0x3967
+// 0.218141
+0x32fb
+// -0.371034
+0xb5f0
+// -0.180425
+0xb1c6
+// -0.019617
+0xa506
+// 0.570142
+0x3890
+// -0.354459
+0xb5ac
+// -0.404719
+0xb67a
+// 0.794301
+0x3a5b
+// 0.785752
+0x3a49
+// 0.648682
+0x3931
+// -0.948471
+0xbb96
+// 1.000000
+0x3c00
+// -0.113510
+0xaf44
+// 0.128690
+0x301e
+// 0.312609
+0x3500
+// 0.741834
+0x39ef
+// -0.354485
+0xb5ac
+// -0.055142
+0xab0f
+// 0.144800
+0x30a2
+// 0.260012
+0x3429
+// -0.628794
+0xb908
+// 0.097366
+0x2e3b
+// -0.117288
+0xaf82
+// 1.000000
+0x3c00
+// 0.244960
+0x33d7
+// -0.385219
+0xb62a
+// -0.455961
+0xb74c
+// 0.106813
+0x2ed6
+// -0.541358
+0xb855
+// -0.500948
+0xb802
+// -0.089147
+0xadb5
+// -0.270100
+0xb452
+// -0.323969
+0xb52f
+// 0.029343
+0x2783
+// -0.562826
+0xb881
+// -0.347592
+0xb590
+// 0.312747
+0x3501
+// -0.415693
+0xb6a7
+// 0.083249
+0x2d54
+// -0.534367
+0xb846
+// -0.568279
+0xb88c
+// 0.150141
+0x30ce
+// 0.853380
+0x3ad4
+// -0.177002
+0xb1aa
+// -1.000000
+0xbc00
+// 0.409103
+0x368c
+// -0.151255
+0xb0d7
+// -0.070954
+0xac8b
+// -0.340070
+0xb571
+// -0.069421
+0xac71
+// 0.505143
+0x380b
+// 0.437351
+0x36ff
+// -0.443032
+0xb717
+// -1.000000
+0xbc00
+// -0.602760
+0xb8d2
+// 0.376767
+0x3607
+// 0.174917
+0x3199
+// 0.788550
+0x3a4f
+// 1.000000
+0x3c00
+// -0.524109
+0xb831
+// 0.251447
+0x3406
+// 0.849083
+0x3acb
+// -0.787909
+0xba4e
+// 0.509956
+0x3814
+// 0.317196
+0x3513
+// -0.832981
+0xbaaa
+// 0.001110
+0x148c
+// -0.044530
+0xa9b3
+// 0.648510
+0x3930
+// 0.295972
+0x34bc
+// -0.415880
+0xb6a7
+// 0.083388
+0x2d56
+// 0.083524
+0x2d58
+// 0.144279
+0x309e
+// 0.249736
+0x33fe
+// -0.029100
+0xa773
+// 0.727606
+0x39d2
+// -1.000000
+0xbc00
+// -0.133542
+0xb046
+// 0.086949
+0x2d91
+// 0.798320
+0x3a63
+// -0.179492
+0xb1be
+// -0.104649
+0xaeb3
+// -0.264395
+0xb43b
+// -0.365207
+0xb5d8
+// -0.594357
+0xb8c1
+// 0.100915
+0x2e75
+// 0.660944
+0x394a
+// 0.242693
+0x33c4
+// 0.440271
+0x370b
+// 0.422631
+0x36c3
+// 0.231640
+0x336a
+// -0.746395
+0xb9f9
+// -0.605940
+0xb8d9
+// -0.151011
+0xb0d5
+// 0.773325
+0x3a30
+// 0.027177
+0x26f5
+// 0.299344
+0x34ca
+// 0.516416
+0x3822
+// -0.084835
+0xad6e
+// -0.129218
+0xb023
+// -0.110054
+0xaf0b
+// 0.081197
+0x2d32
+// -0.491581
+0xb7de
+// -1.000000
+0xbc00
+// 0.166612
+0x3155
+// -0.198660
+0xb25b
+// -0.873901
+0xbafe
+// -0.438437
+0xb704
+// -0.028895
+0xa766
+// -0.226674
+0xb341
+// -0.314398
+0xb508
+// 0.386108
+0x362d
+// -0.239824
+0xb3ad
+// -0.198229
+0xb258
+// -0.197027
+0xb24e
+// -0.526355
+0xb836
+// -0.748124
+0xb9fc
+// 0.563749
+0x3883
+// -1.000000
+0xbc00
+// 0.186158
+0x31f5
+// 0.775526
+0x3a34
+// -0.200707
+0xb26c
+// 0.226592
+0x3340
+// -0.838032
+0xbab4
+// 0.402316
+0x3670
+// -0.483160
+0xb7bb
+// -0.067567
+0xac53
+// -0.103362
+0xae9d
+// 0.106904
+0x2ed8
+// -0.697533
+0xb995
+// -0.517617
+0xb824
+// -0.830600
+0xbaa5
+// -0.496915
+0xb7f3
+// 0.591841
+0x38bc
+// 0.093937
+0x2e03
+// 0.051762
+0x2aa0
+// -0.257140
+0xb41d
+// 0.170416
+0x3174
+// -0.253594
+0xb40f
+// 0.072781
+0x2ca8
+// -1.000000
+0xbc00
+// -0.239573
+0xb3ab
+// -0.216495
+0xb2ee
+// 0.195218
+0x323f
+// 0.752900
+0x3a06
+// -0.019299
+0xa4f1
+// 0.726585
+0x39d0
+// -0.421216
+0xb6bd
+// -1.000000
+0xbc00
+// -0.000277
+0x8c8b
+// 0.003373
+0x1ae8
+// -0.463358
+0xb76a
+// -0.702521
+0xb99f
+// -0.330708
+0xb54b
+// -0.819405
+0xba8e
+// 0.623206
+0x38fc
+// 0.710884
+0x39b0
+// -0.080213
+0xad22
+// -0.619339
+0xb8f4
+// -0.761718
+0xba18
+// -0.622655
+0xb8fb
+// 0.440593
+0x370d
+// -0.330884
+0xb54b
+// -1.000000
+0xbc00
+// 0.625351
+0x3901
+// -0.236230
+0xb38f
+// -0.793604
+0xba59
+// 0.177425
+0x31ad
+// 0.538130
+0x384e
+// -1.000000
+0xbc00
+// -0.242925
+0xb3c6
+// 0.570816
+0x3891
+// 0.755338
+0x3a0b
+// 0.025293
+0x267a
+// -0.394830
+0xb651
+// -0.270029
+0xb452
+// 0.153713
+0x30eb
+// 0.657679
+0x3943
+// 0.069033
+0x2c6b
+// 0.126003
+0x3008
+// 0.009835
+0x2109
+// 0.278626
+0x3475
+// -0.189317
+0xb20f
+// -0.010324
+0xa149
+// -0.176031
+0xb1a2
+// 0.239310
+0x33a8
+// -0.066982
+0xac49
+// 0.301241
+0x34d2
+// 0.820524
+0x3a90
+// 0.144478
+0x30a0
+// 0.075602
+0x2cd7
+// -1.000000
+0xbc00
+// 0.594494
+0x38c2
+// -0.267599
+0xb448
+// -0.737420
+0xb9e6
+// 0.170767
+0x3177
+// 0.847166
+0x3ac7
+// 0.623100
+0x38fc
+// -0.196887
+0xb24d
+// -0.700163
+0xb99a
+// -0.226795
+0xb342
+// -0.531243
+0xb840
+// -0.268095
+0xb44a
+// -0.001884
+0x97b8
+// -0.585687
+0xb8af
+// 0.131535
+0x3036
+// -0.212241
+0xb2cb
+// -0.742890
+0xb9f1
+// -0.605895
+0xb8d9
+// 0.367228
+0x35e0
+// 0.046062
+0x29e5
+// 0.693333
+0x398c
+// 0.680240
+0x3971
+// -0.268115
+0xb44a
+// 0.037959
+0x28dc
+// -0.095414
+0xae1b
+// 0.792625
+0x3a57
+// 0.744585
+0x39f5
+// -1.000000
+0xbc00
+// -0.171608
+0xb17e
+// 0.202522
+0x327b
+// 0.244446
+0x33d2
+// 0.211632
+0x32c6
+// 0.836163
+0x3ab0
+// 0.480297
+0x37af
+// -0.021565
+0xa585
+// -0.067895
+0xac58
+// -1.000000
+0xbc00
+// 0.099491
+0x2e5e
+// 0.118689
+0x2f99
+// -0.211054
+0xb2c1
+// -0.364763
+0xb5d6
+// -0.285316
+0xb491
+// -0.233471
+0xb379
+// -0.823922
+0xba97
+// 0.543522
+0x3859
+// -0.150072
+0xb0cd
+// 0.341615
+0x3577
+// 0.482240
+0x37b7
+// -1.000000
+0xbc00
+// -0.935848
+0xbb7d
+// -0.537277
+0xb84c
+// -0.018444
+0xa4b9
+// 0.256493
+0x341b
+// 0.392319
+0x3647
+// -0.156962
+0xb106
+// 0.544719
+0x385c
+// 0.608452
+0x38de
+// 0.159155
+0x3118
+// -0.044703
+0xa9b9
+// -0.210657
+0xb2be
+// -0.329300
+0xb545
+// 0.744505
+0x39f5
+// 1.000000
+0x3c00
+// -0.800036
+0xba66
+// -0.646284
+0xb92c
+// 0.389190
+0x363a
+// -0.226872
+0xb343
+// -0.278395
+0xb474
+// -0.056983
+0xab4b
+// -0.067510
+0xac52
+// -0.073193
+0xacaf
+// -0.000210
+0x8ade
+// 0.179298
+0x31bd
+// -0.234410
+0xb380
+// -0.279536
+0xb479
+// -0.259901
+0xb429
+// 0.190779
+0x321b
+// 1.000000
+0x3c00
+// -0.212927
+0xb2d0
+// -0.009188
+0xa0b4
+// 0.099951
+0x2e66
+// -0.041667
+0xa955
+// -0.635454
+0xb915
+// 0.099029
+0x2e56
+// -0.442973
+0xb716
+// 0.787017
+0x3a4c
+// 0.379293
+0x3612
+// -0.621484
+0xb8f9
+// 0.290496
+0x34a6
+// 0.048251
+0x2a2d
+// 0.432533
+0x36ec
+// 0.118334
+0x2f93
+// 0.322000
+0x3527
+// 0.406236
+0x3680
+// -0.250587
+0xb402
+// 0.431394
+0x36e7
+// -0.540250
+0xb852
+// -1.000000
+0xbc00
+// 0.259702
+0x3428
+// -0.088303
+0xada7
+// 0.217648
+0x32f7
+// 0.480810
+0x37b1
+// -0.007297
+0x9f79
+// 0.036056
+0x289d
+// -0.684005
+0xb979
+// 1.000000
+0x3c00
+// -0.713550
+0xb9b5
+// -0.027773
+0xa71c
+// 0.391190
+0x3642
+// -0.697773
+0xb995
+// 0.072238
+0x2ca0
+// 0.645571
+0x392a
+// -0.469561
+0xb783
+// -0.493344
+0xb7e5
+// 0.829733
+0x3aa3
+// -0.082684
+0xad4b
+// 0.345621
+0x3588
+// -0.559965
+0xb87b
+// 0.325700
+0x3536
+// -0.793137
+0xba58
+// 0.054188
+0x2af0
+// 0.148639
+0x30c2
+// -0.128278
+0xb01b
+// -0.466249
+0xb776
+// -0.500443
+0xb801
+// -0.363853
+0xb5d2
+// 0.102526
+0x2e90
+// -0.032568
+0xa82b
+// 0.801831
+0x3a6a
+// -0.064806
+0xac26
+// 0.390165
+0x363e
+// 1.000000
+0x3c00
+// -0.431574
+0xb6e8
+// 0.640476
+0x3920
+// 0.288824
+0x349f
+// -0.167456
+0xb15c
+// 0.594342
+0x38c1
+// 0.215787
+0x32e8
+// 1.000000
+0x3c00
+// 0.183416
+0x31df
+// -0.146431
+0xb0b0
+// -0.551740
+0xb86a
+// -0.222053
+0xb31b
+// -1.000000
+0xbc00
+// 0.440318
+0x370c
+// -0.548500
+0xb863
+// 0.412261
+0x3699
+// -0.721040
+0xb9c5
+// 0.374577
+0x35fe
+// 0.547996
+0x3862
+// -0.559161
+0xb879
+// -0.375490
+0xb602
+// -0.635772
+0xb916
+// -0.280793
+0xb47e
+// 0.459706
+0x375b
+// -0.226713
+0xb341
+// 0.415555
+0x36a6
+// -0.220991
+0xb312
+// 0.003612
+0x1b65
+// -0.031083
+0xa7f5
+// -0.291048
+0xb4a8
+// 0.340854
+0x3574
+// 1.000000
+0x3c00
+// -0.303349
+0xb4db
+// -0.235421
+0xb389
+// -0.220132
+0xb30b
+// 0.357432
+0x35b8
+// -0.172138
+0xb182
+// 0.548235
+0x3863
+// 0.523041
+0x382f
+// -0.472594
+0xb790
+// -0.847191
+0xbac7
+// 0.160687
+0x3124
+// 0.162329
+0x3132
+// -0.632218
+0xb90f
+// 0.026574
+0x26ce
+// 0.202604
+0x327c
+// 0.081188
+0x2d32
+// -0.338457
+0xb56a
+// -0.418027
+0xb6b0
+// 0.134701
+0x304f
+// -0.525693
+0xb835
+// 0.072801
+0x2ca9
+// 0.621668
+0x38f9
+// 0.003767
+0x1bb7
+// -0.422790
+0xb6c4
+// 1.000000
+0x3c00
+// -0.349830
+0xb599
+// 0.947610
+0x3b95
+// 0.431527
+0x36e8
+// 0.050724
+0x2a7e
+// 0.371437
+0x35f1
+// 0.794284
+0x3a5b
+// -0.261386
+0xb42f
+// -0.200472
+0xb26a
+// -0.648381
+0xb930
+// -0.285966
+0xb493
+// 0.291719
+0x34ab
+// -0.792081
+0xba56
+// 0.891690
+0x3b22
+// -0.055418
+0xab18
+// -0.585696
+0xb8b0
+// 0.848304
+0x3ac9
+// -0.736345
+0xb9e4
+// 0.032315
+0x2823
+// -0.237046
+0xb396
+// -0.977191
+0xbbd1
+// -0.400867
+0xb66a
+// -1.000000
+0xbc00
+// 0.194687
+0x323b
+// -0.472147
+0xb78e
+// -0.274323
+0xb464
+// 0.547009
+0x3860
+// -0.740494
+0xb9ed
+// -0.904863
+0xbb3d
+// 0.531035
+0x3840
+// -0.932385
+0xbb76
+// 0.154298
+0x30f0
+// -0.194044
+0xb236
+// 0.139624
+0x3078
+// 0.418956
+0x36b4
+// 0.154692
+0x30f3
+// 0.255611
+0x3417
+// 0.198673
+0x325c
+// -0.081350
+0xad35
+// 1.000000
+0x3c00
+// 0.835628
+0x3aaf
+// -0.467068
+0xb779
+// -0.548289
+0xb863
+// 0.923958
+0x3b64
+// 0.710156
+0x39ae
+// 1.000000
+0x3c00
+// 0.568984
+0x388d
+// 0.391558
+0x3644
+// 0.199685
+0x3264
+// 0.037224
+0x28c4
+// -0.243319
+0xb3c9
+// 0.027384
+0x2703
+// 0.441444
+0x3710
+// 0.715537
+0x39b9
+// -0.337384
+0xb566
+// 1.000000
+0x3c00
+// 0.190638
+0x321a
+// 0.552850
+0x386c
+// 0.197648
+0x3253
+// -0.229212
+0xb356
+// 0.115530
+0x2f65
+// 0.042168
+0x2966
+// 0.387967
+0x3635
+// 0.332794
+0x3553
+// 0.308349
+0x34ef
+// -0.344740
+0xb584
+// -0.190490
+0xb218
+// 0.073625
+0x2cb6
+// 0.312972
+0x3502
+// 0.200616
+0x326b
+// -0.494326
+0xb7e9
+// 0.026111
+0x26af
+// 0.432257
+0x36eb
+// 1.000000
+0x3c00
+// 0.111856
+0x2f29
+// -0.028041
+0xa72e
+// 0.347455
+0x358f
+// -0.400140
+0xb667
+// -0.086210
+0xad84
+// -0.561649
+0xb87e
+// -0.211831
+0xb2c7
+// 0.388066
+0x3636
+// 0.358890
+0x35be
+// -0.250162
+0xb401
+// 0.449194
+0x3730
+// 0.115322
+0x2f61
+// -0.037649
+0xa8d2
+// -0.067750
+0xac56
+// -0.466851
+0xb778
+// -0.021313
+0xa575
+// -0.083910
+0xad5f
+// -0.081032
+0xad30
+// 0.091050
+0x2dd4
+// -0.279882
+0xb47a
+// 0.346727
+0x358c
+// 0.121986
+0x2fcf
+// -1.000000
+0xbc00
+// -0.041750
+0xa958
+// 0.134187
+0x304b
+// 0.550897
+0x3868
+// 0.189680
+0x3212
+// 0.315409
+0x350c
+// 0.100620
+0x2e71
+// -0.330967
+0xb54c
+// 0.496270
+0x37f1
+// 0.061806
+0x2be9
+// -0.173807
+0xb190
+// -0.566708
+0xb889
+// -0.429896
+0xb6e1
+// 0.913104
+0x3b4e
+// -1.000000
+0xbc00
+// -0.059191
+0xab94
+// 0.025363
+0x267e
+// -0.398863
+0xb662
+// -0.641623
+0xb922
+// -0.307996
+0xb4ee
+// -0.583714
+0xb8ab
+// -0.455818
+0xb74b
+// 0.499864
+0x37ff
+// 0.753904
+0x3a08
+// -0.434891
+0xb6f5
+// -0.806757
+0xba74
+// -0.134133
+0xb04b
+// 0.064259
+0x2c1d
+// -0.534190
+0xb846
+// -0.094695
+0xae0f

+ 2210 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Reference2_f16.txt

@@ -0,0 +1,2210 @@
+H
+1104
+// 0.029008
+0x276d
+// 0.070259
+0x2c7f
+// 0.143655
+0x3099
+// 0.215054
+0x32e2
+// 0.249416
+0x33fb
+// 0.258112
+0x3421
+// 0.236289
+0x3390
+// -0.014677
+0xa384
+// -0.027412
+0xa704
+// -0.034834
+0xa875
+// -0.050335
+0xaa71
+// -0.072615
+0xaca6
+// -0.105723
+0xaec4
+// -0.120313
+0xafb3
+// 0.001314
+0x1561
+// -0.003292
+0x9abe
+// -0.006771
+0x9eef
+// -0.003360
+0x9ae1
+// -0.003331
+0x9ad3
+// 0.010030
+0x2123
+// 0.016189
+0x2425
+// -0.003163
+0x9a7b
+// -0.039660
+0xa914
+// -0.062250
+0xabf8
+// -0.085811
+0xad7e
+// -0.109935
+0xaf09
+// -0.126424
+0xb00c
+// -0.147910
+0xb0bc
+// 0.012452
+0x2260
+// 0.033885
+0x2856
+// 0.072862
+0x2caa
+// 0.102787
+0x2e94
+// 0.132667
+0x303f
+// 0.166860
+0x3157
+// 0.203658
+0x3284
+// -0.010785
+0xa186
+// -0.012352
+0xa253
+// -0.008296
+0xa03f
+// -0.009944
+0xa117
+// 0.001228
+0x1507
+// 0.014177
+0x2342
+// 0.023606
+0x260b
+// 0.004418
+0x1c86
+// -0.001178
+0x94d3
+// -0.014872
+0xa39d
+// -0.025185
+0xa673
+// -0.044230
+0xa9a9
+// -0.093115
+0xadf6
+// -0.143419
+0xb097
+// -0.236640
+0xb393
+// -0.255858
+0xb418
+// -0.277885
+0xb472
+// -0.399704
+0xb665
+// -0.434658
+0xb6f4
+// -0.298672
+0xb4c7
+// -0.367426
+0xb5e1
+// -0.391842
+0xb645
+// -0.184819
+0xb1ea
+// -0.002042
+0x982f
+// -0.008356
+0xa047
+// -0.007957
+0xa013
+// -0.015153
+0xa3c2
+// -0.005764
+0x9de7
+// -0.003854
+0x9be5
+// 0.010438
+0x2158
+// 0.007787
+0x1ff9
+// -0.003076
+0x9a4c
+// -0.007085
+0x9f41
+// 0.000697
+0x11b5
+// 0.004607
+0x1cb8
+// -0.010000
+0xa11f
+// -0.011584
+0xa1ee
+// -0.006054
+0x9e33
+// 0.003425
+0x1b04
+// 0.005041
+0x1d2a
+// 0.003582
+0x1b56
+// 0.001113
+0x148f
+// 0.001338
+0x157b
+// 0.006070
+0x1e37
+// 0.012701
+0x2281
+// 0.026342
+0x26be
+// 0.042179
+0x2966
+// 0.052945
+0x2ac7
+// 0.077044
+0x2cee
+// 0.100214
+0x2e6a
+// 0.123159
+0x2fe2
+// 0.145131
+0x30a5
+// 0.167330
+0x315b
+// 0.188081
+0x3205
+// 0.210191
+0x32ba
+// 0.025668
+0x2692
+// 0.067292
+0x2c4f
+// 0.086406
+0x2d88
+// 0.092112
+0x2de5
+// 0.100312
+0x2e6c
+// 0.089993
+0x2dc2
+// 0.080777
+0x2d2b
+// 0.069748
+0x2c77
+// -0.192223
+0xb227
+// -0.359130
+0xb5bf
+// -0.204624
+0xb28c
+// -0.084986
+0xad70
+// -0.103689
+0xaea3
+// 0.040368
+0x292b
+// 0.027640
+0x2713
+// 0.026837
+0x26df
+// -0.002341
+0x98cb
+// -0.005836
+0x9dfa
+// -0.007895
+0xa00b
+// -0.007588
+0x9fc5
+// -0.009947
+0xa118
+// -0.007963
+0xa014
+// 0.003599
+0x1b5f
+// 0.010611
+0x216f
+// 0.013136
+0x22ba
+// 0.023753
+0x2615
+// 0.016825
+0x244f
+// 0.007325
+0x1f80
+// 0.007565
+0x1fbf
+// 0.005520
+0x1da7
+// 0.011854
+0x2212
+// 0.021720
+0x258f
+// 0.003764
+0x1bb5
+// 0.011322
+0x21cc
+// 0.008147
+0x202c
+// 0.011907
+0x2219
+// 0.022824
+0x25d8
+// 0.021150
+0x256a
+// 0.032296
+0x2822
+// 0.048330
+0x2a30
+// 0.065152
+0x2c2b
+// 0.078650
+0x2d09
+// 0.089112
+0x2db4
+// 0.104895
+0x2eb7
+// 0.121856
+0x2fcc
+// 0.132248
+0x303b
+// 0.138961
+0x3072
+// 0.152442
+0x30e1
+// -0.012568
+0xa26f
+// -0.008482
+0xa058
+// -0.019267
+0xa4ef
+// -0.025073
+0xa66b
+// -0.030953
+0xa7ed
+// -0.054753
+0xab02
+// -0.061413
+0xabdc
+// 0.029598
+0x2794
+// -0.109504
+0xaf02
+// -0.007663
+0x9fd9
+// -0.060995
+0xabcf
+// -0.092553
+0xadec
+// 0.024895
+0x2660
+// -0.083176
+0xad53
+// -0.041199
+0xa946
+// 0.068241
+0x2c5e
+// 0.048724
+0x2a3d
+// 0.152615
+0x30e2
+// 0.279781
+0x347a
+// 0.289763
+0x34a3
+// 0.032151
+0x281e
+// -0.008129
+0xa029
+// -0.145144
+0xb0a5
+// -0.001592
+0x9685
+// -0.011323
+0xa1cc
+// -0.015078
+0xa3b8
+// -0.014338
+0xa357
+// -0.003789
+0x9bc2
+// 0.007320
+0x1f7f
+// 0.029538
+0x2790
+// 0.070275
+0x2c7f
+// 0.098089
+0x2e47
+// 0.113671
+0x2f46
+// 0.117493
+0x2f85
+// 0.129839
+0x3028
+// 0.132611
+0x303e
+// 0.139526
+0x3077
+// 0.153005
+0x30e5
+// 0.169847
+0x316f
+// 0.212598
+0x32ce
+// 0.386095
+0x362d
+// 0.345366
+0x3587
+// 0.313722
+0x3505
+// 0.201783
+0x3275
+// 0.229674
+0x3359
+// 0.077401
+0x2cf4
+// -0.004187
+0x9c4a
+// 0.003375
+0x1ae9
+// 0.011555
+0x21eb
+// 0.026606
+0x26d0
+// 0.038664
+0x28f3
+// 0.037389
+0x28c9
+// 0.040403
+0x292c
+// 0.039017
+0x28ff
+// 0.050138
+0x2a6b
+// 0.067570
+0x2c53
+// 0.088562
+0x2dab
+// 0.110054
+0x2f0b
+// 0.120388
+0x2fb4
+// 0.135596
+0x3057
+// 0.156710
+0x3104
+// 0.172103
+0x3182
+// 0.182150
+0x31d4
+// 0.180537
+0x31c7
+// 0.184891
+0x31eb
+// 0.180252
+0x31c5
+// 0.186957
+0x31fc
+// 0.194872
+0x323c
+// 0.197577
+0x3253
+// 0.006136
+0x1e48
+// -0.008425
+0xa050
+// -0.056318
+0xab35
+// -0.114867
+0xaf5a
+// -0.199842
+0xb265
+// -0.276978
+0xb46f
+// -0.349604
+0xb598
+// -0.426035
+0xb6d1
+// -0.554987
+0xb871
+// -0.465676
+0xb773
+// -0.253337
+0xb40e
+// -0.180187
+0xb1c4
+// 0.069682
+0x2c76
+// 0.034632
+0x286f
+// 0.011613
+0x21f2
+// 0.053667
+0x2adf
+// 0.028268
+0x273d
+// 0.154308
+0x30f0
+// 0.237488
+0x339a
+// -0.056986
+0xab4b
+// -0.325700
+0xb536
+// -0.371849
+0xb5f3
+// -0.326405
+0xb539
+// -0.001567
+0x966c
+// 0.005515
+0x1da6
+// 0.014204
+0x2346
+// 0.026727
+0x26d8
+// 0.021706
+0x258f
+// 0.013241
+0x22c7
+// 0.006348
+0x1e80
+// 0.001720
+0x170b
+// -0.005548
+0x9dae
+// -0.027976
+0xa729
+// -0.052437
+0xaab6
+// -0.067687
+0xac55
+// -0.072496
+0xaca4
+// -0.079605
+0xad18
+// -0.079666
+0xad19
+// -0.075249
+0xacd1
+// -0.076358
+0xace3
+// -0.048305
+0xaa2f
+// -0.191901
+0xb224
+// -0.224517
+0xb32f
+// -0.291416
+0xb4aa
+// 0.024087
+0x262b
+// 0.108855
+0x2ef7
+// 0.001389
+0x15b0
+// -0.010043
+0xa124
+// -0.024042
+0xa628
+// -0.043172
+0xa987
+// -0.073457
+0xacb4
+// -0.105089
+0xaeba
+// -0.130536
+0xb02d
+// -0.148646
+0xb0c2
+// -0.165442
+0xb14b
+// -0.190528
+0xb219
+// -0.215972
+0xb2e9
+// -0.239563
+0xb3ab
+// -0.263099
+0xb436
+// -0.282323
+0xb484
+// -0.292399
+0xb4ae
+// -0.303544
+0xb4db
+// -0.304745
+0xb4e0
+// -0.304727
+0xb4e0
+// -0.309121
+0xb4f2
+// -0.317823
+0xb516
+// -0.329706
+0xb546
+// -0.342231
+0xb57a
+// -0.359870
+0xb5c2
+// 0.000326
+0xd56
+// -0.061798
+0xabe9
+// -0.141236
+0xb085
+// -0.130415
+0xb02c
+// 0.110708
+0x2f16
+// 0.395338
+0x3653
+// 0.306099
+0x34e6
+// 0.010857
+0x218f
+// 0.046705
+0x29fa
+// 0.064308
+0x2c1e
+// 0.067679
+0x2c55
+// 0.073223
+0x2cb0
+// 0.040389
+0x292b
+// -0.007933
+0xa010
+// 0.005881
+0x1e06
+// 0.016563
+0x243d
+// 0.044645
+0x29b7
+// 0.081200
+0x2d32
+// 0.106122
+0x2ecb
+// 0.127980
+0x3018
+// 0.136734
+0x3060
+// 0.013729
+0x2307
+// 0.085849
+0x2d7f
+// 0.179309
+0x31bd
+// 0.261086
+0x342d
+// 0.200646
+0x326c
+// -0.042180
+0xa966
+// -0.052677
+0xaabe
+// -0.000233
+0x8ba2
+// 0.012806
+0x228e
+// -0.000343
+0x8d9f
+// -0.011827
+0xa20e
+// -0.042651
+0xa976
+// -0.109467
+0xaf02
+// -0.135824
+0xb059
+// 0.001140
+0x14ab
+// -0.016613
+0xa441
+// -0.037879
+0xa8d9
+// -0.074452
+0xacc4
+// -0.110660
+0xaf15
+// -0.145109
+0xb0a5
+// -0.223005
+0xb323
+// 0.001987
+0x1812
+// -0.046300
+0xa9ed
+// -0.100426
+0xae6d
+// -0.125383
+0xb003
+// -0.032351
+0xa824
+// -0.168928
+0xb168
+// -0.350195
+0xb59a
+// -0.239753
+0xb3ac
+// -0.054333
+0xaaf4
+// -0.050846
+0xaa82
+// 0.180470
+0x31c6
+// -0.167564
+0xb15d
+// -0.126582
+0xb00d
+// -0.193880
+0xb234
+// 0.048168
+0x2a2a
+// 0.194776
+0x323c
+// -0.010789
+0xa186
+// -0.039791
+0xa918
+// -0.026912
+0xa6e4
+// 0.007166
+0x1f56
+// 0.033126
+0x283d
+// 0.075854
+0x2cdb
+// 0.111003
+0x2f1b
+// 0.136423
+0x305e
+// 0.336027
+0x3560
+// 0.418282
+0x36b1
+// 0.040486
+0x292f
+// -0.171794
+0xb17f
+// -0.140116
+0xb07c
+// -0.350101
+0xb59a
+// -0.361558
+0xb5c9
+// -0.342359
+0xb57a
+// -0.002814
+0x99c4
+// -0.014953
+0xa3a8
+// -0.034386
+0xa867
+// -0.064026
+0xac19
+// -0.103299
+0xae9c
+// -0.154928
+0xb0f5
+// -0.191655
+0xb222
+// -0.220190
+0xb30c
+// -0.255724
+0xb417
+// -0.316969
+0xb512
+// -0.384781
+0xb628
+// -0.447702
+0xb72a
+// -0.410879
+0xb693
+// -0.413441
+0xb69d
+// -0.383123
+0xb621
+// -0.235987
+0xb38d
+// 0.003199
+0x1a8d
+// -0.028883
+0xa765
+// -0.122491
+0xafd7
+// -0.233158
+0xb376
+// -0.378683
+0xb60f
+// -0.252754
+0xb40b
+// 0.047684
+0x2a1b
+// 0.043278
+0x298a
+// 0.239387
+0x33a9
+// -0.102128
+0xae89
+// -0.220479
+0xb30e
+// -0.207097
+0xb2a1
+// -0.325675
+0xb536
+// -0.212962
+0xb2d1
+// -0.185615
+0xb1f1
+// -0.416820
+0xb6ab
+// -0.008195
+0xa032
+// -0.015248
+0xa3cf
+// -0.034942
+0xa879
+// -0.044023
+0xa9a3
+// -0.061978
+0xabef
+// -0.084807
+0xad6d
+// -0.111174
+0xaf1d
+// -0.134095
+0xb04b
+// -0.151921
+0xb0dd
+// -0.156293
+0xb100
+// -0.053188
+0xaacf
+// -0.210666
+0xb2be
+// -0.185196
+0xb1ed
+// -0.115945
+0xaf6c
+// -0.121876
+0xafcd
+// -0.226248
+0xb33d
+// -0.000306
+0x8d04
+// -0.004923
+0x9d0b
+// 0.015964
+0x2416
+// 0.070600
+0x2c85
+// 0.100243
+0x2e6a
+// 0.095268
+0x2e19
+// 0.092793
+0x2df0
+// 0.063373
+0x2c0e
+// 0.027045
+0x26ec
+// 0.000784
+0x126c
+// -0.026988
+0xa6e9
+// -0.069995
+0xac7b
+// -0.095173
+0xae17
+// -0.154105
+0xb0ee
+// -0.594221
+0xb8c1
+// -0.916642
+0xbb55
+// -0.002771
+0x99ad
+// -0.034307
+0xa864
+// -0.116490
+0xaf75
+// -0.199168
+0xb260
+// -0.135590
+0xb057
+// -0.148622
+0xb0c2
+// -0.034109
+0xa85e
+// -0.131320
+0xb034
+// -0.033814
+0xa854
+// -0.058750
+0xab85
+// -0.073031
+0xacad
+// -0.065248
+0xac2d
+// -0.153753
+0xb0ec
+// -0.361697
+0xb5ca
+// -0.548139
+0xb863
+// -0.484085
+0xb7bf
+// -0.033929
+0xa858
+// -0.116395
+0xaf73
+// -0.084398
+0xad67
+// -0.231290
+0xb367
+// -0.345158
+0xb586
+// -0.431408
+0xb6e7
+// -0.379595
+0xb613
+// 0.011433
+0x21db
+// 0.020078
+0x2524
+// 0.043564
+0x2994
+// 0.077965
+0x2cfd
+// 0.130398
+0x302c
+// 0.188114
+0x3205
+// 0.230973
+0x3364
+// 0.263121
+0x3436
+// 0.104390
+0x2eae
+// 0.199140
+0x325f
+// 0.222106
+0x331b
+// -0.027967
+0xa729
+// -0.083458
+0xad57
+// -0.151988
+0xb0dd
+// -0.002904
+0x99f2
+// -0.006700
+0x9edc
+// 0.003799
+0x1bc8
+// -0.076970
+0xaced
+// -0.241885
+0xb3be
+// 0.030619
+0x27d7
+// -0.076361
+0xace3
+// -0.173515
+0xb18d
+// -0.300511
+0xb4cf
+// -0.004897
+0x9d04
+// 0.010789
+0x2186
+// 0.023194
+0x25f0
+// 0.034092
+0x285d
+// 0.054561
+0x2afc
+// 0.051905
+0x2aa5
+// 0.036531
+0x28ad
+// 0.027902
+0x2725
+// 0.032348
+0x2824
+// 0.046073
+0x29e6
+// 0.070371
+0x2c81
+// 0.101389
+0x2e7d
+// 0.032907
+0x2836
+// -0.118080
+0xaf8f
+// 0.026061
+0x26ac
+// -0.095929
+0xae24
+// -0.009571
+0xa0e6
+// 0.357883
+0x35ba
+// 0.339987
+0x3571
+// 0.215845
+0x32e8
+// 0.098686
+0x2e51
+// 0.003549
+0x1b45
+// -0.073386
+0xacb2
+// -0.003894
+0x9bfa
+// -0.024042
+0xa628
+// -0.037565
+0xa8cf
+// -0.081864
+0xad3d
+// -0.086085
+0xad82
+// 0.047049
+0x2a06
+// -0.043302
+0xa98b
+// 0.100248
+0x2e6a
+// 0.185367
+0x31ef
+// -0.102309
+0xae8c
+// -0.031709
+0xa80f
+// 0.099099
+0x2e58
+// 0.285776
+0x3493
+// 0.244211
+0x33d1
+// 0.142745
+0x3091
+// -0.075285
+0xacd1
+// -0.249578
+0xb3fd
+// -0.359834
+0xb5c2
+// -0.343381
+0xb57e
+// -0.067541
+0xac53
+// 0.106132
+0x2ecb
+// 0.159187
+0x3118
+// -0.003202
+0x9a8f
+// -0.002468
+0x990e
+// -0.034017
+0xa85b
+// -0.055743
+0xab23
+// -0.041585
+0xa953
+// -0.022057
+0xa5a6
+// -0.013972
+0xa327
+// -0.000683
+0x9199
+// -0.023577
+0xa609
+// -0.039760
+0xa917
+// 0.196911
+0x324d
+// 0.292353
+0x34ad
+// -0.089681
+0xadbd
+// -0.216781
+0xb2f0
+// -0.107866
+0xaee7
+// -0.380205
+0xb615
+// -0.037051
+0xa8be
+// -0.046131
+0xa9e8
+// -0.113771
+0xaf48
+// -0.311307
+0xb4fb
+// -0.361237
+0xb5c8
+// -0.245573
+0xb3dc
+// -0.236249
+0xb38f
+// -0.191228
+0xb21f
+// 0.003286
+0x1abb
+// 0.017770
+0x248d
+// 0.044244
+0x29aa
+// 0.053773
+0x2ae2
+// 0.063202
+0x2c0b
+// 0.091950
+0x2de3
+// 0.146736
+0x30b2
+// 0.192140
+0x3226
+// 0.233228
+0x3377
+// 0.268649
+0x344c
+// 0.317015
+0x3512
+// 0.356670
+0x35b5
+// 0.329756
+0x3547
+// 0.286531
+0x3496
+// 0.017892
+0x2495
+// 0.399875
+0x3666
+// 0.298883
+0x34c8
+// 0.075569
+0x2cd6
+// -0.208296
+0xb2aa
+// -0.140383
+0xb07e
+// -0.106616
+0xaed3
+// -0.158475
+0xb112
+// -0.340636
+0xb573
+// -0.000877
+0x9330
+// -0.103590
+0xaea1
+// -0.000019
+0x813e
+// 0.112974
+0x2f3b
+// -0.043361
+0xa98d
+// 0.451729
+0x373a
+// 0.052154
+0x2aad
+// 0.001228
+0x1508
+// 0.009486
+0x20db
+// 0.028242
+0x273b
+// 0.005128
+0x1d40
+// -0.013557
+0xa2f1
+// 0.018968
+0x24db
+// 0.115780
+0x2f69
+// 0.004884
+0x1d00
+// 0.016486
+0x2438
+// -0.005971
+0x9e1d
+// 0.009930
+0x2115
+// 0.024462
+0x2643
+// 0.102774
+0x2e94
+// 0.062711
+0x2c03
+// 0.033333
+0x2844
+// 0.158539
+0x3113
+// -0.067503
+0xac52
+// -0.123792
+0xafec
+// -0.000133
+0x885a
+// -0.085182
+0xad74
+// -0.123641
+0xafea
+// -0.006225
+0x9e60
+// -0.052304
+0xaab2
+// -0.117763
+0xaf89
+// -0.210040
+0xb2b9
+// -0.326207
+0xb538
+// -0.166993
+0xb158
+// -0.014252
+0xa34c
+// 0.001208
+0x14f2
+// 0.005495
+0x1da0
+// 0.005444
+0x1d93
+// -0.008278
+0xa03d
+// -0.040487
+0xa92f
+// -0.128513
+0xb01d
+// -0.291047
+0xb4a8
+// -0.023383
+0xa5fc
+// -0.177903
+0xb1b1
+// -0.160062
+0xb11f
+// -0.039968
+0xa91e
+// -0.130109
+0xb02a
+// 0.046533
+0x29f5
+// 0.063154
+0x2c0b
+// 0.106200
+0x2ecc
+// -0.143275
+0xb096
+// 0.075533
+0x2cd6
+// -0.041824
+0xa95a
+// -0.302038
+0xb4d5
+// -0.292583
+0xb4ae
+// -0.038931
+0xa8fc
+// -0.024542
+0xa648
+// 0.258402
+0x3422
+// 0.000316
+0xd2b
+// -0.048823
+0xaa40
+// -0.081544
+0xad38
+// -0.102880
+0xae96
+// -0.157891
+0xb10d
+// 0.046059
+0x29e5
+// -0.048830
+0xaa40
+// -0.137605
+0xb067
+// 0.197168
+0x324f
+// 0.170874
+0x3178
+// 0.320387
+0x3520
+// 0.101178
+0x2e7a
+// 0.135927
+0x305a
+// 0.137433
+0x3066
+// 0.208738
+0x32ae
+// 0.284768
+0x348e
+// 0.005385
+0x1d84
+// 0.056804
+0x2b45
+// 0.131152
+0x3032
+// 0.157811
+0x310d
+// 0.191743
+0x3223
+// 0.250465
+0x3402
+// 0.075983
+0x2cdd
+// -0.111683
+0xaf26
+// 0.157339
+0x3109
+// 0.310010
+0x34f6
+// 0.566197
+0x3888
+// 0.087205
+0x2d95
+// 0.094127
+0x2e06
+// -0.062544
+0xac01
+// -0.158658
+0xb114
+// -0.657430
+0xb942
+// -0.026149
+0xa6b2
+// -0.279494
+0xb479
+// -0.339836
+0xb570
+// -0.149699
+0xb0ca
+// -0.094597
+0xae0e
+// 0.235745
+0x338b
+// 0.089349
+0x2db8
+// 0.070777
+0x2c88
+// 0.088066
+0x2da3
+// -0.214965
+0xb2e1
+// -0.035827
+0xa896
+// 0.132079
+0x303a
+// 0.259027
+0x3425
+// 0.085501
+0x2d79
+// 0.133638
+0x3047
+// 0.148509
+0x30c1
+// 0.005061
+0x1d2f
+// 0.044034
+0x29a3
+// 0.180784
+0x31c9
+// 0.350689
+0x359c
+// 0.549128
+0x3865
+// 0.598767
+0x38ca
+// 0.203386
+0x3282
+// 0.320453
+0x3521
+// 0.010828
+0x218b
+// -0.065153
+0xac2b
+// -0.118378
+0xaf94
+// -0.170615
+0xb176
+// -0.157229
+0xb108
+// -0.329957
+0xb548
+// 0.065182
+0x2c2c
+// -0.308318
+0xb4ef
+// -0.007737
+0x9fec
+// -0.078869
+0xad0c
+// -0.208759
+0xb2ae
+// -0.317817
+0xb516
+// -0.436825
+0xb6fd
+// -0.562875
+0xb881
+// -0.500638
+0xb801
+// -0.038313
+0xa8e7
+// 0.142240
+0x308d
+// -0.064176
+0xac1b
+// -0.070394
+0xac81
+// -0.326199
+0xb538
+// -0.202152
+0xb278
+// -0.746820
+0xb9f9
+// -0.332043
+0xb550
+// -0.159405
+0xb11a
+// -0.002003
+0x981a
+// 0.099246
+0x2e5a
+// 0.168149
+0x3161
+// -0.070512
+0xac83
+// 0.217883
+0x32f9
+// -0.092314
+0xade8
+// 0.028743
+0x275c
+// 0.064526
+0x2c21
+// -0.152129
+0xb0de
+// -0.014821
+0xa397
+// -0.448644
+0xb72e
+// -0.352531
+0xb5a4
+// 0.241373
+0x33b9
+// 0.051898
+0x2aa5
+// -0.032489
+0xa829
+// -0.006806
+0x9ef8
+// -0.008373
+0xa049
+// 0.137558
+0x3067
+// -0.135986
+0xb05a
+// 0.067043
+0x2c4a
+// 0.087146
+0x2d94
+// -0.114465
+0xaf53
+// 0.457957
+0x3754
+// -0.002453
+0x9906
+// -0.052074
+0xaaaa
+// -0.116229
+0xaf70
+// -0.107406
+0xaee0
+// 0.071167
+0x2c8e
+// 0.482739
+0x37b9
+// 0.702980
+0x39a0
+// 0.656142
+0x3940
+// 0.212266
+0x32cb
+// 0.220792
+0x3311
+// -0.068231
+0xac5e
+// -0.319480
+0xb51d
+// -0.312708
+0xb501
+// -0.215048
+0xb2e2
+// 0.060144
+0x2bb3
+// -0.237808
+0xb39c
+// -0.433868
+0xb6f1
+// -0.412211
+0xb698
+// 0.112428
+0x2f32
+// 0.280554
+0x347d
+// 0.166199
+0x3152
+// -0.237495
+0xb39a
+// -0.252296
+0xb409
+// -0.000254
+0x8c2b
+// 0.019654
+0x2508
+// 0.106765
+0x2ed5
+// 0.189820
+0x3213
+// 0.315034
+0x350a
+// 0.439714
+0x3709
+// 0.722614
+0x39c8
+// 0.264876
+0x343d
+// 0.454951
+0x3747
+// 0.131677
+0x3037
+// 0.142105
+0x308c
+// -0.233290
+0xb377
+// -0.333867
+0xb558
+// -0.407799
+0xb686
+// -0.417379
+0xb6ae
+// -0.610529
+0xb8e2
+// -0.339787
+0xb570
+// -0.226529
+0xb340
+// 0.086385
+0x2d87
+// -0.019584
+0xa503
+// 0.077984
+0x2cfe
+// -0.066106
+0xac3b
+// -0.178503
+0xb1b6
+// -0.013437
+0xa2e1
+// -0.135477
+0xb056
+// -0.119417
+0xafa5
+// -0.067465
+0xac51
+// -0.050050
+0xaa68
+// -0.110583
+0xaf14
+// -0.015337
+0xa3da
+// -0.133722
+0xb047
+// 0.093153
+0x2df6
+// 0.067140
+0x2c4c
+// 0.098916
+0x2e55
+// 0.078462
+0x2d06
+// -0.176305
+0xb1a4
+// 0.152100
+0x30de
+// 0.151733
+0x30db
+// -0.071493
+0xac93
+// -0.212084
+0xb2c9
+// -0.227243
+0xb346
+// -0.171001
+0xb179
+// -0.077215
+0xacf1
+// 0.010318
+0x2148
+// 0.052996
+0x2ac9
+// -0.040240
+0xa927
+// -0.001809
+0x9769
+// 0.058699
+0x2b83
+// 0.159161
+0x3118
+// 0.281126
+0x347f
+// 0.455180
+0x3748
+// 0.216136
+0x32eb
+// 0.294780
+0x34b7
+// 0.149754
+0x30cb
+// -0.046670
+0xa9f9
+// -0.106550
+0xaed2
+// 0.298281
+0x34c6
+// 0.215138
+0x32e2
+// -0.027699
+0xa717
+// -0.306348
+0xb4e7
+// -0.382448
+0xb61f
+// -0.152249
+0xb0df
+// -0.203681
+0xb285
+// -0.269015
+0xb44e
+// -0.542101
+0xb856
+// -0.657518
+0xb943
+// -0.135879
+0xb059
+// 0.261417
+0x342f
+// 0.258619
+0x3423
+// -0.004644
+0x9cc1
+// -0.010828
+0xa18b
+// 0.014926
+0x23a4
+// 0.021524
+0x2583
+// 0.024107
+0x262c
+// 0.082317
+0x2d45
+// 0.257925
+0x3420
+// 0.028069
+0x2730
+// 0.203730
+0x3285
+// 0.475599
+0x379c
+// 0.289165
+0x34a0
+// 0.289580
+0x34a2
+// 0.225805
+0x333a
+// 0.098036
+0x2e46
+// -0.254717
+0xb413
+// -0.348150
+0xb592
+// -0.353344
+0xb5a7
+// -0.196966
+0xb24e
+// 0.370447
+0x35ed
+// 0.723275
+0x39c9
+// 0.821532
+0x3a92
+// 0.413810
+0x369f
+// -0.095968
+0xae24
+// -0.001184
+0x94da
+// 0.113428
+0x2f42
+// -0.238341
+0xb3a0
+// 0.174324
+0x3194
+// 0.142920
+0x3093
+// 0.232929
+0x3374
+// -0.340203
+0xb571
+// 0.006058
+0x1e34
+// -0.020883
+0xa559
+// -0.115213
+0xaf60
+// 0.091744
+0x2ddf
+// -0.031024
+0xa7f1
+// -0.033585
+0xa84d
+// 0.112590
+0x2f35
+// -0.004415
+0x9c85
+// -0.061514
+0xabe0
+// -0.262093
+0xb432
+// -0.605665
+0xb8d8
+// -0.758570
+0xba12
+// -0.279216
+0xb478
+// 0.042313
+0x296b
+// 0.001833
+0x1782
+// -0.108849
+0xaef7
+// 0.263011
+0x3435
+// -0.112915
+0xaf3a
+// -0.220294
+0xb30d
+// -0.126251
+0xb00a
+// 0.158832
+0x3115
+// 0.003807
+0x1bcc
+// -0.001935
+0x97ed
+// -0.123043
+0xafe0
+// -0.319952
+0xb51f
+// 0.360961
+0x35c6
+// 0.683943
+0x3979
+// 0.059783
+0x2ba7
+// -0.001822
+0x9777
+// 0.020964
+0x255e
+// 0.046107
+0x29e7
+// 0.135326
+0x3055
+// 0.183165
+0x31dc
+// 0.547999
+0x3862
+// 0.560811
+0x387d
+// -0.026654
+0xa6d3
+// 0.114125
+0x2f4e
+// -0.218640
+0xb2ff
+// 0.369029
+0x35e8
+// -0.275240
+0xb467
+// 0.055775
+0x2b24
+// 0.162290
+0x3131
+// 0.002434
+0x18fc
+// 0.127410
+0x3014
+// 0.281666
+0x3482
+// -0.107248
+0xaedd
+// -0.093704
+0xadff
+// 0.057219
+0x2b53
+// 0.069789
+0x2c77
+// 0.112750
+0x2f37
+// 0.179634
+0x31c0
+// -0.002740
+0x999d
+// 0.036972
+0x28bb
+// 0.131121
+0x3032
+// -0.179321
+0xb1bd
+// -0.296958
+0xb4c0
+// 0.055239
+0x2b12
+// 0.326115
+0x3538
+// 0.457292
+0x3751
+// 0.285991
+0x3493
+// 0.239164
+0x33a7
+// 0.360825
+0x35c6
+// -0.238245
+0xb3a0
+// 0.262037
+0x3431
+// 0.430990
+0x36e5
+// 0.093565
+0x2dfd
+// -0.074533
+0xacc5
+// 0.004178
+0x1c47
+// 0.083376
+0x2d56
+// 0.197688
+0x3253
+// 0.256560
+0x341b
+// 0.043148
+0x2986
+// -0.079919
+0xad1d
+// -0.101520
+0xae7f
+// -0.266421
+0xb443
+// 0.167011
+0x3158
+// 0.261343
+0x342e
+// 0.143821
+0x309a
+// -0.554828
+0xb870
+// -0.117002
+0xaf7d
+// 0.307342
+0x34eb
+// 0.376825
+0x3607
+// 0.245697
+0x33dd
+// 0.020911
+0x255a
+// -0.069046
+0xac6b
+// 0.174503
+0x3196
+// -0.065410
+0xac30
+// -0.009347
+0xa0c9
+// 0.157650
+0x310b
+// -0.064627
+0xac23
+// -0.082898
+0xad4e
+// -0.120006
+0xafae
+// -0.168424
+0xb164
+// -0.031338
+0xa803
+// 0.022287
+0x25b5
+// -0.258200
+0xb422
+// 0.047068
+0x2a06
+// -0.055814
+0xab25
+// -0.059492
+0xab9d
+// 0.011615
+0x21f2
+// 0.107937
+0x2ee8
+// 0.103801
+0x2ea5
+// -0.485937
+0xb7c6
+// -0.171555
+0xb17d
+// 0.030067
+0x27b2
+// -0.060560
+0xabc0
+// 0.197419
+0x3251
+// 0.280291
+0x347c
+// -0.316890
+0xb512
+// -0.186192
+0xb1f5
+// 0.043192
+0x2987
+// -0.093151
+0xadf6
+// -0.123919
+0xafee
+// 0.140205
+0x307d
+// 0.019218
+0x24eb
+// -0.001921
+0x97de
+// -0.064024
+0xac19
+// -0.018263
+0xa4ad
+// 0.020668
+0x254b
+// 0.193727
+0x3233
+// 0.031032
+0x27f2
+// 0.318852
+0x351a
+// 0.502350
+0x3805
+// -0.090513
+0xadcb
+// -0.060620
+0xabc2
+// -0.072643
+0xaca6
+// -0.188282
+0xb206
+// -0.191215
+0xb21e
+// -0.218403
+0xb2fd
+// -0.110183
+0xaf0d
+// 0.046028
+0x29e4
+// -0.004392
+0x9c7f
+// -0.106160
+0xaecb
+// -0.133741
+0xb048
+// -0.207862
+0xb2a7
+// 0.024309
+0x2639
+// -0.043892
+0xa99e
+// 0.146157
+0x30ad
+// 0.014439
+0x2365
+// 0.082895
+0x2d4e
+// -0.103286
+0xae9c
+// 0.104341
+0x2eae
+// -0.441123
+0xb70f
+// -0.029189
+0xa779
+// -0.006802
+0x9ef7
+// 0.123887
+0x2fee
+// -0.056398
+0xab38
+// 0.048568
+0x2a37
+// 0.162928
+0x3137
+// -0.026068
+0xa6ac
+// -0.004063
+0x9c29
+// 0.001794
+0x1759
+// -0.020749
+0xa550
+// -0.103663
+0xaea2
+// -0.002586
+0x994c
+// 0.079431
+0x2d15
+// 0.369752
+0x35eb
+// 0.259638
+0x3427
+// -0.383597
+0xb623
+// -0.007375
+0x9f8d
+// -0.215812
+0xb2e8
+// 0.207844
+0x32a7
+// -0.158664
+0xb114
+// -0.051131
+0xaa8b
+// -0.179592
+0xb1bf
+// -0.106048
+0xaec9
+// -0.124810
+0xaffd
+// -0.119651
+0xafa8
+// 0.229324
+0x3357
+// -0.008981
+0xa099
+// 0.166964
+0x3158
+// 0.361050
+0x35c7
+// -0.155327
+0xb0f8
+// -0.349776
+0xb599
+// -0.196314
+0xb248
+// 0.407544
+0x3685
+// 0.008986
+0x209a
+// -0.003470
+0x9b1b
+// 0.033300
+0x2843
+// 0.034681
+0x2870
+// -0.200356
+0xb269
+// -0.543578
+0xb859
+// -0.282517
+0xb485
+// 0.278330
+0x3474
+// 0.020383
+0x2538
+// -0.064572
+0xac22
+// 0.048856
+0x2a41
+// 0.153444
+0x30e9
+// -0.037427
+0xa8ca
+// -0.118551
+0xaf96
+// 0.080518
+0x2d27
+// 0.047109
+0x2a08
+// -0.039777
+0xa917
+// -0.342226
+0xb57a
+// -0.551993
+0xb86a
+// -0.666704
+0xb955
+// -0.102848
+0xae95
+// 0.021537
+0x2583
+// -0.316881
+0xb512
+// -0.022447
+0xa5bf
+// 0.014243
+0x234b
+// 0.155487
+0x30fa
+// 0.037775
+0x28d6
+// 0.212418
+0x32cc
+// -0.099069
+0xae57
+// -0.106617
+0xaed3
+// -0.100164
+0xae69
+// 0.036114
+0x289f
+// -0.206325
+0xb29a
+// -0.121733
+0xafca
+// 0.066811
+0x2c47
+// 0.210634
+0x32be
+// 0.019949
+0x251b
+// 0.078344
+0x2d04
+// 0.067522
+0x2c52
+// -0.064442
+0xac20
+// -0.116822
+0xaf7a
+// -0.082831
+0xad4d
+// -0.074823
+0xacca
+// 0.113528
+0x2f44
+// 0.050748
+0x2a7f
+// 0.119943
+0x2fad
+// -0.175745
+0xb1a0
+// -0.001853
+0x9797
+// -0.063306
+0xac0d
+// -0.245412
+0xb3da
+// -0.336502
+0xb562
+// -0.161681
+0xb12c
+// -0.037547
+0xa8ce
+// 0.074838
+0x2cca
+// 0.024570
+0x264a
+// 0.127803
+0x3017
+// -0.142830
+0xb092
+// -0.415533
+0xb6a6
+// -0.045661
+0xa9d8
+// 0.085896
+0x2d7f
+// -0.016967
+0xa458
+// -0.126164
+0xb00a
+// -0.367936
+0xb5e3
+// -0.303256
+0xb4da
+// -0.171910
+0xb180
+// -0.163457
+0xb13b
+// 0.033204
+0x2840
+// -0.008231
+0xa037
+// 0.122595
+0x2fd9
+// -0.170215
+0xb172
+// -0.002906
+0x99f4
+// 0.034206
+0x2861
+// 0.115731
+0x2f68
+// 0.327151
+0x353c
+// 0.315929
+0x350e
+// 0.233422
+0x3378
+// -0.020788
+0xa552
+// 0.024635
+0x264e
+// -0.389574
+0xb63c
+// -0.442496
+0xb714
+// -0.287331
+0xb499
+// -0.200434
+0xb26a
+// -0.263664
+0xb438
+// -0.097744
+0xae41
+// 0.140883
+0x3082
+// -0.210345
+0xb2bb
+// -0.238730
+0xb3a4
+// -0.153441
+0xb0e9
+// -0.123014
+0xafdf
+// -0.219135
+0xb303
+// -0.115389
+0xaf63
+// 0.275258
+0x3467
+// 0.233695
+0x337a

+ 5338 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Reference3_f16.txt

@@ -0,0 +1,5338 @@
+H
+2668
+// 0.012078
+0x222f
+// -0.031399
+0xa805
+// -0.060114
+0xabb2
+// -0.087765
+0xad9e
+// -0.191173
+0xb21e
+// 0.031227
+0x27ff
+// -0.002045
+0x9830
+// -0.027050
+0xa6ed
+// -0.048943
+0xaa44
+// -0.073072
+0xacad
+// -0.099427
+0xae5d
+// -0.159115
+0xb117
+// -0.245346
+0xb3da
+// -0.307429
+0xb4eb
+// -0.012511
+0xa268
+// -0.055819
+0xab25
+// -0.109092
+0xaefb
+// -0.188665
+0xb20a
+// -0.157468
+0xb10a
+// -0.053206
+0xaacf
+// -0.043948
+0xa9a0
+// 0.059573
+0x2ba0
+// -0.200252
+0xb268
+// -0.114971
+0xaf5c
+// -0.051773
+0xaaa1
+// -0.084632
+0xad6b
+// -0.055576
+0xab1d
+// -0.131810
+0xb038
+// -0.238470
+0xb3a2
+// -0.417408
+0xb6ae
+// 0.009843
+0x210a
+// 0.041067
+0x2942
+// 0.073021
+0x2cac
+// 0.103102
+0x2e99
+// 0.141124
+0x3084
+// 0.173883
+0x3190
+// 0.204294
+0x328a
+// 0.232719
+0x3372
+// 0.178975
+0x31ba
+// 0.018431
+0x24b8
+// 0.016111
+0x2420
+// 0.029574
+0x2792
+// -0.010079
+0xa129
+// 0.067212
+0x2c4d
+// 0.133397
+0x3045
+// 0.225152
+0x3334
+// 0.008525
+0x205d
+// 0.054566
+0x2afc
+// 0.112726
+0x2f37
+// 0.150274
+0x30cf
+// 0.135175
+0x3053
+// -0.034500
+0xa86b
+// -0.083028
+0xad50
+// 0.000293
+0xccd
+// 0.028796
+0x275f
+// 0.066781
+0x2c46
+// -0.014313
+0xa354
+// 0.165790
+0x314e
+// 0.326853
+0x353b
+// 0.232895
+0x3374
+// 0.090878
+0x2dd1
+// -0.049568
+0xaa58
+// 0.234970
+0x3385
+// 0.072171
+0x2c9e
+// 0.143432
+0x3097
+// 0.150657
+0x30d2
+// 0.107689
+0x2ee4
+// -0.057431
+0xab5a
+// 0.005837
+0x1dfa
+// 0.003246
+0x1aa6
+// 0.002582
+0x1949
+// 0.035251
+0x2883
+// 0.076085
+0x2cdf
+// 0.104079
+0x2ea9
+// 0.116875
+0x2f7b
+// 0.133230
+0x3043
+// 0.131541
+0x3036
+// 0.083943
+0x2d5f
+// 0.094525
+0x2e0d
+// -0.235174
+0xb387
+// -0.382493
+0xb61f
+// -0.347946
+0xb591
+// -0.298096
+0xb4c5
+// -0.413466
+0xb69e
+// -0.327520
+0xb53e
+// -0.249508
+0xb3fc
+// -0.275564
+0xb469
+// -0.262174
+0xb432
+// -0.242563
+0xb3c3
+// -0.313142
+0xb503
+// -0.178602
+0xb1b7
+// -0.095772
+0xae21
+// -0.033333
+0xa844
+// -0.066667
+0xac44
+// -0.086363
+0xad87
+// -0.106060
+0xaeca
+// -0.130798
+0xb02f
+// -0.155537
+0xb0fa
+// -0.182640
+0xb1d8
+// -0.209744
+0xb2b6
+// 0.051817
+0x2aa2
+// 0.046711
+0x29fb
+// -0.083440
+0xad57
+// -0.104496
+0xaeb0
+// -0.063338
+0xac0e
+// -0.062515
+0xac00
+// 0.008099
+0x2026
+// 0.016198
+0x2426
+// 0.016093
+0x241f
+// 0.015988
+0x2418
+// -0.002636
+0x9966
+// -0.021260
+0xa571
+// -0.051046
+0xaa89
+// -0.080832
+0xad2c
+// -0.103640
+0xaea2
+// -0.126449
+0xb00c
+// -0.146019
+0xb0ac
+// -0.165588
+0xb14d
+// -0.170555
+0xb175
+// -0.175522
+0xb19e
+// 0.033333
+0x2844
+// 0.066667
+0x2c44
+// 0.082530
+0x2d48
+// 0.098393
+0x2e4c
+// 0.122637
+0x2fd9
+// 0.146882
+0x30b3
+// 0.199429
+0x3262
+// 0.251977
+0x3408
+// -0.021740
+0xa591
+// -0.028789
+0xa75f
+// 0.138392
+0x306e
+// 0.165812
+0x314e
+// 0.128370
+0x301c
+// 0.157981
+0x310e
+// -0.094899
+0xae13
+// -0.121357
+0xafc4
+// 0.088594
+0x2dac
+// 0.088437
+0x2da9
+// -0.066191
+0xac3c
+// -0.084831
+0xad6e
+// -0.177013
+0xb1aa
+// -0.184610
+0xb1e8
+// 0.067554
+0x2c53
+// 0.097589
+0x2e3f
+// 0.113429
+0x2f42
+// 0.129565
+0x3025
+// 0.161839
+0x312e
+// 0.182239
+0x31d5
+// 0.010870
+0x2191
+// 0.012437
+0x225e
+// -0.069979
+0xac7b
+// -0.073469
+0xacb4
+// 0.004625
+0x1cbc
+// 0.009249
+0x20bc
+// 0.013335
+0x22d4
+// 0.017421
+0x2476
+// 0.034981
+0x287a
+// 0.052541
+0x2aba
+// 0.051583
+0x2a9a
+// 0.050624
+0x2a7b
+// 0.047193
+0x2a0a
+// 0.043761
+0x299a
+// 0.041940
+0x295e
+// 0.040119
+0x2923
+// 0.053081
+0x2acb
+// 0.066043
+0x2c3a
+// 0.075682
+0x2cd8
+// 0.085320
+0x2d76
+// 0.014400
+0x235f
+// 0.017476
+0x2479
+// 0.024817
+0x265a
+// 0.023535
+0x2606
+// -0.213571
+0xb2d6
+// -0.235089
+0xb386
+// 0.047200
+0x2a0b
+// 0.033193
+0x2840
+// 0.063096
+0x2c0a
+// 0.053431
+0x2ad7
+// 0.028633
+0x2754
+// 0.029597
+0x2794
+// -0.216267
+0xb2ec
+// -0.225592
+0xb338
+// -0.170257
+0xb173
+// -0.168105
+0xb161
+// 0.014088
+0x2337
+// 0.028175
+0x2737
+// 0.049984
+0x2a66
+// 0.071793
+0x2c98
+// 0.068723
+0x2c66
+// 0.065652
+0x2c34
+// 0.042383
+0x296d
+// 0.019114
+0x24e5
+// -0.135978
+0xb05a
+// -0.178368
+0xb1b5
+// -0.264472
+0xb43b
+// -0.288807
+0xb49f
+// -0.088316
+0xada7
+// -0.086864
+0xad8f
+// 0.106347
+0x2ece
+// 0.137975
+0x306a
+// 0.232120
+0x336e
+// 0.285996
+0x3493
+// 0.105046
+0x2eb9
+// 0.130316
+0x302c
+// 0.143125
+0x3094
+// 0.163182
+0x3139
+// 0.089768
+0x2dbf
+// 0.096178
+0x2e28
+// -0.049630
+0xaa5a
+// -0.057727
+0xab64
+// -0.056759
+0xab44
+// -0.078415
+0xad05
+// -0.094638
+0xae0f
+// -0.145319
+0xb0a6
+// -0.157430
+0xb10a
+// -0.198889
+0xb25d
+// -0.271330
+0xb457
+// -0.322117
+0xb527
+// -0.254561
+0xb413
+// -0.318092
+0xb517
+// -0.096238
+0xae29
+// -0.141051
+0xb083
+// -0.236811
+0xb394
+// -0.288141
+0xb49c
+// -0.287428
+0xb499
+// -0.339692
+0xb56f
+// -0.140265
+0xb07d
+// -0.173879
+0xb190
+// -0.063091
+0xac0a
+// -0.069219
+0xac6e
+// -0.004441
+0x9c8c
+// -0.008882
+0xa08c
+// -0.016994
+0xa45a
+// -0.025107
+0xa66d
+// -0.036867
+0xa8b8
+// -0.048628
+0xaa39
+// -0.070136
+0xac7d
+// -0.091644
+0xaddd
+// -0.127006
+0xb010
+// -0.162368
+0xb132
+// -0.187291
+0xb1fe
+// -0.212213
+0xb2ca
+// -0.255654
+0xb417
+// -0.299095
+0xb4c9
+// -0.339089
+0xb56d
+// -0.379082
+0xb611
+// -0.329214
+0xb544
+// -0.350405
+0xb59b
+// -0.312907
+0xb502
+// -0.334143
+0xb559
+// -0.289157
+0xb4a0
+// -0.302549
+0xb4d7
+// -0.165755
+0xb14e
+// -0.184919
+0xb1eb
+// 0.038888
+0x28fa
+// 0.041029
+0x2940
+// -0.143255
+0xb096
+// -0.160501
+0xb123
+// 0.135816
+0x3059
+// 0.135837
+0x3059
+// 0.075338
+0x2cd2
+// 0.069998
+0x2c7b
+// -0.177510
+0xb1ae
+// -0.195233
+0xb23f
+// -0.162687
+0xb135
+// -0.189610
+0xb211
+// -0.297453
+0xb4c2
+// -0.338158
+0xb569
+// -0.130419
+0xb02c
+// -0.170986
+0xb179
+// -0.347410
+0xb58f
+// -0.404629
+0xb679
+// -0.298783
+0xb4c8
+// -0.336095
+0xb561
+// -0.350396
+0xb59b
+// -0.384717
+0xb628
+// 0.000959
+0x13da
+// 0.001917
+0x17da
+// 0.002876
+0x19e4
+// 0.003834
+0x1bda
+// 0.000031
+0x207
+// -0.003772
+0x9bba
+// -0.007576
+0x9fc2
+// -0.011379
+0xa1d3
+// -0.012026
+0xa228
+// -0.012674
+0xa27d
+// -0.013321
+0xa2d2
+// -0.013969
+0xa327
+// -0.019312
+0xa4f2
+// -0.024656
+0xa650
+// -0.030000
+0xa7ae
+// -0.035343
+0xa886
+// -0.055635
+0xab1f
+// -0.060589
+0xabc1
+// -0.065543
+0xac32
+// -0.070498
+0xac83
+// -0.013019
+0xa2aa
+// -0.031730
+0xa810
+// -0.050441
+0xaa75
+// -0.069152
+0xac6d
+// -0.145949
+0xb0ac
+// -0.172253
+0xb183
+// -0.198556
+0xb25b
+// -0.224860
+0xb332
+// -0.002123
+0x9859
+// -0.004245
+0x9c59
+// -0.006368
+0x9e85
+// -0.008490
+0xa059
+// -0.008699
+0xa074
+// -0.008907
+0xa08f
+// -0.009116
+0xa0ab
+// -0.009324
+0xa0c6
+// -0.002152
+0x9868
+// 0.005021
+0x1d24
+// 0.012194
+0x223e
+// 0.019367
+0x24f5
+// 0.026350
+0x26bf
+// 0.033334
+0x2844
+// 0.040317
+0x2929
+// 0.047301
+0x2a0e
+// 0.061408
+0x2bdc
+// 0.075515
+0x2cd5
+// 0.089622
+0x2dbc
+// 0.103729
+0x2ea3
+// 0.113706
+0x2f47
+// 0.123683
+0x2fea
+// 0.133661
+0x3047
+// 0.143638
+0x3099
+// 0.143812
+0x309a
+// 0.143985
+0x309c
+// 0.144159
+0x309d
+// 0.144332
+0x309e
+// -0.000005
+0x8056
+// -0.000010
+0x80ac
+// -0.000015
+0x8103
+// -0.000021
+0x8159
+// 0.000037
+0x269
+// 0.000094
+0x62b
+// 0.000151
+0x8f6
+// 0.000209
+0xad7
+// -0.008315
+0xa042
+// -0.016838
+0xa44f
+// -0.025361
+0xa67e
+// -0.033885
+0xa856
+// -0.055418
+0xab18
+// -0.076951
+0xaced
+// -0.098484
+0xae4e
+// -0.120017
+0xafae
+// -0.147587
+0xb0b9
+// -0.175239
+0xb19c
+// -0.202891
+0xb27e
+// -0.230543
+0xb361
+// -0.274431
+0xb464
+// -0.317320
+0xb514
+// -0.360209
+0xb5c3
+// -0.403098
+0xb673
+// -0.288574
+0xb49e
+// -0.311341
+0xb4fb
+// -0.334108
+0xb559
+// -0.356875
+0xb5b6
+// -0.145314
+0xb0a6
+// -0.141907
+0xb08b
+// -0.138500
+0xb06f
+// -0.135093
+0xb053
+// -0.029060
+0xa770
+// -0.021014
+0xa561
+// -0.012968
+0xa2a4
+// -0.004922
+0x9d0a
+// 0.249615
+0x33fd
+// 0.261366
+0x342f
+// 0.273117
+0x345f
+// 0.284867
+0x348f
+// 0.086318
+0x2d86
+// 0.072422
+0x2ca3
+// 0.058526
+0x2b7e
+// 0.044630
+0x29b6
+// -0.204594
+0xb28c
+// -0.243185
+0xb3c8
+// -0.281776
+0xb482
+// -0.320367
+0xb520
+// -0.325547
+0xb535
+// -0.354494
+0xb5ac
+// -0.383441
+0xb623
+// -0.412387
+0xb699
+// -0.252484
+0xb40a
+// -0.276089
+0xb46b
+// -0.299694
+0xb4cc
+// -0.323299
+0xb52c
+// -0.125622
+0xb005
+// -0.153640
+0xb0eb
+// -0.181657
+0xb1d0
+// -0.209675
+0xb2b6
+// -0.030091
+0xa7b4
+// -0.034997
+0xa87b
+// -0.039903
+0xa91c
+// -0.044810
+0xa9bc
+// -0.002316
+0x98be
+// -0.004632
+0x9cbe
+// -0.006948
+0x9f1d
+// -0.009264
+0xa0be
+// -0.019360
+0xa4f5
+// -0.029457
+0xa78a
+// -0.039553
+0xa910
+// -0.049650
+0xaa5b
+// -0.058007
+0xab6d
+// -0.066363
+0xac3f
+// -0.074720
+0xacc8
+// -0.083077
+0xad51
+// -0.086159
+0xad84
+// -0.089240
+0xadb6
+// -0.092321
+0xade9
+// -0.095402
+0xae1b
+// -0.108287
+0xaeee
+// -0.121172
+0xafc1
+// -0.134057
+0xb04a
+// -0.146942
+0xb0b4
+// -0.162209
+0xb131
+// -0.177476
+0xb1ae
+// -0.192743
+0xb22b
+// -0.208009
+0xb2a8
+// -0.217680
+0xb2f7
+// -0.227350
+0xb346
+// -0.237021
+0xb396
+// -0.246691
+0xb3e5
+// -0.248956
+0xb3f7
+// -0.251222
+0xb405
+// -0.253487
+0xb40e
+// -0.255752
+0xb418
+// -0.181342
+0xb1ce
+// -0.181043
+0xb1cb
+// -0.180744
+0xb1c9
+// -0.180446
+0xb1c6
+// 0.072736
+0x2ca8
+// 0.076945
+0x2ced
+// 0.081153
+0x2d32
+// 0.085361
+0x2d77
+// 0.029520
+0x278f
+// 0.029342
+0x2783
+// 0.029163
+0x2777
+// 0.028985
+0x276c
+// -0.143788
+0xb09a
+// -0.147735
+0xb0ba
+// -0.151682
+0xb0db
+// -0.155630
+0xb0fb
+// 0.170400
+0x3174
+// 0.182705
+0x31d9
+// 0.195009
+0x323e
+// 0.207314
+0x32a2
+// 0.298888
+0x34c8
+// 0.314251
+0x3507
+// 0.329614
+0x3546
+// 0.344977
+0x3585
+// 0.176899
+0x31a9
+// 0.187901
+0x3203
+// 0.198903
+0x325d
+// 0.209905
+0x32b8
+// -0.023370
+0xa5fc
+// -0.019677
+0xa50a
+// -0.015984
+0xa418
+// -0.012291
+0xa24b
+// 0.005160
+0x1d49
+// 0.010319
+0x2149
+// 0.015479
+0x23ed
+// 0.020639
+0x2549
+// 0.022293
+0x25b5
+// 0.023947
+0x2621
+// 0.025601
+0x268e
+// 0.027255
+0x26fa
+// 0.028717
+0x275a
+// 0.030180
+0x27ba
+// 0.031643
+0x280d
+// 0.033105
+0x283d
+// 0.031308
+0x2802
+// 0.029511
+0x278e
+// 0.027714
+0x2718
+// 0.025917
+0x26a2
+// -0.059164
+0xab93
+// -0.061690
+0xabe5
+// -0.064215
+0xac1c
+// -0.066740
+0xac45
+// -0.010906
+0xa195
+// -0.011166
+0xa1b8
+// -0.011426
+0xa1da
+// -0.011685
+0xa1fc
+// -0.003116
+0x9a62
+// 0.002394
+0x18e7
+// 0.007904
+0x200c
+// 0.013414
+0x22de
+// 0.089536
+0x2dbb
+// 0.113500
+0x2f44
+// 0.137465
+0x3066
+// 0.161430
+0x312a
+// 0.112732
+0x2f37
+// 0.134940
+0x3051
+// 0.157149
+0x3107
+// 0.179357
+0x31bd
+// 0.224053
+0x332b
+// 0.248902
+0x33f7
+// 0.273751
+0x3461
+// 0.298600
+0x34c7
+// 0.210095
+0x32b9
+// 0.210847
+0x32bf
+// 0.211599
+0x32c5
+// 0.212351
+0x32cc
+// -0.034201
+0xa861
+// -0.037635
+0xa8d1
+// -0.041069
+0xa942
+// -0.044503
+0xa9b2
+// -0.098376
+0xae4c
+// -0.109441
+0xaf01
+// -0.120506
+0xafb6
+// -0.131571
+0xb036
+// -0.180092
+0xb1c3
+// -0.206213
+0xb299
+// -0.232334
+0xb36f
+// -0.258455
+0xb423
+// 0.033402
+0x2847
+// 0.028962
+0x276a
+// 0.024522
+0x2647
+// 0.020082
+0x2524
+// -0.155825
+0xb0fd
+// -0.155586
+0xb0fb
+// -0.155347
+0xb0f9
+// -0.155108
+0xb0f7
+// -0.059086
+0xab90
+// -0.042352
+0xa96c
+// -0.025619
+0xa68f
+// -0.008885
+0xa08d
+// 0.236353
+0x3390
+// 0.263097
+0x3436
+// 0.289840
+0x34a3
+// 0.316584
+0x3511
+// 0.276601
+0x346d
+// 0.287216
+0x3498
+// 0.297831
+0x34c4
+// 0.308447
+0x34ef
+// 0.048161
+0x2a2a
+// 0.038888
+0x28fa
+// 0.029615
+0x2795
+// 0.020342
+0x2535
+// -0.194930
+0xb23d
+// -0.225580
+0xb338
+// -0.256229
+0xb41a
+// -0.286879
+0xb497
+// -0.260511
+0xb42b
+// -0.292479
+0xb4ae
+// -0.324448
+0xb531
+// -0.356416
+0xb5b4
+// -0.167998
+0xb160
+// -0.187035
+0xb1fc
+// -0.206072
+0xb298
+// -0.225110
+0xb334
+// -0.005742
+0x9de1
+// -0.011484
+0xa1e1
+// -0.017226
+0xa469
+// -0.022968
+0xa5e1
+// -0.027421
+0xa705
+// -0.031873
+0xa814
+// -0.036325
+0xa8a6
+// -0.040778
+0xa938
+// -0.047311
+0xaa0e
+// -0.053844
+0xaae4
+// -0.060378
+0xabba
+// -0.066911
+0xac48
+// -0.080727
+0xad2b
+// -0.094544
+0xae0d
+// -0.108360
+0xaeef
+// -0.122177
+0xafd2
+// -0.141934
+0xb08b
+// -0.161690
+0xb12d
+// -0.181447
+0xb1ce
+// -0.201204
+0xb270
+// -0.217360
+0xb2f5
+// -0.233516
+0xb379
+// -0.249673
+0xb3fd
+// -0.265829
+0xb441
+// -0.281534
+0xb481
+// -0.297238
+0xb4c1
+// -0.312943
+0xb502
+// -0.328648
+0xb542
+// -0.337555
+0xb567
+// -0.346463
+0xb58b
+// -0.355370
+0xb5b0
+// -0.364278
+0xb5d4
+// -0.177029
+0xb1aa
+// -0.173525
+0xb18e
+// -0.170022
+0xb171
+// -0.166518
+0xb154
+// -0.208199
+0xb2aa
+// -0.208613
+0xb2ad
+// -0.209027
+0xb2b0
+// -0.209442
+0xb2b4
+// -0.140818
+0xb082
+// -0.138780
+0xb071
+// -0.136741
+0xb060
+// -0.134703
+0xb04f
+// 0.106747
+0x2ed5
+// 0.115133
+0x2f5e
+// 0.123519
+0x2fe8
+// 0.131906
+0x3039
+// 0.344088
+0x3581
+// 0.366185
+0x35dc
+// 0.388282
+0x3636
+// 0.410380
+0x3691
+// 0.320967
+0x3523
+// 0.346764
+0x358c
+// 0.372561
+0x35f6
+// 0.398358
+0x3660
+// 0.399448
+0x3664
+// 0.414990
+0x36a4
+// 0.430531
+0x36e3
+// 0.446072
+0x3723
+// 0.235617
+0x338a
+// 0.242679
+0x33c4
+// 0.249740
+0x33fe
+// 0.256802
+0x341c
+// 0.045771
+0x29dc
+// 0.048149
+0x2a2a
+// 0.050527
+0x2a78
+// 0.052905
+0x2ac6
+// 0.144423
+0x309f
+// 0.151826
+0x30dc
+// 0.159229
+0x3118
+// 0.166632
+0x3155
+// 0.163829
+0x313e
+// 0.172935
+0x3189
+// 0.182041
+0x31d3
+// 0.191147
+0x321e
+// 0.239319
+0x33a9
+// 0.257558
+0x341f
+// 0.275797
+0x346a
+// 0.294036
+0x34b4
+// 0.060546
+0x2bc0
+// 0.075723
+0x2cd9
+// 0.090900
+0x2dd1
+// 0.106077
+0x2eca
+// -0.119853
+0xafac
+// -0.112188
+0xaf2e
+// -0.104522
+0xaeb0
+// -0.096857
+0xae33
+// 0.233673
+0x337a
+// 0.250477
+0x3402
+// 0.267280
+0x3447
+// 0.284084
+0x348c
+// -0.015152
+0xa3c2
+// -0.030303
+0xa7c2
+// -0.045455
+0xa9d1
+// -0.060606
+0xabc2
+// -0.075758
+0xacd9
+// -0.089402
+0xadb9
+// -0.103046
+0xae98
+// -0.116690
+0xaf78
+// -0.130334
+0xb02c
+// -0.143978
+0xb09b
+// -0.155824
+0xb0fd
+// -0.167669
+0xb15e
+// -0.179515
+0xb1bf
+// -0.191361
+0xb220
+// -0.203207
+0xb281
+// -0.218250
+0xb2fc
+// -0.233294
+0xb377
+// -0.248337
+0xb3f2
+// -0.263381
+0xb437
+// -0.278424
+0xb474
+// 0.019187
+0x24e9
+// 0.013768
+0x230d
+// 0.008350
+0x2046
+// 0.002931
+0x1a01
+// -0.002488
+0x9918
+// -0.043886
+0xa99e
+// -0.055135
+0xab0f
+// -0.066384
+0xac40
+// -0.077633
+0xacf8
+// -0.088882
+0xadb0
+// -0.141434
+0xb087
+// -0.158018
+0xb10e
+// -0.174603
+0xb196
+// -0.191188
+0xb21e
+// -0.207773
+0xb2a6
+// -0.006539
+0x9eb2
+// -0.013078
+0xa2b2
+// -0.019617
+0xa506
+// -0.026156
+0xa6b2
+// -0.032695
+0xa82f
+// -0.034921
+0xa878
+// -0.037146
+0xa8c1
+// -0.039371
+0xa90a
+// -0.041597
+0xa953
+// -0.043822
+0xa99c
+// -0.047239
+0xaa0c
+// -0.050655
+0xaa7c
+// -0.054072
+0xaaec
+// -0.057488
+0xab5c
+// -0.060904
+0xabcc
+// -0.061610
+0xabe3
+// -0.062315
+0xabfa
+// -0.063020
+0xac09
+// -0.063725
+0xac14
+// -0.064431
+0xac20
+// -0.061308
+0xabd9
+// -0.058186
+0xab73
+// -0.055064
+0xab0c
+// -0.051942
+0xaaa6
+// -0.048820
+0xaa40
+// -0.053635
+0xaadd
+// -0.058449
+0xab7b
+// -0.063263
+0xac0d
+// -0.068078
+0xac5b
+// -0.072892
+0xacaa
+// -0.085134
+0xad73
+// -0.097376
+0xae3b
+// -0.109618
+0xaf04
+// -0.121859
+0xafcd
+// -0.134101
+0xb04b
+// -0.008141
+0xa02b
+// -0.016281
+0xa42b
+// -0.024422
+0xa640
+// -0.032562
+0xa82b
+// -0.040703
+0xa936
+// -0.049123
+0xaa4a
+// -0.057543
+0xab5e
+// -0.065963
+0xac39
+// -0.074383
+0xacc3
+// -0.082803
+0xad4d
+// -0.087337
+0xad97
+// -0.091870
+0xade1
+// -0.096404
+0xae2b
+// -0.100938
+0xae76
+// -0.105472
+0xaec0
+// -0.104061
+0xaea9
+// -0.102651
+0xae92
+// -0.101240
+0xae7b
+// -0.099830
+0xae64
+// -0.098419
+0xae4d
+// 0.071565
+0x2c95
+// 0.078737
+0x2d0a
+// 0.085910
+0x2d80
+// 0.093083
+0x2df5
+// 0.100256
+0x2e6b
+// 0.121551
+0x2fc7
+// 0.137256
+0x3064
+// 0.152962
+0x30e5
+// 0.168667
+0x3166
+// 0.184373
+0x31e6
+// 0.127686
+0x3016
+// 0.148725
+0x30c2
+// 0.169763
+0x316f
+// 0.190801
+0x321b
+// 0.211840
+0x32c7
+// 0.110460
+0x2f12
+// 0.127966
+0x3018
+// 0.145471
+0x30a8
+// 0.162977
+0x3137
+// 0.180482
+0x31c7
+// 0.247253
+0x33e9
+// 0.266459
+0x3443
+// 0.285666
+0x3492
+// 0.304872
+0x34e1
+// 0.324079
+0x352f
+// 0.166774
+0x3156
+// 0.174535
+0x3196
+// 0.182296
+0x31d5
+// 0.190058
+0x3215
+// 0.197819
+0x3255
+// 0.006993
+0x1f29
+// 0.000546
+0x1078
+// -0.005901
+0x9e0b
+// -0.012349
+0xa253
+// -0.018796
+0xa4d0
+// -0.064602
+0xac22
+// -0.062181
+0xabf6
+// -0.059759
+0xaba6
+// -0.057337
+0xab57
+// -0.054915
+0xab07
+// -0.023118
+0xa5eb
+// -0.004867
+0x9cfc
+// 0.013384
+0x22da
+// 0.031634
+0x280d
+// 0.049885
+0x2a63
+// 0.123041
+0x2fe0
+// 0.132362
+0x303c
+// 0.141683
+0x3089
+// 0.151003
+0x30d5
+// 0.160324
+0x3121
+// 0.264630
+0x343c
+// 0.269148
+0x344e
+// 0.273666
+0x3461
+// 0.278184
+0x3473
+// 0.282702
+0x3486
+// 0.056229
+0x2b32
+// 0.055363
+0x2b16
+// 0.054497
+0x2afa
+// 0.053632
+0x2add
+// 0.052766
+0x2ac1
+// -0.001801
+0x9760
+// -0.003601
+0x9b60
+// -0.005402
+0x9d88
+// -0.007202
+0x9f60
+// -0.009003
+0xa09c
+// -0.013013
+0xa2aa
+// -0.017023
+0xa45c
+// -0.021033
+0xa562
+// -0.025043
+0xa669
+// -0.029053
+0xa770
+// -0.033515
+0xa84a
+// -0.037978
+0xa8dc
+// -0.042440
+0xa96f
+// -0.046902
+0xaa01
+// -0.051365
+0xaa93
+// -0.056363
+0xab37
+// -0.061361
+0xabdb
+// -0.066359
+0xac3f
+// -0.071357
+0xac91
+// -0.076355
+0xace3
+// -0.081934
+0xad3e
+// -0.087513
+0xad9a
+// -0.093092
+0xadf5
+// -0.098671
+0xae51
+// -0.104250
+0xaeac
+// -0.109831
+0xaf07
+// -0.115411
+0xaf63
+// -0.120992
+0xafbe
+// -0.126573
+0xb00d
+// -0.132153
+0xb03b
+// -0.136311
+0xb05d
+// -0.140469
+0xb07f
+// -0.144626
+0xb0a1
+// -0.148784
+0xb0c3
+// -0.152942
+0xb0e5
+// -0.158960
+0xb116
+// -0.164978
+0xb147
+// -0.170996
+0xb179
+// -0.177014
+0xb1aa
+// -0.183032
+0xb1db
+// -0.117445
+0xaf84
+// -0.123881
+0xafee
+// -0.130317
+0xb02c
+// -0.136753
+0xb060
+// -0.143189
+0xb095
+// -0.061099
+0xabd2
+// -0.067388
+0xac50
+// -0.073678
+0xacb7
+// -0.079967
+0xad1e
+// -0.086256
+0xad85
+// -0.072489
+0xaca4
+// -0.076812
+0xacea
+// -0.081135
+0xad31
+// -0.085458
+0xad78
+// -0.089781
+0xadbf
+// -0.064199
+0xac1c
+// -0.060050
+0xabb0
+// -0.055901
+0xab28
+// -0.051751
+0xaaa0
+// -0.047602
+0xaa18
+// -0.021325
+0xa576
+// -0.018285
+0xa4ae
+// -0.015245
+0xa3ce
+// -0.012204
+0xa240
+// -0.009164
+0xa0b1
+// -0.006128
+0x9e46
+// -0.003159
+0x9a78
+// -0.000190
+0x8a37
+// 0.002780
+0x19b1
+// 0.005749
+0x1de3
+// -0.048832
+0xaa40
+// -0.046492
+0xa9f3
+// -0.044153
+0xa9a7
+// -0.041813
+0xa95a
+// -0.039474
+0xa90d
+// 0.038811
+0x28f8
+// 0.042680
+0x2977
+// 0.046549
+0x29f5
+// 0.050418
+0x2a74
+// 0.054288
+0x2af3
+// -0.009628
+0xa0ee
+// -0.019256
+0xa4ee
+// -0.028884
+0xa765
+// -0.038512
+0xa8ee
+// -0.048140
+0xaa29
+// -0.056268
+0xab34
+// -0.064396
+0xac1f
+// -0.072523
+0xaca4
+// -0.080651
+0xad29
+// -0.088779
+0xadaf
+// -0.103618
+0xaea2
+// -0.118458
+0xaf95
+// -0.133297
+0xb044
+// -0.148136
+0xb0be
+// -0.162976
+0xb137
+// -0.165891
+0xb14f
+// -0.168805
+0xb167
+// -0.171720
+0xb17f
+// -0.174635
+0xb197
+// -0.177550
+0xb1ae
+// 0.027472
+0x2708
+// 0.039932
+0x291c
+// 0.052392
+0x2ab5
+// 0.064852
+0x2c27
+// 0.077312
+0x2cf3
+// 0.048847
+0x2a41
+// 0.050390
+0x2a73
+// 0.051933
+0x2aa6
+// 0.053476
+0x2ad8
+// 0.055020
+0x2b0b
+// 0.201910
+0x3276
+// 0.214567
+0x32de
+// 0.227223
+0x3345
+// 0.239880
+0x33ad
+// 0.252536
+0x340a
+// 0.015509
+0x23f1
+// 0.016972
+0x2458
+// 0.018435
+0x24b8
+// 0.019898
+0x2518
+// 0.021361
+0x2578
+// -0.091307
+0xadd8
+// -0.089037
+0xadb3
+// -0.086768
+0xad8e
+// -0.084498
+0xad68
+// -0.082228
+0xad43
+// 0.119579
+0x2fa7
+// 0.133058
+0x3042
+// 0.146537
+0x30b0
+// 0.160016
+0x311f
+// 0.173495
+0x318d
+// 0.099422
+0x2e5d
+// 0.113379
+0x2f42
+// 0.127335
+0x3013
+// 0.141291
+0x3085
+// 0.155248
+0x30f8
+// 0.160007
+0x311f
+// 0.179387
+0x31be
+// 0.198767
+0x325c
+// 0.218148
+0x32fb
+// 0.237528
+0x339a
+// 0.115488
+0x2f64
+// 0.124518
+0x2ff8
+// 0.133548
+0x3046
+// 0.142578
+0x3090
+// 0.151608
+0x30da
+// 0.129522
+0x3025
+// 0.143296
+0x3096
+// 0.157069
+0x3107
+// 0.170842
+0x3178
+// 0.184616
+0x31e8
+// 0.087749
+0x2d9e
+// 0.088458
+0x2da9
+// 0.089167
+0x2db5
+// 0.089876
+0x2dc1
+// 0.090585
+0x2dcc
+// -0.053115
+0xaacc
+// -0.073712
+0xacb8
+// -0.094310
+0xae09
+// -0.114907
+0xaf5b
+// -0.135505
+0xb056
+// -0.072436
+0xaca3
+// -0.085302
+0xad76
+// -0.098168
+0xae48
+// -0.111034
+0xaf1b
+// -0.123900
+0xafee
+// -0.275365
+0xb468
+// -0.296105
+0xb4bd
+// -0.316845
+0xb512
+// -0.337586
+0xb567
+// -0.358326
+0xb5bc
+// -0.203870
+0xb286
+// -0.213127
+0xb2d2
+// -0.222384
+0xb31e
+// -0.231641
+0xb36a
+// -0.240898
+0xb3b5
+// 0.075312
+0x2cd2
+// 0.088492
+0x2daa
+// 0.101671
+0x2e82
+// 0.114851
+0x2f5a
+// 0.128031
+0x3019
+// 0.058467
+0x2b7c
+// 0.067602
+0x2c54
+// 0.076736
+0x2ce9
+// 0.085870
+0x2d7f
+// 0.095004
+0x2e15
+// 0.132781
+0x3040
+// 0.143799
+0x309a
+// 0.154818
+0x30f4
+// 0.165836
+0x314f
+// 0.176855
+0x31a9
+// 0.108258
+0x2eee
+// 0.105615
+0x2ec2
+// 0.102972
+0x2e97
+// 0.100329
+0x2e6c
+// 0.097686
+0x2e40
+// 0.007937
+0x2010
+// 0.015873
+0x2410
+// 0.023810
+0x2618
+// 0.031746
+0x2810
+// 0.039683
+0x2914
+// 0.041956
+0x295f
+// 0.044229
+0x29a9
+// 0.046503
+0x29f4
+// 0.048776
+0x2a3e
+// 0.051050
+0x2a89
+// 0.053103
+0x2acc
+// 0.055156
+0x2b0f
+// 0.057209
+0x2b53
+// 0.059262
+0x2b96
+// 0.061315
+0x2bd9
+// 0.066472
+0x2c41
+// 0.071630
+0x2c96
+// 0.076788
+0x2cea
+// 0.081945
+0x2d3f
+// 0.087103
+0x2d93
+// 0.086723
+0x2d8d
+// 0.086343
+0x2d87
+// 0.085962
+0x2d80
+// 0.085582
+0x2d7a
+// 0.085202
+0x2d74
+// 0.085395
+0x2d77
+// 0.085588
+0x2d7a
+// 0.085781
+0x2d7d
+// 0.085974
+0x2d81
+// 0.086168
+0x2d84
+// 0.091484
+0x2ddb
+// 0.096801
+0x2e32
+// 0.102118
+0x2e89
+// 0.107434
+0x2ee0
+// 0.112751
+0x2f37
+// 0.114341
+0x2f51
+// 0.115931
+0x2f6b
+// 0.117521
+0x2f85
+// 0.119111
+0x2fa0
+// 0.120701
+0x2fba
+// -0.207021
+0xb2a0
+// -0.217283
+0xb2f4
+// -0.227545
+0xb348
+// -0.237807
+0xb39c
+// -0.248069
+0xb3f0
+// -0.019559
+0xa502
+// -0.017572
+0xa480
+// -0.015586
+0xa3fb
+// -0.013600
+0xa2f7
+// -0.011613
+0xa1f2
+// -0.001246
+0x951b
+// 0.000305
+0xcfd
+// 0.001855
+0x1799
+// 0.003406
+0x1afa
+// 0.004956
+0x1d13
+// -0.118042
+0xaf8e
+// -0.116853
+0xaf7b
+// -0.115664
+0xaf67
+// -0.114476
+0xaf54
+// -0.113287
+0xaf40
+// 0.110511
+0x2f13
+// 0.112794
+0x2f38
+// 0.115076
+0x2f5d
+// 0.117359
+0x2f83
+// 0.119642
+0x2fa8
+// 0.101003
+0x2e77
+// 0.105297
+0x2ebd
+// 0.109592
+0x2f04
+// 0.113886
+0x2f4a
+// 0.118180
+0x2f90
+// -0.093887
+0xae02
+// -0.101011
+0xae77
+// -0.108135
+0xaeec
+// -0.115259
+0xaf60
+// -0.122383
+0xafd5
+// 0.023716
+0x2612
+// 0.020749
+0x2550
+// 0.017781
+0x248d
+// 0.014814
+0x2396
+// 0.011847
+0x2211
+// 0.170592
+0x3175
+// 0.172719
+0x3187
+// 0.174847
+0x3198
+// 0.176975
+0x31aa
+// 0.179102
+0x31bb
+// -0.089780
+0xadbf
+// -0.095256
+0xae19
+// -0.100731
+0xae72
+// -0.106207
+0xaecc
+// -0.111682
+0xaf26
+// -0.093953
+0xae03
+// -0.102473
+0xae8f
+// -0.110993
+0xaf1b
+// -0.119512
+0xafa6
+// -0.128032
+0xb019
+// -0.252987
+0xb40c
+// -0.268222
+0xb44b
+// -0.283456
+0xb489
+// -0.298691
+0xb4c7
+// -0.313925
+0xb506
+// -0.149837
+0xb0cb
+// -0.163515
+0xb13c
+// -0.177193
+0xb1ac
+// -0.190871
+0xb21c
+// -0.204549
+0xb28c
+// -0.323395
+0xb52d
+// -0.338844
+0xb56c
+// -0.354294
+0xb5ab
+// -0.369743
+0xb5ea
+// -0.385192
+0xb62a
+// -0.142816
+0xb092
+// -0.152229
+0xb0df
+// -0.161642
+0xb12c
+// -0.171055
+0xb179
+// -0.180468
+0xb1c6
+// 0.007861
+0x2006
+// 0.015722
+0x2406
+// 0.023583
+0x260a
+// 0.031444
+0x2806
+// 0.039305
+0x2908
+// 0.047167
+0x2a0a
+// 0.055028
+0x2b0b
+// 0.062889
+0x2c06
+// 0.070114
+0x2c7d
+// 0.077340
+0x2cf3
+// 0.084566
+0x2d6a
+// 0.091792
+0x2de0
+// 0.099017
+0x2e56
+// 0.106243
+0x2ecd
+// 0.113469
+0x2f43
+// 0.120695
+0x2fb9
+// 0.131746
+0x3037
+// 0.142796
+0x3092
+// 0.153847
+0x30ec
+// 0.164898
+0x3147
+// 0.175949
+0x31a1
+// 0.187000
+0x31fc
+// 0.198051
+0x3256
+// 0.209102
+0x32b1
+// 0.229957
+0x335c
+// 0.250811
+0x3403
+// 0.271666
+0x3459
+// 0.292521
+0x34ae
+// 0.313376
+0x3504
+// 0.334231
+0x3559
+// 0.355085
+0x35ae
+// 0.375940
+0x3604
+// 0.133148
+0x3043
+// 0.141910
+0x308b
+// 0.150673
+0x30d2
+// 0.159436
+0x311a
+// 0.168198
+0x3162
+// 0.176961
+0x31aa
+// 0.185723
+0x31f1
+// 0.194486
+0x3239
+// 0.230494
+0x3360
+// 0.246172
+0x33e1
+// 0.261849
+0x3431
+// 0.277526
+0x3471
+// 0.293203
+0x34b1
+// 0.308880
+0x34f1
+// 0.324557
+0x3531
+// 0.340234
+0x3572
+// 0.232513
+0x3371
+// 0.247197
+0x33e9
+// 0.261880
+0x3431
+// 0.276564
+0x346d
+// 0.291248
+0x34a9
+// 0.305931
+0x34e5
+// 0.320615
+0x3521
+// 0.335298
+0x355d
+// -0.000846
+0x92ee
+// -0.001691
+0x96ee
+// -0.002537
+0x9932
+// -0.003383
+0x9aee
+// -0.004229
+0x9c55
+// -0.005074
+0x9d32
+// -0.005920
+0x9e10
+// -0.006766
+0x9eee
+// -0.004610
+0x9cb8
+// -0.002454
+0x9907
+// -0.000298
+0x8ce2
+// 0.001858
+0x179c
+// 0.004014
+0x1c1c
+// 0.006170
+0x1e51
+// 0.008326
+0x2043
+// 0.010482
+0x215e
+// 0.013728
+0x2307
+// 0.016974
+0x2458
+// 0.020220
+0x252d
+// 0.023465
+0x2602
+// 0.026711
+0x26d7
+// 0.029957
+0x27ab
+// 0.033203
+0x2840
+// 0.036449
+0x28aa
+// 0.044745
+0x29ba
+// 0.053041
+0x2aca
+// 0.061338
+0x2bda
+// 0.069634
+0x2c75
+// 0.077930
+0x2cfd
+// 0.086227
+0x2d85
+// 0.094523
+0x2e0d
+// 0.102819
+0x2e95
+// 0.112042
+0x2f2c
+// 0.121265
+0x2fc3
+// 0.130487
+0x302d
+// 0.139710
+0x3079
+// 0.148933
+0x30c4
+// 0.158155
+0x3110
+// 0.167378
+0x315b
+// 0.176601
+0x31a7
+// 0.185084
+0x31ec
+// 0.193567
+0x3232
+// 0.202050
+0x3277
+// 0.210533
+0x32bd
+// 0.219016
+0x3302
+// 0.227499
+0x3348
+// 0.235983
+0x338d
+// 0.244466
+0x33d3
+// 0.250162
+0x3401
+// 0.255859
+0x3418
+// 0.261555
+0x342f
+// 0.267252
+0x3447
+// 0.272948
+0x345e
+// 0.278645
+0x3475
+// 0.284342
+0x348d
+// 0.290038
+0x34a4
+// -0.002177
+0x9875
+// -0.004354
+0x9c75
+// -0.006531
+0x9eb0
+// -0.008708
+0xa075
+// -0.010885
+0xa193
+// -0.013062
+0xa2b0
+// -0.015239
+0xa3cd
+// -0.017416
+0xa475
+// -0.029397
+0xa787
+// -0.041378
+0xa94c
+// -0.053359
+0xaad4
+// -0.065340
+0xac2f
+// -0.077320
+0xacf3
+// -0.089301
+0xadb7
+// -0.101282
+0xae7b
+// -0.113263
+0xaf40
+// -0.120927
+0xafbd
+// -0.128591
+0xb01d
+// -0.136255
+0xb05c
+// -0.143919
+0xb09b
+// -0.151584
+0xb0da
+// -0.159248
+0xb119
+// -0.166912
+0xb157
+// -0.174576
+0xb196
+// -0.187617
+0xb201
+// -0.200659
+0xb26c
+// -0.213700
+0xb2d7
+// -0.226742
+0xb341
+// -0.239783
+0xb3ac
+// -0.252825
+0xb40c
+// -0.265866
+0xb441
+// -0.278908
+0xb476
+// -0.216067
+0xb2ea
+// -0.222890
+0xb322
+// -0.229712
+0xb35a
+// -0.236535
+0xb392
+// -0.243358
+0xb3ca
+// -0.250181
+0xb401
+// -0.257003
+0xb41d
+// -0.263826
+0xb439
+// 0.045811
+0x29dd
+// 0.041724
+0x2957
+// 0.037636
+0x28d1
+// 0.033548
+0x284b
+// 0.029460
+0x278b
+// 0.025372
+0x267f
+// 0.021284
+0x2573
+// 0.017196
+0x2467
+// -0.125675
+0xb006
+// -0.130407
+0xb02c
+// -0.135140
+0xb053
+// -0.139872
+0xb07a
+// -0.144604
+0xb0a1
+// -0.149337
+0xb0c7
+// -0.154069
+0xb0ee
+// -0.158801
+0xb115
+// 0.019294
+0x24f0
+// 0.025312
+0x267b
+// 0.031330
+0x2803
+// 0.037347
+0x28c8
+// 0.043365
+0x298d
+// 0.049382
+0x2a52
+// 0.055400
+0x2b17
+// 0.061418
+0x2bdd
+// -0.071425
+0xac92
+// -0.074932
+0xaccc
+// -0.078438
+0xad05
+// -0.081944
+0xad3f
+// -0.085450
+0xad78
+// -0.088956
+0xadb1
+// -0.092462
+0xadeb
+// -0.095968
+0xae24
+// 0.130122
+0x302a
+// 0.130003
+0x3029
+// 0.129885
+0x3028
+// 0.129767
+0x3027
+// 0.129648
+0x3026
+// 0.129530
+0x3025
+// 0.129411
+0x3024
+// 0.129293
+0x3023
+// 0.001755
+0x1730
+// -0.008269
+0xa03c
+// -0.018293
+0xa4af
+// -0.028317
+0xa740
+// -0.038340
+0xa8e8
+// -0.048364
+0xaa31
+// -0.058388
+0xab79
+// -0.068412
+0xac61
+// -0.258481
+0xb423
+// -0.276630
+0xb46d
+// -0.294780
+0xb4b7
+// -0.312929
+0xb502
+// -0.331078
+0xb54c
+// -0.349227
+0xb596
+// -0.367376
+0xb5e1
+// -0.385525
+0xb62b
+// -0.218263
+0xb2fc
+// -0.226423
+0xb33f
+// -0.234583
+0xb382
+// -0.242744
+0xb3c5
+// -0.250904
+0xb404
+// -0.259064
+0xb425
+// -0.267225
+0xb447
+// -0.275385
+0xb468
+// -0.164286
+0xb142
+// -0.170987
+0xb179
+// -0.177689
+0xb1b0
+// -0.184391
+0xb1e7
+// -0.191092
+0xb21d
+// -0.197794
+0xb254
+// -0.204496
+0xb28b
+// -0.211198
+0xb2c2
+// -0.008134
+0xa02a
+// -0.004529
+0x9ca3
+// -0.000923
+0x9390
+// 0.002682
+0x197e
+// 0.006288
+0x1e70
+// 0.009893
+0x2111
+// 0.013499
+0x22e9
+// 0.017104
+0x2461
+// 0.109388
+0x2f00
+// 0.113579
+0x2f45
+// 0.117771
+0x2f8a
+// 0.121963
+0x2fce
+// 0.126155
+0x3009
+// 0.130346
+0x302c
+// 0.134538
+0x304e
+// 0.138730
+0x3070
+// 0.000018
+0x132
+// 0.000036
+0x264
+// 0.000055
+0x396
+// 0.000073
+0x4c8
+// 0.000091
+0x5fa
+// 0.000109
+0x72c
+// 0.000128
+0x82f
+// 0.000146
+0x8c8
+// 0.000007
+0x78
+// -0.000132
+0x8850
+// -0.000270
+0x8c6e
+// -0.000409
+0x8eb4
+// -0.000548
+0x907d
+// -0.000687
+0x91a0
+// -0.000825
+0x92c3
+// -0.000964
+0x93e6
+// -0.002573
+0x9945
+// -0.004181
+0x9c48
+// -0.005790
+0x9dee
+// -0.007399
+0x9f94
+// -0.009007
+0xa09d
+// -0.010616
+0xa16f
+// -0.012225
+0xa242
+// -0.013834
+0xa315
+// -0.013721
+0xa306
+// -0.013608
+0xa2f8
+// -0.013495
+0xa2e9
+// -0.013382
+0xa2da
+// -0.013270
+0xa2cb
+// -0.013157
+0xa2bc
+// -0.013044
+0xa2ae
+// -0.012931
+0xa29f
+// -0.007768
+0x9ff4
+// -0.002605
+0x9956
+// 0.002559
+0x193e
+// 0.007722
+0x1fe8
+// 0.012885
+0x2299
+// 0.018049
+0x249f
+// 0.023212
+0x25f1
+// 0.028375
+0x2744
+// 0.032007
+0x2819
+// 0.035638
+0x2890
+// 0.039269
+0x2907
+// 0.042900
+0x297e
+// 0.046531
+0x29f5
+// 0.050163
+0x2a6c
+// 0.053794
+0x2ae3
+// 0.057425
+0x2b5a
+// 0.059867
+0x2baa
+// 0.062310
+0x2bfa
+// 0.064752
+0x2c25
+// 0.067194
+0x2c4d
+// 0.069636
+0x2c75
+// 0.072079
+0x2c9d
+// 0.074521
+0x2cc5
+// 0.076963
+0x2ced
+// 0.078294
+0x2d03
+// 0.079624
+0x2d19
+// 0.080955
+0x2d2e
+// 0.082285
+0x2d44
+// 0.083615
+0x2d5a
+// 0.084946
+0x2d70
+// 0.086276
+0x2d86
+// 0.087607
+0x2d9b
+// 0.089557
+0x2dbb
+// 0.092674
+0x2dee
+// 0.095792
+0x2e21
+// 0.098909
+0x2e55
+// 0.102027
+0x2e88
+// 0.105144
+0x2ebb
+// 0.108262
+0x2eee
+// 0.111379
+0x2f21
+// 0.123831
+0x2fed
+// 0.126236
+0x300a
+// 0.128641
+0x301e
+// 0.131046
+0x3032
+// 0.133451
+0x3045
+// 0.135856
+0x3059
+// 0.138261
+0x306d
+// 0.140666
+0x3080
+// 0.241386
+0x33b9
+// 0.248030
+0x33f0
+// 0.254674
+0x3413
+// 0.261318
+0x342e
+// 0.267962
+0x344a
+// 0.274606
+0x3465
+// 0.281250
+0x3480
+// 0.287893
+0x349b
+// 0.185282
+0x31ee
+// 0.192846
+0x322c
+// 0.200410
+0x326a
+// 0.207974
+0x32a8
+// 0.215538
+0x32e6
+// 0.223102
+0x3324
+// 0.230666
+0x3362
+// 0.238230
+0x33a0
+// -0.084876
+0xad6f
+// -0.084749
+0xad6d
+// -0.084622
+0xad6a
+// -0.084496
+0xad68
+// -0.084369
+0xad66
+// -0.084243
+0xad64
+// -0.084116
+0xad62
+// -0.083989
+0xad60
+// 0.011443
+0x21dc
+// 0.008823
+0x2084
+// 0.006203
+0x1e5a
+// 0.003583
+0x1b57
+// 0.000963
+0x13e3
+// -0.001657
+0x96ca
+// -0.004277
+0x9c61
+// -0.006897
+0x9f10
+// 0.068579
+0x2c64
+// 0.067959
+0x2c59
+// 0.067340
+0x2c4f
+// 0.066721
+0x2c45
+// 0.066101
+0x2c3b
+// 0.065482
+0x2c31
+// 0.064862
+0x2c27
+// 0.064243
+0x2c1d
+// 0.136708
+0x3060
+// 0.138021
+0x306b
+// 0.139333
+0x3075
+// 0.140645
+0x3080
+// 0.141957
+0x308b
+// 0.143269
+0x3096
+// 0.144581
+0x30a0
+// 0.145893
+0x30ab
+// -0.006198
+0x9e59
+// -0.012396
+0xa259
+// -0.018595
+0xa4c3
+// -0.024793
+0xa659
+// -0.030991
+0xa7ef
+// -0.037189
+0xa8c3
+// -0.043388
+0xa98e
+// -0.049586
+0xaa59
+// -0.055523
+0xab1b
+// -0.061461
+0xabde
+// -0.067399
+0xac50
+// -0.073336
+0xacb2
+// -0.079274
+0xad13
+// -0.085212
+0xad74
+// -0.091150
+0xadd5
+// -0.097087
+0xae37
+// -0.101039
+0xae77
+// -0.104990
+0xaeb8
+// -0.108941
+0xaef9
+// -0.112893
+0xaf3a
+// -0.116844
+0xaf7a
+// -0.120795
+0xafbb
+// -0.124747
+0xaffc
+// -0.128698
+0xb01e
+// -0.131854
+0xb038
+// -0.135009
+0xb052
+// -0.138164
+0xb06c
+// -0.141320
+0xb086
+// -0.144475
+0xb0a0
+// -0.147631
+0xb0b9
+// -0.150786
+0xb0d3
+// -0.153941
+0xb0ed
+// 0.044126
+0x29a6
+// 0.043851
+0x299d
+// 0.043575
+0x2994
+// 0.043300
+0x298b
+// 0.043025
+0x2982
+// 0.042749
+0x2979
+// 0.042474
+0x2970
+// 0.042198
+0x2967
+// 0.029227
+0x277b
+// 0.024593
+0x264c
+// 0.019959
+0x251c
+// 0.015324
+0x23d9
+// 0.010690
+0x2179
+// 0.006056
+0x1e34
+// 0.001422
+0x15d3
+// -0.003212
+0x9a94
+// -0.072075
+0xac9d
+// -0.077374
+0xacf4
+// -0.082674
+0xad4b
+// -0.087974
+0xada1
+// -0.093274
+0xadf8
+// -0.098574
+0xae4f
+// -0.103874
+0xaea6
+// -0.109174
+0xaefd
+// -0.145895
+0xb0ab
+// -0.157144
+0xb107
+// -0.168394
+0xb163
+// -0.179644
+0xb1c0
+// -0.190894
+0xb21c
+// -0.202143
+0xb278
+// -0.213393
+0xb2d4
+// -0.224643
+0xb330
+// -0.125678
+0xb006
+// -0.132896
+0xb041
+// -0.140114
+0xb07c
+// -0.147332
+0xb0b7
+// -0.154550
+0xb0f2
+// -0.161767
+0xb12d
+// -0.168985
+0xb168
+// -0.176203
+0xb1a3
+// -0.042082
+0xa963
+// -0.039107
+0xa901
+// -0.036132
+0xa8a0
+// -0.033156
+0xa83e
+// -0.030181
+0xa7ba
+// -0.027206
+0xa6f7
+// -0.024230
+0xa634
+// -0.021255
+0xa571
+// -0.061823
+0xabea
+// -0.060131
+0xabb2
+// -0.058440
+0xab7b
+// -0.056748
+0xab44
+// -0.055056
+0xab0c
+// -0.053365
+0xaad5
+// -0.051673
+0xaa9d
+// -0.049982
+0xaa66
+// 0.117642
+0x2f87
+// 0.120342
+0x2fb4
+// 0.123043
+0x2fe0
+// 0.125743
+0x3006
+// 0.128444
+0x301c
+// 0.131144
+0x3032
+// 0.133845
+0x3048
+// 0.136545
+0x305f
+// 0.125496
+0x3004
+// 0.137287
+0x3065
+// 0.149078
+0x30c5
+// 0.160868
+0x3126
+// 0.172659
+0x3186
+// 0.184450
+0x31e7
+// 0.196240
+0x3248
+// 0.208031
+0x32a8
+// 0.015264
+0x23d1
+// 0.017530
+0x247d
+// 0.019796
+0x2511
+// 0.022062
+0x25a6
+// 0.024328
+0x263a
+// 0.026595
+0x26cf
+// 0.028861
+0x2763
+// 0.031127
+0x27f8
+// 0.041465
+0x294f
+// 0.052984
+0x2ac8
+// 0.064504
+0x2c21
+// 0.076023
+0x2cde
+// 0.087543
+0x2d9a
+// 0.099062
+0x2e57
+// 0.110582
+0x2f14
+// 0.122101
+0x2fd1
+// 0.274636
+0x3465
+// 0.294531
+0x34b6
+// 0.314427
+0x3508
+// 0.334322
+0x3559
+// 0.354217
+0x35ab
+// 0.374112
+0x35fc
+// 0.394007
+0x364e
+// 0.413902
+0x369f
+// 0.110765
+0x2f17
+// 0.121354
+0x2fc4
+// 0.131943
+0x3039
+// 0.142531
+0x3090
+// 0.153120
+0x30e6
+// 0.163708
+0x313d
+// 0.174297
+0x3194
+// 0.184885
+0x31eb
+// 0.312296
+0x34ff
+// 0.329955
+0x3547
+// 0.347615
+0x3590
+// 0.365275
+0x35d8
+// 0.382935
+0x3621
+// 0.400595
+0x3669
+// 0.418254
+0x36b1
+// 0.435914
+0x36fa
+// 0.154781
+0x30f4
+// 0.170938
+0x3178
+// 0.187095
+0x31fd
+// 0.203251
+0x3281
+// 0.219408
+0x3305
+// 0.235564
+0x338a
+// 0.251721
+0x3407
+// 0.267878
+0x3449
+// 0.141860
+0x308a
+// 0.151223
+0x30d7
+// 0.160586
+0x3124
+// 0.169950
+0x3170
+// 0.179313
+0x31bd
+// 0.188676
+0x320a
+// 0.198040
+0x3256
+// 0.207403
+0x32a3
+// 0.198390
+0x3259
+// 0.205291
+0x3292
+// 0.212192
+0x32ca
+// 0.219092
+0x3303
+// 0.225993
+0x333b
+// 0.232893
+0x3374
+// 0.239794
+0x33ac
+// 0.246695
+0x33e5
+// 0.127068
+0x3011
+// 0.123970
+0x2fef
+// 0.120873
+0x2fbc
+// 0.117775
+0x2f8a
+// 0.114677
+0x2f57
+// 0.111580
+0x2f24
+// 0.108482
+0x2ef1
+// 0.105385
+0x2ebf
+// -0.157491
+0xb10a
+// -0.171179
+0xb17a
+// -0.184867
+0xb1ea
+// -0.198556
+0xb25b
+// -0.212244
+0xb2cb
+// -0.225932
+0xb33b
+// -0.239621
+0xb3ab
+// -0.253309
+0xb40e
+// 0.001473
+0x1609
+// 0.002947
+0x1a09
+// 0.004420
+0x1c87
+// 0.005893
+0x1e09
+// 0.007367
+0x1f8b
+// 0.008840
+0x2087
+// 0.010313
+0x2148
+// 0.011787
+0x2209
+// 0.009260
+0x20be
+// 0.006732
+0x1ee5
+// 0.004205
+0x1c4e
+// 0.001678
+0x16e0
+// -0.000849
+0x92f4
+// -0.003376
+0x9aea
+// -0.005903
+0x9e0b
+// -0.008430
+0xa051
+// -0.006454
+0x9e9c
+// -0.004477
+0x9c96
+// -0.002501
+0x991f
+// -0.000524
+0x904c
+// 0.001452
+0x15f3
+// 0.003428
+0x1b06
+// 0.005405
+0x1d89
+// 0.007381
+0x1f8f
+// 0.009078
+0x20a6
+// 0.010774
+0x2184
+// 0.012471
+0x2263
+// 0.014167
+0x2341
+// 0.015864
+0x2410
+// 0.017560
+0x247f
+// 0.019257
+0x24ee
+// 0.020953
+0x255d
+// 0.019692
+0x250b
+// 0.018430
+0x24b8
+// 0.017169
+0x2465
+// 0.015907
+0x2413
+// 0.014646
+0x2380
+// 0.013384
+0x22da
+// 0.012123
+0x2235
+// 0.010861
+0x2190
+// 0.013884
+0x231c
+// 0.016907
+0x2454
+// 0.019930
+0x251a
+// 0.022952
+0x25e0
+// 0.025975
+0x26a6
+// 0.028998
+0x276c
+// 0.032021
+0x2819
+// 0.035044
+0x287c
+// 0.034348
+0x2866
+// 0.033652
+0x284f
+// 0.032955
+0x2838
+// 0.032259
+0x2821
+// 0.031563
+0x280a
+// 0.030867
+0x27e7
+// 0.030171
+0x27b9
+// 0.029475
+0x278c
+// 0.028942
+0x2769
+// 0.028409
+0x2746
+// 0.027876
+0x2723
+// 0.027344
+0x2700
+// 0.026811
+0x26dd
+// 0.026278
+0x26ba
+// 0.025745
+0x2697
+// 0.025212
+0x2674
+// -0.072285
+0xaca0
+// -0.075488
+0xacd5
+// -0.078691
+0xad09
+// -0.081895
+0xad3e
+// -0.085098
+0xad72
+// -0.088302
+0xada7
+// -0.091505
+0xaddb
+// -0.094709
+0xae10
+// 0.157179
+0x3108
+// 0.153041
+0x30e6
+// 0.148903
+0x30c4
+// 0.144764
+0x30a2
+// 0.140626
+0x3080
+// 0.136488
+0x305e
+// 0.132349
+0x303c
+// 0.128211
+0x301a
+// -0.170678
+0xb176
+// -0.181345
+0xb1ce
+// -0.192011
+0xb225
+// -0.202678
+0xb27c
+// -0.213344
+0xb2d4
+// -0.224010
+0xb32b
+// -0.234677
+0xb382
+// -0.245343
+0xb3da
+// -0.242867
+0xb3c6
+// -0.258304
+0xb422
+// -0.273741
+0xb461
+// -0.289178
+0xb4a0
+// -0.304615
+0xb4e0
+// -0.320052
+0xb51f
+// -0.335489
+0xb55e
+// -0.350926
+0xb59d
+// -0.173106
+0xb18a
+// -0.184602
+0xb1e8
+// -0.196097
+0xb246
+// -0.207593
+0xb2a5
+// -0.219089
+0xb303
+// -0.230584
+0xb361
+// -0.242080
+0xb3bf
+// -0.253576
+0xb40f
+// -0.545940
+0xb85e
+// -0.564104
+0xb883
+// -0.582269
+0xb8a8
+// -0.600434
+0xb8ce
+// -0.618598
+0xb8f3
+// -0.636763
+0xb918
+// -0.654928
+0xb93d
+// -0.673092
+0xb962
+// -0.450913
+0xb737
+// -0.466744
+0xb778
+// -0.482575
+0xb7b9
+// -0.498406
+0xb7f9
+// -0.514238
+0xb81d
+// -0.530069
+0xb83e
+// -0.545900
+0xb85e
+// -0.561731
+0xb87e
+// -0.585408
+0xb8af
+// -0.598640
+0xb8ca
+// -0.611871
+0xb8e5
+// -0.625103
+0xb900
+// -0.638335
+0xb91b
+// -0.651566
+0xb936
+// -0.664798
+0xb952
+// -0.678030
+0xb96d
+// -0.617183
+0xb8f0
+// -0.632958
+0xb910
+// -0.648732
+0xb931
+// -0.664506
+0xb951
+// -0.680281
+0xb971
+// -0.696055
+0xb992
+// -0.711829
+0xb9b2
+// -0.727604
+0xb9d2
+// -0.427153
+0xb6d6
+// -0.442562
+0xb715
+// -0.457971
+0xb754
+// -0.473380
+0xb793
+// -0.488790
+0xb7d2
+// -0.504199
+0xb809
+// -0.519608
+0xb828
+// -0.535017
+0xb848
+// -0.416146
+0xb6a9
+// -0.426849
+0xb6d4
+// -0.437551
+0xb700
+// -0.448254
+0xb72c
+// -0.458956
+0xb758
+// -0.469659
+0xb784
+// -0.480361
+0xb7b0
+// -0.491064
+0xb7db
+// -0.178192
+0xb1b4
+// -0.188553
+0xb209
+// -0.198914
+0xb25e
+// -0.209275
+0xb2b2
+// -0.219636
+0xb307
+// -0.229997
+0xb35c
+// -0.240358
+0xb3b1
+// -0.250719
+0xb403
+// -0.324213
+0xb530
+// -0.334778
+0xb55b
+// -0.345343
+0xb587
+// -0.355908
+0xb5b2
+// -0.366473
+0xb5dd
+// -0.377038
+0xb608
+// -0.387603
+0xb634
+// -0.398168
+0xb65f
+// -0.254716
+0xb413
+// -0.263876
+0xb439
+// -0.273037
+0xb45e
+// -0.282197
+0xb484
+// -0.291357
+0xb4a9
+// -0.300518
+0xb4cf
+// -0.309678
+0xb4f4
+// -0.318839
+0xb51a
+// -0.237238
+0xb397
+// -0.244308
+0xb3d1
+// -0.251378
+0xb406
+// -0.258448
+0xb423
+// -0.265518
+0xb440
+// -0.272587
+0xb45d
+// -0.279657
+0xb479
+// -0.286727
+0xb496
+// 0.003675
+0x1b87
+// 0.007350
+0x1f87
+// 0.011025
+0x21a5
+// 0.014700
+0x2387
+// 0.018375
+0x24b4
+// 0.022050
+0x25a5
+// 0.025725
+0x2696
+// 0.029400
+0x2787
+// 0.033075
+0x283c
+// 0.038107
+0x28e1
+// 0.043139
+0x2986
+// 0.048171
+0x2a2a
+// 0.053203
+0x2acf
+// 0.058235
+0x2b74
+// 0.063267
+0x2c0d
+// 0.068299
+0x2c5f
+// 0.073332
+0x2cb1
+// 0.078364
+0x2d04
+// 0.085638
+0x2d7b
+// 0.092912
+0x2df2
+// 0.100186
+0x2e69
+// 0.107460
+0x2ee1
+// 0.114735
+0x2f58
+// 0.122009
+0x2fcf
+// 0.129283
+0x3023
+// 0.136557
+0x305f
+// 0.143831
+0x309a
+// 0.152848
+0x30e4
+// 0.161865
+0x312e
+// 0.170882
+0x3178
+// 0.179899
+0x31c2
+// 0.188916
+0x320c
+// 0.197933
+0x3255
+// 0.206950
+0x329f
+// 0.215967
+0x32e9
+// 0.224984
+0x3333
+// 0.097310
+0x2e3a
+// 0.101939
+0x2e86
+// 0.106567
+0x2ed2
+// 0.111195
+0x2f1e
+// 0.115823
+0x2f6a
+// 0.120452
+0x2fb5
+// 0.125080
+0x3001
+// 0.129708
+0x3027
+// 0.134337
+0x304c
+// 0.097530
+0x2e3e
+// 0.109573
+0x2f03
+// 0.121616
+0x2fc9
+// 0.133660
+0x3047
+// 0.145703
+0x30aa
+// 0.157746
+0x310c
+// 0.169789
+0x316f
+// 0.181833
+0x31d2
+// 0.193876
+0x3234
+// 0.130288
+0x302b
+// 0.147419
+0x30b8
+// 0.164550
+0x3144
+// 0.181681
+0x31d0
+// 0.198813
+0x325d
+// 0.215944
+0x32e9
+// 0.233075
+0x3375
+// 0.250206
+0x3401
+// 0.267337
+0x3447
+// -0.002104
+0x984f
+// -0.004208
+0x9c4f
+// -0.006312
+0x9e77
+// -0.008416
+0xa04f
+// -0.010520
+0xa163
+// -0.012623
+0xa277
+// -0.014727
+0xa38a
+// -0.016831
+0xa44f
+// -0.018935
+0xa4d9
+// -0.023509
+0xa605
+// -0.028083
+0xa730
+// -0.032656
+0xa82e
+// -0.037230
+0xa8c4
+// -0.041804
+0xa95a
+// -0.046377
+0xa9f0
+// -0.050951
+0xaa86
+// -0.055525
+0xab1b
+// -0.060098
+0xabb1
+// -0.060510
+0xabbf
+// -0.060922
+0xabcc
+// -0.061333
+0xabda
+// -0.061745
+0xabe7
+// -0.062157
+0xabf5
+// -0.062569
+0xac01
+// -0.062980
+0xac08
+// -0.063392
+0xac0f
+// -0.063804
+0xac15
+// -0.061017
+0xabcf
+// -0.058229
+0xab74
+// -0.055442
+0xab19
+// -0.052655
+0xaabd
+// -0.049868
+0xaa62
+// -0.047081
+0xaa07
+// -0.044293
+0xa9ab
+// -0.041506
+0xa950
+// -0.038719
+0xa8f5
+// -0.031427
+0xa806
+// -0.024136
+0xa62e
+// -0.016844
+0xa450
+// -0.009552
+0xa0e4
+// -0.002261
+0x98a1
+// 0.005031
+0x1d27
+// 0.012323
+0x224f
+// 0.019615
+0x2505
+// 0.026906
+0x26e3
+// 0.036761
+0x28b5
+// 0.046616
+0x29f8
+// 0.056470
+0x2b3a
+// 0.066325
+0x2c3f
+// 0.076180
+0x2ce0
+// 0.086034
+0x2d82
+// 0.095889
+0x2e23
+// 0.105744
+0x2ec5
+// 0.115598
+0x2f66
+// 0.127217
+0x3012
+// 0.138835
+0x3071
+// 0.150454
+0x30d1
+// 0.162072
+0x3130
+// 0.173691
+0x318f
+// 0.185309
+0x31ee
+// 0.196928
+0x324d
+// 0.208546
+0x32ac
+// 0.220165
+0x330c
+// 0.001752
+0x172d
+// 0.003503
+0x1b2d
+// 0.005255
+0x1d62
+// 0.007006
+0x1f2d
+// 0.008758
+0x207c
+// 0.010510
+0x2162
+// 0.012261
+0x2247
+// 0.014013
+0x232d
+// 0.015765
+0x2409
+// 0.017843
+0x2491
+// 0.019921
+0x251a
+// 0.021999
+0x25a2
+// 0.024077
+0x262a
+// 0.026155
+0x26b2
+// 0.028234
+0x273a
+// 0.030312
+0x27c3
+// 0.032390
+0x2825
+// 0.034468
+0x2869
+// 0.034412
+0x2868
+// 0.034356
+0x2866
+// 0.034299
+0x2864
+// 0.034243
+0x2862
+// 0.034187
+0x2860
+// 0.034131
+0x285e
+// 0.034074
+0x285d
+// 0.034018
+0x285b
+// 0.033962
+0x2859
+// 0.034146
+0x285f
+// 0.034330
+0x2865
+// 0.034514
+0x286b
+// 0.034698
+0x2871
+// 0.034882
+0x2877
+// 0.035066
+0x287d
+// 0.035250
+0x2883
+// 0.035434
+0x2889
+// 0.035618
+0x288f
+// -0.025136
+0xa66f
+// -0.022831
+0xa5d8
+// -0.020527
+0xa541
+// -0.018222
+0xa4aa
+// -0.015917
+0xa413
+// -0.013612
+0xa2f8
+// -0.011308
+0xa1ca
+// -0.009003
+0xa09c
+// -0.006698
+0x9edc
+// -0.010199
+0xa139
+// -0.001944
+0x97f6
+// 0.006311
+0x1e76
+// 0.014566
+0x2375
+// 0.022821
+0x25d8
+// 0.031075
+0x27f5
+// 0.039330
+0x2909
+// 0.047585
+0x2a17
+// 0.055840
+0x2b26
+// 0.140107
+0x307c
+// 0.147537
+0x30b9
+// 0.154966
+0x30f5
+// 0.162396
+0x3132
+// 0.169825
+0x316f
+// 0.177255
+0x31ac
+// 0.184685
+0x31e9
+// 0.192114
+0x3226
+// 0.199544
+0x3263
+// 0.206858
+0x329f
+// 0.222819
+0x3321
+// 0.238781
+0x33a4
+// 0.254742
+0x3413
+// 0.270703
+0x3455
+// 0.286665
+0x3496
+// 0.302626
+0x34d8
+// 0.318587
+0x3519
+// 0.334549
+0x355a
+// 0.208907
+0x32af
+// 0.222668
+0x3320
+// 0.236429
+0x3391
+// 0.250191
+0x3401
+// 0.263952
+0x3439
+// 0.277713
+0x3472
+// 0.291475
+0x34aa
+// 0.305236
+0x34e2
+// 0.318997
+0x351b
+// 0.105373
+0x2ebe
+// 0.117707
+0x2f89
+// 0.130041
+0x3029
+// 0.142375
+0x308e
+// 0.154710
+0x30f3
+// 0.167044
+0x3158
+// 0.179378
+0x31bd
+// 0.191712
+0x3223
+// 0.204047
+0x3288
+// 0.327616
+0x353e
+// 0.344644
+0x3584
+// 0.361671
+0x35c9
+// 0.378699
+0x360f
+// 0.395727
+0x3655
+// 0.412754
+0x369b
+// 0.429782
+0x36e0
+// 0.446809
+0x3726
+// 0.463837
+0x376c
+// 0.154292
+0x30f0
+// 0.160537
+0x3123
+// 0.166782
+0x3156
+// 0.173027
+0x3189
+// 0.179272
+0x31bd
+// 0.185517
+0x31f0
+// 0.191762
+0x3223
+// 0.198007
+0x3256
+// 0.204252
+0x3289
+// 0.149636
+0x30ca
+// 0.155222
+0x30f8
+// 0.160808
+0x3125
+// 0.166395
+0x3153
+// 0.171981
+0x3181
+// 0.177567
+0x31af
+// 0.183153
+0x31dc
+// 0.188739
+0x320a
+// 0.194325
+0x3238
+// 0.020847
+0x2556
+// 0.021954
+0x259f
+// 0.023060
+0x25e7
+// 0.024167
+0x2630
+// 0.025273
+0x2678
+// 0.026380
+0x26c1
+// 0.027486
+0x2709
+// 0.028593
+0x2752
+// 0.029699
+0x279a
+// -0.029940
+0xa7aa
+// -0.027164
+0xa6f4
+// -0.024388
+0xa63e
+// -0.021613
+0xa588
+// -0.018837
+0xa4d2
+// -0.016061
+0xa41d
+// -0.013285
+0xa2cd
+// -0.010509
+0xa161
+// -0.007733
+0x9feb
+// 0.072355
+0x2ca1
+// 0.080061
+0x2d20
+// 0.087767
+0x2d9e
+// 0.095473
+0x2e1c
+// 0.103179
+0x2e9a
+// 0.110884
+0x2f19
+// 0.118590
+0x2f97
+// 0.126296
+0x300b
+// 0.134002
+0x304a
+// 0.001389
+0x15b0
+// 0.002778
+0x19b0
+// 0.004167
+0x1c44
+// 0.005556
+0x1db0
+// 0.006945
+0x1f1d
+// 0.008334
+0x2044
+// 0.009723
+0x20fa
+// 0.011112
+0x21b0
+// 0.012501
+0x2266
+// 0.012337
+0x2251
+// 0.012173
+0x223c
+// 0.012009
+0x2226
+// 0.011845
+0x2211
+// 0.011681
+0x21fb
+// 0.011517
+0x21e6
+// 0.011353
+0x21d0
+// 0.011189
+0x21bb
+// 0.011025
+0x21a5
+// 0.010003
+0x211f
+// 0.008981
+0x2099
+// 0.007959
+0x2013
+// 0.006937
+0x1f1b
+// 0.005915
+0x1e0f
+// 0.004893
+0x1d03
+// 0.003871
+0x1bee
+// 0.002849
+0x19d6
+// 0.001827
+0x177c
+// 0.001137
+0x14a8
+// 0.000447
+0xf52
+// -0.000244
+0x8bfc
+// -0.000934
+0x93a7
+// -0.001624
+0x96a7
+// -0.002315
+0x98be
+// -0.003005
+0x9a27
+// -0.003695
+0x9b91
+// -0.004386
+0x9c7e
+// -0.003666
+0x9b82
+// -0.002947
+0x9a09
+// -0.002227
+0x9890
+// -0.001508
+0x962d
+// -0.000788
+0x9276
+// -0.000069
+0x8486
+// 0.000650
+0x1154
+// 0.001370
+0x159c
+// 0.002089
+0x1847
+// 0.003712
+0x1b9a
+// 0.005336
+0x1d77
+// 0.006959
+0x1f20
+// 0.008582
+0x2065
+// 0.010205
+0x213a
+// 0.011828
+0x220e
+// 0.013451
+0x22e3
+// 0.015074
+0x23b8
+// 0.016697
+0x2446
+// 0.016094
+0x241f
+// 0.015490
+0x23ee
+// 0.014887
+0x239f
+// 0.014283
+0x2350
+// 0.013679
+0x2301
+// 0.013076
+0x22b2
+// 0.012472
+0x2263
+// 0.011869
+0x2214
+// 0.011265
+0x21c5
+// 0.010779
+0x2185
+// 0.010293
+0x2145
+// 0.009807
+0x2105
+// 0.009321
+0x20c6
+// 0.008835
+0x2086
+// 0.008349
+0x2046
+// 0.007863
+0x2007
+// 0.007377
+0x1f8e
+// 0.006892
+0x1f0f
+// -0.093041
+0xadf4
+// -0.092969
+0xadf3
+// -0.092897
+0xadf2
+// -0.092825
+0xadf1
+// -0.092752
+0xadf0
+// -0.092680
+0xadee
+// -0.092608
+0xaded
+// -0.092536
+0xadec
+// -0.092464
+0xadeb
+// 0.025473
+0x2685
+// 0.031603
+0x280c
+// 0.037732
+0x28d4
+// 0.043862
+0x299d
+// 0.049992
+0x2a66
+// 0.056121
+0x2b2f
+// 0.062251
+0x2bf8
+// 0.068380
+0x2c60
+// 0.074510
+0x2cc5
+// 0.143782
+0x309a
+// 0.151273
+0x30d7
+// 0.158765
+0x3115
+// 0.166256
+0x3152
+// 0.173748
+0x318f
+// 0.181239
+0x31cd
+// 0.188731
+0x320a
+// 0.196222
+0x3247
+// 0.203714
+0x3285
+// 0.186869
+0x31fb
+// 0.193903
+0x3234
+// 0.200936
+0x326e
+// 0.207970
+0x32a8
+// 0.215003
+0x32e1
+// 0.222037
+0x331b
+// 0.229070
+0x3355
+// 0.236104
+0x338e
+// 0.243137
+0x33c8
+// 0.148822
+0x30c3
+// 0.156011
+0x30fe
+// 0.163200
+0x3139
+// 0.170388
+0x3174
+// 0.177577
+0x31af
+// 0.184766
+0x31ea
+// 0.191955
+0x3224
+// 0.199144
+0x325f
+// 0.206333
+0x329a
+// 0.145751
+0x30aa
+// 0.150234
+0x30cf
+// 0.154716
+0x30f3
+// 0.159199
+0x3118
+// 0.163682
+0x313d
+// 0.168165
+0x3162
+// 0.172647
+0x3186
+// 0.177130
+0x31ab
+// 0.181613
+0x31d0
+// 0.348256
+0x3592
+// 0.354577
+0x35ac
+// 0.360898
+0x35c6
+// 0.367219
+0x35e0
+// 0.373541
+0x35fa
+// 0.379862
+0x3614
+// 0.386183
+0x362e
+// 0.392504
+0x3648
+// 0.398825
+0x3662
+// 0.394030
+0x364e
+// 0.397704
+0x365d
+// 0.401377
+0x366c
+// 0.405051
+0x367b
+// 0.408724
+0x368a
+// 0.412398
+0x3699
+// 0.416071
+0x36a8
+// 0.419745
+0x36b7
+// 0.423419
+0x36c6
+// -0.001858
+0x979c
+// -0.003716
+0x9b9c
+// -0.005574
+0x9db5
+// -0.007433
+0x9f9c
+// -0.009291
+0xa0c2
+// -0.011149
+0xa1b5
+// -0.013007
+0xa2a9
+// -0.014865
+0xa39c
+// -0.016723
+0xa448
+// -0.015178
+0xa3c5
+// -0.013632
+0xa2fb
+// -0.012086
+0xa230
+// -0.010540
+0xa165
+// -0.008994
+0xa09b
+// -0.007448
+0x9fa0
+// -0.005902
+0x9e0b
+// -0.004356
+0x9c76
+// -0.002810
+0x99c1
+// 0.001884
+0x17b7
+// 0.006578
+0x1ebc
+// 0.011272
+0x21c5
+// 0.015966
+0x2416
+// 0.020660
+0x254a
+// 0.025354
+0x267e
+// 0.030048
+0x27b1
+// 0.034743
+0x2872
+// 0.039437
+0x290c
+// 0.041936
+0x295e
+// 0.044436
+0x29b0
+// 0.046936
+0x2a02
+// 0.049435
+0x2a54
+// 0.051935
+0x2aa6
+// 0.054435
+0x2af8
+// 0.056934
+0x2b4a
+// 0.059434
+0x2b9c
+// 0.061934
+0x2bed
+// 0.137126
+0x3063
+// 0.145424
+0x30a7
+// 0.153722
+0x30eb
+// 0.162020
+0x312f
+// 0.170318
+0x3173
+// 0.178616
+0x31b7
+// 0.186915
+0x31fb
+// 0.195213
+0x323f
+// 0.203511
+0x3283
+// 0.086869
+0x2d8f
+// 0.092775
+0x2df0
+// 0.098680
+0x2e51
+// 0.104586
+0x2eb2
+// 0.110492
+0x2f12
+// 0.116397
+0x2f73
+// 0.122303
+0x2fd4
+// 0.128209
+0x301a
+// 0.134114
+0x304b
+// 0.023208
+0x25f1
+// 0.025635
+0x2690
+// 0.028063
+0x272f
+// 0.030490
+0x27ce
+// 0.032917
+0x2837
+// 0.035344
+0x2886
+// 0.037771
+0x28d6
+// 0.040199
+0x2925
+// 0.042626
+0x2975
+// 0.125652
+0x3005
+// 0.129679
+0x3026
+// 0.133707
+0x3047
+// 0.137734
+0x3068
+// 0.141761
+0x3089
+// 0.145789
+0x30aa
+// 0.149816
+0x30cb
+// 0.153843
+0x30ec
+// 0.157871
+0x310d
+// 0.012012
+0x2226
+// 0.008004
+0x2019
+// 0.003996
+0x1c17
+// -0.000013
+0x80d4
+// -0.004021
+0x9c1e
+// -0.008029
+0xa01c
+// -0.012037
+0xa22a
+// -0.016045
+0xa41c
+// -0.020053
+0xa522
+// -0.061677
+0xabe5
+// -0.066884
+0xac48
+// -0.072091
+0xac9d
+// -0.077298
+0xacf2
+// -0.082504
+0xad48
+// -0.087711
+0xad9d
+// -0.092918
+0xadf2
+// -0.098124
+0xae48
+// -0.103331
+0xae9d
+// -0.097054
+0xae36
+// -0.102667
+0xae92
+// -0.108279
+0xaeee
+// -0.113892
+0xaf4a
+// -0.119504
+0xafa6
+// -0.125117
+0xb001
+// -0.130729
+0xb02f
+// -0.136342
+0xb05d
+// -0.141954
+0xb08b
+// -0.126289
+0xb00b
+// -0.132018
+0xb039
+// -0.137747
+0xb068
+// -0.143476
+0xb097
+// -0.149205
+0xb0c6
+// -0.154934
+0xb0f5
+// -0.160662
+0xb124
+// -0.166391
+0xb153
+// -0.172120
+0xb182
+// -0.025529
+0xa689
+// -0.026364
+0xa6c0
+// -0.027199
+0xa6f7
+// -0.028034
+0xa72d
+// -0.028870
+0xa764
+// -0.029705
+0xa79b
+// -0.030540
+0xa7d1
+// -0.031375
+0xa804
+// -0.032210
+0xa81f
+// -0.028583
+0xa751
+// -0.031686
+0xa80e
+// -0.034790
+0xa874
+// -0.037893
+0xa8da
+// -0.040996
+0xa93f
+// -0.044100
+0xa9a5
+// -0.047203
+0xaa0b
+// -0.050306
+0xaa70
+// -0.053409
+0xaad6
+// -0.026237
+0xa6b7
+// -0.025563
+0xa68b
+// -0.024889
+0xa65f
+// -0.024214
+0xa633
+// -0.023540
+0xa607
+// -0.022866
+0xa5db
+// -0.022192
+0xa5ae
+// -0.021518
+0xa582
+// -0.020843
+0xa556
+// 0.007201
+0x1f60
+// 0.009656
+0x20f2
+// 0.012111
+0x2233
+// 0.014566
+0x2375
+// 0.017021
+0x245c
+// 0.019476
+0x24fc
+// 0.021931
+0x259d
+// 0.024387
+0x263e
+// 0.026842
+0x26df
+// -0.009026
+0xa09f
+// -0.016142
+0xa422
+// -0.023257
+0xa5f4
+// -0.030373
+0xa7c7
+// -0.037488
+0xa8cc
+// -0.044604
+0xa9b6
+// -0.051720
+0xaa9f
+// -0.058835
+0xab88
+// -0.065951
+0xac39
+// 0.017407
+0x2475
+// 0.012380
+0x2257
+// 0.007353
+0x1f88
+// 0.002327
+0x18c4
+// -0.002700
+0x9988
+// -0.007727
+0x9fea
+// -0.012753
+0xa288
+// -0.017780
+0xa48d
+// -0.022807
+0xa5d7
+// -0.139190
+0xb074
+// -0.146081
+0xb0ad
+// -0.152972
+0xb0e5
+// -0.159863
+0xb11e
+// -0.166755
+0xb156
+// -0.173646
+0xb18f
+// -0.180537
+0xb1c7
+// -0.187428
+0xb1ff
+// -0.194319
+0xb238
+// -0.235969
+0xb38d
+// -0.239098
+0xb3a7
+// -0.242226
+0xb3c0
+// -0.245355
+0xb3da
+// -0.248484
+0xb3f4
+// -0.251612
+0xb407
+// -0.254741
+0xb413
+// -0.257870
+0xb420
+// -0.260998
+0xb42d
+// 0.062098
+0x2bf3
+// 0.069405
+0x2c71
+// 0.076713
+0x2ce9
+// 0.084020
+0x2d61
+// 0.091327
+0x2dd8
+// 0.098634
+0x2e50
+// 0.105941
+0x2ec8
+// 0.113248
+0x2f3f
+// 0.120555
+0x2fb7
+// 0.144180
+0x309d
+// 0.154620
+0x30f3
+// 0.165060
+0x3148
+// 0.175500
+0x319e
+// 0.185940
+0x31f3
+// 0.196380
+0x3249
+// 0.206820
+0x329e
+// 0.217260
+0x32f4
+// 0.227701
+0x3349
+// 0.195471
+0x3241
+// 0.205617
+0x3294
+// 0.215763
+0x32e8
+// 0.225908
+0x333b
+// 0.236054
+0x338e
+// 0.246200
+0x33e1
+// 0.256345
+0x341a
+// 0.266491
+0x3444
+// 0.276637
+0x346d
+// -0.001491
+0x961b
+// -0.002982
+0x9a1b
+// -0.004473
+0x9c94
+// -0.005963
+0x9e1b
+// -0.007454
+0x9fa2
+// -0.008945
+0xa094
+// -0.010436
+0xa158
+// -0.011927
+0xa21b
+// -0.013418
+0xa2df
+// -0.012673
+0xa27d
+// -0.011928
+0xa21b
+// -0.011184
+0xa1ba
+// -0.010439
+0xa158
+// -0.009695
+0xa0f7
+// -0.008950
+0xa095
+// -0.008205
+0xa033
+// -0.007461
+0x9fa4
+// -0.006716
+0x9ee1
+// -0.005693
+0x9dd4
+// -0.004670
+0x9cc8
+// -0.003647
+0x9b78
+// -0.002624
+0x9960
+// -0.001601
+0x968f
+// -0.000578
+0x90bc
+// 0.000445
+0xf4a
+// 0.001468
+0x1603
+// 0.002491
+0x191a
+// 0.002731
+0x1998
+// 0.002971
+0x1a16
+// 0.003211
+0x1a94
+// 0.003451
+0x1b12
+// 0.003691
+0x1b8f
+// 0.003932
+0x1c07
+// 0.004172
+0x1c46
+// 0.004412
+0x1c85
+// 0.004652
+0x1cc3
+// 0.002339
+0x18ca
+// 0.000027
+0x1be
+// -0.002286
+0x98af
+// -0.004599
+0x9cb6
+// -0.006911
+0x9f14
+// -0.009224
+0xa0b9
+// -0.011537
+0xa1e8
+// -0.013849
+0xa317
+// -0.016162
+0xa423
+// -0.020411
+0xa53a
+// -0.024660
+0xa650
+// -0.028909
+0xa767
+// -0.033158
+0xa83f
+// -0.037407
+0xa8ca
+// -0.041657
+0xa955
+// -0.045906
+0xa9e0
+// -0.050155
+0xaa6b
+// -0.054404
+0xaaf7
+// -0.054540
+0xaafb
+// -0.054676
+0xab00
+// -0.054812
+0xab04
+// -0.054948
+0xab09
+// -0.055084
+0xab0d
+// -0.055220
+0xab11
+// -0.055356
+0xab16
+// -0.055492
+0xab1a
+// -0.055628
+0xab1f
+// -0.060269
+0xabb7
+// -0.064909
+0xac27
+// -0.069550
+0xac74
+// -0.074190
+0xacc0
+// -0.078831
+0xad0c
+// -0.083471
+0xad58
+// -0.088112
+0xada4
+// -0.092752
+0xadf0
+// -0.097393
+0xae3c
+// 0.006531
+0x1eb0
+// 0.003115
+0x1a61
+// -0.000301
+0x8cf0
+// -0.003718
+0x9b9d
+// -0.007134
+0x9f4e
+// -0.010550
+0xa167
+// -0.013967
+0xa327
+// -0.017383
+0xa473
+// -0.020799
+0xa553
+// -0.187289
+0xb1fe
+// -0.192827
+0xb22c
+// -0.198364
+0xb259
+// -0.203902
+0xb286
+// -0.209439
+0xb2b4
+// -0.214977
+0xb2e1
+// -0.220514
+0xb30e
+// -0.226052
+0xb33c
+// -0.231589
+0xb369
+// -0.259247
+0xb426
+// -0.266860
+0xb445
+// -0.274472
+0xb464
+// -0.282085
+0xb483
+// -0.289698
+0xb4a3
+// -0.297310
+0xb4c2
+// -0.304923
+0xb4e1
+// -0.312535
+0xb500
+// -0.320148
+0xb51f
+// -0.273498
+0xb460
+// -0.283218
+0xb488
+// -0.292938
+0xb4b0
+// -0.302658
+0xb4d8
+// -0.312377
+0xb4ff
+// -0.322097
+0xb527
+// -0.331817
+0xb54f
+// -0.341537
+0xb577
+// -0.351257
+0xb59f
+// -0.176014
+0xb1a2
+// -0.184569
+0xb1e8
+// -0.193123
+0xb22e
+// -0.201678
+0xb274
+// -0.210232
+0xb2ba
+// -0.218787
+0xb300
+// -0.227341
+0xb346
+// -0.235896
+0xb38c
+// -0.244450
+0xb3d3
+// -0.114272
+0xaf50
+// -0.123519
+0xafe8
+// -0.132767
+0xb040
+// -0.142014
+0xb08b
+// -0.151261
+0xb0d7
+// -0.160509
+0xb123
+// -0.169756
+0xb16f
+// -0.179003
+0xb1ba
+// -0.188251
+0xb206
+// -0.499806
+0xb7ff
+// -0.515220
+0xb81f
+// -0.530634
+0xb83f
+// -0.546048
+0xb85e
+// -0.561461
+0xb87e
+// -0.576875
+0xb89d
+// -0.592289
+0xb8bd
+// -0.607702
+0xb8dd
+// -0.623116
+0xb8fc
+// -0.307449
+0xb4eb
+// -0.316107
+0xb50f
+// -0.324764
+0xb532
+// -0.333422
+0xb556
+// -0.342079
+0xb579
+// -0.350737
+0xb59d
+// -0.359395
+0xb5c0
+// -0.368052
+0xb5e4
+// -0.376710
+0xb607
+// -0.362507
+0xb5cd
+// -0.367502
+0xb5e1
+// -0.372497
+0xb5f6
+// -0.377492
+0xb60a
+// -0.382487
+0xb61f
+// -0.387482
+0xb633
+// -0.392477
+0xb648
+// -0.397472
+0xb65c
+// -0.402467
+0xb671
+// -0.417761
+0xb6af
+// -0.424829
+0xb6cc
+// -0.431898
+0xb6e9
+// -0.438966
+0xb706
+// -0.446034
+0xb723
+// -0.453102
+0xb740
+// -0.460170
+0xb75d
+// -0.467238
+0xb77a
+// -0.474307
+0xb797
+// -0.353851
+0xb5a9
+// -0.362757
+0xb5ce
+// -0.371662
+0xb5f2
+// -0.380568
+0xb617
+// -0.389474
+0xb63b
+// -0.398379
+0xb660
+// -0.407285
+0xb684
+// -0.416190
+0xb6a9
+// -0.425096
+0xb6cd
+// -0.223621
+0xb328
+// -0.230241
+0xb35e
+// -0.236860
+0xb394
+// -0.243480
+0xb3cb
+// -0.250100
+0xb400
+// -0.256719
+0xb41c
+// -0.263339
+0xb437
+// -0.269958
+0xb452
+// -0.276578
+0xb46d
+// -0.181630
+0xb1d0
+// -0.186573
+0xb1f8
+// -0.191515
+0xb221
+// -0.196458
+0xb249
+// -0.201401
+0xb272
+// -0.206344
+0xb29a
+// -0.211286
+0xb2c3
+// -0.216229
+0xb2eb
+// -0.221172
+0xb314
+// -0.036579
+0xa8af
+// -0.041299
+0xa949
+// -0.046018
+0xa9e4
+// -0.050738
+0xaa7f
+// -0.055457
+0xab19
+// -0.060177
+0xabb4
+// -0.064897
+0xac27
+// -0.069616
+0xac75
+// -0.074336
+0xacc2
+// 0.070404
+0x2c81
+// 0.067311
+0x2c4f
+// 0.064218
+0x2c1c
+// 0.061125
+0x2bd3
+// 0.058032
+0x2b6e
+// 0.054939
+0x2b08
+// 0.051846
+0x2aa3
+// 0.048753
+0x2a3e
+// 0.045660
+0x29d8

+ 514 - 0
Testing/Patterns/DSP/Filtering/DECIM/DECIMF16/Samples1_f16.txt

@@ -0,0 +1,514 @@
+H
+256
+// 0.050105
+0x2a6a
+// 0.015855
+0x240f
+// -0.475904
+0xb79d
+// 0.113587
+0x2f45
+// -0.142439
+0xb08f
+// 0.428304
+0x36da
+// -0.565472
+0xb886
+// -0.371174
+0xb5f0
+// -0.260051
+0xb429
+// 0.138507
+0x306f
+// 0.225569
+0x3338
+// 0.175312
+0x319c
+// 0.002041
+0x182e
+// 0.245673
+0x33dd
+// -0.092505
+0xadec
+// -0.121141
+0xafc1
+// 0.050699
+0x2a7d
+// 0.510012
+0x3815
+// 0.350091
+0x359a
+// 0.109125
+0x2efc
+// -0.074238
+0xacc0
+// 0.198039
+0x3256
+// 0.221862
+0x3319
+// -0.003881
+0x9bf3
+// -0.161481
+0xb12b
+// -0.435484
+0xb6f8
+// -0.351061
+0xb59e
+// -0.380750
+0xb618
+// 0.149746
+0x30cb
+// -0.566463
+0xb888
+// -0.092450
+0xadeb
+// 0.343983
+0x3581
+// 0.322814
+0x352a
+// -0.623714
+0xb8fd
+// -0.010301
+0xa146
+// -0.155347
+0xb0f9
+// 0.205059
+0x3290
+// -0.184593
+0xb1e8
+// -0.626523
+0xb903
+// 0.127615
+0x3015
+// -0.709346
+0xb9ad
+// 0.481389
+0x37b4
+// 0.215415
+0x32e5
+// 0.468732
+0x3780
+// -0.184484
+0xb1e7
+// -0.232006
+0xb36d
+// -0.090982
+0xadd3
+// -0.380394
+0xb616
+// 0.210555
+0x32bd
+// 0.164043
+0x3140
+// 0.402795
+0x3672
+// 0.231647
+0x336a
+// -0.277429
+0xb470
+// -0.198568
+0xb25b
+// 0.174414
+0x3195
+// -0.245471
+0xb3db
+// 0.120986
+0x2fbe
+// 0.356397
+0x35b4
+// 0.317052
+0x3513
+// -0.334176
+0xb559
+// 0.219878
+0x3309
+// -0.130345
+0xb02c
+// -0.451058
+0xb738
+// 0.361809
+0x35ca
+// -0.016376
+0xa431
+// -0.171996
+0xb181
+// -0.432016
+0xb6ea
+// 0.400304
+0x3668
+// -0.424796
+0xb6cc
+// 0.340278
+0x3572
+// 0.327705
+0x353e
+// -0.043187
+0xa987
+// 0.192792
+0x322b
+// -0.522785
+0xb82f
+// 0.186597
+0x31f9
+// 0.448875
+0x372f
+// -0.721545
+0xb9c6
+// 0.049540
+0x2a57
+// 0.850124
+0x3acd
+// -0.179792
+0xb1c1
+// -0.299674
+0xb4cb
+// 0.317461
+0x3514
+// -0.056204
+0xab32
+// -0.310761
+0xb4f9
+// -0.189664
+0xb212
+// 0.132503
+0x303d
+// -0.025543
+0xa68a
+// 0.862547
+0x3ae6
+// -0.433343
+0xb6ef
+// 0.185971
+0x31f3
+// 0.826415
+0x3a9c
+// -0.323577
+0xb52d
+// -0.403686
+0xb675
+// -0.639973
+0xb91f
+// -0.470589
+0xb788
+// 0.492020
+0x37df
+// 0.237745
+0x339c
+// 0.228414
+0x334f
+// -0.629170
+0xb909
+// -0.369924
+0xb5eb
+// -0.143762
+0xb09a
+// -0.494663
+0xb7ea
+// -0.138296
+0xb06d
+// 0.249796
+0x33fe
+// -0.272982
+0xb45e
+// -0.093487
+0xadfc
+// 0.038920
+0x28fb
+// 0.521486
+0x382c
+// 0.083994
+0x2d60
+// 0.017283
+0x246d
+// -0.150435
+0xb0d0
+// 0.756501
+0x3a0d
+// -0.592732
+0xb8be
+// -0.512760
+0xb81a
+// 0.013395
+0x22dc
+// -0.367670
+0xb5e2
+// -0.155247
+0xb0f8
+// 0.190475
+0x3218
+// 0.052964
+0x2ac8
+// 0.543167
+0x3858
+// 0.090732
+0x2dcf
+// 0.027009
+0x26ea
+// -0.521582
+0xb82c
+// 0.084023
+0x2d61
+// 0.034849
+0x2876
+// 0.554133
+0x386f
+// -0.396888
+0xb65a
+// -0.119024
+0xaf9e
+// -0.193725
+0xb233
+// 0.225221
+0x3335
+// 0.124461
+0x2ff7
+// 0.365932
+0x35db
+// -0.364691
+0xb5d6
+// -0.791081
+0xba54
+// -0.194990
+0xb23d
+// -0.259104
+0xb425
+// 0.101349
+0x2e7d
+// 0.002045
+0x1830
+// -0.551490
+0xb869
+// -0.440266
+0xb70b
+// 0.030259
+0x27bf
+// 0.025459
+0x2684
+// 0.589527
+0x38b7
+// -0.543832
+0xb85a
+// -0.317988
+0xb516
+// -0.274345
+0xb464
+// 0.318914
+0x351a
+// -0.347383
+0xb58f
+// 0.039863
+0x291a
+// -0.312669
+0xb501
+// 0.012117
+0x2234
+// -0.417852
+0xb6b0
+// -0.492315
+0xb7e1
+// -0.419073
+0xb6b5
+// -0.341565
+0xb577
+// -0.185320
+0xb1ee
+// 0.073619
+0x2cb6
+// -0.389328
+0xb63b
+// 0.357768
+0x35b9
+// 0.216135
+0x32eb
+// 0.846983
+0x3ac7
+// -0.069166
+0xac6d
+// -0.065407
+0xac30
+// 0.227730
+0x334a
+// -0.427574
+0xb6d7
+// 0.456195
+0x374d
+// 0.094522
+0x2e0d
+// 0.296416
+0x34be
+// 0.479084
+0x37aa
+// 0.064415
+0x2c1f
+// -0.322516
+0xb529
+// 0.118841
+0x2f9b
+// 0.332732
+0x3553
+// 0.438462
+0x3704
+// 0.326491
+0x3539
+// -0.946953
+0xbb93
+// 0.467110
+0x3779
+// 0.372976
+0x35f8
+// 0.714114
+0x39b7
+// -0.316840
+0xb512
+// -0.120501
+0xafb6
+// -0.148834
+0xb0c3
+// -0.054564
+0xaafc
+// -0.413877
+0xb69f
+// -0.111508
+0xaf23
+// -0.142112
+0xb08c
+// 0.399954
+0x3666
+// -0.107023
+0xaed9
+// 0.353503
+0x35a8
+// -0.059209
+0xab94
+// 0.199349
+0x3261
+// 0.297195
+0x34c1
+// -0.025530
+0xa689
+// -0.009773
+0xa101
+// -0.296002
+0xb4bc
+// 0.143713
+0x3099
+// 0.187986
+0x3204
+// 0.045558
+0x29d5
+// -0.111230
+0xaf1e
+// -0.009007
+0xa09d
+// 0.280432
+0x347d
+// -0.110401
+0xaf11
+// -0.489161
+0xb7d4
+// -0.052882
+0xaac5
+// -0.405609
+0xb67d
+// -0.007303
+0x9f7a
+// -0.854660
+0xbad6
+// -0.195317
+0xb240
+// -0.010024
+0xa122
+// -0.088503
+0xadaa
+// -0.408525
+0xb689
+// 0.117465
+0x2f85
+// 0.083689
+0x2d5b
+// 0.077328
+0x2cf3
+// -0.056454
+0xab3a
+// -0.277491
+0xb471
+// -0.024110
+0xa62c
+// 0.595573
+0x38c4
+// -1.000000
+0xbc00
+// -0.369559
+0xb5ea
+// -0.005263
+0x9d64
+// 0.642486
+0x3924
+// 0.342432
+0x357b
+// 0.452696
+0x373e
+// 0.100946
+0x2e76
+// -0.018542
+0xa4bf
+// 0.029472
+0x278b
+// -0.191386
+0xb220
+// 0.468799
+0x3780
+// 0.093657
+0x2dfe
+// 0.357320
+0x35b8
+// 0.323127
+0x352c
+// -0.152882
+0xb0e4
+// 0.047111
+0x2a08
+// -0.037098
+0xa8c0
+// -0.613224
+0xb8e8
+// -0.311863
+0xb4fd
+// -0.518860
+0xb827
+// -0.599101
+0xb8cb
+// 0.203041
+0x327f
+// -0.320393
+0xb520
+// -0.459329
+0xb759
+// 0.640747
+0x3920
+// 0.096187
+0x2e28
+// -0.031177
+0xa7fb
+// -0.541797
+0xb856
+// 0.190076
+0x3215
+// -0.102633
+0xae92
+// -0.325281
+0xb534
+// -0.355571
+0xb5b0
+// 0.316931
+0x3512
+// -0.035019
+0xa87c
+// 0.082022
+0x2d40
+// -0.008458
+0xa055
+// 0.538848
+0x3850
+// -0.225881
+0xb33a

+ 128 - 128
Testing/Patterns/DSP/Filtering/DECIM/DECIMF32/Coefs1_f32.txt

@@ -1,130 +1,130 @@
 W
 64
-// 0.789908
-0x3f4a3762
-// -0.439692
-0xbee11f40
-// -1.000000
-0xbf800000
-// 0.055364
-0x3d62c5af
-// 0.591922
-0x3f17882d
-// 0.105857
-0x3dd8cb7e
-// -0.021366
-0xbcaf07e2
-// 0.223309
-0x3e64aaff
-// 0.535520
-0x3f0917de
-// 0.056336
-0x3d66c073
-// 0.174217
-0x3e3265f8
-// -0.601052
-0xbf19de93
-// -0.350605
-0xbeb3828d
-// 0.124276
-0x3dfe8437
-// -0.243671
-0xbe7984c7
-// -0.184371
-0xbe3ccbbb
-// -0.018934
-0xbc9b1c02
-// -0.142667
-0xbe12174f
-// -0.201240
-0xbe4e11e6
-// -0.657599
-0xbf285862
-// -0.429138
-0xbedbb7ee
-// 0.082168
-0x3da847e3
-// -0.477877
-0xbef4ac3b
-// -0.541554
-0xbf0aa348
-// 0.350499
-0x3eb374a9
-// -0.090220
-0xbdb8c57e
-// 0.056594
-0x3d67ced0
-// 0.109446
-0x3de02522
-// -0.234183
-0xbe6fcdbf
-// 0.066637
-0x3d8878d9
-// 0.400237
-0x3eccebdb
-// 0.443836
-0x3ee33e74
-// 0.196136
-0x3e48d7c2
-// 0.624401
-0x3f1fd8c2
-// -0.361076
-0xbeb8defd
-// -0.253783
-0xbe81efe5
-// 0.026768
-0x3cdb4878
-// 0.096569
-0x3dc5c614
-// -0.030827
-0xbcfc8813
-// -0.383762
-0xbec47c64
-// -0.009507
-0xbc1bc136
-// 0.366619
-0x3ebbb582
-// 0.210978
-0x3e580a94
-// -0.550417
-0xbf0ce81f
-// -0.207802
-0xbe54c9fe
-// -0.054997
-0xbd614494
-// -0.442426
-0xbee2859d
-// -0.233608
-0xbe6f36e1
-// 0.418054
-0x3ed60b35
-// 0.052056
-0x3d55391e
-// -0.011979
-0xbc444430
-// -0.175102
-0xbe334e0a
-// 0.404246
-0x3ecef961
-// -0.446705
-0xbee4b67e
-// -0.478451
-0xbef4f782
-// -0.328044
-0xbea7f563
-// 0.289086
-0x3e940307
-// -0.403886
-0xbececa21
-// -0.076843
-0xbd9d5fb4
-// 0.480234
-0x3ef5e147
-// 0.023977
-0x3cc46b7e
-// -0.193521
-0xbe462a4b
-// -0.422813
-0xbed87ae1
-// -0.885927
-0xbf62cc1d
+// 0.370237
+0x3ebd8fad
+// 0.076413
+0x3d9c7e3e
+// -0.467555
+0xbeef635e
+// 0.355766
+0x3eb626f2
+// 0.172938
+0x3e3116a5
+// 0.161738
+0x3e259eb6
+// 0.181103
+0x3e39732d
+// 0.377035
+0x3ec10ab8
+// 0.451730
+0x3ee74922
+// -0.102271
+0xbdd1733b
+// -0.908215
+0xbf6880c6
+// 0.209349
+0x3e565f99
+// -0.219013
+0xbe6044de
+// 0.124565
+0x3dff1bbe
+// -0.507410
+0xbf01e598
+// 0.495383
+0x3efda2ca
+// 0.226194
+0x3e679f5a
+// -0.186065
+0xbe3e87c0
+// 0.120175
+0x3df61e4a
+// 0.137789
+0x3e0d1876
+// -0.696402
+0xbf324767
+// -0.557623
+0xbf0ec067
+// 0.100495
+0x3dcdd020
+// 0.533861
+0x3f08ab1c
+// -0.274117
+0xbe8c5919
+// -0.031840
+0xbd026acf
+// 0.227560
+0x3e690594
+// -0.639003
+0xbf2395b6
+// 0.480643
+0x3ef616d2
+// -0.566947
+0xbf112369
+// -0.141676
+0xbe11138c
+// 0.282417
+0x3e9098f9
+// 0.402810
+0x3ece3d24
+// 0.133264
+0x3e087643
+// 0.161854
+0x3e25bd06
+// -0.815940
+0xbf50e16e
+// 0.214393
+0x3e5b89bb
+// -0.022809
+0xbcbadae0
+// -0.540844
+0xbf0a74bb
+// 0.255970
+0x3e830e7e
+// 0.109338
+0x3ddfecdb
+// 0.383849
+0x3ec487d8
+// -0.414573
+0xbed442e7
+// -0.298535
+0xbe98d987
+// 0.322132
+0x3ea4ee7e
+// -0.235469
+0xbe711eb4
+// 0.773472
+0x3f46023b
+// -0.020534
+0xbca837e1
+// -0.265953
+0xbe882af5
+// 0.067260
+0x3d89bf85
+// 0.585891
+0x3f15fcfb
+// -0.005920
+0xbbc1f95e
+// -0.013901
+0xbc63c16c
+// -0.163984
+0xbe27eb8b
+// -0.301542
+0xbe9a63b5
+// -0.749439
+0xbf3fdb37
+// 1.000000
+0x3f800000
+// 0.006388
+0x3bd1547f
+// -0.512816
+0xbf0347e6
+// 0.695080
+0x3f31f0c7
+// 0.329993
+0x3ea8f4e2
+// -0.252854
+0xbe817615
+// 0.013767
+0x3c618ec5
+// 0.116912
+0x3def6fc9

+ 510 - 510
Testing/Patterns/DSP/Filtering/DECIM/DECIMF32/Samples1_f32.txt

@@ -1,514 +1,514 @@
 W
 256
-// 0.535051
-0x3f08f91a
-// -0.174462
-0xbe32a622
-// -0.084841
-0xbdadc0f2
-// 0.650711
-0x3f269502
-// 0.784363
-0x3f48cc05
-// 0.298184
-0x3e98ab8a
-// 0.430450
-0x3edc6400
-// 0.089214
-0x3db6b5fd
-// 0.040794
-0x3d27181d
-// -0.592818
-0xbf17c2f4
-// 0.553782
-0x3f0dc4af
-// 0.779234
-0x3f477bda
-// -0.375871
-0xbec07234
-// -0.204893
-0xbe51cf5e
-// -0.116297
-0xbdee2d5e
-// -0.438112
-0xbee05030
-// -0.519543
-0xbf0500bf
-// 0.392380
-0x3ec8e5fd
-// -0.219212
-0xbe607912
-// -0.364343
-0xbeba8b24
-// -0.158239
-0xbe22097c
-// -0.229487
-0xbe6afe9d
-// 0.549132
-0x3f0c93ec
-// 0.268769
-0x3e899c28
-// -0.030105
-0xbcf69f24
-// 0.055608
-0x3d63c587
-// 0.686798
-0x3f2fd204
-// -0.698346
-0xbf32c6d2
-// -0.001151
-0xba96e765
-// -0.025397
-0xbcd00ddd
-// -0.084438
-0xbdacee07
-// -0.209166
-0xbe562f87
-// -0.257101
-0xbe83a2b9
-// -0.086224
-0xbdb09600
-// 0.347491
-0x3eb1ea61
-// -0.221921
-0xbe633f57
-// 0.582839
-0x3f1534ed
-// -0.353185
-0xbeb4d49a
-// 0.275763
-0x3e8d30dc
-// -0.558507
-0xbf0efa56
-// -0.661172
-0xbf294295
-// -0.422958
-0xbed88de9
-// 0.275849
-0x3e8d3c14
-// 0.152799
-0x3e1c775a
-// -0.041139
-0xbd288170
-// 0.518595
-0x3f04c2a2
+// -0.572652
+0xbf12994f
+// -0.312623
+0xbea0101c
+// -0.030900
+0xbcfd2228
+// 0.001442
+0x3abcffd1
+// 0.189603
+0x3e422769
+// -0.246591
+0xbe7c825a
+// -0.010886
+0xbc325979
+// 0.550036
+0x3f0ccf2f
+// -0.274318
+0xbe8c7364
+// 0.340152
+0x3eae2874
+// 0.010030
+0x3c245513
+// 0.075369
+0x3d9a5b16
+// 0.051577
+0x3d53427b
+// 0.293478
+0x3e9642bf
+// 0.347043
+0x3eb1af9c
+// 0.164781
+0x3e28bc3d
+// -0.215121
+0xbe5c4895
+// -0.450094
+0xbee672c6
+// -0.056845
+0xbd68d6a4
+// 0.010967
+0x3c33aff5
+// -0.220409
+0xbe61b2fc
+// 0.118684
+0x3df310da
+// 0.422280
+0x3ed83507
+// 0.316774
+0x3ea23034
+// 0.131909
+0x3e071344
+// 0.140406
+0x3e0fc6aa
+// 0.258194
+0x3e843200
+// -0.233944
+0xbe6f8f12
+// -0.224638
+0xbe66077f
+// -0.035006
+0xbd0f62b8
+// -0.340633
+0xbeae6768
+// 0.504749
+0x3f013741
+// 0.824713
+0x3f532068
+// 0.077277
+0x3d9e4353
+// -0.843806
+0xbf5803b4
+// -0.471168
+0xbef13cfc
+// -0.069759
+0xbd8ede0a
+// -0.337616
+0xbeacdbf5
+// 0.344614
+0x3eb07136
+// 0.365980
+0x3ebb61b4
+// 0.169304
+0x3e2d5e06
+// -0.376891
+0xbec0f7d5
+// 0.111074
+0x3de37acd
+// 0.243347
+0x3e792fe9
+// 0.000935
+0x3a7538cd
+// 0.352627
+0x3eb48b8b
+// 0.527008
+0x3f06e9fd
+// 0.652674
+0x3f2715a9
+// 0.254648
+0x3e82613d
+// 0.323739
+0x3ea5c11d
+// 0.262083
+0x3e862faf
+// -0.272445
+0xbe8b7de2
+// -0.441532
+0xbee2107f
+// -0.191759
+0xbe445c8c
+// 0.345917
+0x3eb11c18
+// 0.179689
+0x3e380051
+// -0.159917
+0xbe23c13a
+// -0.131400
+0xbe068dc2
+// 0.189162
+0x3e41b3bd
+// -0.519378
+0xbf04f5f5
+// -0.120253
+0xbdf64721
+// -0.022604
+0xbcb92b69
+// -0.272679
+0xbe8b9c94
+// -0.080492
+0xbda4d909
+// -0.084528
+0xbdad1cfe
+// -0.154433
+0xbe1e23a1
+// 0.056348
+0x3d66cd92
+// 0.323134
+0x3ea571c7
+// -0.040560
+0xbd2621f5
+// 0.354935
+0x3eb5ba0f
+// 0.399671
+0x3ecca1bb
+// -0.131252
+0xbe0666d9
+// 0.307536
+0x3e9d7565
+// -0.193528
+0xbe462c50
+// -0.104941
+0xbdd6eb88
+// 0.247151
+0x3e7d150d
+// -0.245993
+0xbe7be594
+// -0.989933
+0xbf7d6c3b
+// -0.205189
+0xbe521d0a
+// -0.579902
+0xbf14747c
+// -0.018391
+0xbc96a985
+// 0.439910
+0x3ee13bee
+// -0.490355
+0xbefb0fc2
+// 0.394572
+0x3eca055f
+// 0.764026
+0x3f439737
+// -0.112677
+0xbde6c332
+// -0.379482
+0xbec24b79
+// -0.312555
+0xbea0073d
+// 0.261446
+0x3e85dc50
+// -0.069349
+0xbd8e06bf
+// 0.187851
+0x3e405be6
+// -0.437472
+0xbedffc4b
+// 0.375821
+0x3ec06b8e
+// 0.369099
+0x3ebcfa8c
+// -0.268995
+0xbe89b9af
+// -0.156055
+0xbe1fccc7
+// 0.170180
+0x3e2e4392
+// -0.117947
+0xbdf18e07
+// -0.320155
+0xbea3eb4e
+// -0.394075
+0xbec9c437
+// -0.500113
+0xbf00076d
+// -0.694290
+0xbf31bd00
+// 0.360004
+0x3eb8527b
+// 0.091837
+0x3dbc1524
+// -0.528354
+0xbf074235
+// 0.845727
+0x3f588194
+// 0.829134
+0x3f544221
+// -0.626298
+0xbf205514
+// 0.292237
+0x3e95a011
+// -0.172673
+0xbe30d135
+// -0.513560
+0xbf0378b3
+// 0.348574
+0x3eb2783c
+// -0.176904
+0xbe35265c
+// -0.521798
+0xbf05948b
+// 0.498849
+0x3eff692c
+// -0.471701
+0xbef182cd
+// 0.199974
+0x3e4cc617
+// -0.988885
+0xbf7d279a
+// -0.501691
+0xbf006ed4
+// 0.172941
+0x3e311761
+// -0.039578
+0xbd221c91
+// -0.303458
+0xbe9b5ed1
+// 0.295602
+0x3e975930
+// 0.303193
+0x3e9b3c24
+// 0.106441
+0x3dd9fdcd
+// -0.309886
+0xbe9ea964
+// -0.364418
+0xbeba9504
+// -0.213990
+0xbe5b2027
+// -0.000437
+0xb9e51d4a
+// 0.569925
+0x3f11e6a0
+// 0.060901
+0x3d7973b6
+// -0.227553
+0xbe6903b6
+// -0.111278
+0xbde3e57d
+// -0.433902
+0xbede2861
+// -0.431891
+0xbedd20ce
+// -0.703218
+0xbf340616
+// 0.180958
+0x3e394ced
+// -0.647052
+0xbf25a537
+// -0.289607
+0xbe94475b
+// -0.154799
+0xbe1e83b6
+// -0.380059
+0xbec29712
+// -0.018831
+0xbc9a4357
+// 0.166077
+0x3e2a1013
+// -0.116661
+0xbdeeebbf
+// 0.494418
+0x3efd244c
+// 0.518421
+0x3f04b745
+// 0.037427
+0x3d194caf
+// -0.201666
+0xbe4e818c
+// 0.387529
+0x3ec66a40
+// -0.373813
+0xbebf645d
+// 0.380702
+0x3ec2eb5a
+// -0.549197
+0xbf0c9826
+// 0.457899
+0x3eea71c5
+// -0.328537
+0xbea83601
+// 0.287972
+0x3e937118
+// 0.311700
+0x3e9f9730
+// -0.356514
+0xbeb688f7
+// 0.101517
+0x3dcfe855
+// -0.269682
+0xbe8a13bc
+// 0.117927
+0x3df1839d
+// -0.256786
+0xbe83797a
+// 0.122817
+0x3dfb87ae
+// -0.187146
+0xbe3fa338
+// -0.058158
+0xbd6e3790
+// -0.518765
+0xbf04cdc2
+// -0.535336
+0xbf090bcf
+// -0.208923
+0xbe55efff
+// 0.132189
+0x3e075ca6
+// -0.204970
+0xbe51e396
+// 0.406189
+0x3ecff808
+// -0.205359
+0xbe52499c
+// -0.501279
+0xbf0053cf
+// 0.324521
+0x3ea6279c
+// 0.605599
+0x3f1b0888
+// -0.270259
+0xbe8a5f63
+// -0.464583
+0xbeedddcb
+// 0.293597
+0x3e96524d
+// -0.743633
+0xbf3e5eb5
+// -0.562431
+0xbf0ffb74
+// -0.062849
+0xbd80b6d5
+// 0.156149
+0x3e1fe57a
+// 0.154494
+0x3e1e33a6
+// -0.026369
+0xbcd803cc
+// -0.340860
+0xbeae852d
+// 0.507950
+0x3f020900
+// -0.196173
+0xbe48e1a9
+// -0.217674
+0xbe5ee608
+// -0.288242
+0xbe939478
+// -0.366949
+0xbebbe0cb
+// 0.170133
+0x3e2e376e
+// -0.152864
+0xbe1c886d
+// 0.108219
+0x3ddda1eb
+// 0.424314
+0x3ed93faf
+// 0.982525
+0x3f7b86bd
+// -0.425462
+0xbed9d633
+// -0.158940
+0xbe22c13f
+// 0.251467
+0x3e80c03d
+// 0.121025
+0x3df7dbc4
+// 0.308740
+0x3e9e131d
+// 0.243052
+0x3e78e287
+// -0.312713
+0xbea01bf4
+// -0.037865
+0xbd1b1877
+// -0.000560
+0xba12acc0
+// 0.479770
+0x3ef5a45c
+// 0.486965
+0x3ef95380
+// -0.070243
+0xbd8fdbbb
+// -0.792662
+0xbf4aebed
+// -0.039949
+0xbd23a163
+// -0.048301
+0xbd45d78e
+// 0.814788
+0x3f5095ec
+// -0.151601
+0xbe1b3d46
+// 0.242215
+0x3e780720
+// 0.103464
+0x3dd3e52a
+// -0.181041
+0xbe3962da
+// -0.121652
+0xbdf92490
+// 0.427300
+0x3edac70e
+// 0.200454
+0x3e4d43de
+// -0.385094
+0xbec52b13
+// -0.274582
+0xbe8c9602
+// -0.144165
+0xbe139fec
+// 0.132127
+0x3e074c6d
+// -0.476334
+0xbef3e201
+// -0.427479
+0xbedade90
+// 0.241060
+0x3e76d88b
+// -0.275534
+0xbe8d12c8
+// 0.027155
+0x3cde7528
+// -0.075011
+0xbd999f40
+// -0.150655
+0xbe1a4566
+// 0.258091
+0x3e842474
+// -0.078340
+0xbda070f2
+// 0.494697
+0x3efd48f2
+// 0.357519
+0x3eb70cae
+// -0.281321
+0xbe900942
+// 0.049535
+0x3d4ae58f
+// 0.480427
+0x3ef5fa8e
+// 0.213413
+0x3e5a8905
+// 0.414757
+0x3ed45afd
+// 0.576923
+0x3f13b135
+// -0.223722
+0xbe651747
+// 0.081705
+0x3da75529
+// -0.047013
+0xbd4090cc
+// 0.026594
+0x3cd9dc22
+// -0.080870
+0xbda59f0f
+// 0.428444
+0x3edb5d00
+// 0.737995
+0x3f3ced3d
+// 0.575347
+0x3f1349f9
+// -0.340426
+0xbeae4c48
+// 0.046613
+0x3d3eed71
+// -0.047684
+0xbd435049
+// 0.424447
+0x3ed9512c
+// -0.045225
+0xbd393d8c
 // -1.000000
 0xbf800000
-// -0.359276
-0xbeb7f305
-// 0.516923
-0x3f04550b
-// -0.287992
-0xbe9373bd
-// -0.224856
-0xbe66408a
-// 0.174346
-0x3e3287cf
-// 0.003912
-0x3b803354
-// -0.100461
-0xbdcdbe78
-// 0.481322
-0x3ef66fe7
-// 0.285124
-0x3e91fbcf
-// -0.203601
-0xbe507cc8
-// -0.094092
-0xbdc0b358
-// 0.385873
-0x3ec59123
-// 0.244540
-0x3e7a68ac
-// -0.193849
-0xbe468050
-// -0.461416
-0xbeec3ebd
-// 0.031640
-0x3d01995d
-// -0.331437
-0xbea9b228
-// 0.379167
-0x3ec22233
-// 0.005291
-0x3bad5e09
-// -0.378862
-0xbec1fa35
-// -0.400102
-0xbeccda2d
-// -0.146490
-0xbe16018b
-// 0.238854
-0x3e74960f
-// -0.238528
-0xbe744093
-// -0.063269
-0xbd819363
-// -0.286029
-0xbe927265
-// 0.300177
-0x3e99b0bd
-// 0.451902
-0x3ee75fa6
-// 0.281889
-0x3e9053b9
-// -0.035842
-0xbd12ced8
-// -0.063298
-0xbd81a290
-// -0.182485
-0xbe3add60
-// -0.005515
-0xbbb4b79f
-// 0.347790
-0x3eb21196
-// 0.120729
-0x3df740a1
-// 0.157268
-0x3e210aea
-// -0.098689
-0xbdca1d7d
-// 0.483408
-0x3ef7814f
-// 0.280983
-0x3e8fdcf3
-// 0.119574
-0x3df4e379
-// -0.342525
-0xbeaf5f7b
-// 0.204426
-0x3e515521
-// -0.315789
-0xbea1af1f
-// 0.251982
-0x3e8103d4
-// 0.331470
-0x3ea9b672
-// 0.207180
-0x3e5426f0
-// -0.249015
-0xbe7efdd1
-// 0.197387
-0x3e4a1fc2
-// -0.207697
-0xbe54aea5
-// 0.226553
-0x3e67fd75
-// 0.738168
-0x3f3cf892
-// -0.479912
-0xbef5b707
-// 0.330667
-0x3ea94d38
-// -0.334832
-0xbeab6f16
-// 0.510983
-0x3f02cfcd
-// -0.323630
-0xbea5b2d9
-// -0.113076
-0xbde7942b
-// -0.435418
-0xbedeef18
-// -0.122712
-0xbdfb5083
-// -0.093112
-0xbdbeb1be
-// -0.144352
-0xbe13d0e3
-// -0.127643
-0xbe02b4be
-// 0.266712
-0x3e888e7d
-// -0.180369
-0xbe38b2c1
-// -0.028268
-0xbce79284
-// -0.502433
-0xbf009f6b
-// 0.703062
-0x3f33fbe5
-// -0.213934
-0xbe5b1175
-// 0.383527
-0x3ec45dab
-// 0.080269
-0x3da4640f
-// -0.091871
-0xbdbc270e
-// 0.203504
-0x3e506343
-// 0.258814
-0x3e84833f
-// -0.503529
-0xbf00e740
-// -0.106414
-0xbdd9ef9e
-// -0.563077
-0xbf1025d5
-// -0.241592
-0xbe7763cd
-// -0.297070
-0xbe981992
-// -0.657904
-0xbf286c5f
-// -0.411167
-0xbed28470
-// -0.644688
-0xbf250a49
-// 0.032830
-0x3d067911
-// -0.098152
-0xbdc903b1
-// 0.720554
-0x3f387639
-// -0.366631
-0xbebbb701
-// -0.301111
-0xbe9a2b41
-// -0.151063
-0xbe1ab042
-// -0.056826
-0xbd68c222
-// -0.038936
-0xbd1f7b6e
-// -0.377912
-0xbec17dbe
-// 0.044111
-0x3d34ae05
-// 0.571075
-0x3f1231f1
-// -0.067034
-0xbd894909
-// -0.306341
-0xbe9cd8ac
-// 0.002439
-0x3b1fdf43
-// 0.528024
-0x3f072c93
-// -0.011135
-0xbc366ea3
-// 0.514561
-0x3f03ba40
-// -0.142119
-0xbe1187b7
-// 0.444839
-0x3ee3c1e4
-// -0.308287
-0xbe9dd7cf
-// 0.218920
-0x3e602cb2
-// -0.440300
-0xbee16eff
-// -0.242073
-0xbe77e1ef
-// 0.445457
-0x3ee412ee
-// 0.188212
-0x3e40ba88
-// 0.224619
-0x3e66026c
-// -0.067505
-0xbd8a3fe0
-// 0.215355
-0x3e5c8612
-// -0.058446
-0xbd6f6503
-// -0.157233
-0xbe2101bb
-// -0.058292
-0xbd6ec32b
-// 0.678277
-0x3f2da392
-// 0.264182
-0x3e8742dc
-// 0.076030
-0x3d9bb5d7
-// -0.035045
-0xbd0f8ba4
-// -0.175872
-0xbe3417b1
-// -0.007349
-0xbbf0cd7e
-// -0.174340
-0xbe328645
-// -0.330820
-0xbea96137
-// 0.040780
-0x3d270926
-// 0.133332
-0x3e08884b
-// 0.193618
-0x3e4643af
-// 0.072959
-0x3d956b61
-// 0.073768
-0x3d9713e3
-// 0.059763
-0x3d74c9bd
-// 0.511677
-0x3f02fd4c
-// 0.144726
-0x3e143309
-// 0.273378
-0x3e8bf830
-// -0.188457
-0xbe40fafc
-// 0.091240
-0x3dbadc04
-// -0.109327
-0xbddfe69c
-// -0.027104
-0xbcde0911
-// 0.369226
-0x3ebd0b3a
-// 0.271382
-0x3e8af28f
-// 0.738026
-0x3f3cef42
-// 0.259995
-0x3e851e20
-// -0.479008
-0xbef54089
-// -0.110884
-0xbde31706
-// 0.045474
-0x3d3a4327
-// -0.618423
-0xbf1e50f9
-// 0.381501
-0x3ec35411
-// 0.367109
-0x3ebbf5ac
-// -0.663752
-0xbf29ebaf
-// -0.034579
-0xbd0da2ed
-// -0.170575
-0xbe2eab38
-// 0.174230
-0x3e326979
-// -0.164134
-0xbe2812a0
-// -0.115743
-0xbded0a7f
-// 0.249989
-0x3e7ffd08
-// -0.892896
-0xbf6494dd
-// 0.336430
-0x3eac408c
-// 0.156824
-0x3e209677
-// -0.134494
-0xbe09b8d5
-// -0.655003
-0xbf27ae42
-// 0.120710
-0x3df736b8
-// 0.204889
-0x3e51ce78
-// -0.623044
-0xbf1f7fd0
-// 0.192275
-0x3e44e3d0
-// 0.075224
-0x3d9a0f10
-// 0.351520
-0x3eb3fa63
-// 0.357440
-0x3eb7026b
-// -0.158178
-0xbe21f958
-// -0.581053
-0xbf14bfeb
-// 0.098958
-0x3dcaaa8e
-// 0.055795
-0x3d648983
-// 0.045973
-0x3d3c4dbc
-// 0.037749
-0x3d1a9f0d
-// -0.273146
-0xbe8bd9ce
-// 0.161505
-0x3e25617a
-// -0.039794
-0xbd22ff88
-// 0.117846
-0x3df1595f
-// -0.137138
-0xbe0c6dda
-// -0.311638
-0xbe9f8ef4
-// -0.236348
-0xbe72054d
-// 0.067005
-0x3d893a2c
-// 0.315914
-0x3ea1bf71
-// 0.271969
-0x3e8b3f7f
-// -0.088648
-0xbdb58ce7
-// 0.063606
-0x3d824404
-// 0.452586
-0x3ee7b94b
-// -0.093940
-0xbdc0637a
-// -0.228936
-0xbe6a6e2a
-// -0.182577
-0xbe3af578
-// -0.406297
-0xbed00625
-// 0.584375
-0x3f159991
-// -0.333763
-0xbeaae2ee
-// -0.069314
-0xbd8df4a2
-// 0.136322
-0x3e0b97e2
-// 0.472666
-0x3ef20140
-// 0.329641
-0x3ea8c6be
-// 0.187913
-0x3e406c4a
-// -0.179350
-0xbe37a791
-// 0.626661
-0x3f206ce1
-// -0.004265
-0xbb8bbf3f
-// -0.276678
-0xbe8da8bb
-// -0.065577
-0xbd864d74
-// 0.334245
-0x3eab2237
-// 0.040940
-0x3d27b0ec
-// 0.104483
-0x3dd5fb6f
-// -0.200608
-0xbe4d6c28
-// -0.157714
-0xbe217fb1
-// -0.066993
-0xbd8933da
-// -0.239396
-0xbe75244c
-// -0.167827
-0xbe2bdaba
-// -0.307393
-0xbe9d6298
-// -0.194507
-0xbe472cc8
-// 0.238673
-0x3e7466a6
-// -0.259391
-0xbe84cee6
+// 0.082595
+0x3da927bc
+// 0.089377
+0x3db70b2f
+// -0.189030
+0xbe4190f9
+// 0.325879
+0x3ea6d994

+ 128 - 128
Testing/Patterns/DSP/Filtering/DECIM/DECIMQ15/Coefs1_q15.txt

@@ -1,130 +1,130 @@
 H
 64
-// -0.751624
-0x9FCB
-// 0.568033
-0x48B5
-// 0.496504
-0x3F8D
-// -0.397031
-0xCD2E
-// -0.463390
-0xC4B0
-// 0.338679
-0x2B5A
-// -0.264382
-0xDE29
-// 0.100826
-0x0CE8
-// -0.353087
-0xD2CE
-// 0.843611
-0x6BFB
-// -0.330472
-0xD5B3
-// -0.714824
-0xA481
-// -0.173211
-0xE9D4
-// -0.435557
-0xC840
-// -0.078115
-0xF600
-// 0.704877
-0x5A39
-// -0.048470
-0xF9CC
-// 0.340373
-0x2B91
-// -0.176686
-0xE962
-// -0.430668
-0xC8E0
-// -0.001965
-0xFFC0
-// 0.046342
-0x05EF
-// 0.129385
-0x1090
-// 0.769509
-0x627F
-// 0.474459
-0x3CBB
-// 0.296234
-0x25EB
-// -0.172054
-0xE9FA
-// 0.016911
-0x022A
-// -0.217781
-0xE420
-// 0.518927
-0x426C
-// -0.240959
-0xE128
-// 0.394754
-0x3287
-// -0.214469
-0xE48C
-// -0.280210
-0xDC22
-// 1.000000
-0x7FFF
-// 0.708757
-0x5AB9
-// 0.555834
-0x4726
-// -0.372657
-0xD04D
-// -0.908243
-0x8BBF
-// -0.168783
-0xEA65
-// -0.747712
-0xA04B
-// -0.882574
-0x8F08
-// -0.330868
-0xD5A6
-// 0.186399
-0x17DC
-// -0.287012
-0xDB43
-// 0.626672
-0x5037
-// 0.117483
-0x0F0A
-// -0.037589
-0xFB30
-// -0.019841
-0xFD76
-// 0.098880
-0x0CA8
-// 0.093914
-0x0C05
-// -0.609668
-0xB1F6
-// 0.634326
-0x5132
-// 0.236980
-0x1E55
-// 0.456612
-0x3A72
-// 0.250999
-0x2021
-// -0.038005
-0xFB23
-// 0.191638
-0x1888
-// 0.559340
-0x4798
-// 0.794175
-0x65A8
-// 0.055239
-0x0712
-// 0.838836
-0x6B5F
-// 0.165991
-0x153F
-// -0.584006
-0xB53F
+// -0.298714
+0xD9C4
+// -0.321032
+0xD6E8
+// 0.241484
+0x1EE9
+// 0.066115
+0x0876
+// -0.086688
+0xF4E7
+// 0.528371
+0x43A2
+// 0.280771
+0x23F0
+// 0.313562
+0x2823
+// -0.733416
+0xA21F
+// 0.311087
+0x27D2
+// -0.341147
+0xD455
+// -0.391289
+0xCDEA
+// -0.337142
+0xD4D9
+// -0.279098
+0xDC47
+// -0.167127
+0xEA9C
+// -0.326927
+0xD627
+// -0.135920
+0xEE9A
+// 0.027493
+0x0385
+// -0.080339
+0xF5B7
+// -0.551030
+0xB978
+// 0.195898
+0x1913
+// 0.587204
+0x4B2A
+// -0.125292
+0xEFF6
+// 0.279240
+0x23BE
+// 0.915229
+0x7526
+// 0.516106
+0x4210
+// 0.323995
+0x2979
+// 0.221797
+0x1C64
+// -0.509599
+0xBEC5
+// -0.450243
+0xC65E
+// 0.439489
+0x3841
+// -0.151912
+0xEC8E
+// -0.547370
+0xB9F0
+// -0.456411
+0xC594
+// 0.595021
+0x4C2A
+// 0.694564
+0x58E7
+// -0.616612
+0xB113
+// -0.155246
+0xEC21
+// 0.457364
+0x3A8B
+// -0.168631
+0xEA6A
+// 0.442101
+0x3897
+// -0.175840
+0xE97E
+// 0.242458
+0x1F09
+// -0.361057
+0xD1C9
+// 0.288829
+0x24F8
+// -0.079261
+0xF5DB
+// -0.154293
+0xEC40
+// -0.004068
+0xFF7B
+// -0.564359
+0xB7C3
+// -0.686408
+0xA824
+// 0.613806
+0x4E91
+// 0.237633
+0x1E6B
+// -0.504205
+0xBF76
+// -1.000000
+0x8000
+// -0.166388
+0xEAB4
+// -0.333214
+0xD559
+// -0.498803
+0xC027
+// -0.567356
+0xB761
+// 0.472478
+0x3C7A
+// 0.007200
+0x00EC
+// 0.107689
+0x0DC9
+// -0.316510
+0xD77D
+// 0.078917
+0x0A1A
+// 0.767743
+0x6245

+ 510 - 510
Testing/Patterns/DSP/Filtering/DECIM/DECIMQ15/Samples1_q15.txt

@@ -1,514 +1,514 @@
 H
 256
-// -0.086031
-0xF4FD
-// -0.275854
-0xDCB1
-// -0.237341
-0xE19F
-// 0.281143
-0x23FC
-// -0.267724
-0xDDBB
-// -0.091752
-0xF441
-// 0.075480
-0x09A9
-// 0.448318
-0x3962
-// 0.002263
-0x004A
-// 0.754565
-0x6096
-// 0.143138
-0x1252
-// -0.324787
-0xD66D
-// -0.001606
-0xFFCB
-// -0.392998
-0xCDB2
-// 0.293243
-0x2589
-// -0.545287
-0xBA34
-// 0.347832
-0x2C86
-// 0.085380
-0x0AEE
-// -0.259498
-0xDEC9
-// 0.685164
-0x57B3
-// 0.318236
-0x28BC
-// -0.185237
-0xE84A
-// -0.551443
-0xB96A
-// 0.613305
-0x4E81
-// -0.155463
-0xEC1A
-// 0.403672
-0x33AC
-// 0.168887
-0x159E
-// 0.180164
-0x1710
-// 0.162945
-0x14DB
-// 0.349461
-0x2CBB
-// 0.506389
-0x40D1
-// 0.351631
-0x2D02
-// -0.270917
-0xDD53
-// 0.236890
-0x1E52
-// -0.059766
-0xF85A
-// 0.001606
-0x0035
-// 0.121150
-0x0F82
-// 0.408826
-0x3454
-// 0.199553
-0x198B
-// 0.025156
-0x0338
-// -0.173997
-0xE9BA
-// 0.545092
-0x45C6
-// -0.303526
-0xD926
-// -0.515455
-0xBE06
-// -0.101610
-0xF2FE
-// 0.051917
-0x06A5
-// 0.023199
-0x02F8
-// -0.689095
-0xA7CC
-// -0.370126
-0xD0A0
-// 0.268053
-0x2250
-// 0.171985
-0x1604
-// 0.261612
-0x217D
-// -0.074309
-0xF67D
-// -0.262816
-0xDE5C
-// 0.106692
-0x0DA8
-// 0.242898
-0x1F17
-// -0.001091
-0xFFDC
-// -0.656060
-0xAC06
-// -0.270190
-0xDD6A
-// 0.606167
-0x4D97
-// -0.112129
-0xF1A6
+// 0.280536
+0x23E9
+// 0.448104
+0x395B
 // 1.000000
 0x7FFF
-// -0.308131
-0xD88F
-// 0.051155
-0x068C
-// -0.073794
-0xF68E
-// 0.426462
-0x3696
-// 0.589560
-0x4B77
-// -0.093397
-0xF40C
-// -0.212457
-0xE4CE
-// 0.354192
-0x2D56
-// 0.355235
-0x2D78
-// -0.512155
-0xBE72
-// -0.035374
-0xFB79
-// -0.201196
-0xE63F
-// 0.907396
-0x7426
-// 0.126432
-0x102F
-// 0.230469
-0x1D80
-// 0.079397
-0x0A2A
-// -0.481681
-0xC258
-// 0.064408
-0x083F
-// -0.056694
-0xF8BE
-// -0.638222
-0xAE4F
-// -0.344891
-0xD3DB
-// 0.060214
-0x07B5
-// -0.157608
-0xEBD3
-// 0.160014
-0x147B
-// 0.394497
-0x327F
-// -0.157279
-0xEBDE
-// 0.162092
-0x14BF
-// 0.500906
-0x401E
-// 0.570219
-0x48FD
-// -0.470837
-0xC3BC
-// -0.211867
-0xE4E2
-// -0.052496
-0xF948
-// 0.217018
-0x1BC7
-// -0.198384
-0xE69B
-// 0.421175
-0x35E9
-// -0.270342
-0xDD65
-// -0.089670
-0xF486
-// -0.142708
-0xEDBC
-// -0.154261
-0xEC41
-// -0.259960
-0xDEBA
-// -0.158551
-0xEBB5
-// 0.497280
-0x3FA7
-// 0.025092
-0x0336
-// -0.077794
-0xF60B
-// 0.097090
-0x0C6D
-// 0.293916
-0x259F
-// 0.280879
-0x23F4
-// 0.620124
-0x4F60
-// 0.102768
-0x0D27
-// -0.249816
-0xE006
-// -0.502605
-0xBFAB
-// 0.116892
-0x0EF6
-// -0.642827
-0xADB8
-// 0.048637
-0x063A
-// -0.182066
-0xE8B2
-// 0.071443
-0x0925
-// 0.016418
-0x021A
-// -0.356453
-0xD260
-// 0.046161
-0x05E9
-// 0.352931
-0x2D2D
-// -0.003291
-0xFF94
-// -0.041915
-0xFAA3
-// -0.420680
-0xCA27
-// -0.177658
-0xE943
-// -0.374580
-0xD00E
-// 0.037336
-0x04C7
-// -0.024485
-0xFCDE
-// -0.095950
-0xF3B8
-// 0.033519
-0x044A
-// -0.241987
-0xE107
-// 0.591294
-0x4BB0
-// 0.047012
-0x0604
-// 0.312604
-0x2803
-// -0.414962
-0xCAE3
-// -0.310901
-0xD834
-// 0.179452
-0x16F8
-// -0.737583
-0xA197
-// 0.155841
-0x13F3
-// 0.201657
-0x19D0
-// -0.048928
-0xF9BD
-// 0.377310
-0x304C
-// -0.586251
-0xB4F6
-// -0.089844
-0xF480
-// 0.330865
-0x2A5A
-// 0.323537
-0x296A
-// -0.187458
-0xE801
-// 0.239207
-0x1E9E
-// 0.123765
-0x0FD8
-// -0.116120
-0xF123
-// 0.061091
-0x07D2
-// -0.266293
-0xDDEA
-// 0.091241
-0x0BAE
-// 0.238244
-0x1E7F
-// -0.645743
-0xAD58
-// -0.396687
-0xCD39
-// -0.038634
-0xFB0E
-// 0.081343
-0x0A69
-// -0.033486
-0xFBB7
-// -0.012717
-0xFE5F
-// 0.367591
-0x2F0D
-// 0.120544
-0x0F6E
-// -0.486032
-0xC1CA
-// 0.050349
-0x0672
-// -0.084393
-0xF533
-// -0.537231
-0xBB3C
-// 0.125391
-0x100D
-// 0.208504
-0x1AB0
-// 0.088551
-0x0B56
-// 0.347746
-0x2C83
-// 0.012752
-0x01A2
-// 0.316788
-0x288D
-// 0.256129
-0x20C9
-// 0.210148
-0x1AE6
-// 0.151383
-0x1361
-// 0.257158
-0x20EB
-// -0.022531
-0xFD1E
-// -0.598048
-0xB373
-// -0.221354
-0xE3AB
-// -0.216712
-0xE443
-// 0.057029
-0x074D
-// -0.196394
-0xE6DD
-// -0.064866
-0xF7B2
-// 0.604707
-0x4D67
-// 0.221362
-0x1C56
-// -0.212996
-0xE4BD
-// 0.149352
-0x131E
-// 0.104096
-0x0D53
-// 0.254695
-0x209A
-// 0.069479
-0x08E5
-// -0.078255
-0xF5FC
-// 0.128160
-0x1068
-// -0.134292
-0xEED0
-// 0.122954
-0x0FBD
-// -0.433209
-0xC88D
-// 0.084181
-0x0AC6
-// -0.336751
-0xD4E5
-// -0.534011
-0xBBA6
-// -0.158391
-0xEBBA
-// 0.472874
-0x3C87
-// 0.019119
-0x0272
-// 0.063048
-0x0812
-// -0.427662
-0xC942
-// -0.019921
-0xFD73
-// -0.174827
-0xE99F
-// 0.000512
-0x0011
-// -0.219814
-0xE3DD
-// -0.530675
-0xBC13
-// 0.228950
-0x1D4E
-// 0.445238
-0x38FE
-// 0.495405
-0x3F69
-// -0.077117
-0xF621
-// 0.286114
-0x249F
-// -0.720196
-0xA3D1
-// -0.139144
-0xEE31
-// 0.515437
-0x41FA
-// -0.484941
-0xC1ED
-// 0.529684
-0x43CD
-// -0.019186
-0xFD8B
-// 0.696214
-0x591E
-// 0.131058
-0x10C7
-// 0.106949
-0x0DB0
-// -0.092509
-0xF429
-// 0.490110
-0x3EBC
-// -0.008765
-0xFEE1
-// 0.197927
-0x1956
-// 0.307443
-0x275A
-// -0.116348
-0xF11C
-// -0.060508
-0xF841
-// -0.268835
-0xDD97
-// -0.283628
-0xDBB2
-// 0.135420
-0x1155
-// -0.165672
-0xEACB
-// -0.194632
-0xE716
-// -0.092470
-0xF42A
-// -0.081403
-0xF595
-// 0.150725
-0x134B
-// 0.402310
-0x337F
-// -0.391475
-0xCDE4
-// -0.825464
-0x9657
-// 0.296289
-0x25ED
-// 0.299939
-0x2664
-// -0.147214
-0xED28
-// -0.502330
-0xBFB4
-// 0.222522
-0x1C7C
-// 0.466084
-0x3BA9
-// 0.355158
-0x2D76
-// -0.446783
-0xC6D0
-// -0.536058
-0xBB62
-// -0.210841
-0xE503
-// 0.479836
-0x3D6B
-// -0.642732
-0xADBB
-// 0.165057
-0x1521
-// -0.071413
-0xF6DC
-// 0.282774
-0x2432
+// 0.204602
+0x1A30
+// -0.093794
+0xF3FF
+// 0.001261
+0x0029
+// -0.050543
+0xF988
+// -0.206196
+0xE59B
+// -0.531316
+0xBBFE
+// -0.654660
+0xAC34
+// -0.076544
+0xF634
+// -0.168361
+0xEA73
+// 0.167144
+0x1565
+// 0.308590
+0x2780
+// -0.247444
+0xE054
+// -0.302753
+0xD93F
+// -0.602324
+0xB2E7
+// 0.131959
+0x10E4
+// 0.033999
+0x045A
+// 0.490330
+0x3EC3
+// 0.758374
+0x6112
+// -0.933745
+0x887B
+// 0.109244
+0x0DFC
+// 0.012350
+0x0195
+// 0.086505
+0x0B13
+// -0.177739
+0xE940
+// 0.060755
+0x07C7
+// 0.174781
+0x165F
+// -0.311602
+0xD81D
+// -0.242758
+0xE0ED
+// -0.118162
+0xF0E0
+// -0.524968
+0xBCCE
+// 0.001734
+0x0039
+// 0.233102
+0x1DD6
+// 0.054011
+0x06EA
+// -0.225760
+0xE31A
+// -0.416545
+0xCAAF
+// 0.297782
+0x261E
+// -0.221869
+0xE39A
+// -0.374644
+0xD00C
+// -0.474126
+0xC350
+// 0.104224
+0x0D57
+// -0.181636
+0xE8C0
+// -0.366404
+0xD11A
+// 0.117355
+0x0F05
+// -0.007272
+0xFF12
+// 0.349269
+0x2CB5
+// 0.291926
+0x255E
+// 0.468546
+0x3BF9
+// -0.134850
+0xEEBD
+// 0.045220
+0x05CA
+// 0.072833
+0x0953
+// 0.039189
+0x0504
+// 0.014834
+0x01E6
+// -0.491277
+0xC11E
+// -0.303357
+0xD92C
+// 0.193963
+0x18D4
+// 0.124183
+0x0FE5
+// -0.415469
+0xCAD2
+// -0.460725
+0xC507
+// 0.412947
+0x34DB
+// -0.655129
+0xAC25
+// 0.033253
+0x0442
+// 0.062299
+0x07F9
+// -0.016326
+0xFDE9
+// 0.400409
+0x3341
+// -0.450063
+0xC664
+// -0.098296
+0xF36B
+// 0.030449
+0x03E6
+// -0.098729
+0xF35D
+// 0.034607
+0x046E
+// 0.345989
+0x2C49
+// 0.145949
+0x12AE
+// -0.923490
+0x89CB
+// 0.594337
+0x4C13
+// 0.406514
+0x3409
+// -0.053438
+0xF929
+// -0.751760
+0x9FC6
+// -0.242998
+0xE0E5
+// 0.622289
+0x4FA7
+// 0.173739
+0x163D
+// -0.157766
+0xEBCE
+// -0.912535
+0x8B32
+// 0.032087
+0x041B
+// 0.226872
+0x1D0A
+// 0.205282
+0x1A47
+// -0.400482
+0xCCBD
+// 0.270815
+0x22AA
+// -0.193177
+0xE746
+// 0.099415
+0x0CBA
+// 0.285711
+0x2492
+// 0.298561
+0x2637
+// -0.053747
+0xF91F
+// 0.226688
+0x1D04
+// -0.610172
+0xB1E6
+// -0.334867
+0xD523
+// -0.257061
+0xDF19
+// -0.039174
+0xFAFC
+// -0.011658
+0xFE82
+// 0.090181
+0x0B8B
+// -0.231311
+0xE264
+// 0.616896
+0x4EF6
+// -0.248234
+0xE03A
+// -0.017301
+0xFDC9
+// 0.095842
+0x0C45
+// 0.108977
+0x0DF3
+// 0.183676
+0x1783
+// 0.395270
+0x3298
+// -0.168253
+0xEA77
+// -0.182641
+0xE89F
+// 0.295239
+0x25CA
+// -0.414341
+0xCAF7
+// -0.110927
+0xF1CD
+// -0.642948
+0xADB4
+// -0.102535
+0xF2E0
+// -0.759804
+0x9EBF
+// -0.138798
+0xEE3C
+// -0.299270
+0xD9B2
+// 0.320378
+0x2902
+// 0.061048
+0x07D0
+// 0.089391
+0x0B71
+// 0.145632
+0x12A4
+// -0.283491
+0xDBB7
+// -0.372219
+0xD05B
+// 0.253655
+0x2078
+// 0.173625
+0x1639
+// 0.009226
+0x012E
+// -0.312658
+0xD7FB
+// -0.431188
+0xC8CF
+// -0.474684
+0xC33E
+// -0.220667
+0xE3C1
+// 0.006533
+0x00D6
+// 0.279603
+0x23CA
+// 0.350775
+0x2CE6
+// 0.283164
+0x243F
+// -0.392402
+0xCDC6
+// 0.045765
+0x05DC
+// -0.615353
+0xB13C
+// 0.199322
+0x1983
+// -0.763435
+0x9E48
+// 0.162704
+0x14D3
+// -0.163552
+0xEB11
+// 0.121755
+0x0F96
+// -0.110591
+0xF1D8
+// -0.200783
+0xE64D
+// -0.006283
+0xFF32
+// 0.038850
+0x04F9
+// 0.116825
+0x0EF4
+// 0.747539
+0x5FAF
+// 0.287218
+0x24C4
+// 0.129947
+0x10A2
+// -0.164958
+0xEAE3
+// 0.147377
+0x12DD
+// 0.525765
+0x434C
+// 0.266396
+0x2219
+// -0.404705
+0xCC33
+// -0.034657
+0xFB90
+// 0.453828
+0x3A17
+// -0.249126
+0xE01D
+// -0.042443
+0xFA91
+// 0.031381
+0x0404
+// 0.149199
+0x1319
+// -0.422767
+0xC9E3
+// 0.867185
+0x6F00
+// -0.106787
+0xF255
+// -0.369131
+0xD0C0
+// 0.391559
+0x321F
+// -0.741647
+0xA112
+// 0.254202
+0x208A
+// -0.453698
+0xC5ED
+// -0.052326
+0xF94D
+// -0.279676
+0xDC34
+// -0.832948
+0x9562
+// 0.486556
+0x3E47
+// -0.565261
+0xB7A6
+// -0.393121
+0xCDAE
+// 0.441680
+0x3889
+// -0.029867
+0xFC2D
+// 0.080749
+0x0A56
+// -0.295694
+0xDA27
+// -0.444690
+0xC714
+// -0.237086
+0xE1A7
+// -0.159002
+0xEBA6
+// 0.064321
+0x083C
+// 0.358610
+0x2DE7
+// 0.446611
+0x392B
+// 0.162368
+0x14C8
+// -0.138404
+0xEE49
+// -0.151238
+0xECA4
+// 0.331200
+0x2A65
+// -0.677507
+0xA947
+// -0.739339
+0xA15D
+// 0.495812
+0x3F77
+// 0.259065
+0x2129
+// -0.105588
+0xF27C
+// 0.103021
+0x0D30
+// -0.191257
+0xE785
+// 0.544866
+0x45BE
+// -0.147832
+0xED14
+// 0.200041
+0x199B
+// -0.052869
+0xF93C
+// 0.467357
+0x3BD2
+// 0.076080
+0x09BD
+// -0.258288
+0xDEF0
+// -0.239957
+0xE149
+// -0.672857
+0xA9E0
+// -0.054189
+0xF910
+// 0.180408
+0x1718
+// -0.461187
+0xC4F8
+// 0.259361
+0x2133
+// 0.108486
+0x0DE3
+// 0.287857
+0x24D9
+// -0.437319
+0xC806
+// 0.387489
+0x3199
+// -0.105482
+0xF280
+// -0.329463
+0xD5D4
+// -0.046335
+0xFA12
+// 0.041507
+0x0550
+// -0.287716
+0xDB2C
+// -0.308524
+0xD882
+// -0.086275
+0xF4F5
+// 0.477278
+0x3D17
+// -0.321664
+0xD6D4
+// -0.017798
+0xFDB9
+// -0.082477
+0xF571
+// 0.475144
+0x3CD2
+// -0.501445
+0xBFD1
+// 0.071323
+0x0921
+// -0.403474
+0xCC5B
+// 0.079247
+0x0A25
+// -0.357411
+0xD240
+// 0.404579
+0x33C9
+// 0.000965
+0x0020
+// -0.131775
+0xEF22
+// 0.162982
+0x14DD
+// -0.053999
+0xF917
+// -0.507001
+0xBF1B
+// 0.117625
+0x0F0E
+// -0.013283
+0xFE4D
+// 0.272507
+0x22E2
+// -0.123813
+0xF027
+// -0.434033
+0xC872
+// -0.028264
+0xFC62
+// 0.240883
+0x1ED5
+// -0.215690
+0xE464
+// 0.620156
+0x4F61
+// 0.040681
+0x0535
+// -0.687979
+0xA7F0
+// 0.158950
+0x1458
+// 0.284979
+0x247A
+// 0.427119
+0x36AC
+// -0.247618
+0xE04E
+// -0.338079
+0xD4BA
+// 0.145686
+0x12A6
+// 0.063213
+0x0817
+// -0.155598
+0xEC15

+ 126 - 126
Testing/Patterns/DSP/Filtering/DECIM/DECIMQ31/Coefs1_q31.txt

@@ -1,130 +1,130 @@
 W
 64
-// -0.280858
-0xDC0CD817
-// 0.146140
-0x12B4B730
-// -0.677125
-0xA953F876
-// 0.582360
-0x4A8AC31C
-// 0.456381
-0x3A6AB012
+// -0.374814
+0xD0061471
+// 0.165491
+0x152ECEC0
+// -0.203458
+0xE5F518D3
+// 0.118384
+0x0F27350A
+// -0.138265
+0xEE4D51D8
+// -0.032229
+0xFBDFE9AC
+// -0.054908
+0xF8F8C3B6
+// -0.298933
+0xD9BC90D0
+// -0.063902
+0xF7D211AB
+// -0.174042
+0xE9B8FF29
+// -0.276092
+0xDCA9063B
+// 0.588271
+0x4B4C72EC
+// 0.287544
+0x24CE3BBD
+// 0.479459
+0x3D5EE912
+// -0.206060
+0xE59FCF87
+// 0.061386
+0x07DB8133
+// -0.398584
+0xCCFB35F5
+// -0.296267
+0xDA13EBF0
+// 0.404948
+0x33D55727
+// -0.632653
+0xAF05393B
+// 0.633517
+0x511711B4
+// -0.496914
+0xC06521D2
+// 0.219407
+0x1C15842A
+// 0.142885
+0x124A0CB8
+// 0.151798
+0x136E19F3
+// -0.078073
+0xF601B207
+// 0.218402
+0x1BF49618
+// 0.223507
+0x1C9BDC98
+// -0.228462
+0xE2C1C528
+// 0.091923
+0x0BC41F5E
+// 0.155120
+0x13DAF9EE
+// -0.049158
+0xF9B52E93
+// -0.353821
+0xD2B60215
+// -0.192211
+0xE765A529
+// -0.355630
+0xD27AB9D4
+// -0.023075
+0xFD0BDE87
+// -0.529576
+0xBC36D8C1
+// 0.225545
+0x1CDEA822
+// -0.399755
+0xCCD4D7C6
+// -0.433536
+0xC881E349
+// 0.273814
+0x230C5951
+// -0.031288
+0xFBFEBEF3
 // -1.000000
 0x80000000
-// 0.110669
-0x0E2A6A64
-// -0.142636
-0xEDBE1AB1
-// -0.250196
-0xDFF99620
-// 0.155886
-0x13F40E6E
-// -0.024043
-0xFCEC2A75
-// 0.847825
-0x6C858B30
-// -0.474970
-0xC3342B8F
-// -0.331908
-0xD58408E6
-// -0.511708
-0xBE805E0A
-// -0.414779
-0xCAE88904
-// 0.395683
-0x32A5BB61
-// -0.302474
-0xD9488954
-// 0.478444
-0x3D3DA3E2
-// -0.848832
-0x93597CF2
-// -0.197200
-0xE6C22502
-// 0.301894
-0x26A4768D
-// -0.974647
-0x833EC23E
-// 0.621111
-0x4F8090A9
-// 0.817784
-0x68AD284E
-// 0.776719
-0x636B87FB
-// 0.443190
-0x38BA73A6
-// 0.010011
-0x01480BBC
-// -0.817741
-0x97544764
-// 0.731006
-0x5D919C5F
-// 0.069846
-0x08F0B655
-// -0.543385
-0xBA725C85
-// 0.489400
-0x3EA4A701
-// 0.826281
-0x69C39075
-// -0.122855
-0xF0464940
-// -0.770216
-0x9D698D4C
-// -0.454714
-0xC5CBECA1
-// -0.342122
-0xD4355A81
-// 0.048730
-0x063CC519
-// 0.159753
-0x1472CB22
-// 0.282953
-0x2437CCBF
-// -0.773057
-0x9D0C77C4
-// -0.060576
-0xF83F0DD4
-// -0.012010
-0xFE767463
-// -0.217008
-0xE43911F4
-// 0.398800
-0x330BE357
-// 0.108516
-0x0DE3D95B
-// 0.359875
-0x2E106386
-// -0.423075
-0xC9D8A9EB
-// 0.346351
-0x2C553C03
-// 0.284566
-0x246CA487
-// -0.456571
-0xC58F1119
-// 0.549331
-0x465077C8
-// -0.827627
-0x96105225
-// 0.756083
-0x60C755E8
-// -0.460781
-0xC50524CC
-// -0.387164
-0xCE716863
-// -0.148438
-0xECFFFBF0
-// -0.327780
-0xD60B51F8
-// 0.032621
-0x042CF0A7
-// -0.546986
-0xB9FC590F
-// 0.301588
-0x269A7260
-// 0.134406
-0x11343A55
-// 0.023607
-0x03058D90
+// -0.379820
+0xCF621174
+// -0.052811
+0xF93D7AFB
+// -0.041247
+0xFAB869AB
+// -0.244562
+0xE0B22E4B
+// 0.093952
+0x0C06A267
+// -0.351829
+0xD2F74108
+// -0.308807
+0xD8790134
+// -0.463805
+0xC4A208DC
+// 0.033765
+0x04526563
+// 0.018236
+0x02558FEC
+// -0.363161
+0xD183F0BB
+// -0.624752
+0xB0081F44
+// 0.211001
+0x1B021280
+// -0.481322
+0xC2640DCB
+// -0.126324
+0xEFD49C4E
+// -0.364143
+0xD163BF91
+// 0.112464
+0x0E65394E
+// 0.604646
+0x4D650CC8
+// 0.024522
+0x032388DA
+// 0.287094
+0x24BF813B
+// 0.180264
+0x1712E6F5

+ 512 - 512
Testing/Patterns/DSP/Filtering/DECIM/DECIMQ31/Samples1_q31.txt

@@ -1,514 +1,514 @@
 W
 256
-// -0.173695
-0xE9C45B88
-// -0.312468
-0xD801105E
-// -0.590118
-0xB477035C
-// 0.269726
-0x228662FE
-// -0.089567
-0xF4891470
-// -0.138656
-0xEE4086C4
-// -0.064814
-0xF7B42D56
-// 0.044129
-0x05A60612
-// -0.048419
-0xF9CD67C5
-// -0.012970
-0xFE570095
-// -0.315896
-0xD790B9E1
-// 0.088436
-0x0B51DF09
-// -0.081300
-0xF597F7C0
-// -0.118860
-0xF0C9334A
-// 0.365114
-0x2EBC122B
-// 0.041488
-0x054F7E0B
-// 0.430223
-0x37118C75
-// -0.275456
-0xDCBDD95C
-// 0.280928
-0x23F5722A
-// -0.234252
-0xE204069A
-// -0.042740
-0xFA877E34
-// 0.008388
-0x0112DCE8
-// 0.169333
-0x15ACB7DE
-// -0.404338
-0xCC3EA906
-// 0.399323
-0x331D0027
-// -0.014965
-0xFE159D41
-// -0.674409
-0xA9ACF922
-// -0.676143
-0xA97427C4
-// -0.453627
-0xC5EF8A13
-// 0.165125
-0x1522D3EB
-// -0.234618
-0xE1F8093E
-// 0.100897
-0x0CEA3367
-// -0.014414
-0xFE27AB3D
-// -0.053840
-0xF91BC707
-// -0.268813
-0xDD978704
-// -0.103541
-0xF2BF2ACF
-// 0.232473
-0x1DC1B02F
-// -0.025518
-0xFCBBD587
-// 0.714879
-0x5B8124A3
-// 0.256384
-0x20D12EFB
-// 0.188209
-0x18173D71
-// -0.247041
-0xE060F589
-// 0.169786
-0x15BB8865
-// 0.504967
-0x40A2C1F9
-// 0.153717
-0x13ACFE87
-// -0.116021
-0xF1263BD5
-// -0.324610
-0xD6732F0F
-// 0.040179
-0x05249362
-// 0.203018
-0x19FC7E57
-// -0.429360
-0xC90AB7D9
-// 0.164230
-0x15057E06
-// 0.502767
-0x405AAABE
-// 0.298140
-0x26297526
-// 0.183382
-0x17790D86
-// 0.334355
-0x2ACC219C
-// 0.378851
-0x307E3273
-// 0.688619
-0x5824AE4A
-// 0.102337
-0x0D195CF1
-// 0.449096
-0x397BF8EB
-// -0.692313
-0xA7624AC6
-// -0.128901
-0xEF802EE8
-// -0.323879
-0xD68B20CF
-// -0.172442
-0xE9ED6B15
-// 0.090025
-0x0B85F3D6
-// 0.136263
-0x11711208
-// 0.822412
-0x6944CDDC
-// 0.135964
-0x11674504
-// -0.425597
-0xC98607A3
-// -0.179268
-0xE90DBE3F
-// 0.130896
-0x10C136B0
-// -0.053088
-0xF93469EE
-// 0.087041
-0x0B2424E8
-// 0.135034
-0x1148C83C
-// -0.414801
-0xCAE7CF71
-// 0.220919
-0x1C471253
-// -0.382180
-0xCF14BB30
-// -0.253805
-0xDF8351B4
-// 0.090956
-0x0BA472F3
-// -0.033248
-0xFBBE86FA
-// -0.061516
-0xF8203BF4
-// -0.273691
-0xDCF7B515
-// 0.056423
-0x0738DBED
-// 0.163208
-0x14E40073
-// 0.583569
-0x4AB263A2
-// -0.348914
-0xD356C782
-// -0.356361
-0xD262C4B7
-// -0.058863
-0xF8772BDF
-// -0.155080
-0xEC265AB4
-// -0.230576
-0xE27C7874
-// 0.012016
-0x0189C031
-// 0.013677
-0x01C026FD
-// -0.476314
-0xC30827E8
-// -0.525248
-0xBCC4AC30
-// -0.096840
-0xF39ABFB6
-// 0.684964
-0x57ACE897
-// -0.562627
-0xB7FBD97B
-// -0.149634
-0xECD8C78D
-// 0.182255
-0x17542234
-// -0.421663
-0xCA06F183
-// 0.493288
-0x3F240E05
-// -0.110171
-0xF1E5E91B
-// -0.272314
-0xDD24D2CE
-// -0.112861
-0xF18DC877
-// -0.048427
-0xF9CD2185
-// -0.431712
-0xC8BDAC85
-// 0.144506
-0x127F3021
-// -0.132424
-0xEF0CBE59
-// -0.144771
-0xED78250F
-// 0.216138
-0x1BAA688E
-// -0.184359
-0xE866EF2A
-// -0.258178
-0xDEF408C2
-// -0.787440
-0x9B3527CD
-// -0.084436
-0xF5313410
-// 0.035357
-0x048696BE
-// 0.125410
-0x100D6FA2
-// -0.023379
-0xFD01E85B
-// 0.587498
-0x4B332432
-// -0.422791
-0xC9E1FDE1
-// 0.171385
-0x15EFF13C
-// -0.438797
-0xC7D58135
-// 0.095117
-0x0C2CC844
-// -0.285326
-0xDB7A6C05
-// -0.364403
-0xD15B3FE0
-// 0.135289
-0x11512A1B
-// -0.003010
-0xFF9D5EA8
-// 0.648995
-0x5312440E
-// -0.681483
-0xA8C52BEA
-// 0.343214
-0x2BEE6B8B
-// 0.124993
-0x0FFFC89F
-// 0.113389
-0x0E838A1C
-// 0.571628
-0x492B1E2A
-// 0.311334
-0x27D9C70A
-// -0.575544
-0xB654948F
-// 0.091475
-0x0BB57664
-// -0.058352
-0xF887EDF9
-// 0.562831
-0x480AD6A9
-// -0.162963
-0xEB2409F1
-// 0.202647
-0x19F05219
-// 0.148323
-0x12FC3C2F
-// 0.113788
-0x0E9096F0
-// -0.420772
-0xCA242294
-// -0.474246
-0xC34BE818
-// 0.140585
-0x11FEB135
-// -0.345425
-0xD3C91FE0
-// -0.053187
-0xF9312A96
-// -0.293874
-0xDA625520
-// -0.125276
-0xEFF6F0D5
-// -0.379607
-0xCF6905C3
-// -0.272224
-0xDD27C6E1
-// -0.344726
-0xD3E00111
-// -0.273498
-0xDCFE0655
-// -0.054284
-0xF90D3B4C
-// 0.131512
-0x10D5631F
-// 0.344306
-0x2C123719
-// -0.188650
-0xE7DA4E3E
-// -0.178557
-0xE9250B5B
-// 0.220435
-0x1C37354E
-// -0.721066
-0xA3B41FF8
-// -0.155419
-0xEC1B3842
-// 0.039637
-0x0512D214
-// 0.333772
-0x2AB9086D
-// 0.162099
-0x14BFA5BA
-// 0.154802
-0x13D08AA9
-// -0.485957
-0xC1CC2A2C
-// -0.114348
-0xF15D0EEF
-// 0.239438
-0x1EA5E759
-// -0.082969
-0xF5614451
-// 0.120737
-0x0F744EA0
-// 0.278158
-0x239AABD9
-// 0.262417
-0x2196DF30
-// 0.290001
-0x251EC0AE
-// -0.171141
-0xEA18097A
-// 0.402329
-0x337F84AD
-// -1.000000
-0x80000000
-// -0.506715
-0xBF23F67A
-// -0.309564
-0xD860382F
-// 0.585336
-0x4AEC480B
-// -0.585159
-0xB519863D
-// -0.235572
-0xE1D8C6CF
-// -0.136783
-0xEE7DE5B7
-// 0.027116
-0x03788879
-// 0.246466
-0x1F8C356F
-// -0.234564
-0xE1F9CD16
-// -0.367136
-0xD101ABFE
-// -0.362288
-0xD1A08C7F
-// -0.389630
-0xCE209C23
-// 0.326198
-0x29C0D734
-// 0.144954
-0x128DDB4E
-// 0.632999
-0x51061C7D
-// 0.355565
-0x2D832961
-// -0.433662
-0xC87DC109
-// -0.185528
-0xE840A064
-// -0.483910
-0xC20F3BD6
-// -0.287290
-0xDB3A1745
-// 0.254875
-0x209FBBF8
-// -0.360127
-0xD1E759CB
-// -0.001621
-0xFFCADE7D
-// -0.065753
-0xF7956832
-// -0.136365
-0xEE8B942D
-// 0.311741
-0x27E721E8
-// -0.171942
-0xE9FDCD55
-// -0.278854
-0xDC4E860A
-// -0.014871
-0xFE18B67D
-// 0.693562
-0x58C6A674
-// -0.543534
-0xBA6D7B43
-// -0.039898
-0xFAE49FEC
-// -0.299036
-0xD9B92D3A
-// 0.120035
-0x0F5D505A
-// -0.084764
-0xF52673EF
-// 0.142687
-0x12438E6D
-// -0.582576
-0xB56E2488
-// -0.043666
-0xFA692915
-// 0.624257
-0x4FE7A529
-// 0.808765
-0x6785A00D
-// -0.306893
-0xD8B7BE0D
-// -0.213985
-0xE49C2697
-// -0.436462
-0xC82203E9
-// -0.258633
-0xDEE51B88
-// 0.419401
-0x35AEECF5
-// -0.126465
-0xEFCFFF10
-// -0.225933
-0xE314A090
-// 0.365301
-0x2EC22F6C
-// -0.401643
-0xCC96F2AD
-// -0.341639
-0xD4452DB2
-// -0.570737
-0xB6F2159F
-// -0.074887
-0xF66A1DDC
-// 0.330240
-0x2A454D88
-// -0.110345
-0xF1E036AC
-// -0.141195
-0xEDED51C0
-// 0.200115
-0x199D5C2F
-// 0.070559
-0x09081448
-// 0.048107
-0x06285BE6
-// -0.067699
-0xF755A5E9
-// 0.136827
-0x11838E17
-// -0.066736
-0xF7753023
-// -0.175865
-0xE97D421F
-// 0.250891
-0x201D2F7E
-// 0.575209
-0x49A06FC7
-// -0.068427
-0xF73DC821
-// -0.310688
-0xD83B6408
-// -0.206224
-0xE59A73F0
-// -0.565272
-0xB7A52B4A
-// 0.106241
-0x0D994ED2
-// -0.153894
-0xEC4D302A
-// -0.378518
-0xCF8CB6B6
-// -0.092661
-0xF423ADBC
-// -0.894051
-0x8D8FBE9C
-// -0.055776
-0xF8DC5551
-// 0.186797
-0x17E8F8D5
-// 0.510555
-0x4159DC24
-// 0.193691
-0x18CADCDB
-// 0.388560
-0x31BC54DB
-// -0.681198
-0xA8CE81DE
-// 0.569965
-0x48F49BEA
-// 0.599857
-0x4CC81FDD
-// -0.563692
-0xB7D8F4B3
+// 0.024290
+0x031BEF78
+// 0.154870
+0x13D2CB83
+// 0.172291
+0x160DA293
+// 0.068011
+0x08B491AD
+// 0.348452
+0x2C9A16E3
+// 0.030740
+0x03EF4656
+// 0.004838
+0x009E8453
+// 0.127552
+0x10539E1F
+// -0.134443
+0xEECA9002
+// -0.564436
+0xB7C08D77
+// 0.050108
+0x0669F057
+// -0.072430
+0xF6BA9FCF
+// 0.228528
+0x1D40684F
+// -0.004840
+0xFF616B21
+// -0.129494
+0xEF6CBCEE
+// -0.131992
+0xEF1AE666
+// 0.300896
+0x2683C3B2
+// 0.080241
+0x0A4553F5
+// -0.409346
+0xCB9A8D64
+// -0.472912
+0xC377A255
+// 0.186249
+0x17D7009C
+// -0.089363
+0xF48FC4EE
+// 0.243385
+0x1F273E0F
+// 0.119326
+0x0F461467
+// 0.100262
+0x0CD564F5
+// -0.280077
+0xDC266DAB
+// 0.312139
+0x27F42DA7
+// 0.354336
+0x2D5AE499
+// -0.201630
+0xE630FB6E
+// -0.011334
+0xFE8C9A05
+// 0.187764
+0x1808A346
+// -0.140669
+0xEDFE8E2C
+// 0.276709
+0x236B31BD
+// -0.028317
+0xFC6018CA
+// 0.071249
+0x091EB046
+// 0.218309
+0x1BF18F49
+// 0.093536
+0x0BF8FB32
+// 0.317107
+0x2896F437
+// -0.240083
+0xE144F910
+// 0.392485
+0x323CF6A9
+// -0.097551
+0xF3837072
+// 0.015846
+0x02073D30
+// 0.277702
+0x238BBB60
+// 0.090945
+0x0BA416F1
+// -0.190635
+0xE799481E
+// -0.124249
+0xF0189BB2
+// 0.068111
+0x08B7DFD3
+// -0.006450
+0xFF2CA59F
+// -0.030079
+0xFC265EFB
+// 0.433851
+0x37886F18
+// 0.377922
+0x305FBE43
+// 0.019661
+0x028442B6
+// -0.194790
+0xE7112173
+// 0.145844
+0x12AB0576
+// -0.003087
+0xFF9AD451
+// 0.107762
+0x0DCB2837
+// -0.359795
+0xD1F240A5
+// 0.069695
+0x08EBC1D6
+// 0.196307
+0x1920957F
+// 0.068429
+0x08C24ADA
+// -0.008023
+0xFEF916F1
+// 0.282451
+0x2427597C
+// 0.668697
+0x5597DC14
+// -0.043118
+0xFA7B19BE
+// 0.033566
+0x044BE6B6
+// 0.299332
+0x265086E1
+// 0.217373
+0x1BD2E180
+// -0.465755
+0xC46221AD
+// 0.075974
+0x09B98522
+// -0.266440
+0xDDE54EA2
+// -0.009203
+0xFED26C82
+// -0.031856
+0xFBEC2350
+// -0.285809
+0xDB6A9ABE
+// -0.090314
+0xF4709656
+// 0.195840
+0x19114BDF
+// -0.166779
+0xEAA6FE1B
+// -0.073132
+0xF6A39988
+// 0.214785
+0x1B7E145F
+// -0.051854
+0xF95CD7C3
+// 0.480838
+0x3D8C1B26
+// 0.075231
+0x09A12C71
+// -0.048721
+0xF9C3818D
+// -0.415993
+0xCAC0C162
+// -0.169483
+0xEA4E6380
+// -0.152289
+0xEC81C8FB
+// -0.116706
+0xF10FC971
+// 0.195534
+0x19073F33
+// 0.192906
+0x18B12804
+// -0.089967
+0xF47BF70E
+// -0.380787
+0xCF425B91
+// -0.116705
+0xF10FD311
+// -0.096231
+0xF3AEB557
+// 0.124613
+0x0FF3522E
+// 0.031818
+0x0412A087
+// -0.113335
+0xF17E3A5E
+// 0.184774
+0x17A6AE15
+// 0.274560
+0x2324C54B
+// 0.428631
+0x36DD6508
+// 0.053936
+0x06E760D5
+// 0.324694
+0x298F8EFB
+// -0.101857
+0xF2F65601
+// 0.264879
+0x21E78DCA
+// -0.157835
+0xEBCC0DF9
+// 0.261153
+0x216D770D
+// 0.144978
+0x128EA236
+// 0.032707
+0x042FC073
+// 0.214539
+0x1B7604E9
+// 0.250913
+0x201DEE9B
+// -0.470598
+0xC3C3752F
+// 0.466529
+0x3BB738FA
+// 0.065647
+0x08672090
+// 0.017116
+0x0230DE23
+// -0.200940
+0xE64798EB
+// -0.111924
+0xF1AC7D86
+// -0.432243
+0xC8AC406D
+// -0.194034
+0xE729E357
+// 1.000000
+0x7FFFFFFF
+// -0.038413
+0xFB154B7B
+// -0.208356
+0xE5549AB7
+// -0.116534
+0xF1156AD6
+// 0.619621
+0x4F4FC1A5
+// 0.138549
+0x11BBF7BE
+// -0.067906
+0xF74EDCF3
+// 0.021212
+0x02B714F4
+// -0.111865
+0xF1AE660C
+// -0.187340
+0xE805406B
+// 0.087572
+0x0B358D85
+// -0.141346
+0xEDE85C3D
+// 0.002121
+0x00457FF6
+// 0.298224
+0x262C3732
+// 0.260816
+0x21626F34
+// -0.216453
+0xE44B446A
+// -0.221317
+0xE3ABE204
+// 0.128988
+0x1082AA45
+// 0.273137
+0x22F625EE
+// 0.040118
+0x052298E8
+// -0.444249
+0xC722DCD9
+// 0.090736
+0x0B9D3EB3
+// 0.017544
+0x023EE23F
+// -0.165462
+0xEAD2217D
+// -0.276691
+0xDC955F8B
+// -0.184675
+0xE85C92B0
+// 0.100507
+0x0CDD6AAB
+// -0.050521
+0xF9888A01
+// -0.554121
+0xB9129227
+// 0.134587
+0x113A2604
+// 0.462063
+0x3B24E3DC
+// 0.113166
+0x0E7C3620
+// -0.219799
+0xE3DDA3DC
+// -0.162170
+0xEB3DFF60
+// -0.080810
+0xF5A80205
+// 0.387515
+0x319A13A1
+// -0.195509
+0xE6F98D13
+// 0.170178
+0x15C860DF
+// 0.035296
+0x04849134
+// -0.660831
+0xAB69E790
+// 0.316799
+0x288CDD7E
+// -0.004774
+0xFF639352
+// -0.284333
+0xDB9AF917
+// -0.385252
+0xCEB00E55
+// -0.658063
+0xABC494F1
+// 0.254115
+0x2086D6FA
+// -0.280161
+0xDC23ABB5
+// 0.043498
+0x0591555F
+// 0.565964
+0x4871833D
+// 0.408534
+0x344AD822
+// 0.003744
+0x007AB080
+// 0.382567
+0x30F7F7AB
+// 0.199303
+0x1982BF5D
+// -0.010781
+0xFE9EB66B
+// 0.183327
+0x17773E4C
+// 0.002982
+0x0061BAF5
+// 0.109118
+0x0DF797B7
+// 0.193831
+0x18CF70BF
+// -0.223361
+0xE368E486
+// 0.090152
+0x0B8A1696
+// 0.238025
+0x1E779E5E
+// -0.465138
+0xC4765DF1
+// -0.095920
+0xF3B8E678
+// -0.178348
+0xE92BE430
+// -0.271187
+0xDD49BE74
+// -0.251870
+0xDFC2BD49
+// -0.358115
+0xD2294836
+// -0.002687
+0xFFA7F667
+// -0.129771
+0xEF63AA32
+// 0.236851
+0x1E511E7A
+// -0.193812
+0xE7312747
+// 0.546631
+0x45F804B5
+// 0.305973
+0x272A1EED
+// -0.035909
+0xFB675949
+// 0.351202
+0x2CF43354
+// -0.306695
+0xD8BE3AF5
+// -0.146135
+0xED4B71B1
+// -0.134019
+0xEED87A53
+// -0.396852
+0xCD33F1C0
+// -0.231326
+0xE263E918
+// -0.175130
+0xE9955AE2
+// 0.124739
+0x0FF772DD
+// 0.275744
+0x234B92DF
+// 0.144810
+0x12891EF8
+// 0.061576
+0x07E1BCDF
+// -0.212338
+0xE4D21C78
+// -0.119721
+0xF0ACF976
+// 0.283175
+0x243F180F
+// -0.470857
+0xC3BAF2E7
+// -0.141859
+0xEDD79387
+// -0.221017
+0xE3B5B80C
+// -0.163341
+0xEB17A1A0
+// -0.109087
+0xF2096E79
+// 0.211871
+0x1B1E96F7
+// 0.325493
+0x29A9BE48
+// 0.146972
+0x12CFFA58
+// 0.080228
+0x0A44E818
+// 0.065592
+0x08655162
+// 0.246318
+0x1F875D05
+// 0.145610
+0x12A359F5
+// 0.516290
+0x4215CB27
+// -0.258086
+0xDEF7096B
+// -0.148404
+0xED01198C
+// 0.112321
+0x0E608562
+// 0.167518
+0x15713966
+// 0.313339
+0x281B79F2
+// -0.379584
+0xCF69CD53
+// -0.064962
+0xF7AF5188
+// 0.079626
+0x0A312D9E
+// 0.377324
+0x304C25BF
+// -0.153648
+0xEC55436B
+// -0.123561
+0xF02F25FC
+// -0.137866
+0xEE5A6B0C
+// 0.296482
+0x25F321A9
+// -0.500572
+0xBFED4366
+// -0.118227
+0xF0DDF2C3
+// 0.253867
+0x207EB725
+// 0.124189
+0x0FE56ECF
+// 0.084565
+0x0AD309D9
+// -0.315223
+0xD7A6C7DC
+// 0.110992
+0x0E350021
+// -0.132432
+0xEF0C79DC
+// 0.291359
+0x254B4332
+// -0.334296
+0xD535CDD3
+// 0.072344
+0x0942950F
+// 0.220261
+0x1C31800C
+// 0.272242
+0x22D8D53C
+// -0.005360
+0xFF50604E
+// 0.108443
+0x0DE17985
+// 0.238033
+0x1E77E023
+// 0.513775
+0x41C3605E
+// -0.066089
+0xF78A62F8
+// -0.240092
+0xE144A7ED
+// -0.095875
+0xF3BA5CAF
+// -0.079343
+0xF5D8190A
+// 0.127941
+0x10605E52
+// -0.538041
+0xBB217C77
+// -0.012337
+0xFE6BBA5A
+// -0.162085
+0xEB40C9D0
+// -0.165158
+0xEADC193E

+ 100 - 0
Testing/Source/Benchmarks/BIQUADF16.cpp

@@ -0,0 +1,100 @@
+#include "BIQUADF16.h"
+#include "Error.h"
+
+   
+    void BIQUADF16::test_biquad_cascade_df1_f16()
+    {
+       arm_biquad_cascade_df1_f16(&instBiquadDf1, this->pSrc, this->pDst, this->nbSamples);
+    } 
+
+    void BIQUADF16::test_biquad_cascade_df2T_f16()
+    {
+       arm_biquad_cascade_df2T_f16(&instBiquadDf2T, this->pSrc, this->pDst, this->nbSamples);
+    } 
+
+  
+    void BIQUADF16::test_biquad_cascade_stereo_df2T_f16()
+    {
+       arm_biquad_cascade_stereo_df2T_f16(&instStereo, this->pSrc, this->pDst, this->nbSamples);
+    } 
+
+
+    
+    void BIQUADF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->numStages = *it++;
+       this->nbSamples = *it;
+
+       
+       
+
+       switch(id)
+       {
+           case TEST_BIQUAD_CASCADE_DF1_F16_1:
+                  samples.reload(BIQUADF16::SAMPLES1_F16_ID,mgr,this->nbSamples);
+                  output.create(this->nbSamples,BIQUADF16::OUT_SAMPLES_F16_ID,mgr);
+                  coefs.reload(BIQUADF16::COEFS1_F16_ID,mgr,this->numStages * 5);
+                  state.create(4*this->numStages,BIQUADF16::STATE_F16_ID,mgr);
+
+                  arm_biquad_cascade_df1_init_f16(&instBiquadDf1,
+                    this->numStages,
+                    coefs.ptr(),
+                    state.ptr());
+
+           break;
+
+           case TEST_BIQUAD_CASCADE_DF2T_F16_2:
+               samples.reload(BIQUADF16::SAMPLES1_F16_ID,mgr,this->nbSamples);
+               output.create(this->nbSamples,BIQUADF16::OUT_SAMPLES_F16_ID,mgr);
+               coefs.reload(BIQUADF16::COEFS1_F16_ID,mgr,this->numStages * 5);
+               state.create(2*this->numStages,BIQUADF16::STATE_F16_ID,mgr);
+
+
+#if defined(ARM_MATH_NEON)
+               // For Neon, neonCoefs is the coef array and is bigger
+               neonCoefs.create(8*this->numStages,BIQUADF16::STATE_F16_ID,mgr);
+
+               arm_biquad_cascade_df2T_init_f16(&instBiquadDf2T,
+                    this->numStages,
+                    neonCoefs.ptr(),
+                    state.ptr());
+
+               // Those Neon coefs must be computed from original coefs
+               arm_biquad_cascade_df2T_compute_coefs_f16(&instBiquadDf2T,this->numStages,coefs.ptr());
+#else
+                  
+              // For cortex-M, coefs is the coef array
+              arm_biquad_cascade_df2T_init_f16(&instBiquadDf2T,
+                    this->numStages,
+                    coefs.ptr(),
+                    state.ptr());
+
+                
+#endif
+           break;
+
+           case TEST_BIQUAD_CASCADE_STEREO_DF2T_F16_3:
+                  samples.reload(BIQUADF16::SAMPLES1_F16_ID,mgr,2*this->nbSamples);
+                  output.create(2*this->nbSamples,BIQUADF16::OUT_SAMPLES_F16_ID,mgr);
+                  coefs.reload(BIQUADF16::COEFS1_F16_ID,mgr,this->numStages * 5);
+                  state.create(4*this->numStages,BIQUADF16::STATE_F16_ID,mgr);
+
+                  arm_biquad_cascade_stereo_df2T_init_f16(&instStereo,
+                    this->numStages,
+                    coefs.ptr(),
+                    state.ptr());
+           break;
+       }
+       
+       this->pSrc=samples.ptr();
+       this->pDst=output.ptr();
+
+    }
+
+    void BIQUADF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 96 - 0
Testing/Source/Benchmarks/BasicMathsBenchmarksF16.cpp

@@ -0,0 +1,96 @@
+#include "BasicMathsBenchmarksF16.h"
+#include "Error.h"
+
+   
+    void BasicMathsBenchmarksF16::vec_mult_f16()
+    {     
+       arm_mult_f16(this->inp1,this->inp2,this->outp,this->nb);
+    } 
+
+    void BasicMathsBenchmarksF16::vec_add_f16()
+    {
+       arm_add_f16(inp1,inp2,outp,this->nb);
+    } 
+
+    void BasicMathsBenchmarksF16::vec_sub_f16()
+    {
+       arm_sub_f16(inp1,inp2,outp,this->nb);
+    } 
+
+    void BasicMathsBenchmarksF16::vec_abs_f16()
+    {
+       arm_abs_f16(inp1,outp,this->nb);
+    } 
+
+    void BasicMathsBenchmarksF16::vec_negate_f16()
+    {
+       arm_negate_f16(inp1,outp,this->nb);
+    }
+
+    void BasicMathsBenchmarksF16::vec_offset_f16()
+    {
+       arm_offset_f16(inp1,1.0,outp,this->nb);
+    }
+
+    void BasicMathsBenchmarksF16::vec_scale_f16()
+    {
+       arm_scale_f16(inp1,1.0,outp,this->nb);        
+    }
+
+    void BasicMathsBenchmarksF16::vec_dot_f16()
+    {
+       float16_t result;
+
+       arm_dot_prod_f16(inp1,inp2,this->nb,&result);   
+
+    }
+
+    
+    void BasicMathsBenchmarksF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+       this->setForceInCache(true);
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nb = *it;
+
+       input1.reload(BasicMathsBenchmarksF16::INPUT1_F16_ID,mgr,this->nb);
+       input2.reload(BasicMathsBenchmarksF16::INPUT2_F16_ID,mgr,this->nb);
+
+       
+       output.create(this->nb,BasicMathsBenchmarksF16::OUT_SAMPLES_F16_ID,mgr);
+
+       switch(id)
+       {
+         case BasicMathsBenchmarksF16::VEC_MULT_F16_1:
+         case BasicMathsBenchmarksF16::VEC_ADD_F16_2:
+         case BasicMathsBenchmarksF16::VEC_SUB_F16_3:
+         case BasicMathsBenchmarksF16::VEC_ABS_F16_4:
+         case BasicMathsBenchmarksF16::VEC_OFFSET_F16_6:
+         case BasicMathsBenchmarksF16::VEC_SCALE_F16_7:
+
+           /* This an overhead doing this because ptr() function is doing lot of checks
+            to ensure patterns are fresh.
+            So for small benchmark lengths it is better doing it in the setUp function
+           */
+           this->inp1=input1.ptr();
+           this->inp2=input2.ptr();
+           this->outp=output.ptr();
+
+         break;
+        
+         case BasicMathsBenchmarksF16::VEC_NEGATE_F16_5:
+           this->inp1=input1.ptr();
+           this->outp=output.ptr();
+         break;
+
+         case BasicMathsBenchmarksF16::VEC_DOT_F16_8:
+           this->inp1=input1.ptr();
+           this->inp2=input2.ptr();
+         break;
+       }
+       
+    }
+
+    void BasicMathsBenchmarksF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 79 - 0
Testing/Source/Benchmarks/BayesF16.cpp

@@ -0,0 +1,79 @@
+#include "BayesF16.h"
+#include <stdio.h>
+#include "Error.h"
+#include "Test.h"
+
+
+
+    void BayesF16::test_gaussian_naive_bayes_predict_f16()
+    {
+       int16_t p;
+
+       p = arm_gaussian_naive_bayes_predict_f16(&bayes, 
+                inp, 
+                bufp);
+
+    } 
+
+  
+    void BayesF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
+    {
+
+       std::vector<Testing::param_t>::iterator it = paramsArgs.begin();
+       this->vecDim = *it++;
+       this->classNb = *it++;
+
+       switch(id)
+       {
+          case BayesF16::TEST_GAUSSIAN_NAIVE_BAYES_PREDICT_F16_1:
+          {
+
+            int nbp,nbi;
+
+            input.reload(BayesF16::INPUTS2_F16_ID,mgr);
+            params.reload(BayesF16::PARAMS2_F16_ID,mgr);
+            dims.reload(BayesF16::DIMS2_S16_ID,mgr);
+
+            int16_t *dimsp=dims.ptr();
+
+            nbi = dimsp[2*this->nb];
+            nbp = dimsp[2*this->nb + 1];
+
+            const float16_t *paramsp = params.ptr() + nbp;
+
+            this->theta=paramsp ;
+            this->sigma=paramsp + (this->classNb * this->vecDim);
+            this->classPrior=paramsp + 2*(this->classNb * this->vecDim);
+            this->epsilon=paramsp[this->classNb + 2*(this->classNb * this->vecDim)];
+            //printf("%f %f %f\n",this->theta[0],this->sigma[0],this->classPrior[0]);
+
+            // Reference patterns are not loaded when we are in dump mode
+            predicts.reload(BayesF16::PREDICTS2_S16_ID,mgr);
+
+            outputProbas.create(this->classNb,BayesF16::OUT_PROBA_F16_ID,mgr);
+
+            bayes.vectorDimension=this->vecDim;
+            bayes.numberOfClasses=this->classNb;
+            bayes.theta=this->theta;
+            bayes.sigma=this->sigma;
+            bayes.classPriors=this->classPrior;
+            bayes.epsilon=this->epsilon; 
+
+            this->inp = input.ptr() + nbi;
+
+            this->bufp = outputProbas.ptr();
+
+          }
+          break;
+
+       }
+       
+
+
+    }
+
+    void BayesF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        (void)id;
+        this->nb++;
+    }

+ 59 - 0
Testing/Source/Benchmarks/BinaryF16.cpp

@@ -0,0 +1,59 @@
+#include "BinaryF16.h"
+#include "Error.h"
+
+   
+    void BinaryF16::test_mat_mult_f16()
+    {     
+      arm_mat_mult_f16(&this->in1,&this->in2,&this->out);
+    } 
+
+  
+    void BinaryF16::test_mat_cmplx_mult_f16()
+    {     
+      arm_mat_cmplx_mult_f16(&this->in1,&this->in2,&this->out);
+    } 
+
+    
+    void BinaryF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbr = *it++;
+       this->nbi = *it++;
+       this->nbc = *it;
+
+       switch(id)
+       {
+          case BinaryF16::TEST_MAT_CMPLX_MULT_F16_2:
+            input1.reload(BinaryF16::INPUTAC_F16_ID,mgr,2*this->nbr*this->nbi);
+            input2.reload(BinaryF16::INPUTBC_F16_ID,mgr,2*this->nbi*this->nbc);
+            output.create(2*this->nbr*this->nbc,BinaryF16::OUT_F16_ID,mgr);
+          break;
+
+          default:
+            input1.reload(BinaryF16::INPUTA_F16_ID,mgr,this->nbr*this->nbi);
+            input2.reload(BinaryF16::INPUTB_F16_ID,mgr,this->nbi*this->nbc);
+            output.create(this->nbr*this->nbc,BinaryF16::OUT_F16_ID,mgr);
+
+       } 
+       
+
+       
+
+       this->in1.numRows = this->nbr;
+       this->in1.numCols = this->nbi;
+       this->in1.pData = input1.ptr();   
+
+       this->in2.numRows = this->nbi;
+       this->in2.numCols = this->nbc;
+       this->in2.pData = input2.ptr();   
+
+       this->out.numRows = this->nbr;
+       this->out.numCols = this->nbc;
+       this->out.pData = output.ptr();     
+    }
+
+    void BinaryF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 82 - 0
Testing/Source/Benchmarks/ComplexMathsBenchmarksF16.cpp

@@ -0,0 +1,82 @@
+#include "ComplexMathsBenchmarksF16.h"
+#include "Error.h"
+
+   
+    void ComplexMathsBenchmarksF16::vec_conj_f16()
+    {
+       arm_cmplx_conj_f16(this->inp1,this->outp,this->nb);
+    } 
+
+    void ComplexMathsBenchmarksF16::vec_dot_prod_f16()
+    {
+       float16_t real,imag;
+       arm_cmplx_dot_prod_f16(this->inp1,this->inp2,this->nb,&real,&imag);
+    } 
+
+    void ComplexMathsBenchmarksF16::vec_mag_f16()
+    {
+       arm_cmplx_mag_f16(this->inp1,this->outp,this->nb);
+    } 
+
+    void ComplexMathsBenchmarksF16::vec_mag_squared_f16()
+    {
+       arm_cmplx_mag_squared_f16(this->inp1,this->outp,this->nb);
+    } 
+
+    void ComplexMathsBenchmarksF16::vec_mult_cmplx_f16()
+    {
+      arm_cmplx_mult_cmplx_f16(this->inp1,this->inp2,this->outp,this->nb);
+    }
+
+    void ComplexMathsBenchmarksF16::vec_mult_real_f16()
+    {
+       arm_cmplx_mult_real_f16(this->inp1,this->inp3,this->outp,this->nb);
+    }
+
+   
+    void ComplexMathsBenchmarksF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nb = *it;
+
+       input1.reload(ComplexMathsBenchmarksF16::INPUT1_F16_ID,mgr,this->nb);
+       input2.reload(ComplexMathsBenchmarksF16::INPUT2_F16_ID,mgr,this->nb);
+       input3.reload(ComplexMathsBenchmarksF16::INPUT3_F16_ID,mgr,this->nb);
+       
+       output.create(this->nb,ComplexMathsBenchmarksF16::OUT_SAMPLES_F16_ID,mgr);
+
+
+       switch(id){
+         case ComplexMathsBenchmarksF16::VEC_CONJ_F16_1:
+         case ComplexMathsBenchmarksF16::VEC_MAG_F16_3:
+         case ComplexMathsBenchmarksF16::VEC_MAG_SQUARED_F16_4:
+             this->inp1=input1.ptr();
+             this->outp=output.ptr();
+         break;
+
+         case ComplexMathsBenchmarksF16::VEC_DOT_PROD_F16_2:
+            this->inp1=input1.ptr();
+            this->inp2=input2.ptr();
+         break;
+
+         case ComplexMathsBenchmarksF16::VEC_MULT_CMPLX_F16_5:
+            this->inp1=input1.ptr();
+            this->inp2=input2.ptr();
+            this->outp=output.ptr();
+         break;
+
+         case ComplexMathsBenchmarksF16::VEC_MULT_REAL_F16_6:
+            this->inp1=input1.ptr();
+            // Real input
+            this->inp3=input3.ptr();
+            this->outp=output.ptr();
+         break;
+       }
+       
+    }
+
+    void ComplexMathsBenchmarksF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 122 - 0
Testing/Source/Benchmarks/DistanceF16.cpp

@@ -0,0 +1,122 @@
+#include "DistanceF16.h"
+#include <stdio.h>
+#include "Error.h"
+#include "Test.h"
+
+
+
+    void DistanceF16::test_braycurtis_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_braycurtis_distance_f16(inpA, inpB, this->vecDim);
+         
+      
+    } 
+ 
+    void DistanceF16::test_canberra_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_canberra_distance_f16(inpA, inpB, this->vecDim);
+        
+    } 
+
+    void DistanceF16::test_chebyshev_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_chebyshev_distance_f16(inpA, inpB, this->vecDim);
+         
+        
+    } 
+
+    void DistanceF16::test_cityblock_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_cityblock_distance_f16(inpA, inpB, this->vecDim);
+         
+
+    } 
+
+    void DistanceF16::test_correlation_distance_f16()
+    {
+        float16_t outp;
+       
+        memcpy(tmpAp, inpA, sizeof(float16_t) * this->vecDim);
+        memcpy(tmpBp, inpB, sizeof(float16_t) * this->vecDim);
+          
+        outp = arm_correlation_distance_f16(tmpAp, tmpBp, this->vecDim);
+     
+    } 
+
+    void DistanceF16::test_cosine_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_cosine_distance_f16(inpA, inpB, this->vecDim);
+         
+    } 
+
+    void DistanceF16::test_euclidean_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_euclidean_distance_f16(inpA, inpB, this->vecDim);
+         
+    } 
+
+    void DistanceF16::test_jensenshannon_distance_f16()
+    {
+       float16_t outp;
+
+       outp = arm_jensenshannon_distance_f16(inpA, inpB, this->vecDim);
+         
+    } 
+
+    void DistanceF16::test_minkowski_distance_f16()
+    {
+       float16_t outp;
+       
+       outp = arm_minkowski_distance_f16(inpA, inpB, 2,this->vecDim);
+  
+    } 
+  
+  
+    void DistanceF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
+    {
+        std::vector<Testing::param_t>::iterator it = paramsArgs.begin();
+        this->vecDim = *it++;
+ 
+        if ((id != DistanceF16::TEST_MINKOWSKI_DISTANCE_F16_9) && (id != DistanceF16::TEST_JENSENSHANNON_DISTANCE_F16_8))
+        {
+            inputA.reload(DistanceF16::INPUTA_PROBA_F16_ID,mgr);
+            inputB.reload(DistanceF16::INPUTB_PROBA_F16_ID,mgr);
+            
+        }
+        else
+        {
+           inputA.reload(DistanceF16::INPUTA_F16_ID,mgr);
+           inputB.reload(DistanceF16::INPUTB_F16_ID,mgr);
+        }
+
+        if (id == DistanceF16::TEST_CORRELATION_DISTANCE_F16_5)
+        {
+              tmpA.create(this->vecDim,DistanceF16::TMPA_F16_ID,mgr);
+              tmpB.create(this->vecDim,DistanceF16::TMPB_F16_ID,mgr);
+
+              tmpAp = tmpA.ptr();
+              tmpBp = tmpB.ptr();
+        }
+
+       inpA=inputA.ptr();
+       inpB=inputB.ptr();
+       
+
+    }
+
+    void DistanceF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+       (void)id;
+    }

+ 46 - 0
Testing/Source/Benchmarks/FIRF16.cpp

@@ -0,0 +1,46 @@
+#include "FIRF16.h"
+#include "Error.h"
+
+   
+    void FIRF16::test_fir_f16()
+    {
+       arm_fir_f16(&instFir, this->pSrc, this->pDst, this->nbSamples);
+    } 
+
+
+   
+    
+    void FIRF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbTaps = *it++;
+       this->nbSamples = *it;
+
+       samples.reload(FIRF16::SAMPLES1_F16_ID,mgr,this->nbSamples);
+       coefs.reload(FIRF16::COEFS1_F16_ID,mgr,this->nbTaps);
+
+       state.create(this->nbSamples + this->nbTaps - 1,FIRF16::STATE_F16_ID,mgr);
+       output.create(this->nbSamples,FIRF16::OUT_SAMPLES_F16_ID,mgr);
+
+       switch(id)
+       {
+           case TEST_FIR_F16_1:
+              arm_fir_init_f16(&instFir,this->nbTaps,coefs.ptr(),state.ptr(),this->nbSamples);
+
+              this->pSrc=samples.ptr();
+              this->pCoefs=coefs.ptr();
+              this->pDst=output.ptr();
+           break;
+
+          
+
+           
+       }
+       
+    }
+
+    void FIRF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 49 - 0
Testing/Source/Benchmarks/FastMathF16.cpp

@@ -0,0 +1,49 @@
+#include "FastMathF16.h"
+#include "Error.h"
+
+   #if 0
+    void FastMathF16::test_cos_f16()
+    {
+       for(int i=0; i < this->nbSamples; i++)
+       {
+          *this->pDst++ = arm_cos_f16(*this->pSrc++);
+       }
+    } 
+
+    void FastMathF16::test_sin_f16()
+    {
+       for(int i=0; i < this->nbSamples; i++)
+       {
+          *this->pDst++ = arm_sin_f16(*this->pSrc++);
+       }
+    } 
+#endif
+
+    void FastMathF16::test_sqrt_f16()
+    {
+       for(int i=0; i < this->nbSamples; i++)
+       {
+          arm_sqrt_f16(*this->pSrc++,this->pDst);
+          this->pDst++;
+       }
+    } 
+
+    void FastMathF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbSamples = *it;
+
+       samples.reload(FastMathF16::SAMPLES_F16_ID,mgr,this->nbSamples);
+       output.create(this->nbSamples,FastMathF16::OUT_SAMPLES_F16_ID,mgr);
+
+
+       this->pSrc=samples.ptr();
+       this->pDst=output.ptr();
+       
+    }
+
+    void FastMathF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 52 - 0
Testing/Source/Benchmarks/MISCF16.cpp

@@ -0,0 +1,52 @@
+#include "MISCF16.h"
+#include "Error.h"
+
+#define MAX(A,B) (A) > (B) ? (A) : (B)
+   
+#if 0
+    void MISCF16::test_conv_f16()
+    {
+       arm_conv_f16(this->inp1, this->nba,this->inp2, this->nbb, this->outp);
+    } 
+#endif 
+
+    void MISCF16::test_correlate_f16()
+    {
+       arm_correlate_f16(this->inp1, this->nba,this->inp2, this->nbb, this->outp);
+    } 
+
+   
+    
+    void MISCF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nba = *it++;
+       this->nbb = *it;
+
+       input1.reload(MISCF16::INPUTSA1_F16_ID,mgr,this->nba);
+       input2.reload(MISCF16::INPUTSB1_F16_ID,mgr,this->nbb);
+
+       switch(id)
+       {
+  #if 0
+          case TEST_CONV_F16_1:
+             output.create(this->nba + this->nbb - 1 ,MISCF16::OUT_SAMPLES_F16_ID,mgr);
+          break;
+  #endif
+
+          case TEST_CORRELATE_F16_2:
+             output.create(2*MAX(this->nba , this->nbb) - 1 ,MISCF16::OUT_SAMPLES_F16_ID,mgr);
+          break;
+       }
+
+       this->inp1=input1.ptr();
+       this->inp2=input2.ptr();
+       this->outp=output.ptr();
+       
+    }
+
+    void MISCF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 105 - 0
Testing/Source/Benchmarks/MicroBenchmarksF16.cpp

@@ -0,0 +1,105 @@
+#include "MicroBenchmarksF16.h"
+#include "Error.h"
+
+static void add_while_f16(
+  const float16_t * pSrcA,
+  const float16_t * pSrcB,
+        float16_t * pDst,
+        uint32_t blockSize)
+{
+  uint32_t blkCnt;    
+
+  blkCnt = blockSize;
+
+  while (blkCnt > 0U)
+  {
+    /* C = A + B */
+
+    /* Add and store result in destination buffer. */
+    *pDst++ = (*pSrcA++) + (*pSrcB++);
+
+    /* Decrement loop counter */
+    blkCnt--;
+  }
+}
+
+static void add_for_f16(
+  const float16_t * pSrcA,
+  const float16_t * pSrcB,
+        float16_t * pDst,
+        uint32_t blockSize)
+{
+  uint32_t blkCnt;   
+  int32_t i; 
+
+  blkCnt = blockSize;
+
+  for(i=0; i<blkCnt; i++)
+  {
+    /* C = A + B */
+
+    /* Add and store result in destination buffer. */
+    *pDst++ = (*pSrcA++) + (*pSrcB++);
+
+  }
+}
+
+static void add_array_f16(
+  const float16_t * pSrcA,
+  const float16_t * pSrcB,
+        float16_t * pDst,
+        uint32_t blockSize)
+{
+  uint32_t blkCnt;   
+  int32_t i; 
+
+  blkCnt = blockSize;
+
+  for(i=0; i<blkCnt; i++)
+  {
+    /* C = A + B */
+
+    /* Add and store result in destination buffer. */
+    pDst[i] = pSrcA[i] + pSrcB[i];
+
+  }
+}
+   
+    void MicroBenchmarksF16::test_while_f16()
+    {     
+      add_while_f16(this->inp1,this->inp2,this->outp,this->nbSamples);
+    } 
+
+    void MicroBenchmarksF16::test_for_f16()
+    {     
+      add_for_f16(this->inp1,this->inp2,this->outp,this->nbSamples);
+    } 
+
+    void MicroBenchmarksF16::test_array_f16()
+    {     
+      add_array_f16(this->inp1,this->inp2,this->outp,this->nbSamples);
+    } 
+
+    
+    void MicroBenchmarksF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbSamples = *it;
+
+       input1.reload(MicroBenchmarksF16::INPUT1_F16_ID,mgr,this->nbSamples);
+       input2.reload(MicroBenchmarksF16::INPUT2_F16_ID,mgr,this->nbSamples);
+
+       
+       output.create(this->nbSamples,MicroBenchmarksF16::OUT_SAMPLES_F16_ID,mgr);
+
+       this->inp1=input1.ptr();
+       this->inp2=input2.ptr();
+       this->outp=output.ptr();
+
+    }
+
+    void MicroBenchmarksF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 262 - 0
Testing/Source/Benchmarks/SVMF16.cpp

@@ -0,0 +1,262 @@
+#include "SVMF16.h"
+#include <stdio.h>
+#include "Error.h"
+
+
+void SVMF16::test_svm_linear_predict_f16()
+{
+      int32_t result;
+
+      arm_svm_linear_predict_f16(&this->linear,inp,&result);
+      
+
+} 
+
+
+void SVMF16::test_svm_polynomial_predict_f16()
+{
+      int32_t result;
+
+      arm_svm_polynomial_predict_f16(&this->poly,inp,&result);
+      
+
+} 
+
+void SVMF16::test_svm_rbf_predict_f16()
+{
+      int32_t result;
+
+      arm_svm_rbf_predict_f16(&this->rbf,inp,&result);
+     
+
+} 
+
+void SVMF16::test_svm_sigmoid_predict_f16()
+{
+      int32_t result;
+
+      arm_svm_sigmoid_predict_f16(&this->sigmoid,inp,&result);
+      
+
+} 
+
+void SVMF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& testparams,Client::PatternMgr *mgr)
+{
+      
+      int kind;
+      int nbp,nbi;
+      const float16_t *paramsp;
+
+      std::vector<Testing::param_t>::iterator it = testparams.begin();
+      this->vecDim = *it++;
+      this->nbSupportVectors = *it++;
+
+      switch(id)
+      {
+          case SVMF16::TEST_SVM_LINEAR_PREDICT_F16_1:
+          {
+
+             samples.reload(SVMF16::INPUT_F16_ID,mgr,this->vecDim);
+             params.reload(SVMF16::PARAMS_LINEAR_F16_ID,mgr);
+             dims.reload(SVMF16::DIMS_LINEAR_S16_ID,mgr);
+
+             int16_t *dimsp=dims.ptr();
+
+             nbi = dimsp[2*this->nbLinear];
+             nbp = dimsp[2*this->nbLinear + 1];
+
+             paramsp = params.ptr() + nbp;
+
+             inp=samples.ptr() + nbi;
+
+             kind = SVMF16::LINEAR;
+
+
+          }
+          break;
+
+          case SVMF16::TEST_SVM_POLYNOMIAL_PREDICT_F16_2:
+          {
+             
+             samples.reload(SVMF16::INPUT_F16_ID,mgr,this->vecDim);
+             params.reload(SVMF16::PARAMS_POLY_F16_ID,mgr);
+             dims.reload(SVMF16::DIMS_POLY_S16_ID,mgr);
+
+             int16_t *dimsp=dims.ptr();
+
+             nbi = dimsp[2*this->nbPoly];
+             nbp = dimsp[2*this->nbPoly + 1];
+
+             paramsp = params.ptr() + nbp;
+
+             inp=samples.ptr() + nbi;
+
+             kind = SVMF16::POLY;
+          }
+          break;
+
+          case SVMF16::TEST_SVM_RBF_PREDICT_F16_3:
+          {
+             
+             samples.reload(SVMF16::INPUT_F16_ID,mgr,this->vecDim);
+             params.reload(SVMF16::PARAMS_RBF_F16_ID,mgr);
+             dims.reload(SVMF16::DIMS_RBF_S16_ID,mgr);
+
+             int16_t *dimsp=dims.ptr();
+
+             nbi = dimsp[2*this->nbRBF];
+             nbp = dimsp[2*this->nbRBF + 1];
+
+             paramsp = params.ptr() + nbp;
+
+             inp=samples.ptr() + nbi;
+
+             kind = SVMF16::RBF;
+          }
+          break;
+
+          case SVMF16::TEST_SVM_SIGMOID_PREDICT_F16_4:
+          {
+             samples.reload(SVMF16::INPUT_F16_ID,mgr,this->vecDim);
+             params.reload(SVMF16::PARAMS_SIGMOID_F16_ID,mgr);
+             dims.reload(SVMF16::DIMS_SIGMOID_S16_ID,mgr);
+
+             int16_t *dimsp=dims.ptr();
+
+             nbi = dimsp[2*this->nbSigmoid];
+             nbp = dimsp[2*this->nbSigmoid + 1];
+
+             paramsp = params.ptr() + nbp;
+
+             inp=samples.ptr() + nbi;
+
+             kind = SVMF16::SIGMOID;
+          }
+          break;
+
+
+      }
+
+
+      
+      
+      this->classes[0] = 0;
+      this->classes[1] = 1;
+      this->intercept=paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors];
+      this->supportVectors=paramsp;
+      this->dualCoefs=paramsp + (this->vecDim*this->nbSupportVectors);
+
+      switch(kind)
+      {
+
+        
+         case SVMF16::POLY:
+             this->coef0 =paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors + 1] ;
+             this->gamma=paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors + 2];
+             this->degree=(int)paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors + 3];
+
+         break;
+
+         case SVMF16::RBF:
+             this->gamma=paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors + 1];
+         break;
+
+         case SVMF16::SIGMOID:
+             this->coef0 =paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors + 1] ;
+             this->gamma=paramsp[this->vecDim*this->nbSupportVectors + this->nbSupportVectors + 2];
+         break;
+      }
+
+       
+       switch(id)
+       {
+          case SVMF16::TEST_SVM_LINEAR_PREDICT_F16_1:
+          {
+             
+             arm_svm_linear_init_f16(&linear, 
+                 this->nbSupportVectors,
+                 this->vecDim,
+                 this->intercept,
+                 this->dualCoefs,
+                 this->supportVectors,
+                 this->classes);
+          }
+          break;
+
+          case SVMF16::TEST_SVM_POLYNOMIAL_PREDICT_F16_2:
+          {
+             
+             arm_svm_polynomial_init_f16(&poly, 
+                 this->nbSupportVectors,
+                 this->vecDim,
+                 this->intercept,
+                 this->dualCoefs,
+                 this->supportVectors,
+                 this->classes,
+                 this->degree,
+                 this->coef0,
+                 this->gamma
+                 );
+          }
+          break;
+
+          case SVMF16::TEST_SVM_RBF_PREDICT_F16_3:
+          {
+             
+             arm_svm_rbf_init_f16(&rbf, 
+                 this->nbSupportVectors,
+                 this->vecDim,
+                 this->intercept,
+                 this->dualCoefs,
+                 this->supportVectors,
+                 this->classes,
+                 this->gamma
+                 );
+          }
+          break;
+
+          case SVMF16::TEST_SVM_SIGMOID_PREDICT_F16_4:
+          {
+             
+             arm_svm_sigmoid_init_f16(&sigmoid, 
+                 this->nbSupportVectors,
+                 this->vecDim,
+                 this->intercept,
+                 this->dualCoefs,
+                 this->supportVectors,
+                 this->classes,
+                 this->coef0,
+                 this->gamma
+                 );
+          }
+          break;
+       }
+
+
+    
+}
+
+void SVMF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+{
+        switch(id)
+        {
+             case SVMF16::TEST_SVM_LINEAR_PREDICT_F16_1:
+              nbLinear++;
+             break;
+
+             case SVMF16::TEST_SVM_POLYNOMIAL_PREDICT_F16_2:
+              nbPoly++;
+             break;
+
+             case SVMF16::TEST_SVM_RBF_PREDICT_F16_3:
+              nbRBF++;
+             break;
+
+             case SVMF16::TEST_SVM_SIGMOID_PREDICT_F16_4:
+              nbSigmoid++;
+             break;
+        }
+}
+
+
+

+ 190 - 0
Testing/Source/Benchmarks/StatsF16.cpp

@@ -0,0 +1,190 @@
+#include "StatsF16.h"
+#include <stdio.h>
+#include "Error.h"
+#include "Test.h"
+
+
+
+    void StatsF16::test_max_f16()
+    {
+
+        float16_t result;
+        uint32_t  indexval;
+
+        arm_max_f16(inap,
+              this->nb,
+              &result,
+              &indexval);
+
+    }
+
+    void StatsF16::test_max_no_idx_f16()
+    {
+       
+        float16_t result;
+
+       
+        arm_max_no_idx_f16(inap,
+              this->nb,
+              &result);
+
+       
+
+    }
+
+    void StatsF16::test_min_f16()
+    {
+       
+        float16_t result;
+        uint32_t  indexval;
+
+       
+        arm_min_f16(inap,
+              this->nb,
+              &result,
+              &indexval);
+
+      
+
+    }
+
+    void StatsF16::test_mean_f16()
+    {
+
+        float16_t result;
+
+        arm_mean_f16(inap,
+              this->nb,
+              &result);
+
+    }
+
+    void StatsF16::test_power_f16()
+    {
+        
+        float16_t result;
+
+        
+        arm_power_f16(inap,
+              this->nb,
+              &result);
+
+       
+
+    }
+
+    void StatsF16::test_rms_f16()
+    {
+       
+        float16_t result;
+
+       
+        arm_rms_f16(inap,
+              this->nb,
+              &result);
+
+       
+    }
+
+    void StatsF16::test_std_f16()
+    {
+
+        float16_t result;
+
+       
+        arm_std_f16(inap,
+              this->nb,
+              &result);
+
+       
+    }
+
+    void StatsF16::test_var_f16()
+    {
+
+        float16_t result;
+
+       
+        arm_var_f16(inap,
+              this->nb,
+              &result);
+
+      
+    }
+
+
+   
+
+    void StatsF16::test_entropy_f16()
+    {
+      float16_t out;
+      out = arm_entropy_f16(inap,this->nb);
+      
+
+    } 
+
+    void StatsF16::test_logsumexp_f16()
+    {
+       float16_t out;
+
+       out  = arm_logsumexp_f16(inap,this->nb);
+     
+    } 
+
+
+    void StatsF16::test_kullback_leibler_f16()
+    {
+      
+      float16_t out;
+
+      out = arm_kullback_leibler_f16(inap,inbp,this->nb);
+     
+    } 
+
+    void StatsF16::test_logsumexp_dot_prod_f16()
+    {
+      float16_t out;
+
+      out = arm_logsumexp_dot_prod_f16(inap,inbp,this->nb,tmpp);
+      
+    } 
+
+   
+  
+    void StatsF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
+    {
+        std::vector<Testing::param_t>::iterator it = paramsArgs.begin();
+        this->nb = *it;
+
+        inputA.reload(StatsF16::INPUT1_F16_ID,mgr,this->nb);
+
+        inap=inputA.ptr();
+
+        switch(id)
+        {
+          case TEST_KULLBACK_LEIBLER_F16_10:
+            inputB.reload(StatsF16::INPUT2_F16_ID,mgr,this->nb);
+
+            inbp=inputB.ptr();
+          break;
+
+          case TEST_LOGSUMEXP_DOT_PROD_F16_11:
+            inputB.reload(StatsF16::INPUT2_F16_ID,mgr,this->nb);
+
+            inbp=inputB.ptr();
+
+            tmp.create(this->nb,StatsF16::TMP_F16_ID,mgr);
+
+            tmpp = tmp.ptr();
+
+          break;
+
+        }
+        
+    }
+
+    void StatsF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+      (void)id;
+     
+    }

+ 42 - 0
Testing/Source/Benchmarks/SupportBarF16.cpp

@@ -0,0 +1,42 @@
+#include "SupportBarF16.h"
+#include "Error.h"
+
+   
+    void SupportBarF16::test_barycenter_f16()
+    {
+      arm_barycenter_f16(this->inp, this->coefsp,
+            this->outp, 
+            this->nbVectors, 
+            this->vecDim);
+    } 
+
+   
+
+    void SupportBarF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbVectors = *it++;
+       this->vecDim = *it;
+
+       switch(id)
+       {
+           case TEST_BARYCENTER_F16_1:
+              input.reload(SupportBarF16::SAMPLES_F16_ID,mgr,this->nbVectors*this->vecDim);
+              coefs.reload(SupportBarF16::COEFS_F16_ID,mgr,this->nbVectors);
+              output.create(this->vecDim,SupportBarF16::OUT_SAMPLES_F16_ID,mgr);
+
+              this->inp = input.ptr();
+              this->coefsp = coefs.ptr();
+              this->outp = output.ptr();
+           break;
+
+       }
+
+       
+    }
+
+    void SupportBarF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 75 - 0
Testing/Source/Benchmarks/SupportF16.cpp

@@ -0,0 +1,75 @@
+#include "SupportF16.h"
+#include "Error.h"
+
+   
+    void SupportF16::test_copy_f16()
+    {
+       arm_copy_f16(this->pSrc,this->pDst,this->nbSamples);
+    } 
+
+    void SupportF16::test_fill_f16()
+    {
+       arm_fill_f16(0,this->pDst,this->nbSamples);
+    }
+
+    void SupportF16::test_q15_to_f16()
+    {
+      arm_q15_to_f16(this->pSrcQ15,this->pDst,this->nbSamples);
+    }
+
+
+    void SupportF16::test_f32_to_f16()
+    {
+      arm_float_to_f16(this->pSrcF32,this->pDst,this->nbSamples);
+    }
+
+    void SupportF16::test_weighted_sum_f16()
+    {
+      arm_weighted_sum_f16(this->pSrc, this->pWeights,this->nbSamples);
+    }
+
+    void SupportF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbSamples = *it;
+
+       output.create(this->nbSamples,SupportF16::OUT_SAMPLES_F16_ID,mgr);
+
+       switch(id)
+       {
+           case TEST_COPY_F16_1:
+           case TEST_FILL_F16_2:
+             samples.reload(SupportF16::SAMPLES_F16_ID,mgr,this->nbSamples);
+             this->pSrc=samples.ptr();
+           break;
+
+           case TEST_Q15_TO_F16_3:
+             samplesQ15.reload(SupportF16::SAMPLES_Q15_ID,mgr,this->nbSamples);
+             this->pSrcQ15=samplesQ15.ptr();
+           break;
+
+           case TEST_F32_TO_F16_4:
+             samplesF32.reload(SupportF16::SAMPLES_F32_ID,mgr,this->nbSamples);
+             this->pSrcF32=samplesF32.ptr();
+           break;
+
+
+           case TEST_WEIGHTED_SUM_F16_5:
+              samples.reload(SupportF16::INPUTS6_F16_ID,mgr,this->nbSamples);
+              weights.reload(SupportF16::WEIGHTS6_F16_ID,mgr,this->nbSamples);
+
+              this->pSrc=samples.ptr();
+              this->pWeights=weights.ptr();
+           break;
+
+       }
+
+       this->pDst=output.ptr();
+       
+    }
+
+    void SupportF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 99 - 0
Testing/Source/Benchmarks/TransformF16.cpp

@@ -0,0 +1,99 @@
+#include "TransformF16.h"
+#include "Error.h"
+
+    void TransformF16::test_cfft_f16()
+    { 
+       arm_cfft_f16(&(this->cfftInstance), this->pDst, this->ifft,this->bitRev);
+    } 
+
+    void TransformF16::test_rfft_f16()
+    { 
+       arm_rfft_fast_f16(&this->rfftFastInstance, this->pSrc, this->pDst, this->ifft);
+    } 
+
+    void TransformF16::test_cfft_radix4_f16()
+    { 
+       arm_cfft_radix4_f16(&this->cfftRadix4Instance,this->pDst);
+    } 
+
+    void TransformF16::test_cfft_radix2_f16()
+    { 
+       arm_cfft_radix2_f16(&this->cfftRadix2Instance,this->pDst);
+    } 
+
+
+    void TransformF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbSamples = *it++;
+       this->ifft = *it++;
+       this->bitRev = *it;
+      
+       switch(id)
+       {
+          case TEST_CFFT_F16_1:
+            samples.reload(TransformF16::INPUTC_F16_ID,mgr,2*this->nbSamples);
+            output.create(2*this->nbSamples,TransformF16::OUT_F16_ID,mgr);
+
+            this->pSrc=samples.ptr();
+            this->pDst=output.ptr();
+
+            status=arm_cfft_init_f16(&cfftInstance,this->nbSamples);
+            memcpy(this->pDst,this->pSrc,2*sizeof(float16_t)*this->nbSamples);
+          break;
+
+          case TEST_RFFT_F16_2:
+            samples.reload(TransformF16::INPUTR_F16_ID,mgr,this->nbSamples);
+            output.create(this->nbSamples,TransformF16::OUT_F16_ID,mgr);
+
+            this->pSrc=samples.ptr();
+            this->pDst=output.ptr();
+
+            arm_rfft_fast_init_f16(&this->rfftFastInstance, this->nbSamples);
+          break;
+
+          case TEST_CFFT_RADIX4_F16_3:
+            samples.reload(TransformF16::INPUTC_F16_ID,mgr,2*this->nbSamples);
+            output.create(2*this->nbSamples,TransformF16::OUT_F16_ID,mgr);
+
+            this->pSrc=samples.ptr();
+            this->pDst=output.ptr();
+
+            
+            memcpy(this->pDst,this->pSrc,2*sizeof(float16_t)*this->nbSamples);
+
+            arm_cfft_radix4_init_f16(&this->cfftRadix4Instance,
+                this->nbSamples,
+                this->ifft,
+                this->bitRev);
+
+          break;
+
+          case TEST_CFFT_RADIX2_F16_4:
+            samples.reload(TransformF16::INPUTC_F16_ID,mgr,2*this->nbSamples);
+            output.create(2*this->nbSamples,TransformF16::OUT_F16_ID,mgr);
+
+            this->pSrc=samples.ptr();
+            this->pDst=output.ptr();
+
+            
+            memcpy(this->pDst,this->pSrc,2*sizeof(float16_t)*this->nbSamples);
+
+            arm_cfft_radix2_init_f16(&this->cfftRadix2Instance,
+                this->nbSamples,
+                this->ifft,
+                this->bitRev);
+          break;
+
+       }
+
+
+       
+
+    }
+
+    void TransformF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 95 - 0
Testing/Source/Benchmarks/UnaryF16.cpp

@@ -0,0 +1,95 @@
+#include "UnaryF16.h"
+#include "Error.h"
+
+   
+    void UnaryF16::test_mat_scale_f16()
+    {     
+       arm_mat_scale_f16(&this->in1,0.5,&this->out);
+    } 
+
+    void UnaryF16::test_mat_inverse_f16()
+    {     
+       arm_mat_inverse_f16(&this->in1,&this->out);
+    } 
+
+    void UnaryF16::test_mat_trans_f16()
+    {     
+       arm_mat_trans_f16(&this->in1,&this->out);
+    } 
+
+    void UnaryF16::test_mat_cmplx_trans_f16()
+    {     
+       arm_mat_cmplx_trans_f16(&this->in1,&this->out);
+    } 
+
+    void UnaryF16::test_mat_add_f16()
+    {     
+       arm_mat_add_f16(&this->in1,&this->in1,&this->out);
+    } 
+
+    void UnaryF16::test_mat_sub_f16()
+    {     
+       arm_mat_sub_f16(&this->in1,&this->in1,&this->out);
+    } 
+
+    void UnaryF16::test_mat_vec_mult_f16()
+    {     
+       arm_mat_vec_mult_f16(&this->in1, vecp, outp);
+    } 
+    
+    void UnaryF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+
+
+       std::vector<Testing::param_t>::iterator it = params.begin();
+       this->nbr = *it++;
+       this->nbc = *it;
+
+       switch(id)
+       {
+          case TEST_MAT_VEC_MULT_F16_6:
+             input1.reload(UnaryF16::INPUTA_F16_ID,mgr,this->nbr*this->nbc);
+             vec.reload(UnaryF16::INPUTVEC1_F16_ID,mgr,this->nbc);
+             output.create(this->nbr,UnaryF16::OUT_F16_ID,mgr);
+             vecp=vec.ptr();
+             outp=output.ptr();
+          break;
+          case TEST_MAT_TRANS_F16_3:
+              input1.reload(UnaryF16::INPUTA_F16_ID,mgr,this->nbr*this->nbc);
+              output.create(this->nbr*this->nbc,UnaryF16::OUT_F16_ID,mgr);
+              
+              this->out.numRows = this->nbc;
+              this->out.numCols = this->nbr;
+              this->out.pData = output.ptr(); 
+          break;
+          case TEST_MAT_CMPLX_TRANS_F16_7:
+              input1.reload(UnaryF16::INPUTAC_F16_ID,mgr,2*this->nbr*this->nbc);
+              output.create(2*this->nbr*this->nbc,UnaryF16::OUT_F16_ID,mgr);
+              
+              this->out.numRows = this->nbc;
+              this->out.numCols = this->nbr;
+              this->out.pData = output.ptr(); 
+          break;
+          default:
+              input1.reload(UnaryF16::INPUTA_F16_ID,mgr,this->nbr*this->nbc);
+              output.create(this->nbr*this->nbc,UnaryF16::OUT_F16_ID,mgr);
+              
+              this->out.numRows = this->nbr;
+              this->out.numCols = this->nbc;
+              this->out.pData = output.ptr(); 
+          break;
+       }
+
+
+       
+
+       this->in1.numRows = this->nbr;
+       this->in1.numCols = this->nbc;
+       this->in1.pData = input1.ptr();   
+
+      
+    }
+
+    void UnaryF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+    }

+ 67 - 67
Testing/bench.txt

@@ -5,11 +5,11 @@ group Root {
         class = DSPBenchmarks
         folder = DSP
 
-        group Statistics {
+        group Statistics Benchmarks {
            class = Stats
            folder = Stats
 
-           suite Statistics F32 {
+           suite Statistics Benchmarks F32 {
               class = StatsF32
               folder = StatsF32
 
@@ -32,23 +32,23 @@ group Root {
               }
 
               Functions {
-                arm_max_f32:test_max_f32
-                arm_mean_f32:test_mean_f32
-                arm_min_f32:test_min_f32
-                arm_power_f32:test_power_f32
-                arm_rms_f32:test_rms_f32
-                arm_std_f32:test_std_f32
-                arm_var_f32:test_var_f32
-                arm_entropy_f32:test_entropy_f32
-                arm_logsumexp_f32:test_logsumexp_f32
-                arm_kullback_leibler_f32:test_kullback_leibler_f32
-                arm_logsumexp_dot_prod_f32:test_logsumexp_dot_prod_f32
-                arm_max_no_idx_f32:test_max_no_idx_f32
+                Vector maximum:test_max_f32
+                Vector average:test_mean_f32
+                Vector minimum:test_min_f32
+                Vector energy:test_power_f32
+                Vector root mean square:test_rms_f32
+                Vector standard deviation:test_std_f32
+                Vector variance:test_var_f32
+                Entropy:test_entropy_f32
+                Vector logsumexp:test_logsumexp_f32
+                Kullback Leibler divergence:test_kullback_leibler_f32
+                Vector logsumexp dot product:test_logsumexp_dot_prod_f32
+                Vector max with no index:test_max_no_idx_f32
               } -> PARAM1_ID
 
            }
 
-           suite Statistics F64 {
+           suite Statistics Benchmarks F64 {
               class = StatsF64
               folder = StatsF64
 
@@ -71,13 +71,13 @@ group Root {
               }
 
               Functions {
-                arm_entropy_f64:test_entropy_f64
-                arm_kullback_leibler_f64:test_kullback_leibler_f64
+                Entropy:test_entropy_f64
+                Kullback Leibler divergence:test_kullback_leibler_f64
               } -> PARAM1_ID
 
            }
 
-           suite Statistics Q31 {
+           suite Statistics Benchmarks Q31 {
               class = StatsQ31
               folder = StatsQ31
 
@@ -101,18 +101,18 @@ group Root {
               }
 
               Functions {
-                arm_max_q31:test_max_q31
-                arm_mean_q31:test_mean_q31
-                arm_min_q31:test_min_q31
-                arm_power_q31:test_power_q31
-                arm_rms_q31:test_rms_q31
-                arm_std_q31:test_std_q31
-                arm_var_q31:test_var_q31
+                Vector maximum:test_max_q31
+                Vector average:test_mean_q31
+                Vector minimum:test_min_q31
+                Vector energy:test_power_q31
+                Vector root mean square:test_rms_q31
+                Vector standard deviation:test_std_q31
+                Vector variance:test_var_q31
               } -> PARAM1_ID
 
            }
 
-           suite Statistics Q15 {
+           suite Statistics Benchmarks Q15 {
               class = StatsQ15
               folder = StatsQ15
 
@@ -137,18 +137,18 @@ group Root {
               }
 
               Functions {
-                arm_max_q15:test_max_q15
-                arm_mean_q15:test_mean_q15
-                arm_min_q15:test_min_q15
-                arm_power_q15:test_power_q15
-                arm_rms_q15:test_rms_q15
-                arm_std_q15:test_std_q15
-                arm_var_q15:test_var_q15
+                Vector maximum:test_max_q15
+                Vector average:test_mean_q15
+                Vector minimum:test_min_q15
+                Vector energy:test_power_q15
+                Vector root mean square:test_rms_q15
+                Vector standard deviation:test_std_q15
+                Vector variance:test_var_q15
               } -> PARAM1_ID
 
            }
 
-           suite Statistics Q7 {
+           suite Statistics Benchmarks Q7 {
               class = StatsQ7
               folder = StatsQ7
 
@@ -173,10 +173,10 @@ group Root {
               }
 
               Functions {
-                arm_max_q7:test_max_q7
-                arm_mean_q7:test_mean_q7
-                arm_min_q7:test_min_q7
-                arm_power_q7:test_power_q7
+                Vector maximum:test_max_q7
+                Vector average:test_mean_q7
+                Vector minimum:test_min_q7
+                Vector energy:test_power_q7
               } -> PARAM1_ID
 
            }
@@ -954,7 +954,7 @@ group Root {
                 }
 
               Functions {
-                 arm_gaussian_naive_bayes_predict_f32:test_gaussian_naive_bayes_predict_f32
+                 Naive Gaussian Bayes Predictor:test_gaussian_naive_bayes_predict_f32
               } -> PARAM1_ID
            }
         }
@@ -988,15 +988,15 @@ group Root {
               }
 
               Functions {
-                 arm_braycurtis_distance_f32:test_braycurtis_distance_f32
-                 arm_canberra_distance_f32:test_canberra_distance_f32
-                 arm_chebyshev_distance_f32:test_chebyshev_distance_f32
-                 arm_cityblock_distance_f32:test_cityblock_distance_f32
-                 arm_correlation_distance_f32:test_correlation_distance_f32
-                 arm_cosine_distance_f32:test_cosine_distance_f32
-                 arm_euclidean_distance_f32:test_euclidean_distance_f32
-                 arm_jensenshannon_distance_f32:test_jensenshannon_distance_f32
-                 arm_minkowski_distance_f32:test_minkowski_distance_f32
+                 Bray Curtis distance:test_braycurtis_distance_f32
+                 Canberra distance:test_canberra_distance_f32
+                 Chebyshev distance:test_chebyshev_distance_f32
+                 Cityblock distance:test_cityblock_distance_f32
+                 Correlation distance:test_correlation_distance_f32
+                 Cosine distance:test_cosine_distance_f32
+                 Euclidean distance:test_euclidean_distance_f32
+                 Jensen Shannon distance:test_jensenshannon_distance_f32
+                 Minkowski distance:test_minkowski_distance_f32
               } -> PARAM1_ID
            }
 
@@ -1021,15 +1021,15 @@ group Root {
 
 
               Functions {
-                 arm_dice_distance:test_dice_distance_u32
-                 arm_hamming_distance:test_hamming_distance_u32
-                 arm_jaccard_distance:test_jaccard_distance_u32
-                 arm_kulsinski_distance:test_kulsinski_distance_u32
-                 arm_rogerstanimoto_distance:test_rogerstanimoto_distance_u32
-                 arm_russellrao_distance:test_russellrao_distance_u32
-                 arm_sokalmichener_distance:test_sokalmichener_distance_u32
-                 arm_sokalsneath_distance:test_sokalsneath_distance_u32
-                 arm_yule_distance:test_yule_distance_u32
+                 Dice distance:test_dice_distance_u32
+                 Hamming distance:test_hamming_distance_u32
+                 Jaccard distance:test_jaccard_distance_u32
+                 Kulsinski distance:test_kulsinski_distance_u32
+                 Roger Stanimoto distance:test_rogerstanimoto_distance_u32
+                 Russell Rao distance:test_russellrao_distance_u32
+                 Sokal Michener distance:test_sokalmichener_distance_u32
+                 Sokal Sneath distance:test_sokalsneath_distance_u32
+                 Yule distance:test_yule_distance_u32
               } -> PARAM1_ID
            }
         }
@@ -1072,10 +1072,10 @@ group Root {
                 }
 
               Functions {
-                 arm_svm_linear_predict_f32:test_svm_linear_predict_f32
-                 arm_svm_polynomial_predict_f32:test_svm_polynomial_predict_f32
-                 arm_svm_rbf_predict_f32:test_svm_rbf_predict_f32
-                 arm_svm_sigmoid_predict_f32:test_svm_sigmoid_predict_f32
+                 Linear SVM:test_svm_linear_predict_f32
+                 Polynomial SVM:test_svm_polynomial_predict_f32
+                 RBF SVM:test_svm_rbf_predict_f32
+                 Sigmoid SVM:test_svm_sigmoid_predict_f32
               } -> PARAM1_ID
            }
         }
@@ -1142,12 +1142,12 @@ group Root {
                 }
 
                 Functions {
-                   test_copy_f32:test_copy_f32
-                   test_fill_f32:test_fill_f32
-                   test_q15_to_f32:test_q15_to_f32
-                   test_q31_to_f32:test_q31_to_f32
-                   test_q7_to_f32:test_q7_to_f32
-                   test_weighted_sum_f32:test_weighted_sum_f32
+                   Vector Copy:test_copy_f32
+                   Vector Filling:test_fill_f32
+                   Elementwise q15 to f32:test_q15_to_f32
+                   Elementwise q31 to f32:test_q31_to_f32
+                   Elementwise q7 to f32:test_q7_to_f32
+                   Weighted sum:test_weighted_sum_f32
                 } -> PARAM1_ID
              }
 

+ 594 - 0
Testing/bench_f16.txt

@@ -0,0 +1,594 @@
+group Root {
+    class = Root
+
+    group DSP Benchmarks {
+        class = DSPBenchmarks
+        folder = DSP
+
+        group Statistics Benchmarks {
+           class = Stats
+           folder = Stats
+
+           suite Statistics Benchmarks F16 {
+              class = StatsF16
+              folder = StatsF16
+
+              ParamList {
+                  NB
+                  Summary NB
+                  Names "NB Samples"
+                  Formula "NB"
+              }
+
+              Pattern INPUT1_F16_ID : InputBench1_f16.txt 
+              Pattern INPUT2_F16_ID : InputBench2_f16.txt 
+              
+              Output  OUT_F16_ID : Output
+              Output  OUT_S16_ID : Index
+              Output  TMP_F16_ID : Temp
+
+              Params PARAM1_ID = {
+                  A = [16,32,64,128,256]
+              }
+
+              Functions {
+                Vector maximum:test_max_f16
+                Vector average:test_mean_f16
+                Vector minimum:test_min_f16
+                Vector energy:test_power_f16
+                Vector root mean square:test_rms_f16
+                Vector standard deviation:test_std_f16
+                Vector variance:test_var_f16
+                Entropy:test_entropy_f16
+                Vector logsumexp:test_logsumexp_f16
+                Kullback Leibler divergence:test_kullback_leibler_f16
+                Vector logsumexp dot product:test_logsumexp_dot_prod_f16
+                Vector max with no index:test_max_no_idx_f16
+              } -> PARAM1_ID
+
+           }
+
+        }
+
+        group Basic Maths {
+           class = BasicBenchmarks
+           folder = BasicMaths
+
+           suite Basic Maths Benchmarks F16 {
+              class = BasicMathsBenchmarksF16
+              folder = BasicMathsF16
+  
+              ParamList {
+                  NB
+                  Summary NB
+                  Names "NB Samples"
+                  Formula "NB"
+              }
+  
+              Pattern INPUT1_F16_ID : Input1_f16.txt 
+              Pattern INPUT2_F16_ID : Input2_f16.txt 
+              Output  OUT_SAMPLES_F16_ID : Output
+              Params PARAM1_ID = {
+                  A = [16,32,64,128,256]
+              }
+  
+              Functions {
+                 Elementwise multiplication:vec_mult_f16
+                 Vector addition:vec_add_f16
+                 Vector substraction:vec_sub_f16
+                 Elementwise absolute value:vec_abs_f16
+                 Elementwise negation:vec_negate_f16
+                 Elementwise offset:vec_offset_f16
+                 Vector scaling:vec_scale_f16
+                 Dot product:vec_dot_f16
+              } -> PARAM1_ID
+           }
+
+        }
+
+        group Complex Maths {
+           class = ComplexBenchmarks
+           folder = ComplexMaths
+
+           suite ComplexMaths Benchmarks F16 {
+              class = ComplexMathsBenchmarksF16
+              folder = ComplexMathsF16
+  
+              ParamList {
+                  NB
+                  Summary NB
+                  Names "NB Samples"
+                  Formula "NB"
+              }
+  
+              Pattern INPUT1_F16_ID : Input1_f16.txt 
+              Pattern INPUT2_F16_ID : Input2_f16.txt 
+              Pattern INPUT3_F16_ID : Input3_f16.txt 
+              Output  OUT_SAMPLES_F16_ID : Output
+              Params PARAM1_ID = {
+                  A = [16,32,64,128,256]
+              }
+  
+              Functions {
+                 Elementwise conjugate:vec_conj_f16
+                 Complex dot product:vec_dot_prod_f16
+                 Elementwise modulus:vec_mag_f16
+                 Elementwise modulus squared:vec_mag_squared_f16
+                 Elementwise complex multiplication:vec_mult_cmplx_f16
+                 Vector scaling by real number:vec_mult_real_f16
+              } -> PARAM1_ID
+           }
+
+        }
+
+        group Filtering {
+           class = DSPFiltering 
+           folder = Filtering 
+
+           group FIR {
+             class = FIR 
+             folder = FIR
+
+             suite FIR F16 {
+                class = FIRF16 
+                folder = FIRF16
+
+                ParamList {
+                  NumTaps, NB
+                  Summary NumTaps, NB
+                  Names "Number of taps","Number of samples"
+                  Formula "NumTaps * NB"
+                }
+
+                Pattern SAMPLES1_F16_ID : Samples1_f16.txt 
+                Pattern REFS1_F16_ID : Refs1_f16.txt 
+                Pattern COEFS1_F16_ID : Coefs1_f16.txt 
+
+                Output  OUT_SAMPLES_F16_ID : Output
+                Output  STATE_F16_ID : State
+                Output  ERR_F16_ID : Err
+
+                Params PARAM1_ID = {
+                  NumTaps = [16,32,64]
+                  NB = [64,128,256]
+                }
+
+                Functions {
+                   FIR Filter:test_fir_f16
+                } -> PARAM1_ID
+             }
+
+           }
+
+           group Convolutions / Correlations {
+             class = MISC 
+             folder = MISC
+
+             suite Convolutions / Correlations F16 {
+                class = MISCF16 
+                folder = MISCF16
+
+                ParamList {
+                  NBA, NBB
+                  Summary NBA, NBB
+                  Names "Number of samples A,Number of samples B"
+                  Formula "NBA * NBB"
+                }
+
+                Pattern INPUTSA1_F16_ID : InputsA1_f16.txt 
+                Pattern INPUTSB1_F16_ID : InputsB1_f16.txt 
+
+                Output  OUT_SAMPLES_F16_ID : Output
+
+                Params PARAM1_ID = {
+                  NBA = [9,16,64]
+                  NBB = [9,16,128]
+                }
+
+                Functions {
+                   disabled{Convolution:test_conv_f16}
+                   Correlation:test_correlate_f16
+                } -> PARAM1_ID
+              }
+
+
+           }
+
+
+           group BiQuads {
+             class = BIQUAD 
+             folder = BIQUAD
+
+             suite BiQuads F16 {
+                class = BIQUADF16 
+                folder = BIQUADF16
+
+                ParamList {
+                  NumStages, NB
+                  Summary NumStages, NB
+                  Names "Number of stages","Number of samples"
+                  Formula "NumStages * NB"
+                }
+
+                Pattern SAMPLES1_F16_ID : Samples1_f16.txt 
+                Pattern COEFS1_F16_ID : Coefs1_f16.txt 
+
+                Output  OUT_SAMPLES_F16_ID : Output
+                Output  STATE_F16_ID : State
+                Output  NEON_COEFS_F16_ID : NeonCoefs
+
+                Params PARAM1_ID = {
+                  NumStages = [1,2,4]
+                  NB = [16,128,256]
+                }
+
+                Functions {
+                   Cascaded BiQuad Filter DF1:test_biquad_cascade_df1_f16
+                   Cascaded BiQuad Filter DF2T:test_biquad_cascade_df2T_f16
+                   Cascaded BiQuad Filter Stereo DF2T:test_biquad_cascade_stereo_df2T_f16
+                } -> PARAM1_ID
+              }
+
+           }
+        }
+
+        group Fast Maths {
+           class = FastMath 
+           folder = FastMath 
+
+           suite Fast Maths F16 {
+                class = FastMathF16 
+                folder = FastMathF16
+
+                ParamList {
+                  NB
+                  Summary NB
+                  Names "Number of samples"
+                  Formula "NB"
+                }
+
+                Pattern SAMPLES_F16_ID : Samples1_f16.txt 
+                Output  OUT_SAMPLES_F16_ID : Output
+
+                Params PARAM1_ID = {
+                  NB = [64,128,256]
+                }
+
+                Functions {
+                   disabled{Cosine:test_cos_f16}
+                   disabled{Sine:test_sin_f16}
+                   Square Root:test_sqrt_f16
+                } -> PARAM1_ID
+             }
+
+        }
+
+        group Bayes{
+           class = Bayes
+           folder = Bayes 
+
+           suite Bayes F16 {
+              class = BayesF16
+              folder = BayesF16
+
+              ParamList {
+                  VECDIM,NBCLASSES
+                  Summary VECDIM,NBCLASSES
+                  Names "Vector dimension","Number of classes"
+                  Formula "VECDIM*NBCLASSES"
+                }
+
+              Pattern DIMS2_S16_ID : DimsBench2_s16.txt 
+              Pattern INPUTS2_F16_ID : Inputs2_f16.txt 
+              Pattern PARAMS2_F16_ID : Params2_f16.txt 
+              Pattern PREDICTS2_S16_ID : Predicts2_s16.txt
+
+              Output  OUT_PROBA_F16_ID : Probas
+              Output  OUT_PREDICT_S16_ID : Predicts
+
+              // Must be consistent with the Python script
+              Params PARAM1_ID = {
+                  VECDIM = [12,14,20]
+                  NBCLASSES = [3,5,4]
+                }
+
+              Functions {
+                 Naive Gaussian Bayes Predictor:test_gaussian_naive_bayes_predict_f16
+              } -> PARAM1_ID
+           }
+        }
+
+        group Distance  {
+           class = Distance
+           folder = Distance
+
+           suite Distance F16 {
+              class = DistanceF16
+              folder = DistanceF16
+
+              ParamList {
+                  NB
+                  Summary NB
+                  Names "NB Samples"
+                  Formula "NB"
+              }
+              
+              Pattern INPUTA_F16_ID : InputBenchA1_f16.txt
+              Pattern INPUTB_F16_ID : InputBenchB1_f16.txt
+
+              Pattern INPUTA_PROBA_F16_ID : InputBenchProbaA1_f16.txt
+              Pattern INPUTB_PROBA_F16_ID : InputBenchProbaB1_f16.txt
+
+              Output  TMPA_F16_ID : TmpA
+              Output  TMPB_F16_ID : TmpB
+
+              Params PARAM1_ID = {
+                  NB = [16,32,64,128,256]
+              }
+
+              Functions {
+                 Bray Curtis distance:test_braycurtis_distance_f16
+                 Canberra distance:test_canberra_distance_f16
+                 Chebyshev distance:test_chebyshev_distance_f16
+                 Cityblock distance:test_cityblock_distance_f16
+                 Correlation distance:test_correlation_distance_f16
+                 Cosine distance:test_cosine_distance_f16
+                 Euclidean distance:test_euclidean_distance_f16
+                 Jensen Shannon distance:test_jensenshannon_distance_f16
+                 Minkowski distance:test_minkowski_distance_f16
+              } -> PARAM1_ID
+           }
+
+        }
+
+        group SVM  {
+           class = SVM
+           folder = SVM 
+
+           suite SVM F16 {
+              class = SVMF16
+              folder = SVMF16
+
+              ParamList {
+                  VECDIM,NBVECS
+                  Summary VECDIM,NBVECS
+                  Names "Vector dimension","Number of suppot vectors"
+                  Formula "VECDIM*NBVECS"
+              }
+
+              Pattern INPUT_F16_ID : InputsBench6_f16.txt 
+              
+              Pattern DIMS_LINEAR_S16_ID : DimsLinear6_s16.txt 
+              Pattern PARAMS_LINEAR_F16_ID : ParamsLinear6_f16.txt
+
+              Pattern DIMS_POLY_S16_ID : DimsPoly6_s16.txt 
+              Pattern PARAMS_POLY_F16_ID : ParamsPoly6_f16.txt
+
+              Pattern DIMS_RBF_S16_ID : DimsRBF6_s16.txt 
+              Pattern PARAMS_RBF_F16_ID : ParamsRBF6_f16.txt
+
+              Pattern DIMS_SIGMOID_S16_ID : DimsSigmoid6_s16.txt 
+              Pattern PARAMS_SIGMOID_F16_ID : ParamsSigmoid6_f16.txt
+
+              Output  OUT_S32_ID : Output
+
+              // Must be consistent with the Python script
+              Params PARAM1_ID = {
+                  VECDIM = [16,32,64]
+                  NBVECS = [8,16,32]
+                }
+
+              Functions {
+                 Linear SVM:test_svm_linear_predict_f16
+                 Polynomial SVM:test_svm_polynomial_predict_f16
+                 RBF SVM:test_svm_rbf_predict_f16
+                 Sigmoid SVM:test_svm_sigmoid_predict_f16
+              } -> PARAM1_ID
+           }
+        }
+
+        group Barycenter {
+           class = Barycenter 
+           
+           suite Barycenter {
+                class = SupportBarF16 
+                folder = SupportBarF16
+
+                ParamList {
+                  NB,VECDIM
+                  Summary NB,VECDIM
+                  Names "Number of samples","Vector dimension"
+                  Formula "NB*VECDIM"
+                }
+
+                Pattern SAMPLES_F16_ID : Samples1_f16.txt 
+                Pattern COEFS_F16_ID : Coefs1_f16.txt 
+                Output  OUT_SAMPLES_F16_ID : Output
+
+                Params PARAM1_ID = {
+                  NB = [16,64,128]
+                  VECDIM = [5,10,15]
+                }
+
+                Functions {
+                   Barycenter:test_barycenter_f16
+                } -> PARAM1_ID
+   
+           }
+
+        }
+
+        group Support Functions {
+           class = Support 
+           folder = Support 
+
+           suite Support Functions F16 {
+                class = SupportF16 
+                folder = SupportF16
+
+                ParamList {
+                  NB
+                  Summary NB
+                  Names "Number of samples"
+                  Formula "NB"
+                }
+
+                Pattern SAMPLES_F32_ID : Samples1_f32.txt 
+                Pattern SAMPLES_F16_ID : Samples11_f16.txt 
+                Pattern SAMPLES_Q15_ID : Samples3_q15.txt 
+
+                Pattern INPUTS6_F16_ID : Inputs6_f16.txt 
+                Pattern WEIGHTS6_F16_ID : Weights6_f16.txt 
+                Pattern REF6_F16_ID : Ref6_f16.txt
+
+                Output  OUT_SAMPLES_F16_ID : Output
+
+                Params PARAM1_ID = {
+                  NB = [64,128,256]
+                }
+
+                Functions {
+                   Vector Copy:test_copy_f16
+                   Vector Filling:test_fill_f16
+                   Elementwise q15 to f16:test_q15_to_f16
+                   Elementwise f32 to f16:test_f32_to_f16
+                   Weighted sum:test_weighted_sum_f16
+                } -> PARAM1_ID
+             }
+
+        }
+
+        group Matrix {
+           class = Matrix 
+           folder = Matrix 
+
+           group Matrix Operators with one matrix size {
+              class = Unary 
+              folder = Unary 
+
+              suite Unary Matrix Operators F16 {
+                class = UnaryF16 
+                folder = UnaryF16
+
+                ParamList {
+                  NBR,NBC
+                  Summary NBR,NBC
+                  Names "Number of rows","Number of columns"
+                  Formula "NBR*NBC"
+                }
+
+                Pattern INPUTA_F16_ID : InputA1_f16.txt 
+                Pattern INPUTAC_F16_ID : InputAC1_f16.txt 
+                Pattern INPUTVEC1_F16_ID : InputVec1_f16.txt 
+
+                Output  OUT_F16_ID : Output
+
+                Params PARAM1_ID = {
+                  NBR = [5,10,40]
+                  NBC = [5,10,40]
+                }
+
+                Functions {
+                   Matrix Scaling:test_mat_scale_f16
+                   Matrix Inversion:test_mat_inverse_f16
+                   Matrix Transpose:test_mat_trans_f16
+                   Matrix Addition:test_mat_add_f16
+                   Matrix Substraction:test_mat_sub_f16
+                   Matrix Vector Multiplication:test_mat_vec_mult_f16
+                   Matrix Complex Transpose:test_mat_cmplx_trans_f16
+                } -> PARAM1_ID
+              }
+
+           }
+
+           group Matrix Operators with two matrix sizes {
+              class = Binary 
+              folder = Binary 
+
+             suite Binary Matrix Operators F16 {
+                class = BinaryF16 
+                folder = BinaryF16
+
+                ParamList {
+                  NBR,NBI,NBC
+                  Summary NBR,NBI,NBC
+                  Names "Number of rows","Inner dimensions","Number of columns"
+                  Formula "NBR*NBI*NBC"
+                }
+
+                Pattern INPUTA_F16_ID : InputA1_f16.txt 
+                Pattern INPUTB_F16_ID : InputB1_f16.txt 
+
+                Pattern INPUTAC_F16_ID : InputAC1_f16.txt 
+                Pattern INPUTBC_F16_ID : InputBC1_f16.txt 
+                Output  OUT_F16_ID : Output
+
+                Params PARAM1_ID = {
+                  NBR = [5,10,40]
+                  NBI = [5,10,40]
+                  NBC = [5,10,40]
+                }
+
+
+                Functions {
+                   Matrix Multiplication:test_mat_mult_f16
+                   Complex Matrix Multiplication:test_mat_cmplx_mult_f16
+                } -> PARAM1_ID
+             }
+           }
+        }
+
+        group Spectral Transformations {
+           class = Transform 
+           folder = Transform 
+
+           suite Spectral Transformations F16 {
+                class = TransformF16 
+                folder = TransformF16
+
+                ParamList {
+                  NB,IFFT,BITREV
+                  Summary NB
+                  Names "Number of samples,Inverse FFT, Bit Reversal"
+                  Formula "I(NB*log2(NB))"
+                }
+
+                Pattern INPUTR_F16_ID : RealInputSamples19_f16.txt 
+                Pattern INPUTC_F16_ID : ComplexInputSamples_Noisy_512_6_f16.txt 
+                Output  OUT_F16_ID : Output
+                Output  STATE_F16_ID : Output
+
+                
+                Params CFFT_PARAM_ID = {
+                  NB = [64,128,256]
+                  IFFT = [0,1]
+                  REV = [0,1]
+                }
+ 
+                Params CFFT4_PARAM_ID = {
+                  NB = [16,64,256]
+                  IFFT = [0,1]
+                  REV = [0,1]
+                }
+
+                Params RFFT_PARAM_ID = {
+                  NB = [64,128,256]
+                  IFFT = [0,1]
+                  REV = [1]
+                }
+
+
+                Functions {
+                   Complex FFT:test_cfft_f16 -> CFFT_PARAM_ID
+                   Real FFT:test_rfft_f16 -> RFFT_PARAM_ID
+                   Radix 4 Complex FFT:test_cfft_radix4_f16 -> CFFT4_PARAM_ID
+                   Radix 2 Complex FFT:test_cfft_radix2_f16 -> CFFT_PARAM_ID
+                }
+           }
+
+        }
+
+    }
+
+
+}

+ 46 - 40
Testing/extractDb.py

@@ -42,7 +42,6 @@ def getrunIDDate(forID):
 
 
 
-runid = 1
 
 parser = argparse.ArgumentParser(description='Generate summary benchmarks')
 
@@ -65,28 +64,29 @@ args = parser.parse_args()
 c = sqlite3.connect(args.b)
 
 if args.others:
-   if len(args.others) == 1:
-      if re.search(r'[,]',args.others[0]):
-         runidval=tuple([int(x) for x in args.others[0].split(",")])
-         runidCMD=["runid == ?" for x in runidval]
-         runidCMD = "".join(joinit(runidCMD," OR "))
-         runidHeader="".join(joinit([str(x) for x in runidval]," , "))
-         runidCMD = "(" + runidCMD + ")"
-      else:
-         runid=int(args.others[0])
-         runidHeader="%d" % runid
-         runidval = (runid,)
-   else:
-      runidCMD = "runid >= ? AND runid <= ?"
-      runid=int(args.others[1])
-      runidLOW=int(args.others[0])
-      runidval = (runidLOW,runid)
-      runidHeader="%d <= runid <= %d" % runidval
+   vals=[]
+   runidCMD=[]
+   runidHeader=[]
+   for t in args.others:
+     if re.search(r'-',t):
+       bounds=[int(x) for x in t.split("-")]
+       vals += bounds
+       runidHeader += ["%d <= runid <= %d" % tuple(bounds)]
+       runidCMD += ["(runid >= ? AND runid <= ?)"]
+     else:
+      theid=int(t)
+      runidHeader += ["runid == %d" % theid]
+      runidCMD += ["runid == ?"]
+      vals.append(theid)
+
+   runidval = tuple(vals)
+   runidHeader = "".join(joinit(runidHeader," OR "))
+   runidCMD = "".join(joinit(runidCMD," OR "))
 else:
-   runid=getLastRunID()
-   print("Last run ID = %d\n" % runid)
-   runidval=(runid,)
-   runidHeader="%d" % runid
+   theid=getLastRunID()
+   print("Last run ID = %d\n" % theid)
+   runidval=(theid,)
+   runidHeader="%d" % theid
 
 
 # We extract data only from data tables
@@ -113,7 +113,7 @@ def getBenchTables():
 
 # get existing types in a table
 def getExistingTypes(benchTable):
-    r=c.execute("select distinct typeid from %s order by typeid desc" % benchTable).fetchall()
+    r=c.execute("select distinct typeid from %s WHERE %s order by typeid desc " % (benchTable,runidCMD),runidval).fetchall()
     result=[x[0] for x in r]
     return(result)
 
@@ -137,7 +137,7 @@ if args.details:
 allCompilers="""select distinct compilerid from %s WHERE typeid=?"""
 
 # Get compilers from specific type and table
-allCores="""select distinct coreid from %s WHERE typeid=?"""
+allCores="""select distinct coreid from %s WHERE typeid=? AND (%s)"""
 
 
 compilerDesc="""select compiler,version from COMPILER 
@@ -152,7 +152,8 @@ def getExistingCompiler(benchTable,typeid):
     return([x[0] for x in r])
 
 def getExistingCores(benchTable,typeid):
-    r=c.execute(allCores % benchTable,(typeid,)).fetchall()
+    vals = (typeid,) + runidval
+    r=c.execute(allCores % (benchTable,runidCMD),vals).fetchall()
     return([x[0] for x in r])
 
 
@@ -205,7 +206,7 @@ benchCmdForCore="""select %s from %s
   INNER JOIN COMPILERKIND USING(compilerkindid)
   INNER JOIN TYPE USING(typeid)
   INNER JOIN TESTNAME USING(testnameid)
-  WHERE coreid=? AND typeid = ? AND %s
+  WHERE coreid=? AND typeid = ? AND (%s)
   """
 
 coresForHistory="""select distinct coreid,core from %s
@@ -223,7 +224,7 @@ benchCmdForCompiler="""select %s from %s
   INNER JOIN COMPILERKIND USING(compilerkindid)
   INNER JOIN TYPE USING(typeid)
   INNER JOIN TESTNAME USING(testnameid)
-  WHERE compilerid=? AND typeid = ? AND %s
+  WHERE compilerid=? AND typeid = ? AND (%s)
   """
 
 # Command to get test names for specific compiler 
@@ -233,7 +234,7 @@ benchNamesForCore="""select distinct ID,name from %s
   INNER JOIN COMPILERKIND USING(compilerkindid)
   INNER JOIN TYPE USING(typeid)
   INNER JOIN TESTNAME USING(testnameid)
-  WHERE coreid=? AND typeid = ? AND %s
+  WHERE coreid=? AND typeid = ? AND (%s)
   """
 # Command to get test names for specific compiler 
 # and type
@@ -242,7 +243,7 @@ benchNamesForCompiler="""select distinct ID,name from %s
   INNER JOIN COMPILERKIND USING(compilerkindid)
   INNER JOIN TYPE USING(typeid)
   INNER JOIN TESTNAME USING(testnameid)
-  WHERE compilerid=? AND typeid = ? AND %s
+  WHERE compilerid=? AND typeid = ? AND (%s)
   """
 
 # Command to get columns for specific table
@@ -290,17 +291,17 @@ def getTestNamesForCompiler(benchTable,comp,typeid):
 # Command to get data for specific core 
 # and type
 nbElemsInBenchAndTypeAndCoreCmd="""select count(*) from %s
-  WHERE coreid=? AND typeid = ? AND %s
+  WHERE coreid=? AND typeid = ? AND (%s)
   """
 
 # Command to get data for specific compiler 
 # and type
 nbElemsInBenchAndTypeAndCompilerCmd="""select count(*) from %s
-  WHERE compilerid=? AND typeid = ? AND %s
+  WHERE compilerid=? AND typeid = ? AND (%s)
   """
 
 nbElemsInBenchAndTypeCmd="""select count(*) from %s
-  WHERE typeid = ? AND %s
+  WHERE typeid = ? AND (%s)
   """
 
 nbElemsInBenchCmd="""select count(*) from %s
@@ -312,7 +313,7 @@ categoryName="""select distinct category from %s
   WHERE %s
   """
 
-def getCategoryName(benchTable,runid):
+def getCategoryName(benchTable):
   result=c.execute(categoryName % (benchTable,runidCMD),runidval).fetchone()
   return(result[0])
 
@@ -560,10 +561,10 @@ def formatTableBy(desc,byname,section,typeSection,testNames,cols,vals):
                  dataTable.addRow(dataForFunc)
 
 # Add a report for each table
-def addReportFor(document,runid,benchName):
+def addReportFor(document,benchName):
     nbElems = getNbElemsInBenchCmd(benchName)
     if nbElems > 0:
-       categoryName = getCategoryName(benchName,runid)
+       categoryName = getCategoryName(benchName)
        benchSection = Section(categoryName)
        document.addSection(benchSection)
        print("Process %s\n" % benchName)
@@ -587,7 +588,7 @@ def addReportFor(document,runid,benchName):
                        coreSection = Section("%s" % coreName)
                        typeSection.addSection(coreSection)
                        cols,vals=getColNamesAndDataForCore(benchName,core,aTypeID)
-                       desc=(benchName,core,aTypeID,runid)
+                       desc=(benchName,core,aTypeID)
                        names=getTestNamesForCore(benchName,core,aTypeID)
                        formatTableBy(desc,['compiler','version'],['core'],coreSection,names,cols,vals)
               else:
@@ -602,7 +603,7 @@ def addReportFor(document,runid,benchName):
                        compilerSection = Section("%s (%s)" % (compilerName,version))
                        typeSection.addSection(compilerSection)
                        cols,vals=getColNamesAndDataForCompiler(benchName,compiler,aTypeID)
-                       desc=(benchName,compiler,aTypeID,runid)
+                       desc=(benchName,compiler,aTypeID)
                        names=getTestNamesForCompiler(benchName,compiler,aTypeID)
                        formatTableBy(desc,['core'],['version','compiler'],compilerSection,names,cols,vals)
                        
@@ -626,6 +627,12 @@ Hierarchy("Matrix Operations"    ,
   [Hierarchy("Binary"),
    Hierarchy("Unary")]),
 Hierarchy("Transform"),
+Hierarchy("Stats"),
+Hierarchy("Classical ML",[
+  Hierarchy("Bayes"),
+  Hierarchy("SVM"),
+  Hierarchy("Distance"),
+  ]),
 
 ]
 
@@ -651,7 +658,7 @@ def createDoc(document,sections,benchtables):
     global processed
     for s in sections:
         if s.name in benchtables:
-           addReportFor(document,runid,s.name)
+           addReportFor(document,s.name)
            processed.append(s.name)
         else:
            section=Section(s.name)
@@ -660,7 +667,6 @@ def createDoc(document,sections,benchtables):
 
 try:
       benchtables=getBenchTables()
-      theDate = getrunIDDate(runid)
       document = Document(runidHeader)
 
       addComments(document)
@@ -671,7 +677,7 @@ try:
       document.addSection(misc)
       remaining=diff(benchtables,processed)
       for bench in remaining:
-          addReportFor(misc,runid,bench)
+          addReportFor(misc,bench)
 
       #for bench in benchtables:
       #    addReportFor(document,bench)

+ 4 - 1
Testing/runAllTests.py

@@ -30,6 +30,7 @@ def getLastRunID(c):
      return(int(result[0]))
 
 def addNewID(c,newid):
+  print("  New run ID = %d" % newid)
   c.execute(addNewIDCmd,(newid,))
   c.commit()
 
@@ -127,7 +128,7 @@ parser.add_argument('-p', nargs='?',type = str, default="FVP",help="Platform for
 
 parser.add_argument('-db', nargs='?',type = str,help="Benchmark database")
 parser.add_argument('-regdb', nargs='?',type = str,help="Regression database")
-parser.add_argument('-sqlite', nargs='?',default="/usr/bin/sqlite3",type = str,help="Regression database")
+parser.add_argument('-sqlite', nargs='?',default="/usr/bin/sqlite3",type = str,help="sqlite executable")
 
 parser.add_argument('-debug', action='store_true', help="Debug mode")
 parser.add_argument('-keep', action='store_true', help="Keep build folder")
@@ -150,6 +151,7 @@ if args.db is not None:
    try:
       currentID = getLastRunID(conn)
       benchID = currentID + 1 
+      print("Bench db")
       addNewID(conn,benchID)
    finally:
      conn.close()
@@ -162,6 +164,7 @@ if args.regdb is not None:
    try:
       currentID = getLastRunID(conn)
       regID = currentID + 1 
+      print("Regression db")
       addNewID(conn,regID)
    finally:
      conn.close()