text: /******************************************************************************
   * @file     arm_math.h
   * @brief    Public header file for CMSIS DSP Library
   * @version  V1.7.0
   * @date     18. March 2019
   ******************************************************************************/
  /*
   * Copyright (c) 2010-2019 Arm Limited or its affiliates. All rights reserved.
   *
   * SPDX-License-Identifier: Apache-2.0
   *
   * Licensed under the Apache License, Version 2.0 (the License); you may
   * not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an AS IS BASIS, WITHOUT
   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  /**
     \mainpage CMSIS DSP Software Library
     *
     * \section intro Introduction
     *
     * This user manual describes the CMSIS DSP software library,
     * a suite of common signal processing functions for use on Cortex-M and Cortex-A processor 
     * based devices.
     *
     * The library is divided into a number of functions each covering a specific category:
     * - Basic math functions
     * - Fast math functions
     * - Complex math functions
     * - Filtering functions
     * - Matrix functions
     * - Transform functions
     * - Motor control functions
     * - Statistical functions
     * - Support functions
     * - Interpolation functions
     * - Support Vector Machine functions (SVM)
     * - Bayes classifier functions
     * - Distance functions
     * - Quaternion 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.
     *
     * The library is providing vectorized versions of most algorthms for Helium
     * and of most f32 algorithms for Neon.
     *
     * When using a vectorized version, provide a little bit of padding after the end of
     * a buffer (3 words) because the vectorized code may read a little bit after the end
     * of a buffer. You don't have to modify your buffers but just ensure that the
     * end of buffer + padding is not outside of a memory region.
     *
     * \section using Using the Library
     *
     * The library installer contains prebuilt versions of the libraries in the <code>Lib</code> folder.
     *
     * Here is the list of pre-built libraries :
     * - arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit)
     * - arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit)
     * - arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit)
     * - arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on)
     * - arm_cortexM7l_math.lib (Cortex-M7, Little endian)
     * - arm_cortexM7b_math.lib (Cortex-M7, Big endian)
     * - arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit)
     * - arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit)
     * - arm_cortexM4l_math.lib (Cortex-M4, Little endian)
     * - arm_cortexM4b_math.lib (Cortex-M4, Big endian)
     * - arm_cortexM3l_math.lib (Cortex-M3, Little endian)
     * - arm_cortexM3b_math.lib (Cortex-M3, Big endian)
     * - arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian)
     * - arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian)
     * - arm_ARMv8MBLl_math.lib (Armv8-M Baseline, Little endian)
     * - arm_ARMv8MMLl_math.lib (Armv8-M Mainline, Little endian)
     * - arm_ARMv8MMLlfsp_math.lib (Armv8-M Mainline, Little endian, Single Precision Floating Point Unit)
     * - arm_ARMv8MMLld_math.lib (Armv8-M Mainline, Little endian, DSP instructions)
     * - arm_ARMv8MMLldfsp_math.lib (Armv8-M Mainline, Little endian, DSP instructions, Single Precision Floating Point Unit)
     *
     * The library functions are declared in the public file <code>arm_math.h</code> which is placed in the <code>Include</code> folder.
     * Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single
     * public header file <code> arm_math.h</code> for Cortex-M cores with little endian and big endian. Same header file will be used for floating point unit(FPU) variants.
     *
     *
     * \section example Examples
     *
     * The library ships with a number of examples which demonstrate how to use the library functions.
     *
     * \section toolchain Toolchain Support
     *
     * The library is now tested on Fast Models building with cmake.
     * Core M0, M7, A5 are tested.
     * 
     * 
     *
     * \section building Building the Library
     *
     * The library installer contains a project file to rebuild libraries on MDK toolchain in the <code>CMSIS\\DSP\\Projects\\ARM</code> folder.
     * - arm_cortexM_math.uvprojx
     *
     *
     * The libraries can be built by opening the arm_cortexM_math.uvprojx project in MDK-ARM, selecting a specific target, and defining the optional preprocessor macros detailed above.
     *
     * There is also a work in progress cmake build. The README file is giving more details.
     *
     * \section preprocessor Preprocessor Macros
     *
     * Each library project have different preprocessor macros.
     *
     * - ARM_MATH_BIG_ENDIAN:
     *
     * Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets.
     *
     * - ARM_MATH_MATRIX_CHECK:
     *
     * Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices
     *
     * - ARM_MATH_ROUNDING:
     *
     * Define macro ARM_MATH_ROUNDING for rounding on support functions
     *
     * - ARM_MATH_LOOPUNROLL:
     *
     * Define macro ARM_MATH_LOOPUNROLL to enable manual loop unrolling in DSP functions
     *
     * - ARM_MATH_NEON:
     *
     * Define macro ARM_MATH_NEON to enable Neon versions of the DSP functions.
     * It is not enabled by default when Neon is available because performances are 
     * dependent on the compiler and target architecture.
     *
     * - ARM_MATH_NEON_EXPERIMENTAL:
     *
     * Define macro ARM_MATH_NEON_EXPERIMENTAL to enable experimental Neon versions of 
     * of some DSP functions. Experimental Neon versions currently do not have better
     * performances than the scalar versions.
     *
     * - ARM_MATH_HELIUM:
     *
     * It implies the flags ARM_MATH_MVEF and ARM_MATH_MVEI and ARM_MATH_FLOAT16.
     *
     * - ARM_MATH_MVEF:
     *
     * Select Helium versions of the f32 algorithms.
     * It implies ARM_MATH_FLOAT16 and ARM_MATH_MVEI.
     *
     * - ARM_MATH_MVEI:
     *
     * Select Helium versions of the int and fixed point algorithms.
     *
     * - ARM_MATH_MVE_FLOAT16:
     *
     * MVE Float16 implementations of some algorithms (Requires MVE extension).
     *
     * - DISABLEFLOAT16:
     *
     * Disable float16 algorithms when __fp16 is not supported for a
     * specific compiler / core configuration.
     * This is only valid for scalar. When vector architecture is
     * supporting f16 then it can't be disabled.
     *
     * <hr>
     * \section pack CMSIS-DSP in ARM::CMSIS Pack
     *
     * The following files relevant to CMSIS-DSP are present in the <b>ARM::CMSIS</b> Pack directories:
     * |File/Folder                      |Content                                                                 |
     * |---------------------------------|------------------------------------------------------------------------|
     * |\b CMSIS\\Documentation\\DSP     | This documentation                                                     |
     * |\b CMSIS\\DSP\\DSP_Lib_TestSuite | DSP_Lib deprecated test suite                                                     |
     * |\b CMSIS\\DSP\\Examples          | Example projects demonstrating the usage of the library functions      |
     * |\b CMSIS\\DSP\\Include           | DSP_Lib include files for using and building the lib
     * |\b CMSIS\\DSP\\PrivateInclude    | DSP_Lib private include files for building the lib                                               |
     * |\b CMSIS\\DSP\\Lib               | DSP_Lib binaries                                                       |
     * |\b CMSIS\\DSP\\Projects          | Projects to rebuild DSP_Lib binaries                                   |
     * |\b CMSIS\\DSP\\Source            | DSP_Lib source files                                                   |
     *
     * <hr>
     * \section rev Revision History of CMSIS-DSP
     * Please refer to \ref ChangeLog_pg.
     */
  
  
  
  
  
  
  
  
  
  
  
  /**
   * @defgroup groupExamples Examples
   */
  
  
  
  
  
  #ifndef _ARM_MATH_H
  #define _ARM_MATH_H
  
  
  #include "edge-impulse-sdk/CMSIS/DSP/Include/arm_math_types.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/arm_math_memory.h"
  
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/none.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/utils.h"
  
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/basic_math_functions.h"  
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/interpolation_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/bayes_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/matrix_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/complex_math_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/statistics_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/controller_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/support_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/distance_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/svm_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/fast_math_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/transform_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/filtering_functions.h"
  #include "edge-impulse-sdk/CMSIS/DSP/Include/dsp/quaternion_math_functions.h"
  
  
  
  #ifdef   __cplusplus
  extern "C"
  {
  #endif
  
  
  
  
  //#define TABLE_SPACING_Q31     0x400000
  //#define TABLE_SPACING_Q15     0x80
  
  
  
  
  
  #ifdef   __cplusplus
  }
  #endif
  
  
  #endif /* _ARM_MATH_H */
  
  /**
   *
   * End of file.
   */
  