Browse Source

Added window functions for use with Fourier transforms.

Regular functions for use with tone detection and noise estimation.
Flat-top windows for estimation of tone amplitudes.

Parameters of the windows are given.

Kaiser window missing (Bessel function not available in the library).

No f16 implementation since it is not accurate enough. It is better
to compute a f32 window and convert to f16 after.
Christophe Favergeon 3 years ago
parent
commit
f757add3bb
100 changed files with 18034 additions and 19 deletions
  1. 7 0
      Include/arm_math.h
  2. 4 5
      Include/dsp/basic_math_functions_f16.h
  3. 5 0
      Include/dsp/fast_math_functions.h
  4. 812 0
      Include/dsp/window_functions.h
  5. 1255 0
      PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_window.c
  6. 304 0
      PythonWrapper/examples/example_1_10.py
  7. 5 0
      Source/CMakeLists.txt
  8. 2 1
      Source/Makefile
  9. 52 0
      Source/WindowFunctions/Config.cmake
  10. 67 0
      Source/WindowFunctions/WindowFunctions.c
  11. 93 0
      Source/WindowFunctions/arm_bartlett_f32.c
  12. 89 0
      Source/WindowFunctions/arm_bartlett_f64.c
  13. 93 0
      Source/WindowFunctions/arm_blackman_harris_92db_f32.c
  14. 89 0
      Source/WindowFunctions/arm_blackman_harris_92db_f64.c
  15. 90 0
      Source/WindowFunctions/arm_hamming_f32.c
  16. 87 0
      Source/WindowFunctions/arm_hamming_f64.c
  17. 92 0
      Source/WindowFunctions/arm_hanning_f32.c
  18. 88 0
      Source/WindowFunctions/arm_hanning_f64.c
  19. 112 0
      Source/WindowFunctions/arm_hft116d_f32.c
  20. 108 0
      Source/WindowFunctions/arm_hft116d_f64.c
  21. 112 0
      Source/WindowFunctions/arm_hft144d_f32.c
  22. 108 0
      Source/WindowFunctions/arm_hft144d_f64.c
  23. 113 0
      Source/WindowFunctions/arm_hft169d_f32.c
  24. 109 0
      Source/WindowFunctions/arm_hft169d_f64.c
  25. 114 0
      Source/WindowFunctions/arm_hft196d_f32.c
  26. 110 0
      Source/WindowFunctions/arm_hft196d_f64.c
  27. 114 0
      Source/WindowFunctions/arm_hft223d_f32.c
  28. 111 0
      Source/WindowFunctions/arm_hft223d_f64.c
  29. 116 0
      Source/WindowFunctions/arm_hft248d_f32.c
  30. 112 0
      Source/WindowFunctions/arm_hft248d_f64.c
  31. 111 0
      Source/WindowFunctions/arm_hft90d_f32.c
  32. 118 0
      Source/WindowFunctions/arm_hft90d_f64.c
  33. 111 0
      Source/WindowFunctions/arm_hft95_f32.c
  34. 107 0
      Source/WindowFunctions/arm_hft95_f64.c
  35. 91 0
      Source/WindowFunctions/arm_nuttall3_f32.c
  36. 88 0
      Source/WindowFunctions/arm_nuttall3_f64.c
  37. 93 0
      Source/WindowFunctions/arm_nuttall3a_f32.c
  38. 89 0
      Source/WindowFunctions/arm_nuttall3a_f64.c
  39. 93 0
      Source/WindowFunctions/arm_nuttall3b_f32.c
  40. 89 0
      Source/WindowFunctions/arm_nuttall3b_f64.c
  41. 93 0
      Source/WindowFunctions/arm_nuttall4_f32.c
  42. 89 0
      Source/WindowFunctions/arm_nuttall4_f64.c
  43. 94 0
      Source/WindowFunctions/arm_nuttall4a_f32.c
  44. 90 0
      Source/WindowFunctions/arm_nuttall4a_f64.c
  45. 94 0
      Source/WindowFunctions/arm_nuttall4b_f32.c
  46. 90 0
      Source/WindowFunctions/arm_nuttall4b_f64.c
  47. 93 0
      Source/WindowFunctions/arm_nuttall4c_f32.c
  48. 89 0
      Source/WindowFunctions/arm_nuttall4c_f64.c
  49. 90 0
      Source/WindowFunctions/arm_welch_f32.c
  50. 95 0
      Source/WindowFunctions/arm_welch_f64.c
  51. 19 0
      Testing/Include/Tests/WindowTestsF32.h
  52. 19 0
      Testing/Include/Tests/WindowTestsF64.h
  53. 217 0
      Testing/PatternGeneration/Window.py
  54. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefBartlett_2_f32.txt
  55. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefBlackman_harris_92db_10_f32.txt
  56. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHamming_3_f32.txt
  57. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHanning_4_f32.txt
  58. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft116d_15_f32.txt
  59. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft144d_16_f32.txt
  60. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft169d_17_f32.txt
  61. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft196d_18_f32.txt
  62. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft223d_19_f32.txt
  63. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft248d_20_f32.txt
  64. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft90d_13_f32.txt
  65. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefHft95_14_f32.txt
  66. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall3_5_f32.txt
  67. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall3a_7_f32.txt
  68. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall3b_8_f32.txt
  69. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall4_6_f32.txt
  70. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall4a_9_f32.txt
  71. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall4b_11_f32.txt
  72. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefNuttall4c_12_f32.txt
  73. 258 0
      Testing/Patterns/DSP/Window/WindowF32/RefWelch_1_f32.txt
  74. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefBartlett_2_f64.txt
  75. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefBlackman_harris_92db_10_f64.txt
  76. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHamming_3_f64.txt
  77. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHanning_4_f64.txt
  78. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft116d_15_f64.txt
  79. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft144d_16_f64.txt
  80. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft169d_17_f64.txt
  81. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft196d_18_f64.txt
  82. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft223d_19_f64.txt
  83. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft248d_20_f64.txt
  84. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft90d_13_f64.txt
  85. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefHft95_14_f64.txt
  86. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall3_5_f64.txt
  87. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall3a_7_f64.txt
  88. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall3b_8_f64.txt
  89. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall4_6_f64.txt
  90. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall4a_9_f64.txt
  91. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall4b_11_f64.txt
  92. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefNuttall4c_12_f64.txt
  93. 258 0
      Testing/Patterns/DSP/Window/WindowF64/RefWelch_1_f64.txt
  94. 381 0
      Testing/Source/Tests/WindowTestsF32.cpp
  95. 381 0
      Testing/Source/Tests/WindowTestsF64.cpp
  96. 193 0
      Testing/cmsis_build/RTE/Device/SSE-310-MPS3/corstone310_mps3_s.ld
  97. 1 1
      Testing/cmsis_build/dsp.clayer.yml
  98. 15 10
      Testing/cmsis_build/runall.py
  99. 4 1
      Testing/cmsis_build/test.Release+VHT-Corstone-300.cprj
  100. 4 1
      Testing/cmsis_build/test.Release+VHT-Corstone-310.cprj

+ 7 - 0
Include/arm_math.h

@@ -47,6 +47,7 @@
    * - \ref groupBayes "Bayes classifier functions"
    * - \ref groupDistance "Distance functions"
    * - \ref groupQuaternionMath "Quaternion functions"
+   * - \ref groupWindow "Window functions"
    *
    * The library has generally separate functions for operating on 8-bit integers, 16-bit integers,
    * 32-bit integer and 32-bit floating-point values and 64-bit floating-point values.
@@ -63,6 +64,12 @@
    * Compute Graph. The documentation for this project is available
    * on the <a href="https://github.com/ARM-software/CMSIS-DSP/blob/main/ComputeGraph/README.md">CMSIS-DSP github repository.</a> 
    *
+   * A Python wrapper is also available with a Python API as close as possible
+   * to the C one. It can be used to start developing and testing an algorithm with NumPy and
+   * SciPy before writing the C version. Is is available on <a href="https://pypi.org/project/cmsisdsp/">PyPI.org</a>.
+   * It can be installed with : pip install cmsisdsp
+   * 
+   * 
    * \section using Using the Library
    *
    * The library is released in source form. It is strongly advised to compile the library using -Ofast to

+ 4 - 5
Include/dsp/basic_math_functions_f16.h

@@ -27,17 +27,16 @@
 #ifndef _BASIC_MATH_FUNCTIONS_F16_H_
 #define _BASIC_MATH_FUNCTIONS_F16_H_
 
-#ifdef   __cplusplus
-extern "C"
-{
-#endif
-
 #include "arm_math_types_f16.h"
 #include "arm_math_memory.h"
 
 #include "dsp/none.h"
 #include "dsp/utils.h"
 
+#ifdef   __cplusplus
+extern "C"
+{
+#endif
 
 #if defined(ARM_FLOAT16_SUPPORTED)
 

+ 5 - 0
Include/dsp/fast_math_functions.h

@@ -54,6 +54,11 @@ extern "C"
   #define PI               3.14159265358979f
 #endif
 
+#ifndef PI_F64 
+  #define PI_F64 3.14159265358979323846
+#endif
+
+
 
 /**
  * @defgroup groupFastMath Fast Math Functions

+ 812 - 0
Include/dsp/window_functions.h

@@ -0,0 +1,812 @@
+/******************************************************************************
+ * @file     window_functions.h
+ * @brief    Public header file for CMSIS DSP Library
+ * @version  v1.15.0
+ * @date     15 December 2022
+ * Target Processor: Cortex-M and Cortex-A cores
+ ******************************************************************************/
+/*
+ * Copyright (c) 2010-2022 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.
+ */
+
+ 
+#ifndef _WINDOW_FUNCTIONS_H_
+#define _WINDOW_FUNCTIONS_H_
+
+#include "arm_math_types.h"
+#include "arm_math_memory.h"
+
+#include "dsp/none.h"
+#include "dsp/utils.h"
+
+
+#ifdef   __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @defgroup groupWindow Window Functions
+ */
+
+ /**
+   * @brief Welch window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           21.3 dB  |
+   * | Normalized equivalent noise bandwidth |          1.2 bins  |
+   * | Flatness                              |        -2.2248 dB  |
+   * | Recommended overlap                   |            29.3 %  |
+   *
+   */
+  void arm_welch_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Welch window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           21.3 dB  |
+   * | Normalized equivalent noise bandwidth |          1.2 bins  |
+   * | Flatness                              |        -2.2248 dB  |
+   * | Recommended overlap                   |            29.3 %  |
+   *
+   *
+   */
+  void arm_welch_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Bartlett window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           26.5 dB  |
+   * | Normalized equivalent noise bandwidth |       1.3333 bins  |
+   * | Flatness                              |        -1.8242 dB  |
+   * | Recommended overlap                   |            50.0 %  |
+   *
+   */
+  void arm_bartlett_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Bartlett window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           26.5 dB  |
+   * | Normalized equivalent noise bandwidth |       1.3333 bins  |
+   * | Flatness                              |        -1.8242 dB  |
+   * | Recommended overlap                   |            50.0 %  |
+   *
+   *
+   */
+  void arm_bartlett_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hamming window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           42.7 dB  |
+   * | Normalized equivalent noise bandwidth |       1.3628 bins  |
+   * | Flatness                              |        -1.7514 dB  |
+   * | Recommended overlap                   |              50 %  |
+   *
+   */
+  void arm_hamming_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hamming window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           42.7 dB  |
+   * | Normalized equivalent noise bandwidth |       1.3628 bins  |
+   * | Flatness                              |        -1.7514 dB  |
+   * | Recommended overlap                   |              50 %  |
+   *
+   *
+   */
+  void arm_hamming_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hanning window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           31.5 dB  |
+   * | Normalized equivalent noise bandwidth |          1.5 bins  |
+   * | Flatness                              |        -1.4236 dB  |
+   * | Recommended overlap                   |              50 %  |
+   *
+   */
+  void arm_hanning_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hanning window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           31.5 dB  |
+   * | Normalized equivalent noise bandwidth |          1.5 bins  |
+   * | Flatness                              |        -1.4236 dB  |
+   * | Recommended overlap                   |              50 %  |
+   *
+   *
+   */
+  void arm_hanning_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall3 window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           46.7 dB  |
+   * | Normalized equivalent noise bandwidth |       1.9444 bins  |
+   * | Flatness                              |         -0.863 dB  |
+   * | Recommended overlap                   |            64.7 %  |
+   *
+   */
+  void arm_nuttall3_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall3 window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           46.7 dB  |
+   * | Normalized equivalent noise bandwidth |       1.9444 bins  |
+   * | Flatness                              |         -0.863 dB  |
+   * | Recommended overlap                   |            64.7 %  |
+   *
+   *
+   */
+  void arm_nuttall3_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall4 window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           60.9 dB  |
+   * | Normalized equivalent noise bandwidth |         2.31 bins  |
+   * | Flatness                              |        -0.6184 dB  |
+   * | Recommended overlap                   |            70.5 %  |
+   *
+   */
+  void arm_nuttall4_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall4 window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           60.9 dB  |
+   * | Normalized equivalent noise bandwidth |         2.31 bins  |
+   * | Flatness                              |        -0.6184 dB  |
+   * | Recommended overlap                   |            70.5 %  |
+   *
+   *
+   */
+  void arm_nuttall4_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall3a window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           64.2 dB  |
+   * | Normalized equivalent noise bandwidth |       1.7721 bins  |
+   * | Flatness                              |        -1.0453 dB  |
+   * | Recommended overlap                   |            61.2 %  |
+   *
+   */
+  void arm_nuttall3a_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall3a window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           64.2 dB  |
+   * | Normalized equivalent noise bandwidth |       1.7721 bins  |
+   * | Flatness                              |        -1.0453 dB  |
+   * | Recommended overlap                   |            61.2 %  |
+   *
+   *
+   */
+  void arm_nuttall3a_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall3b window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           71.5 dB  |
+   * | Normalized equivalent noise bandwidth |       1.7037 bins  |
+   * | Flatness                              |        -1.1352 dB  |
+   * | Recommended overlap                   |            59.8 %  |
+   *
+   */
+  void arm_nuttall3b_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall3b window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           71.5 dB  |
+   * | Normalized equivalent noise bandwidth |       1.7037 bins  |
+   * | Flatness                              |        -1.1352 dB  |
+   * | Recommended overlap                   |            59.8 %  |
+   *
+   *
+   */
+  void arm_nuttall3b_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall4a window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           82.6 dB  |
+   * | Normalized equivalent noise bandwidth |       2.1253 bins  |
+   * | Flatness                              |        -0.7321 dB  |
+   * | Recommended overlap                   |            68.0 %  |
+   *
+   */
+  void arm_nuttall4a_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall4a window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           82.6 dB  |
+   * | Normalized equivalent noise bandwidth |       2.1253 bins  |
+   * | Flatness                              |        -0.7321 dB  |
+   * | Recommended overlap                   |            68.0 %  |
+   *
+   *
+   */
+  void arm_nuttall4a_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief 92 db blackman harris window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           92.0 dB  |
+   * | Normalized equivalent noise bandwidth |       2.0044 bins  |
+   * | Flatness                              |        -0.8256 dB  |
+   * | Recommended overlap                   |            66.1 %  |
+   *
+   */
+  void arm_blackman_harris_92db_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief 92 db blackman harris window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           92.0 dB  |
+   * | Normalized equivalent noise bandwidth |       2.0044 bins  |
+   * | Flatness                              |        -0.8256 dB  |
+   * | Recommended overlap                   |            66.1 %  |
+   *
+   *
+   */
+  void arm_blackman_harris_92db_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall4b window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           93.3 dB  |
+   * | Normalized equivalent noise bandwidth |       2.0212 bins  |
+   * | Flatness                              |        -0.8118 dB  |
+   * | Recommended overlap                   |            66.3 %  |
+   *
+   */
+  void arm_nuttall4b_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall4b window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           93.3 dB  |
+   * | Normalized equivalent noise bandwidth |       2.0212 bins  |
+   * | Flatness                              |        -0.8118 dB  |
+   * | Recommended overlap                   |            66.3 %  |
+   *
+   *
+   */
+  void arm_nuttall4b_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Nuttall4c window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           98.1 dB  |
+   * | Normalized equivalent noise bandwidth |       1.9761 bins  |
+   * | Flatness                              |        -0.8506 dB  |
+   * | Recommended overlap                   |            65.6 %  |
+   *
+   */
+  void arm_nuttall4c_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Nuttall4c window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           98.1 dB  |
+   * | Normalized equivalent noise bandwidth |       1.9761 bins  |
+   * | Flatness                              |        -0.8506 dB  |
+   * | Recommended overlap                   |            65.6 %  |
+   *
+   *
+   */
+  void arm_nuttall4c_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft90d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           90.2 dB  |
+   * | Normalized equivalent noise bandwidth |       3.8832 bins  |
+   * | Flatness                              |        -0.0039 dB  |
+   * | Recommended overlap                   |            76.0 %  |
+   *
+   */
+  void arm_hft90d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft90d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           90.2 dB  |
+   * | Normalized equivalent noise bandwidth |       3.8832 bins  |
+   * | Flatness                              |        -0.0039 dB  |
+   * | Recommended overlap                   |            76.0 %  |
+   *
+   *
+   */
+  void arm_hft90d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft95 window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           95.0 dB  |
+   * | Normalized equivalent noise bandwidth |       3.8112 bins  |
+   * | Flatness                              |         0.0044 dB  |
+   * | Recommended overlap                   |            75.6 %  |
+   *
+   */
+  void arm_hft95_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft95 window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |           95.0 dB  |
+   * | Normalized equivalent noise bandwidth |       3.8112 bins  |
+   * | Flatness                              |         0.0044 dB  |
+   * | Recommended overlap                   |            75.6 %  |
+   *
+   *
+   */
+  void arm_hft95_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft116d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          116.8 dB  |
+   * | Normalized equivalent noise bandwidth |       4.2186 bins  |
+   * | Flatness                              |        -0.0028 dB  |
+   * | Recommended overlap                   |            78.2 %  |
+   *
+   */
+  void arm_hft116d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft116d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          116.8 dB  |
+   * | Normalized equivalent noise bandwidth |       4.2186 bins  |
+   * | Flatness                              |        -0.0028 dB  |
+   * | Recommended overlap                   |            78.2 %  |
+   *
+   *
+   */
+  void arm_hft116d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft144d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          144.1 dB  |
+   * | Normalized equivalent noise bandwidth |       4.5386 bins  |
+   * | Flatness                              |         0.0021 dB  |
+   * | Recommended overlap                   |            79.9 %  |
+   *
+   */
+  void arm_hft144d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft144d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          144.1 dB  |
+   * | Normalized equivalent noise bandwidth |       4.5386 bins  |
+   * | Flatness                              |         0.0021 dB  |
+   * | Recommended overlap                   |            79.9 %  |
+   *
+   *
+   */
+  void arm_hft144d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft169d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          169.5 dB  |
+   * | Normalized equivalent noise bandwidth |       4.8347 bins  |
+   * | Flatness                              |         0.0017 dB  |
+   * | Recommended overlap                   |            81.2 %  |
+   *
+   */
+  void arm_hft169d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft169d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          169.5 dB  |
+   * | Normalized equivalent noise bandwidth |       4.8347 bins  |
+   * | Flatness                              |         0.0017 dB  |
+   * | Recommended overlap                   |            81.2 %  |
+   *
+   *
+   */
+  void arm_hft169d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft196d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          196.2 dB  |
+   * | Normalized equivalent noise bandwidth |       5.1134 bins  |
+   * | Flatness                              |         0.0013 dB  |
+   * | Recommended overlap                   |            82.3 %  |
+   *
+   */
+  void arm_hft196d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft196d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          196.2 dB  |
+   * | Normalized equivalent noise bandwidth |       5.1134 bins  |
+   * | Flatness                              |         0.0013 dB  |
+   * | Recommended overlap                   |            82.3 %  |
+   *
+   *
+   */
+  void arm_hft196d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft223d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          223.0 dB  |
+   * | Normalized equivalent noise bandwidth |       5.3888 bins  |
+   * | Flatness                              |         0.0011 dB  |
+   * | Recommended overlap                   |            83.3 %  |
+   *
+   */
+  void arm_hft223d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft223d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          223.0 dB  |
+   * | Normalized equivalent noise bandwidth |       5.3888 bins  |
+   * | Flatness                              |         0.0011 dB  |
+   * | Recommended overlap                   |            83.3 %  |
+   *
+   *
+   */
+  void arm_hft223d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+ /**
+   * @brief Hft248d window (double).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          248.4 dB  |
+   * | Normalized equivalent noise bandwidth |       5.6512 bins  |
+   * | Flatness                              |         0.0009 dB  |
+   * | Recommended overlap                   |            84.1 %  |
+   *
+   */
+  void arm_hft248d_f64(
+        float64_t * pDst,
+        uint32_t blockSize);
+
+ /**
+   * @brief Hft248d window (float).
+   * @param[out] pDst       points to the output generated window
+   * @param[in]  blockSize  number of samples in the window
+   *
+   * @par Parameters of the window
+   * 
+   * | Parameter                             | Value              |
+   * | ------------------------------------: | -----------------: |
+   * | Peak sidelobe level                   |          248.4 dB  |
+   * | Normalized equivalent noise bandwidth |       5.6512 bins  |
+   * | Flatness                              |         0.0009 dB  |
+   * | Recommended overlap                   |            84.1 %  |
+   *
+   *
+   */
+  void arm_hft248d_f32(
+        float32_t * pDst,
+        uint32_t blockSize);
+
+
+#ifdef   __cplusplus
+}
+#endif
+
+#endif /* ifndef _BASIC_MATH_FUNCTIONS_H_ */

+ 1255 - 0
PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_window.c

@@ -0,0 +1,1255 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Python Wrapper
+ * Title:        cmsismodule.h
+ * Description:  C code for the CMSIS-DSP Python wrapper
+ *
+ * $Date:        15 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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.
+ */
+
+#define MODNAME "cmsisdsp_window"
+#define MODINITNAME cmsisdsp_window
+
+#include "cmsisdsp_module.h"
+
+
+NUMPYVECTORFROMBUFFER(f32,float32_t,NPY_FLOAT);
+
+
+void typeRegistration(PyObject *module) {
+
+ 
+}
+
+
+static PyObject *
+cmsis_arm_welch_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_welch_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_welch_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_welch_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_bartlett_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_bartlett_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_bartlett_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_bartlett_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hamming_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hamming_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hamming_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hamming_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hanning_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hanning_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hanning_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hanning_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall3_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall3_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall3_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall3_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall4_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall4_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall4_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall4_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall3a_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall3a_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall3a_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall3a_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall3b_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall3b_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall3b_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall3b_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall4a_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall4a_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall4a_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall4a_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_blackman_harris_92db_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_blackman_harris_92db_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_blackman_harris_92db_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_blackman_harris_92db_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall4b_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall4b_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall4b_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall4b_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_nuttall4c_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_nuttall4c_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_nuttall4c_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_nuttall4c_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft90d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft90d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft90d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft90d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft95_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft95_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft95_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft95_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft116d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft116d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft116d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft116d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft144d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft144d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft144d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft144d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft169d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft169d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft169d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft169d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft196d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft196d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft196d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft196d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft223d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft223d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft223d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft223d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyObject *
+cmsis_arm_hft248d_f32(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float32_t)*nb);
+
+
+    arm_hft248d_f32(pDst,nb);
+    FLOATARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+static PyObject *
+cmsis_arm_hft248d_f64(PyObject *obj, PyObject *args)
+{
+
+  
+  float32_t *pDst=NULL; // output
+  int nb; // input
+
+  if (PyArg_ParseTuple(args,"i",&nb))
+  {
+
+    pDst=PyMem_Malloc(sizeof(float64_t)*nb);
+
+
+    arm_hft248d_f64(pDst,nb);
+    FLOAT64ARRAY1(pDstOBJ,nb,pDst);
+
+    PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
+
+    Py_DECREF(pDstOBJ);
+    return(pythonResult);
+
+  }
+  return(NULL);
+}
+
+
+static PyMethodDef CMSISDSPMethods[] = {
+
+
+
+
+
+
+{"arm_welch_f32" ,  cmsis_arm_welch_f32, METH_VARARGS,""},
+{"arm_welch_f64" ,  cmsis_arm_welch_f64, METH_VARARGS,""},
+
+
+{"arm_bartlett_f32" ,  cmsis_arm_bartlett_f32, METH_VARARGS,""},
+{"arm_bartlett_f64" ,  cmsis_arm_bartlett_f64, METH_VARARGS,""},
+
+
+{"arm_hamming_f32" ,  cmsis_arm_hamming_f32, METH_VARARGS,""},
+{"arm_hamming_f64" ,  cmsis_arm_hamming_f64, METH_VARARGS,""},
+
+
+{"arm_hanning_f32" ,  cmsis_arm_hanning_f32, METH_VARARGS,""},
+{"arm_hanning_f64" ,  cmsis_arm_hanning_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall3_f32" ,  cmsis_arm_nuttall3_f32, METH_VARARGS,""},
+{"arm_nuttall3_f64" ,  cmsis_arm_nuttall3_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall4_f32" ,  cmsis_arm_nuttall4_f32, METH_VARARGS,""},
+{"arm_nuttall4_f64" ,  cmsis_arm_nuttall4_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall3a_f32" ,  cmsis_arm_nuttall3a_f32, METH_VARARGS,""},
+{"arm_nuttall3a_f64" ,  cmsis_arm_nuttall3a_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall3b_f32" ,  cmsis_arm_nuttall3b_f32, METH_VARARGS,""},
+{"arm_nuttall3b_f64" ,  cmsis_arm_nuttall3b_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall4a_f32" ,  cmsis_arm_nuttall4a_f32, METH_VARARGS,""},
+{"arm_nuttall4a_f64" ,  cmsis_arm_nuttall4a_f64, METH_VARARGS,""},
+
+
+{"arm_blackman_harris_92db_f32" ,  cmsis_arm_blackman_harris_92db_f32, METH_VARARGS,""},
+{"arm_blackman_harris_92db_f64" ,  cmsis_arm_blackman_harris_92db_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall4b_f32" ,  cmsis_arm_nuttall4b_f32, METH_VARARGS,""},
+{"arm_nuttall4b_f64" ,  cmsis_arm_nuttall4b_f64, METH_VARARGS,""},
+
+
+{"arm_nuttall4c_f32" ,  cmsis_arm_nuttall4c_f32, METH_VARARGS,""},
+{"arm_nuttall4c_f64" ,  cmsis_arm_nuttall4c_f64, METH_VARARGS,""},
+
+
+{"arm_hft90d_f32" ,  cmsis_arm_hft90d_f32, METH_VARARGS,""},
+{"arm_hft90d_f64" ,  cmsis_arm_hft90d_f64, METH_VARARGS,""},
+
+
+{"arm_hft95_f32" ,  cmsis_arm_hft95_f32, METH_VARARGS,""},
+{"arm_hft95_f64" ,  cmsis_arm_hft95_f64, METH_VARARGS,""},
+
+
+{"arm_hft116d_f32" ,  cmsis_arm_hft116d_f32, METH_VARARGS,""},
+{"arm_hft116d_f64" ,  cmsis_arm_hft116d_f64, METH_VARARGS,""},
+
+
+{"arm_hft144d_f32" ,  cmsis_arm_hft144d_f32, METH_VARARGS,""},
+{"arm_hft144d_f64" ,  cmsis_arm_hft144d_f64, METH_VARARGS,""},
+
+
+{"arm_hft169d_f32" ,  cmsis_arm_hft169d_f32, METH_VARARGS,""},
+{"arm_hft169d_f64" ,  cmsis_arm_hft169d_f64, METH_VARARGS,""},
+
+
+{"arm_hft196d_f32" ,  cmsis_arm_hft196d_f32, METH_VARARGS,""},
+{"arm_hft196d_f64" ,  cmsis_arm_hft196d_f64, METH_VARARGS,""},
+
+
+{"arm_hft223d_f32" ,  cmsis_arm_hft223d_f32, METH_VARARGS,""},
+{"arm_hft223d_f64" ,  cmsis_arm_hft223d_f64, METH_VARARGS,""},
+
+
+{"arm_hft248d_f32" ,  cmsis_arm_hft248d_f32, METH_VARARGS,""},
+{"arm_hft248d_f64" ,  cmsis_arm_hft248d_f64, METH_VARARGS,""},
+
+   
+    {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL},
+    {NULL, NULL, 0, NULL}        /* Sentinel */
+};
+
+#ifdef IS_PY3K
+static int cmsisdsp_traverse(PyObject *m, visitproc visit, void *arg) {
+    Py_VISIT(GETSTATE(m)->error);
+    return 0;
+}
+
+static int cmsisdsp_clear(PyObject *m) {
+    Py_CLEAR(GETSTATE(m)->error);
+    return 0;
+}
+
+
+static struct PyModuleDef moduledef = {
+        PyModuleDef_HEAD_INIT,
+        MODNAME,
+        NULL,
+        sizeof(struct module_state),
+        CMSISDSPMethods,
+        NULL,
+        cmsisdsp_traverse,
+        cmsisdsp_clear,
+        NULL
+};
+
+#define INITERROR return NULL
+
+PyMODINIT_FUNC
+CAT(PyInit_,MODINITNAME)(void)
+
+
+#else
+#define INITERROR return
+
+void CAT(init,MODINITNAME)(void)
+#endif
+{
+    import_array();
+
+  #ifdef IS_PY3K
+    PyObject *module = PyModule_Create(&moduledef);
+  #else
+    PyObject *module = Py_InitModule(MODNAME, CMSISDSPMethods);
+  #endif
+
+  if (module == NULL)
+      INITERROR;
+  struct module_state *st = GETSTATE(module);
+  
+  st->error = PyErr_NewException(MODNAME".Error", NULL, NULL);
+  if (st->error == NULL) {
+      Py_DECREF(module);
+      INITERROR;
+  }
+
+
+  typeRegistration(module);
+
+  #ifdef IS_PY3K
+    return module;
+  #endif
+}

+ 304 - 0
PythonWrapper/examples/example_1_10.py

@@ -0,0 +1,304 @@
+# Bug corrections for version 1.9
+import cmsisdsp as dsp
+import cmsisdsp.fixedpoint as f
+import numpy as np
+import math
+import colorama
+from colorama import init,Fore, Back, Style
+from numpy.testing import assert_allclose
+import matplotlib.pyplot as plt
+from scipy import signal
+import scipy.signal.windows as win
+
+init()
+
+def printTitle(s):
+    print("\n" + Fore.GREEN + Style.BRIGHT +  s + Style.RESET_ALL)
+
+def printSubTitle(s):
+    print("\n" + Style.BRIGHT + s + Style.RESET_ALL)
+
+def genwelch(n):
+    ik = 2*np.array(range(n)) / n
+    w = ik -1;
+    w = 1 - w**2 
+    if len(w)!=n:
+        print("Error with window len in Welch")
+        exit(1)
+    return(w)
+
+
+def genbartlett(n):
+    w = win.bartlett(n,sym=False)
+    return(w)
+
+def genhamming(n):
+    w = win.hamming(n,sym=False)
+    return(w)
+
+def genhanning(n):
+    w = win.hann(n,sym=False)
+    return(w)
+
+def gennuttall3(n):
+    w = win.general_cosine(n,
+        [0.375, 0.5 , 0.125 ],sym=False)
+    return(w)
+
+def gennuttall4(n):
+    w = win.general_cosine(n,
+        [0.3125, 0.46875,0.1875 , 0.03125],sym=False)
+    return(w)
+
+def gennuttall3a(n):
+    w = win.general_cosine(n,
+        [0.40897, 0.5 ,0.09103],sym=False)
+    return(w)
+
+def gennuttall3b(n):
+    w = win.general_cosine(n,
+        [0.4243801, 0.4973406 , 0.0782793 ],sym=False)
+    return(w)
+
+def gennuttall4a(n):
+    w = win.general_cosine(n,
+        [0.338946, 0.481973,0.161054 , 0.018027 ],sym=False)
+    return(w)
+
+def genblackman_harris_92db(n):
+    w = win.blackmanharris(n,sym=False)
+    return(w)
+
+def gennuttall4b(n):
+    w = win.general_cosine(n,
+        [0.355768, 0.487396 ,
+        0.144232 , 0.012604 ],sym=False)
+    return(w)
+
+def gennuttall4c(n):
+    w = win.nuttall(n,sym=False)
+    return(w)
+
+def genhft90d(n):
+    w = win.general_cosine(n,
+        [1 ,1.942604 ,
+         1.340318 , 0.440811 , 0.043097 ],sym=False)
+    return(w)
+
+def genhft95(n):
+    w = win.general_cosine(n,
+        [1, 1.9383379 ,
+         1.3045202 ,0.4028270 ,0.0350665 ]
+ ,sym=False)
+    return(w)
+
+def genhft116d(n):
+    w = win.general_cosine(n,
+        [1, 1.9575375 ,
+         1.4780705 ,0.6367431 ,
+         0.1228389 ,0.0066288 ]
+ ,sym=False)
+    return(w)
+
+def genhft144d(n):
+    w = win.general_cosine(n,
+        [1 ,1.96760033 ,
+         1.57983607 , 0.81123644 ,
+         0.22583558 ,0.02773848 , 0.00090360  ]
+ ,sym=False)
+    return(w)
+
+def genhft169d(n):
+    w = win.general_cosine(n,
+        [1, 1.97441843 ,
+         1.65409889 , 0.95788187 ,
+         0.33673420 , 0.06364622 ,
+         0.00521942 ,0.00010599   ]
+ ,sym=False)
+    return(w)
+
+def genhft196d(n):
+    w = win.general_cosine(n,
+        [1, 1.979280420 ,
+         1.710288951 , 1.081629853 ,
+         0.448734314 , 0.112376628 ,
+         0.015122992 ,0.000871252 , 0.000011896 ]
+ ,sym=False)
+    return(w)
+
+def genhft223d(n):
+    w = win.general_cosine(n,
+        [1, 1.98298997309,
+         1.75556083063 , 1.19037717712 ,
+         0.56155440797 , 0.17296769663 ,
+         0.03233247087 ,0.00324954578 ,
+         0.00013801040 ,0.00000132725 ]
+ ,sym=False)
+    return(w)
+
+def genhft248d(n):
+    w = win.general_cosine(n,
+        [1, 1.985844164102 ,
+         1.791176438506 , 1.282075284005 ,
+         0.667777530266 , 0.240160796576 ,
+         0.056656381764 ,0.008134974479 ,
+         0.000624544650 ,0.000019808998 ,
+         0.000000132974 ]
+ ,sym=False)
+    return(w)
+
+printTitle("Regular windows")
+printSubTitle("Welch")
+ref = genwelch(128)
+wf32 = dsp.arm_welch_f32(128)
+assert_allclose(ref,wf32)
+
+wf64 = dsp.arm_welch_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Bartlett")
+ref = genbartlett(128)
+wf32 = dsp.arm_bartlett_f32(128)
+assert_allclose(ref,wf32)
+
+wf64 = dsp.arm_bartlett_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Hamming")
+ref = genhamming(128)
+wf32 = dsp.arm_hamming_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hamming_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Hanning")
+ref = genhanning(128)
+wf32 = dsp.arm_hanning_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hanning_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall3")
+ref = gennuttall3(128)
+wf32 = dsp.arm_nuttall3_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall3_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall4")
+ref = gennuttall4(128)
+wf32 = dsp.arm_nuttall4_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall4_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall3a")
+ref = gennuttall3a(128)
+wf32 = dsp.arm_nuttall3a_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall3a_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall3b")
+ref = gennuttall3b(128)
+wf32 = dsp.arm_nuttall3b_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall3b_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall4a")
+ref = gennuttall4a(128)
+wf32 = dsp.arm_nuttall4a_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall4a_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Blackman Harris")
+ref = genblackman_harris_92db(128)
+wf32 = dsp.arm_blackman_harris_92db_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_blackman_harris_92db_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall4b")
+ref = gennuttall4b(128)
+wf32 = dsp.arm_nuttall4b_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall4b_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("Nuttall4c")
+ref = gennuttall4c(128)
+wf32 = dsp.arm_nuttall4c_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_nuttall4c_f64(128)
+assert_allclose(ref,wf64)
+
+printTitle("Flat-top windows")
+
+printSubTitle("HFT90D")
+ref = genhft90d(128)
+wf32 = dsp.arm_hft90d_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft90d_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("HFT95")
+ref = genhft95(128)
+wf32 = dsp.arm_hft95_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft95_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("HFT116D")
+ref = genhft116d(128)
+wf32 = dsp.arm_hft116d_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft116d_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("HFT144D")
+ref = genhft144d(128)
+wf32 = dsp.arm_hft144d_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft144d_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("HFT196D")
+ref = genhft196d(128)
+wf32 = dsp.arm_hft196d_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft196d_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("HFT223D")
+ref = genhft223d(128)
+wf32 = dsp.arm_hft223d_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft223d_f64(128)
+assert_allclose(ref,wf64)
+
+printSubTitle("HFT248D")
+ref = genhft248d(128)
+wf32 = dsp.arm_hft248d_f32(128)
+assert_allclose(ref,wf32,rtol=1e-6,atol=2e-6)
+
+wf64 = dsp.arm_hft248d_f64(128)
+assert_allclose(ref,wf64,rtol=3e-15,atol=3e-15)
+

+ 5 - 0
Source/CMakeLists.txt

@@ -37,6 +37,7 @@ option(BAYES                "Bayesian Estimators"               ON)
 option(DISTANCE             "Distance Functions"                ON)
 option(INTERPOLATION        "Interpolation Functions"                ON)
 option(QUATERNIONMATH       "Quaternion Math Functions"                ON)
+option(WINDOW               "Window Functions"                ON)
 
 # When OFF it is the default behavior : all tables are included.
 option(CONFIGTABLE          "Configuration of table allowed"    OFF)
@@ -283,6 +284,10 @@ if (INTERPOLATION)
   include(InterpolationFunctions/Config.cmake)
 endif()
 
+if (WINDOW)
+  include(WindowFunctions/Config.cmake)
+endif()
+
 ### Includes
 target_include_directories(CMSISDSP PUBLIC "${DSP}/Include")
 if (DEFINED CMSISCORE)

+ 2 - 1
Source/Makefile

@@ -46,7 +46,8 @@ SRCS := $(CMSIS_DSP)/Source/BasicMathFunctions/BasicMathFunctions.c \
  $(CMSIS_DSP)/Source/FastMathFunctions/FastMathFunctions.c \
  $(CMSIS_DSP)/Source/SupportFunctions/SupportFunctions.c \
  $(CMSIS_DSP)/Source/FilteringFunctions/FilteringFunctions.c \
- $(CMSIS_DSP)/Source/TransformFunctions/TransformFunctions.c
+ $(CMSIS_DSP)/Source/TransformFunctions/TransformFunctions.c \
+ $(CMSIS_DSP)/Source/WindowFunctions/WindowFunctions.c
 
 # Includes
 DSP_INCLUDES := $(CMSIS_DSP)/Include \

+ 52 - 0
Source/WindowFunctions/Config.cmake

@@ -0,0 +1,52 @@
+cmake_minimum_required (VERSION 3.14)
+
+
+set(SRCF64 WindowFunctions/arm_welch_f64.c
+WindowFunctions/arm_bartlett_f64.c
+WindowFunctions/arm_hamming_f64.c
+WindowFunctions/arm_hanning_f64.c
+WindowFunctions/arm_nuttall3_f64.c
+WindowFunctions/arm_nuttall4_f64.c
+WindowFunctions/arm_nuttall3a_f64.c
+WindowFunctions/arm_nuttall3b_f64.c
+WindowFunctions/arm_nuttall4a_f64.c
+WindowFunctions/arm_blackman_harris_92db_f64.c
+WindowFunctions/arm_nuttall4b_f64.c
+WindowFunctions/arm_nuttall4c_f64.c
+WindowFunctions/arm_hft90d_f64.c
+WindowFunctions/arm_hft95_f64.c
+WindowFunctions/arm_hft116d_f64.c
+WindowFunctions/arm_hft144d_f64.c
+WindowFunctions/arm_hft169d_f64.c
+WindowFunctions/arm_hft196d_f64.c
+WindowFunctions/arm_hft223d_f64.c
+WindowFunctions/arm_hft248d_f64.c
+)
+
+set(SRCF32 WindowFunctions/arm_welch_f32.c
+WindowFunctions/arm_bartlett_f32.c
+WindowFunctions/arm_hamming_f32.c
+WindowFunctions/arm_hanning_f32.c
+WindowFunctions/arm_nuttall3_f32.c
+WindowFunctions/arm_nuttall4_f32.c
+WindowFunctions/arm_nuttall3a_f32.c
+WindowFunctions/arm_nuttall3b_f32.c
+WindowFunctions/arm_nuttall4a_f32.c
+WindowFunctions/arm_blackman_harris_92db_f32.c
+WindowFunctions/arm_nuttall4b_f32.c
+WindowFunctions/arm_nuttall4c_f32.c
+WindowFunctions/arm_hft90d_f32.c
+WindowFunctions/arm_hft95_f32.c
+WindowFunctions/arm_hft116d_f32.c
+WindowFunctions/arm_hft144d_f32.c
+WindowFunctions/arm_hft169d_f32.c
+WindowFunctions/arm_hft196d_f32.c
+WindowFunctions/arm_hft223d_f32.c
+WindowFunctions/arm_hft248d_f32.c
+)
+
+
+target_sources(CMSISDSP PRIVATE ${SRCF64})
+target_sources(CMSISDSP PRIVATE ${SRCF32})
+
+

+ 67 - 0
Source/WindowFunctions/WindowFunctions.c

@@ -0,0 +1,67 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        WindowFunctions.c
+ * Description:  Windowing functions for spectral estimations
+ *
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2019-2022 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "arm_welch_f32.c"
+#include "arm_welch_f64.c"
+#include "arm_bartlett_f32.c"
+#include "arm_bartlett_f64.c"
+#include "arm_hamming_f32.c"
+#include "arm_hamming_f64.c"
+#include "arm_hanning_f32.c"
+#include "arm_hanning_f64.c"
+#include "arm_nuttall3_f32.c"
+#include "arm_nuttall3_f64.c"
+#include "arm_nuttall4_f32.c"
+#include "arm_nuttall4_f64.c"
+#include "arm_nuttall3a_f32.c"
+#include "arm_nuttall3a_f64.c"
+#include "arm_nuttall3b_f32.c"
+#include "arm_nuttall3b_f64.c"
+#include "arm_nuttall4a_f32.c"
+#include "arm_nuttall4a_f64.c"
+#include "arm_blackman_harris_92db_f32.c"
+#include "arm_blackman_harris_92db_f64.c"
+#include "arm_nuttall4b_f32.c"
+#include "arm_nuttall4b_f64.c"
+#include "arm_nuttall4c_f32.c"
+#include "arm_nuttall4c_f64.c"
+#include "arm_hft90d_f32.c"
+#include "arm_hft90d_f64.c"
+#include "arm_hft95_f32.c"
+#include "arm_hft95_f64.c"
+#include "arm_hft116d_f32.c"
+#include "arm_hft116d_f64.c"
+#include "arm_hft144d_f32.c"
+#include "arm_hft144d_f64.c"
+#include "arm_hft169d_f32.c"
+#include "arm_hft169d_f64.c"
+#include "arm_hft196d_f32.c"
+#include "arm_hft196d_f64.c"
+#include "arm_hft223d_f32.c"
+#include "arm_hft223d_f64.c"
+#include "arm_hft248d_f32.c"
+#include "arm_hft248d_f64.c"
+

+ 93 - 0
Source/WindowFunctions/arm_bartlett_f32.c

@@ -0,0 +1,93 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_bartlett_f32.c
+ * Description:  Floating-point (f32) Bartlett window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowBARTLETT Bartlett window function (26.5 dB)
+
+ */
+
+/**
+  @ingroup WindowBARTLETT
+ */
+
+/**
+  @brief         Bartlett window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           26.5 dB  |
+  | Normalized equivalent noise bandwidth |       1.3333 bins  |
+  | 3 dB bandwidth                        |       1.2736 bins  |
+  | Flatness                              |        -1.8242 dB  |
+  | Recommended overlap                   |            50.0 %  |
+
+ */
+
+
+
+void arm_bartlett_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = i * k ;
+     if (i * k > 1.0f)
+     {
+       w = 2.0f - w;
+     }
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 89 - 0
Source/WindowFunctions/arm_bartlett_f64.c

@@ -0,0 +1,89 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_bartlett_f64.c
+ * Description:  Floating-point (f64) Bartlett window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowBARTLETT
+ */
+
+/**
+  @brief         Bartlett window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           26.5 dB  |
+  | Normalized equivalent noise bandwidth |       1.3333 bins  |
+  | 3 dB bandwidth                        |       1.2736 bins  |
+  | Flatness                              |        -1.8242 dB  |
+  | Recommended overlap                   |            50.0 %  |
+
+ */
+
+
+
+void arm_bartlett_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = i * k ;
+     if (i * k > 1.0)
+     {
+       w = 2.0 - w;
+     }
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 93 - 0
Source/WindowFunctions/arm_blackman_harris_92db_f32.c

@@ -0,0 +1,93 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_blackman_harris_92db_f32.c
+ * Description:  Floating-point (f32) 92 dB Blackman Harris window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowBLACKMAN_HARRIS_92DB Blackman Harris window function (92 dB)
+
+ */
+
+/**
+  @ingroup WindowBLACKMAN_HARRIS_92DB
+ */
+
+/**
+  @brief         92 dB Blackman Harris window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           92.0 dB  |
+  | Normalized equivalent noise bandwidth |       2.0044 bins  |
+  | 3 dB bandwidth                        |       1.8962 bins  |
+  | Flatness                              |        -0.8256 dB  |
+  | Recommended overlap                   |            66.1 %  |
+
+ */
+
+
+
+void arm_blackman_harris_92db_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+        w = 0.35875f - 0.48829f * cosf (w) +
+    0.14128f * cosf (2.f * w) - 0.01168f * cosf (3.f * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 89 - 0
Source/WindowFunctions/arm_blackman_harris_92db_f64.c

@@ -0,0 +1,89 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_blackman_harris_92db_f64.c
+ * Description:  Floating-point (f64) 92 dB Blackman Harris window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowBLACKMAN_HARRIS_92DB
+ */
+
+/**
+  @brief         92 dB Blackman Harris window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           92.0 dB  |
+  | Normalized equivalent noise bandwidth |       2.0044 bins  |
+  | 3 dB bandwidth                        |       1.8962 bins  |
+  | Flatness                              |        -0.8256 dB  |
+  | Recommended overlap                   |            66.1 %  |
+
+ */
+
+
+
+void arm_blackman_harris_92db_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * i * k;
+     w = 0.35875 - 0.48829 * cos (w) +
+    0.14128 * cos (2 * w) - 0.01168 * cos (3 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 90 - 0
Source/WindowFunctions/arm_hamming_f32.c

@@ -0,0 +1,90 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hamming_f32.c
+ * Description:  Floating-point (f32) Hamming window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowHAMMING Hamming window function (42.7 dB)
+
+ */
+
+/**
+  @ingroup WindowHAMMING
+ */
+
+/**
+  @brief         Hamming window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           42.7 dB  |
+  | Normalized equivalent noise bandwidth |       1.3628 bins  |
+  | 3 dB bandwidth                        |       1.3008 bins  |
+  | Flatness                              |        -1.7514 dB  |
+  | Recommended overlap                   |              50 %  |
+
+ */
+
+
+
+void arm_hamming_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = 0.54f - 0.46f * cosf (PI * i * k);
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 87 - 0
Source/WindowFunctions/arm_hamming_f64.c

@@ -0,0 +1,87 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hamming_f64.c
+ * Description:  Floating-point (f64) Hamming window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowHAMMING
+ */
+
+/**
+  @brief         Hamming window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           42.7 dB  |
+  | Normalized equivalent noise bandwidth |       1.3628 bins  |
+  | 3 dB bandwidth                        |       1.3008 bins  |
+  | Flatness                              |        -1.7514 dB  |
+  | Recommended overlap                   |              50 %  |
+
+ */
+
+
+
+void arm_hamming_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     
+     w = 0.54 - 0.46 * cos (PI_F64 * i * k);
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 92 - 0
Source/WindowFunctions/arm_hanning_f32.c

@@ -0,0 +1,92 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hanning_f32.c
+ * Description:  Floating-point (f32) Hanning window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowHANNING Hanning window function (31.5 dB)
+
+ */
+
+/**
+  @ingroup WindowHANNING
+ */
+
+/**
+  @brief         Hanning window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           31.5 dB  |
+  | Normalized equivalent noise bandwidth |          1.5 bins  |
+  | 3 dB bandwidth                        |       1.4382 bins  |
+  | Flatness                              |        -1.4236 dB  |
+  | Recommended overlap                   |              50 %  |
+
+ */
+
+
+
+void arm_hanning_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+     w = 0.5f * (1.0f - cosf (w));
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 88 - 0
Source/WindowFunctions/arm_hanning_f64.c

@@ -0,0 +1,88 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hanning_f64.c
+ * Description:  Floating-point (f64) Hanning window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowHANNING
+ */
+
+/**
+  @brief         Hanning window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           31.5 dB  |
+  | Normalized equivalent noise bandwidth |          1.5 bins  |
+  | 3 dB bandwidth                        |       1.4382 bins  |
+  | Flatness                              |        -1.4236 dB  |
+  | Recommended overlap                   |              50 %  |
+
+ */
+
+
+
+void arm_hanning_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * i * k;
+     w = 0.5 * (1.0 - cos (w));
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 112 - 0
Source/WindowFunctions/arm_hft116d_f32.c

@@ -0,0 +1,112 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft116d_f32.c
+ * Description:  Floating-point (f32) Hft116d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT116D Hft116d window function (116.8 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT116D
+ */
+
+/**
+  @brief         Hft116d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          116.8 dB  |
+  | Normalized equivalent noise bandwidth |       4.2186 bins  |
+  | 3 dB bandwidth                        |       4.1579 bins  |
+  | Flatness                              |        -0.0028 dB  |
+  | Recommended overlap                   |            78.2 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft116d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * (i * k);
+        w =
+    (1.0f -
+     1.9575375f * cosf (w) +
+     1.4780705f * cosf (2.f * w) -
+     0.6367431f * cosf (3.f * w) +
+     0.1228389f * cosf (4.f * w) - 0.0066288f * cosf (5.f * w));
+   
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 108 - 0
Source/WindowFunctions/arm_hft116d_f64.c

@@ -0,0 +1,108 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft116d_f64.c
+ * Description:  Floating-point (f64) Hft116d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT116D
+ */
+
+/**
+  @brief         Hft116d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          116.8 dB  |
+  | Normalized equivalent noise bandwidth |       4.2186 bins  |
+  | 3 dB bandwidth                        |       4.1579 bins  |
+  | Flatness                              |        -0.0028 dB  |
+  | Recommended overlap                   |            78.2 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft116d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * (i * k);
+        w =
+    (1.0 -
+     1.9575375 * cos (w) +
+     1.4780705 * cos (2 * w) -
+     0.6367431 * cos (3 * w) +
+     0.1228389 * cos (4 * w) - 0.0066288 * cos (5 * w));
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 112 - 0
Source/WindowFunctions/arm_hft144d_f32.c

@@ -0,0 +1,112 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft144d_f32.c
+ * Description:  Floating-point (f32) Hft144d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT144D Hft144d window function (144.1 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT144D
+ */
+
+/**
+  @brief         Hft144d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          144.1 dB  |
+  | Normalized equivalent noise bandwidth |       4.5386 bins  |
+  | 3 dB bandwidth                        |       4.4697 bins  |
+  | Flatness                              |         0.0021 dB  |
+  | Recommended overlap                   |            79.9 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft144d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * (i * k);
+        w =
+    (1.0f -
+     1.96760033f * cosf (w) +
+     1.57983607f * cosf (2.f * w) -
+     0.81123644f * cosf (3.f * w) +
+     0.22583558f * cosf (4.f * w) -
+     0.02773848f * cosf (5.f * w) + 0.00090360f * cosf (6.f * w));
+   
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 108 - 0
Source/WindowFunctions/arm_hft144d_f64.c

@@ -0,0 +1,108 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft144d_f64.c
+ * Description:  Floating-point (f64) Hft144d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT144D
+ */
+
+/**
+  @brief         Hft144d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          144.1 dB  |
+  | Normalized equivalent noise bandwidth |       4.5386 bins  |
+  | 3 dB bandwidth                        |       4.4697 bins  |
+  | Flatness                              |         0.0021 dB  |
+  | Recommended overlap                   |            79.9 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft144d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * (i * k);
+        w =
+    (1.0 -
+     1.96760033 * cos (w) +
+     1.57983607 * cos (2. * w) -
+     0.81123644 * cos (3. * w) +
+     0.22583558 * cos (4. * w) -
+     0.02773848 * cos (5. * w) + 0.00090360 * cos (6. * w));
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 113 - 0
Source/WindowFunctions/arm_hft169d_f32.c

@@ -0,0 +1,113 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft169d_f32.c
+ * Description:  Floating-point (f32) Hft169d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT169D Hft169d window function (169.5 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT169D
+ */
+
+/**
+  @brief         Hft169d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          169.5 dB  |
+  | Normalized equivalent noise bandwidth |       4.8347 bins  |
+  | 3 dB bandwidth                        |       4.7588 bins  |
+  | Flatness                              |         0.0017 dB  |
+  | Recommended overlap                   |            81.2 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft169d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * (i * k);
+        w =
+    (1.0f -
+     1.97441843f * cosf (w) +
+     1.65409889f * cosf (2.f * w) -
+     0.95788187f * cosf (3.f * w) +
+     0.33673420f * cosf (4.f * w) -
+     0.06364622f * cosf (5.f * w) +
+     0.00521942f * cosf (6.f * w) - 0.00010599f * cosf (7.f * w));
+  
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 109 - 0
Source/WindowFunctions/arm_hft169d_f64.c

@@ -0,0 +1,109 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft169d_f64.c
+ * Description:  Floating-point (f64) Hft169d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT169D
+ */
+
+/**
+  @brief         Hft169d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          169.5 dB  |
+  | Normalized equivalent noise bandwidth |       4.8347 bins  |
+  | 3 dB bandwidth                        |       4.7588 bins  |
+  | Flatness                              |         0.0017 dB  |
+  | Recommended overlap                   |            81.2 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft169d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * (i * k);
+        w =
+    (1 -
+     1.97441843 * cos (w) +
+     1.65409889 * cos (2. * w) -
+     0.95788187 * cos (3. * w) +
+     0.33673420 * cos (4. * w) -
+     0.06364622 * cos (5. * w) +
+     0.00521942 * cos (6. * w) - 0.00010599 * cos (7. * w));
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 114 - 0
Source/WindowFunctions/arm_hft196d_f32.c

@@ -0,0 +1,114 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft196d_f32.c
+ * Description:  Floating-point (f32) Hft196d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT196D Hft196d window function (196.2 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT196D
+ */
+
+/**
+  @brief         Hft196d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          196.2 dB  |
+  | Normalized equivalent noise bandwidth |       5.1134 bins  |
+  | 3 dB bandwidth                        |       5.0308 bins  |
+  | Flatness                              |         0.0013 dB  |
+  | Recommended overlap                   |            82.3 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft196d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * (i * k);
+        w =
+    (1.0f -
+     1.979280420f * cosf (w) +
+     1.710288951f * cosf (2.f * w) -
+     1.081629853f * cosf (3.f * w) +
+     0.448734314f * cosf (4.f * w) -
+     0.112376628f * cosf (5.f * w) +
+     0.015122992f * cosf (6.f * w) -
+     0.000871252f * cosf (7.f * w) + 0.000011896f * cosf (8.f * w));
+  
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 110 - 0
Source/WindowFunctions/arm_hft196d_f64.c

@@ -0,0 +1,110 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft196d_f64.c
+ * Description:  Floating-point (f64) Hft196d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT196D
+ */
+
+/**
+  @brief         Hft196d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          196.2 dB  |
+  | Normalized equivalent noise bandwidth |       5.1134 bins  |
+  | 3 dB bandwidth                        |       5.0308 bins  |
+  | Flatness                              |         0.0013 dB  |
+  | Recommended overlap                   |            82.3 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft196d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * (i * k);
+        w =
+    (1.0 -
+     1.979280420 * cos (w) +
+     1.710288951 * cos (2. * w) -
+     1.081629853 * cos (3. * w) +
+     0.448734314 * cos (4. * w) -
+     0.112376628 * cos (5. * w) +
+     0.015122992 * cos (6. * w) -
+     0.000871252 * cos (7. * w) + 0.000011896 * cos (8. * w));
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 114 - 0
Source/WindowFunctions/arm_hft223d_f32.c

@@ -0,0 +1,114 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft223d_f32.c
+ * Description:  Floating-point (f32) Hft223d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT223D Hft223d window function (223.0 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT223D
+ */
+
+/**
+  @brief         Hft223d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          223.0 dB  |
+  | Normalized equivalent noise bandwidth |       5.3888 bins  |
+  | 3 dB bandwidth                        |       5.3000 bins  |
+  | Flatness                              |        -0.0011 dB  |
+  | Recommended overlap                   |            83.3 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft223d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+        w = PI * (i * k);
+        w =
+    (1.0f -
+     1.98298997309f * cosf (w) +
+     1.75556083063f * cosf (2.f * w) -
+     1.19037717712f * cosf (3.f * w) +
+     0.56155440797f * cosf (4.f * w) -
+     0.17296769663f * cosf (5.f * w) +
+     0.03233247087f * cosf (6.f * w) -
+     0.00324954578f * cosf (7.f * w) +
+     0.00013801040f * cosf (8.f * w) - 0.00000132725f * cosf (9.f * w));
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 111 - 0
Source/WindowFunctions/arm_hft223d_f64.c

@@ -0,0 +1,111 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft223d_f64.c
+ * Description:  Floating-point (f64) Hft223d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT223D
+ */
+
+/**
+  @brief         Hft223d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          223.0 dB  |
+  | Normalized equivalent noise bandwidth |       5.3888 bins  |
+  | 3 dB bandwidth                        |       5.3000 bins  |
+  | Flatness                              |         0.0011 dB  |
+  | Recommended overlap                   |            83.3 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft223d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * (i * k);
+        w =
+    (1.0 -
+     1.98298997309 * cos (w) +
+     1.75556083063 * cos (2. * w) -
+     1.19037717712 * cos (3. * w) +
+     0.56155440797 * cos (4. * w) -
+     0.17296769663 * cos (5. * w) +
+     0.03233247087 * cos (6. * w) -
+     0.00324954578 * cos (7. * w) +
+     0.00013801040 * cos (8. * w) - 0.00000132725 * cos (9. * w));
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 116 - 0
Source/WindowFunctions/arm_hft248d_f32.c

@@ -0,0 +1,116 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft248d_f32.c
+ * Description:  Floating-point (f32) Hft248d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT248D Hft248d window function (248.4 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT248D
+ */
+
+/**
+  @brief         Hft248d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          248.4 dB  |
+  | Normalized equivalent noise bandwidth |       5.6512 bins  |
+  | 3 dB bandwidth                        |       5.5567 bins  |
+  | Flatness                              |         0.0009 dB  |
+  | Recommended overlap                   |            84.1 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft248d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI * (i * k);
+        w =
+    (1.0f -
+     1.985844164102f * cosf (w) +
+     1.791176438506f * cosf (2.f * w) -
+     1.282075284005f * cosf (3.f * w) +
+     0.667777530266f * cosf (4.f * w) -
+     0.240160796576f * cosf (5.f * w) +
+     0.056656381764f * cosf (6.f * w) -
+     0.008134974479f * cosf (7.f * w) +
+     0.000624544650f * cosf (8.f * w) -
+     0.000019808998f * cosf (9.f * w) +
+     0.000000132974f * cosf (10.f * w));
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 112 - 0
Source/WindowFunctions/arm_hft248d_f64.c

@@ -0,0 +1,112 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft248d_f64.c
+ * Description:  Floating-point (f64) Hft248d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT248D
+ */
+
+/**
+  @brief         Hft248d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |          248.4 dB  |
+  | Normalized equivalent noise bandwidth |       5.6512 bins  |
+  | 3 dB bandwidth                        |       5.5567 bins  |
+  | Flatness                              |         0.0009 dB  |
+  | Recommended overlap                   |            84.1 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft248d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * (i * k);
+        w =
+    (1.0 -
+     1.985844164102 * cos (w) +
+     1.791176438506 * cos (2. * w) -
+     1.282075284005 * cos (3. * w) +
+     0.667777530266 * cos (4. * w) -
+     0.240160796576 * cos (5. * w) +
+     0.056656381764 * cos (6. * w) -
+     0.008134974479 * cos (7. * w) +
+     0.000624544650 * cos (8. * w) -
+     0.000019808998 * cos (9. * w) +
+     0.000000132974 * cos (10. * w));
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 111 - 0
Source/WindowFunctions/arm_hft90d_f32.c

@@ -0,0 +1,111 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft90d_f32.c
+ * Description:  Floating-point (f32) Hft90d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT90D Hft90d window function (90.2 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT90D
+ */
+
+/**
+  @brief         Hft90d window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           90.2 dB  |
+  | Normalized equivalent noise bandwidth |       3.8832 bins  |
+  | 3 dB bandwidth                        |       3.8320 bins  |
+  | Flatness                              |        -0.0039 dB  |
+  | Recommended overlap                   |            76.0 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft90d_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * (i * k);
+     w =
+    1.0f -
+     1.942604f * cosf (w) +
+     1.340318f * cosf (2.f * w) -
+     0.440811f * cosf (3.f * w) + 0.043097f * cosf (4.f * w);
+       
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 118 - 0
Source/WindowFunctions/arm_hft90d_f64.c

@@ -0,0 +1,118 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft90d_f64.c
+ * Description:  Floating-point (f64) Hft90d window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+/**
+  @defgroup WindowFlat Flat-top window functions
+
+  Use those windows when you need to estimate the
+  amplitude of a tone.
+
+  If just just need to detect a tone or estimate the
+  noise, you can use the regular windows.
+
+ */
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT90D
+ */
+
+/**
+  @brief         Hft90d window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           90.2 dB  |
+  | Normalized equivalent noise bandwidth |       3.8832 bins  |
+  | 3 dB bandwidth                        |       3.8320 bins  |
+  | Flatness                              |        -0.0039 dB  |
+  | Recommended overlap                   |            76.0 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft90d_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * (i * k);
+     w =
+    1.0 -
+     1.942604 * cos (w) +
+     1.340318 * cos (2 * w) -
+     0.440811 * cos (3 * w) + 0.043097 * cos (4 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 111 - 0
Source/WindowFunctions/arm_hft95_f32.c

@@ -0,0 +1,111 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft95_f32.c
+ * Description:  Floating-point (f32) Hft95 window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+/**
+  @defgroup WindowHFT95 Hft95 window function (95.0 dB)
+
+ */
+
+/**
+  @ingroup WindowHFT95
+ */
+
+/**
+  @brief         Hft95 window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           95.0 dB  |
+  | Normalized equivalent noise bandwidth |       3.8112 bins  |
+  | 3 dB bandwidth                        |       3.7590 bins  |
+  | Flatness                              |         0.0044 dB  |
+  | Recommended overlap                   |            75.6 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft95_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI * (i * k);
+        w =
+    (1.0f -
+     1.9383379f * cosf (w) +
+     1.3045202f * cosf (2.f * w) -
+     0.4028270f * cosf (3.f * w) + 0.0350665f * cosf (4.f * w));
+
+   
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 107 - 0
Source/WindowFunctions/arm_hft95_f64.c

@@ -0,0 +1,107 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_hft95_f64.c
+ * Description:  Floating-point (f64) Hft95 window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowFlat
+  @{
+ */
+
+
+/**
+  @ingroup WindowHFT95
+ */
+
+/**
+  @brief         Hft95 window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           95.0 dB  |
+  | Normalized equivalent noise bandwidth |       3.8112 bins  |
+  | 3 dB bandwidth                        |       3.7590 bins  |
+  | Flatness                              |         0.0044 dB  |
+  | Recommended overlap                   |            75.6 %  |
+
+Included in CMSIS-DSP with authorization from professor
+Gerhard Heinzel.
+
+@par Original article:
+Spectrum and spectral density estimation by the Discrete Fourier
+transform (DFT), including a comprehensive list of window
+functions and some new 
+flat-top windows.
+
+@par Authors: 
+G. Heinzel, A. Rudiger and R. Schilling,
+Max-Planck-Institut fur Gravitationsphysik
+(Albert-Einstein-Institut)
+Teilinstitut Hannover
+ */
+
+
+
+void arm_hft95_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * (i * k);
+        w =
+    (1.0 -
+     1.9383379 * cos (w) +
+     1.3045202 * cos (2 * w) -
+     0.4028270 * cos (3 * w) + 0.0350665 * cos (4 * w));
+
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowFlat group
+ */
+

+ 91 - 0
Source/WindowFunctions/arm_nuttall3_f32.c

@@ -0,0 +1,91 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall3_f32.c
+ * Description:  Floating-point (f32) Nuttall3 window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL3 Nuttall3 window function (46.7 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL3
+ */
+
+/**
+  @brief         Nuttall3 window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           46.7 dB  |
+  | Normalized equivalent noise bandwidth |       1.9444 bins  |
+  | 3 dB bandwidth                        |       1.8496 bins  |
+  | Flatness                              |        -0.8630 dB  |
+  | Recommended overlap                   |            64.7 %  |
+
+ */
+
+
+
+void arm_nuttall3_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+     w = 0.375f - 0.5f * cosf (w) + 0.125f * cosf (2.0f * w);
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 88 - 0
Source/WindowFunctions/arm_nuttall3_f64.c

@@ -0,0 +1,88 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall3_f64.c
+ * Description:  Floating-point (f64) Nuttall3 window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL3
+ */
+
+/**
+  @brief         Nuttall3 window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           46.7 dB  |
+  | Normalized equivalent noise bandwidth |       1.9444 bins  |
+  | 3 dB bandwidth                        |       1.8496 bins  |
+  | Flatness                              |         -0.863 dB  |
+  | Recommended overlap                   |            64.7 %  |
+
+ */
+
+
+
+void arm_nuttall3_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * i * k;
+     w = 0.375 - 0.5 * cos (w) + 0.125 * cos (2 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 93 - 0
Source/WindowFunctions/arm_nuttall3a_f32.c

@@ -0,0 +1,93 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall3a_f32.c
+ * Description:  Floating-point (f32) Nuttall3a window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL3A Nuttall3a window function (64.2 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL3A
+ */
+
+/**
+  @brief         Nuttall3a window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           64.2 dB  |
+  | Normalized equivalent noise bandwidth |       1.7721 bins  |
+  | 3 dB bandwidth                        |       1.6828 bins  |
+  | Flatness                              |        -1.0453 dB  |
+  | Recommended overlap                   |            61.2 %  |
+
+ */
+
+
+
+void arm_nuttall3a_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+     w = 0.40897f - 0.5f * cosf (w) + 0.09103f * cosf (2.f * w);
+     
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 89 - 0
Source/WindowFunctions/arm_nuttall3a_f64.c

@@ -0,0 +1,89 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall3a_f64.c
+ * Description:  Floating-point (f64) Nuttall3a window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL3A
+ */
+
+/**
+  @brief         Nuttall3a window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           64.2 dB  |
+  | Normalized equivalent noise bandwidth |       1.7721 bins  |
+  | 3 dB bandwidth                        |       1.6828 bins  |
+  | Flatness                              |        -1.0453 dB  |
+  | Recommended overlap                   |            61.2 %  |
+
+ */
+
+
+
+void arm_nuttall3a_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * i * k;
+     w = 0.40897 - 0.5 * cos (w) + 0.09103 * cos (2 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 93 - 0
Source/WindowFunctions/arm_nuttall3b_f32.c

@@ -0,0 +1,93 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall3b_f32.c
+ * Description:  Floating-point (f32) Nuttall3b window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL3B Nuttall3b window function (71.5 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL3B
+ */
+
+/**
+  @brief         Nuttall3b window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           71.5 dB  |
+  | Normalized equivalent noise bandwidth |       1.7037 bins  |
+  | 3 dB bandwidth                        |       1.6162 bins  |
+  | Flatness                              |        -1.1352 dB  |
+  | Recommended overlap                   |            59.8 %  |
+
+ */
+
+
+
+void arm_nuttall3b_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+     w = 0.4243801f - 0.4973406f * cosf (w) + 0.0782793f * cosf (2.f * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 89 - 0
Source/WindowFunctions/arm_nuttall3b_f64.c

@@ -0,0 +1,89 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall3b_f64.c
+ * Description:  Floating-point (f64) Nuttall3b window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL3B
+ */
+
+/**
+  @brief         Nuttall3b window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           71.5 dB  |
+  | Normalized equivalent noise bandwidth |       1.7037 bins  |
+  | 3 dB bandwidth                        |       1.6162 bins  |
+  | Flatness                              |        -1.1352 dB  |
+  | Recommended overlap                   |            59.8 %  |
+
+ */
+
+
+
+void arm_nuttall3b_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * i * k;
+     w = 0.4243801 - 0.4973406 * cos (w) + 0.0782793 * cos (2 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 93 - 0
Source/WindowFunctions/arm_nuttall4_f32.c

@@ -0,0 +1,93 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4_f32.c
+ * Description:  Floating-point (f32) Nuttall4 window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL4 Nuttall4 window function (60.9 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL4
+ */
+
+/**
+  @brief         Nuttall4 window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           60.9 dB  |
+  | Normalized equivalent noise bandwidth |         2.31 bins  |
+  | 3 dB bandwidth                        |       2.1884 bins  |
+  | Flatness                              |        -0.6184 dB  |
+  | Recommended overlap                   |            70.5 %  |
+
+ */
+
+
+
+void arm_nuttall4_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+     w =
+    0.3125f - 0.46875f * cosf (w) + 0.1875f * cosf (2.f * w) -
+    0.03125f * cosf (3.f * w);
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 89 - 0
Source/WindowFunctions/arm_nuttall4_f64.c

@@ -0,0 +1,89 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4_f64.c
+ * Description:  Floating-point (f64) Nuttall4 window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL4
+ */
+
+/**
+  @brief         Nuttall4 window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           60.9 dB  |
+  | Normalized equivalent noise bandwidth |         2.31 bins  |
+  | 3 dB bandwidth                        |       2.1884 bins  |
+  | Flatness                              |        -0.6184 dB  |
+  | Recommended overlap                   |            70.5 %  |
+
+ */
+
+
+
+void arm_nuttall4_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * i * k;
+        w =
+    0.3125 - 0.46875 * cos (w) + 0.1875 * cos (2 * w) -
+    0.03125 * cos (3 * w);
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 94 - 0
Source/WindowFunctions/arm_nuttall4a_f32.c

@@ -0,0 +1,94 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4a_f32.c
+ * Description:  Floating-point (f32) Nuttall4a window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL4A Nuttall4a window function (82.6 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL4A
+ */
+
+/**
+  @brief         Nuttall4a window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           82.6 dB  |
+  | Normalized equivalent noise bandwidth |       2.1253 bins  |
+  | 3 dB bandwidth                        |       2.0123 bins  |
+  | Flatness                              |        -0.7321 dB  |
+  | Recommended overlap                   |            68.0 %  |
+
+ */
+
+
+
+void arm_nuttall4a_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+     w = 0.338946f - 0.481973f * cosf (w) +
+    0.161054f * cosf (2.f * w) - 0.018027f * cosf (3.f * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 90 - 0
Source/WindowFunctions/arm_nuttall4a_f64.c

@@ -0,0 +1,90 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4a_f64.c
+ * Description:  Floating-point (f64) Nuttall4a window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL4A
+ */
+
+/**
+  @brief         Nuttall4a window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           82.6 dB  |
+  | Normalized equivalent noise bandwidth |       2.1253 bins  |
+  | 3 dB bandwidth                        |       2.0123 bins  |
+  | Flatness                              |        -0.7321 dB  |
+  | Recommended overlap                   |            68.0 %  |
+
+ */
+
+
+
+void arm_nuttall4a_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI_F64 * i * k;
+        w = 0.338946 - 0.481973 * cos (w) +
+    0.161054 * cos (2 * w) - 0.018027 * cos (3 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 94 - 0
Source/WindowFunctions/arm_nuttall4b_f32.c

@@ -0,0 +1,94 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4b_f32.c
+ * Description:  Floating-point (f32) Nuttall4b window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL4B Nuttall4b window function (93.3 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL4B
+ */
+
+/**
+  @brief         Nuttall4b window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           93.3 dB  |
+  | Normalized equivalent noise bandwidth |       2.0212 bins  |
+  | 3 dB bandwidth                        |       1.9122 bins  |
+  | Flatness                              |        -0.8118 dB  |
+  | Recommended overlap                   |            66.3 %  |
+
+ */
+
+
+
+void arm_nuttall4b_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+        w = 0.355768f - 0.487396f * cosf (w) +
+    0.144232f * cosf (2.f * w) - 0.012604f * cosf (3.f * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 90 - 0
Source/WindowFunctions/arm_nuttall4b_f64.c

@@ -0,0 +1,90 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4b_f64.c
+ * Description:  Floating-point (f64) Nuttall4b window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL4B
+ */
+
+/**
+  @brief         Nuttall4b window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           93.3 dB  |
+  | Normalized equivalent noise bandwidth |       2.0212 bins  |
+  | 3 dB bandwidth                        |       1.9122 bins  |
+  | Flatness                              |        -0.8118 dB  |
+  | Recommended overlap                   |            66.3 %  |
+
+ */
+
+
+
+void arm_nuttall4b_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2. / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * i * k;
+        w = 0.355768 - 0.487396 * cos (w) +
+    0.144232 * cos (2 * w) - 0.012604 * cos (3 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 93 - 0
Source/WindowFunctions/arm_nuttall4c_f32.c

@@ -0,0 +1,93 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4c_f32.c
+ * Description:  Floating-point (f32) Nuttall4c window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowNUTTALL4C Nuttall4c window function (98.1 dB)
+
+ */
+
+/**
+  @ingroup WindowNUTTALL4C
+ */
+
+/**
+  @brief         Nuttall4c window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           98.1 dB  |
+  | Normalized equivalent noise bandwidth |       1.9761 bins  |
+  | 3 dB bandwidth                        |       1.8687 bins  |
+  | Flatness                              |        -0.8506 dB  |
+  | Recommended overlap                   |            65.6 %  |
+
+ */
+
+
+
+void arm_nuttall4c_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = PI * i * k;
+        w = 0.3635819f - 0.4891775f * cosf (w) +
+    0.1365995f * cosf (2.f * w) - 0.0106411f * cosf (3.f * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 89 - 0
Source/WindowFunctions/arm_nuttall4c_f64.c

@@ -0,0 +1,89 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_nuttall4c_f64.c
+ * Description:  Floating-point (f64) Nuttall4c window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+#include "dsp/fast_math_functions.h"
+#include <math.h>
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowNUTTALL4C
+ */
+
+/**
+  @brief         Nuttall4c window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           98.1 dB  |
+  | Normalized equivalent noise bandwidth |       1.9761 bins  |
+  | 3 dB bandwidth                        |       1.8687 bins  |
+  | Flatness                              |        -0.8506 dB  |
+  | Recommended overlap                   |            65.6 %  |
+
+ */
+
+
+
+void arm_nuttall4c_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2.0 / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+    w = PI_F64 * i * k;
+        w = 0.3635819 - 0.4891775 * cos (w) +
+    0.1365995 * cos (2 * w) - 0.0106411 * cos (3 * w);
+        
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 90 - 0
Source/WindowFunctions/arm_welch_f32.c

@@ -0,0 +1,90 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_welch_f32.c
+ * Description:  Floating-point (f32) Welch window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+
+/**
+  @ingroup groupWindow
+ */
+
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+/**
+  @defgroup WindowWELCH Welch window function (21.3 dB)
+
+ */
+
+/**
+  @ingroup WindowWELCH
+ */
+
+/**
+  @brief         Welch window generating function (f32).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           21.3 dB  |
+  | Normalized equivalent noise bandwidth |          1.2 bins  |
+  | 3 dB bandwidth                        |       1.1535 bins  |
+  | Flatness                              |        -2.2248 dB  |
+  | Recommended overlap                   |            29.3 %  |
+
+ */
+
+
+
+void arm_welch_f32(
+        float32_t * pDst,
+        uint32_t blockSize)
+{
+   float32_t k = 2.0f / ((float32_t) blockSize);
+   float32_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = i * k - 1.0f;
+     w = 1.0f - w * w;
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 95 - 0
Source/WindowFunctions/arm_welch_f64.c

@@ -0,0 +1,95 @@
+/* ----------------------------------------------------------------------
+ * Project:      CMSIS DSP Library
+ * Title:        arm_welch_f64.c
+ * Description:  Floating-point (f64) Welch window
+ *
+ * $Date:        14 December 2022
+ * $Revision:    v1.15.0
+ *
+ * Target Processor: Cortex-M and Cortex-A cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2022 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/window_functions.h"
+
+/**
+  @ingroup groupWindow
+ */
+
+/**
+  @defgroup WindowNormal Regular window functions
+
+  Regular window functions that can be used for
+  detecting tones or estimating the noise.
+  If you need to estimate the amplitude of a tones,
+  prefer a flat top window.
+
+ */
+
+
+
+/**
+  @addtogroup WindowNormal
+  @{
+ */
+
+
+/**
+  @ingroup WindowWELCH
+ */
+
+/**
+  @brief         Welch window generating function (f64).
+  @param[out]    pDst       points to the output generated window
+  @param[in]     blockSize  number of samples in the window
+  @return        none
+ 
+  @par Parameters of the window
+  
+  | Parameter                             | Value              |
+  | ------------------------------------: | -----------------: |
+  | Peak sidelobe level                   |           21.3 dB  |
+  | Normalized equivalent noise bandwidth |          1.2 bins  |
+  | 3 dB bandwidth                        |       1.1535 bins  |
+  | Flatness                              |        -2.2248 dB  |
+  | Recommended overlap                   |            29.3 %  |
+
+ */
+
+
+
+void arm_welch_f64(
+        float64_t * pDst,
+        uint32_t blockSize)
+{
+   float64_t k = 2.0 / ((float64_t) blockSize);
+   float64_t w;
+
+   for(uint32_t i=0;i<blockSize;i++)
+   {
+     w = i * k - 1.0;
+     w = 1.0 - w * w;
+     pDst[i] = w;
+   }
+}
+
+/**
+  @} end of WindowNormal group
+ */
+

+ 19 - 0
Testing/Include/Tests/WindowTestsF32.h

@@ -0,0 +1,19 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/window_functions.h"
+
+class WindowTestsF32:public Client::Suite
+    {
+        public:
+            WindowTestsF32(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 "WindowTestsF32_decl.h"
+            
+            Client::LocalPattern<float32_t> output;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<float32_t> ref;
+
+    };

+ 19 - 0
Testing/Include/Tests/WindowTestsF64.h

@@ -0,0 +1,19 @@
+#include "Test.h"
+#include "Pattern.h"
+
+#include "dsp/window_functions.h"
+
+class WindowTestsF64:public Client::Suite
+    {
+        public:
+            WindowTestsF64(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 "WindowTestsF64_decl.h"
+            
+            Client::LocalPattern<float64_t> output;
+            // Reference patterns are not loaded when we are in dump mode
+            Client::RefPattern<float64_t> ref;
+
+    };

+ 217 - 0
Testing/PatternGeneration/Window.py

@@ -0,0 +1,217 @@
+import os.path
+import numpy as np
+import itertools
+import Tools
+import scipy.signal.windows as win
+import matplotlib.pyplot as plt
+
+def genwelch(n):
+    ik = 2*np.array(range(n)) / n
+    w = ik -1;
+    w = 1 - w**2 
+    if len(w)!=n:
+        print("Error with window len in Welch")
+        exit(1)
+    return(w)
+
+
+def genbartlett(n):
+    w = win.bartlett(n,sym=False)
+    return(w)
+
+def genhamming(n):
+    w = win.hamming(n,sym=False)
+    return(w)
+
+def genhanning(n):
+    w = win.hann(n,sym=False)
+    return(w)
+
+def gennuttall3(n):
+    w = win.general_cosine(n,
+        [0.375, 0.5 , 0.125 ],sym=False)
+    return(w)
+
+def gennuttall4(n):
+    w = win.general_cosine(n,
+        [0.3125, 0.46875,0.1875 , 0.03125],sym=False)
+    return(w)
+
+def gennuttall3a(n):
+    w = win.general_cosine(n,
+        [0.40897, 0.5 ,0.09103],sym=False)
+    return(w)
+
+def gennuttall3b(n):
+    w = win.general_cosine(n,
+        [0.4243801, 0.4973406 , 0.0782793 ],sym=False)
+    return(w)
+
+def gennuttall4a(n):
+    w = win.general_cosine(n,
+        [0.338946, 0.481973,0.161054 , 0.018027 ],sym=False)
+    return(w)
+
+def genblackman_harris_92db(n):
+    w = win.blackmanharris(n,sym=False)
+    return(w)
+
+def gennuttall4b(n):
+    w = win.general_cosine(n,
+        [0.355768, 0.487396 ,
+        0.144232 , 0.012604 ],sym=False)
+    return(w)
+
+def gennuttall4c(n):
+    w = win.nuttall(n,sym=False)
+    return(w)
+
+def genhft90d(n):
+    w = win.general_cosine(n,
+        [1 ,1.942604 ,
+         1.340318 , 0.440811 , 0.043097 ],sym=False)
+    return(w)
+
+def genhft95(n):
+    w = win.general_cosine(n,
+        [1, 1.9383379 ,
+         1.3045202 ,0.4028270 ,0.0350665 ]
+ ,sym=False)
+    return(w)
+
+def genhft116d(n):
+    w = win.general_cosine(n,
+        [1, 1.9575375 ,
+         1.4780705 ,0.6367431 ,
+         0.1228389 ,0.0066288 ]
+ ,sym=False)
+    return(w)
+
+def genhft144d(n):
+    w = win.general_cosine(n,
+        [1 ,1.96760033 ,
+         1.57983607 , 0.81123644 ,
+         0.22583558 ,0.02773848 , 0.00090360  ]
+ ,sym=False)
+    return(w)
+
+def genhft169d(n):
+    w = win.general_cosine(n,
+        [1, 1.97441843 ,
+         1.65409889 , 0.95788187 ,
+         0.33673420 , 0.06364622 ,
+         0.00521942 ,0.00010599   ]
+ ,sym=False)
+    return(w)
+
+def genhft196d(n):
+    w = win.general_cosine(n,
+        [1, 1.979280420 ,
+         1.710288951 , 1.081629853 ,
+         0.448734314 , 0.112376628 ,
+         0.015122992 ,0.000871252 , 0.000011896 ]
+ ,sym=False)
+    return(w)
+
+def genhft223d(n):
+    w = win.general_cosine(n,
+        [1, 1.98298997309,
+         1.75556083063 , 1.19037717712 ,
+         0.56155440797 , 0.17296769663 ,
+         0.03233247087 ,0.00324954578 ,
+         0.00013801040 ,0.00000132725 ]
+ ,sym=False)
+    return(w)
+
+def genhft248d(n):
+    w = win.general_cosine(n,
+        [1, 1.985844164102 ,
+         1.791176438506 , 1.282075284005 ,
+         0.667777530266 , 0.240160796576 ,
+         0.056656381764 ,0.008134974479 ,
+         0.000624544650 ,0.000019808998 ,
+         0.000000132974 ]
+ ,sym=False)
+    return(w)
+
+
+def writeTests(config,format):
+    NBSAMPLES=128
+
+    data1=np.random.randn(NBSAMPLES)
+    data1 = Tools.normalize(data1)
+    data1 = genwelch(NBSAMPLES)
+    config.writeReference(1, data1,"RefWelch_")
+
+    data1 = genbartlett(NBSAMPLES)
+    config.writeReference(2, data1,"RefBartlett_")
+
+    data1 = genhamming(NBSAMPLES)
+    config.writeReference(3, data1,"RefHamming_")
+
+    data1 = genhanning(NBSAMPLES)
+    config.writeReference(4, data1,"RefHanning_")
+
+    data1 = gennuttall3(NBSAMPLES)
+    config.writeReference(5, data1,"RefNuttall3_")
+
+    data1 = gennuttall4(NBSAMPLES)
+    config.writeReference(6, data1,"RefNuttall4_")
+
+    data1 = gennuttall3a(NBSAMPLES)
+    config.writeReference(7, data1,"RefNuttall3a_")
+
+    data1 = gennuttall3b(NBSAMPLES)
+    config.writeReference(8, data1,"RefNuttall3b_")
+
+    data1 = gennuttall4a(NBSAMPLES)
+    config.writeReference(9, data1,"RefNuttall4a_")
+
+    data1 = genblackman_harris_92db(NBSAMPLES)
+    config.writeReference(10, data1,"RefBlackman_harris_92db_")
+
+    data1 = gennuttall4b(NBSAMPLES)
+    config.writeReference(11, data1,"RefNuttall4b_")
+
+    data1 = gennuttall4c(NBSAMPLES)
+    config.writeReference(12, data1,"RefNuttall4c_")
+
+    data1 = genhft90d(NBSAMPLES)
+    config.writeReference(13, data1,"RefHft90d_")
+
+    data1 = genhft95(NBSAMPLES)
+    config.writeReference(14, data1,"RefHft95_")
+
+    data1 = genhft116d(NBSAMPLES)
+    config.writeReference(15, data1,"RefHft116d_")
+
+    data1 = genhft144d(NBSAMPLES)
+    config.writeReference(16, data1,"RefHft144d_")
+
+    data1 = genhft169d(NBSAMPLES)
+    config.writeReference(17, data1,"RefHft169d_")
+
+    data1 = genhft196d(NBSAMPLES)
+    config.writeReference(18, data1,"RefHft196d_")
+
+    data1 = genhft223d(NBSAMPLES)
+    config.writeReference(19, data1,"RefHft223d_")
+
+    data1 = genhft248d(NBSAMPLES)
+    config.writeReference(20, data1,"RefHft248d_")
+
+
+def generatePatterns():
+    PATTERNDIR = os.path.join("Patterns","DSP","Window","Window")
+    PARAMDIR = os.path.join("Parameters","DSP","Window","Window")
+    
+    configf64=Tools.Config(PATTERNDIR,PARAMDIR,"f64")
+    configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32")
+    
+    writeTests(configf64,Tools.F64)
+    writeTests(configf32,Tools.F32)
+
+
+    
+if __name__ == '__main__':
+  generatePatterns()

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefBartlett_2_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x0
+// 0.015625
+0x3c800000
+// 0.031250
+0x3d000000
+// 0.046875
+0x3d400000
+// 0.062500
+0x3d800000
+// 0.078125
+0x3da00000
+// 0.093750
+0x3dc00000
+// 0.109375
+0x3de00000
+// 0.125000
+0x3e000000
+// 0.140625
+0x3e100000
+// 0.156250
+0x3e200000
+// 0.171875
+0x3e300000
+// 0.187500
+0x3e400000
+// 0.203125
+0x3e500000
+// 0.218750
+0x3e600000
+// 0.234375
+0x3e700000
+// 0.250000
+0x3e800000
+// 0.265625
+0x3e880000
+// 0.281250
+0x3e900000
+// 0.296875
+0x3e980000
+// 0.312500
+0x3ea00000
+// 0.328125
+0x3ea80000
+// 0.343750
+0x3eb00000
+// 0.359375
+0x3eb80000
+// 0.375000
+0x3ec00000
+// 0.390625
+0x3ec80000
+// 0.406250
+0x3ed00000
+// 0.421875
+0x3ed80000
+// 0.437500
+0x3ee00000
+// 0.453125
+0x3ee80000
+// 0.468750
+0x3ef00000
+// 0.484375
+0x3ef80000
+// 0.500000
+0x3f000000
+// 0.515625
+0x3f040000
+// 0.531250
+0x3f080000
+// 0.546875
+0x3f0c0000
+// 0.562500
+0x3f100000
+// 0.578125
+0x3f140000
+// 0.593750
+0x3f180000
+// 0.609375
+0x3f1c0000
+// 0.625000
+0x3f200000
+// 0.640625
+0x3f240000
+// 0.656250
+0x3f280000
+// 0.671875
+0x3f2c0000
+// 0.687500
+0x3f300000
+// 0.703125
+0x3f340000
+// 0.718750
+0x3f380000
+// 0.734375
+0x3f3c0000
+// 0.750000
+0x3f400000
+// 0.765625
+0x3f440000
+// 0.781250
+0x3f480000
+// 0.796875
+0x3f4c0000
+// 0.812500
+0x3f500000
+// 0.828125
+0x3f540000
+// 0.843750
+0x3f580000
+// 0.859375
+0x3f5c0000
+// 0.875000
+0x3f600000
+// 0.890625
+0x3f640000
+// 0.906250
+0x3f680000
+// 0.921875
+0x3f6c0000
+// 0.937500
+0x3f700000
+// 0.953125
+0x3f740000
+// 0.968750
+0x3f780000
+// 0.984375
+0x3f7c0000
+// 1.000000
+0x3f800000
+// 0.984375
+0x3f7c0000
+// 0.968750
+0x3f780000
+// 0.953125
+0x3f740000
+// 0.937500
+0x3f700000
+// 0.921875
+0x3f6c0000
+// 0.906250
+0x3f680000
+// 0.890625
+0x3f640000
+// 0.875000
+0x3f600000
+// 0.859375
+0x3f5c0000
+// 0.843750
+0x3f580000
+// 0.828125
+0x3f540000
+// 0.812500
+0x3f500000
+// 0.796875
+0x3f4c0000
+// 0.781250
+0x3f480000
+// 0.765625
+0x3f440000
+// 0.750000
+0x3f400000
+// 0.734375
+0x3f3c0000
+// 0.718750
+0x3f380000
+// 0.703125
+0x3f340000
+// 0.687500
+0x3f300000
+// 0.671875
+0x3f2c0000
+// 0.656250
+0x3f280000
+// 0.640625
+0x3f240000
+// 0.625000
+0x3f200000
+// 0.609375
+0x3f1c0000
+// 0.593750
+0x3f180000
+// 0.578125
+0x3f140000
+// 0.562500
+0x3f100000
+// 0.546875
+0x3f0c0000
+// 0.531250
+0x3f080000
+// 0.515625
+0x3f040000
+// 0.500000
+0x3f000000
+// 0.484375
+0x3ef80000
+// 0.468750
+0x3ef00000
+// 0.453125
+0x3ee80000
+// 0.437500
+0x3ee00000
+// 0.421875
+0x3ed80000
+// 0.406250
+0x3ed00000
+// 0.390625
+0x3ec80000
+// 0.375000
+0x3ec00000
+// 0.359375
+0x3eb80000
+// 0.343750
+0x3eb00000
+// 0.328125
+0x3ea80000
+// 0.312500
+0x3ea00000
+// 0.296875
+0x3e980000
+// 0.281250
+0x3e900000
+// 0.265625
+0x3e880000
+// 0.250000
+0x3e800000
+// 0.234375
+0x3e700000
+// 0.218750
+0x3e600000
+// 0.203125
+0x3e500000
+// 0.187500
+0x3e400000
+// 0.171875
+0x3e300000
+// 0.156250
+0x3e200000
+// 0.140625
+0x3e100000
+// 0.125000
+0x3e000000
+// 0.109375
+0x3de00000
+// 0.093750
+0x3dc00000
+// 0.078125
+0x3da00000
+// 0.062500
+0x3d800000
+// 0.046875
+0x3d400000
+// 0.031250
+0x3d000000
+// 0.015625
+0x3c800000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefBlackman_harris_92db_10_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000060
+0x387ba882
+// 0.000094
+0x38c5b9ed
+// 0.000200
+0x39513939
+// 0.000383
+0x39c8c505
+// 0.000656
+0x3a2c1859
+// 0.001037
+0x3a87ead2
+// 0.001546
+0x3acaa05c
+// 0.002210
+0x3b10cfb2
+// 0.003059
+0x3b487c4d
+// 0.004130
+0x3b875626
+// 0.005463
+0x3bb30130
+// 0.007102
+0x3be8b5b3
+// 0.009096
+0x3c1506dc
+// 0.011498
+0x3c3c6279
+// 0.014365
+0x3c6b5b2e
+// 0.017757
+0x3c91764c
+// 0.021736
+0x3cb20f5b
+// 0.026368
+0x3cd801df
+// 0.031721
+0x3d01ed71
+// 0.037862
+0x3d1b14fa
+// 0.044861
+0x3d37bfd2
+// 0.052786
+0x3d5835e5
+// 0.061704
+0x3d7cbdd7
+// 0.071682
+0x3d92ce04
+// 0.082780
+0x3da988c2
+// 0.095057
+0x3dc2ad75
+// 0.108566
+0x3dde57a8
+// 0.123351
+0x3dfc9f8b
+// 0.139453
+0x3e0eccb1
+// 0.156900
+0x3e20aa78
+// 0.175714
+0x3e33ee79
+// 0.195905
+0x3e489b49
+// 0.217470
+0x3e5eb075
+// 0.240396
+0x3e762a4d
+// 0.264655
+0x3e8780da
+// 0.290207
+0x3e9495f7
+// 0.316996
+0x3ea24d49
+// 0.344953
+0x3eb09db3
+// 0.373994
+0x3ebf7c2f
+// 0.404021
+0x3ecedbcf
+// 0.434920
+0x3edeadc6
+// 0.466564
+0x3eeee174
+// 0.498814
+0x3eff647f
+// 0.531516
+0x3f081175
+// 0.564508
+0x3f10839e
+// 0.597615
+0x3f18fd52
+// 0.630655
+0x3f217296
+// 0.663436
+0x3f29d6f4
+// 0.695764
+0x3f321d9a
+// 0.727439
+0x3f3a3973
+// 0.758260
+0x3f421d4f
+// 0.788025
+0x3f49bbfd
+// 0.816535
+0x3f510873
+// 0.843596
+0x3f57f5ea
+// 0.869019
+0x3f5e780a
+// 0.892624
+0x3f648302
+// 0.914241
+0x3f6a0bb1
+// 0.933712
+0x3f6f07c3
+// 0.950894
+0x3f736dcc
+// 0.965659
+0x3f773569
+// 0.977895
+0x3f7a5752
+// 0.987510
+0x3f7ccd77
+// 0.994431
+0x3f7e930a
+// 0.998605
+0x3f7fa496
+// 1.000000
+0x3f800000
+// 0.998605
+0x3f7fa496
+// 0.994431
+0x3f7e930a
+// 0.987510
+0x3f7ccd77
+// 0.977895
+0x3f7a5752
+// 0.965659
+0x3f773569
+// 0.950894
+0x3f736dcc
+// 0.933712
+0x3f6f07c3
+// 0.914241
+0x3f6a0bb1
+// 0.892624
+0x3f648302
+// 0.869019
+0x3f5e780a
+// 0.843596
+0x3f57f5ea
+// 0.816535
+0x3f510873
+// 0.788025
+0x3f49bbfd
+// 0.758260
+0x3f421d4f
+// 0.727439
+0x3f3a3973
+// 0.695764
+0x3f321d9a
+// 0.663436
+0x3f29d6f4
+// 0.630655
+0x3f217296
+// 0.597615
+0x3f18fd52
+// 0.564508
+0x3f10839e
+// 0.531516
+0x3f081175
+// 0.498814
+0x3eff647f
+// 0.466564
+0x3eeee174
+// 0.434920
+0x3edeadc6
+// 0.404021
+0x3ecedbcf
+// 0.373994
+0x3ebf7c2f
+// 0.344953
+0x3eb09db3
+// 0.316996
+0x3ea24d49
+// 0.290207
+0x3e9495f7
+// 0.264655
+0x3e8780da
+// 0.240396
+0x3e762a4d
+// 0.217470
+0x3e5eb075
+// 0.195905
+0x3e489b49
+// 0.175714
+0x3e33ee79
+// 0.156900
+0x3e20aa78
+// 0.139453
+0x3e0eccb1
+// 0.123351
+0x3dfc9f8b
+// 0.108566
+0x3dde57a8
+// 0.095057
+0x3dc2ad75
+// 0.082780
+0x3da988c2
+// 0.071682
+0x3d92ce04
+// 0.061704
+0x3d7cbdd7
+// 0.052786
+0x3d5835e5
+// 0.044861
+0x3d37bfd2
+// 0.037862
+0x3d1b14fa
+// 0.031721
+0x3d01ed71
+// 0.026368
+0x3cd801df
+// 0.021736
+0x3cb20f5b
+// 0.017757
+0x3c91764c
+// 0.014365
+0x3c6b5b2e
+// 0.011498
+0x3c3c6279
+// 0.009096
+0x3c1506dc
+// 0.007102
+0x3be8b5b3
+// 0.005463
+0x3bb30130
+// 0.004130
+0x3b875626
+// 0.003059
+0x3b487c4d
+// 0.002210
+0x3b10cfb2
+// 0.001546
+0x3acaa05c
+// 0.001037
+0x3a87ead2
+// 0.000656
+0x3a2c1859
+// 0.000383
+0x39c8c505
+// 0.000200
+0x39513939
+// 0.000094
+0x38c5b9ed

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHamming_3_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.080000
+0x3da3d70a
+// 0.080554
+0x3da4f98b
+// 0.082215
+0x3da8605a
+// 0.084979
+0x3dae095e
+// 0.088839
+0x3db5f11a
+// 0.093786
+0x3dc012ad
+// 0.099807
+0x3dcc67d9
+// 0.106890
+0x3ddae901
+// 0.115015
+0x3deb8d34
+// 0.124165
+0x3dfe4a2e
+// 0.134316
+0x3e098a31
+// 0.145445
+0x3e14ef7e
+// 0.157524
+0x3e214df7
+// 0.170525
+0x3e2e9dfc
+// 0.184415
+0x3e3cd756
+// 0.199162
+0x3e4bf140
+// 0.214731
+0x3e5be269
+// 0.231083
+0x3e6ca0fe
+// 0.248179
+0x3e7e22a9
+// 0.265978
+0x3e882e4f
+// 0.284438
+0x3e91a1d1
+// 0.303513
+0x3e9b6606
+// 0.323158
+0x3ea574e6
+// 0.343325
+0x3eafc840
+// 0.363966
+0x3eba59b4
+// 0.385031
+0x3ec522bd
+// 0.406469
+0x3ed01cb6
+// 0.428229
+0x3edb40d9
+// 0.450258
+0x3ee68847
+// 0.472504
+0x3ef1ec0b
+// 0.494912
+0x3efd651f
+// 0.517429
+0x3f047638
+// 0.540000
+0x3f0a3d71
+// 0.562571
+0x3f1004a9
+// 0.585088
+0x3f15c852
+// 0.607496
+0x3f1b84dc
+// 0.629742
+0x3f2136be
+// 0.651771
+0x3f26da75
+// 0.673531
+0x3f2c6c86
+// 0.694969
+0x3f31e983
+// 0.716034
+0x3f374e07
+// 0.736675
+0x3f3c96c1
+// 0.756842
+0x3f41c06e
+// 0.776487
+0x3f46c7df
+// 0.795562
+0x3f4ba9f9
+// 0.814022
+0x3f5063ba
+// 0.831821
+0x3f54f237
+// 0.848917
+0x3f5952a2
+// 0.865269
+0x3f5d8247
+// 0.880838
+0x3f617e91
+// 0.895585
+0x3f65450c
+// 0.909475
+0x3f68d362
+// 0.922476
+0x3f6c2763
+// 0.934555
+0x3f6f3f02
+// 0.945684
+0x3f721855
+// 0.955835
+0x3f74b19c
+// 0.964985
+0x3f77093b
+// 0.973110
+0x3f791dc1
+// 0.980193
+0x3f7aede6
+// 0.986214
+0x3f7c788c
+// 0.991161
+0x3f7dbcbe
+// 0.995021
+0x3f7eb9b6
+// 0.997785
+0x3f7f6ed6
+// 0.999446
+0x3f7fdbb0
+// 1.000000
+0x3f800000
+// 0.999446
+0x3f7fdbb0
+// 0.997785
+0x3f7f6ed6
+// 0.995021
+0x3f7eb9b6
+// 0.991161
+0x3f7dbcbe
+// 0.986214
+0x3f7c788c
+// 0.980193
+0x3f7aede6
+// 0.973110
+0x3f791dc1
+// 0.964985
+0x3f77093b
+// 0.955835
+0x3f74b19c
+// 0.945684
+0x3f721855
+// 0.934555
+0x3f6f3f02
+// 0.922476
+0x3f6c2763
+// 0.909475
+0x3f68d362
+// 0.895585
+0x3f65450c
+// 0.880838
+0x3f617e91
+// 0.865269
+0x3f5d8247
+// 0.848917
+0x3f5952a2
+// 0.831821
+0x3f54f237
+// 0.814022
+0x3f5063ba
+// 0.795562
+0x3f4ba9f9
+// 0.776487
+0x3f46c7df
+// 0.756842
+0x3f41c06e
+// 0.736675
+0x3f3c96c1
+// 0.716034
+0x3f374e07
+// 0.694969
+0x3f31e983
+// 0.673531
+0x3f2c6c86
+// 0.651771
+0x3f26da75
+// 0.629742
+0x3f2136be
+// 0.607496
+0x3f1b84dc
+// 0.585088
+0x3f15c852
+// 0.562571
+0x3f1004a9
+// 0.540000
+0x3f0a3d71
+// 0.517429
+0x3f047638
+// 0.494912
+0x3efd651f
+// 0.472504
+0x3ef1ec0b
+// 0.450258
+0x3ee68847
+// 0.428229
+0x3edb40d9
+// 0.406469
+0x3ed01cb6
+// 0.385031
+0x3ec522bd
+// 0.363966
+0x3eba59b4
+// 0.343325
+0x3eafc840
+// 0.323158
+0x3ea574e6
+// 0.303513
+0x3e9b6606
+// 0.284438
+0x3e91a1d1
+// 0.265978
+0x3e882e4f
+// 0.248179
+0x3e7e22a9
+// 0.231083
+0x3e6ca0fe
+// 0.214731
+0x3e5be269
+// 0.199162
+0x3e4bf140
+// 0.184415
+0x3e3cd756
+// 0.170525
+0x3e2e9dfc
+// 0.157524
+0x3e214df7
+// 0.145445
+0x3e14ef7e
+// 0.134316
+0x3e098a31
+// 0.124165
+0x3dfe4a2e
+// 0.115015
+0x3deb8d34
+// 0.106890
+0x3ddae901
+// 0.099807
+0x3dcc67d9
+// 0.093786
+0x3dc012ad
+// 0.088839
+0x3db5f11a
+// 0.084979
+0x3dae095e
+// 0.082215
+0x3da8605a
+// 0.080554
+0x3da4f98b

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHanning_4_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x0
+// 0.000602
+0x3a1de1c8
+// 0.002408
+0x3b1dc971
+// 0.005412
+0x3bb15502
+// 0.009607
+0x3c1d6830
+// 0.014984
+0x3c758104
+// 0.021530
+0x3cb05f55
+// 0.029228
+0x3cef6f7e
+// 0.038060
+0x3d1be50c
+// 0.048005
+0x3d44a143
+// 0.059039
+0x3d71d344
+// 0.071136
+0x3d91af97
+// 0.084265
+0x3dac933b
+// 0.098396
+0x3dc983f7
+// 0.113495
+0x3de86ff3
+// 0.129524
+0x3e04a20e
+// 0.146447
+0x3e15f61a
+// 0.164221
+0x3e28296d
+// 0.182803
+0x3e3b30ce
+// 0.202150
+0x3e4f0080
+// 0.222215
+0x3e638c4c
+// 0.242949
+0x3e78c786
+// 0.264302
+0x3e87528b
+// 0.286222
+0x3e928bc0
+// 0.308658
+0x3e9e0875
+// 0.331555
+0x3ea9c196
+// 0.354858
+0x3eb5afe7
+// 0.378510
+0x3ec1cc0d
+// 0.402455
+0x3ece0e90
+// 0.426635
+0x3eda6fdf
+// 0.450991
+0x3ee6e859
+// 0.475466
+0x3ef3704d
+// 0.500000
+0x3f000000
+// 0.524534
+0x3f0647d9
+// 0.549009
+0x3f0c8bd3
+// 0.573365
+0x3f12c810
+// 0.597545
+0x3f18f8b8
+// 0.621490
+0x3f1f19f9
+// 0.645142
+0x3f25280c
+// 0.668445
+0x3f2b1f35
+// 0.691342
+0x3f30fbc5
+// 0.713778
+0x3f36ba20
+// 0.735698
+0x3f3c56ba
+// 0.757051
+0x3f41ce1e
+// 0.777785
+0x3f471ced
+// 0.797850
+0x3f4c3fe0
+// 0.817197
+0x3f5133cd
+// 0.835779
+0x3f55f5a5
+// 0.853553
+0x3f5a827a
+// 0.870476
+0x3f5ed77d
+// 0.886505
+0x3f62f202
+// 0.901604
+0x3f66cf81
+// 0.915735
+0x3f6a6d99
+// 0.928864
+0x3f6dca0d
+// 0.940961
+0x3f70e2cc
+// 0.951995
+0x3f73b5ec
+// 0.961940
+0x3f7641af
+// 0.970772
+0x3f788484
+// 0.978470
+0x3f7a7d05
+// 0.985016
+0x3f7c29fc
+// 0.990393
+0x3f7d8a5f
+// 0.994588
+0x3f7e9d56
+// 0.997592
+0x3f7f6237
+// 0.999398
+0x3f7fd888
+// 1.000000
+0x3f800000
+// 0.999398
+0x3f7fd888
+// 0.997592
+0x3f7f6237
+// 0.994588
+0x3f7e9d56
+// 0.990393
+0x3f7d8a5f
+// 0.985016
+0x3f7c29fc
+// 0.978470
+0x3f7a7d05
+// 0.970772
+0x3f788484
+// 0.961940
+0x3f7641af
+// 0.951995
+0x3f73b5ec
+// 0.940961
+0x3f70e2cc
+// 0.928864
+0x3f6dca0d
+// 0.915735
+0x3f6a6d99
+// 0.901604
+0x3f66cf81
+// 0.886505
+0x3f62f202
+// 0.870476
+0x3f5ed77d
+// 0.853553
+0x3f5a827a
+// 0.835779
+0x3f55f5a5
+// 0.817197
+0x3f5133cd
+// 0.797850
+0x3f4c3fe0
+// 0.777785
+0x3f471ced
+// 0.757051
+0x3f41ce1e
+// 0.735698
+0x3f3c56ba
+// 0.713778
+0x3f36ba20
+// 0.691342
+0x3f30fbc5
+// 0.668445
+0x3f2b1f35
+// 0.645142
+0x3f25280c
+// 0.621490
+0x3f1f19f9
+// 0.597545
+0x3f18f8b8
+// 0.573365
+0x3f12c810
+// 0.549009
+0x3f0c8bd3
+// 0.524534
+0x3f0647d9
+// 0.500000
+0x3f000000
+// 0.475466
+0x3ef3704d
+// 0.450991
+0x3ee6e859
+// 0.426635
+0x3eda6fdf
+// 0.402455
+0x3ece0e90
+// 0.378510
+0x3ec1cc0d
+// 0.354858
+0x3eb5afe7
+// 0.331555
+0x3ea9c196
+// 0.308658
+0x3e9e0875
+// 0.286222
+0x3e928bc0
+// 0.264302
+0x3e87528b
+// 0.242949
+0x3e78c786
+// 0.222215
+0x3e638c4c
+// 0.202150
+0x3e4f0080
+// 0.182803
+0x3e3b30ce
+// 0.164221
+0x3e28296d
+// 0.146447
+0x3e15f61a
+// 0.129524
+0x3e04a20e
+// 0.113495
+0x3de86ff3
+// 0.098396
+0x3dc983f7
+// 0.084265
+0x3dac933b
+// 0.071136
+0x3d91af97
+// 0.059039
+0x3d71d344
+// 0.048005
+0x3d44a143
+// 0.038060
+0x3d1be50c
+// 0.029228
+0x3cef6f7e
+// 0.021530
+0x3cb05f55
+// 0.014984
+0x3c758104
+// 0.009607
+0x3c1d6830
+// 0.005412
+0x3bb15502
+// 0.002408
+0x3b1dc971
+// 0.000602
+0x3a1de1c8

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft116d_15_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x25150000
+// -0.000029
+0xb7f55c9b
+// -0.000125
+0xb9029229
+// -0.000309
+0xb9a1c90a
+// -0.000620
+0xba228540
+// -0.001114
+0xba91fd1f
+// -0.001863
+0xbaf427c4
+// -0.002958
+0xbb41d997
+// -0.004509
+0xbb93c417
+// -0.006647
+0xbbd9cd6f
+// -0.009518
+0xbc1bf15b
+// -0.013288
+0xbc59b63c
+// -0.018136
+0xbc94926d
+// -0.024251
+0xbcc6aac6
+// -0.031826
+0xbd025c0b
+// -0.041049
+0xbd2822cf
+// -0.052094
+0xbd5560d7
+// -0.065112
+0xbd855967
+// -0.080213
+0xbda44691
+// -0.097455
+0xbdc79663
+// -0.116828
+0xbdef436e
+// -0.138237
+0xbe0d8ded
+// -0.161485
+0xbe255c70
+// -0.186261
+0xbe3ebb4f
+// -0.212121
+0xbe593649
+// -0.238478
+0xbe743398
+// -0.264593
+0xbe8778c4
+// -0.289570
+0xbe94427d
+// -0.312352
+0xbe9fec8d
+// -0.331728
+0xbea9d838
+// -0.346342
+0xbeb153b3
+// -0.354707
+0xbeb59c37
+// -0.355232
+0xbeb5e0eb
+// -0.346242
+0xbeb14699
+// -0.326021
+0xbea6ec40
+// -0.292849
+0xbe95f054
+// -0.245046
+0xbe7aed5e
+// -0.181023
+0xbe395dfc
+// -0.099331
+0xbdcb6e3b
+// 0.001280
+0x3aa7b608
+// 0.121814
+0x3df97982
+// 0.262976
+0x3e86a4cc
+// 0.425125
+0x3ed9a9f1
+// 0.608230
+0x3f1bb4fa
+// 0.811841
+0x3f4fd4d3
+// 1.035059
+0x3f847cce
+// 1.276522
+0x3fa3650f
+// 1.534402
+0x3fc4674b
+// 1.806417
+0x3fe738a8
+// 2.089844
+0x4005c002
+// 2.381564
+0x40186b8b
+// 2.678100
+0x402b65fe
+// 2.975682
+0x403e7193
+// 3.270312
+0x40514ccb
+// 3.557845
+0x4063b3bc
+// 3.834073
+0x40756176
+// 4.094817
+0x408308bd
+// 4.336015
+0x408ac0a3
+// 4.553821
+0x4091b8e7
+// 4.744689
+0x4097d47d
+// 4.905459
+0x409cf984
+// 5.033433
+0x40a111e2
+// 5.126441
+0x40a40bce
+// 5.182893
+0x40a5da42
+// 5.201819
+0x40a6754d
+// 5.182893
+0x40a5da42
+// 5.126441
+0x40a40bce
+// 5.033433
+0x40a111e2
+// 4.905459
+0x409cf984
+// 4.744689
+0x4097d47d
+// 4.553821
+0x4091b8e7
+// 4.336015
+0x408ac0a3
+// 4.094817
+0x408308bd
+// 3.834073
+0x40756176
+// 3.557845
+0x4063b3bc
+// 3.270312
+0x40514ccb
+// 2.975682
+0x403e7193
+// 2.678100
+0x402b65fe
+// 2.381564
+0x40186b8b
+// 2.089844
+0x4005c002
+// 1.806417
+0x3fe738a8
+// 1.534402
+0x3fc4674b
+// 1.276522
+0x3fa3650f
+// 1.035059
+0x3f847cce
+// 0.811841
+0x3f4fd4d3
+// 0.608230
+0x3f1bb4fa
+// 0.425125
+0x3ed9a9f1
+// 0.262976
+0x3e86a4cc
+// 0.121814
+0x3df97982
+// 0.001280
+0x3aa7b608
+// -0.099331
+0xbdcb6e3b
+// -0.181023
+0xbe395dfc
+// -0.245046
+0xbe7aed5e
+// -0.292849
+0xbe95f054
+// -0.326021
+0xbea6ec40
+// -0.346242
+0xbeb14699
+// -0.355232
+0xbeb5e0eb
+// -0.354707
+0xbeb59c37
+// -0.346342
+0xbeb153b3
+// -0.331728
+0xbea9d838
+// -0.312352
+0xbe9fec8d
+// -0.289570
+0xbe94427d
+// -0.264593
+0xbe8778c4
+// -0.238478
+0xbe743398
+// -0.212121
+0xbe593649
+// -0.186261
+0xbe3ebb4f
+// -0.161485
+0xbe255c70
+// -0.138237
+0xbe0d8ded
+// -0.116828
+0xbdef436e
+// -0.097455
+0xbdc79663
+// -0.080213
+0xbda44691
+// -0.065112
+0xbd855967
+// -0.052094
+0xbd5560d7
+// -0.041049
+0xbd2822cf
+// -0.031826
+0xbd025c0b
+// -0.024251
+0xbcc6aac6
+// -0.018136
+0xbc94926d
+// -0.013288
+0xbc59b63c
+// -0.009518
+0xbc1bf15b
+// -0.006647
+0xbbd9cd6f
+// -0.004509
+0xbb93c417
+// -0.002958
+0xbb41d997
+// -0.001863
+0xbaf427c4
+// -0.001114
+0xba91fd1f
+// -0.000620
+0xba228540
+// -0.000309
+0xb9a1c90a
+// -0.000125
+0xb9029229
+// -0.000029
+0xb7f55c9b

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft144d_16_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x24cdc000
+// -0.000004
+0xb6818bc5
+// -0.000018
+0xb7944341
+// -0.000048
+0xb84b18f4
+// -0.000109
+0xb8e3f0f2
+// -0.000218
+0xb964a754
+// -0.000405
+0xb9d4538b
+// -0.000709
+0xba39de7e
+// -0.001184
+0xba9b1fd7
+// -0.001898
+0xbaf8c861
+// -0.002941
+0xbb40c459
+// -0.004424
+0xbb90f33f
+// -0.006478
+0xbbd44222
+// -0.009261
+0xbc17ba48
+// -0.012953
+0xbc543ae8
+// -0.017758
+0xbc917974
+// -0.023894
+0xbcc3bde6
+// -0.031593
+0xbd01678e
+// -0.041087
+0xbd284b27
+// -0.052601
+0xbd577487
+// -0.066335
+0xbd87daae
+// -0.082447
+0xbda8d9fd
+// -0.101035
+0xbdceeb35
+// -0.122111
+0xbdfa158e
+// -0.145584
+0xbe151405
+// -0.171228
+0xbe2f564d
+// -0.198661
+0xbe4b6dba
+// -0.227324
+0xbe68c796
+// -0.256459
+0xbe834e91
+// -0.285093
+0xbe91f7c2
+// -0.312031
+0xbe9fc291
+// -0.335850
+0xbeabf47a
+// -0.354904
+0xbeb5b5fd
+// -0.367345
+0xbebc149f
+// -0.371142
+0xbebe0643
+// -0.364120
+0xbeba6df0
+// -0.344009
+0xbeb02202
+// -0.308500
+0xbe9df3c0
+// -0.255311
+0xbe82b81f
+// -0.182263
+0xbe3aa340
+// -0.087364
+0xbdb2eba8
+// 0.031114
+0x3cfee250
+// 0.174540
+0x3e32baa9
+// 0.343851
+0x3eb00d48
+// 0.539471
+0x3f0a1ac2
+// 0.761243
+0x3f42e0d4
+// 1.008380
+0x3f81129a
+// 1.279423
+0x3fa3c422
+// 1.572223
+0x3fc93e9b
+// 1.883943
+0x3ff1250c
+// 2.211081
+0x400d825b
+// 2.549517
+0x40232b4b
+// 2.894582
+0x403940d7
+// 3.241149
+0x404f6efd
+// 3.583742
+0x40655c06
+// 3.916662
+0x407aaa99
+// 4.234131
+0x40877e01
+// 4.530433
+0x4090f94f
+// 4.800071
+0x40999a2e
+// 5.037912
+0x40a13694
+// 5.239336
+0x40a7a8a5
+// 5.400363
+0x40accfc7
+// 5.517770
+0x40b09192
+// 5.589183
+0x40b2da97
+// 5.613150
+0x40b39eee
+// 5.589183
+0x40b2da97
+// 5.517770
+0x40b09192
+// 5.400363
+0x40accfc7
+// 5.239336
+0x40a7a8a5
+// 5.037912
+0x40a13694
+// 4.800071
+0x40999a2e
+// 4.530433
+0x4090f94f
+// 4.234131
+0x40877e01
+// 3.916662
+0x407aaa99
+// 3.583742
+0x40655c06
+// 3.241149
+0x404f6efd
+// 2.894582
+0x403940d7
+// 2.549517
+0x40232b4b
+// 2.211081
+0x400d825b
+// 1.883943
+0x3ff1250c
+// 1.572223
+0x3fc93e9b
+// 1.279423
+0x3fa3c422
+// 1.008380
+0x3f81129a
+// 0.761243
+0x3f42e0d4
+// 0.539471
+0x3f0a1ac2
+// 0.343851
+0x3eb00d48
+// 0.174540
+0x3e32baa9
+// 0.031114
+0x3cfee250
+// -0.087364
+0xbdb2eba8
+// -0.182263
+0xbe3aa340
+// -0.255311
+0xbe82b81f
+// -0.308500
+0xbe9df3c0
+// -0.344009
+0xbeb02202
+// -0.364120
+0xbeba6df0
+// -0.371142
+0xbebe0643
+// -0.367345
+0xbebc149f
+// -0.354904
+0xbeb5b5fd
+// -0.335850
+0xbeabf47a
+// -0.312031
+0xbe9fc291
+// -0.285093
+0xbe91f7c2
+// -0.256459
+0xbe834e91
+// -0.227324
+0xbe68c796
+// -0.198661
+0xbe4b6dba
+// -0.171228
+0xbe2f564d
+// -0.145584
+0xbe151405
+// -0.122111
+0xbdfa158e
+// -0.101035
+0xbdceeb35
+// -0.082447
+0xbda8d9fd
+// -0.066335
+0xbd87daae
+// -0.052601
+0xbd577487
+// -0.041087
+0xbd284b27
+// -0.031593
+0xbd01678e
+// -0.023894
+0xbcc3bde6
+// -0.017758
+0xbc917974
+// -0.012953
+0xbc543ae8
+// -0.009261
+0xbc17ba48
+// -0.006478
+0xbbd44222
+// -0.004424
+0xbb90f33f
+// -0.002941
+0xbb40c459
+// -0.001898
+0xbaf8c861
+// -0.001184
+0xba9b1fd7
+// -0.000709
+0xba39de7e
+// -0.000405
+0xb9d4538b
+// -0.000218
+0xb964a754
+// -0.000109
+0xb8e3f0f2
+// -0.000048
+0xb84b18f4
+// -0.000018
+0xb7944341
+// -0.000004
+0xb6818bc5

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft169d_17_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// -0.000000
+0xa502b800
+// -0.000000
+0xb4efad07
+// -0.000002
+0xb61924b1
+// -0.000007
+0xb6efd552
+// -0.000018
+0xb79972ad
+// -0.000041
+0xb82d8723
+// -0.000086
+0xb8b38b98
+// -0.000165
+0xb92d6a07
+// -0.000302
+0xb99e6c38
+// -0.000527
+0xba0a288d
+// -0.000883
+0xba6796f2
+// -0.001430
+0xbabb7eb0
+// -0.002246
+0xbb1334e3
+// -0.003431
+0xbb60dca5
+// -0.005111
+0xbba77d2a
+// -0.007441
+0xbbf3d4e0
+// -0.010604
+0xbc2dbdf1
+// -0.014814
+0xbc72b83e
+// -0.020312
+0xbca6659d
+// -0.027361
+0xbce02386
+// -0.036238
+0xbd146e01
+// -0.047223
+0xbd416d3a
+// -0.060584
+0xbd782702
+// -0.076553
+0xbd9cc7c7
+// -0.095305
+0xbdc32f02
+// -0.116927
+0xbdef774b
+// -0.141389
+0xbe10c84e
+// -0.168508
+0xbe2c8d74
+// -0.197914
+0xbe4aa9e2
+// -0.229012
+0xbe6a822e
+// -0.260958
+0xbe859c3c
+// -0.292623
+0xbe95d2bc
+// -0.322584
+0xbea529bf
+// -0.349106
+0xbeb2be04
+// -0.370150
+0xbebd844d
+// -0.383389
+0xbec44ba1
+// -0.386243
+0xbec5c1ad
+// -0.375926
+0xbec07959
+// -0.349515
+0xbeb2f3a5
+// -0.304037
+0xbe9baab3
+// -0.236563
+0xbe723da0
+// -0.144326
+0xbe13ca51
+// -0.024839
+0xbccb7b51
+// 0.123979
+0x3dfde8d5
+// 0.303675
+0x3e9b7b57
+// 0.515142
+0x3f03e05f
+// 0.758511
+0x3f422dc0
+// 1.033057
+0x3f843b34
+// 1.337136
+0x3fab2745
+// 1.668143
+0x3fd585b7
+// 2.022506
+0x400170bb
+// 2.395712
+0x4019535a
+// 2.782380
+0x40321285
+// 3.176357
+0x404b496d
+// 3.570856
+0x406488e8
+// 3.958632
+0x407d5a3a
+// 4.332170
+0x408aa123
+// 4.683903
+0x4095e289
+// 5.006440
+0x40a034c2
+// 5.292794
+0x40a95e91
+// 5.536603
+0x40b12bdb
+// 5.732346
+0x40b76f61
+// 5.875517
+0x40bc043d
+// 5.962786
+0x40becf24
+// 5.992105
+0x40bfbf53
+// 5.962786
+0x40becf24
+// 5.875517
+0x40bc043d
+// 5.732346
+0x40b76f61
+// 5.536603
+0x40b12bdb
+// 5.292794
+0x40a95e91
+// 5.006440
+0x40a034c2
+// 4.683903
+0x4095e289
+// 4.332170
+0x408aa123
+// 3.958632
+0x407d5a3a
+// 3.570856
+0x406488e8
+// 3.176357
+0x404b496d
+// 2.782380
+0x40321285
+// 2.395712
+0x4019535a
+// 2.022506
+0x400170bb
+// 1.668143
+0x3fd585b7
+// 1.337136
+0x3fab2745
+// 1.033057
+0x3f843b34
+// 0.758511
+0x3f422dc0
+// 0.515142
+0x3f03e05f
+// 0.303675
+0x3e9b7b57
+// 0.123979
+0x3dfde8d5
+// -0.024839
+0xbccb7b51
+// -0.144326
+0xbe13ca51
+// -0.236563
+0xbe723da0
+// -0.304037
+0xbe9baab3
+// -0.349515
+0xbeb2f3a5
+// -0.375926
+0xbec07959
+// -0.386243
+0xbec5c1ad
+// -0.383389
+0xbec44ba1
+// -0.370150
+0xbebd844d
+// -0.349106
+0xbeb2be04
+// -0.322584
+0xbea529bf
+// -0.292623
+0xbe95d2bc
+// -0.260958
+0xbe859c3c
+// -0.229012
+0xbe6a822e
+// -0.197914
+0xbe4aa9e2
+// -0.168508
+0xbe2c8d74
+// -0.141389
+0xbe10c84e
+// -0.116927
+0xbdef774b
+// -0.095305
+0xbdc32f02
+// -0.076553
+0xbd9cc7c7
+// -0.060584
+0xbd782702
+// -0.047223
+0xbd416d3a
+// -0.036238
+0xbd146e01
+// -0.027361
+0xbce02386
+// -0.020312
+0xbca6659d
+// -0.014814
+0xbc72b83e
+// -0.010604
+0xbc2dbdf1
+// -0.007441
+0xbbf3d4e0
+// -0.005111
+0xbba77d2a
+// -0.003431
+0xbb60dca5
+// -0.002246
+0xbb1334e3
+// -0.001430
+0xbabb7eb0
+// -0.000883
+0xba6796f2
+// -0.000527
+0xba0a288d
+// -0.000302
+0xb99e6c38
+// -0.000165
+0xb92d6a07
+// -0.000086
+0xb8b38b98
+// -0.000041
+0xb82d8723
+// -0.000018
+0xb79972ad
+// -0.000007
+0xb6efd552
+// -0.000002
+0xb61924b1
+// -0.000000
+0xb4efad07

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft196d_18_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// -0.000000
+0xa46e4c00
+// -0.000000
+0xb362e471
+// -0.000000
+0xb4a4940f
+// -0.000001
+0xb593af3c
+// -0.000003
+0xb655e23e
+// -0.000008
+0xb7070627
+// -0.000018
+0xb79a53e1
+// -0.000039
+0xb82350fe
+// -0.000077
+0xb8a266f3
+// -0.000146
+0xb9195233
+// -0.000264
+0xb98a7536
+// -0.000459
+0xb9f0901a
+// -0.000770
+0xba49ec57
+// -0.001254
+0xbaa456ac
+// -0.001984
+0xbb020d5f
+// -0.003061
+0xbb489d1f
+// -0.004611
+0xbb9717fc
+// -0.006793
+0xbbde9b1f
+// -0.009803
+0xbc209b52
+// -0.013870
+0xbc633dd4
+// -0.019261
+0xbc9dc993
+// -0.026275
+0xbcd73eff
+// -0.035234
+0xbd10510a
+// -0.046469
+0xbd3e5630
+// -0.060306
+0xbd7703e2
+// -0.077039
+0xbd9dc6d8
+// -0.096899
+0xbdc672ed
+// -0.120017
+0xbdf5cb81
+// -0.146386
+0xbe15e618
+// -0.175810
+0xbe34076b
+// -0.207860
+0xbe54d931
+// -0.241825
+0xbe77a0e1
+// -0.276666
+0xbe8da722
+// -0.310980
+0xbe9f38c0
+// -0.342972
+0xbeaf99f9
+// -0.370440
+0xbebdaa59
+// -0.390785
+0xbec814f4
+// -0.401030
+0xbecd53d5
+// -0.397877
+0xbecbb698
+// -0.377780
+0xbec16c58
+// -0.337044
+0xbeac910a
+// -0.271958
+0xbe8b3e06
+// -0.178936
+0xbe373b07
+// -0.054690
+0xbd600255
+// 0.103600
+0x3dd42c52
+// 0.298100
+0x3e98a092
+// 0.530149
+0x3f07b7d3
+// 0.800096
+0x3f4cd318
+// 1.107166
+0x3f8db79f
+// 1.449354
+0x3fb98472
+// 1.823366
+0x3fe96411
+// 2.224606
+0x400e5ff1
+// 2.647219
+0x40296c09
+// 3.084192
+0x40456366
+// 3.527507
+0x4061c2ae
+// 3.968354
+0x407df982
+// 4.397380
+0x408cb757
+// 4.804989
+0x4099c278
+// 5.181654
+0x40a5d01c
+// 5.518251
+0x40b09583
+// 5.806386
+0x40b9cdea
+// 6.038705
+0x40c13d12
+// 6.209171
+0x40c6b188
+// 6.313297
+0x40ca0686
+// 6.348316
+0x40cb2568
+// 6.313297
+0x40ca0686
+// 6.209171
+0x40c6b188
+// 6.038705
+0x40c13d12
+// 5.806386
+0x40b9cdea
+// 5.518251
+0x40b09583
+// 5.181654
+0x40a5d01c
+// 4.804989
+0x4099c278
+// 4.397380
+0x408cb757
+// 3.968354
+0x407df982
+// 3.527507
+0x4061c2ae
+// 3.084192
+0x40456366
+// 2.647219
+0x40296c09
+// 2.224606
+0x400e5ff1
+// 1.823366
+0x3fe96411
+// 1.449354
+0x3fb98472
+// 1.107166
+0x3f8db79f
+// 0.800096
+0x3f4cd318
+// 0.530149
+0x3f07b7d3
+// 0.298100
+0x3e98a092
+// 0.103600
+0x3dd42c52
+// -0.054690
+0xbd600255
+// -0.178936
+0xbe373b07
+// -0.271958
+0xbe8b3e06
+// -0.337044
+0xbeac910a
+// -0.377780
+0xbec16c58
+// -0.397877
+0xbecbb698
+// -0.401030
+0xbecd53d5
+// -0.390785
+0xbec814f4
+// -0.370440
+0xbebdaa59
+// -0.342972
+0xbeaf99f9
+// -0.310980
+0xbe9f38c0
+// -0.276666
+0xbe8da722
+// -0.241825
+0xbe77a0e1
+// -0.207860
+0xbe54d931
+// -0.175810
+0xbe34076b
+// -0.146386
+0xbe15e618
+// -0.120017
+0xbdf5cb81
+// -0.096899
+0xbdc672ed
+// -0.077039
+0xbd9dc6d8
+// -0.060306
+0xbd7703e2
+// -0.046469
+0xbd3e5630
+// -0.035234
+0xbd10510a
+// -0.026275
+0xbcd73eff
+// -0.019261
+0xbc9dc993
+// -0.013870
+0xbc633dd4
+// -0.009803
+0xbc209b52
+// -0.006793
+0xbbde9b1f
+// -0.004611
+0xbb9717fc
+// -0.003061
+0xbb489d1f
+// -0.001984
+0xbb020d5f
+// -0.001254
+0xbaa456ac
+// -0.000770
+0xba49ec57
+// -0.000459
+0xb9f0901a
+// -0.000264
+0xb98a7536
+// -0.000146
+0xb9195233
+// -0.000077
+0xb8a266f3
+// -0.000039
+0xb82350fe
+// -0.000018
+0xb79a53e1
+// -0.000008
+0xb7070627
+// -0.000003
+0xb655e23e
+// -0.000001
+0xb593af3c
+// -0.000000
+0xb4a4940f
+// -0.000000
+0xb362e471

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft223d_19_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// -0.000000
+0xa522a810
+// -0.000000
+0xb1a97ef1
+// -0.000000
+0xb31188b7
+// -0.000000
+0xb41975c4
+// -0.000000
+0xb4ff8783
+// -0.000001
+0xb5b661f2
+// -0.000003
+0xb668d21c
+// -0.000008
+0xb7084b6a
+// -0.000018
+0xb794cc2e
+// -0.000037
+0xb8193b36
+// -0.000072
+0xb8961a7e
+// -0.000134
+0xb90cc411
+// -0.000242
+0xb97e038e
+// -0.000422
+0xb9dd6076
+// -0.000713
+0xba3af5a4
+// -0.001170
+0xba9968eb
+// -0.001870
+0xbaf526fd
+// -0.002916
+0xbb3f174f
+// -0.004441
+0xbb9189d1
+// -0.006619
+0xbbd8e60b
+// -0.009663
+0xbc1e4fc5
+// -0.013830
+0xbc62953a
+// -0.019423
+0xbc9f1c4a
+// -0.026786
+0xbcdb6d67
+// -0.036294
+0xbd14a90c
+// -0.048341
+0xbd46015f
+// -0.063315
+0xbd81ab44
+// -0.081568
+0xbda70cf4
+// -0.103376
+0xbdd3b70e
+// -0.128896
+0xbe03fd31
+// -0.158100
+0xbe21e503
+// -0.190725
+0xbe434d86
+// -0.226201
+0xbe67a134
+// -0.263586
+0xbe86f4c3
+// -0.301511
+0xbe9a5f9f
+// -0.338125
+0xbead1eb6
+// -0.371065
+0xbebdfc45
+// -0.397443
+0xbecb7daf
+// -0.413861
+0xbed3e588
+// -0.416457
+0xbed539dd
+// -0.400995
+0xbecd4f34
+// -0.362980
+0xbeb9d87a
+// -0.297820
+0xbe987bda
+// -0.201020
+0xbe4dd819
+// -0.068401
+0xbd8c15b3
+// 0.103656
+0x3dd44985
+// 0.317959
+0x3ea2cb95
+// 0.576263
+0x3f1385ff
+// 0.879038
+0x3f61089b
+// 1.225276
+0x3f9cd5d6
+// 1.612351
+0x3fce6185
+// 2.035935
+0x40024cc3
+// 2.489990
+0x401f5bfe
+// 2.966841
+0x403de0b7
+// 3.457334
+0x405d44f4
+// 3.951076
+0x407cde70
+// 4.436755
+0x408df9e5
+// 4.902512
+0x409ce160
+// 5.336379
+0x40aac39e
+// 5.726733
+0x40b74165
+// 6.062758
+0x40c2021d
+// 6.334894
+0x40cab773
+// 6.535236
+0x40d120a7
+// 6.657879
+0x40d50d58
+// 6.699171
+0x40d65f9d
+// 6.657879
+0x40d50d58
+// 6.535236
+0x40d120a7
+// 6.334894
+0x40cab773
+// 6.062758
+0x40c2021d
+// 5.726733
+0x40b74165
+// 5.336379
+0x40aac39e
+// 4.902512
+0x409ce160
+// 4.436755
+0x408df9e5
+// 3.951076
+0x407cde70
+// 3.457334
+0x405d44f4
+// 2.966841
+0x403de0b7
+// 2.489990
+0x401f5bfe
+// 2.035935
+0x40024cc3
+// 1.612351
+0x3fce6185
+// 1.225276
+0x3f9cd5d6
+// 0.879038
+0x3f61089b
+// 0.576263
+0x3f1385ff
+// 0.317959
+0x3ea2cb95
+// 0.103656
+0x3dd44985
+// -0.068401
+0xbd8c15b3
+// -0.201020
+0xbe4dd819
+// -0.297820
+0xbe987bda
+// -0.362980
+0xbeb9d87a
+// -0.400995
+0xbecd4f34
+// -0.416457
+0xbed539dd
+// -0.413861
+0xbed3e588
+// -0.397443
+0xbecb7daf
+// -0.371065
+0xbebdfc45
+// -0.338125
+0xbead1eb6
+// -0.301511
+0xbe9a5f9f
+// -0.263586
+0xbe86f4c3
+// -0.226201
+0xbe67a134
+// -0.190725
+0xbe434d86
+// -0.158100
+0xbe21e503
+// -0.128896
+0xbe03fd31
+// -0.103376
+0xbdd3b70e
+// -0.081568
+0xbda70cf4
+// -0.063315
+0xbd81ab44
+// -0.048341
+0xbd46015f
+// -0.036294
+0xbd14a90c
+// -0.026786
+0xbcdb6d67
+// -0.019423
+0xbc9f1c4a
+// -0.013830
+0xbc62953a
+// -0.009663
+0xbc1e4fc5
+// -0.006619
+0xbbd8e60b
+// -0.004441
+0xbb9189d1
+// -0.002916
+0xbb3f174f
+// -0.001870
+0xbaf526fd
+// -0.001170
+0xba9968eb
+// -0.000713
+0xba3af5a4
+// -0.000422
+0xb9dd6076
+// -0.000242
+0xb97e038e
+// -0.000134
+0xb90cc411
+// -0.000072
+0xb8961a7e
+// -0.000037
+0xb8193b36
+// -0.000018
+0xb794cc2e
+// -0.000008
+0xb7084b6a
+// -0.000003
+0xb668d21c
+// -0.000001
+0xb5b661f2
+// -0.000000
+0xb4ff8783
+// -0.000000
+0xb41975c4
+// -0.000000
+0xb31188b7
+// -0.000000
+0xb1a97ef1

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft248d_20_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x2418c510
+// -0.000000
+0xafd70bde
+// -0.000000
+0xb1668cee
+// -0.000000
+0xb2927855
+// -0.000000
+0xb38e41f5
+// -0.000000
+0xb467fb2f
+// -0.000001
+0xb526aab5
+// -0.000002
+0xb5d92f50
+// -0.000004
+0xb682c44f
+// -0.000009
+0xb7136fc6
+// -0.000019
+0xb79d239b
+// -0.000038
+0xb81f7923
+// -0.000074
+0xb89afaa5
+// -0.000138
+0xb910e074
+// -0.000249
+0xb982c0ef
+// -0.000436
+0xb9e48c43
+// -0.000740
+0xba41e8f6
+// -0.001221
+0xbaa00e51
+// -0.001965
+0xbb00c1d9
+// -0.003085
+0xbb4a34e9
+// -0.004736
+0xbb9b2fc1
+// -0.007113
+0xbbe91369
+// -0.010463
+0xbc2b6df3
+// -0.015088
+0xbc7731c1
+// -0.021341
+0xbcaed2fa
+// -0.029628
+0xbcf2b5fd
+// -0.040392
+0xbd2571a5
+// -0.054094
+0xbd5d91bc
+// -0.071186
+0xbd91c9ed
+// -0.092065
+0xbdbc8cd4
+// -0.117026
+0xbdefab13
+// -0.146188
+0xbe15b268
+// -0.179431
+0xbe37bcba
+// -0.216302
+0xbe5d7e25
+// -0.255934
+0xbe8309d9
+// -0.296966
+0xbe980bea
+// -0.337459
+0xbeacc779
+// -0.374849
+0xbebfec31
+// -0.405908
+0xbecfd32a
+// -0.426753
+0xbeda7f60
+// -0.432890
+0xbedda3bd
+// -0.419308
+0xbed6af87
+// -0.380628
+0xbec2e1ac
+// -0.311302
+0xbe9f6301
+// -0.205864
+0xbe52ce0b
+// -0.059220
+0xbd72912c
+// 0.133027
+0x3e08381c
+// 0.374243
+0x3ebf9ccf
+// 0.666434
+0x3f2a9b67
+// 1.009936
+0x3f814598
+// 1.403170
+0x3fb39b13
+// 1.842453
+0x3febd582
+// 2.321914
+0x40149a3d
+// 2.833508
+0x40355831
+// 3.367154
+0x40577f73
+// 3.910989
+0x407a4da3
+// 4.451736
+0x408e74a0
+// 4.975182
+0x409f34b1
+// 5.466723
+0x40aeef66
+// 5.911976
+0x40bd2ee9
+// 6.297405
+0x40c98458
+// 6.610934
+0x40d38cc6
+// 6.842510
+0x40daf5d9
+// 6.984583
+0x40df81b5
+// 7.032470
+0x40e109ff
+// 6.984583
+0x40df81b5
+// 6.842510
+0x40daf5d9
+// 6.610934
+0x40d38cc6
+// 6.297405
+0x40c98458
+// 5.911976
+0x40bd2ee9
+// 5.466723
+0x40aeef66
+// 4.975182
+0x409f34b1
+// 4.451736
+0x408e74a0
+// 3.910989
+0x407a4da3
+// 3.367154
+0x40577f73
+// 2.833508
+0x40355831
+// 2.321914
+0x40149a3d
+// 1.842453
+0x3febd582
+// 1.403170
+0x3fb39b13
+// 1.009936
+0x3f814598
+// 0.666434
+0x3f2a9b67
+// 0.374243
+0x3ebf9ccf
+// 0.133027
+0x3e08381c
+// -0.059220
+0xbd72912c
+// -0.205864
+0xbe52ce0b
+// -0.311302
+0xbe9f6301
+// -0.380628
+0xbec2e1ac
+// -0.419308
+0xbed6af87
+// -0.432890
+0xbedda3bd
+// -0.426753
+0xbeda7f60
+// -0.405908
+0xbecfd32a
+// -0.374849
+0xbebfec31
+// -0.337459
+0xbeacc779
+// -0.296966
+0xbe980bea
+// -0.255934
+0xbe8309d9
+// -0.216302
+0xbe5d7e25
+// -0.179431
+0xbe37bcba
+// -0.146188
+0xbe15b268
+// -0.117026
+0xbdefab13
+// -0.092065
+0xbdbc8cd4
+// -0.071186
+0xbd91c9ed
+// -0.054094
+0xbd5d91bc
+// -0.040392
+0xbd2571a5
+// -0.029628
+0xbcf2b5fd
+// -0.021341
+0xbcaed2fa
+// -0.015088
+0xbc7731c1
+// -0.010463
+0xbc2b6df3
+// -0.007113
+0xbbe91369
+// -0.004736
+0xbb9b2fc1
+// -0.003085
+0xbb4a34e9
+// -0.001965
+0xbb00c1d9
+// -0.001221
+0xbaa00e51
+// -0.000740
+0xba41e8f6
+// -0.000436
+0xb9e48c43
+// -0.000249
+0xb982c0ef
+// -0.000138
+0xb910e074
+// -0.000074
+0xb89afaa5
+// -0.000038
+0xb81f7923
+// -0.000019
+0xb79d239b
+// -0.000009
+0xb7136fc6
+// -0.000004
+0xb682c44f
+// -0.000002
+0xb5d92f50
+// -0.000001
+0xb526aab5
+// -0.000000
+0xb467fb2f
+// -0.000000
+0xb38e41f5
+// -0.000000
+0xb2927856
+// -0.000000
+0xb1668cee
+// -0.000000
+0xafd70bde

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft90d_13_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// -0.000000
+0xa4f00000
+// -0.000171
+0xb933564f
+// -0.000699
+0xba3740d1
+// -0.001628
+0xbad57244
+// -0.003032
+0xbb46b15d
+// -0.005008
+0xbba41729
+// -0.007677
+0xbbfb9341
+// -0.011182
+0xbc3733c8
+// -0.015675
+0xbc806944
+// -0.021321
+0xbcaea896
+// -0.028283
+0xbce7b0c6
+// -0.036719
+0xbd166704
+// -0.046775
+0xbd3f9710
+// -0.058569
+0xbd6fe68d
+// -0.072190
+0xbd93d831
+// -0.087679
+0xbdb390d4
+// -0.105025
+0xbdd7175b
+// -0.124153
+0xbdfe4428
+// -0.144914
+0xbe14644b
+// -0.167072
+0xbe2b150d
+// -0.190304
+0xbe42def8
+// -0.214183
+0xbe5b52c7
+// -0.238182
+0xbe73e602
+// -0.261666
+0xbe85f921
+// -0.283894
+0xbe915a90
+// -0.304019
+0xbe9ba86e
+// -0.321098
+0xbea466f0
+// -0.334095
+0xbeab0e88
+// -0.341900
+0xbeaf0d83
+// -0.343339
+0xbeafca18
+// -0.337196
+0xbeaca4e5
+// -0.322234
+0xbea4fbd3
+// -0.297221
+0xbe982d5a
+// -0.260956
+0xbe859c15
+// -0.212300
+0xbe596526
+// -0.150202
+0xbe19cea1
+// -0.073736
+0xbd97031e
+// 0.017872
+0x3c9268a3
+// 0.125215
+0x3e00387d
+// 0.248675
+0x3e7ea4c0
+// 0.388398
+0x3ec6dc20
+// 0.544273
+0x3f0b557e
+// 0.715916
+0x3f37463d
+// 0.902653
+0x3f671446
+// 1.103520
+0x3f8d4028
+// 1.317257
+0x3fa89be3
+// 1.542315
+0x3fc56a93
+// 1.776867
+0x3fe37064
+// 2.018831
+0x40013487
+// 2.265889
+0x40110453
+// 2.515523
+0x4020fe54
+// 2.765049
+0x4030f692
+// 3.011662
+0x4040bf10
+// 3.252476
+0x4050288f
+// 3.484579
+0x405f0358
+// 3.705082
+0x406d2012
+// 3.911171
+0x407a50a1
+// 4.100157
+0x4083347d
+// 4.269530
+0x40889ffd
+// 4.417004
+0x408d581a
+// 4.540565
+0x40914c4f
+// 4.638505
+0x40946ea2
+// 4.709460
+0x4096b3e6
+// 4.752437
+0x409813f6
+// 4.766830
+0x409889df
+// 4.752437
+0x409813f6
+// 4.709460
+0x4096b3e6
+// 4.638505
+0x40946ea2
+// 4.540565
+0x40914c4f
+// 4.417004
+0x408d581a
+// 4.269530
+0x40889ffd
+// 4.100157
+0x4083347d
+// 3.911171
+0x407a50a1
+// 3.705082
+0x406d2012
+// 3.484579
+0x405f0358
+// 3.252476
+0x4050288f
+// 3.011662
+0x4040bf10
+// 2.765049
+0x4030f692
+// 2.515523
+0x4020fe54
+// 2.265889
+0x40110453
+// 2.018831
+0x40013487
+// 1.776867
+0x3fe37064
+// 1.542315
+0x3fc56a93
+// 1.317257
+0x3fa89be3
+// 1.103520
+0x3f8d4028
+// 0.902653
+0x3f671446
+// 0.715916
+0x3f37463d
+// 0.544273
+0x3f0b557e
+// 0.388398
+0x3ec6dc20
+// 0.248675
+0x3e7ea4c0
+// 0.125215
+0x3e00387d
+// 0.017872
+0x3c9268a3
+// -0.073736
+0xbd97031e
+// -0.150202
+0xbe19cea1
+// -0.212300
+0xbe596526
+// -0.260956
+0xbe859c15
+// -0.297221
+0xbe982d5a
+// -0.322234
+0xbea4fbd3
+// -0.337196
+0xbeaca4e5
+// -0.343339
+0xbeafca18
+// -0.341900
+0xbeaf0d83
+// -0.334095
+0xbeab0e88
+// -0.321098
+0xbea466f0
+// -0.304019
+0xbe9ba86e
+// -0.283894
+0xbe915a90
+// -0.261666
+0xbe85f921
+// -0.238182
+0xbe73e602
+// -0.214183
+0xbe5b52c7
+// -0.190304
+0xbe42def8
+// -0.167072
+0xbe2b150d
+// -0.144914
+0xbe14644b
+// -0.124153
+0xbdfe4428
+// -0.105025
+0xbdd7175b
+// -0.087679
+0xbdb390d4
+// -0.072190
+0xbd93d831
+// -0.058569
+0xbd6fe68d
+// -0.046775
+0xbd3f9710
+// -0.036719
+0xbd166704
+// -0.028283
+0xbce7b0c6
+// -0.021321
+0xbcaea896
+// -0.015675
+0xbc806944
+// -0.011182
+0xbc3733c8
+// -0.007677
+0xbbfb9341
+// -0.005008
+0xbba41729
+// -0.003032
+0xbb46b15d
+// -0.001628
+0xbad57244
+// -0.000699
+0xba3740d1
+// -0.000171
+0xb933564f

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefHft95_14_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// -0.001578
+0xbacedb9b
+// -0.001839
+0xbaf10423
+// -0.002634
+0xbb2ca351
+// -0.004005
+0xbb833b6d
+// -0.006016
+0xbbc5255f
+// -0.008757
+0xbc0f7b6c
+// -0.012336
+0xbc4a1dbc
+// -0.016876
+0xbc8a3fcd
+// -0.022511
+0xbcb868ae
+// -0.029378
+0xbcf0aa0f
+// -0.037612
+0xbd1a0f30
+// -0.047337
+0xbd41e4e4
+// -0.058659
+0xbd704452
+// -0.071654
+0xbd92bf37
+// -0.086362
+0xbdb0de9a
+// -0.102777
+0xbdd27ce1
+// -0.120837
+0xbdf77937
+// -0.140413
+0xbe0fc84e
+// -0.161303
+0xbe252cb4
+// -0.183226
+0xbe3b9fa1
+// -0.205810
+0xbe52bfe0
+// -0.228592
+0xbe6a13e6
+// -0.251011
+0xbe80847e
+// -0.272411
+0xbe8b7984
+// -0.292041
+0xbe95866f
+// -0.309057
+0xbe9e3cb0
+// -0.322530
+0xbea522a2
+// -0.331458
+0xbea9b4d7
+// -0.334776
+0xbeab67c3
+// -0.331374
+0xbea9a9d3
+// -0.320113
+0xbea3e5d4
+// -0.299849
+0xbe9985c2
+// -0.269454
+0xbe89f5d6
+// -0.227843
+0xbe694fb6
+// -0.174001
+0xbe322d5c
+// -0.107009
+0xbddb2769
+// -0.026071
+0xbcd593da
+// 0.069453
+0x3d8e3d97
+// 0.180031
+0x3e3859fd
+// 0.305924
+0x3e9ca202
+// 0.447171
+0x3ee4f39c
+// 0.603571
+0x3f1a83a9
+// 0.774667
+0x3f465092
+// 0.959735
+0x3f75b12a
+// 1.157782
+0x3f943234
+// 1.367548
+0x3faf0bd2
+// 1.587510
+0x3fcb338a
+// 1.815896
+0x3fe86f4b
+// 2.050704
+0x40033ebb
+// 2.289723
+0x40128ad0
+// 2.530566
+0x4021f4cc
+// 2.770705
+0x4031533a
+// 3.007504
+0x40407af2
+// 3.238267
+0x404f3fc3
+// 3.460279
+0x405d7534
+// 3.670853
+0x406aef43
+// 3.867381
+0x4077832c
+// 4.047374
+0x40818416
+// 4.208513
+0x4086ac23
+// 4.348689
+0x408b2877
+// 4.466047
+0x408ee9db
+// 4.559014
+0x4091e372
+// 4.626337
+0x40940af4
+// 4.667101
+0x409558e5
+// 4.680752
+0x4095c8b8
+// 4.667101
+0x409558e5
+// 4.626337
+0x40940af4
+// 4.559014
+0x4091e372
+// 4.466047
+0x408ee9db
+// 4.348689
+0x408b2877
+// 4.208513
+0x4086ac23
+// 4.047374
+0x40818416
+// 3.867381
+0x4077832c
+// 3.670853
+0x406aef43
+// 3.460279
+0x405d7534
+// 3.238267
+0x404f3fc3
+// 3.007504
+0x40407af2
+// 2.770705
+0x4031533a
+// 2.530566
+0x4021f4cc
+// 2.289723
+0x40128ad0
+// 2.050704
+0x40033ebb
+// 1.815896
+0x3fe86f4b
+// 1.587510
+0x3fcb338a
+// 1.367548
+0x3faf0bd2
+// 1.157782
+0x3f943234
+// 0.959735
+0x3f75b12a
+// 0.774667
+0x3f465092
+// 0.603571
+0x3f1a83a9
+// 0.447171
+0x3ee4f39c
+// 0.305924
+0x3e9ca202
+// 0.180031
+0x3e3859fd
+// 0.069453
+0x3d8e3d97
+// -0.026071
+0xbcd593da
+// -0.107009
+0xbddb2769
+// -0.174001
+0xbe322d5c
+// -0.227843
+0xbe694fb6
+// -0.269454
+0xbe89f5d6
+// -0.299849
+0xbe9985c2
+// -0.320113
+0xbea3e5d4
+// -0.331374
+0xbea9a9d3
+// -0.334776
+0xbeab67c3
+// -0.331458
+0xbea9b4d7
+// -0.322530
+0xbea522a2
+// -0.309057
+0xbe9e3cb0
+// -0.292041
+0xbe95866f
+// -0.272411
+0xbe8b7984
+// -0.251011
+0xbe80847e
+// -0.228592
+0xbe6a13e6
+// -0.205810
+0xbe52bfe0
+// -0.183226
+0xbe3b9fa1
+// -0.161303
+0xbe252cb4
+// -0.140413
+0xbe0fc84e
+// -0.120837
+0xbdf77937
+// -0.102777
+0xbdd27ce1
+// -0.086362
+0xbdb0de9a
+// -0.071654
+0xbd92bf37
+// -0.058659
+0xbd704452
+// -0.047337
+0xbd41e4e4
+// -0.037612
+0xbd1a0f30
+// -0.029378
+0xbcf0aa0f
+// -0.022511
+0xbcb868ae
+// -0.016876
+0xbc8a3fcd
+// -0.012336
+0xbc4a1dbc
+// -0.008757
+0xbc0f7b6c
+// -0.006016
+0xbbc5255f
+// -0.004005
+0xbb833b6d
+// -0.002634
+0xbb2ca351
+// -0.001839
+0xbaf10423

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall3_5_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x0
+// 0.000000
+0x34c2bd6e
+// 0.000006
+0x36c28166
+// 0.000029
+0x37f5ad52
+// 0.000092
+0x38c191eb
+// 0.000225
+0x396b7033
+// 0.000464
+0x39f30670
+// 0.000854
+0x3a5ff15d
+// 0.001449
+0x3abdde53
+// 0.002305
+0x3b170754
+// 0.003486
+0x3b646f74
+// 0.005060
+0x3ba5d0c4
+// 0.007101
+0x3be8ac58
+// 0.009682
+0x3c1ea07e
+// 0.012881
+0x3c530b19
+// 0.016777
+0x3c896f0a
+// 0.021447
+0x3cafb0cd
+// 0.026968
+0x3cdceccb
+// 0.033417
+0x3d08e056
+// 0.040865
+0x3d2761cf
+// 0.049379
+0x3d4a421c
+// 0.059024
+0x3d71c330
+// 0.069855
+0x3d8f1053
+// 0.081923
+0x3da7c766
+// 0.095270
+0x3dc31ce2
+// 0.109929
+0x3de12255
+// 0.125924
+0x3e00f236
+// 0.143270
+0x3e12b54e
+// 0.161970
+0x3e25db70
+// 0.182017
+0x3e3a62b9
+// 0.203393
+0x3e504653
+// 0.226068
+0x3e677e63
+// 0.250000
+0x3e800000
+// 0.275136
+0x3e8cde98
+// 0.301410
+0x3e9a5277
+// 0.328748
+0x3ea8519e
+// 0.357060
+0x3eb6d099
+// 0.386250
+0x3ec5c28d
+// 0.416209
+0x3ed5194c
+// 0.446819
+0x3ee4c569
+// 0.477953
+0x3ef4b64e
+// 0.509478
+0x3f026d2d
+// 0.541252
+0x3f0a8f7f
+// 0.573127
+0x3f12b870
+// 0.604950
+0x3f1addfc
+// 0.636564
+0x3f22f5dd
+// 0.667810
+0x3f2af59f
+// 0.698527
+0x3f32d2b0
+// 0.728553
+0x3f3a827a
+// 0.757728
+0x3f41fa71
+// 0.785892
+0x3f493030
+// 0.812889
+0x3f501984
+// 0.838570
+0x3f56ac8a
+// 0.862789
+0x3f5cdfbc
+// 0.885407
+0x3f62aa07
+// 0.906294
+0x3f6802df
+// 0.925328
+0x3f6ce24e
+// 0.942398
+0x3f714104
+// 0.957404
+0x3f75186c
+// 0.970256
+0x3f7862af
+// 0.980878
+0x3f7b1acb
+// 0.989206
+0x3f7d3c97
+// 0.995191
+0x3f7ec4ce
+// 0.998796
+0x3f7fb115
+// 1.000000
+0x3f800000
+// 0.998796
+0x3f7fb115
+// 0.995191
+0x3f7ec4ce
+// 0.989206
+0x3f7d3c97
+// 0.980878
+0x3f7b1acb
+// 0.970256
+0x3f7862af
+// 0.957404
+0x3f75186c
+// 0.942398
+0x3f714104
+// 0.925328
+0x3f6ce24e
+// 0.906294
+0x3f6802df
+// 0.885407
+0x3f62aa07
+// 0.862789
+0x3f5cdfbc
+// 0.838570
+0x3f56ac8a
+// 0.812889
+0x3f501984
+// 0.785892
+0x3f493030
+// 0.757728
+0x3f41fa71
+// 0.728553
+0x3f3a827a
+// 0.698527
+0x3f32d2b0
+// 0.667810
+0x3f2af59f
+// 0.636564
+0x3f22f5dd
+// 0.604950
+0x3f1addfc
+// 0.573127
+0x3f12b870
+// 0.541252
+0x3f0a8f7f
+// 0.509478
+0x3f026d2d
+// 0.477953
+0x3ef4b64e
+// 0.446819
+0x3ee4c569
+// 0.416209
+0x3ed5194c
+// 0.386250
+0x3ec5c28d
+// 0.357060
+0x3eb6d099
+// 0.328748
+0x3ea8519e
+// 0.301410
+0x3e9a5277
+// 0.275136
+0x3e8cde98
+// 0.250000
+0x3e800000
+// 0.226068
+0x3e677e63
+// 0.203393
+0x3e504653
+// 0.182017
+0x3e3a62b9
+// 0.161970
+0x3e25db70
+// 0.143270
+0x3e12b54e
+// 0.125924
+0x3e00f236
+// 0.109929
+0x3de12255
+// 0.095270
+0x3dc31ce2
+// 0.081923
+0x3da7c766
+// 0.069855
+0x3d8f1053
+// 0.059024
+0x3d71c330
+// 0.049379
+0x3d4a421c
+// 0.040865
+0x3d2761cf
+// 0.033417
+0x3d08e056
+// 0.026968
+0x3cdceccb
+// 0.021447
+0x3cafb0cd
+// 0.016777
+0x3c896f0a
+// 0.012881
+0x3c530b19
+// 0.009682
+0x3c1ea07e
+// 0.007101
+0x3be8ac58
+// 0.005060
+0x3ba5d0c4
+// 0.003486
+0x3b646f74
+// 0.002305
+0x3b170754
+// 0.001449
+0x3abdde53
+// 0.000854
+0x3a5ff15d
+// 0.000464
+0x39f30670
+// 0.000225
+0x396b7033
+// 0.000092
+0x38c191eb
+// 0.000029
+0x37f5ad52
+// 0.000006
+0x36c28166
+// 0.000000
+0x34c2bd6e

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall3a_7_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x0
+// 0.000164
+0x392be6a8
+// 0.000659
+0x3a2ca094
+// 0.001492
+0x3ac39003
+// 0.002678
+0x3b2f834b
+// 0.004236
+0x3b8acb58
+// 0.006189
+0x3bcac8fe
+// 0.008565
+0x3c0c54ac
+// 0.011398
+0x3c3abf5d
+// 0.014724
+0x3c713daa
+// 0.018583
+0x3c983b39
+// 0.023017
+0x3cbc8e06
+// 0.028071
+0x3ce5f4e0
+// 0.033791
+0x3d0a6846
+// 0.040224
+0x3d24c1c2
+// 0.047417
+0x3d423843
+// 0.055417
+0x3d62fc87
+// 0.064268
+0x3d839ef4
+// 0.074014
+0x3d9794cd
+// 0.084696
+0x3dad74f5
+// 0.096349
+0x3dc552bc
+// 0.109007
+0x3ddf3f43
+// 0.122698
+0x3dfb4921
+// 0.137444
+0x3e0cbe06
+// 0.153260
+0x3e1cf048
+// 0.170158
+0x3e2e3de1
+// 0.188139
+0x3e40a781
+// 0.207199
+0x3e542be0
+// 0.227324
+0x3e68c7a5
+// 0.248494
+0x3e7e7557
+// 0.270681
+0x3e8a96a4
+// 0.293844
+0x3e9672c9
+// 0.317940
+0x3ea2c908
+// 0.342912
+0x3eaf922f
+// 0.368698
+0x3ebcc5f1
+// 0.395225
+0x3eca5aed
+// 0.422414
+0x3ed846b4
+// 0.450179
+0x3ee67dd6
+// 0.478424
+0x3ef4f3f2
+// 0.507048
+0x3f01cde2
+// 0.535944
+0x3f09339d
+// 0.564999
+0x3f10a3c2
+// 0.594095
+0x3f181699
+// 0.623110
+0x3f1f8425
+// 0.651919
+0x3f26e431
+// 0.680395
+0x3f2e2e5f
+// 0.708408
+0x3f355a33
+// 0.735827
+0x3f3c5f28
+// 0.762523
+0x3f4334bc
+// 0.788368
+0x3f49d27d
+// 0.813234
+0x3f50301f
+// 0.836998
+0x3f564587
+// 0.859540
+0x3f5c0ad8
+// 0.880746
+0x3f61788a
+// 0.900504
+0x3f668771
+// 0.918713
+0x3f6b30ce
+// 0.935278
+0x3f6f6e5c
+// 0.950109
+0x3f733a5b
+// 0.963129
+0x3f768f9d
+// 0.974267
+0x3f79698f
+// 0.983463
+0x3f7bc442
+// 0.990669
+0x3f7d9c74
+// 0.995843
+0x3f7eef95
+// 0.998959
+0x3f7fbbce
+// 1.000000
+0x3f800000
+// 0.998959
+0x3f7fbbce
+// 0.995843
+0x3f7eef95
+// 0.990669
+0x3f7d9c74
+// 0.983463
+0x3f7bc442
+// 0.974267
+0x3f79698f
+// 0.963129
+0x3f768f9d
+// 0.950109
+0x3f733a5b
+// 0.935278
+0x3f6f6e5c
+// 0.918713
+0x3f6b30ce
+// 0.900504
+0x3f668771
+// 0.880746
+0x3f61788a
+// 0.859540
+0x3f5c0ad8
+// 0.836998
+0x3f564587
+// 0.813234
+0x3f50301f
+// 0.788368
+0x3f49d27d
+// 0.762523
+0x3f4334bc
+// 0.735827
+0x3f3c5f28
+// 0.708408
+0x3f355a33
+// 0.680395
+0x3f2e2e5f
+// 0.651919
+0x3f26e431
+// 0.623110
+0x3f1f8425
+// 0.594095
+0x3f181699
+// 0.564999
+0x3f10a3c2
+// 0.535944
+0x3f09339d
+// 0.507048
+0x3f01cde2
+// 0.478424
+0x3ef4f3f2
+// 0.450179
+0x3ee67dd6
+// 0.422414
+0x3ed846b4
+// 0.395225
+0x3eca5aed
+// 0.368698
+0x3ebcc5f1
+// 0.342912
+0x3eaf922f
+// 0.317940
+0x3ea2c908
+// 0.293844
+0x3e9672c9
+// 0.270681
+0x3e8a96a4
+// 0.248494
+0x3e7e7557
+// 0.227324
+0x3e68c7a5
+// 0.207199
+0x3e542be0
+// 0.188139
+0x3e40a781
+// 0.170158
+0x3e2e3de1
+// 0.153260
+0x3e1cf048
+// 0.137444
+0x3e0cbe06
+// 0.122698
+0x3dfb4921
+// 0.109007
+0x3ddf3f43
+// 0.096349
+0x3dc552bc
+// 0.084696
+0x3dad74f5
+// 0.074014
+0x3d9794cd
+// 0.064268
+0x3d839ef4
+// 0.055417
+0x3d62fc87
+// 0.047417
+0x3d423843
+// 0.040224
+0x3d24c1c2
+// 0.033791
+0x3d0a6846
+// 0.028071
+0x3ce5f4e0
+// 0.023017
+0x3cbc8e06
+// 0.018583
+0x3c983b39
+// 0.014724
+0x3c713daa
+// 0.011398
+0x3c3abf5d
+// 0.008565
+0x3c0c54ac
+// 0.006189
+0x3bcac8fe
+// 0.004236
+0x3b8acb58
+// 0.002678
+0x3b2f834b
+// 0.001492
+0x3ac39003
+// 0.000659
+0x3a2ca094
+// 0.000164
+0x392be6a8

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall3b_8_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.005319
+0x3bae4954
+// 0.005541
+0x3bb590b6
+// 0.006210
+0x3bcb7932
+// 0.007331
+0x3bf03990
+// 0.008916
+0x3c12161b
+// 0.010980
+0x3c33e6f1
+// 0.013542
+0x3c5dddeb
+// 0.016623
+0x3c882c63
+// 0.020249
+0x3ca5e17d
+// 0.024449
+0x3cc84a14
+// 0.029254
+0x3cefa721
+// 0.034697
+0x3d0e1ee8
+// 0.040813
+0x3d272b36
+// 0.047636
+0x3d431d9e
+// 0.055202
+0x3d621ba7
+// 0.063548
+0x3d822551
+// 0.072707
+0x3d94e782
+// 0.082714
+0x3da965e1
+// 0.093599
+0x3dbfb0d9
+// 0.105391
+0x3dd7d76e
+// 0.118116
+0x3df1e6f2
+// 0.131795
+0x3e06f55b
+// 0.146446
+0x3e15f5de
+// 0.162080
+0x3e25f83b
+// 0.178704
+0x3e36fe40
+// 0.196320
+0x3e490836
+// 0.214923
+0x3e5c14bf
+// 0.234500
+0x3e7020c5
+// 0.255033
+0x3e8293b3
+// 0.276496
+0x3e8d90f2
+// 0.298857
+0x3e9903c9
+// 0.322074
+0x3ea4e6ef
+// 0.346101
+0x3eb13420
+// 0.370881
+0x3ebde420
+// 0.396353
+0x3ecaeec2
+// 0.422447
+0x3ed84ae8
+// 0.449086
+0x3ee5ee93
+// 0.476188
+0x3ef3cee4
+// 0.503664
+0x3f00f019
+// 0.531418
+0x3f080b09
+// 0.559352
+0x3f0f31b6
+// 0.587361
+0x3f165d46
+// 0.615335
+0x3f1d869b
+// 0.643164
+0x3f24a660
+// 0.670732
+0x3f2bb510
+// 0.697922
+0x3f32ab09
+// 0.724618
+0x3f398092
+// 0.750701
+0x3f402def
+// 0.776053
+0x3f46ab69
+// 0.800558
+0x3f4cf15d
+// 0.824101
+0x3f52f84a
+// 0.846571
+0x3f58b8e2
+// 0.867860
+0x3f5e2c11
+// 0.887864
+0x3f634b0e
+// 0.906485
+0x3f680f67
+// 0.923631
+0x3f6c730d
+// 0.939215
+0x3f707060
+// 0.953159
+0x3f740239
+// 0.965392
+0x3f7723f2
+// 0.975852
+0x3f79d173
+// 0.984485
+0x3f7c0737
+// 0.991246
+0x3f7dc252
+// 0.996101
+0x3f7f007b
+// 0.999024
+0x3f7fc009
+// 1.000000
+0x3f800000
+// 0.999024
+0x3f7fc009
+// 0.996101
+0x3f7f007b
+// 0.991246
+0x3f7dc252
+// 0.984485
+0x3f7c0737
+// 0.975852
+0x3f79d173
+// 0.965392
+0x3f7723f2
+// 0.953159
+0x3f740239
+// 0.939215
+0x3f707060
+// 0.923631
+0x3f6c730d
+// 0.906485
+0x3f680f67
+// 0.887864
+0x3f634b0e
+// 0.867860
+0x3f5e2c11
+// 0.846571
+0x3f58b8e2
+// 0.824101
+0x3f52f84a
+// 0.800558
+0x3f4cf15d
+// 0.776053
+0x3f46ab69
+// 0.750701
+0x3f402def
+// 0.724618
+0x3f398092
+// 0.697922
+0x3f32ab09
+// 0.670732
+0x3f2bb510
+// 0.643164
+0x3f24a660
+// 0.615335
+0x3f1d869b
+// 0.587361
+0x3f165d46
+// 0.559352
+0x3f0f31b6
+// 0.531418
+0x3f080b09
+// 0.503664
+0x3f00f019
+// 0.476188
+0x3ef3cee4
+// 0.449086
+0x3ee5ee93
+// 0.422447
+0x3ed84ae8
+// 0.396353
+0x3ecaeec2
+// 0.370881
+0x3ebde420
+// 0.346101
+0x3eb13420
+// 0.322074
+0x3ea4e6ef
+// 0.298857
+0x3e9903c9
+// 0.276496
+0x3e8d90f2
+// 0.255033
+0x3e8293b3
+// 0.234500
+0x3e7020c5
+// 0.214923
+0x3e5c14bf
+// 0.196320
+0x3e490836
+// 0.178704
+0x3e36fe40
+// 0.162080
+0x3e25f83b
+// 0.146446
+0x3e15f5de
+// 0.131795
+0x3e06f55b
+// 0.118116
+0x3df1e6f2
+// 0.105391
+0x3dd7d76e
+// 0.093599
+0x3dbfb0d9
+// 0.082714
+0x3da965e1
+// 0.072707
+0x3d94e782
+// 0.063548
+0x3d822551
+// 0.055202
+0x3d621ba7
+// 0.047636
+0x3d431d9e
+// 0.040813
+0x3d272b36
+// 0.034697
+0x3d0e1ee8
+// 0.029254
+0x3cefa721
+// 0.024449
+0x3cc84a14
+// 0.020249
+0x3ca5e17d
+// 0.016623
+0x3c882c63
+// 0.013542
+0x3c5dddeb
+// 0.010980
+0x3c33e6f1
+// 0.008916
+0x3c12161b
+// 0.007331
+0x3bf03990
+// 0.006210
+0x3bcb7932
+// 0.005541
+0x3bb590b6

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall4_6_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x0
+// 0.000000
+0x2f7033da
+// 0.000000
+0x326fc4d1
+// 0.000000
+0x342a2e6a
+// 0.000001
+0x356e0a89
+// 0.000003
+0x3661c909
+// 0.000010
+0x37276eec
+// 0.000025
+0x37d173dd
+// 0.000055
+0x38673efb
+// 0.000111
+0x38e8017f
+// 0.000206
+0x3957c970
+// 0.000360
+0x39bcb9f5
+// 0.000598
+0x3a1cd99b
+// 0.000953
+0x3a79bb90
+// 0.001462
+0x3abf9e58
+// 0.002173
+0x3b0e6881
+// 0.003141
+0x3b4dd599
+// 0.004429
+0x3b911f25
+// 0.006109
+0x3bc82bed
+// 0.008261
+0x3c07586a
+// 0.010973
+0x3c33c778
+// 0.014340
+0x3c6af184
+// 0.018463
+0x3c973f79
+// 0.023448
+0x3cc0169f
+// 0.029406
+0x3cf0e48c
+// 0.036447
+0x3d1549e9
+// 0.044685
+0x3d3707b4
+// 0.054229
+0x3d5e1f40
+// 0.065186
+0x3d858003
+// 0.077655
+0x3d9f0985
+// 0.091729
+0x3dbbdc37
+// 0.107488
+0x3ddc2285
+// 0.125000
+0x3e000000
+// 0.144318
+0x3e13c81a
+// 0.165477
+0x3e2972c7
+// 0.188493
+0x3e41042e
+// 0.213360
+0x3e5a7af1
+// 0.240051
+0x3e75cfcd
+// 0.268514
+0x3e897aa4
+// 0.298674
+0x3e98ebc0
+// 0.330429
+0x3ea92e01
+// 0.363654
+0x3eba30e3
+// 0.398198
+0x3ecbe0a5
+// 0.433886
+0x3ede265c
+// 0.470521
+0x3ef0e81c
+// 0.507882
+0x3f020495
+// 0.545732
+0x3f0bb51e
+// 0.583815
+0x3f1574e3
+// 0.621859
+0x3f1f322a
+// 0.659583
+0x3f28da76
+// 0.696697
+0x3f325abb
+// 0.732904
+0x3f3b9f9a
+// 0.767908
+0x3f44959e
+// 0.801414
+0x3f4d2975
+// 0.833133
+0x3f554835
+// 0.862787
+0x3f5cdf99
+// 0.890110
+0x3f63de3e
+// 0.914854
+0x3f6a33de
+// 0.936791
+0x3f6fd18b
+// 0.955717
+0x3f74a9e0
+// 0.971454
+0x3f78b135
+// 0.983852
+0x3f7bddc1
+// 0.992794
+0x3f7e27c7
+// 0.998194
+0x3f7f89a9
+// 1.000000
+0x3f800000
+// 0.998194
+0x3f7f89a9
+// 0.992794
+0x3f7e27c7
+// 0.983852
+0x3f7bddc1
+// 0.971454
+0x3f78b135
+// 0.955717
+0x3f74a9e0
+// 0.936791
+0x3f6fd18b
+// 0.914854
+0x3f6a33de
+// 0.890110
+0x3f63de3e
+// 0.862787
+0x3f5cdf99
+// 0.833133
+0x3f554835
+// 0.801414
+0x3f4d2975
+// 0.767908
+0x3f44959e
+// 0.732904
+0x3f3b9f9a
+// 0.696697
+0x3f325abb
+// 0.659583
+0x3f28da76
+// 0.621859
+0x3f1f322a
+// 0.583815
+0x3f1574e3
+// 0.545732
+0x3f0bb51e
+// 0.507882
+0x3f020495
+// 0.470521
+0x3ef0e81c
+// 0.433886
+0x3ede265c
+// 0.398198
+0x3ecbe0a5
+// 0.363654
+0x3eba30e3
+// 0.330429
+0x3ea92e01
+// 0.298674
+0x3e98ebc0
+// 0.268514
+0x3e897aa4
+// 0.240051
+0x3e75cfcd
+// 0.213360
+0x3e5a7af1
+// 0.188493
+0x3e41042e
+// 0.165477
+0x3e2972c7
+// 0.144318
+0x3e13c81a
+// 0.125000
+0x3e000000
+// 0.107488
+0x3ddc2285
+// 0.091729
+0x3dbbdc37
+// 0.077655
+0x3d9f0985
+// 0.065186
+0x3d858003
+// 0.054229
+0x3d5e1f40
+// 0.044685
+0x3d3707b4
+// 0.036447
+0x3d1549e9
+// 0.029406
+0x3cf0e48c
+// 0.023448
+0x3cc0169f
+// 0.018463
+0x3c973f79
+// 0.014340
+0x3c6af184
+// 0.010973
+0x3c33c778
+// 0.008261
+0x3c07586a
+// 0.006109
+0x3bc82bed
+// 0.004429
+0x3b911f25
+// 0.003141
+0x3b4dd599
+// 0.002173
+0x3b0e6881
+// 0.001462
+0x3abf9e58
+// 0.000953
+0x3a79bb90
+// 0.000598
+0x3a1cd99b
+// 0.000360
+0x39bcb9f5
+// 0.000206
+0x3957c970
+// 0.000111
+0x38e8017f
+// 0.000055
+0x38673efb
+// 0.000025
+0x37d173dd
+// 0.000010
+0x37276eec
+// 0.000003
+0x3661c909
+// 0.000001
+0x356e0a89
+// 0.000000
+0x342a2e6a
+// 0.000000
+0x326fc4d1
+// 0.000000
+0x2f7033da

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall4a_9_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x24400000
+// 0.000000
+0x3424f034
+// 0.000002
+0x36252512
+// 0.000012
+0x3751718b
+// 0.000040
+0x3825f55d
+// 0.000097
+0x38cb50a8
+// 0.000202
+0x3953b3b7
+// 0.000376
+0x39c51172
+// 0.000645
+0x3a290488
+// 0.001039
+0x3a882d11
+// 0.001594
+0x3ad0e0df
+// 0.002349
+0x3b19ef06
+// 0.003350
+0x3b5b866d
+// 0.004646
+0x3b983fcf
+// 0.006294
+0x3bce3c0a
+// 0.008352
+0x3c08d808
+// 0.010887
+0x3c325dde
+// 0.013966
+0x3c64d202
+// 0.017664
+0x3c90b3d9
+// 0.022057
+0x3cb4b04e
+// 0.027224
+0x3cdf0502
+// 0.033247
+0x3d082e56
+// 0.040209
+0x3d24b213
+// 0.048191
+0x3d45641a
+// 0.057275
+0x3d6a9986
+// 0.067540
+0x3d8a526e
+// 0.079060
+0x3da1ea4d
+// 0.091905
+0x3dbc38e1
+// 0.106139
+0x3dd95f25
+// 0.121814
+0x3df979cc
+// 0.138978
+0x3e0e503d
+// 0.157663
+0x3e21727f
+// 0.177892
+0x3e362952
+// 0.199672
+0x3e4c76bd
+// 0.222995
+0x3e6458df
+// 0.247840
+0x3e7dc9a5
+// 0.274165
+0x3e8c5f4a
+// 0.301913
+0x3e9a944f
+// 0.331009
+0x3ea979fd
+// 0.361359
+0x3eb90410
+// 0.392852
+0x3ec923e3
+// 0.425358
+0x3ed9c87b
+// 0.458729
+0x3eeade98
+// 0.492804
+0x3efc50cf
+// 0.527403
+0x3f0703da
+// 0.562332
+0x3f0ff502
+// 0.597388
+0x3f18ee6b
+// 0.632354
+0x3f21e1f0
+// 0.667005
+0x3f2ac0dd
+// 0.701112
+0x3f337c10
+// 0.734438
+0x3f3c0427
+// 0.766749
+0x3f4449a5
+// 0.797808
+0x3f4c3d20
+// 0.827384
+0x3f53cf6d
+// 0.855252
+0x3f5af1cc
+// 0.881196
+0x3f619613
+// 0.905012
+0x3f67aede
+// 0.926509
+0x3f6d2fb1
+// 0.945513
+0x3f720d26
+// 0.961869
+0x3f763d0b
+// 0.975441
+0x3f79b687
+// 0.986118
+0x3f7c7235
+// 0.993808
+0x3f7e6a39
+// 0.998449
+0x3f7f9a57
+// 1.000000
+0x3f800000
+// 0.998449
+0x3f7f9a57
+// 0.993808
+0x3f7e6a39
+// 0.986118
+0x3f7c7235
+// 0.975441
+0x3f79b687
+// 0.961869
+0x3f763d0b
+// 0.945513
+0x3f720d26
+// 0.926509
+0x3f6d2fb1
+// 0.905012
+0x3f67aede
+// 0.881196
+0x3f619613
+// 0.855252
+0x3f5af1cc
+// 0.827384
+0x3f53cf6d
+// 0.797808
+0x3f4c3d20
+// 0.766749
+0x3f4449a5
+// 0.734438
+0x3f3c0427
+// 0.701112
+0x3f337c10
+// 0.667005
+0x3f2ac0dd
+// 0.632354
+0x3f21e1f0
+// 0.597388
+0x3f18ee6b
+// 0.562332
+0x3f0ff502
+// 0.527403
+0x3f0703da
+// 0.492804
+0x3efc50cf
+// 0.458729
+0x3eeade98
+// 0.425358
+0x3ed9c87b
+// 0.392852
+0x3ec923e3
+// 0.361359
+0x3eb90410
+// 0.331009
+0x3ea979fd
+// 0.301913
+0x3e9a944f
+// 0.274165
+0x3e8c5f4a
+// 0.247840
+0x3e7dc9a5
+// 0.222995
+0x3e6458df
+// 0.199672
+0x3e4c76bd
+// 0.177892
+0x3e362952
+// 0.157663
+0x3e21727f
+// 0.138978
+0x3e0e503d
+// 0.121814
+0x3df979cc
+// 0.106139
+0x3dd95f25
+// 0.091905
+0x3dbc38e1
+// 0.079060
+0x3da1ea4d
+// 0.067540
+0x3d8a526e
+// 0.057275
+0x3d6a9986
+// 0.048191
+0x3d45641a
+// 0.040209
+0x3d24b213
+// 0.033247
+0x3d082e56
+// 0.027224
+0x3cdf0502
+// 0.022057
+0x3cb4b04e
+// 0.017664
+0x3c90b3d9
+// 0.013966
+0x3c64d202
+// 0.010887
+0x3c325dde
+// 0.008352
+0x3c08d808
+// 0.006294
+0x3bce3c0a
+// 0.004646
+0x3b983fcf
+// 0.003350
+0x3b5b866d
+// 0.002349
+0x3b19ef06
+// 0.001594
+0x3ad0e0df
+// 0.001039
+0x3a882d11
+// 0.000645
+0x3a290488
+// 0.000376
+0x39c51172
+// 0.000202
+0x3953b3b7
+// 0.000097
+0x38cb50a8
+// 0.000040
+0x3825f55d
+// 0.000012
+0x3751718b
+// 0.000002
+0x36252512
+// 0.000000
+0x3424f034

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall4b_11_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// -0.000000
+0xa3e00000
+// 0.000029
+0x37f3351f
+// 0.000118
+0x38f81348
+// 0.000275
+0x39901b84
+// 0.000510
+0x3a05c77b
+// 0.000841
+0x3a5c7459
+// 0.001288
+0x3aa8c965
+// 0.001876
+0x3af5ed90
+// 0.002637
+0x3b2ccfc0
+// 0.003605
+0x3b6c39e3
+// 0.004819
+0x3b9de632
+// 0.006323
+0x3bcf34f0
+// 0.008167
+0x3c05cf85
+// 0.010402
+0x3c2a6eaa
+// 0.013086
+0x3c5664c5
+// 0.016277
+0x3c8556e6
+// 0.020039
+0x3ca42994
+// 0.024439
+0x3cc834de
+// 0.029545
+0x3cf207c4
+// 0.035425
+0x3d111a40
+// 0.042152
+0x3d2ca77c
+// 0.049795
+0x3d4bf588
+// 0.058423
+0x3d6f4d65
+// 0.068106
+0x3d8b7b10
+// 0.078907
+0x3da199e0
+// 0.090887
+0x3dba2312
+// 0.104103
+0x3dd533e8
+// 0.118603
+0x3df2e663
+// 0.134431
+0x3e09a853
+// 0.151620
+0x3e1b422e
+// 0.170193
+0x3e2e4710
+// 0.190165
+0x3e42ba7d
+// 0.211536
+0x3e589ce5
+// 0.234297
+0x3e6feb6d
+// 0.258422
+0x3e844fdc
+// 0.283874
+0x3e9157df
+// 0.310599
+0x3e9f06d0
+// 0.338530
+0x3ead53cd
+// 0.367584
+0x3ebc33fa
+// 0.397663
+0x3ecb9a80
+// 0.428654
+0x3edb7896
+// 0.460431
+0x3eebbd8e
+// 0.492851
+0x3efc56e9
+// 0.525760
+0x3f06983a
+// 0.558994
+0x3f0f1a36
+// 0.592374
+0x3f17a5d1
+// 0.625715
+0x3f202ed7
+// 0.658822
+0x3f28a894
+// 0.691497
+0x3f3105ed
+// 0.723534
+0x3f393980
+// 0.754727
+0x3f4135ca
+// 0.784870
+0x3f48ed43
+// 0.813759
+0x3f505287
+// 0.841194
+0x3f575876
+// 0.866979
+0x3f5df25b
+// 0.890931
+0x3f641410
+// 0.912874
+0x3f69b21c
+// 0.932645
+0x3f6ec1d9
+// 0.950097
+0x3f733994
+// 0.965098
+0x3f7710a2
+// 0.977532
+0x3f7a3f84
+// 0.987304
+0x3f7cbff4
+// 0.994339
+0x3f7e8cff
+// 0.998582
+0x3f7fa311
+// 1.000000
+0x3f800000
+// 0.998582
+0x3f7fa311
+// 0.994339
+0x3f7e8cff
+// 0.987304
+0x3f7cbff4
+// 0.977532
+0x3f7a3f84
+// 0.965098
+0x3f7710a2
+// 0.950097
+0x3f733994
+// 0.932645
+0x3f6ec1d9
+// 0.912874
+0x3f69b21c
+// 0.890931
+0x3f641410
+// 0.866979
+0x3f5df25b
+// 0.841194
+0x3f575876
+// 0.813759
+0x3f505287
+// 0.784870
+0x3f48ed43
+// 0.754727
+0x3f4135ca
+// 0.723534
+0x3f393980
+// 0.691497
+0x3f3105ed
+// 0.658822
+0x3f28a894
+// 0.625715
+0x3f202ed7
+// 0.592374
+0x3f17a5d1
+// 0.558994
+0x3f0f1a36
+// 0.525760
+0x3f06983a
+// 0.492851
+0x3efc56e9
+// 0.460431
+0x3eebbd8e
+// 0.428654
+0x3edb7896
+// 0.397663
+0x3ecb9a80
+// 0.367584
+0x3ebc33fa
+// 0.338530
+0x3ead53cd
+// 0.310599
+0x3e9f06d0
+// 0.283874
+0x3e9157df
+// 0.258422
+0x3e844fdc
+// 0.234297
+0x3e6feb6d
+// 0.211536
+0x3e589ce5
+// 0.190165
+0x3e42ba7d
+// 0.170193
+0x3e2e4710
+// 0.151620
+0x3e1b422e
+// 0.134431
+0x3e09a853
+// 0.118603
+0x3df2e663
+// 0.104103
+0x3dd533e8
+// 0.090887
+0x3dba2312
+// 0.078907
+0x3da199e0
+// 0.068106
+0x3d8b7b10
+// 0.058423
+0x3d6f4d65
+// 0.049795
+0x3d4bf588
+// 0.042152
+0x3d2ca77c
+// 0.035425
+0x3d111a40
+// 0.029545
+0x3cf207c4
+// 0.024439
+0x3cc834de
+// 0.020039
+0x3ca42994
+// 0.016277
+0x3c8556e6
+// 0.013086
+0x3c5664c5
+// 0.010402
+0x3c2a6eaa
+// 0.008167
+0x3c05cf85
+// 0.006323
+0x3bcf34f0
+// 0.004819
+0x3b9de632
+// 0.003605
+0x3b6c39e3
+// 0.002637
+0x3b2ccfc0
+// 0.001876
+0x3af5ed90
+// 0.001288
+0x3aa8c965
+// 0.000841
+0x3a5c7459
+// 0.000510
+0x3a05c77b
+// 0.000275
+0x39901b84
+// 0.000118
+0x38f81348
+// 0.000029
+0x37f3351f

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefNuttall4c_12_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000363
+0x39be3631
+// 0.000409
+0x39d6aadd
+// 0.000552
+0x3a10a6f9
+// 0.000797
+0x3a50f713
+// 0.001158
+0x3a97b894
+// 0.001650
+0x3ad841a3
+// 0.002296
+0x3b1676fa
+// 0.003122
+0x3b4c99a4
+// 0.004159
+0x3b8848e4
+// 0.005443
+0x3bb25a69
+// 0.007013
+0x3be5d139
+// 0.008915
+0x3c121074
+// 0.011196
+0x3c376f7d
+// 0.013908
+0x3c63e058
+// 0.017108
+0x3c8c2613
+// 0.020853
+0x3caad47a
+// 0.025206
+0x3cce7be7
+// 0.030228
+0x3cf7a151
+// 0.035986
+0x3d13666d
+// 0.042546
+0x3d2e4438
+// 0.049972
+0x3d4caf23
+// 0.058330
+0x3d6eeb93
+// 0.067684
+0x3d8a9e27
+// 0.078096
+0x3d9ff0c7
+// 0.089622
+0x3db78bf8
+// 0.102317
+0x3dd18bbb
+// 0.116229
+0x3dee0937
+// 0.131398
+0x3e068d17
+// 0.147859
+0x3e176838
+// 0.165637
+0x3e299cad
+// 0.184748
+0x3e3d2ea8
+// 0.205199
+0x3e521f9e
+// 0.226982
+0x3e686e13
+// 0.250082
+0x3e800ab2
+// 0.274466
+0x3e8c86cd
+// 0.300092
+0x3e99a5a6
+// 0.326902
+0x3ea75fbe
+// 0.354826
+0x3eb5abc8
+// 0.383779
+0x3ec47ea2
+// 0.413661
+0x3ed3cb5a
+// 0.444360
+0x3ee38338
+// 0.475752
+0x3ef395cc
+// 0.507698
+0x3f01f881
+// 0.540049
+0x3f0a409f
+// 0.572643
+0x3f1298c1
+// 0.605313
+0x3f1af5c7
+// 0.637879
+0x3f234c09
+// 0.670157
+0x3f2b8f6e
+// 0.701958
+0x3f33b389
+// 0.733089
+0x3f3babb4
+// 0.763354
+0x3f436b30
+// 0.792561
+0x3f4ae544
+// 0.820517
+0x3f520d5f
+// 0.847034
+0x3f58d736
+// 0.871932
+0x3f5f36e8
+// 0.895037
+0x3f65211d
+// 0.916186
+0x3f6a8b23
+// 0.935228
+0x3f6f6b12
+// 0.952025
+0x3f73b7e2
+// 0.966454
+0x3f776986
+// 0.978409
+0x3f7a7907
+// 0.987802
+0x3f7ce094
+// 0.994562
+0x3f7e9b96
+// 0.998638
+0x3f7fa6bb
+// 1.000000
+0x3f800000
+// 0.998638
+0x3f7fa6bb
+// 0.994562
+0x3f7e9b96
+// 0.987802
+0x3f7ce094
+// 0.978409
+0x3f7a7907
+// 0.966454
+0x3f776986
+// 0.952025
+0x3f73b7e2
+// 0.935228
+0x3f6f6b12
+// 0.916186
+0x3f6a8b23
+// 0.895037
+0x3f65211d
+// 0.871932
+0x3f5f36e8
+// 0.847034
+0x3f58d736
+// 0.820517
+0x3f520d5f
+// 0.792561
+0x3f4ae544
+// 0.763354
+0x3f436b30
+// 0.733089
+0x3f3babb4
+// 0.701958
+0x3f33b389
+// 0.670157
+0x3f2b8f6e
+// 0.637879
+0x3f234c09
+// 0.605313
+0x3f1af5c7
+// 0.572643
+0x3f1298c1
+// 0.540049
+0x3f0a409f
+// 0.507698
+0x3f01f881
+// 0.475752
+0x3ef395cc
+// 0.444360
+0x3ee38338
+// 0.413661
+0x3ed3cb5a
+// 0.383779
+0x3ec47ea2
+// 0.354826
+0x3eb5abc8
+// 0.326902
+0x3ea75fbe
+// 0.300092
+0x3e99a5a6
+// 0.274466
+0x3e8c86cd
+// 0.250082
+0x3e800ab2
+// 0.226982
+0x3e686e13
+// 0.205199
+0x3e521f9e
+// 0.184748
+0x3e3d2ea8
+// 0.165637
+0x3e299cad
+// 0.147859
+0x3e176838
+// 0.131398
+0x3e068d17
+// 0.116229
+0x3dee0937
+// 0.102317
+0x3dd18bbb
+// 0.089622
+0x3db78bf8
+// 0.078096
+0x3d9ff0c7
+// 0.067684
+0x3d8a9e27
+// 0.058330
+0x3d6eeb93
+// 0.049972
+0x3d4caf23
+// 0.042546
+0x3d2e4438
+// 0.035986
+0x3d13666d
+// 0.030228
+0x3cf7a151
+// 0.025206
+0x3cce7be7
+// 0.020853
+0x3caad47a
+// 0.017108
+0x3c8c2613
+// 0.013908
+0x3c63e058
+// 0.011196
+0x3c376f7d
+// 0.008915
+0x3c121074
+// 0.007013
+0x3be5d139
+// 0.005443
+0x3bb25a69
+// 0.004159
+0x3b8848e4
+// 0.003122
+0x3b4c99a4
+// 0.002296
+0x3b1676fa
+// 0.001650
+0x3ad841a3
+// 0.001158
+0x3a97b894
+// 0.000797
+0x3a50f713
+// 0.000552
+0x3a10a6f9
+// 0.000409
+0x39d6aadd

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF32/RefWelch_1_f32.txt

@@ -0,0 +1,258 @@
+W
+128
+// 0.000000
+0x0
+// 0.031006
+0x3cfe0000
+// 0.061523
+0x3d7c0000
+// 0.091553
+0x3dbb8000
+// 0.121094
+0x3df80000
+// 0.150146
+0x3e19c000
+// 0.178711
+0x3e370000
+// 0.206787
+0x3e53c000
+// 0.234375
+0x3e700000
+// 0.261475
+0x3e85e000
+// 0.288086
+0x3e938000
+// 0.314209
+0x3ea0e000
+// 0.339844
+0x3eae0000
+// 0.364990
+0x3ebae000
+// 0.389648
+0x3ec78000
+// 0.413818
+0x3ed3e000
+// 0.437500
+0x3ee00000
+// 0.460693
+0x3eebe000
+// 0.483398
+0x3ef78000
+// 0.505615
+0x3f017000
+// 0.527344
+0x3f070000
+// 0.548584
+0x3f0c7000
+// 0.569336
+0x3f11c000
+// 0.589600
+0x3f16f000
+// 0.609375
+0x3f1c0000
+// 0.628662
+0x3f20f000
+// 0.647461
+0x3f25c000
+// 0.665771
+0x3f2a7000
+// 0.683594
+0x3f2f0000
+// 0.700928
+0x3f337000
+// 0.717773
+0x3f37c000
+// 0.734131
+0x3f3bf000
+// 0.750000
+0x3f400000
+// 0.765381
+0x3f43f000
+// 0.780273
+0x3f47c000
+// 0.794678
+0x3f4b7000
+// 0.808594
+0x3f4f0000
+// 0.822021
+0x3f527000
+// 0.834961
+0x3f55c000
+// 0.847412
+0x3f58f000
+// 0.859375
+0x3f5c0000
+// 0.870850
+0x3f5ef000
+// 0.881836
+0x3f61c000
+// 0.892334
+0x3f647000
+// 0.902344
+0x3f670000
+// 0.911865
+0x3f697000
+// 0.920898
+0x3f6bc000
+// 0.929443
+0x3f6df000
+// 0.937500
+0x3f700000
+// 0.945068
+0x3f71f000
+// 0.952148
+0x3f73c000
+// 0.958740
+0x3f757000
+// 0.964844
+0x3f770000
+// 0.970459
+0x3f787000
+// 0.975586
+0x3f79c000
+// 0.980225
+0x3f7af000
+// 0.984375
+0x3f7c0000
+// 0.988037
+0x3f7cf000
+// 0.991211
+0x3f7dc000
+// 0.993896
+0x3f7e7000
+// 0.996094
+0x3f7f0000
+// 0.997803
+0x3f7f7000
+// 0.999023
+0x3f7fc000
+// 0.999756
+0x3f7ff000
+// 1.000000
+0x3f800000
+// 0.999756
+0x3f7ff000
+// 0.999023
+0x3f7fc000
+// 0.997803
+0x3f7f7000
+// 0.996094
+0x3f7f0000
+// 0.993896
+0x3f7e7000
+// 0.991211
+0x3f7dc000
+// 0.988037
+0x3f7cf000
+// 0.984375
+0x3f7c0000
+// 0.980225
+0x3f7af000
+// 0.975586
+0x3f79c000
+// 0.970459
+0x3f787000
+// 0.964844
+0x3f770000
+// 0.958740
+0x3f757000
+// 0.952148
+0x3f73c000
+// 0.945068
+0x3f71f000
+// 0.937500
+0x3f700000
+// 0.929443
+0x3f6df000
+// 0.920898
+0x3f6bc000
+// 0.911865
+0x3f697000
+// 0.902344
+0x3f670000
+// 0.892334
+0x3f647000
+// 0.881836
+0x3f61c000
+// 0.870850
+0x3f5ef000
+// 0.859375
+0x3f5c0000
+// 0.847412
+0x3f58f000
+// 0.834961
+0x3f55c000
+// 0.822021
+0x3f527000
+// 0.808594
+0x3f4f0000
+// 0.794678
+0x3f4b7000
+// 0.780273
+0x3f47c000
+// 0.765381
+0x3f43f000
+// 0.750000
+0x3f400000
+// 0.734131
+0x3f3bf000
+// 0.717773
+0x3f37c000
+// 0.700928
+0x3f337000
+// 0.683594
+0x3f2f0000
+// 0.665771
+0x3f2a7000
+// 0.647461
+0x3f25c000
+// 0.628662
+0x3f20f000
+// 0.609375
+0x3f1c0000
+// 0.589600
+0x3f16f000
+// 0.569336
+0x3f11c000
+// 0.548584
+0x3f0c7000
+// 0.527344
+0x3f070000
+// 0.505615
+0x3f017000
+// 0.483398
+0x3ef78000
+// 0.460693
+0x3eebe000
+// 0.437500
+0x3ee00000
+// 0.413818
+0x3ed3e000
+// 0.389648
+0x3ec78000
+// 0.364990
+0x3ebae000
+// 0.339844
+0x3eae0000
+// 0.314209
+0x3ea0e000
+// 0.288086
+0x3e938000
+// 0.261475
+0x3e85e000
+// 0.234375
+0x3e700000
+// 0.206787
+0x3e53c000
+// 0.178711
+0x3e370000
+// 0.150146
+0x3e19c000
+// 0.121094
+0x3df80000
+// 0.091553
+0x3dbb8000
+// 0.061523
+0x3d7c0000
+// 0.031006
+0x3cfe0000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefBartlett_2_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x0
+// 0.015625
+0x3f90000000000000
+// 0.031250
+0x3fa0000000000000
+// 0.046875
+0x3fa8000000000000
+// 0.062500
+0x3fb0000000000000
+// 0.078125
+0x3fb4000000000000
+// 0.093750
+0x3fb8000000000000
+// 0.109375
+0x3fbc000000000000
+// 0.125000
+0x3fc0000000000000
+// 0.140625
+0x3fc2000000000000
+// 0.156250
+0x3fc4000000000000
+// 0.171875
+0x3fc6000000000000
+// 0.187500
+0x3fc8000000000000
+// 0.203125
+0x3fca000000000000
+// 0.218750
+0x3fcc000000000000
+// 0.234375
+0x3fce000000000000
+// 0.250000
+0x3fd0000000000000
+// 0.265625
+0x3fd1000000000000
+// 0.281250
+0x3fd2000000000000
+// 0.296875
+0x3fd3000000000000
+// 0.312500
+0x3fd4000000000000
+// 0.328125
+0x3fd5000000000000
+// 0.343750
+0x3fd6000000000000
+// 0.359375
+0x3fd7000000000000
+// 0.375000
+0x3fd8000000000000
+// 0.390625
+0x3fd9000000000000
+// 0.406250
+0x3fda000000000000
+// 0.421875
+0x3fdb000000000000
+// 0.437500
+0x3fdc000000000000
+// 0.453125
+0x3fdd000000000000
+// 0.468750
+0x3fde000000000000
+// 0.484375
+0x3fdf000000000000
+// 0.500000
+0x3fe0000000000000
+// 0.515625
+0x3fe0800000000000
+// 0.531250
+0x3fe1000000000000
+// 0.546875
+0x3fe1800000000000
+// 0.562500
+0x3fe2000000000000
+// 0.578125
+0x3fe2800000000000
+// 0.593750
+0x3fe3000000000000
+// 0.609375
+0x3fe3800000000000
+// 0.625000
+0x3fe4000000000000
+// 0.640625
+0x3fe4800000000000
+// 0.656250
+0x3fe5000000000000
+// 0.671875
+0x3fe5800000000000
+// 0.687500
+0x3fe6000000000000
+// 0.703125
+0x3fe6800000000000
+// 0.718750
+0x3fe7000000000000
+// 0.734375
+0x3fe7800000000000
+// 0.750000
+0x3fe8000000000000
+// 0.765625
+0x3fe8800000000000
+// 0.781250
+0x3fe9000000000000
+// 0.796875
+0x3fe9800000000000
+// 0.812500
+0x3fea000000000000
+// 0.828125
+0x3fea800000000000
+// 0.843750
+0x3feb000000000000
+// 0.859375
+0x3feb800000000000
+// 0.875000
+0x3fec000000000000
+// 0.890625
+0x3fec800000000000
+// 0.906250
+0x3fed000000000000
+// 0.921875
+0x3fed800000000000
+// 0.937500
+0x3fee000000000000
+// 0.953125
+0x3fee800000000000
+// 0.968750
+0x3fef000000000000
+// 0.984375
+0x3fef800000000000
+// 1.000000
+0x3ff0000000000000
+// 0.984375
+0x3fef800000000000
+// 0.968750
+0x3fef000000000000
+// 0.953125
+0x3fee800000000000
+// 0.937500
+0x3fee000000000000
+// 0.921875
+0x3fed800000000000
+// 0.906250
+0x3fed000000000000
+// 0.890625
+0x3fec800000000000
+// 0.875000
+0x3fec000000000000
+// 0.859375
+0x3feb800000000000
+// 0.843750
+0x3feb000000000000
+// 0.828125
+0x3fea800000000000
+// 0.812500
+0x3fea000000000000
+// 0.796875
+0x3fe9800000000000
+// 0.781250
+0x3fe9000000000000
+// 0.765625
+0x3fe8800000000000
+// 0.750000
+0x3fe8000000000000
+// 0.734375
+0x3fe7800000000000
+// 0.718750
+0x3fe7000000000000
+// 0.703125
+0x3fe6800000000000
+// 0.687500
+0x3fe6000000000000
+// 0.671875
+0x3fe5800000000000
+// 0.656250
+0x3fe5000000000000
+// 0.640625
+0x3fe4800000000000
+// 0.625000
+0x3fe4000000000000
+// 0.609375
+0x3fe3800000000000
+// 0.593750
+0x3fe3000000000000
+// 0.578125
+0x3fe2800000000000
+// 0.562500
+0x3fe2000000000000
+// 0.546875
+0x3fe1800000000000
+// 0.531250
+0x3fe1000000000000
+// 0.515625
+0x3fe0800000000000
+// 0.500000
+0x3fe0000000000000
+// 0.484375
+0x3fdf000000000000
+// 0.468750
+0x3fde000000000000
+// 0.453125
+0x3fdd000000000000
+// 0.437500
+0x3fdc000000000000
+// 0.421875
+0x3fdb000000000000
+// 0.406250
+0x3fda000000000000
+// 0.390625
+0x3fd9000000000000
+// 0.375000
+0x3fd8000000000000
+// 0.359375
+0x3fd7000000000000
+// 0.343750
+0x3fd6000000000000
+// 0.328125
+0x3fd5000000000000
+// 0.312500
+0x3fd4000000000000
+// 0.296875
+0x3fd3000000000000
+// 0.281250
+0x3fd2000000000000
+// 0.265625
+0x3fd1000000000000
+// 0.250000
+0x3fd0000000000000
+// 0.234375
+0x3fce000000000000
+// 0.218750
+0x3fcc000000000000
+// 0.203125
+0x3fca000000000000
+// 0.187500
+0x3fc8000000000000
+// 0.171875
+0x3fc6000000000000
+// 0.156250
+0x3fc4000000000000
+// 0.140625
+0x3fc2000000000000
+// 0.125000
+0x3fc0000000000000
+// 0.109375
+0x3fbc000000000000
+// 0.093750
+0x3fb8000000000000
+// 0.078125
+0x3fb4000000000000
+// 0.062500
+0x3fb0000000000000
+// 0.046875
+0x3fa8000000000000
+// 0.031250
+0x3fa0000000000000
+// 0.015625
+0x3f90000000000000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefBlackman_harris_92db_10_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000060
+0x3f0f75104d551e00
+// 0.000094
+0x3f18b73daf75a880
+// 0.000200
+0x3f2a2727290c0bc0
+// 0.000383
+0x3f3918a0a18ac540
+// 0.000656
+0x3f45830b127590e0
+// 0.001037
+0x3f50fd5a42449798
+// 0.001546
+0x3f59540b73b5a8d4
+// 0.002210
+0x3f6219f63d4d579a
+// 0.003059
+0x3f690f8993958ece
+// 0.004130
+0x3f70eac4c05bcd2c
+// 0.005463
+0x3f766026076a1e3c
+// 0.007102
+0x3f7d16b6655e1ccc
+// 0.009096
+0x3f82a0db72a07324
+// 0.011498
+0x3f878c4f21fb37d2
+// 0.014365
+0x3f8d6b65b43de0ba
+// 0.017757
+0x3f922ec98dd20d16
+// 0.021736
+0x3f9641eb5495edda
+// 0.026368
+0x3f9b003bea867df6
+// 0.031721
+0x3fa03dae24c042f6
+// 0.037862
+0x3fa3629f437918a8
+// 0.044861
+0x3fa6f7fa3908a9a2
+// 0.052786
+0x3fab06bc902bf48e
+// 0.061704
+0x3faf97badc613366
+// 0.071682
+0x3fb259c07c633887
+// 0.082780
+0x3fb5311835cf5a1a
+// 0.095057
+0x3fb855aea573be98
+// 0.108566
+0x3fbbcaf5073b92fb
+// 0.123351
+0x3fbf93f165664c4c
+// 0.139453
+0x3fc1d9961728ee2c
+// 0.156900
+0x3fc4154f060a4dea
+// 0.175714
+0x3fc67dcf25bde48d
+// 0.195905
+0x3fc9136911652cc4
+// 0.217470
+0x3fcbd60e94ee3931
+// 0.240396
+0x3fcec549aa8416a1
+// 0.264655
+0x3fd0f01b3089a1ba
+// 0.290207
+0x3fd292bee8e69a71
+// 0.316996
+0x3fd449a923fce216
+// 0.344953
+0x3fd613b65d7f034b
+// 0.373994
+0x3fd7ef85db2c325c
+// 0.404021
+0x3fd9db79e33c75a9
+// 0.434920
+0x3fdbd5b8bdf2fec3
+// 0.466564
+0x3fdddc2e880fd60c
+// 0.498814
+0x3fdfec8fd8a49475
+// 0.531516
+0x3fe1022e9cb94239
+// 0.564508
+0x3fe21073b6c15c3c
+// 0.597615
+0x3fe31faa3f156707
+// 0.630655
+0x3fe42e52c19e0552
+// 0.663436
+0x3fe53ade8bdf9cf6
+// 0.695764
+0x3fe643b334b77987
+// 0.727439
+0x3fe7472e6715f09e
+// 0.758260
+0x3fe843a9e3fd50e7
+// 0.788025
+0x3fe9377faee36c7b
+// 0.816535
+0x3fea210e569be949
+// 0.843596
+0x3feafebd4c319432
+// 0.869019
+0x3febcf013891203f
+// 0.892624
+0x3fec906041a3483b
+// 0.914241
+0x3fed41762f7151ba
+// 0.933712
+0x3fede0f8622e51ec
+// 0.950894
+0x3fee6db98a80eb8c
+// 0.965659
+0x3feee6ad162ae471
+// 0.977895
+0x3fef4aea442b07f2
+// 0.987510
+0x3fef99aed4ae3fe1
+// 0.994431
+0x3fefd2614a91772c
+// 0.998605
+0x3feff492b5d08566
+// 1.000000
+0x3ff0000000000000
+// 0.998605
+0x3feff492b5d08566
+// 0.994431
+0x3fefd2614a91772c
+// 0.987510
+0x3fef99aed4ae3fe1
+// 0.977895
+0x3fef4aea442b07f2
+// 0.965659
+0x3feee6ad162ae471
+// 0.950894
+0x3fee6db98a80eb8c
+// 0.933712
+0x3fede0f8622e51ec
+// 0.914241
+0x3fed41762f7151ba
+// 0.892624
+0x3fec906041a3483b
+// 0.869019
+0x3febcf013891203f
+// 0.843596
+0x3feafebd4c319432
+// 0.816535
+0x3fea210e569be949
+// 0.788025
+0x3fe9377faee36c7b
+// 0.758260
+0x3fe843a9e3fd50e7
+// 0.727439
+0x3fe7472e6715f09e
+// 0.695764
+0x3fe643b334b77987
+// 0.663436
+0x3fe53ade8bdf9cf6
+// 0.630655
+0x3fe42e52c19e0555
+// 0.597615
+0x3fe31faa3f156704
+// 0.564508
+0x3fe21073b6c15c3c
+// 0.531516
+0x3fe1022e9cb94239
+// 0.498814
+0x3fdfec8fd8a49475
+// 0.466564
+0x3fdddc2e880fd612
+// 0.434920
+0x3fdbd5b8bdf2fec7
+// 0.404021
+0x3fd9db79e33c75a6
+// 0.373994
+0x3fd7ef85db2c325c
+// 0.344953
+0x3fd613b65d7f034b
+// 0.316996
+0x3fd449a923fce218
+// 0.290207
+0x3fd292bee8e69a75
+// 0.264655
+0x3fd0f01b3089a1b6
+// 0.240396
+0x3fcec549aa84169d
+// 0.217470
+0x3fcbd60e94ee3931
+// 0.195905
+0x3fc9136911652cc7
+// 0.175714
+0x3fc67dcf25bde493
+// 0.156900
+0x3fc4154f060a4de3
+// 0.139453
+0x3fc1d9961728ee2a
+// 0.123351
+0x3fbf93f165664c4c
+// 0.108566
+0x3fbbcaf5073b92fb
+// 0.095057
+0x3fb855aea573be9b
+// 0.082780
+0x3fb5311835cf5a13
+// 0.071682
+0x3fb259c07c633887
+// 0.061704
+0x3faf97badc613366
+// 0.052786
+0x3fab06bc902bf48e
+// 0.044861
+0x3fa6f7fa3908a9a2
+// 0.037862
+0x3fa3629f437918b8
+// 0.031721
+0x3fa03dae24c042f0
+// 0.026368
+0x3f9b003bea867df6
+// 0.021736
+0x3f9641eb5495edda
+// 0.017757
+0x3f922ec98dd20d16
+// 0.014365
+0x3f8d6b65b43de0d8
+// 0.011498
+0x3f878c4f21fb37ce
+// 0.009096
+0x3f82a0db72a07324
+// 0.007102
+0x3f7d16b6655e1ccc
+// 0.005463
+0x3f766026076a1e3c
+// 0.004130
+0x3f70eac4c05bcd63
+// 0.003059
+0x3f690f8993958f3c
+// 0.002210
+0x3f6219f63d4d57d4
+// 0.001546
+0x3f59540b73b5a8d4
+// 0.001037
+0x3f50fd5a42449798
+// 0.000656
+0x3f45830b127590e0
+// 0.000383
+0x3f3918a0a18ac740
+// 0.000200
+0x3f2a2727290c0ac0
+// 0.000094
+0x3f18b73daf75a880

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHamming_3_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.080000
+0x3fb47ae147ae1480
+// 0.080554
+0x3fb49f315ebc06b0
+// 0.082215
+0x3fb50c0b3ec0e7f8
+// 0.084979
+0x3fb5c12bc61da07c
+// 0.088839
+0x3fb6be23401fc9a8
+// 0.093786
+0x3fb80255a9e6049c
+// 0.099807
+0x3fb98cfb12975748
+// 0.106890
+0x3fbb5d2016b23894
+// 0.115015
+0x3fbd71a676273fd0
+// 0.124165
+0x3fbfc945c4e2e49c
+// 0.134316
+0x3fc131461aacb776
+// 0.145445
+0x3fc29defbe4c1674
+// 0.157524
+0x3fc429bee7a7a364
+// 0.170525
+0x3fc5d3bf7b9c1164
+// 0.184415
+0x3fc79aeac016a206
+// 0.199162
+0x3fc97e27fe1cfa34
+// 0.214731
+0x3fcb7c4d2eecee24
+// 0.231083
+0x3fcd941fb3c97fd2
+// 0.248179
+0x3fcfc4551803b4a4
+// 0.265978
+0x3fd105c9ee63cbf9
+// 0.284438
+0x3fd2343a2717dd0d
+// 0.303513
+0x3fd36cc0b08de15b
+// 0.323158
+0x3fd4ae9ccca0a338
+// 0.343325
+0x3fd5f907fb747e4b
+// 0.363966
+0x3fd74b3675e2db0c
+// 0.385031
+0x3fd8a457ab270af3
+// 0.406469
+0x3fda0396c17f03a9
+// 0.428229
+0x3fdb681b1970a502
+// 0.450258
+0x3fdcd108d36294b2
+// 0.472504
+0x3fde3d8157364aed
+// 0.494912
+0x3fdfaca3dd8faf1f
+// 0.517429
+0x3fe08ec6fd3acd4f
+// 0.540000
+0x3fe147ae147ae148
+// 0.562571
+0x3fe200952bbaf541
+// 0.585088
+0x3fe2b90a3a2deb01
+// 0.607496
+0x3fe3709b7d5a9d1a
+// 0.629742
+0x3fe426d7bf447838
+// 0.651771
+0x3fe4db4e9c3d700f
+// 0.673531
+0x3fe58d90c83640bc
+// 0.694969
+0x3fe63d3053623d17
+// 0.716034
+0x3fe6e9c0ee04550a
+// 0.736675
+0x3fe792d82b3b8369
+// 0.756842
+0x3fe8380dc2a570f5
+// 0.776487
+0x3fe8d8fbd0aed1e3
+// 0.795562
+0x3fe9753f1569d40a
+// 0.814022
+0x3fea0c7731c3dc94
+// 0.831821
+0x3fea9e46e2f4d568
+// 0.848917
+0x3feb2a543c03629c
+// 0.865269
+0x3febb048dd3a8708
+// 0.880838
+0x3fec2fd2296e8404
+// 0.895585
+0x3feca8a178f01a0e
+// 0.909475
+0x3fed1a6c4a0ebe38
+// 0.922476
+0x3fed84ec6f0bd9b7
+// 0.934555
+0x3fede7e03962bcf4
+// 0.945684
+0x3fee430aa24a94b2
+// 0.955835
+0x3fee9633705965fd
+// 0.964985
+0x3feee1275a30da96
+// 0.973110
+0x3fef23b8261f7b7e
+// 0.980193
+0x3fef5dbcc6a2d7a8
+// 0.986214
+0x3fef8f1173b901fc
+// 0.991161
+0x3fefb797c0f1c95b
+// 0.995021
+0x3fefd736b0320e80
+// 0.997785
+0x3fefeddac11da592
+// 0.999446
+0x3feffb75fd1e41ba
+// 1.000000
+0x3ff0000000000000
+// 0.999446
+0x3feffb75fd1e41ba
+// 0.997785
+0x3fefeddac11da592
+// 0.995021
+0x3fefd736b0320e80
+// 0.991161
+0x3fefb797c0f1c95b
+// 0.986214
+0x3fef8f1173b901fc
+// 0.980193
+0x3fef5dbcc6a2d7a8
+// 0.973110
+0x3fef23b8261f7b7e
+// 0.964985
+0x3feee1275a30da96
+// 0.955835
+0x3fee9633705965fd
+// 0.945684
+0x3fee430aa24a94b2
+// 0.934555
+0x3fede7e03962bcf4
+// 0.922476
+0x3fed84ec6f0bd9b7
+// 0.909475
+0x3fed1a6c4a0ebe38
+// 0.895585
+0x3feca8a178f01a0e
+// 0.880838
+0x3fec2fd2296e8404
+// 0.865269
+0x3febb048dd3a8708
+// 0.848917
+0x3feb2a543c03629c
+// 0.831821
+0x3fea9e46e2f4d569
+// 0.814022
+0x3fea0c7731c3dc92
+// 0.795562
+0x3fe9753f1569d40a
+// 0.776487
+0x3fe8d8fbd0aed1e3
+// 0.756842
+0x3fe8380dc2a570f5
+// 0.736675
+0x3fe792d82b3b836b
+// 0.716034
+0x3fe6e9c0ee04550c
+// 0.694969
+0x3fe63d3053623d16
+// 0.673531
+0x3fe58d90c83640bc
+// 0.651771
+0x3fe4db4e9c3d700f
+// 0.629742
+0x3fe426d7bf447838
+// 0.607496
+0x3fe3709b7d5a9d1c
+// 0.585088
+0x3fe2b90a3a2deaff
+// 0.562571
+0x3fe200952bbaf540
+// 0.540000
+0x3fe147ae147ae148
+// 0.517429
+0x3fe08ec6fd3acd50
+// 0.494912
+0x3fdfaca3dd8faf23
+// 0.472504
+0x3fde3d8157364ae9
+// 0.450258
+0x3fdcd108d36294b0
+// 0.428229
+0x3fdb681b1970a502
+// 0.406469
+0x3fda0396c17f03a9
+// 0.385031
+0x3fd8a457ab270af5
+// 0.363966
+0x3fd74b3675e2db09
+// 0.343325
+0x3fd5f907fb747e4b
+// 0.323158
+0x3fd4ae9ccca0a338
+// 0.303513
+0x3fd36cc0b08de15b
+// 0.284438
+0x3fd2343a2717dd0d
+// 0.265978
+0x3fd105c9ee63cbfd
+// 0.248179
+0x3fcfc4551803b49e
+// 0.231083
+0x3fcd941fb3c97fd2
+// 0.214731
+0x3fcb7c4d2eecee24
+// 0.199162
+0x3fc97e27fe1cfa34
+// 0.184415
+0x3fc79aeac016a20c
+// 0.170525
+0x3fc5d3bf7b9c1160
+// 0.157524
+0x3fc429bee7a7a364
+// 0.145445
+0x3fc29defbe4c1674
+// 0.134316
+0x3fc131461aacb776
+// 0.124165
+0x3fbfc945c4e2e4a4
+// 0.115015
+0x3fbd71a676273fd8
+// 0.106890
+0x3fbb5d2016b23890
+// 0.099807
+0x3fb98cfb12975748
+// 0.093786
+0x3fb80255a9e6049c
+// 0.088839
+0x3fb6be23401fc9a8
+// 0.084979
+0x3fb5c12bc61da080
+// 0.082215
+0x3fb50c0b3ec0e7f4
+// 0.080554
+0x3fb49f315ebc06b0

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHanning_4_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x0
+// 0.000602
+0x3f43bc390d250400
+// 0.002408
+0x3f63b92e176d6d80
+// 0.005412
+0x3f762aa03dd6ba40
+// 0.009607
+0x3f83ad0601146a00
+// 0.014984
+0x3f8eb0208db9e520
+// 0.021530
+0x3f960bea939d2260
+// 0.029228
+0x3f9dedefb09791c0
+// 0.038060
+0x3fa37ca1866b95d0
+// 0.048005
+0x3fa894285e19c468
+// 0.059039
+0x3fae3a6873fa1280
+// 0.071136
+0x3fb235f2eb9a470c
+// 0.084265
+0x3fb592675bc57970
+// 0.098396
+0x3fb9307ee031e300
+// 0.113495
+0x3fbd0dfe53aba2fc
+// 0.129524
+0x3fc09441bb2aa0a6
+// 0.146447
+0x3fc2bec333018868
+// 0.164221
+0x3fc5052d96e626c0
+// 0.182803
+0x3fc76619b5edc456
+// 0.202150
+0x3fc9e010063d1f96
+// 0.222215
+0x3fcc71898ca32e74
+// 0.242949
+0x3fcf18f0cdba0028
+// 0.264302
+0x3fd0ea5163fc84e2
+// 0.286222
+0x3fd25177fb0f519e
+// 0.308658
+0x3fd3c10eaca8ab4f
+// 0.331555
+0x3fd53832c52a7012
+// 0.354858
+0x3fd6b5fce895307f
+// 0.378510
+0x3fd83981a137a83a
+// 0.402455
+0x3fd9c1d1f0e5967e
+// 0.426635
+0x3fdb4dfbe45c67b2
+// 0.450991
+0x3fdcdd0b287ac97a
+// 0.475466
+0x3fde6e09a0ef227f
+// 0.500000
+0x3fe0000000000000
+// 0.524534
+0x3fe0c8fb2f886ec1
+// 0.549009
+0x3fe1917a6bc29b44
+// 0.573365
+0x3fe259020dd1cc27
+// 0.597545
+0x3fe31f17078d34c2
+// 0.621490
+0x3fe3e33f2f642be4
+// 0.645142
+0x3fe4a5018bb567c1
+// 0.668445
+0x3fe563e69d6ac7f7
+// 0.691342
+0x3fe61f78a9abaa59
+// 0.713778
+0x3fe6d74402785730
+// 0.735698
+0x3fe78ad74e01bd90
+// 0.757051
+0x3fe839c3cc917ff6
+// 0.777785
+0x3fe8e39d9cd73464
+// 0.797850
+0x3fe987fbfe70b81b
+// 0.817197
+0x3fea267992848eeb
+// 0.835779
+0x3feabeb49a467650
+// 0.853553
+0x3feb504f333f9de6
+// 0.870476
+0x3febdaef913557d7
+// 0.886505
+0x3fec5e40358a8ba0
+// 0.901604
+0x3fecd9f023f9c3a0
+// 0.915735
+0x3fed4db3148750d2
+// 0.928864
+0x3fedb941a28cb71f
+// 0.940961
+0x3fee1c5978c05ed8
+// 0.951995
+0x3fee76bd7a1e63ba
+// 0.961940
+0x3feec835e79946a3
+// 0.970772
+0x3fef1090827b4372
+// 0.978470
+0x3fef4fa0ab6316ee
+// 0.985016
+0x3fef853f7dc9186c
+// 0.990393
+0x3fefb14be7fbae58
+// 0.994588
+0x3fefd3aabf84528c
+// 0.997592
+0x3fefec46d1e89293
+// 0.999398
+0x3feffb10f1bcb6bf
+// 1.000000
+0x3ff0000000000000
+// 0.999398
+0x3feffb10f1bcb6bf
+// 0.997592
+0x3fefec46d1e89293
+// 0.994588
+0x3fefd3aabf84528c
+// 0.990393
+0x3fefb14be7fbae58
+// 0.985016
+0x3fef853f7dc9186c
+// 0.978470
+0x3fef4fa0ab6316ee
+// 0.970772
+0x3fef1090827b4372
+// 0.961940
+0x3feec835e79946a3
+// 0.951995
+0x3fee76bd7a1e63ba
+// 0.940961
+0x3fee1c5978c05ed8
+// 0.928864
+0x3fedb941a28cb71f
+// 0.915735
+0x3fed4db3148750d2
+// 0.901604
+0x3fecd9f023f9c3a0
+// 0.886505
+0x3fec5e40358a8ba0
+// 0.870476
+0x3febdaef913557d7
+// 0.853553
+0x3feb504f333f9de6
+// 0.835779
+0x3feabeb49a467650
+// 0.817197
+0x3fea267992848eec
+// 0.797850
+0x3fe987fbfe70b819
+// 0.777785
+0x3fe8e39d9cd73464
+// 0.757051
+0x3fe839c3cc917ff6
+// 0.735698
+0x3fe78ad74e01bd90
+// 0.713778
+0x3fe6d74402785731
+// 0.691342
+0x3fe61f78a9abaa5b
+// 0.668445
+0x3fe563e69d6ac7f6
+// 0.645142
+0x3fe4a5018bb567c1
+// 0.621490
+0x3fe3e33f2f642be4
+// 0.597545
+0x3fe31f17078d34c2
+// 0.573365
+0x3fe259020dd1cc29
+// 0.549009
+0x3fe1917a6bc29b42
+// 0.524534
+0x3fe0c8fb2f886ec0
+// 0.500000
+0x3fe0000000000000
+// 0.475466
+0x3fde6e09a0ef2281
+// 0.450991
+0x3fdcdd0b287ac97e
+// 0.426635
+0x3fdb4dfbe45c67ae
+// 0.402455
+0x3fd9c1d1f0e5967c
+// 0.378510
+0x3fd83981a137a83a
+// 0.354858
+0x3fd6b5fce895307f
+// 0.331555
+0x3fd53832c52a7014
+// 0.308658
+0x3fd3c10eaca8ab4c
+// 0.286222
+0x3fd25177fb0f519e
+// 0.264302
+0x3fd0ea5163fc84e2
+// 0.242949
+0x3fcf18f0cdba0028
+// 0.222215
+0x3fcc71898ca32e74
+// 0.202150
+0x3fc9e010063d1f9e
+// 0.182803
+0x3fc76619b5edc450
+// 0.164221
+0x3fc5052d96e626c0
+// 0.146447
+0x3fc2bec333018868
+// 0.129524
+0x3fc09441bb2aa0a6
+// 0.113495
+0x3fbd0dfe53aba308
+// 0.098396
+0x3fb9307ee031e2f8
+// 0.084265
+0x3fb592675bc57970
+// 0.071136
+0x3fb235f2eb9a470c
+// 0.059039
+0x3fae3a6873fa1280
+// 0.048005
+0x3fa894285e19c478
+// 0.038060
+0x3fa37ca1866b95e0
+// 0.029228
+0x3f9dedefb09791b0
+// 0.021530
+0x3f960bea939d2260
+// 0.014984
+0x3f8eb0208db9e520
+// 0.009607
+0x3f83ad0601146a00
+// 0.005412
+0x3f762aa03dd6ba80
+// 0.002408
+0x3f63b92e176d6d00
+// 0.000602
+0x3f43bc390d250400

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft116d_15_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x3ca2a00000000000
+// -0.000029
+0xbefeab93632c6500
+// -0.000125
+0xbf2052451f7ca480
+// -0.000309
+0xbf3439214e4af200
+// -0.000620
+0xbf4450a806c5bdec
+// -0.001114
+0xbf523fa3e30fe0f6
+// -0.001863
+0xbf5e84f8831f99de
+// -0.002958
+0xbf683b32e92892f8
+// -0.004509
+0xbf727882e9cb170e
+// -0.006647
+0xbf7b39ade82d5fdd
+// -0.009518
+0xbf837e2b611558fa
+// -0.013288
+0xbf8b36c78f31cf03
+// -0.018136
+0xbf92924d9c033877
+// -0.024251
+0xbf98d558bb85d02b
+// -0.031826
+0xbfa04b81614788bd
+// -0.041049
+0xbfa50459e56f89d4
+// -0.052094
+0xbfaaac1ae4db1af0
+// -0.065112
+0xbfb0ab2ce2e41204
+// -0.080213
+0xbfb488d220ceca21
+// -0.097455
+0xbfb8f2cc6b0f67e3
+// -0.116828
+0xbfbde86dc2900fbb
+// -0.138237
+0xbfc1b1bd91556bb0
+// -0.161485
+0xbfc4ab8dfc8a1702
+// -0.186261
+0xbfc7d769e4cad36a
+// -0.212121
+0xbfcb26c913a9dcb1
+// -0.238478
+0xbfce867305eb8260
+// -0.264593
+0xbfd0ef187f983cf9
+// -0.289570
+0xbfd2884f987d0fea
+// -0.312352
+0xbfd3fd91a3f858ee
+// -0.331728
+0xbfd53b0705b7f659
+// -0.346342
+0xbfd62a76625725a9
+// -0.354707
+0xbfd6b386ef5295a9
+// -0.355232
+0xbfd6bc1d52205e44
+// -0.346242
+0xbfd628d31c9333b6
+// -0.326021
+0xbfd4dd87f809ab03
+// -0.292849
+0xbfd2be0a84a83051
+// -0.245046
+0xbfcf5dabbfb052ad
+// -0.181023
+0xbfc72bbf70da206d
+// -0.099331
+0xbfb96dc76aced99d
+// 0.001280
+0x3f54f6c0f31960ec
+// 0.121814
+0x3fbf2f304853cd0a
+// 0.262976
+0x3fd0d499796dc4e6
+// 0.425125
+0x3fdb353e14262198
+// 0.608230
+0x3fe3769f36c0cdfc
+// 0.811841
+0x3fe9fa9a69fd1e6e
+// 1.035059
+0x3ff08f99c38b7772
+// 1.276522
+0x3ff46ca1d6cfabc6
+// 1.534402
+0x3ff88ce9655938e2
+// 1.806417
+0x3ffce714fee13205
+// 2.089844
+0x4000b8003434b178
+// 2.381564
+0x40030d715b961a79
+// 2.678100
+0x40056cbfc754c394
+// 2.975682
+0x4007ce3259b651b2
+// 3.270312
+0x400a299959f4a8d0
+// 3.557845
+0x400c76777fafc949
+// 3.834073
+0x400eac2eb22afc0b
+// 4.094817
+0x40106117a8367277
+// 4.336015
+0x401158145c71572e
+// 4.553821
+0x4012371cd9a785d8
+// 4.744689
+0x4012fa8fabcca91d
+// 4.905459
+0x40139f308808b523
+// 5.033433
+0x4014223c3305bf60
+// 5.126441
+0x40148179b1f71e0f
+// 5.182893
+0x4014bb483f88fdc9
+// 5.201819
+0x4014cea99666df32
+// 5.182893
+0x4014bb483f88fdc9
+// 5.126441
+0x40148179b1f71e0f
+// 5.033433
+0x4014223c3305bf60
+// 4.905459
+0x40139f308808b523
+// 4.744689
+0x4012fa8fabcca91d
+// 4.553821
+0x4012371cd9a785d8
+// 4.336015
+0x401158145c71572e
+// 4.094817
+0x40106117a8367277
+// 3.834073
+0x400eac2eb22afc0b
+// 3.557845
+0x400c76777fafc949
+// 3.270312
+0x400a299959f4a8d0
+// 2.975682
+0x4007ce3259b651b2
+// 2.678100
+0x40056cbfc754c394
+// 2.381564
+0x40030d715b961a79
+// 2.089844
+0x4000b8003434b178
+// 1.806417
+0x3ffce714fee13205
+// 1.534402
+0x3ff88ce9655938e2
+// 1.276522
+0x3ff46ca1d6cfabd1
+// 1.035059
+0x3ff08f99c38b7768
+// 0.811841
+0x3fe9fa9a69fd1e6e
+// 0.608230
+0x3fe3769f36c0cdfc
+// 0.425125
+0x3fdb353e14262198
+// 0.262976
+0x3fd0d499796dc4fc
+// 0.121814
+0x3fbf2f304853cd53
+// 0.001280
+0x3f54f6c0f3195cd0
+// -0.099331
+0xbfb96dc76aced99d
+// -0.181023
+0xbfc72bbf70da206d
+// -0.245046
+0xbfcf5dabbfb052a9
+// -0.292849
+0xbfd2be0a84a83045
+// -0.326021
+0xbfd4dd87f809aafe
+// -0.346242
+0xbfd628d31c9333b7
+// -0.355232
+0xbfd6bc1d52205e44
+// -0.354707
+0xbfd6b386ef5295aa
+// -0.346342
+0xbfd62a76625725af
+// -0.331728
+0xbfd53b0705b7f65e
+// -0.312352
+0xbfd3fd91a3f858ea
+// -0.289570
+0xbfd2884f987d0fea
+// -0.264593
+0xbfd0ef187f983cf9
+// -0.238478
+0xbfce867305eb8264
+// -0.212121
+0xbfcb26c913a9dc9d
+// -0.186261
+0xbfc7d769e4cad36a
+// -0.161485
+0xbfc4ab8dfc8a1702
+// -0.138237
+0xbfc1b1bd91556bb0
+// -0.116828
+0xbfbde86dc2900fbb
+// -0.097455
+0xbfb8f2cc6b0f67d3
+// -0.080213
+0xbfb488d220ceca07
+// -0.065112
+0xbfb0ab2ce2e41204
+// -0.052094
+0xbfaaac1ae4db1af0
+// -0.041049
+0xbfa50459e56f89d4
+// -0.031826
+0xbfa04b81614788da
+// -0.024251
+0xbf98d558bb85d047
+// -0.018136
+0xbf92924d9c033877
+// -0.013288
+0xbf8b36c78f31cf03
+// -0.009518
+0xbf837e2b611558fa
+// -0.006647
+0xbf7b39ade82d5e4a
+// -0.004509
+0xbf727882e9cb153c
+// -0.002958
+0xbf683b32e9289323
+// -0.001863
+0xbf5e84f8831f99de
+// -0.001114
+0xbf523fa3e30fe0f6
+// -0.000620
+0xbf4450a806c5bdec
+// -0.000309
+0xbf3439214e4b09d0
+// -0.000125
+0xbf2052451f7cc940
+// -0.000029
+0xbefeab93632c6500

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft144d_16_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x3c99b80000000000
+// -0.000004
+0xbed031789ba8be00
+// -0.000018
+0xbef288682c6338c0
+// -0.000048
+0xbf09631e8b0b88a0
+// -0.000109
+0xbf1c7e1e4d09cf50
+// -0.000218
+0xbf2c94ea86e5747a
+// -0.000405
+0xbf3a8a7160be0b2e
+// -0.000709
+0xbf473bcfbe5d312c
+// -0.001184
+0xbf5363fae1ef9532
+// -0.001898
+0xbf5f190c1203e6f0
+// -0.002941
+0xbf68188b19b96844
+// -0.004424
+0xbf721e67d7cd73d4
+// -0.006478
+0xbf7a88443951d8bb
+// -0.009261
+0xbf82f749025ab558
+// -0.012953
+0xbf8a875d0d8fa985
+// -0.017758
+0xbf922f2e72ae83c1
+// -0.023894
+0xbf9877bcb350c23a
+// -0.031593
+0xbfa02cf1ca2e43b0
+// -0.041087
+0xbfa50964eb0dac5a
+// -0.052601
+0xbfaaee90df7e3699
+// -0.066335
+0xbfb0fb55ba952ace
+// -0.082447
+0xbfb51b3faba39b19
+// -0.101035
+0xbfb9dd66939c096f
+// -0.122111
+0xbfbf42b1b98ce706
+// -0.145584
+0xbfc2a28094047f14
+// -0.171228
+0xbfc5eac991720731
+// -0.198661
+0xbfc96db7358287ed
+// -0.227324
+0xbfcd18f2b4216fe6
+// -0.256459
+0xbfd069d22b595847
+// -0.285093
+0xbfd23ef835bf668b
+// -0.312031
+0xbfd3f852137d7a6f
+// -0.335850
+0xbfd57e8f3374482a
+// -0.354904
+0xbfd6b6bfa4f110a2
+// -0.367345
+0xbfd78293ef6afd04
+// -0.371142
+0xbfd7c0c867ba92c6
+// -0.364120
+0xbfd74dbdf0879d60
+// -0.344009
+0xbfd6044046c10c43
+// -0.308500
+0xbfd3be77f47dc87d
+// -0.255311
+0xbfd05703d9085464
+// -0.182263
+0xbfc75467f9165d9a
+// -0.087364
+0xbfb65d74f19a09ba
+// 0.031114
+0x3f9fdc4a00083001
+// 0.174540
+0x3fc657551b103cc8
+// 0.343851
+0x3fd601a90f85ce30
+// 0.539471
+0x3fe143583a4c6b96
+// 0.761243
+0x3fe85c1a7b579cdd
+// 1.008380
+0x3ff02253338d4e2f
+// 1.279423
+0x3ff478844d8a7b84
+// 1.572223
+0x3ff927d3690151d9
+// 1.883943
+0x3ffe24a1872ef88c
+// 2.211081
+0x4001b04b5544bcf5
+// 2.549517
+0x400465695386d0a0
+// 2.894582
+0x4007281ad3324cd3
+// 3.241149
+0x4009eddf9656f782
+// 3.583742
+0x400cab80bbb1a89d
+// 3.916662
+0x400f555314439c80
+// 4.234131
+0x4010efc01814ab18
+// 4.530433
+0x40121f29ee57b37a
+// 4.800071
+0x40133345c6026d9b
+// 5.037912
+0x401426d27b3e9ef6
+// 5.239336
+0x4014f5149c55e896
+// 5.400363
+0x401599f8e10583a2
+// 5.517770
+0x401612324aa4bd13
+// 5.589183
+0x40165b52d21e2c15
+// 5.613150
+0x401673ddb9841aac
+// 5.589183
+0x40165b52d21e2c15
+// 5.517770
+0x401612324aa4bd13
+// 5.400363
+0x401599f8e10583a2
+// 5.239336
+0x4014f5149c55e896
+// 5.037912
+0x401426d27b3e9ef6
+// 4.800071
+0x40133345c6026d9b
+// 4.530433
+0x40121f29ee57b37a
+// 4.234131
+0x4010efc01814ab18
+// 3.916662
+0x400f555314439c80
+// 3.583742
+0x400cab80bbb1a89d
+// 3.241149
+0x4009eddf9656f782
+// 2.894582
+0x4007281ad3324cd3
+// 2.549517
+0x400465695386d0a0
+// 2.211081
+0x4001b04b5544bcf5
+// 1.883943
+0x3ffe24a1872ef88c
+// 1.572223
+0x3ff927d3690151d9
+// 1.279423
+0x3ff478844d8a7b84
+// 1.008380
+0x3ff02253338d4e3c
+// 0.761243
+0x3fe85c1a7b579cc9
+// 0.539471
+0x3fe143583a4c6b96
+// 0.343851
+0x3fd601a90f85ce30
+// 0.174540
+0x3fc657551b103cc8
+// 0.031114
+0x3f9fdc4a00083126
+// -0.087364
+0xbfb65d74f19a0980
+// -0.182263
+0xbfc75467f9165da7
+// -0.255311
+0xbfd05703d9085464
+// -0.308500
+0xbfd3be77f47dc87d
+// -0.344009
+0xbfd6044046c10c3e
+// -0.364120
+0xbfd74dbdf0879d5b
+// -0.371142
+0xbfd7c0c867ba92c0
+// -0.367345
+0xbfd78293ef6afd01
+// -0.354904
+0xbfd6b6bfa4f110a2
+// -0.335850
+0xbfd57e8f3374482c
+// -0.312031
+0xbfd3f852137d7a7d
+// -0.285093
+0xbfd23ef835bf668e
+// -0.256459
+0xbfd069d22b59583e
+// -0.227324
+0xbfcd18f2b4216fe6
+// -0.198661
+0xbfc96db7358287ed
+// -0.171228
+0xbfc5eac991720737
+// -0.145584
+0xbfc2a28094047f02
+// -0.122111
+0xbfbf42b1b98ce706
+// -0.101035
+0xbfb9dd66939c096f
+// -0.082447
+0xbfb51b3faba39b19
+// -0.066335
+0xbfb0fb55ba952ace
+// -0.052601
+0xbfaaee90df7e3680
+// -0.041087
+0xbfa50964eb0dac2f
+// -0.031593
+0xbfa02cf1ca2e43b0
+// -0.023894
+0xbf9877bcb350c23a
+// -0.017758
+0xbf922f2e72ae83c1
+// -0.012953
+0xbf8a875d0d8faa06
+// -0.009261
+0xbf82f749025ab5d7
+// -0.006478
+0xbf7a88443951d8bb
+// -0.004424
+0xbf721e67d7cd73d4
+// -0.002941
+0xbf68188b19b96844
+// -0.001898
+0xbf5f190c1203dc58
+// -0.001184
+0xbf5363fae1ef8ba6
+// -0.000709
+0xbf473bcfbe5d2e92
+// -0.000405
+0xbf3a8a7160be0b2e
+// -0.000218
+0xbf2c94ea86e5747a
+// -0.000109
+0xbf1c7e1e4d09cf50
+// -0.000048
+0xbf09631e8b0be0a0
+// -0.000018
+0xbef288682c638ec0
+// -0.000004
+0xbed031789ba8be00

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft169d_17_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// -0.000000
+0xbca0570000000000
+// -0.000000
+0xbe9df5a0e3866200
+// -0.000002
+0xbec3249615c7f540
+// -0.000007
+0xbeddfaaa49935d90
+// -0.000018
+0xbef32e55aee4587c
+// -0.000041
+0xbf05b0e4635469e5
+// -0.000086
+0xbf16717307a5f27d
+// -0.000165
+0xbf25ad40ed17d1cc
+// -0.000302
+0xbf33cd870bf1428c
+// -0.000527
+0xbf414511a4d3f9f3
+// -0.000883
+0xbf4cf2de40c71607
+// -0.001430
+0xbf576fd605ae9c64
+// -0.002246
+0xbf62669c64082985
+// -0.003431
+0xbf6c1b94a48586f7
+// -0.005111
+0xbf74efa53a8ebc67
+// -0.007441
+0xbf7e7a9bf7518048
+// -0.010604
+0xbf85b7be190a5f2e
+// -0.014814
+0xbf8e5707c20c7d22
+// -0.020312
+0xbf94ccb3a98f5af4
+// -0.027361
+0xbf9c0470b4a36e5b
+// -0.036238
+0xbfa28dc017e31717
+// -0.047223
+0xbfa82da7422e8628
+// -0.060584
+0xbfaf04e0376e9e9b
+// -0.076553
+0xbfb398f8e5623faf
+// -0.095305
+0xbfb865e034c24c86
+// -0.116927
+0xbfbdeee9555ce398
+// -0.141389
+0xbfc21909b019b799
+// -0.168508
+0xbfc591ae888982fc
+// -0.197914
+0xbfc9553c400be365
+// -0.229012
+0xbfcd5045b5baa461
+// -0.260958
+0xbfd0b3877ea07f06
+// -0.292623
+0xbfd2ba578017b468
+// -0.322584
+0xbfd4a537d2aa316c
+// -0.349106
+0xbfd657c08230b041
+// -0.370150
+0xbfd7b0899d8c666f
+// -0.383389
+0xbfd889741b698572
+// -0.386243
+0xbfd8b835918bf23e
+// -0.375926
+0xbfd80f2b19c7fcd3
+// -0.349515
+0xbfd65e74a5cd74ac
+// -0.304037
+0xbfd3755667e5cbb8
+// -0.236563
+0xbfce47b404692730
+// -0.144326
+0xbfc2794a23b7990d
+// -0.024839
+0xbf996f6a1be3d95b
+// 0.123979
+0x3fbfbd1a9cee9309
+// 0.303675
+0x3fd36f6aedbdc4e4
+// 0.515142
+0x3fe07c0be2c7672f
+// 0.758511
+0x3fe845b802107447
+// 1.033057
+0x3ff0876673bfe4c8
+// 1.337136
+0x3ff564e8af23d993
+// 1.668143
+0x3ffab0b6d320c585
+// 2.022506
+0x40002e176364a7ee
+// 2.395712
+0x40032a6b43b2c9d5
+// 2.782380
+0x40064250a4088bca
+// 3.176357
+0x4009692d9e325672
+// 3.570856
+0x400c911d0daf5ea1
+// 3.958632
+0x400fab474c69275d
+// 4.332170
+0x401154245712822f
+// 4.683903
+0x4012bc511d618333
+// 5.006440
+0x4014069843f5c4ad
+// 5.292794
+0x40152bd210aad001
+// 5.536603
+0x4016257b598aaefa
+// 5.732346
+0x4016edec1425f463
+// 5.875517
+0x4017808795eb4f91
+// 5.962786
+0x4017d9e47740d73a
+// 5.992105
+0x4017f7ea60dc63c4
+// 5.962786
+0x4017d9e47740d73a
+// 5.875517
+0x4017808795eb4f91
+// 5.732346
+0x4016edec1425f463
+// 5.536603
+0x4016257b598aaefa
+// 5.292794
+0x40152bd210aad001
+// 5.006440
+0x4014069843f5c4ad
+// 4.683903
+0x4012bc511d618333
+// 4.332170
+0x401154245712822f
+// 3.958632
+0x400fab474c69275d
+// 3.570856
+0x400c911d0daf5ea1
+// 3.176357
+0x4009692d9e325672
+// 2.782380
+0x40064250a4088bca
+// 2.395712
+0x40032a6b43b2c9d5
+// 2.022506
+0x40002e176364a7ee
+// 1.668143
+0x3ffab0b6d320c585
+// 1.337136
+0x3ff564e8af23d993
+// 1.033057
+0x3ff0876673bfe4c8
+// 0.758511
+0x3fe845b80210745c
+// 0.515142
+0x3fe07c0be2c76719
+// 0.303675
+0x3fd36f6aedbdc4e4
+// 0.123979
+0x3fbfbd1a9cee9309
+// -0.024839
+0xbf996f6a1be3d95b
+// -0.144326
+0xbfc2794a23b798ef
+// -0.236563
+0xbfce47b40469270f
+// -0.304037
+0xbfd3755667e5cbb7
+// -0.349515
+0xbfd65e74a5cd74ac
+// -0.375926
+0xbfd80f2b19c7fcd3
+// -0.386243
+0xbfd8b835918bf241
+// -0.383389
+0xbfd889741b69856b
+// -0.370150
+0xbfd7b0899d8c6665
+// -0.349106
+0xbfd657c08230b03e
+// -0.322584
+0xbfd4a537d2aa316c
+// -0.292623
+0xbfd2ba578017b46b
+// -0.260958
+0xbfd0b3877ea07f10
+// -0.229012
+0xbfcd5045b5baa462
+// -0.197914
+0xbfc9553c400be35d
+// -0.168508
+0xbfc591ae888982fc
+// -0.141389
+0xbfc21909b019b799
+// -0.116927
+0xbfbdeee9555ce3ad
+// -0.095305
+0xbfb865e034c24c65
+// -0.076553
+0xbfb398f8e5623faf
+// -0.060584
+0xbfaf04e0376e9e9b
+// -0.047223
+0xbfa82da7422e8628
+// -0.036238
+0xbfa28dc017e31717
+// -0.027361
+0xbf9c0470b4a36e18
+// -0.020312
+0xbf94ccb3a98f5ac8
+// -0.014814
+0xbf8e5707c20c7d22
+// -0.010604
+0xbf85b7be190a5f2e
+// -0.007441
+0xbf7e7a9bf7518048
+// -0.005111
+0xbf74efa53a8ebdaf
+// -0.003431
+0xbf6c1b94a4858872
+// -0.002246
+0xbf62669c64082985
+// -0.001430
+0xbf576fd605ae9c64
+// -0.000883
+0xbf4cf2de40c71607
+// -0.000527
+0xbf414511a4d3e88b
+// -0.000302
+0xbf33cd870bf12304
+// -0.000165
+0xbf25ad40ed17d176
+// -0.000086
+0xbf16717307a5f27d
+// -0.000041
+0xbf05b0e4635469e5
+// -0.000018
+0xbef32e55aee4587c
+// -0.000007
+0xbeddfaaa499a9c08
+// -0.000002
+0xbec3249615cd5f60
+// -0.000000
+0xbe9df5a0e3866200

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft196d_18_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// -0.000000
+0xbc8dc98000000000
+// -0.000000
+0xbe6c5c8e1c665100
+// -0.000000
+0xbe949281dd892e00
+// -0.000001
+0xbeb275e78635039c
+// -0.000003
+0xbecabc47ce520a4c
+// -0.000008
+0xbee0e0c4dd7380f8
+// -0.000018
+0xbef34a7c2ae226fc
+// -0.000039
+0xbf046a1fba4607ed
+// -0.000077
+0xbf144cde5ad87b23
+// -0.000146
+0xbf232a465314f24b
+// -0.000264
+0xbf314ea6c8764e18
+// -0.000459
+0xbf3e12034d02cb5b
+// -0.000770
+0xbf493d8ae988863c
+// -0.001254
+0xbf548ad5769c30ec
+// -0.001984
+0xbf6041abeaf654d6
+// -0.003061
+0xbf6913a3e44a045b
+// -0.004611
+0xbf72e2ff869adde9
+// -0.006793
+0xbf7bd363ed92a502
+// -0.009803
+0xbf84136a4552942e
+// -0.013870
+0xbf8c67ba85380f76
+// -0.019261
+0xbf93b93262acb64f
+// -0.026275
+0xbf9ae7dfe81c7931
+// -0.035234
+0xbfa20a213163742d
+// -0.046469
+0xbfa7cac60f27a000
+// -0.060306
+0xbfaee07c30407f76
+// -0.077039
+0xbfb3b8db00930b40
+// -0.096899
+0xbfb8ce5d96e08033
+// -0.120017
+0xbfbeb97010a28092
+// -0.146386
+0xbfc2bcc2f1a767a0
+// -0.175810
+0xbfc680ed59b396fe
+// -0.207860
+0xbfca9b2620ef3bfa
+// -0.241825
+0xbfcef41c284a6de4
+// -0.276666
+0xbfd1b4e430ca2ae1
+// -0.310980
+0xbfd3e717fc9453fd
+// -0.342972
+0xbfd5f33f15a0818a
+// -0.370440
+0xbfd7b54b1f2c7007
+// -0.390785
+0xbfd9029e794b0b66
+// -0.401030
+0xbfd9aa7a9a6a998c
+// -0.397877
+0xbfd976d2f334b417
+// -0.377780
+0xbfd82d8b0bca9ca5
+// -0.337044
+0xbfd5922130f25931
+// -0.271958
+0xbfd167c0c5ed5a3e
+// -0.178936
+0xbfc6e760e577fd74
+// -0.054690
+0xbfac004a95a798c2
+// 0.103600
+0x3fba858a39f86751
+// 0.298100
+0x3fd3141234adb55c
+// 0.530149
+0x3fe0f6fa6c0a1d82
+// 0.800096
+0x3fe99a6301002bd5
+// 1.107166
+0x3ff1b6f3e1bd4276
+// 1.449354
+0x3ff7308e3df03817
+// 1.823366
+0x3ffd2c8214cca9bc
+// 2.224606
+0x4001cbfe2e824778
+// 2.647219
+0x40052d8123a50060
+// 3.084192
+0x4008ac6cbfc601c0
+// 3.527507
+0x400c3855c4052de8
+// 3.968354
+0x400fbf304fd7100e
+// 4.397380
+0x401196eadeff1c3a
+// 4.804989
+0x4013384f0a7643e3
+// 5.181654
+0x4014ba03764fdbcb
+// 5.518251
+0x401612b057320c57
+// 5.806386
+0x401739bd3903c195
+// 6.038705
+0x401827a242b36a53
+// 6.209171
+0x4018d630f2e4abb4
+// 6.313297
+0x401940d0cee9d71b
+// 6.348316
+0x401964ad079bbbef
+// 6.313297
+0x401940d0cee9d71b
+// 6.209171
+0x4018d630f2e4abb4
+// 6.038705
+0x401827a242b36a53
+// 5.806386
+0x401739bd3903c195
+// 5.518251
+0x401612b057320c57
+// 5.181654
+0x4014ba03764fdbcb
+// 4.804989
+0x4013384f0a7643e3
+// 4.397380
+0x401196eadeff1c3a
+// 3.968354
+0x400fbf304fd7100e
+// 3.527507
+0x400c3855c4052de8
+// 3.084192
+0x4008ac6cbfc601c0
+// 2.647219
+0x40052d8123a50060
+// 2.224606
+0x4001cbfe2e824778
+// 1.823366
+0x3ffd2c8214cca9bc
+// 1.449354
+0x3ff7308e3df03817
+// 1.107166
+0x3ff1b6f3e1bd4276
+// 0.800096
+0x3fe99a6301002bd5
+// 0.530149
+0x3fe0f6fa6c0a1d95
+// 0.298100
+0x3fd3141234adb531
+// 0.103600
+0x3fba858a39f86751
+// -0.054690
+0xbfac004a95a798c2
+// -0.178936
+0xbfc6e760e577fd74
+// -0.271958
+0xbfd167c0c5ed5a32
+// -0.337044
+0xbfd5922130f2592b
+// -0.377780
+0xbfd82d8b0bca9ca5
+// -0.397877
+0xbfd976d2f334b417
+// -0.401030
+0xbfd9aa7a9a6a998c
+// -0.390785
+0xbfd9029e794b0b67
+// -0.370440
+0xbfd7b54b1f2c7004
+// -0.342972
+0xbfd5f33f15a0817a
+// -0.310980
+0xbfd3e717fc9453f8
+// -0.276666
+0xbfd1b4e430ca2ae1
+// -0.241825
+0xbfcef41c284a6dee
+// -0.207860
+0xbfca9b2620ef3c17
+// -0.175810
+0xbfc680ed59b39701
+// -0.146386
+0xbfc2bcc2f1a76791
+// -0.120017
+0xbfbeb97010a28092
+// -0.096899
+0xbfb8ce5d96e08033
+// -0.077039
+0xbfb3b8db00930b60
+// -0.060306
+0xbfaee07c30407f38
+// -0.046469
+0xbfa7cac60f27a000
+// -0.035234
+0xbfa20a213163742d
+// -0.026275
+0xbf9ae7dfe81c7931
+// -0.019261
+0xbf93b93262acb64f
+// -0.013870
+0xbf8c67ba85380e94
+// -0.009803
+0xbf84136a4552934f
+// -0.006793
+0xbf7bd363ed92a502
+// -0.004611
+0xbf72e2ff869adde9
+// -0.003061
+0xbf6913a3e44a045b
+// -0.001984
+0xbf6041abeaf657c9
+// -0.001254
+0xbf548ad5769c363e
+// -0.000770
+0xbf493d8ae988863c
+// -0.000459
+0xbf3e12034d02cb5b
+// -0.000264
+0xbf314ea6c8764e18
+// -0.000146
+0xbf232a465314be4a
+// -0.000077
+0xbf144cde5ad7e623
+// -0.000039
+0xbf046a1fba46182b
+// -0.000018
+0xbef34a7c2ae226fc
+// -0.000008
+0xbee0e0c4dd7380f8
+// -0.000003
+0xbecabc47ce520a4c
+// -0.000001
+0xbeb275e78650d254
+// -0.000000
+0xbe949281ddcd33e0
+// -0.000000
+0xbe6c5c8e1c665100

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft223d_19_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// -0.000000
+0xbca4550200000000
+// -0.000000
+0xbe352fde23fffa00
+// -0.000000
+0xbe623116e0b33da0
+// -0.000000
+0xbe832eb877fcbd4e
+// -0.000000
+0xbe9ff0f063108999
+// -0.000001
+0xbeb6cc3e4ffe21c0
+// -0.000003
+0xbecd1a4377eb73ef
+// -0.000008
+0xbee1096d4c6f1a03
+// -0.000018
+0xbef29985bb908dda
+// -0.000037
+0xbf032766b953da89
+// -0.000072
+0xbf12c34fc3404de5
+// -0.000134
+0xbf21988228fe708d
+// -0.000242
+0xbf2fc071baf5d29b
+// -0.000422
+0xbf3bac0eb3702fee
+// -0.000713
+0xbf475eb47e938136
+// -0.001170
+0xbf532d1d6fe35395
+// -0.001870
+0xbf5ea4dfa1692281
+// -0.002916
+0xbf67e2e9dd28664f
+// -0.004441
+0xbf72313a222899fa
+// -0.006619
+0xbf7b1cc15d661f7c
+// -0.009663
+0xbf83c9f891d3cef4
+// -0.013830
+0xbf8c52a7367e124c
+// -0.019423
+0xbf93e3894edce193
+// -0.026786
+0xbf9b6dacef7e8c34
+// -0.036294
+0xbfa295217dd3a23e
+// -0.048341
+0xbfa8c02bed61a2d4
+// -0.063315
+0xbfb0356885d4a77a
+// -0.081568
+0xbfb4e19e74356802
+// -0.103376
+0xbfba76e1cd8d6358
+// -0.128896
+0xbfc07fa61722dd58
+// -0.158100
+0xbfc43ca05e43385e
+// -0.190725
+0xbfc869b0c2a6fbd4
+// -0.226201
+0xbfccf42689af5143
+// -0.263586
+0xbfd0de9850f8120c
+// -0.301511
+0xbfd34bf3dffa5d5c
+// -0.338125
+0xbfd5a3d6c3274c52
+// -0.371065
+0xbfd7bf889c061841
+// -0.397443
+0xbfd96fb5d80f27ab
+// -0.413861
+0xbfda7cb0fc1c1c32
+// -0.416457
+0xbfdaa73baf70a229
+// -0.400995
+0xbfd9a9e68e6e5186
+// -0.362980
+0xbfd73b0f493971a7
+// -0.297820
+0xbfd30f7b320d5bb4
+// -0.201020
+0xbfc9bb032769f385
+// -0.068401
+0xbfb182b651718abe
+// 0.103656
+0x3fba8930a997ed63
+// 0.317959
+0x3fd45972aa8224b7
+// 0.576263
+0x3fe270bfe115ae11
+// 0.879038
+0x3fec211365109f8a
+// 1.225276
+0x3ff39abab1cf5009
+// 1.612351
+0x3ff9cc30a0550aef
+// 2.035935
+0x400049985fc7b227
+// 2.489990
+0x4003eb7fcdabb345
+// 2.966841
+0x4007bc16e210ebd6
+// 3.457334
+0x400ba89e79ceef62
+// 3.951076
+0x400f9bcdfbeec260
+// 4.436755
+0x4011bf3c9b618263
+// 4.902512
+0x40139c2c0586fdb3
+// 5.336379
+0x40155873b54e425d
+// 5.726733
+0x4016e82c9cdfef59
+// 6.062758
+0x40184043a083d3d2
+// 6.334894
+0x401956ee57001324
+// 6.535236
+0x401a2414dcdbe822
+// 6.657879
+0x401aa1aaf7ad1c58
+// 6.699171
+0x401acbf3990fec11
+// 6.657879
+0x401aa1aaf7ad1c58
+// 6.535236
+0x401a2414dcdbe822
+// 6.334894
+0x401956ee57001324
+// 6.062758
+0x40184043a083d3d2
+// 5.726733
+0x4016e82c9cdfef59
+// 5.336379
+0x40155873b54e425d
+// 4.902512
+0x40139c2c0586fdb3
+// 4.436755
+0x4011bf3c9b618263
+// 3.951076
+0x400f9bcdfbeec260
+// 3.457334
+0x400ba89e79ceef62
+// 2.966841
+0x4007bc16e210ebd6
+// 2.489990
+0x4003eb7fcdabb345
+// 2.035935
+0x400049985fc7b227
+// 1.612351
+0x3ff9cc30a0550aef
+// 1.225276
+0x3ff39abab1cf5009
+// 0.879038
+0x3fec211365109f8a
+// 0.576263
+0x3fe270bfe115ae11
+// 0.317959
+0x3fd45972aa8224e0
+// 0.103656
+0x3fba8930a997ecd4
+// -0.068401
+0xbfb182b651718abe
+// -0.201020
+0xbfc9bb032769f385
+// -0.297820
+0xbfd30f7b320d5bb4
+// -0.362980
+0xbfd73b0f493971a0
+// -0.400995
+0xbfd9a9e68e6e517c
+// -0.416457
+0xbfdaa73baf70a229
+// -0.413861
+0xbfda7cb0fc1c1c32
+// -0.397443
+0xbfd96fb5d80f27ab
+// -0.371065
+0xbfd7bf889c061848
+// -0.338125
+0xbfd5a3d6c3274c50
+// -0.301511
+0xbfd34bf3dffa5d4a
+// -0.263586
+0xbfd0de9850f81204
+// -0.226201
+0xbfccf42689af5143
+// -0.190725
+0xbfc869b0c2a6fbdb
+// -0.158100
+0xbfc43ca05e433882
+// -0.128896
+0xbfc07fa61722dd5a
+// -0.103376
+0xbfba76e1cd8d6338
+// -0.081568
+0xbfb4e19e74356802
+// -0.063315
+0xbfb0356885d4a77a
+// -0.048341
+0xbfa8c02bed61a2fa
+// -0.036294
+0xbfa295217dd3a1ed
+// -0.026786
+0xbf9b6dacef7e8c34
+// -0.019423
+0xbf93e3894edce193
+// -0.013830
+0xbf8c52a7367e124c
+// -0.009663
+0xbf83c9f891d3cef4
+// -0.006619
+0xbf7b1cc15d661d89
+// -0.004441
+0xbf72313a222898e2
+// -0.002916
+0xbf67e2e9dd28664f
+// -0.001870
+0xbf5ea4dfa1692281
+// -0.001170
+0xbf532d1d6fe35395
+// -0.000713
+0xbf475eb47e9392dc
+// -0.000422
+0xbf3bac0eb37046a7
+// -0.000242
+0xbf2fc071baf5d29b
+// -0.000134
+0xbf21988228fe708d
+// -0.000072
+0xbf12c34fc3404de5
+// -0.000037
+0xbf032766b9527a2d
+// -0.000018
+0xbef29985bb8d15db
+// -0.000008
+0xbee1096d4c6f24a3
+// -0.000003
+0xbecd1a4377eb73ef
+// -0.000001
+0xbeb6cc3e4ffe21c0
+// -0.000000
+0xbe9ff0f063108999
+// -0.000000
+0xbe832eb878c73ea0
+// -0.000000
+0xbe623116e27a6fd0
+// -0.000000
+0xbe352fde23fffa00

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft248d_20_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x3c8318a200000000
+// -0.000000
+0xbdfae17bc0a01400
+// -0.000000
+0xbe2cd19db165fd00
+// -0.000000
+0xbe524f0aae275c2e
+// -0.000000
+0xbe71c83ea59b1ff8
+// -0.000000
+0xbe8cff65d3d7b484
+// -0.000001
+0xbea4d556a5d84b08
+// -0.000002
+0xbebb25ea0b359441
+// -0.000004
+0xbed05889d4b9367f
+// -0.000009
+0xbee26df8bcdc87f7
+// -0.000019
+0xbef3a4736606aa3c
+// -0.000038
+0xbf03ef245bcebd40
+// -0.000074
+0xbf135f54abcf3c06
+// -0.000138
+0xbf221c0e8519623d
+// -0.000249
+0xbf30581dee7ab50a
+// -0.000436
+0xbf3c918854ca8929
+// -0.000740
+0xbf483d1ecbd8547a
+// -0.001221
+0xbf5401ca1c5044b7
+// -0.001965
+0xbf60183b2ab9e6a8
+// -0.003085
+0xbf69469d26cb566b
+// -0.004736
+0xbf7365f82c0b7cbc
+// -0.007113
+0xbf7d226d2a54b78d
+// -0.010463
+0xbf856dbe60cd5cde
+// -0.015088
+0xbf8ee6381f090dc4
+// -0.021341
+0xbf95da5f3c2af73b
+// -0.029628
+0xbf9e56bf9e58189a
+// -0.040392
+0xbfa4ae349b6f6ac4
+// -0.054094
+0xbfabb237763468a1
+// -0.071186
+0xbfb2393d93532c02
+// -0.092065
+0xbfb7919a80f9bc1e
+// -0.117026
+0xbfbdf5626566c170
+// -0.146188
+0xbfc2b64d0e4756be
+// -0.179431
+0xbfc6f7974d27d92e
+// -0.216302
+0xbfcbafc4a89e383e
+// -0.255934
+0xbfd0613b14295a23
+// -0.296966
+0xbfd3017d4d315c08
+// -0.337459
+0xbfd598ef201c751d
+// -0.374849
+0xbfd7fd86236257c0
+// -0.405908
+0xbfd9fa654759f2a7
+// -0.426753
+0xbfdb4fec0316eb62
+// -0.432890
+0xbfdbb477a5838516
+// -0.419308
+0xbfdad5f0e5e5df66
+// -0.380628
+0xbfd85c3582eafb9a
+// -0.311302
+0xbfd3ec602bafb9ec
+// -0.205864
+0xbfca59c167962fd2
+// -0.059220
+0xbfae522570a9fcf5
+// 0.133027
+0x3fc10703743db1d1
+// 0.374243
+0x3fd7f399ed8b1cb1
+// 0.666434
+0x3fe5536cd8096506
+// 1.009936
+0x3ff028b300a0def7
+// 1.403170
+0x3ff673626f3faa5e
+// 1.842453
+0x3ffd7ab030f60df8
+// 2.321914
+0x40029347928f73ab
+// 2.833508
+0x4006ab062cf873cf
+// 3.367154
+0x400aefee5fe5ec4b
+// 3.910989
+0x400f49b4579f5580
+// 4.451736
+0x4011ce93fd2f74bc
+// 4.975182
+0x4013e69628182f6c
+// 5.466723
+0x4015ddecb312e30f
+// 5.911976
+0x4017a5dd250aa670
+// 6.297405
+0x4019308b0c15ca04
+// 6.610934
+0x401a7198c414c10a
+// 6.842510
+0x401b5ebb104a4ee7
+// 6.984583
+0x401bf036a22ca262
+// 7.032470
+0x401c213fd497f986
+// 6.984583
+0x401bf036a22ca262
+// 6.842510
+0x401b5ebb104a4ee7
+// 6.610934
+0x401a7198c414c10a
+// 6.297405
+0x4019308b0c15ca04
+// 5.911976
+0x4017a5dd250aa670
+// 5.466723
+0x4015ddecb312e30f
+// 4.975182
+0x4013e69628182f6c
+// 4.451736
+0x4011ce93fd2f74bc
+// 3.910989
+0x400f49b4579f5580
+// 3.367154
+0x400aefee5fe5ec4b
+// 2.833508
+0x4006ab062cf873cf
+// 2.321914
+0x40029347928f73ab
+// 1.842453
+0x3ffd7ab030f60df8
+// 1.403170
+0x3ff673626f3faa5e
+// 1.009936
+0x3ff028b300a0def7
+// 0.666434
+0x3fe5536cd8096506
+// 0.374243
+0x3fd7f399ed8b1cb1
+// 0.133027
+0x3fc10703743db216
+// -0.059220
+0xbfae522570a9fe09
+// -0.205864
+0xbfca59c167962fd2
+// -0.311302
+0xbfd3ec602bafb9ec
+// -0.380628
+0xbfd85c3582eafb9a
+// -0.419308
+0xbfdad5f0e5e5df5f
+// -0.432890
+0xbfdbb477a5838515
+// -0.426753
+0xbfdb4fec0316eb62
+// -0.405908
+0xbfd9fa654759f2a7
+// -0.374849
+0xbfd7fd86236257c0
+// -0.337459
+0xbfd598ef201c7525
+// -0.296966
+0xbfd3017d4d315c05
+// -0.255934
+0xbfd0613b14295a10
+// -0.216302
+0xbfcbafc4a89e3822
+// -0.179431
+0xbfc6f7974d27d92e
+// -0.146188
+0xbfc2b64d0e4756c6
+// -0.117026
+0xbfbdf5626566c1ae
+// -0.092065
+0xbfb7919a80f9bc38
+// -0.071186
+0xbfb2393d93532bfe
+// -0.054094
+0xbfabb237763468a1
+// -0.040392
+0xbfa4ae349b6f6ac4
+// -0.029628
+0xbf9e56bf9e5818a4
+// -0.021341
+0xbf95da5f3c2af6ba
+// -0.015088
+0xbf8ee6381f090dc4
+// -0.010463
+0xbf856dbe60cd5cde
+// -0.007113
+0xbf7d226d2a54b78d
+// -0.004736
+0xbf7365f82c0b7cbc
+// -0.003085
+0xbf69469d26cb5220
+// -0.001965
+0xbf60183b2ab9e4d0
+// -0.001221
+0xbf5401ca1c5044b7
+// -0.000740
+0xbf483d1ecbd8547a
+// -0.000436
+0xbf3c918854ca8929
+// -0.000249
+0xbf30581dee7ad900
+// -0.000138
+0xbf221c0e85199588
+// -0.000074
+0xbf135f54abcf3c06
+// -0.000038
+0xbf03ef245bcebd40
+// -0.000019
+0xbef3a4736606aa3c
+// -0.000009
+0xbee26df8bcd9b615
+// -0.000004
+0xbed05889d4aff6bf
+// -0.000002
+0xbebb25ea0b3ab452
+// -0.000001
+0xbea4d556a5d84b08
+// -0.000000
+0xbe8cff65d3d7b484
+// -0.000000
+0xbe71c83ea59b1ff8
+// -0.000000
+0xbe524f0ab33c8c4a
+// -0.000000
+0xbe2cd19dc0cdf960
+// -0.000000
+0xbdfae17bc0a01400

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft90d_13_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// -0.000000
+0xbc9e000000000000
+// -0.000171
+0xbf266ac9deec7f00
+// -0.000699
+0xbf46e81a1d6b1e40
+// -0.001628
+0xbf5aae488d852380
+// -0.003032
+0xbf68d62ba0d77e20
+// -0.005008
+0xbf7482e516612314
+// -0.007677
+0xbf7f726826383e58
+// -0.011182
+0xbf86e6790b3fc19d
+// -0.015675
+0xbf900d2889cf285d
+// -0.021321
+0xbf95d512c3a490d0
+// -0.028283
+0xbf9cf618b628aedc
+// -0.036719
+0xbfa2cce07e8b6ca0
+// -0.046775
+0xbfa7f2e1f985764c
+// -0.058569
+0xbfadfcd1926dc327
+// -0.072190
+0xbfb27b06270e3925
+// -0.087679
+0xbfb6721a77b3379d
+// -0.105025
+0xbfbae2eb596a8eec
+// -0.124153
+0xbfbfc88509ade7bc
+// -0.144914
+0xbfc28c896d0018a2
+// -0.167072
+0xbfc562a1aa6f35b3
+// -0.190304
+0xbfc85bdf0f30b944
+// -0.214183
+0xbfcb6a58ef9cd674
+// -0.238182
+0xbfce7cc04c6dc75f
+// -0.261666
+0xbfd0bf24261f8fe0
+// -0.283894
+0xbfd22b51f5d8e292
+// -0.304019
+0xbfd3750dbbdb7eb9
+// -0.321098
+0xbfd48cddf8dd2030
+// -0.334095
+0xbfd561d0f572bc9a
+// -0.341900
+0xbfd5e1b05aa0b70a
+// -0.343339
+0xbfd5f943017c8072
+// -0.337196
+0xbfd5949c995d1ace
+// -0.322234
+0xbfd49f7a5129707a
+// -0.297221
+0xbfd305ab3aabcd74
+// -0.260956
+0xbfd0b382aa52da7f
+// -0.212300
+0xbfcb2ca4cd09c35a
+// -0.150202
+0xbfc339d42780e172
+// -0.073736
+0xbfb2e063c8e6560e
+// 0.017872
+0x3f924d145c8ab35d
+// 0.125215
+0x3fc0070f9cf6e2c0
+// 0.248675
+0x3fcfd4980ebb0b80
+// 0.388398
+0x3fd8db83f3c8a45c
+// 0.544273
+0x3fe16aafb8160202
+// 0.715916
+0x3fe6e8c7aa6c2587
+// 0.902653
+0x3fece288b72289d2
+// 1.103520
+0x3ff1a804f27e4da5
+// 1.317257
+0x3ff5137c55bab8ed
+// 1.542315
+0x3ff8ad5250d1ba79
+// 1.776867
+0x3ffc6e0c76f85f66
+// 2.018831
+0x40002690dff27045
+// 2.265889
+0x4002208a6fee9262
+// 2.515523
+0x40041fca8133895c
+// 2.765049
+0x40061ed2308e7ccf
+// 3.011662
+0x400817e2024875bf
+// 3.252476
+0x400a0511eaa0b44b
+// 3.484579
+0x400be06affd85956
+// 3.705082
+0x400da40248ef19ed
+// 3.911171
+0x400f4a141155a617
+// 4.100157
+0x4010668f9178cfc8
+// 4.269530
+0x401113ffa28f8e8b
+// 4.417004
+0x4011ab0330858b8c
+// 4.540565
+0x40122989d8ea8225
+// 4.638505
+0x40128dd4389f0ff6
+// 4.709460
+0x4012d67cc005117e
+// 4.752437
+0x4013027ecd9ba5fd
+// 4.766830
+0x4013113be22e5de2
+// 4.752437
+0x4013027ecd9ba5fd
+// 4.709460
+0x4012d67cc005117e
+// 4.638505
+0x40128dd4389f0ff6
+// 4.540565
+0x40122989d8ea8225
+// 4.417004
+0x4011ab0330858b8c
+// 4.269530
+0x401113ffa28f8e8b
+// 4.100157
+0x4010668f9178cfc8
+// 3.911171
+0x400f4a141155a617
+// 3.705082
+0x400da40248ef19ed
+// 3.484579
+0x400be06affd85956
+// 3.252476
+0x400a0511eaa0b44b
+// 3.011662
+0x400817e2024875bf
+// 2.765049
+0x40061ed2308e7ccf
+// 2.515523
+0x40041fca8133895c
+// 2.265889
+0x4002208a6fee9262
+// 2.018831
+0x40002690dff27045
+// 1.776867
+0x3ffc6e0c76f85f66
+// 1.542315
+0x3ff8ad5250d1ba83
+// 1.317257
+0x3ff5137c55bab8e3
+// 1.103520
+0x3ff1a804f27e4da5
+// 0.902653
+0x3fece288b72289d2
+// 0.715916
+0x3fe6e8c7aa6c2587
+// 0.544273
+0x3fe16aafb816020f
+// 0.388398
+0x3fd8db83f3c8a472
+// 0.248675
+0x3fcfd4980ebb0b69
+// 0.125215
+0x3fc0070f9cf6e2c0
+// 0.017872
+0x3f924d145c8ab35d
+// -0.073736
+0xbfb2e063c8e655f8
+// -0.150202
+0xbfc339d42780e150
+// -0.212300
+0xbfcb2ca4cd09c35d
+// -0.260956
+0xbfd0b382aa52da84
+// -0.297221
+0xbfd305ab3aabcd74
+// -0.322234
+0xbfd49f7a51297079
+// -0.337196
+0xbfd5949c995d1ad2
+// -0.343339
+0xbfd5f943017c8079
+// -0.341900
+0xbfd5e1b05aa0b704
+// -0.334095
+0xbfd561d0f572bc9a
+// -0.321098
+0xbfd48cddf8dd2030
+// -0.304019
+0xbfd3750dbbdb7ebc
+// -0.283894
+0xbfd22b51f5d8e28c
+// -0.261666
+0xbfd0bf24261f8fe0
+// -0.238182
+0xbfce7cc04c6dc75f
+// -0.214183
+0xbfcb6a58ef9cd674
+// -0.190304
+0xbfc85bdf0f30b944
+// -0.167072
+0xbfc562a1aa6f35b2
+// -0.144914
+0xbfc28c896d001895
+// -0.124153
+0xbfbfc88509ade7bc
+// -0.105025
+0xbfbae2eb596a8eec
+// -0.087679
+0xbfb6721a77b3379d
+// -0.072190
+0xbfb27b06270e3931
+// -0.058569
+0xbfadfcd1926dc319
+// -0.046775
+0xbfa7f2e1f985764c
+// -0.036719
+0xbfa2cce07e8b6ca0
+// -0.028283
+0xbf9cf618b628aedc
+// -0.021321
+0xbf95d512c3a4908a
+// -0.015675
+0xbf900d2889cf2803
+// -0.011182
+0xbf86e6790b3fc162
+// -0.007677
+0xbf7f726826383e58
+// -0.005008
+0xbf7482e516612314
+// -0.003032
+0xbf68d62ba0d77e20
+// -0.001628
+0xbf5aae488d852840
+// -0.000699
+0xbf46e81a1d6b2700
+// -0.000171
+0xbf266ac9deec7f00

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefHft95_14_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// -0.001578
+0xbf59db7358bd3100
+// -0.001839
+0xbf5e208463adadc0
+// -0.002634
+0xbf65946a152cf900
+// -0.004005
+0xbf70676d97aa2b94
+// -0.006016
+0xbf78a4abdbe9ea64
+// -0.008757
+0xbf81ef6d82ea90f8
+// -0.012336
+0xbf8943b77eb5ac07
+// -0.016876
+0xbf9147f9a8712c03
+// -0.022511
+0xbf970d15b9a7ceac
+// -0.029378
+0xbf9e1541e9ca489d
+// -0.037612
+0xbfa341e5f767c0a6
+// -0.047337
+0xbfa83c9c78004b2e
+// -0.058659
+0xbfae088a3fb7a8e2
+// -0.071654
+0xbfb257e6db5ec256
+// -0.086362
+0xbfb61bd34ab1eefa
+// -0.102777
+0xbfba4f9c28a276bd
+// -0.120837
+0xbfbeef26e9b43008
+// -0.140413
+0xbfc1f909c2bec364
+// -0.161303
+0xbfc4a59675a58c9c
+// -0.183226
+0xbfc773f41d31225b
+// -0.205810
+0xbfca57fc092330f5
+// -0.228592
+0xbfcd427cb2aae8bf
+// -0.251011
+0xbfd0108fc885fdd0
+// -0.272411
+0xbfd16f30704ae5dd
+// -0.292041
+0xbfd2b0cdd3029a47
+// -0.309057
+0xbfd3c795f0b04fe6
+// -0.322530
+0xbfd4a4543951cf04
+// -0.331458
+0xbfd5369ad4d891c0
+// -0.334776
+0xbfd56cf86e4f0220
+// -0.331374
+0xbfd5353a578d5f3b
+// -0.320113
+0xbfd47cba7c141db0
+// -0.299849
+0xbfd330b836dec1f1
+// -0.269454
+0xbfd13ebabb525103
+// -0.227843
+0xbfcd29f6c02377ec
+// -0.174001
+0xbfc645ab7dcae320
+// -0.107009
+0xbfbb64ed299e4757
+// -0.026071
+0xbf9ab27b4141d3c2
+// 0.069453
+0x3fb1c7b2e507a24e
+// 0.180031
+0x3fc70b3f9624f4c4
+// 0.305924
+0x3fd39440357d1007
+// 0.447171
+0x3fdc9e7389321beb
+// 0.603571
+0x3fe350751f7bd706
+// 0.774667
+0x3fe8ca12496d284b
+// 0.959735
+0x3feeb6254f2fe105
+// 1.157782
+0x3ff2864670350d2e
+// 1.367548
+0x3ff5e17a3c41d6e8
+// 1.587510
+0x3ff9667143ccf768
+// 1.815896
+0x3ffd0de96eeac895
+// 2.050704
+0x400067d75362aafd
+// 2.289723
+0x4002515a09fd9cdc
+// 2.530566
+0x40043e9979dda29f
+// 2.770705
+0x40062a6742c6b8d2
+// 3.007504
+0x40080f5e3735819c
+// 3.238267
+0x4009e7f865e79057
+// 3.460279
+0x400baea689ed0c83
+// 3.670853
+0x400d5de863b9ac7c
+// 3.867381
+0x400ef06574ad5f68
+// 4.047374
+0x40103082c87dccb1
+// 4.208513
+0x4010d5845cf65435
+// 4.348689
+0x4011650eda26736b
+// 4.466047
+0x4011dd3b6a3db131
+// 4.559014
+0x40123c6e41686b97
+// 4.626337
+0x4012815e83e8238b
+// 4.667101
+0x4012ab1c9fb4421d
+// 4.680752
+0x4012b916f28acc78
+// 4.667101
+0x4012ab1c9fb4421d
+// 4.626337
+0x4012815e83e8238b
+// 4.559014
+0x40123c6e41686b97
+// 4.466047
+0x4011dd3b6a3db131
+// 4.348689
+0x4011650eda26736b
+// 4.208513
+0x4010d5845cf65435
+// 4.047374
+0x40103082c87dccb1
+// 3.867381
+0x400ef06574ad5f68
+// 3.670853
+0x400d5de863b9ac7c
+// 3.460279
+0x400baea689ed0c83
+// 3.238267
+0x4009e7f865e79057
+// 3.007504
+0x40080f5e3735819c
+// 2.770705
+0x40062a6742c6b8d2
+// 2.530566
+0x40043e9979dda29f
+// 2.289723
+0x4002515a09fd9cdc
+// 2.050704
+0x400067d75362aafd
+// 1.815896
+0x3ffd0de96eeac895
+// 1.587510
+0x3ff9667143ccf76e
+// 1.367548
+0x3ff5e17a3c41d6de
+// 1.157782
+0x3ff2864670350d2e
+// 0.959735
+0x3feeb6254f2fe105
+// 0.774667
+0x3fe8ca12496d284b
+// 0.603571
+0x3fe350751f7bd714
+// 0.447171
+0x3fdc9e7389321c02
+// 0.305924
+0x3fd39440357d1000
+// 0.180031
+0x3fc70b3f9624f4c4
+// 0.069453
+0x3fb1c7b2e507a24e
+// -0.026071
+0xbf9ab27b4141d367
+// -0.107009
+0xbfbb64ed299e4722
+// -0.174001
+0xbfc645ab7dcae325
+// -0.227843
+0xbfcd29f6c02377f0
+// -0.269454
+0xbfd13ebabb525103
+// -0.299849
+0xbfd330b836dec1ef
+// -0.320113
+0xbfd47cba7c141db2
+// -0.331374
+0xbfd5353a578d5f42
+// -0.334776
+0xbfd56cf86e4f021e
+// -0.331458
+0xbfd5369ad4d891c0
+// -0.322530
+0xbfd4a4543951cf04
+// -0.309057
+0xbfd3c795f0b04fea
+// -0.292041
+0xbfd2b0cdd3029a41
+// -0.272411
+0xbfd16f30704ae5dd
+// -0.251011
+0xbfd0108fc885fdd0
+// -0.228592
+0xbfcd427cb2aae8bf
+// -0.205810
+0xbfca57fc092330f5
+// -0.183226
+0xbfc773f41d31225a
+// -0.161303
+0xbfc4a59675a58c87
+// -0.140413
+0xbfc1f909c2bec364
+// -0.120837
+0xbfbeef26e9b43008
+// -0.102777
+0xbfba4f9c28a276bd
+// -0.086362
+0xbfb61bd34ab1ef04
+// -0.071654
+0xbfb257e6db5ec250
+// -0.058659
+0xbfae088a3fb7a8e2
+// -0.047337
+0xbfa83c9c78004b2e
+// -0.037612
+0xbfa341e5f767c0a6
+// -0.029378
+0xbf9e1541e9ca4847
+// -0.022511
+0xbf970d15b9a7ce36
+// -0.016876
+0xbf9147f9a8712bda
+// -0.012336
+0xbf8943b77eb5ac07
+// -0.008757
+0xbf81ef6d82ea90f8
+// -0.006016
+0xbf78a4abdbe9ea64
+// -0.004005
+0xbf70676d97aa2bbc
+// -0.002634
+0xbf65946a152cfb50
+// -0.001839
+0xbf5e208463adadc0

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall3_5_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x0
+// 0.000000
+0x3e9857adbcb80000
+// 0.000006
+0x3ed8502cb206c000
+// 0.000029
+0x3efeb5aa3997e000
+// 0.000092
+0x3f18323d546a1000
+// 0.000225
+0x3f2d6e066ff4a600
+// 0.000464
+0x3f3e60cdf5ea3b00
+// 0.000854
+0x3f4bfe2b9d7dd680
+// 0.001449
+0x3f57bbca6d41acc0
+// 0.002305
+0x3f62e0ea82c00160
+// 0.003486
+0x3f6c8dee756e40a0
+// 0.005060
+0x3f74ba1879dc2290
+// 0.007101
+0x3f7d158af1cce238
+// 0.009682
+0x3f83d40fbce59400
+// 0.012881
+0x3f8a6163163063f8
+// 0.016777
+0x3f912de13769df34
+// 0.021447
+0x3f95f619980c4339
+// 0.026968
+0x3f9b9d99591c5bf0
+// 0.033417
+0x3fa11c0ab9823e4c
+// 0.040865
+0x3fa4ec39ea1edf51
+// 0.049379
+0x3fa948438bde1063
+// 0.059024
+0x3fae3865fee10a61
+// 0.069855
+0x3fb1e20a5643aac0
+// 0.081923
+0x3fb4f8ecc73428a7
+// 0.095270
+0x3fb8639c4c23716e
+// 0.109929
+0x3fbc244aa994a908
+// 0.125924
+0x3fc01e46bca3102c
+// 0.143270
+0x3fc256a9c9aef19c
+// 0.161970
+0x3fc4bb6dfa31e658
+// 0.182017
+0x3fc74c571d55b876
+// 0.203393
+0x3fca08ca68f9e49c
+// 0.226068
+0x3fccefcc6ff5b26b
+// 0.250000
+0x3fd0000000000001
+// 0.275136
+0x3fd19bd2f61c9439
+// 0.301410
+0x3fd34a4ee3875f5b
+// 0.328748
+0x3fd50a33c5f20cd8
+// 0.357060
+0x3fd6da131b4dc632
+// 0.386250
+0x3fd8b851a268285c
+// 0.416209
+0x3fdaa3298d272719
+// 0.446819
+0x3fdc98ad20104a1e
+// 0.477953
+0x3fde96c9b9b785bf
+// 0.509478
+0x3fe04da59dd73375
+// 0.541252
+0x3fe151efe6cbf077
+// 0.573127
+0x3fe2570df9111092
+// 0.604950
+0x3fe35bbf726c49cd
+// 0.636564
+0x3fe45ebb9b835e2b
+// 0.667810
+0x3fe55eb3d0a141ba
+// 0.698527
+0x3fe65a55ff55cf80
+// 0.728553
+0x3fe7504f333f9de6
+// 0.757728
+0x3fe83f4e2c25fea7
+// 0.785892
+0x3fe92605f76dd8d1
+// 0.812889
+0x3fea033086e71d90
+// 0.838570
+0x3fead5913ef23b69
+// 0.862789
+0x3feb9bf7760d2683
+// 0.885407
+0x3fec5540dff62bf1
+// 0.906294
+0x3fed005bdebf8775
+// 0.925328
+0x3fed9c49b4692e1d
+// 0.942398
+0x3fee28208fdde65a
+// 0.957404
+0x3feea30d7084eb22
+// 0.970256
+0x3fef0c55dbf93022
+// 0.980878
+0x3fef635961e20001
+// 0.989206
+0x3fefa792ea5d1847
+// 0.995191
+0x3fefd899cbe77e29
+// 0.998796
+0x3feff622a636db64
+// 1.000000
+0x3ff0000000000000
+// 0.998796
+0x3feff622a636db64
+// 0.995191
+0x3fefd899cbe77e29
+// 0.989206
+0x3fefa792ea5d1847
+// 0.980878
+0x3fef635961e20001
+// 0.970256
+0x3fef0c55dbf93022
+// 0.957404
+0x3feea30d7084eb22
+// 0.942398
+0x3fee28208fdde65a
+// 0.925328
+0x3fed9c49b4692e1d
+// 0.906294
+0x3fed005bdebf8775
+// 0.885407
+0x3fec5540dff62bf1
+// 0.862789
+0x3feb9bf7760d2683
+// 0.838570
+0x3fead5913ef23b69
+// 0.812889
+0x3fea033086e71d90
+// 0.785892
+0x3fe92605f76dd8d1
+// 0.757728
+0x3fe83f4e2c25fea7
+// 0.728553
+0x3fe7504f333f9de6
+// 0.698527
+0x3fe65a55ff55cf80
+// 0.667810
+0x3fe55eb3d0a141bc
+// 0.636564
+0x3fe45ebb9b835e28
+// 0.604950
+0x3fe35bbf726c49cd
+// 0.573127
+0x3fe2570df9111092
+// 0.541252
+0x3fe151efe6cbf077
+// 0.509478
+0x3fe04da59dd73377
+// 0.477953
+0x3fde96c9b9b785c4
+// 0.446819
+0x3fdc98ad20104a1b
+// 0.416209
+0x3fdaa3298d272719
+// 0.386250
+0x3fd8b851a268285c
+// 0.357060
+0x3fd6da131b4dc634
+// 0.328748
+0x3fd50a33c5f20cdc
+// 0.301410
+0x3fd34a4ee3875f57
+// 0.275136
+0x3fd19bd2f61c9436
+// 0.250000
+0x3fd0000000000001
+// 0.226068
+0x3fccefcc6ff5b26f
+// 0.203393
+0x3fca08ca68f9e4a3
+// 0.182017
+0x3fc74c571d55b870
+// 0.161970
+0x3fc4bb6dfa31e656
+// 0.143270
+0x3fc256a9c9aef19c
+// 0.125924
+0x3fc01e46bca3102c
+// 0.109929
+0x3fbc244aa994a90d
+// 0.095270
+0x3fb8639c4c237166
+// 0.081923
+0x3fb4f8ecc73428a7
+// 0.069855
+0x3fb1e20a5643aac0
+// 0.059024
+0x3fae3865fee10a61
+// 0.049379
+0x3fa948438bde1063
+// 0.040865
+0x3fa4ec39ea1edf62
+// 0.033417
+0x3fa11c0ab9823e44
+// 0.026968
+0x3f9b9d99591c5bf0
+// 0.021447
+0x3f95f619980c4339
+// 0.016777
+0x3f912de13769df34
+// 0.012881
+0x3f8a616316306418
+// 0.009682
+0x3f83d40fbce59400
+// 0.007101
+0x3f7d158af1cce238
+// 0.005060
+0x3f74ba1879dc2290
+// 0.003486
+0x3f6c8dee756e40a0
+// 0.002305
+0x3f62e0ea82c001a0
+// 0.001449
+0x3f57bbca6d41ad80
+// 0.000854
+0x3f4bfe2b9d7dd780
+// 0.000464
+0x3f3e60cdf5ea3b00
+// 0.000225
+0x3f2d6e066ff4a600
+// 0.000092
+0x3f18323d546a1000
+// 0.000029
+0x3efeb5aa39980000
+// 0.000006
+0x3ed8502cb2064000
+// 0.000000
+0x3e9857adbcb80000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall3a_7_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x0
+// 0.000164
+0x3f257cd4f8efd000
+// 0.000659
+0x3f45941284d5d480
+// 0.001492
+0x3f58720055916e00
+// 0.002678
+0x3f65f069505b8540
+// 0.004236
+0x3f71596af5c52b20
+// 0.006189
+0x3f79591fc1b1fbf0
+// 0.008565
+0x3f818a957794b670
+// 0.011398
+0x3f8757ebae250058
+// 0.014724
+0x3f8e27b5319ceb24
+// 0.018583
+0x3f93076710198fb2
+// 0.023017
+0x3f9791c0b1692c78
+// 0.028071
+0x3f9cbe9bf9bc0f9a
+// 0.033791
+0x3fa14d08b9d2bc44
+// 0.040224
+0x3fa4983848704429
+// 0.047417
+0x3fa8470868983c84
+// 0.055417
+0x3fac5f90da1d3b96
+// 0.064268
+0x3fb073de7dec8a80
+// 0.074014
+0x3fb2f299a9662389
+// 0.084696
+0x3fb5ae9e9dd9ddff
+// 0.096349
+0x3fb8aa5784b3ec68
+// 0.109007
+0x3fbbe7e868cb1634
+// 0.122698
+0x3fbf692413ffd2d1
+// 0.137444
+0x3fc197c0c196d2a2
+// 0.153260
+0x3fc39e0907157907
+// 0.170158
+0x3fc5c7bc2ffa13f0
+// 0.188139
+0x3fc814f02c9c0266
+// 0.207199
+0x3fca857bfaa85266
+// 0.227324
+0x3fcd18f4a3a69282
+// 0.248494
+0x3fcfceaad107ef58
+// 0.270681
+0x3fd152d47eecffe8
+// 0.293844
+0x3fd2ce59265c5d85
+// 0.317940
+0x3fd459210385c67f
+// 0.342912
+0x3fd5f245e47e1888
+// 0.368698
+0x3fd798be2df76cf6
+// 0.395225
+0x3fd94b5d9fcb2848
+// 0.422414
+0x3fdb08d670081c46
+// 0.450179
+0x3fdccfbabae4d8c1
+// 0.478424
+0x3fde9e7e4523a037
+// 0.507048
+0x3fe039bc46d414ea
+// 0.535944
+0x3fe12673951cb2f3
+// 0.564999
+0x3fe2147835566308
+// 0.594095
+0x3fe302d31e837579
+// 0.623110
+0x3fe3f084a63c62b3
+// 0.651919
+0x3fe4dc862a44e654
+// 0.680395
+0x3fe5c5cbd09cabf5
+// 0.708408
+0x3fe6ab465a35e246
+// 0.735827
+0x3fe78be5044a7df1
+// 0.762523
+0x3fe8669774210f86
+// 0.788368
+0x3fe93a4fa8f43375
+// 0.813234
+0x3fea0603ef9c1b84
+// 0.836998
+0x3feac8b0d390b305
+// 0.859540
+0x3feb815b08dc8222
+// 0.880746
+0x3fec2f114aa4b7a1
+// 0.900504
+0x3fecd0ee2a018a2e
+// 0.918713
+0x3fed6619c9033b21
+// 0.935278
+0x3fededcb7deb2147
+// 0.950109
+0x3fee674b5ad4d9be
+// 0.963129
+0x3feed1f3964991d2
+// 0.974267
+0x3fef2d31d17dbb2d
+// 0.983463
+0x3fef78883947b836
+// 0.990669
+0x3fefb38e7f336dce
+// 0.995843
+0x3fefddf2a8725a9a
+// 0.998959
+0x3feff779b0c8fc7a
+// 1.000000
+0x3ff0000000000000
+// 0.998959
+0x3feff779b0c8fc7a
+// 0.995843
+0x3fefddf2a8725a9a
+// 0.990669
+0x3fefb38e7f336dce
+// 0.983463
+0x3fef78883947b836
+// 0.974267
+0x3fef2d31d17dbb2d
+// 0.963129
+0x3feed1f3964991d2
+// 0.950109
+0x3fee674b5ad4d9be
+// 0.935278
+0x3fededcb7deb2147
+// 0.918713
+0x3fed6619c9033b21
+// 0.900504
+0x3fecd0ee2a018a2e
+// 0.880746
+0x3fec2f114aa4b7a1
+// 0.859540
+0x3feb815b08dc8222
+// 0.836998
+0x3feac8b0d390b305
+// 0.813234
+0x3fea0603ef9c1b84
+// 0.788368
+0x3fe93a4fa8f43375
+// 0.762523
+0x3fe8669774210f86
+// 0.735827
+0x3fe78be5044a7df1
+// 0.708408
+0x3fe6ab465a35e249
+// 0.680395
+0x3fe5c5cbd09cabf2
+// 0.651919
+0x3fe4dc862a44e654
+// 0.623110
+0x3fe3f084a63c62b3
+// 0.594095
+0x3fe302d31e837579
+// 0.564999
+0x3fe214783556630b
+// 0.535944
+0x3fe12673951cb2f6
+// 0.507048
+0x3fe039bc46d414e9
+// 0.478424
+0x3fde9e7e4523a037
+// 0.450179
+0x3fdccfbabae4d8c1
+// 0.422414
+0x3fdb08d670081c48
+// 0.395225
+0x3fd94b5d9fcb284c
+// 0.368698
+0x3fd798be2df76cf1
+// 0.342912
+0x3fd5f245e47e1886
+// 0.317940
+0x3fd459210385c67f
+// 0.293844
+0x3fd2ce59265c5d87
+// 0.270681
+0x3fd152d47eecffec
+// 0.248494
+0x3fcfceaad107ef50
+// 0.227324
+0x3fcd18f4a3a6927e
+// 0.207199
+0x3fca857bfaa85266
+// 0.188139
+0x3fc814f02c9c0266
+// 0.170158
+0x3fc5c7bc2ffa13f3
+// 0.153260
+0x3fc39e0907157902
+// 0.137444
+0x3fc197c0c196d2a2
+// 0.122698
+0x3fbf692413ffd2d1
+// 0.109007
+0x3fbbe7e868cb1634
+// 0.096349
+0x3fb8aa5784b3ec68
+// 0.084696
+0x3fb5ae9e9dd9de0a
+// 0.074014
+0x3fb2f299a9662383
+// 0.064268
+0x3fb073de7dec8a80
+// 0.055417
+0x3fac5f90da1d3b96
+// 0.047417
+0x3fa8470868983c84
+// 0.040224
+0x3fa4983848704436
+// 0.033791
+0x3fa14d08b9d2bc40
+// 0.028071
+0x3f9cbe9bf9bc0f9a
+// 0.023017
+0x3f9791c0b1692c78
+// 0.018583
+0x3f93076710198fb2
+// 0.014724
+0x3f8e27b5319ceb40
+// 0.011398
+0x3f8757ebae250080
+// 0.008565
+0x3f818a957794b670
+// 0.006189
+0x3f79591fc1b1fbf0
+// 0.004236
+0x3f71596af5c52b20
+// 0.002678
+0x3f65f069505b8540
+// 0.001492
+0x3f58720055916ec0
+// 0.000659
+0x3f45941284d5d380
+// 0.000164
+0x3f257cd4f8efd000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall3b_8_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.005319
+0x3f75c92a80dd0a00
+// 0.005541
+0x3f76b216b0da03f0
+// 0.006210
+0x3f796f264afb5b70
+// 0.007331
+0x3f7e0731fa40a170
+// 0.008916
+0x3f8242c363479680
+// 0.010980
+0x3f867cde21e49c58
+// 0.013542
+0x3f8bbbbd51cf6388
+// 0.016623
+0x3f91058c513bfc66
+// 0.020249
+0x3f94bc2fa14ddf62
+// 0.024449
+0x3f990942700979d8
+// 0.029254
+0x3f9df4e423bd27da
+// 0.034697
+0x3fa1c3dd0f751983
+// 0.040813
+0x3fa4e566cf849f6e
+// 0.047636
+0x3fa863b3b4a73898
+// 0.055202
+0x3fac4374d3d2d669
+// 0.063548
+0x3fb044aa17550461
+// 0.072707
+0x3fb29cf037b6fe83
+// 0.082714
+0x3fb52cbc2ef84e8d
+// 0.093599
+0x3fb7f61b22f50946
+// 0.105391
+0x3fbafaedc3c5660a
+// 0.118116
+0x3fbe3cde45848bdc
+// 0.131795
+0x3fc0deab53cfe01e
+// 0.146446
+0x3fc2bebbb28e38bf
+// 0.162080
+0x3fc4bf075430d7fb
+// 0.178704
+0x3fc6dfc80df60db6
+// 0.196320
+0x3fc92106b7f66758
+// 0.214923
+0x3fcb8297d597e85a
+// 0.234500
+0x3fce0418ade48112
+// 0.255033
+0x3fd052766e7cfb18
+// 0.276496
+0x3fd1b21e33541454
+// 0.298857
+0x3fd32079288e1a7a
+// 0.322074
+0x3fd49cdde69714f8
+// 0.346101
+0x3fd62683f847a4db
+// 0.370881
+0x3fd7bc84025996f4
+// 0.396353
+0x3fd95dd835f11782
+// 0.422447
+0x3fdb095d0e394983
+// 0.449086
+0x3fdcbdd25859ec22
+// 0.476188
+0x3fde79dc8453be9a
+// 0.503664
+0x3fe01e031e4e1eb0
+// 0.531418
+0x3fe1016120d0704a
+// 0.559352
+0x3fe1e636c2d7f454
+// 0.587361
+0x3fe2cba8c2915419
+// 0.615335
+0x3fe3b0d36b06549e
+// 0.643164
+0x3fe494cbf512c2c8
+// 0.670732
+0x3fe576a1fe9115cd
+// 0.697922
+0x3fe65561149f6a32
+// 0.724618
+0x3fe730124dab2376
+// 0.750701
+0x3fe805bdefc710fc
+// 0.776053
+0x3fe8d56d1fadcfa7
+// 0.800558
+0x3fe99e2b94b8a395
+// 0.824101
+0x3fea5f094e026ce8
+// 0.846571
+0x3feb171c44e6d472
+// 0.867860
+0x3febc582190f6db0
+// 0.887864
+0x3fec6961b24b5287
+// 0.906485
+0x3fed01ecd48192e2
+// 0.923631
+0x3fed8e61a22b8907
+// 0.939215
+0x3fee0e0c09e97831
+// 0.953159
+0x3fee80471bf174ec
+// 0.965392
+0x3feee47e444e089a
+// 0.975852
+0x3fef3a2e671ecceb
+// 0.984485
+0x3fef80e6dc50ccf7
+// 0.991246
+0x3fefb84a488e2ec0
+// 0.996101
+0x3fefe00f5173cf3b
+// 0.999024
+0x3feff8012b6f54f1
+// 1.000000
+0x3ff0000000000000
+// 0.999024
+0x3feff8012b6f54f1
+// 0.996101
+0x3fefe00f5173cf3b
+// 0.991246
+0x3fefb84a488e2ec0
+// 0.984485
+0x3fef80e6dc50ccf7
+// 0.975852
+0x3fef3a2e671ecceb
+// 0.965392
+0x3feee47e444e089a
+// 0.953159
+0x3fee80471bf174ec
+// 0.939215
+0x3fee0e0c09e97831
+// 0.923631
+0x3fed8e61a22b8907
+// 0.906485
+0x3fed01ecd48192e2
+// 0.887864
+0x3fec6961b24b5287
+// 0.867860
+0x3febc582190f6db0
+// 0.846571
+0x3feb171c44e6d472
+// 0.824101
+0x3fea5f094e026ce8
+// 0.800558
+0x3fe99e2b94b8a395
+// 0.776053
+0x3fe8d56d1fadcfa7
+// 0.750701
+0x3fe805bdefc710fc
+// 0.724618
+0x3fe730124dab2378
+// 0.697922
+0x3fe65561149f6a30
+// 0.670732
+0x3fe576a1fe9115cd
+// 0.643164
+0x3fe494cbf512c2c8
+// 0.615335
+0x3fe3b0d36b06549e
+// 0.587361
+0x3fe2cba8c291541c
+// 0.559352
+0x3fe1e636c2d7f457
+// 0.531418
+0x3fe1016120d07048
+// 0.503664
+0x3fe01e031e4e1eb0
+// 0.476188
+0x3fde79dc8453be9a
+// 0.449086
+0x3fdcbdd25859ec24
+// 0.422447
+0x3fdb095d0e394988
+// 0.396353
+0x3fd95dd835f1177e
+// 0.370881
+0x3fd7bc84025996f1
+// 0.346101
+0x3fd62683f847a4db
+// 0.322074
+0x3fd49cdde69714fa
+// 0.298857
+0x3fd32079288e1a7d
+// 0.276496
+0x3fd1b21e33541450
+// 0.255033
+0x3fd052766e7cfb16
+// 0.234500
+0x3fce0418ade48112
+// 0.214923
+0x3fcb8297d597e85a
+// 0.196320
+0x3fc92106b7f6675b
+// 0.178704
+0x3fc6dfc80df60db1
+// 0.162080
+0x3fc4bf075430d7fb
+// 0.146446
+0x3fc2bebbb28e38bf
+// 0.131795
+0x3fc0deab53cfe01e
+// 0.118116
+0x3fbe3cde45848bdc
+// 0.105391
+0x3fbafaedc3c56616
+// 0.093599
+0x3fb7f61b22f5093e
+// 0.082714
+0x3fb52cbc2ef84e8d
+// 0.072707
+0x3fb29cf037b6fe83
+// 0.063548
+0x3fb044aa17550461
+// 0.055202
+0x3fac4374d3d2d677
+// 0.047636
+0x3fa863b3b4a73892
+// 0.040813
+0x3fa4e566cf849f6e
+// 0.034697
+0x3fa1c3dd0f751983
+// 0.029254
+0x3f9df4e423bd27da
+// 0.024449
+0x3f990942700979e8
+// 0.020249
+0x3f94bc2fa14ddf76
+// 0.016623
+0x3f91058c513bfc66
+// 0.013542
+0x3f8bbbbd51cf6388
+// 0.010980
+0x3f867cde21e49c58
+// 0.008916
+0x3f8242c363479680
+// 0.007331
+0x3f7e0731fa40a190
+// 0.006210
+0x3f796f264afb5b40
+// 0.005541
+0x3f76b216b0da03f0

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall4_6_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x0
+// 0.000000
+0x3dee067b48000000
+// 0.000000
+0x3e4df89a22200000
+// 0.000000
+0x3e8545cd3e9e0000
+// 0.000001
+0x3eadc1511fd78000
+// 0.000003
+0x3ecc39211cb8e000
+// 0.000010
+0x3ee4eddd8fe20000
+// 0.000025
+0x3efa2e7ba6909400
+// 0.000055
+0x3f0ce7df5b95db00
+// 0.000111
+0x3f1d002fdeab7bc0
+// 0.000206
+0x3f2af92e03106820
+// 0.000360
+0x3f37973eaa12a8a0
+// 0.000598
+0x3f439b33695da270
+// 0.000953
+0x3f4f3772023006c0
+// 0.001462
+0x3f57f3cb06597628
+// 0.002173
+0x3f61cd102e036100
+// 0.003141
+0x3f69bab32855d6a0
+// 0.004429
+0x3f7223e49a498b1c
+// 0.006109
+0x3f79057dad66142c
+// 0.008261
+0x3f80eb0d4e802d60
+// 0.010973
+0x3f8678eef5667994
+// 0.014340
+0x3f8d5e3084af17e4
+// 0.018463
+0x3f92e7ef258679b6
+// 0.023448
+0x3f9802d3d3414630
+// 0.029406
+0x3f9e1c9186193014
+// 0.036447
+0x3fa2a93d280bb9e2
+// 0.044685
+0x3fa6e0f68abd9266
+// 0.054229
+0x3fabc3e7fee5aaec
+// 0.065186
+0x3fb0b0005efcba9f
+// 0.077655
+0x3fb3e130976d6bac
+// 0.091729
+0x3fb77b86e5b41c62
+// 0.107488
+0x3fbb8450acafefb8
+// 0.125000
+0x3fc0000000000002
+// 0.144318
+0x3fc2790333ee506e
+// 0.165477
+0x3fc52e58d532e6c7
+// 0.188493
+0x3fc82085b2200564
+// 0.213360
+0x3fcb4f5e19b5cec9
+// 0.240051
+0x3fceb9f9960578be
+// 0.268514
+0x3fd12f548fdd5478
+// 0.298674
+0x3fd31d780aaeb754
+// 0.330429
+0x3fd525c01abf0026
+// 0.363654
+0x3fd7461c6705153a
+// 0.398198
+0x3fd97c14a264c9d0
+// 0.433886
+0x3fdbc4cb86d7eaeb
+// 0.470521
+0x3fde1d0389d34cad
+// 0.507882
+0x3fe04092a1fdf17b
+// 0.545732
+0x3fe176a3befb4c45
+// 0.583815
+0x3fe2ae9c65f9787a
+// 0.621859
+0x3fe3e6454cd7aa2a
+// 0.659583
+0x3fe51b4ec0a3f111
+// 0.696697
+0x3fe64b576026bad6
+// 0.732904
+0x3fe773f34c4781cf
+// 0.767908
+0x3fe892b3b266685b
+// 0.801414
+0x3fe9a52e92ac0bd7
+// 0.833133
+0x3feaa906a2c13643
+// 0.862787
+0x3feb9bf32c6475d5
+// 0.890110
+0x3fec7bc7c6f24816
+// 0.914854
+0x3fed467bcb309b96
+// 0.936791
+0x3fedfa316187ecbc
+// 0.955717
+0x3fee953c0c47fff3
+// 0.971454
+0x3fef1626919de2fc
+// 0.983852
+0x3fef7bb82b731c38
+// 0.992794
+0x3fefc4f8e67e9c3a
+// 0.998194
+0x3feff1351d506773
+// 1.000000
+0x3ff0000000000000
+// 0.998194
+0x3feff1351d506773
+// 0.992794
+0x3fefc4f8e67e9c3a
+// 0.983852
+0x3fef7bb82b731c38
+// 0.971454
+0x3fef1626919de2fc
+// 0.955717
+0x3fee953c0c47fff3
+// 0.936791
+0x3fedfa316187ecbc
+// 0.914854
+0x3fed467bcb309b96
+// 0.890110
+0x3fec7bc7c6f24816
+// 0.862787
+0x3feb9bf32c6475d5
+// 0.833133
+0x3feaa906a2c13643
+// 0.801414
+0x3fe9a52e92ac0bd7
+// 0.767908
+0x3fe892b3b266685b
+// 0.732904
+0x3fe773f34c4781cf
+// 0.696697
+0x3fe64b576026bad6
+// 0.659583
+0x3fe51b4ec0a3f111
+// 0.621859
+0x3fe3e6454cd7aa2a
+// 0.583815
+0x3fe2ae9c65f9787a
+// 0.545732
+0x3fe176a3befb4c4a
+// 0.507882
+0x3fe04092a1fdf177
+// 0.470521
+0x3fde1d0389d34cad
+// 0.433886
+0x3fdbc4cb86d7eaeb
+// 0.398198
+0x3fd97c14a264c9d0
+// 0.363654
+0x3fd7461c6705153f
+// 0.330429
+0x3fd525c01abf002b
+// 0.298674
+0x3fd31d780aaeb751
+// 0.268514
+0x3fd12f548fdd5478
+// 0.240051
+0x3fceb9f9960578be
+// 0.213360
+0x3fcb4f5e19b5cecd
+// 0.188493
+0x3fc82085b220056b
+// 0.165477
+0x3fc52e58d532e6c2
+// 0.144318
+0x3fc2790333ee506b
+// 0.125000
+0x3fc0000000000002
+// 0.107488
+0x3fbb8450acafefbe
+// 0.091729
+0x3fb77b86e5b41c6a
+// 0.077655
+0x3fb3e130976d6ba2
+// 0.065186
+0x3fb0b0005efcba9b
+// 0.054229
+0x3fabc3e7fee5aaec
+// 0.044685
+0x3fa6e0f68abd9266
+// 0.036447
+0x3fa2a93d280bb9e4
+// 0.029406
+0x3f9e1c918619300a
+// 0.023448
+0x3f9802d3d3414630
+// 0.018463
+0x3f92e7ef258679b6
+// 0.014340
+0x3f8d5e3084af17e4
+// 0.010973
+0x3f8678eef5667994
+// 0.008261
+0x3f80eb0d4e802d8e
+// 0.006109
+0x3f79057dad661460
+// 0.004429
+0x3f7223e49a498b1c
+// 0.003141
+0x3f69bab32855d6a0
+// 0.002173
+0x3f61cd102e036100
+// 0.001462
+0x3f57f3cb065976a0
+// 0.000953
+0x3f4f3772023006e0
+// 0.000598
+0x3f439b33695da270
+// 0.000360
+0x3f37973eaa12a8a0
+// 0.000206
+0x3f2af92e03106820
+// 0.000111
+0x3f1d002fdeab8b40
+// 0.000055
+0x3f0ce7df5b95f900
+// 0.000025
+0x3efa2e7ba690a000
+// 0.000010
+0x3ee4eddd8fe20000
+// 0.000003
+0x3ecc39211cb8e000
+// 0.000001
+0x3eadc1511fd78000
+// 0.000000
+0x3e8545cd3e9e0000
+// 0.000000
+0x3e4df89a21800000
+// 0.000000
+0x3dee067b48000000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall4a_9_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x3c88000000000000
+// 0.000000
+0x3e849e0679dc0000
+// 0.000002
+0x3ec4a4a24937e000
+// 0.000012
+0x3eea2e3151535800
+// 0.000040
+0x3f04beab91dfb300
+// 0.000097
+0x3f196a14f9af5780
+// 0.000202
+0x3f2a7676e3742cc0
+// 0.000376
+0x3f38a22e3f6ec720
+// 0.000645
+0x3f4520910b117b08
+// 0.001039
+0x3f5105a217cd11f8
+// 0.001594
+0x3f5a1c1be9990c51
+// 0.002349
+0x3f633de0c5068bea
+// 0.003350
+0x3f6b70cdad15311c
+// 0.004646
+0x3f7307f9d08d260b
+// 0.006294
+0x3f79c7814a561a0c
+// 0.008352
+0x3f811b0100e7c6e1
+// 0.010887
+0x3f864bbbb92f5d98
+// 0.013966
+0x3f8c9a40440aa679
+// 0.017664
+0x3f92167b28e15bba
+// 0.022057
+0x3f969609cbe46746
+// 0.027224
+0x3f9be0a03287c5d5
+// 0.033247
+0x3fa105caba1f281d
+// 0.040209
+0x3fa49642601a2fb0
+// 0.048191
+0x3fa8ac833702e87b
+// 0.057275
+0x3fad5330caa40c0e
+// 0.067540
+0x3fb14a4dc095582d
+// 0.079060
+0x3fb43d49a5460831
+// 0.091905
+0x3fb7871c1255710c
+// 0.106139
+0x3fbb2be49576c7c2
+// 0.121814
+0x3fbf2f397df0db75
+// 0.138978
+0x3fc1ca0793f8a1c8
+// 0.157663
+0x3fc42e4fea01697b
+// 0.177892
+0x3fc6c52a411c2a05
+// 0.199672
+0x3fc98ed7a5168d58
+// 0.222995
+0x3fcc8b1bd40a4e34
+// 0.247840
+0x3fcfb93499d2064f
+// 0.274165
+0x3fd18be94beb6e06
+// 0.301913
+0x3fd35289d6370c1b
+// 0.331009
+0x3fd52f3f93cdee14
+// 0.361359
+0x3fd72081fa4b2008
+// 0.392852
+0x3fd9247c6bf69d2a
+// 0.425358
+0x3fdb390f6cf462a9
+// 0.458729
+0x3fdd5bd2f5d2effc
+// 0.492804
+0x3fdf8a19e5f36105
+// 0.527403
+0x3fe0e07b49a6409e
+// 0.562332
+0x3fe1fea037fd8a12
+// 0.597388
+0x3fe31dcd5c82a3a9
+// 0.632354
+0x3fe43c3e0e63a4c5
+// 0.667005
+0x3fe5581ba1624d0b
+// 0.701112
+0x3fe66f820d16a688
+// 0.734438
+0x3fe78084e82fba47
+// 0.766749
+0x3fe88934a6904d6a
+// 0.797808
+0x3fe987a407a68104
+// 0.827384
+0x3fea79eda12d6b72
+// 0.855252
+0x3feb5e3971ae2d83
+// 0.881196
+0x3fec32c26597ce9c
+// 0.905012
+0x3fecf5dbb9a5c14e
+// 0.926509
+0x3feda5f6258dec1f
+// 0.945513
+0x3fee41a4ba9025b1
+// 0.961869
+0x3feec7a162801358
+// 0.975441
+0x3fef36d0ed3b3d88
+// 0.986118
+0x3fef8e469c2a26ad
+// 0.993808
+0x3fefcd471d64c6b5
+// 0.998449
+0x3feff34aea4ffd66
+// 1.000000
+0x3ff0000000000000
+// 0.998449
+0x3feff34aea4ffd66
+// 0.993808
+0x3fefcd471d64c6b5
+// 0.986118
+0x3fef8e469c2a26ad
+// 0.975441
+0x3fef36d0ed3b3d88
+// 0.961869
+0x3feec7a162801358
+// 0.945513
+0x3fee41a4ba9025b1
+// 0.926509
+0x3feda5f6258dec1f
+// 0.905012
+0x3fecf5dbb9a5c14e
+// 0.881196
+0x3fec32c26597ce9c
+// 0.855252
+0x3feb5e3971ae2d83
+// 0.827384
+0x3fea79eda12d6b72
+// 0.797808
+0x3fe987a407a68104
+// 0.766749
+0x3fe88934a6904d6a
+// 0.734438
+0x3fe78084e82fba47
+// 0.701112
+0x3fe66f820d16a688
+// 0.667005
+0x3fe5581ba1624d0b
+// 0.632354
+0x3fe43c3e0e63a4c5
+// 0.597388
+0x3fe31dcd5c82a3ac
+// 0.562332
+0x3fe1fea037fd8a0e
+// 0.527403
+0x3fe0e07b49a6409e
+// 0.492804
+0x3fdf8a19e5f36105
+// 0.458729
+0x3fdd5bd2f5d2effc
+// 0.425358
+0x3fdb390f6cf462af
+// 0.392852
+0x3fd9247c6bf69d2f
+// 0.361359
+0x3fd72081fa4b2006
+// 0.331009
+0x3fd52f3f93cdee14
+// 0.301913
+0x3fd35289d6370c1b
+// 0.274165
+0x3fd18be94beb6e08
+// 0.247840
+0x3fcfb93499d20659
+// 0.222995
+0x3fcc8b1bd40a4e2d
+// 0.199672
+0x3fc98ed7a5168d54
+// 0.177892
+0x3fc6c52a411c2a05
+// 0.157663
+0x3fc42e4fea01697e
+// 0.138978
+0x3fc1ca0793f8a1ce
+// 0.121814
+0x3fbf2f397df0db68
+// 0.106139
+0x3fbb2be49576c7bd
+// 0.091905
+0x3fb7871c1255710c
+// 0.079060
+0x3fb43d49a5460831
+// 0.067540
+0x3fb14a4dc095582e
+// 0.057275
+0x3fad5330caa40c04
+// 0.048191
+0x3fa8ac833702e87b
+// 0.040209
+0x3fa49642601a2fb0
+// 0.033247
+0x3fa105caba1f281d
+// 0.027224
+0x3f9be0a03287c5d5
+// 0.022057
+0x3f969609cbe46763
+// 0.017664
+0x3f92167b28e15bb3
+// 0.013966
+0x3f8c9a40440aa679
+// 0.010887
+0x3f864bbbb92f5d98
+// 0.008352
+0x3f811b0100e7c6e1
+// 0.006294
+0x3f79c7814a561a3e
+// 0.004646
+0x3f7307f9d08d2608
+// 0.003350
+0x3f6b70cdad15311c
+// 0.002349
+0x3f633de0c5068bea
+// 0.001594
+0x3f5a1c1be9990c51
+// 0.001039
+0x3f5105a217cd12c8
+// 0.000645
+0x3f4520910b117d18
+// 0.000376
+0x3f38a22e3f6ec940
+// 0.000202
+0x3f2a7676e3742cc0
+// 0.000097
+0x3f196a14f9af5780
+// 0.000040
+0x3f04beab91dfb300
+// 0.000012
+0x3eea2e3151535800
+// 0.000002
+0x3ec4a4a249368000
+// 0.000000
+0x3e849e0679dc0000

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall4b_11_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// -0.000000
+0xbc7c000000000000
+// 0.000029
+0x3efe66a3d5b1da00
+// 0.000118
+0x3f1f026904b10780
+// 0.000275
+0x3f32037076a72660
+// 0.000510
+0x3f40b8ef57f19650
+// 0.000841
+0x3f4b8e8b2aef9550
+// 0.001288
+0x3f55192c9c8f9e00
+// 0.001876
+0x3f5ebdb1f32921d0
+// 0.002637
+0x3f6599f809c1ecb6
+// 0.003605
+0x3f6d873c55ee5367
+// 0.004819
+0x3f73bcc644b5fd55
+// 0.006323
+0x3f79e69e0dba830c
+// 0.008167
+0x3f80b9f0989a8276
+// 0.010402
+0x3f854dd54b974a5e
+// 0.013086
+0x3f8acc98a3889e3c
+// 0.016277
+0x3f90aadcb8675c86
+// 0.020039
+0x3f9485327e509694
+// 0.024439
+0x3f99069bb9ee2d8c
+// 0.029545
+0x3f9e40f88a4a9622
+// 0.035425
+0x3fa22347f7c00fac
+// 0.042152
+0x3fa594ef73444dce
+// 0.049795
+0x3fa97eb0f7025547
+// 0.058423
+0x3fade9ac9f974045
+// 0.068106
+0x3fb16f620b25583a
+// 0.078907
+0x3fb4333c0fa42f4a
+// 0.090887
+0x3fb7446232a9708f
+// 0.104103
+0x3fbaa67cf99c730d
+// 0.118603
+0x3fbe5ccc6dc9b2fa
+// 0.134431
+0x3fc1350a676cbe9b
+// 0.151620
+0x3fc36845b8af5a78
+// 0.170193
+0x3fc5c8e20ddd7e65
+// 0.190165
+0x3fc8574f9b6cce2d
+// 0.211536
+0x3fcb139c94f69cab
+// 0.234297
+0x3fcdfd6d9c2aba15
+// 0.258422
+0x3fd089fb8dc244c3
+// 0.283874
+0x3fd22afbdad45b21
+// 0.310599
+0x3fd3e0d9f7d3e634
+// 0.338530
+0x3fd5aa799c6e2fa2
+// 0.367584
+0x3fd7867f3762d33c
+// 0.397663
+0x3fd9734ffb14ca19
+// 0.428654
+0x3fdb6f12be83da9e
+// 0.460431
+0x3fdd77b1b94887bd
+// 0.492851
+0x3fdf8add1dc6485f
+// 0.525760
+0x3fe0d307489a98ee
+// 0.558994
+0x3fe1e346bebaff58
+// 0.592374
+0x3fe2f4ba1a757dc9
+// 0.625715
+0x3fe405daee6ffcb3
+// 0.658822
+0x3fe5151287ba8e8c
+// 0.691497
+0x3fe620bd914b2275
+// 0.723534
+0x3fe7272fff2e1379
+// 0.754727
+0x3fe826b9352ada77
+// 0.784870
+0x3fe91da85b5b7268
+// 0.813759
+0x3fea0a50d229a016
+// 0.841194
+0x3feaeb0eb6551b0c
+// 0.866979
+0x3febbe4b65154a25
+// 0.890931
+0x3fec8281f01c711a
+// 0.912874
+0x3fed3643713b192f
+// 0.932645
+0x3fedd83b2da226a5
+// 0.950097
+0x3fee673279480e86
+// 0.965098
+0x3feee2144bc0443f
+// 0.977532
+0x3fef47f078e02f2e
+// 0.987304
+0x3fef97fe80d67541
+// 0.994339
+0x3fefd19fecdaa6d2
+// 0.998582
+0x3feff4622f4dc0e1
+// 1.000000
+0x3ff0000000000000
+// 0.998582
+0x3feff4622f4dc0e1
+// 0.994339
+0x3fefd19fecdaa6d2
+// 0.987304
+0x3fef97fe80d67541
+// 0.977532
+0x3fef47f078e02f2e
+// 0.965098
+0x3feee2144bc0443f
+// 0.950097
+0x3fee673279480e86
+// 0.932645
+0x3fedd83b2da226a5
+// 0.912874
+0x3fed3643713b192f
+// 0.890931
+0x3fec8281f01c711a
+// 0.866979
+0x3febbe4b65154a25
+// 0.841194
+0x3feaeb0eb6551b0c
+// 0.813759
+0x3fea0a50d229a016
+// 0.784870
+0x3fe91da85b5b7268
+// 0.754727
+0x3fe826b9352ada77
+// 0.723534
+0x3fe7272fff2e1379
+// 0.691497
+0x3fe620bd914b2275
+// 0.658822
+0x3fe5151287ba8e8c
+// 0.625715
+0x3fe405daee6ffcb6
+// 0.592374
+0x3fe2f4ba1a757dc5
+// 0.558994
+0x3fe1e346bebaff58
+// 0.525760
+0x3fe0d307489a98ee
+// 0.492851
+0x3fdf8add1dc6485f
+// 0.460431
+0x3fdd77b1b94887c3
+// 0.428654
+0x3fdb6f12be83daa4
+// 0.397663
+0x3fd9734ffb14ca16
+// 0.367584
+0x3fd7867f3762d33c
+// 0.338530
+0x3fd5aa799c6e2fa2
+// 0.310599
+0x3fd3e0d9f7d3e636
+// 0.283874
+0x3fd22afbdad45b24
+// 0.258422
+0x3fd089fb8dc244bf
+// 0.234297
+0x3fcdfd6d9c2aba11
+// 0.211536
+0x3fcb139c94f69cab
+// 0.190165
+0x3fc8574f9b6cce2e
+// 0.170193
+0x3fc5c8e20ddd7e6b
+// 0.151620
+0x3fc36845b8af5a74
+// 0.134431
+0x3fc1350a676cbe98
+// 0.118603
+0x3fbe5ccc6dc9b2fa
+// 0.104103
+0x3fbaa67cf99c730d
+// 0.090887
+0x3fb7446232a97093
+// 0.078907
+0x3fb4333c0fa42f43
+// 0.068106
+0x3fb16f620b25583a
+// 0.058423
+0x3fade9ac9f974045
+// 0.049795
+0x3fa97eb0f7025547
+// 0.042152
+0x3fa594ef73444dce
+// 0.035425
+0x3fa22347f7c00fbc
+// 0.029545
+0x3f9e40f88a4a9616
+// 0.024439
+0x3f99069bb9ee2d8c
+// 0.020039
+0x3f9485327e509694
+// 0.016277
+0x3f90aadcb8675c86
+// 0.013086
+0x3f8acc98a3889e58
+// 0.010402
+0x3f854dd54b974a5a
+// 0.008167
+0x3f80b9f0989a8276
+// 0.006323
+0x3f79e69e0dba830c
+// 0.004819
+0x3f73bcc644b5fd55
+// 0.003605
+0x3f6d873c55ee5339
+// 0.002637
+0x3f6599f809c1ed26
+// 0.001876
+0x3f5ebdb1f329223c
+// 0.001288
+0x3f55192c9c8f9e00
+// 0.000841
+0x3f4b8e8b2aef9550
+// 0.000510
+0x3f40b8ef57f19650
+// 0.000275
+0x3f32037076a72860
+// 0.000118
+0x3f1f026904b0fd80
+// 0.000029
+0x3efe66a3d5b1da00

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefNuttall4c_12_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000363
+0x3f37c6c6228ea300
+// 0.000409
+0x3f3ad55b9a7fc4e0
+// 0.000552
+0x3f4214df14b79e30
+// 0.000797
+0x3f4a1ee25e11dc10
+// 0.001158
+0x3f52f71278f2c228
+// 0.001650
+0x3f5b083466b24ef0
+// 0.002296
+0x3f62cedf36a209ac
+// 0.003122
+0x3f6993348e2edd56
+// 0.004159
+0x3f71091c8e1478d4
+// 0.005443
+0x3f764b4d1cd89cf2
+// 0.007013
+0x3f7cba27184a20c9
+// 0.008915
+0x3f82420e7d3e2aa3
+// 0.011196
+0x3f86edefadcb75b4
+// 0.013908
+0x3f8c7c0aff082a38
+// 0.017108
+0x3f9184c264677d53
+// 0.020853
+0x3f955a8f334d7220
+// 0.025206
+0x3f99cf7cef71767a
+// 0.030228
+0x3f9ef42a1cf970fd
+// 0.035986
+0x3fa26ccd92aafa81
+// 0.042546
+0x3fa5c886f7bd26e5
+// 0.049972
+0x3fa995e4617fa784
+// 0.058330
+0x3faddd7255ab59ef
+// 0.067684
+0x3fb153c4ebdf6231
+// 0.078096
+0x3fb3fe18d498153f
+// 0.089622
+0x3fb6f17efbe827ec
+// 0.102317
+0x3fba317769b67c4f
+// 0.116229
+0x3fbdc126e9077c4e
+// 0.131398
+0x3fc0d1a2d5cc439b
+// 0.147859
+0x3fc2ed06ff69b431
+// 0.165637
+0x3fc53395ab521d03
+// 0.184748
+0x3fc7a5d4fb23422d
+// 0.205199
+0x3fca43f3c0b1efc0
+// 0.226982
+0x3fcd0dc260624069
+// 0.250082
+0x3fd0015639516274
+// 0.274466
+0x3fd190d9a46f7119
+// 0.300092
+0x3fd334b4bc3af2c2
+// 0.326902
+0x3fd4ebf7c5df28ca
+// 0.354826
+0x3fd6b578faeeff53
+// 0.383779
+0x3fd88fd431290b69
+// 0.413661
+0x3fda796b3a39f56d
+// 0.444360
+0x3fdc70670315750d
+// 0.475752
+0x3fde72b977b2f170
+// 0.507698
+0x3fe03f10167f8f67
+// 0.540049
+0x3fe14813e7da7408
+// 0.572643
+0x3fe2531829cdf558
+// 0.605313
+0x3fe35eb8edb866ca
+// 0.637879
+0x3fe469812745a02b
+// 0.670157
+0x3fe571edc71f0206
+// 0.701958
+0x3fe676711cff2d50
+// 0.733089
+0x3fe77576775438ea
+// 0.763354
+0x3fe86d65f561e64b
+// 0.792561
+0x3fe95ca87fc51827
+// 0.820517
+0x3fea41abda585461
+// 0.847034
+0x3feb1ae6c1cb4fb8
+// 0.871932
+0x3febe6dd06c96219
+// 0.895037
+0x3feca423984f456f
+// 0.916186
+0x3fed51646ed18992
+// 0.935228
+0x3feded624a1378ea
+// 0.952025
+0x3fee76fc34095ac1
+// 0.966454
+0x3feeed30bbd78850
+// 0.978409
+0x3fef4f20dceef735
+// 0.987802
+0x3fef9c12876becf1
+// 0.994562
+0x3fefd372c02fbb09
+// 0.998638
+0x3feff4d750acf4e5
+// 1.000000
+0x3ff0000000000000
+// 0.998638
+0x3feff4d750acf4e5
+// 0.994562
+0x3fefd372c02fbb09
+// 0.987802
+0x3fef9c12876becf1
+// 0.978409
+0x3fef4f20dceef735
+// 0.966454
+0x3feeed30bbd78850
+// 0.952025
+0x3fee76fc34095ac1
+// 0.935228
+0x3feded624a1378ea
+// 0.916186
+0x3fed51646ed18992
+// 0.895037
+0x3feca423984f456f
+// 0.871932
+0x3febe6dd06c96219
+// 0.847034
+0x3feb1ae6c1cb4fb8
+// 0.820517
+0x3fea41abda585461
+// 0.792561
+0x3fe95ca87fc51827
+// 0.763354
+0x3fe86d65f561e64b
+// 0.733089
+0x3fe77576775438ea
+// 0.701958
+0x3fe676711cff2d50
+// 0.670157
+0x3fe571edc71f0206
+// 0.637879
+0x3fe469812745a02d
+// 0.605313
+0x3fe35eb8edb866c7
+// 0.572643
+0x3fe2531829cdf558
+// 0.540049
+0x3fe14813e7da7408
+// 0.507698
+0x3fe03f10167f8f67
+// 0.475752
+0x3fde72b977b2f176
+// 0.444360
+0x3fdc706703157512
+// 0.413661
+0x3fda796b3a39f56a
+// 0.383779
+0x3fd88fd431290b69
+// 0.354826
+0x3fd6b578faeeff53
+// 0.326902
+0x3fd4ebf7c5df28cc
+// 0.300092
+0x3fd334b4bc3af2c7
+// 0.274466
+0x3fd190d9a46f7115
+// 0.250082
+0x3fd0015639516272
+// 0.226982
+0x3fcd0dc260624069
+// 0.205199
+0x3fca43f3c0b1efc4
+// 0.184748
+0x3fc7a5d4fb234233
+// 0.165637
+0x3fc53395ab521cfc
+// 0.147859
+0x3fc2ed06ff69b430
+// 0.131398
+0x3fc0d1a2d5cc439b
+// 0.116229
+0x3fbdc126e9077c4e
+// 0.102317
+0x3fba317769b67c54
+// 0.089622
+0x3fb6f17efbe827e6
+// 0.078096
+0x3fb3fe18d498153f
+// 0.067684
+0x3fb153c4ebdf6231
+// 0.058330
+0x3faddd7255ab59ef
+// 0.049972
+0x3fa995e4617fa784
+// 0.042546
+0x3fa5c886f7bd26f6
+// 0.035986
+0x3fa26ccd92aafa7a
+// 0.030228
+0x3f9ef42a1cf970fd
+// 0.025206
+0x3f99cf7cef71767a
+// 0.020853
+0x3f955a8f334d7220
+// 0.017108
+0x3f9184c264677d62
+// 0.013908
+0x3f8c7c0aff082a36
+// 0.011196
+0x3f86edefadcb75b4
+// 0.008915
+0x3f82420e7d3e2aa3
+// 0.007013
+0x3f7cba27184a20c9
+// 0.005443
+0x3f764b4d1cd89d17
+// 0.004159
+0x3f71091c8e147919
+// 0.003122
+0x3f6993348e2edd72
+// 0.002296
+0x3f62cedf36a209ac
+// 0.001650
+0x3f5b083466b24ef0
+// 0.001158
+0x3f52f71278f2c228
+// 0.000797
+0x3f4a1ee25e11dc10
+// 0.000552
+0x3f4214df14b79d00
+// 0.000409
+0x3f3ad55b9a7fc4e0

+ 258 - 0
Testing/Patterns/DSP/Window/WindowF64/RefWelch_1_f64.txt

@@ -0,0 +1,258 @@
+D
+128
+// 0.000000
+0x0
+// 0.031006
+0x3f9fc00000000000
+// 0.061523
+0x3faf800000000000
+// 0.091553
+0x3fb7700000000000
+// 0.121094
+0x3fbf000000000000
+// 0.150146
+0x3fc3380000000000
+// 0.178711
+0x3fc6e00000000000
+// 0.206787
+0x3fca780000000000
+// 0.234375
+0x3fce000000000000
+// 0.261475
+0x3fd0bc0000000000
+// 0.288086
+0x3fd2700000000000
+// 0.314209
+0x3fd41c0000000000
+// 0.339844
+0x3fd5c00000000000
+// 0.364990
+0x3fd75c0000000000
+// 0.389648
+0x3fd8f00000000000
+// 0.413818
+0x3fda7c0000000000
+// 0.437500
+0x3fdc000000000000
+// 0.460693
+0x3fdd7c0000000000
+// 0.483398
+0x3fdef00000000000
+// 0.505615
+0x3fe02e0000000000
+// 0.527344
+0x3fe0e00000000000
+// 0.548584
+0x3fe18e0000000000
+// 0.569336
+0x3fe2380000000000
+// 0.589600
+0x3fe2de0000000000
+// 0.609375
+0x3fe3800000000000
+// 0.628662
+0x3fe41e0000000000
+// 0.647461
+0x3fe4b80000000000
+// 0.665771
+0x3fe54e0000000000
+// 0.683594
+0x3fe5e00000000000
+// 0.700928
+0x3fe66e0000000000
+// 0.717773
+0x3fe6f80000000000
+// 0.734131
+0x3fe77e0000000000
+// 0.750000
+0x3fe8000000000000
+// 0.765381
+0x3fe87e0000000000
+// 0.780273
+0x3fe8f80000000000
+// 0.794678
+0x3fe96e0000000000
+// 0.808594
+0x3fe9e00000000000
+// 0.822021
+0x3fea4e0000000000
+// 0.834961
+0x3feab80000000000
+// 0.847412
+0x3feb1e0000000000
+// 0.859375
+0x3feb800000000000
+// 0.870850
+0x3febde0000000000
+// 0.881836
+0x3fec380000000000
+// 0.892334
+0x3fec8e0000000000
+// 0.902344
+0x3fece00000000000
+// 0.911865
+0x3fed2e0000000000
+// 0.920898
+0x3fed780000000000
+// 0.929443
+0x3fedbe0000000000
+// 0.937500
+0x3fee000000000000
+// 0.945068
+0x3fee3e0000000000
+// 0.952148
+0x3fee780000000000
+// 0.958740
+0x3feeae0000000000
+// 0.964844
+0x3feee00000000000
+// 0.970459
+0x3fef0e0000000000
+// 0.975586
+0x3fef380000000000
+// 0.980225
+0x3fef5e0000000000
+// 0.984375
+0x3fef800000000000
+// 0.988037
+0x3fef9e0000000000
+// 0.991211
+0x3fefb80000000000
+// 0.993896
+0x3fefce0000000000
+// 0.996094
+0x3fefe00000000000
+// 0.997803
+0x3fefee0000000000
+// 0.999023
+0x3feff80000000000
+// 0.999756
+0x3feffe0000000000
+// 1.000000
+0x3ff0000000000000
+// 0.999756
+0x3feffe0000000000
+// 0.999023
+0x3feff80000000000
+// 0.997803
+0x3fefee0000000000
+// 0.996094
+0x3fefe00000000000
+// 0.993896
+0x3fefce0000000000
+// 0.991211
+0x3fefb80000000000
+// 0.988037
+0x3fef9e0000000000
+// 0.984375
+0x3fef800000000000
+// 0.980225
+0x3fef5e0000000000
+// 0.975586
+0x3fef380000000000
+// 0.970459
+0x3fef0e0000000000
+// 0.964844
+0x3feee00000000000
+// 0.958740
+0x3feeae0000000000
+// 0.952148
+0x3fee780000000000
+// 0.945068
+0x3fee3e0000000000
+// 0.937500
+0x3fee000000000000
+// 0.929443
+0x3fedbe0000000000
+// 0.920898
+0x3fed780000000000
+// 0.911865
+0x3fed2e0000000000
+// 0.902344
+0x3fece00000000000
+// 0.892334
+0x3fec8e0000000000
+// 0.881836
+0x3fec380000000000
+// 0.870850
+0x3febde0000000000
+// 0.859375
+0x3feb800000000000
+// 0.847412
+0x3feb1e0000000000
+// 0.834961
+0x3feab80000000000
+// 0.822021
+0x3fea4e0000000000
+// 0.808594
+0x3fe9e00000000000
+// 0.794678
+0x3fe96e0000000000
+// 0.780273
+0x3fe8f80000000000
+// 0.765381
+0x3fe87e0000000000
+// 0.750000
+0x3fe8000000000000
+// 0.734131
+0x3fe77e0000000000
+// 0.717773
+0x3fe6f80000000000
+// 0.700928
+0x3fe66e0000000000
+// 0.683594
+0x3fe5e00000000000
+// 0.665771
+0x3fe54e0000000000
+// 0.647461
+0x3fe4b80000000000
+// 0.628662
+0x3fe41e0000000000
+// 0.609375
+0x3fe3800000000000
+// 0.589600
+0x3fe2de0000000000
+// 0.569336
+0x3fe2380000000000
+// 0.548584
+0x3fe18e0000000000
+// 0.527344
+0x3fe0e00000000000
+// 0.505615
+0x3fe02e0000000000
+// 0.483398
+0x3fdef00000000000
+// 0.460693
+0x3fdd7c0000000000
+// 0.437500
+0x3fdc000000000000
+// 0.413818
+0x3fda7c0000000000
+// 0.389648
+0x3fd8f00000000000
+// 0.364990
+0x3fd75c0000000000
+// 0.339844
+0x3fd5c00000000000
+// 0.314209
+0x3fd41c0000000000
+// 0.288086
+0x3fd2700000000000
+// 0.261475
+0x3fd0bc0000000000
+// 0.234375
+0x3fce000000000000
+// 0.206787
+0x3fca780000000000
+// 0.178711
+0x3fc6e00000000000
+// 0.150146
+0x3fc3380000000000
+// 0.121094
+0x3fbf000000000000
+// 0.091553
+0x3fb7700000000000
+// 0.061523
+0x3faf800000000000
+// 0.031006
+0x3f9fc00000000000

+ 381 - 0
Testing/Source/Tests/WindowTestsF32.cpp

@@ -0,0 +1,381 @@
+#include "WindowTestsF32.h"
+#include <stdio.h>
+#include "Error.h"
+
+#define SNR_THRESHOLD 120
+
+/* 
+
+Reference patterns are generated with
+a double precision computation.
+
+*/
+#define REL_ERROR (1.0e-6)
+#define ABS_ERROR (2.0e-6)
+
+void WindowTestsF32::test_welch_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_welch_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_bartlett_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_bartlett_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hamming_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hamming_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hanning_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hanning_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall3_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall3_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall4_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall4_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall3a_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall3a_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall3b_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall3b_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall4a_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall4a_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_blackman_harris_92db_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_blackman_harris_92db_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall4b_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall4b_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_nuttall4c_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_nuttall4c_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft90d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft90d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft95_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft95_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft116d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft116d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft144d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft144d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft169d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft169d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft196d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft196d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft223d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft223d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF32::test_hft248d_f32()
+{
+        float32_t *outp=output.ptr();
+
+        arm_hft248d_f32(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float32_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+
+    
+    void WindowTestsF32::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       (void)params;
+
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+
+       
+       switch(id)
+       {
+
+          case WindowTestsF32::TEST_WELCH_F32_1:
+            ref.reload(WindowTestsF32::REF1_WELCH_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_BARTLETT_F32_2:
+            ref.reload(WindowTestsF32::REF2_BARTLETT_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HAMMING_F32_3:
+            ref.reload(WindowTestsF32::REF3_HAMMING_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HANNING_F32_4:
+            ref.reload(WindowTestsF32::REF4_HANNING_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL3_F32_5:
+            ref.reload(WindowTestsF32::REF5_NUTTALL3_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL4_F32_6:
+            ref.reload(WindowTestsF32::REF6_NUTTALL4_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL3A_F32_7:
+            ref.reload(WindowTestsF32::REF7_NUTTALL3A_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL3B_F32_8:
+            ref.reload(WindowTestsF32::REF8_NUTTALL3B_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL4A_F32_9:
+            ref.reload(WindowTestsF32::REF9_NUTTALL4A_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_BLACKMAN_HARRIS_92DB_F32_10:
+            ref.reload(WindowTestsF32::REF10_BLACKMAN_HARRIS_92DB_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL4B_F32_11:
+            ref.reload(WindowTestsF32::REF11_NUTTALL4B_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_NUTTALL4C_F32_12:
+            ref.reload(WindowTestsF32::REF12_NUTTALL4C_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT90D_F32_13:
+            ref.reload(WindowTestsF32::REF13_HFT90D_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT95_F32_14:
+            ref.reload(WindowTestsF32::REF14_HFT95_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT116D_F32_15:
+            ref.reload(WindowTestsF32::REF15_HFT116D_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT144D_F32_16:
+            ref.reload(WindowTestsF32::REF16_HFT144D_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT169D_F32_17:
+            ref.reload(WindowTestsF32::REF17_HFT169D_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT196D_F32_18:
+            ref.reload(WindowTestsF32::REF18_HFT196D_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT223D_F32_19:
+            ref.reload(WindowTestsF32::REF19_HFT223D_F32_ID,mgr,nb);
+          break;
+
+          case WindowTestsF32::TEST_HFT248D_F32_20:
+            ref.reload(WindowTestsF32::REF20_HFT248D_F32_ID,mgr,nb);
+          break;
+
+       }
+      
+
+       
+
+       output.create(ref.nbSamples(),WindowTestsF32::OUT_F32_ID,mgr);
+    }
+
+    void WindowTestsF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        (void)id;
+        output.dump(mgr);
+    }

+ 381 - 0
Testing/Source/Tests/WindowTestsF64.cpp

@@ -0,0 +1,381 @@
+#include "WindowTestsF64.h"
+#include <stdio.h>
+#include "Error.h"
+
+#define SNR_THRESHOLD 250
+
+/* 
+
+Reference patterns are generated with
+a double precision computation.
+
+*/
+#define REL_ERROR (3.0e-15)
+#define ABS_ERROR (3.0e-15)
+
+void WindowTestsF64::test_welch_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_welch_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_bartlett_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_bartlett_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hamming_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hamming_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hanning_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hanning_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall3_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall3_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall4_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall4_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall3a_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall3a_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall3b_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall3b_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall4a_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall4a_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_blackman_harris_92db_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_blackman_harris_92db_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall4b_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall4b_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_nuttall4c_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_nuttall4c_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft90d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft90d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft95_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft95_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft116d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft116d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft144d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft144d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft169d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft169d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft196d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft196d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft223d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft223d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+void WindowTestsF64::test_hft248d_f64()
+{
+        float64_t *outp=output.ptr();
+
+        arm_hft248d_f64(outp,output.nbSamples());
+
+        ASSERT_EMPTY_TAIL(output);
+
+        ASSERT_SNR(output,ref,(float64_t)SNR_THRESHOLD);
+
+        ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR);
+
+} 
+
+    
+    void WindowTestsF64::setUp(Testing::testID_t id,std::vector<Testing::param_t>& params,Client::PatternMgr *mgr)
+    {
+      
+       (void)params;
+
+       Testing::nbSamples_t nb=MAX_NB_SAMPLES; 
+
+       
+       switch(id)
+       {
+
+          case WindowTestsF64::TEST_WELCH_F64_1:
+            ref.reload(WindowTestsF64::REF1_WELCH_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_BARTLETT_F64_2:
+            ref.reload(WindowTestsF64::REF2_BARTLETT_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HAMMING_F64_3:
+            ref.reload(WindowTestsF64::REF3_HAMMING_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HANNING_F64_4:
+            ref.reload(WindowTestsF64::REF4_HANNING_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL3_F64_5:
+            ref.reload(WindowTestsF64::REF5_NUTTALL3_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL4_F64_6:
+            ref.reload(WindowTestsF64::REF6_NUTTALL4_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL3A_F64_7:
+            ref.reload(WindowTestsF64::REF7_NUTTALL3A_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL3B_F64_8:
+            ref.reload(WindowTestsF64::REF8_NUTTALL3B_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL4A_F64_9:
+            ref.reload(WindowTestsF64::REF9_NUTTALL4A_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_BLACKMAN_HARRIS_92DB_F64_10:
+            ref.reload(WindowTestsF64::REF10_BLACKMAN_HARRIS_92DB_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL4B_F64_11:
+            ref.reload(WindowTestsF64::REF11_NUTTALL4B_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_NUTTALL4C_F64_12:
+            ref.reload(WindowTestsF64::REF12_NUTTALL4C_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT90D_F64_13:
+            ref.reload(WindowTestsF64::REF13_HFT90D_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT95_F64_14:
+            ref.reload(WindowTestsF64::REF14_HFT95_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT116D_F64_15:
+            ref.reload(WindowTestsF64::REF15_HFT116D_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT144D_F64_16:
+            ref.reload(WindowTestsF64::REF16_HFT144D_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT169D_F64_17:
+            ref.reload(WindowTestsF64::REF17_HFT169D_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT196D_F64_18:
+            ref.reload(WindowTestsF64::REF18_HFT196D_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT223D_F64_19:
+            ref.reload(WindowTestsF64::REF19_HFT223D_F64_ID,mgr,nb);
+          break;
+
+          case WindowTestsF64::TEST_HFT248D_F64_20:
+            ref.reload(WindowTestsF64::REF20_HFT248D_F64_ID,mgr,nb);
+          break;
+
+       }
+      
+
+       
+
+       output.create(ref.nbSamples(),WindowTestsF64::OUT_F64_ID,mgr);
+    }
+
+    void WindowTestsF64::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
+    {
+        (void)id;
+        output.dump(mgr);
+    }

+ 193 - 0
Testing/cmsis_build/RTE/Device/SSE-310-MPS3/corstone310_mps3_s.ld

@@ -0,0 +1,193 @@
+;/*
+; * Copyright (c) 2021-2022 Arm Limited. All rights reserved.
+; *
+; * 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
+; *
+; *     http://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.
+; *
+; *
+; * This file is derivative of CMSIS V5.00 gcc_arm.ld
+; */
+
+/* Linker script to configure memory regions. */
+/* This file will be run trough the pre-processor. */
+
+#include "region_defs.h"
+
+MEMORY
+{
+  FLASH (rx)  : ORIGIN = S_CODE_START, LENGTH = S_CODE_SIZE
+  RAM   (rwx) : ORIGIN = S_DATA_START, LENGTH = S_DATA_SIZE
+}
+
+__heap_size__  = HEAP_SIZE;
+__stack_size__ = STACK_SIZE;
+
+/* Library configurations */
+GROUP(libgcc.a libc.a libm.a libnosys.a)
+
+ENTRY(Reset_Handler)
+
+SECTIONS
+{
+    .text :
+    {
+        KEEP(*(.vectors))
+        __Vectors_End = .;
+        __Vectors_Size = __Vectors_End - __Vectors;
+        __end__ = .;
+
+        *(.text*)
+
+        KEEP(*(.init))
+        KEEP(*(.fini))
+
+
+        /* .ctors */
+        *crtbegin.o(.ctors)
+        *crtbegin?.o(.ctors)
+        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+        *(SORT(.ctors.*))
+        *(.ctors)
+
+        /* .dtors */
+         *crtbegin.o(.dtors)
+         *crtbegin?.o(.dtors)
+         *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+         *(SORT(.dtors.*))
+         *(.dtors)
+
+        *(.rodata*)
+
+        KEEP(*(.eh_frame*))
+    } > FLASH
+
+    .ARM.extab :
+    {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+    } > FLASH
+
+    __exidx_start = .;
+    .ARM.exidx :
+    {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+    } > FLASH
+    __exidx_end = .;
+
+    /* To copy multiple ROM to RAM sections,
+     * define etext2/data2_start/data2_end and
+     * define __STARTUP_COPY_MULTIPLE in startup_cmsdk_mps3_an524_ns.S */
+    .copy.table :
+    {
+        . = ALIGN(4);
+        __copy_table_start__ = .;
+        LONG (__etext)
+        LONG (__data_start__)
+        LONG ((__data_end__ - __data_start__) / 4)
+        LONG (DEFINED(__etext2) ? __etext2 : 0)
+        LONG (DEFINED(__data2_start__) ? __data2_start__ : 0)
+        LONG (DEFINED(__data2_start__) ? ((__data2_end__ - __data2_start__) / 4) : 0)
+        __copy_table_end__ = .;
+    } > FLASH
+
+    /* To clear multiple BSS sections,
+     * uncomment .zero.table section and,
+     * define __STARTUP_CLEAR_BSS_MULTIPLE in startup_cmsdk_mps3_an524_ns.S */
+    .zero.table :
+    {
+        . = ALIGN(4);
+        __zero_table_start__ = .;
+        LONG (__bss_start__)
+        LONG ((__bss_end__ - __bss_start__) / 4)
+        LONG (DEFINED(__bss2_start__) ? __bss2_start__ : 0)
+        LONG (DEFINED(__bss2_start__) ? ((__bss2_end__ - __bss2_start__) / 4) : 0)
+        __zero_table_end__ = .;
+    } > FLASH
+
+    __etext = .;
+
+#if defined(BL2_LINKER)
+    .tfm_bl2_shared_data : ALIGN(32)
+    {
+        . += BOOT_TFM_SHARED_DATA_SIZE;
+    } > RAM
+    Image$$SHARED_DATA$$RW$$Base = ADDR(.tfm_bl2_shared_data);
+    Image$$SHARED_DATA$$RW$$Limit = ADDR(.tfm_bl2_shared_data) + SIZEOF(.tfm_bl2_shared_data);
+#endif
+
+    .data : AT (__etext)
+    {
+        __data_start__ = .;
+        *(vtable)
+        *(.data*)
+
+        . = ALIGN(4);
+        /* preinit data */
+        PROVIDE_HIDDEN (__preinit_array_start = .);
+        KEEP(*(.preinit_array))
+        PROVIDE_HIDDEN (__preinit_array_end = .);
+
+        . = ALIGN(4);
+        /* init data */
+        PROVIDE_HIDDEN (__init_array_start = .);
+        KEEP(*(SORT(.init_array.*)))
+        KEEP(*(.init_array))
+        PROVIDE_HIDDEN (__init_array_end = .);
+
+
+        . = ALIGN(4);
+        /* finit data */
+        PROVIDE_HIDDEN (__fini_array_start = .);
+        KEEP(*(SORT(.fini_array.*)))
+        KEEP(*(.fini_array))
+        PROVIDE_HIDDEN (__fini_array_end = .);
+
+        KEEP(*(.jcr*))
+        . = ALIGN(4);
+        /* All data end */
+        __data_end__ = .;
+
+    } > RAM
+    Image$$ER_DATA$$Base = ADDR(.data);
+
+    .bss :
+    {
+        . = ALIGN(4);
+        __bss_start__ = .;
+        *(.bss*)
+        *(COMMON)
+        . = ALIGN(4);
+        __bss_end__ = .;
+    } > RAM
+
+    bss_size = __bss_end__ - __bss_start__;
+
+    .msp_stack : ALIGN(32)
+    {
+        . += __stack_size__;
+    } > RAM
+    __StackLimit = ADDR(.msp_stack);
+    __StackTop = ADDR(.msp_stack) + SIZEOF(.msp_stack);
+
+    .heap : ALIGN(8)
+    {
+        . = ALIGN(8);
+        __end__ = .;
+        PROVIDE(end = .);
+        __HeapBase = .;
+        . += __heap_size__;
+        __HeapLimit = .;
+        __heap_limit = .; /* Add for _sbrk */
+    } > RAM
+    Image$$ARM_LIB_HEAP$$ZI$$Limit = ADDR(.heap) + SIZEOF(.heap);
+
+    PROVIDE(__stack = __StackTop);
+}

+ 1 - 1
Testing/cmsis_build/dsp.clayer.yml

@@ -39,4 +39,4 @@ layer:
         - file: ../../Source/TransformFunctions/TransformFunctions.c
         - file: ../../Source/TransformFunctions/TransformFunctionsF16.c
         - file: ../../Source/ControllerFunctions/ControllerFunctions.c
-     
+        - file: ../../Source/WindowFunctions/WindowFunctions.c

+ 15 - 10
Testing/cmsis_build/runall.py

@@ -9,6 +9,7 @@ from colorama import init,Fore, Back, Style
 parser = argparse.ArgumentParser(description='Parse test description')
 parser.add_argument('-avh', nargs='?',type = str, default="C:/Keil_v5/ARM/VHT", help="AVH folder")
 parser.add_argument('-d', action='store_true', help="Debug log")
+parser.add_argument('-n', action='store_true', help="No force rebuild")
 
 args = parser.parse_args()
 
@@ -157,15 +158,15 @@ for t in tests:
 # Test suite and output pickle needed to decode the result
 #print(allSuites)
 
-allSuites=[("ComplexTestsF32","../Output.pickle"),
-("DistanceTestsF32","../Output.pickle"),
-("UnaryTestsF32","../Output.pickle"),
-("QuaternionTestsF32","../Output.pickle"),
-("StatsTestsF32","../Output.pickle")
-]
+#allSuites=[("ComplexTestsF32","../Output.pickle"),
+#("DistanceTestsF32","../Output.pickle"),
+#("UnaryTestsF32","../Output.pickle"),
+#("QuaternionTestsF32","../Output.pickle"),
+#("StatsTestsF32","../Output.pickle")
+#]
 
-#allSuites=[("BasicTestsF32","../Output.pickle"),
-#("BasicTestsQ31","../Output.pickle")]
+allSuites=[("WindowTestsF32","../Output.pickle"),
+("WindowTestsF64","../Output.pickle")]
 
 #allSuites=[("StatsTestsQ7","../Output.pickle")]
 
@@ -188,7 +189,7 @@ solutions={
     ],
     'testgcc.csolution.yml':[
       #("VHT-Corstone-310","CS310"),
-      ("VHT_M55","M55"),
+      #("VHT_M55","M55"),
       ##("VHT_M33","M33_DSP_FP"),
       ("VHT_M7","M7DP"),
       ("VHT_M7_UNROLLED","M7DP"),
@@ -199,6 +200,7 @@ solutions={
     ]
 }
 
+
 HTMLHEADER="""<html>
 <header>
 <title>CMSIS-DSP Test summary</title>
@@ -249,7 +251,10 @@ with open("summary.html","w") as f:
                    # between different solutions
                    # (Like one using AC6 and the other
                    # using gcc)
-                   res=run("cbuild","-r",buildFile)
+                   if args.n:
+                      res=run("cbuild",buildFile)
+                   else:
+                      res=run("cbuild","-r",buildFile)
                 else:
                    res=run("cbuild",buildFile)
                 if res.error:

+ 4 - 1
Testing/cmsis_build/test.Release+VHT-Corstone-300.cprj

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 <cprj schemaVersion="1.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CPRJ.xsd">
-  <created timestamp="2022-11-29T14:54:04" tool="csolution 1.1.0"/>
+  <created timestamp="2022-12-16T07:29:13" tool="csolution 1.1.0"/>
 
   <info isLayer="false">
     <description>Automatically generated project</description>
@@ -165,6 +165,8 @@
       <file category="sourceCpp" name="../Source/Tests/UnaryTestsQ7.cpp"/>
       <file category="sourceCpp" name="../Source/Tests/UnaryTestsQ15.cpp"/>
       <file category="sourceCpp" name="../Source/Tests/UnaryTestsQ31.cpp"/>
+      <file category="sourceCpp" name="../Source/Tests/WindowTestsF32.cpp"/>
+      <file category="sourceCpp" name="../Source/Tests/WindowTestsF64.cpp"/>
     </group>
     <group name="CMSIS-DSP">
       <defines>ARM_MATH_ROUNDING</defines>
@@ -196,6 +198,7 @@
       <file category="sourceC" name="../../Source/TransformFunctions/TransformFunctions.c"/>
       <file category="sourceC" name="../../Source/TransformFunctions/TransformFunctionsF16.c"/>
       <file category="sourceC" name="../../Source/ControllerFunctions/ControllerFunctions.c"/>
+      <file category="sourceC" name="../../Source/WindowFunctions/WindowFunctions.c"/>
     </group>
   </files>
 </cprj>

+ 4 - 1
Testing/cmsis_build/test.Release+VHT-Corstone-310.cprj

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 <cprj schemaVersion="1.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CPRJ.xsd">
-  <created timestamp="2022-11-29T15:02:12" tool="csolution 1.1.0"/>
+  <created timestamp="2022-12-16T07:35:59" tool="csolution 1.1.0"/>
 
   <info isLayer="false">
     <description>Automatically generated project</description>
@@ -168,6 +168,8 @@
       <file category="sourceCpp" name="../Source/Tests/UnaryTestsQ7.cpp"/>
       <file category="sourceCpp" name="../Source/Tests/UnaryTestsQ15.cpp"/>
       <file category="sourceCpp" name="../Source/Tests/UnaryTestsQ31.cpp"/>
+      <file category="sourceCpp" name="../Source/Tests/WindowTestsF32.cpp"/>
+      <file category="sourceCpp" name="../Source/Tests/WindowTestsF64.cpp"/>
     </group>
     <group name="CMSIS-DSP">
       <defines>ARM_MATH_ROUNDING</defines>
@@ -199,6 +201,7 @@
       <file category="sourceC" name="../../Source/TransformFunctions/TransformFunctions.c"/>
       <file category="sourceC" name="../../Source/TransformFunctions/TransformFunctionsF16.c"/>
       <file category="sourceC" name="../../Source/ControllerFunctions/ControllerFunctions.c"/>
+      <file category="sourceC" name="../../Source/WindowFunctions/WindowFunctions.c"/>
     </group>
   </files>
 </cprj>

Some files were not shown because too many files changed in this diff