From 7a07cecef1aaf72b919596834d27dd8734f311c8 Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Fri, 26 Jul 2019 08:12:38 +0200 Subject: [PATCH] CMSIS-DSP: Added distance functions for clustering algorithms --- Include/arm_math.h | 234 + Source/CMakeLists.txt | 8 +- Source/CommonTables/CMakeLists.txt | 3 + Source/DistanceFunctions/CMakeLists.txt | 20 + .../DistanceFunctions/arm_boolean_distance.c | 106 + .../arm_boolean_distance_template.h | 396 + .../arm_braycurtis_distance_f32.c | 129 + .../arm_canberra_distance_f32.c | 144 + .../arm_chebyshev_distance_f32.c | 159 + .../arm_cityblock_distance_f32.c | 113 + .../arm_correlation_distance_f32.c | 83 + .../arm_cosine_distance_f32.c | 68 + Source/DistanceFunctions/arm_dice_distance.c | 69 + .../arm_euclidean_distance_f32.c | 107 + .../DistanceFunctions/arm_hamming_distance.c | 68 + .../DistanceFunctions/arm_jaccard_distance.c | 71 + .../arm_jensenshannon_distance_f32.c | 155 + .../arm_kulsinski_distance.c | 71 + .../arm_minkowski_distance_f32.c | 120 + .../arm_rogerstanimoto_distance.c | 74 + .../arm_russellrao_distance.c | 71 + .../arm_sokalmichener_distance.c | 75 + .../arm_sokalsneath_distance.c | 73 + Source/DistanceFunctions/arm_yule_distance.c | 73 + Source/SVMFunctions/CMakeLists.txt | 4 +- Testing/CMakeLists.txt | 2 + .../BasicMathsF32/fullBenchmark.csv | 80 +- .../BasicMathsQ15/fullBenchmark.csv | 80 +- .../BasicMathsQ31/fullBenchmark.csv | 80 +- .../BasicMaths/BasicMathsQ7/fullBenchmark.csv | 80 +- .../GeneratedInclude/DistanceTestsF32_decl.h | 42 + .../GeneratedInclude/DistanceTestsU32_decl.h | 37 + Testing/GeneratedInclude/Patterns.h | 13988 ++++++++++++++++ Testing/GeneratedInclude/TestDesc.h | 184 +- Testing/GeneratedInclude/TestDrive.h | 832 +- Testing/GeneratedSource/TestDesc.cpp | 172 + Testing/Include/DistanceTestsF32.h | 27 + Testing/Include/DistanceTestsU32.h | 25 + .../DSP/Distance/DistanceF32/Output_1.txt | 10 + .../DSP/Distance/DistanceF32/Output_2.txt | 10 + .../DSP/Distance/DistanceF32/Output_3.txt | 10 + .../DSP/Distance/DistanceF32/Output_4.txt | 10 + .../DSP/Distance/DistanceF32/Output_5.txt | 10 + .../DSP/Distance/DistanceF32/Output_6.txt | 10 + .../DSP/Distance/DistanceF32/Output_7.txt | 10 + .../DSP/Distance/DistanceF32/Output_8.txt | 10 + .../DSP/Distance/DistanceF32/Output_9.txt | 10 + .../DSP/Distance/DistanceU32/Output_1.txt | 10 + .../DSP/Distance/DistanceU32/Output_2.txt | 10 + .../DSP/Distance/DistanceU32/Output_3.txt | 10 + .../DSP/Distance/DistanceU32/Output_4.txt | 10 + .../DSP/Distance/DistanceU32/Output_5.txt | 10 + .../DSP/Distance/DistanceU32/Output_6.txt | 10 + .../DSP/Distance/DistanceU32/Output_7.txt | 10 + .../DSP/Distance/DistanceU32/Output_8.txt | 10 + .../DSP/Distance/DistanceU32/Output_9.txt | 10 + Testing/PatternGeneration/Distance.py | 203 + Testing/PatternGeneration/Tools.py | 88 + .../DSP/Distance/DistanceF32/Dims1_s16.txt | 6 + .../DSP/Distance/DistanceF32/Dims9_s16.txt | 26 + .../DSP/Distance/DistanceF32/InputA1_f32.txt | 242 + .../DSP/Distance/DistanceF32/InputA8_f32.txt | 242 + .../DSP/Distance/DistanceF32/InputB1_f32.txt | 242 + .../DSP/Distance/DistanceF32/InputB8_f32.txt | 242 + .../DSP/Distance/DistanceF32/Ref1_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref2_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref3_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref4_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref5_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref6_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref7_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref8_f32.txt | 22 + .../DSP/Distance/DistanceF32/Ref9_f32.txt | 22 + .../DSP/Distance/DistanceU32/Dims1_s16.txt | 8 + .../DSP/Distance/DistanceU32/InputA1_u32.txt | 22 + .../DSP/Distance/DistanceU32/InputB1_u32.txt | 22 + .../DSP/Distance/DistanceU32/Ref1_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref2_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref3_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref4_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref5_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref6_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref7_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref8_f32.txt | 22 + .../DSP/Distance/DistanceU32/Ref9_f32.txt | 22 + Testing/Source/DistanceTestsF32.cpp | 297 + Testing/Source/DistanceTestsU32.cpp | 263 + Testing/TestDesc.txt | 692 + Testing/desc.txt | 79 + 89 files changed, 21196 insertions(+), 177 deletions(-) create mode 100755 Source/DistanceFunctions/CMakeLists.txt create mode 100755 Source/DistanceFunctions/arm_boolean_distance.c create mode 100755 Source/DistanceFunctions/arm_boolean_distance_template.h create mode 100755 Source/DistanceFunctions/arm_braycurtis_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_canberra_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_chebyshev_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_cityblock_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_correlation_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_cosine_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_dice_distance.c create mode 100755 Source/DistanceFunctions/arm_euclidean_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_hamming_distance.c create mode 100755 Source/DistanceFunctions/arm_jaccard_distance.c create mode 100755 Source/DistanceFunctions/arm_jensenshannon_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_kulsinski_distance.c create mode 100755 Source/DistanceFunctions/arm_minkowski_distance_f32.c create mode 100755 Source/DistanceFunctions/arm_rogerstanimoto_distance.c create mode 100755 Source/DistanceFunctions/arm_russellrao_distance.c create mode 100755 Source/DistanceFunctions/arm_sokalmichener_distance.c create mode 100755 Source/DistanceFunctions/arm_sokalsneath_distance.c create mode 100755 Source/DistanceFunctions/arm_yule_distance.c create mode 100755 Testing/GeneratedInclude/DistanceTestsF32_decl.h create mode 100755 Testing/GeneratedInclude/DistanceTestsU32_decl.h create mode 100755 Testing/Include/DistanceTestsF32.h create mode 100755 Testing/Include/DistanceTestsU32.h create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_1.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_2.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_3.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_4.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_5.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_6.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_7.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_8.txt create mode 100755 Testing/Output/DSP/Distance/DistanceF32/Output_9.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_1.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_2.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_3.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_4.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_5.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_6.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_7.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_8.txt create mode 100755 Testing/Output/DSP/Distance/DistanceU32/Output_9.txt create mode 100755 Testing/PatternGeneration/Distance.py create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Dims1_s16.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Dims9_s16.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/InputA1_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/InputA8_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/InputB1_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/InputB8_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref1_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref2_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref3_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref4_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref5_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref6_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref7_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref8_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceF32/Ref9_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Dims1_s16.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/InputA1_u32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/InputB1_u32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref1_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref2_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref3_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref4_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref5_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref6_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref7_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref8_f32.txt create mode 100755 Testing/Patterns/DSP/Distance/DistanceU32/Ref9_f32.txt create mode 100755 Testing/Source/DistanceTestsF32.cpp create mode 100755 Testing/Source/DistanceTestsU32.cpp diff --git a/Include/arm_math.h b/Include/arm_math.h index f61b86c3..28ffdbf3 100644 --- a/Include/arm_math.h +++ b/Include/arm_math.h @@ -285,6 +285,11 @@ * */ +/** + * @defgroup groupDistance Distance functions + * + */ + #ifndef _ARM_MATH_H #define _ARM_MATH_H @@ -7281,6 +7286,235 @@ void arm_barycenter_f32(const float32_t *in , uint32_t nbVectors , uint32_t vecDim); +/** + * @brief Euclidean distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +float32_t arm_euclidean_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize); + +/** + * @brief Bray-Curtis distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ +float32_t arm_braycurtis_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize); + +/** + * @brief Canberra distance between two vectors + * + * This function may divide by zero when samples pA[i] and pB[i] are both zero. + * The result of the computation will be correct. So the division per zero may be + * ignored. + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ +float32_t arm_canberra_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize); + + +/** + * @brief Chebyshev distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ +float32_t arm_chebyshev_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize); + + +/** + * @brief Cityblock (Manhattan) distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ +float32_t arm_cityblock_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize); + +/** + * @brief Correlation distance between two vectors + * + * The input vectors are modified in place ! + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ +float32_t arm_correlation_distance_f32(float32_t *pA,float32_t *pB, uint32_t blockSize); + +/** + * @brief Cosine distance between two vectors + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +float32_t arm_cosine_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize); + +/** + * @brief Jensen-Shannon distance between two vectors + * + * This function is assuming that elements of second vector are > 0 + * and 0 only when the corresponding element of first vector is 0. + * Otherwise the result of the computation does not make sense + * and for speed reasons, the cases returning NaN or Infinity are not + * managed. + * + * When the function is computing x log (x / y) with x 0 and y 0, + * it will compute the right value (0) but a division per zero will occur + * and shoudl be ignored in client code. + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +float32_t arm_jensenshannon_distance_f32(const float32_t *pA,const float32_t *pB,uint32_t blockSize); + +/** + * @brief Minkowski distance between two vectors + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] n Norm order (>= 2) + * @param[in] blockSize vector length + * @return distance + * + */ + + + +float32_t arm_minkowski_distance_f32(const float32_t *pA,const float32_t *pB, int order, uint32_t blockSize); + +/** + * @brief Dice distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + + +float32_t arm_dice_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Hamming distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_hamming_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Jaccard distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_jaccard_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Kulsinski distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_kulsinski_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Roger Stanimoto distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_rogerstanimoto_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Russell-Rao distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_russellrao_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Sokal-Michener distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_sokalmichener_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Sokal-Sneath distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_sokalsneath_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + +/** + * @brief Yule distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_yule_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools); + /** * @ingroup groupInterpolation diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 584ff723..635d99a4 100755 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -29,6 +29,7 @@ option(SUPPORT "Support Functions" ON) option(TRANSFORM "Transform Functions" ON) option(SVM "Support Vector Machine Functions" ON) option(BAYES "Bayesian Estimators" ON) +option(DISTANCE "Distance Functions" ON) # When OFF it is the default behavior : all tables are included. option(CONFIGTABLE "Configuration of table allowed" OFF) @@ -209,7 +210,7 @@ if (TRANSFORM) target_link_libraries(CMSISDSP INTERFACE CMSISDSPTransform) endif() -if (FILTERING OR CONTROLLER OR FASTMATH OR TRANSFORM) +if (FILTERING OR CONTROLLER OR FASTMATH OR TRANSFORM OR SVM OR DISTANCE) add_subdirectory(CommonTables) if (TRANSFORM) # FFT tables inclusion is allowed @@ -236,6 +237,11 @@ if (BAYES) target_link_libraries(CMSISDSP INTERFACE CMSISDSPBayes) endif() +if (DISTANCE) + add_subdirectory(DistanceFunctions) + target_link_libraries(CMSISDSP INTERFACE CMSISDSPDistance) +endif() + ### Includes target_include_directories(CMSISDSP INTERFACE "${DSP}/Include") diff --git a/Source/CommonTables/CMakeLists.txt b/Source/CommonTables/CMakeLists.txt index c8a9912b..e11ca6e4 100644 --- a/Source/CommonTables/CMakeLists.txt +++ b/Source/CommonTables/CMakeLists.txt @@ -30,5 +30,8 @@ target_sources(CMSISDSPCommon PRIVATE arm_const_structs.c) ### Includes target_include_directories(CMSISDSPCommon PUBLIC "${DSP}/Include") +if (NEON OR NEONEXPERIMENTAL) + target_sources(CMSISDSPCommon PRIVATE "${DSP}/ComputeLibrary/Source/arm_cl_tables.c") +endif() diff --git a/Source/DistanceFunctions/CMakeLists.txt b/Source/DistanceFunctions/CMakeLists.txt new file mode 100755 index 00000000..3d54c1ab --- /dev/null +++ b/Source/DistanceFunctions/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required (VERSION 3.6) + +project(CMSISDSPDistance) + +include(config) +include(configDsp) + +file(GLOB SRC "./*_*.c") + +add_library(CMSISDSPDistance STATIC ${SRC}) + +configLib(CMSISDSPDistance ${ROOT}) +configDsp(CMSISDSPDistance ${ROOT}) + +### Includes +target_include_directories(CMSISDSPDistance PUBLIC "${DSP}/Include") +target_include_directories(CMSISDSPDistance PRIVATE ".") + + + diff --git a/Source/DistanceFunctions/arm_boolean_distance.c b/Source/DistanceFunctions/arm_boolean_distance.c new file mode 100755 index 00000000..56d4be86 --- /dev/null +++ b/Source/DistanceFunctions/arm_boolean_distance.c @@ -0,0 +1,106 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_svm_linear_init_f32.c + * Description: SVM Linear Instance Initialization + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Elements of boolean distances + * + * Different values which are used to compute boolean distances + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @param[out] cTT cTT value + * @param[out] cTF cTF value + * @param[out] cFT cFT value + * @return None + * + */ + + + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +#endif + + +#define TT +#define TF +#define FT +#define EXT _TT_TF_FT +#include "arm_boolean_distance_template.h" + +#undef TT +#undef FF +#undef TF +#undef FT +#undef EXT +#define TF +#define FT +#define EXT _TF_FT +#include "arm_boolean_distance_template.h" + +#undef TT +#undef FF +#undef TF +#undef FT +#undef EXT +#define TT +#define FF +#define TF +#define FT +#define EXT _TT_FF_TF_FT +#include "arm_boolean_distance_template.h" + +#undef TT +#undef FF +#undef TF +#undef FT +#undef EXT +#define TT +#define EXT _TT +#include "arm_boolean_distance_template.h" + + + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_boolean_distance_template.h b/Source/DistanceFunctions/arm_boolean_distance_template.h new file mode 100755 index 00000000..cac9e3de --- /dev/null +++ b/Source/DistanceFunctions/arm_boolean_distance_template.h @@ -0,0 +1,396 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_boolean_distance.c + * Description: Templates for boolean distances + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + + + +/** + * @defgroup DISTANCEF Distance Functions + * + * Computes Distances between vectors. + * + * Distance functions are useful in a lot of algorithms. + * + */ + + +/** + * @addtogroup DISTANCEF + * @{ + */ + + +/** + * @brief Elements of boolean distances + * + * Different values which are used to compute boolean distances + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @param[out] cTT cTT value + * @param[out] cTF cTF value + * @param[out] cFT cFT value + * @return None + * + */ + +#define _FUNC(A,B) A##B + +#define FUNC(EXT) _FUNC(arm_boolean_distance, EXT) + +#if defined(ARM_MATH_NEON) + + +void FUNC(EXT)(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools +#ifdef TT + , uint32_t *cTT +#endif +#ifdef FF + , uint32_t *cFF +#endif +#ifdef TF + , uint32_t *cTF +#endif +#ifdef FT + , uint32_t *cFT +#endif + ) +{ +#ifdef TT + uint32_t _ctt=0; +#endif +#ifdef FF + uint32_t _cff=0; +#endif +#ifdef TF + uint32_t _ctf=0; +#endif +#ifdef FT + uint32_t _cft=0; +#endif + uint32_t nbBoolBlock; + uint32_t a,b,ba,bb,cc=1; + int shift; + uint32x4_t aV, bV; +#ifdef TT + uint32x4_t cttV; +#endif +#ifdef FF + uint32x4_t cffV; +#endif +#ifdef TF + uint32x4_t ctfV; +#endif +#ifdef FT + uint32x4_t cftV; +#endif + uint8x16_t tmp; + uint16x8_t tmp2; + uint32x4_t tmp3; + uint64x2_t tmp4; +#ifdef TT + uint64x2_t tmp4tt; +#endif +#ifdef FF + uint64x2_t tmp4ff; +#endif +#ifdef TF + uint64x2_t tmp4tf; +#endif +#ifdef FT + uint64x2_t tmp4ft; +#endif + +#ifdef TT + tmp4tt = vdupq_n_u64(0); +#endif +#ifdef FF + tmp4ff = vdupq_n_u64(0); +#endif +#ifdef TF + tmp4tf = vdupq_n_u64(0); +#endif +#ifdef FT + tmp4ft = vdupq_n_u64(0); +#endif + + nbBoolBlock = numberOfBools >> 7; + while(nbBoolBlock > 0) + { + aV = vld1q_u32(pA); + bV = vld1q_u32(pB); + pA += 4; + pB += 4; + +#ifdef TT + cttV = vandq_u32(aV,bV); +#endif +#ifdef FF + cffV = vandq_u32(vmvnq_u32(aV),vmvnq_u32(bV)); +#endif +#ifdef TF + ctfV = vandq_u32(aV,vmvnq_u32(bV)); +#endif +#ifdef FT + cftV = vandq_u32(vmvnq_u32(aV),bV); +#endif + +#ifdef TT + tmp = vcntq_u8(vreinterpretq_u8_u32(cttV)); + tmp2 = vpaddlq_u8(tmp); + tmp3 = vpaddlq_u16(tmp2); + tmp4 = vpaddlq_u32(tmp3); + tmp4tt = vaddq_u64(tmp4tt, tmp4); +#endif + +#ifdef FF + tmp = vcntq_u8(vreinterpretq_u8_u32(cffV)); + tmp2 = vpaddlq_u8(tmp); + tmp3 = vpaddlq_u16(tmp2); + tmp4 = vpaddlq_u32(tmp3); + tmp4ff = vaddq_u64(tmp4ff, tmp4); +#endif + +#ifdef TF + tmp = vcntq_u8(vreinterpretq_u8_u32(ctfV)); + tmp2 = vpaddlq_u8(tmp); + tmp3 = vpaddlq_u16(tmp2); + tmp4 = vpaddlq_u32(tmp3); + tmp4tf = vaddq_u64(tmp4tf, tmp4); +#endif + +#ifdef FT + tmp = vcntq_u8(vreinterpretq_u8_u32(cftV)); + tmp2 = vpaddlq_u8(tmp); + tmp3 = vpaddlq_u16(tmp2); + tmp4 = vpaddlq_u32(tmp3); + tmp4ft = vaddq_u64(tmp4ft, tmp4); +#endif + + + nbBoolBlock --; + } + +#ifdef TT + _ctt += tmp4tt[0] + tmp4tt[1]; +#endif +#ifdef FF + _cff += tmp4ff[0] + tmp4ff[1]; +#endif +#ifdef TF + _ctf += tmp4tf[0] + tmp4tf[1]; +#endif +#ifdef FT + _cft += tmp4ft[0] + tmp4ft[1]; +#endif + + nbBoolBlock = numberOfBools & 0x7F; + while(nbBoolBlock >= 32) + { + a = *pA++; + b = *pB++; + shift = 0; + while(shift < 32) + { + ba = a & 1; + bb = b & 1; + a = a >> 1; + b = b >> 1; + +#ifdef TT + _ctt += (ba && bb); +#endif +#ifdef FF + _cff += ((1 ^ ba) && (1 ^ bb)); +#endif +#ifdef TF + _ctf += (ba && (1 ^ bb)); +#endif +#ifdef FT + _cft += ((1 ^ ba) && bb); +#endif + shift ++; + } + + nbBoolBlock -= 32; + } + + a = *pA++; + b = *pB++; + + a = a >> (32 - nbBoolBlock); + b = b >> (32 - nbBoolBlock); + + while(nbBoolBlock > 0) + { + ba = a & 1; + bb = b & 1; + a = a >> 1; + + b = b >> 1; +#ifdef TT + _ctt += (ba && bb); +#endif +#ifdef FF + _cff += ((1 ^ ba) && (1 ^ bb)); +#endif +#ifdef TF + _ctf += (ba && (1 ^ bb)); +#endif +#ifdef FT + _cft += ((1 ^ ba) && bb); +#endif + nbBoolBlock --; + } + +#ifdef TT + *cTT = _ctt; +#endif +#ifdef FF + *cFF = _cff; +#endif +#ifdef TF + *cTF = _ctf; +#endif +#ifdef FT + *cFT = _cft; +#endif +} + +#else + +void FUNC(EXT)(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools +#ifdef TT + , uint32_t *cTT +#endif +#ifdef FF + , uint32_t *cFF +#endif +#ifdef TF + , uint32_t *cTF +#endif +#ifdef FT + , uint32_t *cFT +#endif + ) +{ +#ifdef TT + uint32_t _ctt=0; +#endif +#ifdef FF + uint32_t _cff=0; +#endif +#ifdef TF + uint32_t _ctf=0; +#endif +#ifdef FT + uint32_t _cft=0; +#endif + uint32_t a,b,ba,bb,cc=1; + int shift; + + while(numberOfBools >= 32) + { + a = *pA++; + b = *pB++; + shift = 0; + while(shift < 32) + { + ba = a & 1; + bb = b & 1; + a = a >> 1; + b = b >> 1; +#ifdef TT + _ctt += (ba && bb); +#endif +#ifdef FF + _cff += ((1 ^ ba) && (1 ^ bb)); +#endif +#ifdef TF + _ctf += (ba && (1 ^ bb)); +#endif +#ifdef FT + _cft += ((1 ^ ba) && bb); +#endif + shift ++; + } + + numberOfBools -= 32; + } + + a = *pA++; + b = *pB++; + + a = a >> (32 - numberOfBools); + b = b >> (32 - numberOfBools); + + while(numberOfBools > 0) + { + ba = a & 1; + bb = b & 1; + a = a >> 1; + b = b >> 1; + +#ifdef TT + _ctt += (ba && bb); +#endif +#ifdef FF + _cff += ((1 ^ ba) && (1 ^ bb)); +#endif +#ifdef TF + _ctf += (ba && (1 ^ bb)); +#endif +#ifdef FT + _cft += ((1 ^ ba) && bb); +#endif + numberOfBools --; + } + +#ifdef TT + *cTT = _ctt; +#endif +#ifdef FF + *cFF = _cff; +#endif +#ifdef TF + *cTF = _ctf; +#endif +#ifdef FT + *cFT = _cft; +#endif +} +#endif + + +/** + * @} end of DISTANCEF group + */ diff --git a/Source/DistanceFunctions/arm_braycurtis_distance_f32.c b/Source/DistanceFunctions/arm_braycurtis_distance_f32.c new file mode 100755 index 00000000..095c55b1 --- /dev/null +++ b/Source/DistanceFunctions/arm_braycurtis_distance_f32.c @@ -0,0 +1,129 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_braycurtis_distance_f32.c + * Description: Bray-Curtis distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Bray-Curtis distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_braycurtis_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accumDiff=0.0, accumSum=0.0, tmp; + uint32_t i,blkCnt; + float32x4_t a,b,c,accumDiffV, accumSumV; + float32x2_t accumV2; + + accumDiffV = vdupq_n_f32(0.0); + accumSumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + a = vld1q_f32(pA); + b = vld1q_f32(pB); + + c = vabdq_f32(a,b); + accumDiffV = vaddq_f32(accumDiffV,c); + + c = vaddq_f32(a,b); + c = vabsq_f32(c); + accumSumV = vaddq_f32(accumSumV,c); + + pA += 4; + pB += 4; + blkCnt --; + } + accumV2 = vpadd_f32(vget_low_f32(accumDiffV),vget_high_f32(accumDiffV)); + accumDiff = accumV2[0] + accumV2[1]; + + accumV2 = vpadd_f32(vget_low_f32(accumSumV),vget_high_f32(accumSumV)); + accumSum = accumV2[0] + accumV2[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + accumDiff += fabs(*pA - *pB); + accumSum += fabs(*pA++ + *pB++); + blkCnt --; + } + /* + + It is assumed that accumSum is not zero. Since it is the sum of several absolute + values it would imply that all of them are zero. It is very unlikely for long vectors. + + */ + return(accumDiff / accumSum); +} + +#else +float32_t arm_braycurtis_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accumDiff=0.0, accumSum=0.0, tmpA, tmpB; + uint32_t i; + + while(blockSize > 0) + { + tmpA = *pA++; + tmpB = *pB++; + accumDiff += fabs(tmpA - tmpB); + accumSum += fabs(tmpA + tmpB); + blockSize --; + } + /* + + It is assumed that accumSum is not zero. Since it is the sum of several absolute + values it would imply that all of them are zero. It is very unlikely for long vectors. + + */ + return(accumDiff / accumSum); +} +#endif + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_canberra_distance_f32.c b/Source/DistanceFunctions/arm_canberra_distance_f32.c new file mode 100755 index 00000000..71313322 --- /dev/null +++ b/Source/DistanceFunctions/arm_canberra_distance_f32.c @@ -0,0 +1,144 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_canberra_distance_f32.c + * Description: Canberra distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Canberra distance between two vectors + * + * This function may divide by zero when samples pA[i] and pB[i] are both zero. + * The result of the computation will be correct. So the division per zero may be + * ignored. + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_canberra_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accum=0.0, tmpA, tmpB,diff,sum; + uint32_t i,blkCnt; + float32x4_t a,b,c,d,accumV; + float32x2_t accumV2; + int32x4_t isZeroV; + float32x4_t zeroV = vdupq_n_f32(0.0); + + accumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + a = vld1q_f32(pA); + b = vld1q_f32(pB); + + c = vabdq_f32(a,b); + + a = vabsq_f32(a); + b = vabsq_f32(b); + a = vaddq_f32(a,b); + isZeroV = vceqq_f32(a,zeroV); + + /* + * May divide by zero when a and b have both the same lane at zero. + */ + a = vinvq_f32(a); + + /* + * Force result of a division by 0 to 0. It the behavior of the + * sklearn canberra function. + */ + a = vbicq_s32(a,isZeroV); + c = vmulq_f32(c,a); + accumV = vaddq_f32(accumV,c); + + pA += 4; + pB += 4; + blkCnt --; + } + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accum = accumV2[0] + accumV2[1]; + + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + tmpA = *pA++; + tmpB = *pB++; + + diff = fabs(tmpA - tmpB); + sum = fabs(tmpA) + fabs(tmpB); + if ((tmpA != 0.0) || (tmpB != 0.0)) + { + accum += (diff / sum); + } + blkCnt --; + } + return(accum); +} + +#else +float32_t arm_canberra_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accum=0.0, tmpA, tmpB,diff,sum; + + while(blockSize > 0) + { + tmpA = *pA++; + tmpB = *pB++; + + diff = fabs(tmpA - tmpB); + sum = fabs(tmpA) + fabs(tmpB); + if ((tmpA != 0.0) || (tmpB != 0.0)) + { + accum += (diff / sum); + } + blockSize --; + } + return(accum); +} +#endif + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_chebyshev_distance_f32.c b/Source/DistanceFunctions/arm_chebyshev_distance_f32.c new file mode 100755 index 00000000..0fdcda44 --- /dev/null +++ b/Source/DistanceFunctions/arm_chebyshev_distance_f32.c @@ -0,0 +1,159 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_chebyshev_distance_f32.c + * Description: Chebyshev distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Chebyshev distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_chebyshev_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t diff=0.0, maxVal=0.0, tmpA, tmpB; + uint32_t i,blkCnt; + float32x4_t a,b,diffV, maxValV; + float32x2_t maxValV2; + + if (blockSize <= 3) + { + tmpA = *pA++; + tmpB = *pB++; + diff = fabs(tmpA - tmpB); + maxVal = diff; + blockSize--; + + while(blockSize > 0) + { + tmpA = *pA++; + tmpB = *pB++; + diff = fabs(tmpA - tmpB); + if (diff > maxVal) + { + maxVal = diff; + } + blockSize --; + } + } + else + { + + a = vld1q_f32(pA); + b = vld1q_f32(pB); + pA += 4; + pB += 4; + + diffV = vabdq_f32(a,b); + + blockSize -= 4; + + maxValV = diffV; + + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + a = vld1q_f32(pA); + b = vld1q_f32(pB); + + diffV = vabdq_f32(a,b); + maxValV = vmaxq_f32(maxValV, diffV); + + pA += 4; + pB += 4; + blkCnt --; + } + maxValV2 = vpmax_f32(vget_low_f32(maxValV),vget_high_f32(maxValV)); + maxValV2 = vpmax_f32(maxValV2,maxValV2); + maxVal = maxValV2[0]; + + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + tmpA = *pA++; + tmpB = *pB++; + diff = fabs(tmpA - tmpB); + if (diff > maxVal) + { + maxVal = diff; + } + blkCnt --; + } + } + return(maxVal); +} + +#else +float32_t arm_chebyshev_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t diff=0.0, maxVal,tmpA, tmpB; + uint32_t i; + + tmpA = *pA++; + tmpB = *pB++; + diff = fabs(tmpA - tmpB); + maxVal = diff; + blockSize--; + + while(blockSize > 0) + { + tmpA = *pA++; + tmpB = *pB++; + diff = fabs(tmpA - tmpB); + if (diff > maxVal) + { + maxVal = diff; + } + blockSize --; + } + + return(maxVal); +} +#endif + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_cityblock_distance_f32.c b/Source/DistanceFunctions/arm_cityblock_distance_f32.c new file mode 100755 index 00000000..2315f5b8 --- /dev/null +++ b/Source/DistanceFunctions/arm_cityblock_distance_f32.c @@ -0,0 +1,113 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_cityblock_distance_f32.c + * Description: Cityblock (Manhattan) distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Cityblock (Manhattan) distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_cityblock_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t diff=0.0, accum=0.0, tmpA, tmpB; + uint32_t i,blkCnt; + float32x4_t a,b,accumV, tempV; + float32x2_t accumV2; + + accumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + a = vld1q_f32(pA); + b = vld1q_f32(pB); + + tempV = vabdq_f32(a,b); + accumV = vaddq_f32(accumV, tempV); + + pA += 4; + pB += 4; + blkCnt --; + } + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accumV2 = vpadd_f32(accumV2,accumV2); + accum = accumV2[0]; + + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + tmpA = *pA++; + tmpB = *pB++; + accum += fabs(tmpA - tmpB); + + blkCnt --; + } + return(accum); +} + +#else +float32_t arm_cityblock_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t diff=0.0, accum,tmpA, tmpB; + uint32_t i; + + accum = 0.0; + while(blockSize > 0) + { + tmpA = *pA++; + tmpB = *pB++; + accum += fabs(tmpA - tmpB); + + blockSize --; + } + + return(accum); +} +#endif + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_correlation_distance_f32.c b/Source/DistanceFunctions/arm_correlation_distance_f32.c new file mode 100755 index 00000000..8088a7c5 --- /dev/null +++ b/Source/DistanceFunctions/arm_correlation_distance_f32.c @@ -0,0 +1,83 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_correlation_distance_f32.c + * Description: Correlation distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Correlation distance between two vectors + * + * The input vectors are modified in place ! + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +float32_t arm_correlation_distance_f32(float32_t *pA,float32_t *pB, uint32_t blockSize) +{ + float32_t ma,mb,pwra,pwrb,dot,tmp; + uint32_t i; + + arm_mean_f32(pA, blockSize, &ma); + arm_mean_f32(pB, blockSize, &mb); + + arm_offset_f32(pA, -ma, pA, blockSize); + arm_offset_f32(pB, -mb, pB, blockSize); + + arm_power_f32(pA, blockSize, &pwra); + arm_power_f32(pB, blockSize, &pwrb); + + arm_dot_prod_f32(pA,pB,blockSize,&dot); + + dot = dot / blockSize; + pwra = pwra / blockSize; + pwrb = pwrb / blockSize; + + arm_sqrt_f32(pwra * pwrb,&tmp); + + return(1.0 - dot / tmp); + + +} + + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_cosine_distance_f32.c b/Source/DistanceFunctions/arm_cosine_distance_f32.c new file mode 100755 index 00000000..aec4b0e0 --- /dev/null +++ b/Source/DistanceFunctions/arm_cosine_distance_f32.c @@ -0,0 +1,68 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_cosine_distance_f32.c + * Description: Cosine distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Cosine distance between two vectors + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +float32_t arm_cosine_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t pwra,pwrb,dot,tmp; + uint32_t i; + + arm_power_f32(pA, blockSize, &pwra); + arm_power_f32(pB, blockSize, &pwrb); + + arm_dot_prod_f32(pA,pB,blockSize,&dot); + + arm_sqrt_f32(pwra * pwrb, &tmp); + return(1.0 - dot / tmp); + +} + + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_dice_distance.c b/Source/DistanceFunctions/arm_dice_distance.c new file mode 100755 index 00000000..1379c95b --- /dev/null +++ b/Source/DistanceFunctions/arm_dice_distance.c @@ -0,0 +1,69 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_dice_distance.c + * Description: Dice distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Dice distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ +extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cTF + , uint32_t *cFT + ); + +float32_t arm_dice_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,ctf=0,cft=0; + + arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); + + return(1.0*(ctf + cft) / (2.0*ctt + cft + ctf)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_euclidean_distance_f32.c b/Source/DistanceFunctions/arm_euclidean_distance_f32.c new file mode 100755 index 00000000..ebb1c727 --- /dev/null +++ b/Source/DistanceFunctions/arm_euclidean_distance_f32.c @@ -0,0 +1,107 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_euclidean_distance_f32.c + * Description: Euclidean distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Euclidean distance between two vectors + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_euclidean_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accum=0.0,tmp; + uint32_t i,blkCnt; + float32x4_t a,b,accumV; + float32x2_t accumV2; + + accumV = vdupq_n_f32(0.0); + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + a = vld1q_f32(pA); + b = vld1q_f32(pB); + + a = vsubq_f32(a,b); + accumV = vmlaq_f32(accumV,a,a); + pA += 4; + pB += 4; + blkCnt --; + } + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accum = accumV2[0] + accumV2[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + tmp = *pA++ - *pB++; + accum += SQ(tmp); + blkCnt --; + } + arm_sqrt_f32(accum,&tmp); + return(tmp); +} + +#else +float32_t arm_euclidean_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accum=0.0,tmp; + uint32_t i; + + while(blockSize > 0) + { + tmp = *pA++ - *pB++; + accum += SQ(tmp); + blockSize --; + } + arm_sqrt_f32(accum,&tmp); + return(tmp); +} +#endif + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_hamming_distance.c b/Source/DistanceFunctions/arm_hamming_distance.c new file mode 100755 index 00000000..bb480826 --- /dev/null +++ b/Source/DistanceFunctions/arm_hamming_distance.c @@ -0,0 +1,68 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_hamming_distance.c + * Description: Hamming distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +extern void arm_boolean_distance_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTF + , uint32_t *cFT + ); + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Hamming distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_hamming_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctf=0,cft=0; + + arm_boolean_distance_TF_FT(pA, pB, numberOfBools, &ctf, &cft); + + return(1.0*(ctf + cft) / numberOfBools); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_jaccard_distance.c b/Source/DistanceFunctions/arm_jaccard_distance.c new file mode 100755 index 00000000..f9e7ac3d --- /dev/null +++ b/Source/DistanceFunctions/arm_jaccard_distance.c @@ -0,0 +1,71 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_jaccard_distance.c + * Description: Jaccard distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cTF + , uint32_t *cFT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Jaccard distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_jaccard_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,ctf=0,cft=0; + + arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); + + return(1.0*(ctf + cft) / (ctt + cft + ctf)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c b/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c new file mode 100755 index 00000000..6e808067 --- /dev/null +++ b/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c @@ -0,0 +1,155 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_jensenshannon_distance_f32.c + * Description: Jensen-Shannon distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Jensen-Shannon distance between two vectors + * + * This function is assuming that elements of second vector are > 0 + * and 0 only when the corresponding element of first vector is 0. + * Otherwise the result of the computation does not make sense + * and for speed reasons, the cases returning NaN or Infinity are not + * managed. + * + * When the function is computing x log (x / y) with x == 0 and y == 0, + * it will compute the right result (0) but a division by zero will occur + * and should be ignored in client code. + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] blockSize vector length + * @return distance + * + */ + +static inline double rel_entr(double x, double y) +{ + return (x * log(x / y)); +} + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_jensenshannon_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t accum, result, tmp,a,b; + uint32_t i, blkCnt; + float32x4_t aV,bV,t, tmpV, accumV; + float32x2_t accumV2; + + accum = 0.0; + accumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + aV = vld1q_f32(pA); + bV = vld1q_f32(pB); + t = vaddq_f32(aV,bV); + t = vmulq_n_f32(t, 0.5); + + tmpV = vmulq_f32(aV, vinvq_f32(t)); + tmpV = vlogq_f32(tmpV); + accumV = vmlaq_f32(accumV, aV, tmpV); + + + tmpV = vmulq_f32(bV, vinvq_f32(t)); + tmpV = vlogq_f32(tmpV); + accumV = vmlaq_f32(accumV, bV, tmpV); + + pA += 4; + pB += 4; + + + blkCnt --; + } + + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accum = accumV2[0] + accumV2[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + a = *pA; + b = *pB; + tmp = (a + b) / 2.0; + accum += rel_entr(a, tmp); + accum += rel_entr(b, tmp); + + pA++; + pB++; + + blkCnt --; + } + + + arm_sqrt_f32(accum/2.0, &result); + return(result); + +} + +#else + + +float32_t arm_jensenshannon_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) +{ + float32_t left, right,sum, result, tmp; + uint32_t i; + + left = 0.0; + right = 0.0; + for(i=0; i < blockSize; i++) + { + tmp = (pA[i] + pB[i]) / 2.0; + left += rel_entr(pA[i], tmp); + right += rel_entr(pB[i], tmp); + } + + + sum = left + right; + arm_sqrt_f32(sum/2.0, &result); + return(result); + +} + +#endif + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_kulsinski_distance.c b/Source/DistanceFunctions/arm_kulsinski_distance.c new file mode 100755 index 00000000..4b909bdf --- /dev/null +++ b/Source/DistanceFunctions/arm_kulsinski_distance.c @@ -0,0 +1,71 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_kulsinski_distance.c + * Description: Kulsinski distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cTF + , uint32_t *cFT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Kulsinski distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_kulsinski_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,ctf=0,cft=0; + + arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); + + return(1.0*(ctf + cft - ctt + numberOfBools) / (cft + ctf + numberOfBools)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_minkowski_distance_f32.c b/Source/DistanceFunctions/arm_minkowski_distance_f32.c new file mode 100755 index 00000000..dfe5b34c --- /dev/null +++ b/Source/DistanceFunctions/arm_minkowski_distance_f32.c @@ -0,0 +1,120 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_minkowski_distance_f32.c + * Description: Minkowski distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Minkowski distance between two vectors + * + * @param[in] pA First vector + * @param[in] pB Second vector + * @param[in] n Norm order (>= 2) + * @param[in] blockSize vector length + * @return distance + * + */ +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_minkowski_distance_f32(const float32_t *pA,const float32_t *pB, int order, uint32_t blockSize) +{ + float32_t sum,diff; + uint32_t i, blkCnt; + float32x4_t sumV,aV,bV, tmpV, n; + float32x2_t sumV2; + + sum = 0.0; + sumV = vdupq_n_f32(0.0); + n = vdupq_n_f32(order); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + aV = vld1q_f32(pA); + bV = vld1q_f32(pB); + pA += 4; + pB += 4; + + tmpV = vabdq_f32(aV,bV); + tmpV = vpowq_f32(tmpV,n); + sumV = vaddq_f32(sumV, tmpV); + + + blkCnt --; + } + + sumV2 = vpadd_f32(vget_low_f32(sumV),vget_high_f32(sumV)); + sum = sumV2[0] + sumV2[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + sum += pow(fabs(*pA++ - *pB++),order); + + blkCnt --; + } + + + return(pow(sum,(1.0/order))); + +} + +#else + + +float32_t arm_minkowski_distance_f32(const float32_t *pA,const float32_t *pB, int order, uint32_t blockSize) +{ + float32_t sum,diff; + uint32_t i; + + sum = 0.0; + for(i=0; i < blockSize; i++) + { + sum += pow(fabs(pA[i] - pB[i]),order); + } + + + return(pow(sum,(1.0/order))); + +} +#endif + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_rogerstanimoto_distance.c b/Source/DistanceFunctions/arm_rogerstanimoto_distance.c new file mode 100755 index 00000000..1f0c0f6c --- /dev/null +++ b/Source/DistanceFunctions/arm_rogerstanimoto_distance.c @@ -0,0 +1,74 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_rogerstanimoto_distance.c + * Description: Roger Stanimoto distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +extern void arm_boolean_distance_TT_FF_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cFF + , uint32_t *cTF + , uint32_t *cFT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Roger Stanimoto distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_rogerstanimoto_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,cff=0,ctf=0,cft=0,r; + + arm_boolean_distance_TT_FF_TF_FT(pA, pB, numberOfBools, &ctt,&cff, &ctf, &cft); + + r = 2*(ctf + cft); + + return(1.0*r / (r + ctt + cff)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_russellrao_distance.c b/Source/DistanceFunctions/arm_russellrao_distance.c new file mode 100755 index 00000000..9f7d8555 --- /dev/null +++ b/Source/DistanceFunctions/arm_russellrao_distance.c @@ -0,0 +1,71 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_russellrao_distance.c + * Description: Russell-Rao distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + + +extern void arm_boolean_distance_TT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Russell-Rao distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_russellrao_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0; + + + arm_boolean_distance_TT(pA, pB, numberOfBools, &ctt); + + + return(1.0*(numberOfBools - ctt) / ((float32_t)numberOfBools)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_sokalmichener_distance.c b/Source/DistanceFunctions/arm_sokalmichener_distance.c new file mode 100755 index 00000000..1c4776ac --- /dev/null +++ b/Source/DistanceFunctions/arm_sokalmichener_distance.c @@ -0,0 +1,75 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_sokalmichener_distance.c + * Description: Sokal-Michener distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +extern void arm_boolean_distance_TT_FF_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cFF + , uint32_t *cTF + , uint32_t *cFT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Sokal-Michener distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_sokalmichener_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,cff=0,cft=0,ctf=0; + float32_t r,s; + + arm_boolean_distance_TT_FF_TF_FT(pA, pB, numberOfBools, &ctt, &cff, &ctf, &cft); + + r = 2.0*(ctf + cft); + s = 1.0*(cff + ctt); + + return(r / (s+r)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_sokalsneath_distance.c b/Source/DistanceFunctions/arm_sokalsneath_distance.c new file mode 100755 index 00000000..ca11094f --- /dev/null +++ b/Source/DistanceFunctions/arm_sokalsneath_distance.c @@ -0,0 +1,73 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_sokalsneath_distance.c + * Description: Sokal-Sneath distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cTF + , uint32_t *cFT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Sokal-Sneath distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_sokalsneath_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,cft=0,ctf=0; + float32_t r; + + arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); + + r = 2.0*(ctf + cft); + + return(r / (r + ctt)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/DistanceFunctions/arm_yule_distance.c b/Source/DistanceFunctions/arm_yule_distance.c new file mode 100755 index 00000000..69cc85e4 --- /dev/null +++ b/Source/DistanceFunctions/arm_yule_distance.c @@ -0,0 +1,73 @@ + +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_yule_distance.c + * Description: Yule distance between two vectors + * + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + + +extern void arm_boolean_distance_TT_FF_TF_FT(const uint32_t *pA + , const uint32_t *pB + , uint32_t numberOfBools + , uint32_t *cTT + , uint32_t *cFF + , uint32_t *cTF + , uint32_t *cFT + ); + + +/** + * @addtogroup groupDistance + * @{ + */ + + +/** + * @brief Yule distance between two vectors + * + * @param[in] pA First vector of packed booleans + * @param[in] pB Second vector of packed booleans + * @param[in] numberOfBools Number of booleans + * @return distance + * + */ + +float32_t arm_yule_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) +{ + uint32_t ctt=0,cff=0,ctf=0,cft=0,r; + + arm_boolean_distance_TT_FF_TF_FT(pA, pB, numberOfBools, &ctt,&cff, &ctf, &cft); + + r = 2*(ctf * cft); + + return(1.0*r / (r/2.0 + ctt * cff)); +} + + +/** + * @} end of groupDistance group + */ diff --git a/Source/SVMFunctions/CMakeLists.txt b/Source/SVMFunctions/CMakeLists.txt index a82703d8..5d779dce 100755 --- a/Source/SVMFunctions/CMakeLists.txt +++ b/Source/SVMFunctions/CMakeLists.txt @@ -16,7 +16,5 @@ configDsp(CMSISDSPSVM ${ROOT}) target_include_directories(CMSISDSPSVM PUBLIC "${DSP}/Include") -if (NEON OR NEONEXPERIMENTAL) - target_sources(CMSISDSPSVM PRIVATE "${DSP}/ComputeLibrary/Source/arm_cl_tables.c") -endif() + diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 28a728f9..61bae322 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -87,6 +87,8 @@ set(TESTSRC testmain.cpp Source/BayesF32.cpp Source/StatsTestsF32.cpp Source/SupportTestsF32.cpp + Source/DistanceTestsF32.cpp + Source/DistanceTestsU32.cpp Source/FullyConnected.cpp Source/FullyConnectedBench.cpp GeneratedSource/TestDesc.cpp diff --git a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsF32/fullBenchmark.csv b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsF32/fullBenchmark.csv index f7a682cf..78e98ce6 100644 --- a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsF32/fullBenchmark.csv +++ b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsF32/fullBenchmark.csv @@ -1,41 +1,41 @@ CATEGORY,NAME,ID,OLDID,NB,CYCLES,OPTIMIZED,HARDFP,FASTMATH,NEON,UNROLL,ROUNDING,PLATFORM,CORE,COMPILER,VERSION -"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",64,2528,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",256,2518,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",16,2510,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",256,2554,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",16,2457,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",256,2499,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",256,2518,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",128,2518,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",64,2510,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",256,2538,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",16,237,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",32,261,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",64,309,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",128,405,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_mult_f32",1,"0",256,597,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",16,237,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",32,261,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",64,309,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",128,405,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_add_f32",2,"5",256,597,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",16,237,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",32,261,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",64,309,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",128,405,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_sub_f32",3,"10",256,597,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",16,232,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",32,252,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",64,292,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",128,372,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_abs_f32",4,"15",256,532,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",16,187,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",32,197,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",64,217,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",128,257,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_negate_f32",5,"20",256,337,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",16,248,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",32,258,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",64,278,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",128,318,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_offset_f32",6,"25",256,398,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",16,248,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",32,258,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",64,278,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",128,318,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_scale_f32",7,"30",256,398,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",16,196,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",32,220,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",64,268,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",128,364,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsF32","vec_dot_f32",8,"38",256,556,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 diff --git a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ15/fullBenchmark.csv b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ15/fullBenchmark.csv index 632587e7..c88b11f0 100755 --- a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ15/fullBenchmark.csv +++ b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ15/fullBenchmark.csv @@ -1,41 +1,41 @@ CATEGORY,NAME,ID,OLDID,NB,CYCLES,OPTIMIZED,HARDFP,FASTMATH,NEON,UNROLL,ROUNDING,PLATFORM,CORE,COMPILER,VERSION -"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",256,2518,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",256,2514,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",16,2503,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",256,2493,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",16,315,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",32,415,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",64,615,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",128,1015,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_mult_q15",1,"3",256,1815,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",16,267,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",32,319,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",64,423,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",128,631,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_add_q15",2,"8",256,1047,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",16,267,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",32,319,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",64,423,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",128,631,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_sub_q15",3,"13",256,1047,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",16,315,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",32,415,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",64,615,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",128,1015,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_abs_q15",4,"18",256,1815,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",16,200,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",32,240,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",64,320,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",128,480,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_negate_q15",5,"23",256,800,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",16,255,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",32,295,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",64,375,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",128,535,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_offset_q15",6,"28",256,855,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",16,309,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",32,397,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",64,573,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",128,925,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_scale_q15",7,"33",256,1629,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",16,210,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",32,250,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",64,330,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",128,490,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ15","vec_dot_q15",8,"41",256,810,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 diff --git a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ31/fullBenchmark.csv b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ31/fullBenchmark.csv index 34db42d4..a791c2af 100644 --- a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ31/fullBenchmark.csv +++ b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ31/fullBenchmark.csv @@ -1,41 +1,41 @@ CATEGORY,NAME,ID,OLDID,NB,CYCLES,OPTIMIZED,HARDFP,FASTMATH,NEON,UNROLL,ROUNDING,PLATFORM,CORE,COMPILER,VERSION -"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",32,2494,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",256,2592,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",256,2537,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",256,2519,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",32,2520,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",256,2505,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",256,2518,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",128,2483,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",128,2548,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",256,2520,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",64,2639,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",128,2527,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",256,2573,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",16,330,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",32,446,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",64,678,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",128,1142,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_mult_q31",1,"2",256,2070,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",16,298,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",32,382,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",64,550,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",128,886,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_add_q31",2,"7",256,1558,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",16,298,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",32,382,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",64,550,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",128,886,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_sub_q31",3,"12",256,1558,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",16,305,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",32,401,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",64,585,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",128,953,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_abs_q31",4,"17",256,1692,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",16,224,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",32,288,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",64,416,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",128,672,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_negate_q31",5,"22",256,1184,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",16,279,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",32,343,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",64,471,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",128,727,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_offset_q31",6,"27",256,1239,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",16,458,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",32,652,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",64,1040,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",128,1816,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_scale_q31",7,"32",256,3368,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",16,216,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",32,240,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",64,288,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",128,384,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ31","vec_dot_q31",8,"40",256,576,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 diff --git a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ7/fullBenchmark.csv b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ7/fullBenchmark.csv index 7d5c9f18..5879909c 100755 --- a/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ7/fullBenchmark.csv +++ b/Testing/FullBenchmark/DSP/BasicMaths/BasicMathsQ7/fullBenchmark.csv @@ -1,41 +1,41 @@ CATEGORY,NAME,ID,OLDID,NB,CYCLES,OPTIMIZED,HARDFP,FASTMATH,NEON,UNROLL,ROUNDING,PLATFORM,CORE,COMPILER,VERSION -"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",64,2491,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",128,2556,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",256,2499,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",16,2498,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",64,2515,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",64,2508,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",128,2534,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",256,2522,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",16,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",32,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",64,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",128,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 -"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",256,0,1,1,1,0,1,0,FVP,ARMCM7_DP,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",16,335,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",32,455,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",64,695,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",128,1175,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_mult_q7",1,"4",256,2135,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",16,238,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",32,262,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",64,310,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",128,406,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_add_q7",2,"9",256,598,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",16,238,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",32,262,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",64,310,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",128,406,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_sub_q7",3,"14",256,598,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",16,313,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",32,405,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",64,603,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",128,1007,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_abs_q7",4,"19",256,1801,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",16,179,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",32,199,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",64,239,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",128,319,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_negate_q7",5,"24",256,479,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",16,240,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",32,260,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",64,300,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",128,380,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_offset_q7",6,"29",256,540,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",16,321,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",32,421,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",64,621,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",128,1021,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_scale_q7",7,"34",256,1821,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",16,208,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",32,248,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",64,328,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",128,488,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 +"DSP:BasicMaths:BasicMathsQ7","vec_dot_q7",8,"42",256,808,1,1,1,1,1,0,FVP,ARMCA5,AC6,6120001 diff --git a/Testing/GeneratedInclude/DistanceTestsF32_decl.h b/Testing/GeneratedInclude/DistanceTestsF32_decl.h new file mode 100755 index 00000000..eea0661f --- /dev/null +++ b/Testing/GeneratedInclude/DistanceTestsF32_decl.h @@ -0,0 +1,42 @@ +void test_braycurtis_distance_f32(); +void test_canberra_distance_f32(); +void test_chebyshev_distance_f32(); +void test_cityblock_distance_f32(); +void test_correlation_distance_f32(); +void test_cosine_distance_f32(); +void test_euclidean_distance_f32(); +void test_jensenshannon_distance_f32(); +void test_minkowski_distance_f32(); + +// Pattern IDs +static const int DIMS_S16_ID=0; +static const int DIMS_MINKOWSKI_S16_ID=1; +static const int INPUTA_F32_ID=2; +static const int INPUTB_F32_ID=3; +static const int INPUTA_JEN_F32_ID=4; +static const int INPUTB_JEN_F32_ID=5; +static const int REF1_F32_ID=6; +static const int REF2_F32_ID=7; +static const int REF3_F32_ID=8; +static const int REF4_F32_ID=9; +static const int REF5_F32_ID=10; +static const int REF6_F32_ID=11; +static const int REF7_F32_ID=12; +static const int REF8_F32_ID=13; +static const int REF9_F32_ID=14; + +// Output IDs +static const int OUT_F32_ID=0; +static const int TMPA_F32_ID=1; +static const int TMPB_F32_ID=2; + +// Test IDs +static const int TEST_BRAYCURTIS_DISTANCE_F32_1=1; +static const int TEST_CANBERRA_DISTANCE_F32_2=2; +static const int TEST_CHEBYSHEV_DISTANCE_F32_3=3; +static const int TEST_CITYBLOCK_DISTANCE_F32_4=4; +static const int TEST_CORRELATION_DISTANCE_F32_5=5; +static const int TEST_COSINE_DISTANCE_F32_6=6; +static const int TEST_EUCLIDEAN_DISTANCE_F32_7=7; +static const int TEST_JENSENSHANNON_DISTANCE_F32_8=8; +static const int TEST_MINKOWSKI_DISTANCE_F32_9=9; diff --git a/Testing/GeneratedInclude/DistanceTestsU32_decl.h b/Testing/GeneratedInclude/DistanceTestsU32_decl.h new file mode 100755 index 00000000..33f4db99 --- /dev/null +++ b/Testing/GeneratedInclude/DistanceTestsU32_decl.h @@ -0,0 +1,37 @@ +void test_dice_distance(); +void test_hamming_distance(); +void test_jaccard_distance(); +void test_kulsinski_distance(); +void test_rogerstanimoto_distance(); +void test_russellrao_distance(); +void test_sokalmichener_distance(); +void test_sokalsneath_distance(); +void test_yule_distance(); + +// Pattern IDs +static const int DIMS_S16_ID=0; +static const int INPUTA_U32_ID=1; +static const int INPUTB_U32_ID=2; +static const int REF1_F32_ID=3; +static const int REF2_F32_ID=4; +static const int REF3_F32_ID=5; +static const int REF4_F32_ID=6; +static const int REF5_F32_ID=7; +static const int REF6_F32_ID=8; +static const int REF7_F32_ID=9; +static const int REF8_F32_ID=10; +static const int REF9_F32_ID=11; + +// Output IDs +static const int OUT_F32_ID=0; + +// Test IDs +static const int TEST_DICE_DISTANCE_1=1; +static const int TEST_HAMMING_DISTANCE_2=2; +static const int TEST_JACCARD_DISTANCE_3=3; +static const int TEST_KULSINSKI_DISTANCE_4=4; +static const int TEST_ROGERSTANIMOTO_DISTANCE_5=5; +static const int TEST_RUSSELLRAO_DISTANCE_6=6; +static const int TEST_SOKALMICHENER_DISTANCE_7=7; +static const int TEST_SOKALSNEATH_DISTANCE_8=8; +static const int TEST_YULE_DISTANCE_9=9; diff --git a/Testing/GeneratedInclude/Patterns.h b/Testing/GeneratedInclude/Patterns.h index 1bdd06de..7b83440a 100644 --- a/Testing/GeneratedInclude/Patterns.h +++ b/Testing/GeneratedInclude/Patterns.h @@ -1,6 +1,944 @@ #ifndef _PATTERNS_H_ #define _PATTERNS_H_ __ALIGNED(8) const char patterns[]={ +// Patterns\DSP\Stats\StatsF32\Input1_f32.txt +208,221,196,61, +209,200,96,61, +211,226,16,61, +255,40,164,61, +53,65,122,60, +57,9,253,61, +58,48,169,60, +110,79,208,61, +91,136,36,61, +33,69,14,62, +110,230,4,62, +25,70,118,60, +8,230,198,60, +242,24,254,61, +4,54,121,60, +121,239,158,61, +200,74,192,61, +36,35,75,61, +136,180,152,61, +80,97,142,61, +197,114,222,61, +167,123,245,61, +139,248,82,61, +21,201,12,60, +72,18,250,61, +211,173,174,61, +1,26,221,61, +147,102,128,60, +191,229,36,62, +215,240,45,59, +156,209,81,60, +172,186,104,60, +215,138,40,62, +214,208,140,61, +48,12,227,61, +201,48,11,62, +76,155,55,60, +33,26,247,61, +182,136,48,60, +65,207,128,61, +84,41,128,61, +237,15,122,61, +125,219,2,61, +52,147,199,60, +192,3,208,61, +222,6,212,61, +222,27,186,61, +243,211,156,59, +226,54,64,61, +187,171,158,59, +66,133,139,61, +192,118,184,61, +25,183,1,62, +194,214,226,61, +140,213,211,61, +11,157,188,61, +136,22,21,62, +176,167,1,62, +130,190,199,60, +78,25,127,60, +46,82,89,61, +117,218,110,61, +222,5,55,61, +196,153,26,62, +101,210,219,61, +38,243,48,62, +150,40,70,59, +33,62,141,59, +150,10,130,59, +123,5,183,61, +126,176,210,61, +63,11,170,61, +18,92,114,61, +86,20,139,60, +116,65,22,62, +185,100,120,60, +120,193,168,61, +253,225,217,60, +242,215,19,61, +209,40,255,61, +44,211,7,62, +133,29,3,62, +233,62,170,60, +36,7,204,60, +90,128,100,61, +230,59,34,61, +44,56,212,61, +222,90,198,60, +32,139,83,61, +69,253,193,61, +73,79,5,62, +104,9,134,61, +14,167,203,61, +75,197,246,61, +195,149,152,61, +226,242,55,61, +121,116,149,61, +163,224,183,60, +5,222,179,61, +202,2,145,61, +48,83,32,61, +252,14,141,61, +249,95,196,61, +204,62,64,61, +193,137,214,61, +70,3,176,61, +203,255,206,60, +131,123,81,61, +235,116,92,61, +250,226,221,61, +68,79,110,61, +114,23,211,61, +239,78,249,61, +251,132,199,61, +34,240,69,61, +253,101,177,60, +100,98,48,61, +80,173,151,61, +41,2,241,61, +217,169,234,61, +97,102,251,61, +183,121,118,61, +141,247,73,61, +182,83,244,61, +194,3,79,59, +163,82,222,59, +0,238,239,61, +201,113,161,60, +75,145,168,61, +120,227,123,61, +243,242,31,61, +83,174,20,61, +250,44,214,61, +232,112,30,61, +32,151,33,59, +91,62,22,62, +100,184,156,61, +64,158,119,61, +14,209,207,61, +115,154,231,61, +// Patterns\DSP\Stats\StatsF32\Dims1_s16.txt +10,0, +14,0, +0, +0, +0, +0, +// Patterns\DSP\Stats\StatsF32\RefEntropy1_f32.txt +66,232,26,64, +85,74,30,64, +20,219,18,64, +254,41,28,64, +211,247,16,64, +125,17,26,64, +242,196,33,64, +240,132,36,64, +155,251,26,64, +219,45,29,64, +// Patterns\DSP\Stats\StatsF32\Input2_f32.txt +44,87,102,61, +51,88,159,61, +143,253,51,61, +92,158,130,61, +115,23,133,61, +213,232,93,61, +161,126,26,61, +196,103,118,61, +138,29,177,61, +64,164,169,61, +246,193,80,61, +33,125,196,59, +124,196,178,61, +96,255,138,60, +134,153,105,60, +77,28,215,60, +185,62,159,61, +67,65,154,60, +108,117,5,60, +29,249,133,61, +134,143,141,60, +47,68,202,59, +251,35,1,61, +166,173,57,61, +239,47,120,61, +220,167,73,60, +94,41,114,61, +24,26,145,61, +1,162,172,61, +161,120,208,61, +224,27,31,61, +28,154,129,61, +64,48,96,60, +144,121,123,61, +224,12,73,61, +52,162,152,61, +175,240,91,61, +12,246,171,61, +120,98,107,60, +249,20,109,61, +43,194,153,61, +201,138,130,61, +252,112,207,59, +209,10,128,61, +229,71,109,60, +82,68,70,56, +116,97,166,61, +244,119,172,60, +35,64,219,60, +150,156,238,61, +229,16,93,60, +65,79,184,61, +226,251,50,57, +114,149,176,61, +146,226,218,61, +58,250,133,59, +28,27,106,61, +175,110,228,61, +234,104,120,61, +20,4,6,59, +36,228,118,61, +231,58,72,59, +92,141,39,61, +222,39,124,61, +188,43,16,61, +31,46,142,61, +113,78,99,61, +194,97,118,61, +248,249,116,61, +30,154,101,61, +25,195,103,61, +109,90,29,61, +188,57,31,61, +251,33,81,61, +48,198,131,61, +241,113,58,61, +173,21,56,61, +139,8,124,61, +143,103,171,60, +146,102,155,61, +146,51,61,60, +215,247,144,61, +217,119,95,61, +188,91,91,60, +142,171,116,60, +202,227,126,60, +214,20,176,61, +218,41,83,61, +122,86,185,61, +232,197,14,61, +77,171,137,61, +243,35,194,61, +154,64,78,61, +108,233,66,61, +115,59,69,61, +119,188,15,61, +221,250,6,61, +29,186,122,61, +76,19,174,61, +106,46,11,61, +125,232,28,61, +140,217,25,61, +33,85,149,60, +231,225,78,61, +66,192,164,61, +173,226,166,61, +116,25,200,59, +255,197,81,61, +147,210,201,61, +100,248,194,61, +97,202,167,61, +226,51,237,60, +77,162,57,61, +125,179,11,61, +150,75,16,61, +215,243,93,60, +244,90,253,60, +120,254,160,61, +169,67,151,61, +124,27,163,60, +9,78,45,61, +144,197,163,60, +61,192,122,61, +73,231,138,61, +144,29,105,61, +177,68,7,61, +225,72,95,60, +193,127,67,60, +195,34,171,60, +254,192,167,61, +145,236,165,61, +6,144,21,61, +220,102,138,61, +55,219,208,60, +68,7,167,61, +173,11,79,61, +4,189,93,61, +46,150,131,61, +50,7,73,61, +170,52,164,61, +67,212,139,60, +238,212,4,61, +217,140,38,61, +219,7,94,59, +221,199,65,61, +128,25,227,60, +31,188,151,61, +104,65,97,61, +82,82,197,61, +253,200,132,61, +123,77,124,60, +31,168,147,61, +22,197,110,61, +251,192,25,61, +6,152,116,61, +129,143,130,61, +43,206,154,60, +214,183,137,61, +102,96,86,61, +109,91,196,61, +14,98,99,61, +178,8,131,61, +166,62,57,61, +17,181,150,61, +115,36,27,61, +124,181,168,61, +74,59,178,61, +20,158,17,60, +198,214,176,61, +101,29,131,61, +149,61,137,61, +242,179,156,60, +176,151,9,61, +131,239,147,60, +7,129,234,60, +68,137,155,61, +110,229,155,61, +193,161,96,58, +173,42,143,61, +112,156,193,59, +110,1,190,61, +200,182,36,61, +132,50,177,60, +58,162,191,61, +11,109,188,60, +62,246,151,61, +243,125,123,61, +47,28,101,61, +221,77,53,61, +55,162,252,60, +9,253,38,60, +88,167,193,61, +2,43,94,61, +175,119,16,61, +173,148,165,61, +144,220,54,61, +255,28,223,60, +176,35,54,61, +200,113,207,58, +33,148,141,61, +// Patterns\DSP\Stats\StatsF32\Dims2_s16.txt +10,0, +20,0, +0, +0, +0, +0, +// Patterns\DSP\Stats\StatsF32\RefLogSumExp2_f32.txt +249,242,66,64, +14,243,66,64, +78,250,66,64, +142,239,66,64, +186,242,66,64, +163,243,66,64, +153,241,66,64, +123,242,66,64, +174,243,66,64, +63,243,66,64, +// Patterns\DSP\Stats\StatsF32\InputA3_f32.txt +188,40,198,59, +90,97,1,62, +27,232,7,62, +124,45,162,61, +152,82,87,61, +249,93,92,61, +189,242,227,61, +36,223,22,61, +0,42,21,62, +233,220,255,60, +201,64,6,62, +171,213,190,61, +154,1,188,61, +4,191,43,62, +59,206,175,61, +175,115,111,61, +108,249,19,62, +175,234,243,60, +209,249,165,60, +117,167,241,58, +110,214,149,61, +163,235,55,62, +182,223,2,60, +6,94,14,62, +162,234,217,61, +43,214,139,57, +188,82,202,61, +132,170,242,61, +244,115,180,60, +28,36,119,61, +179,151,103,61, +251,82,21,61, +204,48,23,62, +178,24,32,62, +94,21,252,61, +140,191,150,61, +199,179,80,60, +198,117,2,62, +84,198,159,60, +143,46,79,62, +175,179,204,60, +185,32,60,62, +151,95,55,62, +168,117,13,62, +234,202,51,60, +241,107,173,61, +193,200,238,59, +149,36,22,60, +230,118,160,60, +246,57,147,61, +103,250,210,61, +93,14,89,61, +190,32,128,61, +187,130,3,61, +183,142,251,61, +31,81,253,61, +115,106,22,62, +180,249,113,59, +225,202,12,61, +83,205,103,62, +43,136,98,61, +126,214,227,61, +136,118,234,61, +173,105,49,61, +127,235,167,61, +178,210,235,60, +28,148,12,62, +99,108,207,61, +119,46,29,62, +105,70,215,59, +220,57,129,61, +23,58,211,61, +11,240,144,61, +117,64,14,62, +168,239,217,60, +231,140,151,61, +35,239,54,61, +157,59,41,60, +97,138,30,62, +190,101,221,61, +155,24,49,62, +143,220,6,62, +197,214,153,60, +96,25,70,61, +213,144,151,59, +76,211,139,60, +33,221,87,61, +205,137,50,62, +119,148,83,60, +200,126,137,61, +240,12,219,61, +79,201,228,61, +106,191,219,61, +53,85,222,61, +29,154,0,62, +134,127,227,61, +6,100,244,61, +11,180,3,61, +203,251,249,61, +235,221,11,62, +168,217,12,61, +10,244,179,60, +122,34,7,62, +171,181,168,61, +158,122,0,62, +243,192,97,60, +1,61,176,61, +132,59,192,61, +90,53,31,62, +226,163,6,62, +166,123,209,61, +34,1,123,61, +167,222,213,61, +174,154,114,60, +205,170,183,60, +184,226,190,61, +243,59,25,61, +58,253,13,62, +145,98,223,61, +175,91,241,60, +// Patterns\DSP\Stats\StatsF32\InputB3_f32.txt +144,64,56,61, +38,113,129,61, +106,100,104,60, +91,129,245,61, +211,50,79,62, +191,189,20,62, +187,58,238,60, +30,165,51,62, +250,164,150,61, +26,194,210,61, +221,89,115,59, +217,146,208,60, +4,252,228,60, +247,75,249,61, +10,129,26,62, +229,194,12,62, +147,56,54,62, +195,238,209,60, +75,168,105,61, +198,47,231,60, +163,55,79,61, +169,30,19,61, +247,134,242,61, +29,174,139,61, +66,189,2,61, +242,112,82,61, +93,35,196,61, +114,201,230,61, +107,135,255,61, +251,155,4,62, +20,63,122,61, +17,12,224,61, +41,55,121,61, +29,194,224,61, +240,253,208,61, +199,171,49,60, +122,60,205,60, +146,222,214,61, +187,134,207,61, +127,195,135,61, +25,148,223,61, +194,63,220,61, +69,210,221,60, +10,188,250,60, +57,63,153,61, +212,16,83,62, +178,150,25,61, +111,100,224,61, +214,114,55,62, +227,60,209,61, +94,58,166,61, +92,26,121,60, +219,33,57,62, +226,25,48,61, +81,165,3,61, +182,233,44,61, +39,93,136,61, +157,249,161,61, +48,231,156,60, +135,43,35,62, +29,196,197,61, +103,14,166,61, +244,249,22,62, +160,225,160,61, +252,217,157,61, +251,202,128,60, +205,29,41,62, +205,148,191,61, +158,15,14,61, +25,163,99,61, +178,99,196,60, +69,196,5,62, +4,26,170,60, +91,237,211,61, +70,4,14,62, +229,186,201,61, +235,201,202,60, +52,126,185,61, +104,53,29,62, +122,209,203,61, +38,53,74,60, +169,246,122,61, +108,177,47,61, +133,96,29,62, +227,140,182,60, +124,37,113,59, +64,38,162,59, +24,0,169,61, +130,216,120,61, +195,30,22,62, +220,182,37,62, +112,212,0,59, +244,51,5,62, +7,198,70,62, +171,13,22,62, +99,7,55,61, +147,117,1,62, +191,128,161,58, +126,255,142,61, +231,192,161,61, +142,222,14,62, +41,169,3,62, +72,111,244,61, +132,179,177,61, +108,67,145,61, +105,60,77,59, +114,8,17,61, +88,53,15,62, +94,113,110,61, +48,184,232,61, +78,126,3,62, +177,12,181,61, +158,201,17,61, +88,48,223,61, +222,96,163,61, +80,3,132,61, +112,172,85,61, +167,255,179,61, +177,98,220,61, +237,83,153,61, +// Patterns\DSP\Stats\StatsF32\Dims3_s16.txt +10,0, +12,0, +0, +0, +0, +0, +// Patterns\DSP\Stats\StatsF32\RefKL3_f32.txt +18,24,117,63, +33,28,208,62, +227,235,182,62, +80,203,47,63, +199,157,229,62, +107,177,82,62, +99,13,16,63, +0,77,27,63, +231,129,150,62, +213,127,117,62, +// Patterns\DSP\Stats\StatsF32\InputA4_f32.txt +249,254,59,192, +203,119,20,192, +27,212,7,192, +77,130,8,192, +18,201,121,192, +37,21,31,192, +117,204,154,192, +9,209,12,192, +55,58,29,192, +34,186,88,192, +68,2,62,192, +8,27,133,192, +108,104,14,192, +62,50,15,192, +195,20,106,192, +121,58,10,192, +43,160,13,192, +203,141,139,192, +59,155,17,192, +255,54,38,192, +87,68,46,192, +196,144,29,192, +76,41,92,192, +138,231,21,192, +230,240,73,192, +84,27,22,192, +143,14,44,192, +103,92,28,192, +247,45,15,192, +58,4,73,192, +86,79,39,192, +45,199,16,192, +6,94,12,192, +234,205,10,192, +162,241,40,192, +240,69,54,192, +143,246,48,192, +216,228,28,192, +61,208,21,192, +26,105,149,192, +37,28,41,192, +119,20,173,192, +125,91,11,192, +169,48,129,192, +216,132,19,192, +210,27,26,192, +184,107,45,192, +160,39,52,192, +119,229,19,192, +153,155,85,192, +56,206,46,192, +70,240,72,192, +150,140,99,192, +148,128,26,192, +99,8,14,192, +11,0,22,192, +180,166,77,192, +104,202,244,191, +96,233,94,192, +211,40,60,192, +251,156,231,191, +218,236,105,192, +231,154,129,192, +254,241,216,191, +160,106,123,192, +208,240,48,192, +155,132,232,191, +85,198,94,192, +62,142,47,192, +217,9,146,192, +32,190,51,192, +90,42,50,192, +204,230,46,192, +68,154,25,192, +83,9,146,192, +116,64,227,191, +107,249,3,192, +23,186,23,192, +77,250,89,192, +109,23,2,192, +224,109,74,192, +147,67,91,192, +207,36,41,192, +187,43,109,192, +243,194,167,192, +12,232,9,192, +74,244,29,192, +55,100,22,192, +241,207,15,192, +11,147,31,192, +172,172,40,192, +241,206,72,192, +47,211,99,192, +194,136,8,192, +69,143,57,192, +212,29,60,192, +93,244,41,192, +0,47,31,192, +8,42,20,192, +197,37,45,192, +125,97,27,192, +27,13,6,192, +165,53,52,192, +1,181,43,192, +146,20,19,192, +26,17,135,192, +14,216,72,192, +250,148,87,192, +31,242,82,192, +72,76,9,192, +40,35,252,191, +24,56,118,192, +171,24,33,192, +127,204,53,192, +80,231,80,192, +107,249,143,192, +142,197,27,192, +100,18,41,192, +189,107,11,192, +48,30,144,192, +143,38,26,192, +7,198,22,192, +44,5,130,192, +31,147,5,192, +232,177,249,191, +129,86,39,192, +237,198,41,192, +44,162,38,192, +63,168,194,192, +35,194,70,192, +18,106,132,192, +7,79,1,192, +130,136,248,191, +221,157,16,192, +13,109,79,192, +43,215,42,192, +224,161,46,192, +186,204,1,192, +126,129,127,192, +155,139,18,192, +// Patterns\DSP\Stats\StatsF32\InputB4_f32.txt +164,45,156,192, +117,215,19,192, +117,33,151,192, +41,14,24,192, +81,240,31,192, +243,127,39,192, +223,11,32,192, +202,2,72,192, +121,220,2,192, +215,174,15,192, +66,128,114,192, +63,11,27,192, +180,181,34,192, +63,191,20,192, +165,54,138,192, +83,102,10,192, +174,55,23,192, +189,170,42,192, +205,247,153,192, +92,67,29,192, +156,6,22,192, +80,71,128,192, +34,211,6,192, +111,25,14,192, +159,13,135,192, +252,21,129,192, +3,80,4,192, +175,155,5,192, +223,240,32,192, +100,235,31,192, +220,62,98,192, +194,235,57,192, +155,104,11,192, +180,202,27,192, +91,222,116,192, +193,101,10,192, +2,59,41,192, +165,64,36,192, +137,238,193,192, +35,72,245,191, +84,105,51,192, +231,231,41,192, +169,115,21,192, +235,214,21,192, +73,162,112,192, +104,137,15,192, +205,190,39,192, +201,117,31,192, +98,197,47,192, +14,245,137,192, +39,169,16,192, +190,55,22,192, +50,170,34,192, +133,91,117,192, +3,57,17,192, +152,29,59,192, +113,73,31,192, +40,248,101,192, +247,219,98,192, +46,56,164,192, +189,80,122,192, +123,177,9,192, +154,36,37,192, +255,170,6,192, +190,182,23,192, +134,221,2,192, +190,59,19,192, +126,68,51,192, +238,201,107,192, +206,51,5,192, +181,166,122,192, +9,111,10,192, +198,76,66,192, +20,121,103,192, +215,103,80,192, +42,44,3,192, +103,201,50,192, +175,247,5,192, +46,44,24,192, +61,46,34,192, +121,7,73,192, +174,178,65,192, +125,127,34,192, +201,15,14,192, +174,69,33,192, +165,67,14,192, +224,95,84,192, +119,136,196,192, +102,24,34,192, +183,99,54,192, +199,7,13,192, +77,185,24,192, +162,17,58,192, +151,45,46,192, +66,220,39,192, +111,50,10,192, +200,88,18,192, +8,101,84,192, +138,111,85,192, +214,173,94,192, +204,238,27,192, +213,125,19,192, +186,108,86,192, +220,55,127,192, +37,92,16,192, +195,108,14,192, +15,245,31,192, +116,102,42,192, +158,192,22,192, +76,220,42,192, +161,68,50,192, +14,93,10,192, +47,57,51,192, +84,185,49,192, +163,43,242,191, +202,170,165,192, +35,80,37,192, +26,23,60,192, +75,104,34,192, +113,81,188,192, +163,177,6,192, +234,58,112,192, +166,43,22,192, +178,207,19,192, +7,8,30,192, +200,124,20,192, +250,238,108,192, +254,25,36,192, +37,179,21,192, +39,251,3,192, +30,171,106,192, +164,133,17,192, +61,138,176,192, +224,156,134,192, +54,63,52,192, +217,149,25,192, +22,166,40,192, +103,227,16,192, +89,9,19,192, +9,50,11,192, +// Patterns\DSP\Stats\StatsF32\Dims4_s16.txt +10,0, +14,0, +0, +0, +0, +0, +// Patterns\DSP\Stats\StatsF32\RefLogSumExpDot4_f32.txt +90,177,40,192, +227,3,37,192, +226,212,43,192, +88,197,39,192, +63,127,42,192, +7,53,33,192, +209,88,41,192, +241,116,42,192, +127,141,33,192, +181,74,42,192, // Patterns\DSP\Support\SupportF32\Inputs1_f32.txt 64,138,162,62, 33,25,32,63, @@ -2070,5 +3008,13055 @@ __ALIGNED(8) const char patterns[]={ 124,22,235,62, 248,238,242,62, 3,110,9,63, +// Patterns\DSP\BasicMaths\BasicMathsF32\Input1_f32.txt +15,152,74,61, +121,218,11,63, +157,235,194,61, +10,166,174,61, +175,34,71,190, +253,127,215,188, +38,114,159,189, +115,86,243,188, +39,69,117,187, +233,191,153,62, +173,174,146,191, +217,165,9,63, +62,244,189,190, +46,90,125,188, +35,67,169,62, +146,247,11,63, +46,159,236,61, +186,81,23,190, +101,53,120,191, +183,86,142,62, +201,101,19,61, +109,219,232,60, +71,131,10,191, +137,193,249,189, +88,39,179,190, +7,188,246,62, +169,211,138,190, +147,170,84,190, +158,233,5,63, +136,5,93,63, +176,25,65,61, +210,187,161,190, +82,174,202,62, +17,57,167,62, +220,96,232,62, +69,200,32,191, +168,94,22,62, +209,103,171,190, +63,249,28,62, +68,71,43,191, +32,143,228,190, +101,116,80,63, +0,0,128,63, +254,132,84,191, +16,109,44,63, +226,195,218,60, +247,83,117,189, +198,224,62,191, +123,218,100,61, +147,12,62,190, +239,186,241,62, +210,252,8,62, +28,202,250,189, +233,187,107,190, +19,145,4,63, +138,184,240,190, +41,26,252,62, +10,159,15,191, +121,122,151,61, +204,250,88,190, +96,80,253,190, +131,193,32,189, +230,236,191,190, +31,225,186,189, +173,213,62,61, +21,134,170,190, +155,176,212,62, +71,30,169,61, +112,131,12,62, +176,80,37,187, +251,186,133,190, +91,255,12,191, +180,90,198,61, +17,248,42,63, +10,150,142,189, +128,139,39,190, +169,127,35,63, +13,89,26,191, +107,237,34,62, +44,0,239,62, +183,163,162,190, +110,0,201,189, +104,128,173,62, +122,195,17,190, +186,71,13,190, +73,110,177,190, +250,21,119,62, +146,202,46,190, +81,161,254,190, +86,119,144,62, +194,227,99,62, +171,81,143,62, +255,220,79,60, +127,192,153,190, +134,101,84,63, +142,58,151,190, +230,101,186,60, +70,113,2,191, +89,88,177,187, +84,154,249,62, +183,23,76,190, +226,77,110,190, +142,198,178,62, +242,24,179,190, +12,126,10,63, +207,101,9,190, +73,64,149,190, +234,54,18,62, +190,91,46,191, +8,212,140,190, +220,161,146,61, +71,182,66,191, +211,55,97,63, +74,161,136,62, +14,33,11,190, +108,25,196,62, +225,22,49,62, +82,198,251,62, +158,164,155,62, +223,143,241,62, +157,166,90,62, +69,148,31,191, +78,197,71,190, +185,130,45,61, +117,135,100,190, +37,246,101,61, +93,233,197,61, +27,188,139,190, +72,78,10,191, +161,77,108,190, +33,207,195,61, +64,212,34,61, +64,151,60,62, +95,88,70,63, +58,145,16,191, +182,113,104,190, +22,173,143,190, +234,20,219,190, +10,249,80,190, +208,249,44,190, +113,137,229,190, +53,5,134,190, +31,235,11,191, +181,86,205,62, +90,27,61,191, +195,119,233,62, +197,119,2,62, +230,190,126,61, +65,188,191,190, +186,86,210,62, +78,142,66,63, +58,18,58,190, +221,62,105,190, +147,215,185,62, +60,228,127,188, +250,180,197,190, +45,174,115,190, +100,40,26,63, +237,240,44,61, +197,82,155,189, +132,234,215,190, +7,109,157,60, +83,42,135,188, +177,217,132,188, +190,117,215,189, +47,157,149,190, +180,145,136,62, +252,207,5,63, +217,192,7,63, +89,133,223,190, +223,195,1,190, +88,129,121,190, +224,131,29,62, +12,159,131,189, +212,177,107,62, +197,72,80,191, +237,179,204,62, +31,177,254,190, +195,138,127,62, +238,112,157,190, +119,62,179,190, +194,142,227,61, +56,218,215,62, +204,146,32,191, +213,59,12,191, +252,139,81,62, +53,225,27,190, +178,163,33,62, +61,213,189,59, +197,247,67,191, +156,94,1,191, +200,118,61,62, +213,246,9,191, +130,127,21,62, +231,212,125,62, +154,178,243,190, +7,213,139,190, +22,5,135,190, +27,102,77,62, +71,185,151,61, +51,168,27,62, +100,77,92,62, +157,96,41,191, +164,238,244,61, +17,157,49,191, +15,135,108,188, +229,183,208,190, +4,31,146,62, +166,172,244,62, +100,188,135,61, +214,141,181,187, +246,42,28,190, +137,79,101,190, +221,92,231,62, +209,184,160,62, +85,149,12,191, +93,45,196,60, +173,32,13,191, +146,156,60,190, +61,158,142,62, +0,189,10,190, +96,150,187,190, +146,204,59,190, +83,16,30,63, +211,136,147,190, +158,32,199,190, +102,97,42,190, +5,163,215,189, +22,75,161,190, +234,227,128,61, +198,156,42,190, +59,99,7,63, +202,189,23,190, +20,150,83,190, +89,186,25,191, +190,94,245,189, +131,115,11,189, +143,125,170,59, +16,236,36,62, +209,167,13,61, +114,148,184,188, +192,206,153,189, +13,72,173,61, +20,5,49,62, +109,27,137,191, +124,102,122,190, +83,170,214,62, +199,236,37,62, +22,31,29,63, +160,10,158,62, +83,244,125,191, +250,64,180,190, +113,127,204,62, +67,147,51,62, +247,121,26,63, +92,4,55,61, +// Patterns\DSP\BasicMaths\BasicMathsF32\Input2_f32.txt +184,38,150,60, +141,77,79,62, +200,118,16,61, +144,112,1,61, +135,150,147,189, +104,183,31,188, +57,88,236,188, +35,89,52,188, +200,199,181,186, +178,230,227,61, +228,108,217,190, +158,8,76,62, +132,200,12,190, +58,197,187,187, +49,229,250,61, +174,120,79,62, +233,94,47,61, +113,76,96,189, +77,245,183,190, +166,252,210,61, +80,124,90,60, +161,148,44,60, +214,80,77,190, +230,26,57,189, +83,199,4,190, +158,221,54,62, +253,199,205,189, +197,157,157,189, +52,127,70,62, +11,207,163,62, +118,29,143,60, +92,188,239,189, +56,55,22,62, +85,223,247,61, +203,57,44,62, +88,83,110,190, +35,228,94,61, +126,18,254,189, +21,174,104,61, +63,226,125,190, +38,101,41,190, +175,126,154,62, +151,187,189,62, +234,129,157,190, +189,149,127,62, +236,34,34,60, +195,210,181,188, +209,119,141,190, +255,156,169,60, +140,218,140,189, +36,40,51,62, +17,14,75,61, +252,222,57,189, +120,182,174,189, +127,128,68,62, +163,104,50,190, +13,216,58,62, +81,227,84,190, +214,136,224,60, +40,208,160,189, +246,189,59,190, +84,73,110,188, +137,62,14,190, +37,129,10,189, +152,111,141,60, +228,195,252,189, +61,162,29,62, +142,174,250,60, +2,72,80,61, +107,11,117,186, +19,58,198,189, +176,255,80,190, +80,2,19,61, +218,108,125,62, +130,90,211,188, +135,89,120,189, +29,90,114,62, +178,201,100,190, +88,129,113,61, +67,34,49,62, +24,20,241,189, +155,248,20,189, +240,150,0,62, +66,16,88,189, +247,106,81,189, +112,128,3,190, +73,32,183,61, +163,139,129,189, +175,183,60,190, +237,35,214,61, +36,230,168,61, +161,112,212,61, +122,14,154,59, +144,231,227,189, +152,106,157,62, +24,42,224,189, +209,37,10,60, +109,90,65,190, +46,112,3,187, +215,253,56,62, +16,67,151,189, +31,158,176,189, +151,127,4,62, +168,188,4,190, +21,73,77,62, +176,169,75,189, +168,59,221,189, +94,187,88,61, +128,57,129,190, +120,191,208,189, +229,89,217,60, +65,79,144,190, +64,235,166,62, +100,134,202,61, +181,58,78,189, +119,86,17,62, +168,63,131,61, +233,153,58,62, +44,181,230,61, +58,8,51,62, +59,13,162,61, +205,138,108,190, +14,15,148,189, +167,152,128,60, +119,95,169,189, +60,111,170,60, +80,174,18,61, +138,32,207,189, +72,2,77,190, +120,34,175,189, +103,31,17,61, +9,92,113,60, +220,197,139,61, +150,0,147,62, +79,74,86,190, +72,70,172,189, +35,248,212,189, +250,94,34,190, +253,224,154,189, +47,51,128,189, +172,30,42,190, +26,168,198,189, +59,102,79,190, +123,47,24,62, +196,39,140,190, +127,8,45,62, +14,100,65,61, +156,205,188,60, +124,26,14,190, +41,228,27,62, +160,49,144,62, +206,231,137,189, +84,222,172,189, +86,188,9,62, +3,167,189,187, +125,135,18,190, +40,154,180,189, +145,129,100,62, +153,44,128,60, +217,59,230,188, +91,6,32,190, +180,89,233,59, +151,90,200,187, +35,236,196,187, +208,175,31,189, +92,197,221,189, +74,111,202,61, +54,89,70,62, +180,57,73,62, +61,169,37,190, +101,89,64,189, +83,235,184,189, +146,123,105,61, +189,25,195,188, +0,175,174,61, +89,94,154,190, +214,182,23,62, +102,195,60,190, +180,100,189,61, +125,95,233,189, +118,216,4,190, +37,167,40,61, +71,250,31,62, +22,4,110,190, +222,221,79,190, +230,77,155,61, +252,14,103,189, +154,152,111,61, +137,177,12,59, +134,61,145,190, +75,195,63,190, +135,107,140,61, +168,128,76,190, +94,153,93,61, +47,32,188,61, +111,157,52,190, +123,69,207,189, +100,35,200,189, +229,58,152,61, +239,229,224,60, +123,186,102,61, +146,70,163,61, +227,16,123,190, +170,135,53,61, +28,163,131,190, +8,77,175,187, +182,176,26,190, +242,151,216,61, +193,86,53,62, +25,51,201,60, +193,142,6,187, +78,124,103,189, +192,243,169,189, +24,121,43,62, +112,60,238,61, +136,98,80,190, +63,101,17,60, +20,49,81,190, +205,201,139,189, +170,102,211,61, +101,166,77,189, +122,7,11,190, +165,47,139,189, +194,75,106,62, +64,176,218,189, +255,148,19,190, +132,141,124,189, +94,209,31,189, +65,21,239,189, +109,13,191,60, +135,229,124,189, +240,174,72,62, +158,236,96,189, +216,208,156,189, +116,222,99,190, +192,218,53,189, +239,180,78,188, +67,183,252,58, +67,118,116,61, +101,249,81,60, +218,204,8,188, +178,252,227,188, +44,109,0,61, +119,50,131,61, +110,59,203,190, +38,149,185,189, +13,25,31,62, +201,242,117,61, +43,230,104,62, +78,67,234,61, +120,55,188,190, +15,152,5,190, +241,143,23,62, +79,23,133,61, +123,250,100,62, +84,164,135,60, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference1_f32.txt +181,213,138,61, +221,173,63,63, +128,147,5,62, +82,94,239,61, +249,118,136,190, +216,173,19,189, +52,136,218,189, +130,193,38,189, +133,20,168,187, +149,185,210,62, +230,9,201,191, +1,168,60,63, +64,44,2,191, +101,158,173,188, +111,252,231,62, +189,213,63,63, +81,39,34,62, +214,100,79,190, +6,24,170,191, +225,21,195,62, +221,4,74,61, +223,146,31,61, +124,215,61,191, +126,39,43,190, +1,139,245,190, +107,21,41,63, +169,69,190,190, +187,188,145,190, +107,137,55,63, +135,118,151,63, +53,84,132,61, +233,170,221,190, +247,228,10,63, +230,48,229,62, +225,62,31,63, +27,93,92,191, +177,23,78,62, +112,236,234,190, +197,36,87,62, +212,191,106,191, +217,160,28,191, +222,217,142,63, +230,110,175,63, +249,162,145,191, +128,82,108,63, +172,234,21,61, +172,30,168,189, +88,206,130,191, +125,212,156,61, +237,60,130,190, +128,167,37,63, +86,192,59,62, +205,220,43,190, +147,139,161,190, +51,177,53,63, +110,246,36,191, +24,195,44,63, +222,215,68,191, +174,156,207,61, +112,177,148,190, +173,151,45,191, +216,83,92,189, +21,134,3,191, +217,16,0,190, +189,198,130,61, +14,183,233,190, +221,192,17,63, +234,201,231,61, +113,149,64,62, +139,147,98,187, +127,73,183,190, +71,63,65,191, +238,237,7,62, +72,83,106,63, +171,108,195,189, +226,161,101,190, +48,22,96,63, +121,139,83,191, +193,77,95,62, +167,200,35,63, +189,232,222,190, +94,190,9,190, +224,203,237,62, +138,199,71,190, +120,162,65,190, +129,46,243,190, +15,83,169,62, +99,144,111,190, +149,126,46,191, +81,0,198,62, +106,43,156,62, +212,109,196,62, +30,114,142,60, +99,186,210,190, +105,141,145,63, +20,69,207,190, +206,120,255,60, +225,199,50,191, +112,16,243,187, +160,12,43,63, +159,220,139,190, +121,78,163,190, +89,6,245,62, +70,119,245,190, +81,208,61,63, +59,80,60,190, +51,143,204,190, +193,101,72,62, +126,248,110,191, +230,3,193,190, +86,248,200,61, +244,110,133,191, +185,86,154,63, +227,66,187,62, +187,175,62,190, +84,98,6,63, +181,182,114,62, +163,137,44,63, +234,81,213,62, +254,137,37,63, +157,214,149,62, +248,182,90,191, +107,230,136,190, +13,207,109,61, +152,155,156,190, +226,150,157,61, +67,160,7,62, +61,132,191,190, +218,142,61,191, +111,239,161,190, +106,47,6,62, +66,43,95,61, +23,61,129,62, +85,236,135,63, +206,35,70,191, +109,74,159,190, +31,235,196,190, +52,34,22,191, +196,52,143,190, +104,19,109,190, +100,76,29,191, +59,175,183,190, +174,196,63,191, +57,183,12,63, +158,151,129,191, +1,254,31,63, +201,208,50,62, +218,146,174,61, +192,100,3,191, +103,36,16,63, +143,83,133,63, +33,6,127,190, +4,215,159,190, +190,181,254,62, +223,91,175,188, +92,124,7,191, +161,253,166,190, +200,72,83,63, +57,7,109,61, +187,225,212,189, +217,246,19,191, +116,195,215,60, +249,64,185,188, +186,20,182,188, +211,166,19,190, +134,14,205,190, +134,45,187,62, +73,102,55,63, +70,15,58,63, +252,44,25,191, +56,218,49,190, +129,251,170,190, +197,226,87,62, +123,101,180,189, +170,132,161,62, +249,187,142,191, +172,71,12,63, +105,137,46,191, +143,30,175,62, +206,200,215,190, +178,170,245,190, +42,241,27,62, +174,235,19,63, +210,19,92,191, +76,51,64,191, +119,153,143,62, +244,164,85,190, +217,137,93,62, +0,23,2,60, +68,75,134,191, +111,79,49,191, +70,214,129,62, +255,22,61,191, +217,229,76,62, +127,242,173,62, +169,0,39,191, +102,166,191,190, +239,13,185,190, +199,193,140,62, +195,242,207,61, +210,86,85,62, +87,248,150,62, +214,36,104,191, +60,217,39,62, +159,110,115,191, +202,22,162,188, +32,8,15,191, +1,69,200,62, +3,172,39,63, +43,9,186,61, +55,213,248,187, +9,10,86,190, +180,36,157,190, +180,140,30,63, +237,71,220,62, +247,173,64,191, +254,111,6,61, +242,108,65,191, +188,64,129,190, +231,119,195,62, +153,38,62,190, +15,141,0,191, +50,178,128,190, +68,163,88,63, +227,52,202,190, +143,117,8,191, +199,132,105,190, +218,197,19,190, +103,16,221,190, +70,167,176,61, +39,214,105,190, +247,142,57,63, +241,248,79,190, +64,255,144,190, +246,177,82,191, +15,38,40,190, +190,32,63,189, +96,171,233,59, +161,9,98,62, +42,38,66,61, +223,250,252,188, +237,205,210,189, +163,126,237,61, +79,158,114,62, +72,234,187,191, +136,152,171,190, +109,27,19,63, +121,105,99,62, +160,88,87,63, +115,155,216,62, +7,8,174,191, +2,13,247,190, +181,35,12,63, +235,30,118,62, +150,184,83,63, +134,214,122,61, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference2_f32.txt +102,9,255,60, +44,14,176,62, +113,96,117,61, +132,219,91,61, +215,174,250,189, +73,164,135,188, +47,184,72,189, +226,41,153,188, +67,97,26,187, +121,140,65,62, +232,166,56,191, +100,71,173,62, +249,31,111,190, +144,119,31,188, +173,19,85,62, +204,50,176,62, +185,239,148,61, +60,125,190,189, +191,58,28,191, +28,47,51,62, +107,141,185,60, +29,145,146,60, +34,94,174,190, +22,52,157,189, +92,135,97,190, +56,77,155,62, +84,195,46,190, +177,219,5,190, +161,147,168,62, +2,30,11,63, +233,21,243,60, +118,153,75,190, +109,37,127,62, +118,130,82,62, +247,67,146,62, +222,102,202,190, +62,75,189,61, +98,198,87,190, +116,155,197,61, +104,157,215,190, +141,220,143,190, +14,53,3,63, +52,34,33,63, +9,196,5,191, +66,15,217,62, +108,178,137,60, +150,106,26,189, +187,73,240,190, +251,11,16,61, +154,62,239,189, +220,38,152,62, +155,114,172,61, +158,218,157,189, +173,96,20,190, +231,225,166,62, +57,132,151,190, +35,174,158,62, +108,204,180,190, +135,176,62,61, +184,146,8,190, +101,113,159,190, +92,94,202,188, +66,155,113,190, +26,65,107,189, +195,59,240,60, +56,170,86,190, +124,223,133,62, +70,229,84,61, +224,226,176,61, +171,27,208,186, +236,88,40,190, +222,126,177,190, +24,179,121,61, +182,57,215,62, +211,126,51,189, +61,234,210,189, +67,210,205,62, +65,77,194,190, +43,26,205,61, +11,111,150,62, +98,189,76,190, +65,8,125,189, +224,105,90,62, +211,126,183,189, +249,217,177,189, +34,92,95,190, +214,133,27,62, +129,9,220,189, +122,69,160,190, +181,220,53,62, +176,112,15,62, +6,107,52,62, +194,213,2,60, +54,141,65,190, +58,176,5,63, +16,96,62,190, +250,165,106,60, +86,53,164,190, +132,64,95,187, +104,27,157,62, +47,118,0,190, +210,254,21,190, +132,13,97,62, +60,117,97,190, +141,87,174,62, +197,246,172,189, +190,226,59,190, +36,16,184,61, +253,125,219,190, +84,72,49,190, +198,150,56,61, +78,29,245,190, +51,194,13,63, +97,255,43,62, +193,36,175,189, +97,220,118,62, +26,238,222,61, +93,121,158,62, +167,238,67,62, +194,11,152,62, +255,159,9,62, +36,227,200,190, +143,123,251,189, +202,108,218,60, +185,215,15,190, +135,190,16,61, +106,36,121,61, +241,231,47,190, +108,27,174,190, +101,188,20,190, +218,126,118,61, +124,250,204,60, +164,104,237,61, +41,176,249,62, +77,253,181,190, +146,78,18,190, +27,222,52,190, +109,229,137,190, +139,136,3,190, +113,192,217,189, +28,122,144,190, +93,182,40,190, +33,35,176,190, +247,62,129,62, +240,14,238,190, +131,243,146,62, +131,61,164,61, +24,88,32,61, +6,94,113,190, +165,100,132,62, +251,234,244,62, +166,60,234,189, +179,207,18,190, +208,242,105,62, +186,16,33,188, +120,226,120,190, +26,97,25,190, +255,15,194,62, +65,181,217,60, +157,135,67,189, +86,231,135,190, +53,45,70,60, +91,39,42,188, +81,61,39,188, +214,157,135,189, +176,87,60,190, +195,235,43,62, +93,115,168,62, +216,228,170,62, +187,176,140,190, +12,91,163,189, +174,11,29,190, +248,73,198,61, +57,177,37,189, +84,90,20,62, +152,25,3,191, +130,216,128,62, +108,79,160,190, +106,216,32,62, +30,50,70,190, +119,164,97,190, +48,59,143,61, +21,221,135,62, +142,35,202,190, +187,136,176,190, +9,229,3,62, +237,58,196,189, +24,123,203,61, +241,248,110,59, +3,178,246,190, +146,219,162,190, +9,130,238,61, +86,173,173,190, +84,50,188,61, +208,196,31,62, +227,99,153,190, +81,7,48,190, +123,248,41,190, +169,72,1,62, +151,255,62,61, +40,243,195,61, +27,170,10,62, +201,56,213,190, +207,42,154,61, +6,151,223,190, +139,224,20,188, +138,95,131,190, +16,242,55,62, +70,1,154,62, +60,223,42,61, +236,140,100,187, +196,151,196,189, +168,85,16,190, +81,160,145,62, +106,83,74,62, +102,249,176,190, +123,245,118,60, +208,168,177,190, +86,111,237,189, +37,137,51,62, +204,166,174,189, +69,37,108,190, +127,105,236,189, +198,250,198,62, +134,185,57,190, +61,172,122,190, +10,124,214,189, +86,186,135,189, +140,11,75,190, +30,65,34,61, +200,198,214,189, +254,110,170,62, +68,5,191,189, +168,45,5,190, +121,133,193,190, +95,113,154,189, +142,140,175,188, +126,159,86,59, +254,156,207,61, +240,82,178,60, +10,92,104,188, +40,159,65,189, +239,34,90,61, +177,215,222,61, +34,153,44,191, +233,155,29,190, +205,29,135,62, +41,224,208,61, +22,203,197,62, +152,243,70,62, +150,216,31,191, +230,233,98,190, +121,183,128,62, +55,15,226,61, +176,118,194,62, +100,100,230,60, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference3_f32.txt +121,167,109,58, +12,128,226,61, +242,253,91,59, +236,156,48,59, +4,156,101,60, +226,114,134,57, +45,52,19,59, +131,109,171,57, +77,41,174,54, +185,223,8,61, +234,40,249,62, +151,105,219,61, +181,236,80,61, +15,212,185,56, +26,227,37,61, +84,222,226,61, +138,24,162,59, +178,148,4,60, +2,92,178,62, +56,159,234,60, +130,152,251,57, +159,250,156,57, +184,45,222,61, +27,151,180,59, +142,215,57,61, +69,63,176,61, +229,47,223,60, +173,239,130,60, +116,170,207,61, +70,109,141,62, +37,231,87,58, +89,117,23,61, +183,219,109,61, +241,233,33,61, +138,85,156,61, +137,174,21,62, +23,236,2,60, +99,29,42,61, +160,172,14,60, +205,220,41,62, +202,60,151,61, +89,154,123,62, +151,187,189,62, +105,193,130,62, +126,37,44,62, +205,141,138,57, +88,62,174,58, +72,246,82,62, +148,160,151,58, +62,34,81,60, +156,43,169,61, +2,80,217,59, +129,22,182,59, +191,225,160,60, +59,131,203,61, +180,194,167,61, +197,255,183,61, +119,222,238,61, +34,220,4,59, +45,77,136,60, +174,197,185,61, +244,161,21,58, +147,72,85,61, +66,55,74,59, +193,221,82,58, +121,94,40,61, +25,247,130,61, +226,154,37,59, +162,164,228,59, +152,61,30,54, +232,25,207,60, +155,56,230,61, +192,207,99,59, +220,63,41,62, +39,112,235,58, +188,137,34,60, +58,200,26,62, +235,240,9,62, +212,179,25,60, +27,95,165,61, +227,40,25,61, +228,238,105,59, +1,77,46,61, +97,12,246,59, +46,37,231,59, +233,72,54,61, +223,191,176,60, +213,230,48,60, +44,181,187,61, +16,176,241,60, +87,90,150,60, +96,221,237,60, +101,45,122,56, +196,224,8,61, +179,154,130,62, +26,108,4,61, +237,44,73,57, +243,10,197,61, +216,27,54,55, +107,94,180,61, +231,46,113,60, +188,104,164,60, +246,14,57,61, +177,185,57,61, +241,28,222,61, +156,157,218,59, +71,251,0,61, +178,146,247,59, +201,6,48,62, +53,171,229,60, +98,253,248,58, +159,133,91,62, +41,217,146,62, +251,45,216,60, +2,41,224,59, +67,169,94,61, +125,149,53,60, +118,133,183,61, +13,68,12,61, +93,239,168,61, +188,104,138,60, +54,115,19,62, +161,19,103,60, +167,81,46,58, +165,50,151,60, +97,25,153,58, +180,203,98,59, +185,29,226,60, +215,131,221,61, +227,168,161,60, +172,0,94,59, +90,132,25,58, +197,239,77,60, +102,202,99,62, +187,6,242,61, +55,108,156,60, +52,13,239,60, +132,244,138,61, +241,218,124,60, +251,62,45,60, +197,136,152,61, +16,0,208,60, +252,181,226,61, +34,35,116,61, +171,16,79,62, +174,205,157,61, +147,30,197,59, +203,224,187,58, +132,220,84,61, +249,21,128,61, +134,43,91,62, +122,120,72,60, +206,128,157,60, +44,250,71,61, +113,146,189,56, +179,83,98,61, +52,233,171,60, +254,153,9,62, +46,45,45,58, +172,176,11,59, +239,247,134,61, +101,127,15,57, +203,145,211,56, +109,98,204,56, +26,102,134,59, +9,156,1,61, +173,252,215,60, +253,90,207,61, +8,106,213,61, +183,164,144,61, +111,0,195,59, +81,58,180,60, +15,169,15,60, +195,158,200,58, +253,211,160,60, +20,49,123,62, +167,160,114,61, +121,204,187,61, +248,13,189,60, +131,134,15,61, +137,7,58,61, +67,234,149,59, +144,227,134,61, +10,75,21,62, +213,187,227,61, +10,63,126,60, +87,177,12,60, +46,72,23,60, +134,168,80,55, +222,92,94,62, +143,208,193,61, +20,217,79,60, +15,108,220,61, +163,104,1,60, +67,136,186,60, +115,239,171,61, +106,110,226,60, +71,29,211,60, +195,71,116,60, +100,74,5,59, +129,74,12,60, +1,130,140,60, +231,28,38,62, +134,174,173,59, +20,169,54,62, +128,247,161,56, +100,61,124,61, +205,65,247,60, +252,80,173,61, +5,92,213,58, +247,218,62,55, +152,54,13,60, +216,59,152,60, +120,248,154,61, +196,145,21,61, +226,222,228,61, +143,214,94,57, +119,165,230,61, +99,251,77,60, +60,139,235,60, +12,231,222,59, +66,192,75,61, +14,54,76,60, +179,169,16,62, +44,16,252,60, +65,151,101,61, +16,22,40,60, +155,158,134,59, +126,162,22,61, +157,97,192,58, +75,139,40,60, +21,68,212,61, +81,82,5,60, +17,156,129,60, +210,213,8,62, +167,77,174,59, +5,51,225,57, +165,77,40,55, +47,125,29,60, +4,96,232,57, +31,69,69,57, +39,250,8,59, +216,219,45,59, +253,112,53,60, +39,177,217,62, +243,133,181,60, +203,104,133,61, +246,104,31,60, +112,241,14,62, +67,159,16,61, +116,182,186,62, +166,33,60,61, +78,36,114,61, +184,183,58,60, +197,43,10,62, +143,241,65,58, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference4_f32.txt +15,152,74,189, +121,218,11,191, +157,235,194,189, +10,166,174,189, +175,34,71,62, +253,127,215,60, +38,114,159,61, +115,86,243,60, +39,69,117,59, +233,191,153,190, +173,174,146,63, +217,165,9,191, +62,244,189,62, +46,90,125,60, +35,67,169,190, +146,247,11,191, +46,159,236,189, +186,81,23,62, +101,53,120,63, +183,86,142,190, +201,101,19,189, +109,219,232,188, +71,131,10,63, +137,193,249,61, +88,39,179,62, +7,188,246,190, +169,211,138,62, +147,170,84,62, +158,233,5,191, +136,5,93,191, +176,25,65,189, +210,187,161,62, +82,174,202,190, +17,57,167,190, +220,96,232,190, +69,200,32,63, +168,94,22,190, +209,103,171,62, +63,249,28,190, +68,71,43,63, +32,143,228,62, +101,116,80,191, +0,0,128,191, +254,132,84,63, +16,109,44,191, +226,195,218,188, +247,83,117,61, +198,224,62,63, +123,218,100,189, +147,12,62,62, +239,186,241,190, +210,252,8,190, +28,202,250,61, +233,187,107,62, +19,145,4,191, +138,184,240,62, +41,26,252,190, +10,159,15,63, +121,122,151,189, +204,250,88,62, +96,80,253,62, +131,193,32,61, +230,236,191,62, +31,225,186,61, +173,213,62,189, +21,134,170,62, +155,176,212,190, +71,30,169,189, +112,131,12,190, +176,80,37,59, +251,186,133,62, +91,255,12,63, +180,90,198,189, +17,248,42,191, +10,150,142,61, +128,139,39,62, +169,127,35,191, +13,89,26,63, +107,237,34,190, +44,0,239,190, +183,163,162,62, +110,0,201,61, +104,128,173,190, +122,195,17,62, +186,71,13,62, +73,110,177,62, +250,21,119,190, +146,202,46,62, +81,161,254,62, +86,119,144,190, +194,227,99,190, +171,81,143,190, +255,220,79,188, +127,192,153,62, +134,101,84,191, +142,58,151,62, +230,101,186,188, +70,113,2,63, +89,88,177,59, +84,154,249,190, +183,23,76,62, +226,77,110,62, +142,198,178,190, +242,24,179,62, +12,126,10,191, +207,101,9,62, +73,64,149,62, +234,54,18,190, +190,91,46,63, +8,212,140,62, +220,161,146,189, +71,182,66,63, +211,55,97,191, +74,161,136,190, +14,33,11,62, +108,25,196,190, +225,22,49,190, +82,198,251,190, +158,164,155,190, +223,143,241,190, +157,166,90,190, +69,148,31,63, +78,197,71,62, +185,130,45,189, +117,135,100,62, +37,246,101,189, +93,233,197,189, +27,188,139,62, +72,78,10,63, +161,77,108,62, +33,207,195,189, +64,212,34,189, +64,151,60,190, +95,88,70,191, +58,145,16,63, +182,113,104,62, +22,173,143,62, +234,20,219,62, +10,249,80,62, +208,249,44,62, +113,137,229,62, +53,5,134,62, +31,235,11,63, +181,86,205,190, +90,27,61,63, +195,119,233,190, +197,119,2,190, +230,190,126,189, +65,188,191,62, +186,86,210,190, +78,142,66,191, +58,18,58,62, +221,62,105,62, +147,215,185,190, +60,228,127,60, +250,180,197,62, +45,174,115,62, +100,40,26,191, +237,240,44,189, +197,82,155,61, +132,234,215,62, +7,109,157,188, +83,42,135,60, +177,217,132,60, +190,117,215,61, +47,157,149,62, +180,145,136,190, +252,207,5,191, +217,192,7,191, +89,133,223,62, +223,195,1,62, +88,129,121,62, +224,131,29,190, +12,159,131,61, +212,177,107,190, +197,72,80,63, +237,179,204,190, +31,177,254,62, +195,138,127,190, +238,112,157,62, +119,62,179,62, +194,142,227,189, +56,218,215,190, +204,146,32,63, +213,59,12,63, +252,139,81,190, +53,225,27,62, +178,163,33,190, +61,213,189,187, +197,247,67,63, +156,94,1,63, +200,118,61,190, +213,246,9,63, +130,127,21,190, +231,212,125,190, +154,178,243,62, +7,213,139,62, +22,5,135,62, +27,102,77,190, +71,185,151,189, +51,168,27,190, +100,77,92,190, +157,96,41,63, +164,238,244,189, +17,157,49,63, +15,135,108,60, +229,183,208,62, +4,31,146,190, +166,172,244,190, +100,188,135,189, +214,141,181,59, +246,42,28,62, +137,79,101,62, +221,92,231,190, +209,184,160,190, +85,149,12,63, +93,45,196,188, +173,32,13,63, +146,156,60,62, +61,158,142,190, +0,189,10,62, +96,150,187,62, +146,204,59,62, +83,16,30,191, +211,136,147,62, +158,32,199,62, +102,97,42,62, +5,163,215,61, +22,75,161,62, +234,227,128,189, +198,156,42,62, +59,99,7,191, +202,189,23,62, +20,150,83,62, +89,186,25,63, +190,94,245,61, +131,115,11,61, +143,125,170,187, +16,236,36,190, +209,167,13,189, +114,148,184,60, +192,206,153,61, +13,72,173,189, +20,5,49,190, +109,27,137,63, +124,102,122,62, +83,170,214,190, +199,236,37,190, +22,31,29,191, +160,10,158,190, +83,244,125,63, +250,64,180,62, +113,127,204,190, +67,147,51,190, +247,121,26,191, +92,4,55,189, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference5_f32.txt +129,169,12,63, +61,237,133,63, +116,93,24,63, +193,212,21,63, +169,110,156,62, +0,136,242,62, +119,35,216,62, +153,202,240,62, +118,21,254,62, +244,223,76,63, +90,93,37,191, +237,210,132,63, +132,23,4,62, +47,21,248,62, +145,161,84,63, +201,251,133,63, +230,147,29,63, +35,87,180,62, +203,106,240,190, +92,43,71,63, +93,54,9,63, +219,70,7,63, +107,52,40,189, +158,143,193,62, +81,177,25,62, +3,94,123,63, +173,88,106,62, +182,170,149,62, +207,244,130,63, +196,130,174,63, +155,17,12,63, +92,136,60,62, +41,87,101,63, +136,156,83,63, +110,48,116,63, +20,33,3,190, +170,151,37,63, +94,48,41,62, +80,62,39,63, +15,29,45,190, +2,135,91,61, +51,58,168,63, +0,0,192,63, +252,9,169,190, +136,54,150,63, +31,214,6,63, +129,85,225,62, +26,131,123,190, +168,77,14,63, +182,249,160,62, +119,221,120,63, +52,63,34,63, +121,77,193,62, +12,34,138,62, +138,72,130,63, +93,119,244,60, +21,13,126,63, +159,240,121,189, +79,239,18,63, +154,130,147,62, +20,232,171,59, +208,231,235,62, +53,38,0,62, +184,71,209,62, +91,237,11,63, +214,243,42,62, +77,88,106,63, +201,35,21,63, +220,32,35,63, +95,181,254,62, +11,138,116,62, +179,245,79,189, +86,203,24,63, +9,124,149,63, +125,90,220,62, +64,58,172,62, +212,191,145,63, +104,200,210,189, +91,187,40,63, +22,128,119,63, +146,184,58,62, +228,191,205,62, +52,192,86,63, +67,30,183,62, +35,92,185,62, +110,35,29,62, +127,197,61,63, +183,154,168,62, +69,87,47,59, +171,59,72,63, +241,248,56,63, +214,168,71,63, +116,63,3,63, +2,127,76,62, +195,50,170,63, +228,138,81,62, +47,211,5,63, +135,81,28,188, +159,58,253,62, +42,205,124,63, +37,244,153,62, +15,217,136,62, +71,99,89,63, +28,206,25,62, +6,63,133,63, +25,77,187,62, +110,127,85,62, +186,141,36,63, +250,110,57,190, +240,87,102,62, +60,84,18,63, +142,108,133,190, +234,155,176,63, +165,80,68,63, +121,111,186,62, +182,12,98,63, +184,69,44,63, +41,227,125,63, +79,210,77,63, +240,199,120,63, +167,169,54,63, +41,162,252,189, +89,29,156,62, +44,216,10,63, +69,188,141,62, +98,95,14,63, +44,189,24,63, +202,135,104,62, +131,228,36,189, +47,217,137,62, +228,121,24,63, +68,45,10,63, +208,37,47,63, +48,44,163,63, +210,137,132,189, +37,199,139,62, +211,165,96,62, +88,172,147,61, +123,131,151,62, +24,131,169,62, +116,180,83,61, +150,245,115,62, +242,177,62,189, +90,171,102,63, +105,109,116,190, +225,187,116,63, +241,157,32,63, +238,235,15,63, +126,135,0,62, +93,43,105,63, +39,71,161,63, +227,246,162,62, +145,96,139,62, +201,235,92,63, +222,0,248,62, +23,44,233,61, +233,40,134,62, +50,20,141,63, +15,207,10,63, +79,43,217,62, +241,85,160,61, +104,235,4,63, +91,141,247,62, +101,178,247,62, +144,34,202,62, +162,197,84,62, +218,72,68,63, +254,231,130,63, +109,224,131,63, +156,234,129,61, +17,30,191,62, +84,63,131,62, +248,96,39,63, +61,24,223,62, +117,236,58,63, +138,145,160,190, +246,89,102,63, +136,112,39,59, +177,226,63,63, +35,30,69,62, +19,131,25,62, +216,113,28,63, +28,237,107,63, +49,75,2,190, +81,189,67,189, +255,98,52,63, +101,15,178,62, +237,104,40,63, +170,123,1,63, +137,239,135,190, +0,78,175,187, +178,93,47,63, +80,109,31,189, +224,95,37,63, +58,117,63,63, +89,214,196,60, +241,85,104,62, +211,245,113,62, +135,89,51,63, +41,247,18,63, +13,234,38,63, +89,19,55,63, +117,130,37,190, +212,157,30,63, +67,116,70,190, +200,155,248,62, +108,32,189,61, +130,15,73,63, +83,86,122,63, +141,247,16,63, +201,41,253,62, +133,234,177,62, +60,88,141,62, +110,174,115,63, +105,92,80,63, +82,85,73,189, +107,33,6,63, +211,10,82,189, +183,177,161,62, +30,79,71,63, +128,161,186,62, +64,211,8,62, +183,25,162,62, +42,8,143,63, +90,238,88,62, +135,125,227,61, +77,207,170,62, +63,23,202,62, +212,105,61,62, +125,28,16,63, +157,177,170,62, +157,177,131,63, +27,33,180,62, +246,52,150,62, +202,210,205,189, +80,168,194,62, +144,145,238,62, +251,84,1,63, +4,59,41,63, +125,218,8,63, +185,118,244,62, +80,140,217,62, +2,169,21,63, +69,65,44,63, +217,54,18,191, +194,204,130,62, +42,85,107,63, +50,123,41,63, +139,143,142,63, +80,5,79,63, +165,232,251,190, +11,126,23,62, +185,63,102,63, +209,228,44,63, +251,60,141,63, +70,112,11,63, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference6_f32.txt +15,152,202,60, +121,218,139,62, +157,235,66,61, +10,166,46,61, +175,34,199,189, +253,127,87,188, +38,114,31,189, +115,86,115,188, +39,69,245,186, +233,191,25,62, +173,174,18,191, +217,165,137,62, +62,244,61,190, +46,90,253,187, +35,67,41,62, +146,247,139,62, +46,159,108,61, +186,81,151,189, +101,53,248,190, +183,86,14,62, +201,101,147,60, +109,219,104,60, +71,131,138,190, +137,193,121,189, +88,39,51,190, +7,188,118,62, +169,211,10,190, +147,170,212,189, +158,233,133,62, +136,5,221,62, +176,25,193,60, +210,187,33,190, +82,174,74,62, +17,57,39,62, +220,96,104,62, +69,200,160,190, +168,94,150,61, +209,103,43,190, +63,249,156,61, +68,71,171,190, +32,143,100,190, +101,116,208,62, +0,0,0,63, +254,132,212,190, +16,109,172,62, +226,195,90,60, +247,83,245,188, +198,224,190,190, +123,218,228,60, +147,12,190,189, +239,186,113,62, +210,252,136,61, +28,202,122,189, +233,187,235,189, +19,145,132,62, +138,184,112,190, +41,26,124,62, +10,159,143,190, +121,122,23,61, +204,250,216,189, +96,80,125,190, +131,193,160,188, +230,236,63,190, +31,225,58,189, +173,213,190,60, +21,134,42,190, +155,176,84,62, +71,30,41,61, +112,131,140,61, +176,80,165,186, +251,186,5,190, +91,255,140,190, +180,90,70,61, +17,248,170,62, +10,150,14,189, +128,139,167,189, +169,127,163,62, +13,89,154,190, +107,237,162,61, +44,0,111,62, +183,163,34,190, +110,0,73,189, +104,128,45,62, +122,195,145,189, +186,71,141,189, +73,110,49,190, +250,21,247,61, +146,202,174,189, +81,161,126,190, +86,119,16,62, +194,227,227,61, +171,81,15,62, +255,220,207,59, +127,192,25,190, +134,101,212,62, +142,58,23,190, +230,101,58,60, +70,113,130,190, +89,88,49,187, +84,154,121,62, +183,23,204,189, +226,77,238,189, +142,198,50,62, +242,24,51,190, +12,126,138,62, +207,101,137,189, +73,64,21,190, +234,54,146,61, +190,91,174,190, +8,212,12,190, +220,161,18,61, +71,182,194,190, +211,55,225,62, +74,161,8,62, +14,33,139,189, +108,25,68,62, +225,22,177,61, +82,198,123,62, +158,164,27,62, +223,143,113,62, +157,166,218,61, +69,148,159,190, +78,197,199,189, +185,130,173,60, +117,135,228,189, +37,246,229,60, +93,233,69,61, +27,188,11,190, +72,78,138,190, +161,77,236,189, +33,207,67,61, +64,212,162,60, +64,151,188,61, +95,88,198,62, +58,145,144,190, +182,113,232,189, +22,173,15,190, +234,20,91,190, +10,249,208,189, +208,249,172,189, +113,137,101,190, +53,5,6,190, +31,235,139,190, +181,86,77,62, +90,27,189,190, +195,119,105,62, +197,119,130,61, +230,190,254,60, +65,188,63,190, +186,86,82,62, +78,142,194,62, +58,18,186,189, +221,62,233,189, +147,215,57,62, +60,228,255,187, +250,180,69,190, +45,174,243,189, +100,40,154,62, +237,240,172,60, +197,82,27,189, +132,234,87,190, +7,109,29,60, +83,42,7,188, +177,217,4,188, +190,117,87,189, +47,157,21,190, +180,145,8,62, +252,207,133,62, +217,192,135,62, +89,133,95,190, +223,195,129,189, +88,129,249,189, +224,131,157,61, +12,159,3,189, +212,177,235,61, +197,72,208,190, +237,179,76,62, +31,177,126,190, +195,138,255,61, +238,112,29,190, +119,62,51,190, +194,142,99,61, +56,218,87,62, +204,146,160,190, +213,59,140,190, +252,139,209,61, +53,225,155,189, +178,163,161,61, +61,213,61,59, +197,247,195,190, +156,94,129,190, +200,118,189,61, +213,246,137,190, +130,127,149,61, +231,212,253,61, +154,178,115,190, +7,213,11,190, +22,5,7,190, +27,102,205,61, +71,185,23,61, +51,168,155,61, +100,77,220,61, +157,96,169,190, +164,238,116,61, +17,157,177,190, +15,135,236,187, +229,183,80,190, +4,31,18,62, +166,172,116,62, +100,188,7,61, +214,141,53,187, +246,42,156,189, +137,79,229,189, +221,92,103,62, +209,184,32,62, +85,149,140,190, +93,45,68,60, +173,32,141,190, +146,156,188,189, +61,158,14,62, +0,189,138,189, +96,150,59,190, +146,204,187,189, +83,16,158,62, +211,136,19,190, +158,32,71,190, +102,97,170,189, +5,163,87,189, +22,75,33,190, +234,227,0,61, +198,156,170,189, +59,99,135,62, +202,189,151,189, +20,150,211,189, +89,186,153,190, +190,94,117,189, +131,115,139,188, +143,125,42,59, +16,236,164,61, +209,167,141,60, +114,148,56,188, +192,206,25,189, +13,72,45,61, +20,5,177,61, +109,27,9,191, +124,102,250,189, +83,170,86,62, +199,236,165,61, +22,31,157,62, +160,10,30,62, +83,244,253,190, +250,64,52,190, +113,127,76,62, +67,147,179,61, +247,121,154,62, +92,4,183,60, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference7_f32.txt +75,59,235,61, +0, +0, +0, +0, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference8_f32.txt +154,159,9,62, +0, +0, +0, +0, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference9_f32.txt +246,160,9,62, +0, +0, +0, +0, +// Patterns\DSP\BasicMaths\BasicMathsF32\Reference10_f32.txt +15,152,74,61, +121,218,11,63, +157,235,194,61, +10,166,174,61, +175,34,71,62, +253,127,215,60, +38,114,159,61, +115,86,243,60, +39,69,117,59, +233,191,153,62, +173,174,146,63, +217,165,9,63, +62,244,189,62, +46,90,125,60, +35,67,169,62, +146,247,11,63, +46,159,236,61, +186,81,23,62, +101,53,120,63, +183,86,142,62, +201,101,19,61, +109,219,232,60, +71,131,10,63, +137,193,249,61, +88,39,179,62, +7,188,246,62, +169,211,138,62, +147,170,84,62, +158,233,5,63, +136,5,93,63, +176,25,65,61, +210,187,161,62, +82,174,202,62, +17,57,167,62, +220,96,232,62, +69,200,32,63, +168,94,22,62, +209,103,171,62, +63,249,28,62, +68,71,43,63, +32,143,228,62, +101,116,80,63, +0,0,128,63, +254,132,84,63, +16,109,44,63, +226,195,218,60, +247,83,117,61, +198,224,62,63, +123,218,100,61, +147,12,62,62, +239,186,241,62, +210,252,8,62, +28,202,250,61, +233,187,107,62, +19,145,4,63, +138,184,240,62, +41,26,252,62, +10,159,15,63, +121,122,151,61, +204,250,88,62, +96,80,253,62, +131,193,32,61, +230,236,191,62, +31,225,186,61, +173,213,62,61, +21,134,170,62, +155,176,212,62, +71,30,169,61, +112,131,12,62, +176,80,37,59, +251,186,133,62, +91,255,12,63, +180,90,198,61, +17,248,42,63, +10,150,142,61, +128,139,39,62, +169,127,35,63, +13,89,26,63, +107,237,34,62, +44,0,239,62, +183,163,162,62, +110,0,201,61, +104,128,173,62, +122,195,17,62, +186,71,13,62, +73,110,177,62, +250,21,119,62, +146,202,46,62, +81,161,254,62, +86,119,144,62, +194,227,99,62, +171,81,143,62, +255,220,79,60, +127,192,153,62, +134,101,84,63, +142,58,151,62, +230,101,186,60, +70,113,2,63, +89,88,177,59, +84,154,249,62, +183,23,76,62, +226,77,110,62, +142,198,178,62, +242,24,179,62, +12,126,10,63, +207,101,9,62, +73,64,149,62, +234,54,18,62, +190,91,46,63, +8,212,140,62, +220,161,146,61, +71,182,66,63, +211,55,97,63, +74,161,136,62, +14,33,11,62, +108,25,196,62, +225,22,49,62, +82,198,251,62, +158,164,155,62, +223,143,241,62, +157,166,90,62, +69,148,31,63, +78,197,71,62, +185,130,45,61, +117,135,100,62, +37,246,101,61, +93,233,197,61, +27,188,139,62, +72,78,10,63, +161,77,108,62, +33,207,195,61, +64,212,34,61, +64,151,60,62, +95,88,70,63, +58,145,16,63, +182,113,104,62, +22,173,143,62, +234,20,219,62, +10,249,80,62, +208,249,44,62, +113,137,229,62, +53,5,134,62, +31,235,11,63, +181,86,205,62, +90,27,61,63, +195,119,233,62, +197,119,2,62, +230,190,126,61, +65,188,191,62, +186,86,210,62, +78,142,66,63, +58,18,58,62, +221,62,105,62, +147,215,185,62, +60,228,127,60, +250,180,197,62, +45,174,115,62, +100,40,26,63, +237,240,44,61, +197,82,155,61, +132,234,215,62, +7,109,157,60, +83,42,135,60, +177,217,132,60, +190,117,215,61, +47,157,149,62, +180,145,136,62, +252,207,5,63, +217,192,7,63, +89,133,223,62, +223,195,1,62, +88,129,121,62, +224,131,29,62, +12,159,131,61, +212,177,107,62, +197,72,80,63, +237,179,204,62, +31,177,254,62, +195,138,127,62, +238,112,157,62, +119,62,179,62, +194,142,227,61, +56,218,215,62, +204,146,32,63, +213,59,12,63, +252,139,81,62, +53,225,27,62, +178,163,33,62, +61,213,189,59, +197,247,67,63, +156,94,1,63, +200,118,61,62, +213,246,9,63, +130,127,21,62, +231,212,125,62, +154,178,243,62, +7,213,139,62, +22,5,135,62, +27,102,77,62, +71,185,151,61, +51,168,27,62, +100,77,92,62, +157,96,41,63, +164,238,244,61, +17,157,49,63, +15,135,108,60, +229,183,208,62, +4,31,146,62, +166,172,244,62, +100,188,135,61, +214,141,181,59, +246,42,28,62, +137,79,101,62, +221,92,231,62, +209,184,160,62, +85,149,12,63, +93,45,196,60, +173,32,13,63, +146,156,60,62, +61,158,142,62, +0,189,10,62, +96,150,187,62, +146,204,59,62, +83,16,30,63, +211,136,147,62, +158,32,199,62, +102,97,42,62, +5,163,215,61, +22,75,161,62, +234,227,128,61, +198,156,42,62, +59,99,7,63, +202,189,23,62, +20,150,83,62, +89,186,25,63, +190,94,245,61, +131,115,11,61, +143,125,170,59, +16,236,36,62, +209,167,13,61, +114,148,184,60, +192,206,153,61, +13,72,173,61, +20,5,49,62, +109,27,137,63, +124,102,122,62, +83,170,214,62, +199,236,37,62, +22,31,29,63, +160,10,158,62, +83,244,125,63, +250,64,180,62, +113,127,204,62, +67,147,51,62, +247,121,26,63, +92,4,55,61, +// Patterns\DSP\SVM\SVMF32\Samples1_f32.txt +191,187,14,62, +10,146,91,189, +146,129,23,61, +247,45,107,188, +234,183,155,189, +2,91,59,188, +55,13,253,59, +88,56,41,60, +37,44,134,188, +202,56,208,61, +138,119,141,63, +13,28,228,61, +134,184,143,189, +89,99,30,189, +21,113,42,61, +63,208,80,61, +134,134,82,61, +216,99,89,189, +141,138,107,61, +215,56,26,62, +170,184,142,63, +137,173,26,62, +117,158,72,61, +109,187,126,187, +236,116,113,60, +62,244,242,189, +60,23,141,61, +79,129,210,60, +59,138,225,61, +11,95,43,61, +176,188,144,61, +190,162,54,190, +151,105,77,61, +219,82,155,61, +9,5,0,62, +181,155,34,189, +112,131,67,58, +59,163,254,189, +215,144,107,61, +204,33,123,189, +76,76,195,189, +80,111,250,189, +206,209,74,189, +246,18,4,189, +211,247,250,59, +85,172,250,60, +127,34,132,60, +57,155,110,61, +250,217,76,189, +24,32,23,190, +71,91,224,60, +28,190,8,190, +112,240,85,189, +31,40,168,59, +228,217,26,61, +13,195,0,190, +18,52,185,61, +237,196,180,59, +33,3,245,61, +22,51,136,61, +98,105,129,63, +235,150,120,189, +130,120,112,59, +187,19,22,60, +138,208,13,62, +205,86,41,62, +22,191,155,189, +240,252,177,60, +247,192,8,190, +86,143,75,60, +129,151,122,63, +154,204,126,61, +204,60,8,62, +246,130,41,61, +135,177,83,60, +235,7,128,61, +194,243,237,188, +227,100,133,61, +38,164,187,61, +212,143,17,190, +255,114,98,61, +85,143,24,188, +59,251,248,188, +12,255,137,189, +146,184,210,188, +119,20,24,190, +213,176,95,189, +130,223,83,60, +28,31,168,60, +131,95,20,61, +96,88,191,60, +159,84,204,186, +234,93,52,61, +226,15,163,186, +190,171,119,61, +85,214,131,188, +99,118,17,189, +18,128,52,190, +145,199,23,62, +232,82,185,189, +166,207,83,63, +111,151,135,188, +5,72,215,61, +86,57,216,61, +98,232,119,189, +170,26,88,61, +210,231,91,189, +125,27,125,61, +147,129,25,189, +243,255,0,189, +209,33,126,63, +163,81,139,189, +57,49,19,61, +58,70,52,61, +11,113,243,60, +124,140,140,189, +118,2,121,61, +225,188,131,188, +162,56,63,189, +24,249,235,189, +218,195,158,189, +95,219,251,60, +224,64,7,62, +165,102,84,190, +90,134,210,189, +53,200,62,189, +100,13,224,61, +130,230,136,189, +249,180,30,189, +128,153,178,61, +49,24,129,189, +125,52,102,60, +84,251,148,59, +224,162,87,61, +50,41,28,190, +39,62,52,61, +20,98,11,190, +234,15,226,189, +187,67,6,190, +16,242,59,188, +148,229,120,60, +152,219,21,189, +175,60,244,187, +150,72,34,60, +23,108,26,61, +168,157,188,189, +12,72,91,60, +105,22,104,61, +227,55,110,61, +167,203,223,188, +42,214,135,63, +161,197,46,61, +106,1,181,60, +112,217,19,190, +110,210,49,188, +193,145,14,62, +62,235,183,61, +56,234,161,60, +76,49,138,60, +169,206,176,60, +158,192,133,63, +250,240,54,190, +7,162,41,61, +54,18,6,190, +116,74,151,189, +149,154,100,189, +165,117,68,189, +159,119,234,189, +219,93,20,190, +1,166,143,61, +12,84,130,63, +14,56,21,60, +232,229,44,61, +173,34,227,188, +149,89,106,187, +235,203,119,61, +30,39,216,61, +134,171,253,60, +171,236,20,62, +185,26,152,189, +13,165,113,63, +159,117,133,189, +203,251,24,61, +45,138,111,60, +150,81,177,60, +209,136,38,189, +104,253,98,60, +162,139,67,61, +95,165,129,189, +93,244,225,189, +24,7,138,63, +39,147,8,62, +11,144,134,59, +7,209,255,61, +239,62,6,62, +203,39,171,189, +198,62,227,61, +105,133,226,60, +75,166,187,58, +76,246,142,59, +134,254,136,63, +224,51,76,61, +45,166,92,188, +103,204,6,62, +237,147,46,62, +205,207,88,189, +48,169,179,189, +213,48,226,187, +197,115,151,189, +178,43,254,61, +245,120,64,190, +210,210,66,61, +145,103,189,58, +244,198,61,189, +245,126,0,188, +130,86,161,60, +229,18,3,62, +194,113,6,62, +206,176,151,61, +107,41,75,189, +196,15,139,188, +220,106,66,61, +188,72,71,189, +165,21,237,188, +68,195,36,62, +199,112,69,61, +251,174,22,62, +100,224,211,61, +27,127,230,189, +127,198,40,190, +61,220,107,189, +44,140,77,188, +208,56,1,62, +211,137,172,58, +156,178,45,60, +133,42,231,60, +174,250,217,61, +70,121,51,60, +221,94,150,189, +55,114,127,189, +42,202,31,189, +10,141,9,190, +44,70,96,189, +181,5,234,61, +50,134,151,189, +87,230,116,61, +5,172,169,189, +240,212,73,62, +57,169,80,61, +160,77,100,189, +230,109,110,63, +103,37,253,60, +57,208,68,61, +249,168,49,189, +35,98,21,60, +31,58,101,61, +248,239,141,188, +196,95,173,189, +250,190,181,189, +158,110,95,61, +30,17,126,63, +167,67,78,62, +141,244,22,61, +250,181,62,188, +153,248,184,188, +98,59,153,189, +16,125,152,59, +39,159,155,189, +167,185,107,61, +141,37,109,188, +37,50,133,63, +178,40,236,60, +100,129,133,189, +151,122,169,189, +176,17,167,189, +202,166,173,188, +166,130,82,190, +232,76,7,190, +241,143,93,189, +165,203,113,61, +209,106,194,189, +81,159,10,61, +85,253,132,61, +37,125,48,189, +100,149,117,61, +24,225,31,189, +46,105,31,187, +134,102,68,62, +67,91,37,62, +182,217,206,61, +63,212,133,63, +29,28,150,61, +198,49,90,189, +35,215,4,62, +38,48,205,187, +61,177,31,188, +219,98,210,61, +179,190,153,189, +0,152,243,60, +158,223,237,60, +172,18,124,63, +165,252,134,61, +91,137,5,190, +17,115,104,189, +175,25,9,61, +94,201,42,62, +199,172,48,189, +58,86,12,62, +89,245,178,60, +185,56,1,62, +5,148,57,189, +228,211,17,189, +170,141,38,60, +183,177,16,61, +220,51,101,60, +9,171,170,61, +93,107,152,186, +188,160,254,189, +62,1,220,188, +34,42,235,61, +58,178,101,189, +233,21,148,61, +17,88,157,189, +44,200,2,189, +239,247,243,188, +181,40,64,60, +226,78,143,188, +251,26,79,189, +75,80,199,188, +97,117,35,190, +168,15,117,61, +205,106,41,61, +162,216,247,188, +117,225,191,189, +32,176,67,60, +154,146,19,189, +207,218,209,188, +14,157,16,187, +213,21,201,60, +190,70,2,61, +41,28,120,63, +52,173,162,189, +221,240,131,61, +106,59,211,189, +76,111,117,188, +229,140,32,187, +246,75,106,61, +50,112,79,61, +93,48,140,61, +220,196,57,62, +107,105,35,190, +58,13,151,60, +199,237,16,189, +201,220,165,189, +146,219,179,61, +197,101,201,60, +62,52,243,61, +36,135,165,61, +201,160,227,61, +50,253,82,60, +81,94,144,189, +139,65,183,61, +89,236,189,61, +159,105,200,61, +215,223,83,189, +143,43,77,61, +17,122,167,189, +25,113,149,60, +186,119,247,188, +223,92,198,189, +143,102,212,60, +214,159,65,61, +97,226,163,189, +97,42,1,62, +221,111,110,60, +206,62,199,188, +209,46,243,61, +84,83,4,62, +34,22,39,62, +154,237,7,189, +177,177,151,188, +212,58,6,189, +7,9,65,188, +187,181,137,60, +85,160,73,188, +47,85,178,189, +90,151,8,190, +65,227,251,61, +237,195,155,61, +11,151,231,188, +127,34,135,63, +137,66,150,61, +39,250,15,189, +153,80,146,62, +119,231,247,61, +148,26,103,190, +215,103,38,190, +16,42,62,60, +213,179,156,187, +180,110,49,61, +56,150,32,190, +200,42,8,189, +239,159,114,189, +215,13,102,189, +141,223,159,189, +128,152,42,58, +213,149,157,185, +0,82,81,189, +236,47,36,190, +24,235,31,190, +249,206,140,63, +123,218,200,60, +112,194,143,60, +191,173,179,61, +243,9,165,61, +251,16,162,189, +231,19,155,60, +253,126,248,60, +113,145,28,187, +183,22,181,188, +160,9,114,61, +58,163,75,188, +236,93,66,189, +122,142,197,60, +168,131,181,189, +118,199,6,189, +120,184,133,188, +102,173,181,189, +135,247,236,189, +162,181,118,60, +136,48,136,63, +201,169,162,61, +153,22,2,190, +190,22,203,188, +129,137,54,61, +119,120,128,61, +25,185,214,189, +171,196,161,61, +240,159,185,61, +200,211,96,60, +42,131,157,60, +215,121,56,62, +255,73,170,61, +89,200,70,190, +90,89,211,61, +180,165,41,189, +15,4,156,189, +19,97,43,62, +251,184,178,61, +209,182,101,61, +255,117,175,60, +231,82,234,189, +167,224,13,62, +10,1,131,189, +233,156,161,60, +105,162,176,61, +220,28,183,189, +34,101,152,189, +34,77,118,189, +254,120,152,187, +13,50,127,63, +109,241,167,59, +63,86,18,62, +77,145,27,62, +96,214,243,61, +90,219,171,188, +218,205,64,189, +136,254,10,190, +193,3,143,61, +30,207,98,61, +55,133,113,63, +71,76,186,60, +161,147,199,59, +76,38,195,60, +251,143,173,61, +127,53,177,61, +1,147,77,189, +114,192,204,188, +35,96,4,190, +190,143,224,188, +89,81,126,63, +164,249,12,61, +203,77,59,61, +204,70,18,189, +12,240,31,61, +158,178,149,189, +237,65,241,189, +76,154,138,190, +131,98,61,60, +32,54,24,189, +234,122,121,63, +215,41,209,61, +104,15,234,187, +144,57,198,188, +34,198,98,61, +86,49,56,188, +65,58,165,59, +211,244,236,188, +81,51,111,189, +33,59,8,61, +244,103,130,63, +192,208,154,61, +215,231,145,61, +137,22,45,190, +240,185,86,61, +182,42,142,61, +61,117,107,189, +168,20,14,62, +206,189,224,189, +157,144,91,189, +120,241,218,61, +119,253,201,61, +58,107,12,61, +106,197,1,62, +238,118,160,189, +172,106,8,62, +123,198,167,189, +100,55,137,189, +138,194,157,189, +200,32,171,189, +167,15,72,61, +158,218,161,188, +212,158,227,189, +215,180,240,186, +83,183,68,61, +12,142,162,189, +89,102,132,60, +109,255,141,189, +83,246,151,188, +247,70,101,61, +184,194,129,63, +211,90,236,187, +157,99,127,61, +153,80,215,188, +155,36,76,61, +142,90,61,61, +164,101,100,60, +63,180,106,61, +254,148,247,60, +254,162,42,61, +169,131,242,189, +49,19,135,189, +43,168,88,60, +204,211,224,61, +64,79,162,61, +2,112,7,190, +242,18,23,61, +254,171,40,59, +89,252,24,61, +161,212,129,60, +94,159,172,188, +99,13,134,60, +42,76,5,189, +94,188,52,60, +18,52,152,188, +42,40,102,62, +65,168,193,187, +241,116,148,189, +158,254,64,190, +248,45,80,189, +57,18,118,63, +175,144,122,189, +209,77,196,60, +199,142,147,189, +30,216,60,190, +128,190,237,60, +194,118,52,190, +69,91,103,59, +187,122,223,189, +18,30,179,189, +97,29,144,189, +209,184,4,190, +170,206,207,61, +216,145,182,189, +253,88,21,190, +102,54,241,60, +132,219,131,188, +35,56,248,188, +239,101,66,188, +117,120,167,189, +86,200,105,63, +254,115,177,188, +8,28,6,190, +65,136,92,61, +65,37,234,60, +218,114,231,61, +215,122,249,189, +138,163,173,61, +100,42,82,189, +226,235,198,188, +188,152,246,188, +249,32,111,189, +15,121,0,188, +172,84,108,190, +169,58,82,189, +56,121,159,189, +165,168,40,62, +191,224,26,189, +95,241,61,189, +173,171,136,59, +109,233,119,63, +32,118,160,61, +157,145,46,61, +125,194,224,60, +171,130,164,61, +202,100,65,60, +3,187,71,60, +155,231,64,189, +175,214,252,188, +149,162,179,61, +246,229,154,63, +222,102,151,58, +158,114,168,188, +174,132,216,189, +234,251,23,190, +199,195,98,61, +56,103,218,61, +196,69,159,60, +110,63,28,190, +5,11,52,190, +211,48,120,63, +208,100,186,59, +157,124,250,188, +77,19,100,190, +101,35,234,60, +21,161,170,189, +63,24,200,61, +41,152,31,189, +52,122,65,188, +76,253,251,184, +137,138,199,60, +145,152,213,59, +196,193,47,190, +115,40,112,60, +174,188,6,189, +177,216,25,62, +33,201,137,188, +240,119,45,60, +166,231,52,61, +20,209,168,189, +172,161,108,63, +158,166,231,59, +146,36,141,61, +20,73,166,59, +210,37,69,189, +115,254,121,189, +127,111,116,189, +12,33,125,59, +142,18,92,190, +6,84,176,189, +1,133,200,61, +188,79,33,190, +233,222,133,189, +107,50,178,189, +179,152,212,61, +243,225,177,189, +31,243,171,60, +194,72,227,189, +174,24,241,60, +159,253,50,189, +1,185,43,190, +95,74,104,60, +207,206,20,60, +22,58,213,189, +212,245,116,188, +32,60,210,59, +184,103,136,61, +93,249,99,189, +249,127,220,61, +17,149,250,61, +207,209,137,189, +75,127,222,188, +8,69,176,61, +160,57,78,189, +134,180,178,57, +90,236,159,188, +241,7,116,60, +219,206,108,189, +216,37,85,189, +118,20,128,61, +215,219,134,63, +223,122,229,187, +37,130,155,189, +206,193,7,189, +202,33,160,189, +52,59,182,188, +248,115,149,60, +254,40,141,187, +44,87,173,60, +111,242,204,61, +181,137,70,63, +239,196,249,60, +75,50,128,61, +27,7,62,189, +176,197,194,61, +33,140,227,189, +131,63,204,61, +62,220,44,189, +49,165,206,189, +229,21,159,189, +195,47,132,63, +171,138,164,189, +254,136,3,59, +205,172,172,189, +218,137,158,185, +154,117,241,189, +238,102,137,189, +126,91,125,61, +248,187,251,188, +248,78,24,190, +252,232,4,62, +110,169,183,61, +229,193,99,189, +45,87,128,189, +186,136,193,189, +96,97,62,190, +32,177,27,62, +236,245,19,61, +8,23,166,188, +141,71,42,190, +104,178,131,63, +56,179,234,61, +96,247,9,61, +226,36,210,189, +4,65,58,189, +28,227,218,188, +232,244,70,60, +190,48,10,190, +103,142,10,61, +11,50,153,188, +135,160,90,61, +3,237,60,190, +177,31,63,62, +5,53,95,62, +201,194,227,61, +231,118,239,61, +255,199,91,189, +174,33,11,190, +220,59,64,62, +156,2,145,61, +69,119,250,188, +166,26,24,189, +149,44,27,189, +96,116,3,190, +108,28,21,61, +35,253,178,188, +165,229,174,61, +107,211,192,61, +230,178,164,187, +178,62,90,189, +226,49,142,63, +204,127,137,61, +229,43,4,190, +161,66,86,61, +4,107,36,62, +71,168,120,60, +124,169,82,61, +246,79,45,189, +148,177,122,60, +167,193,45,189, +238,85,146,63, +4,97,64,190, +120,192,132,189, +207,246,23,189, +205,212,50,189, +95,128,6,189, +31,204,183,60, +210,15,226,61, +253,149,108,189, +96,106,29,189, +63,5,121,63, +207,240,221,189, +112,133,253,189, +191,6,125,188, +202,24,224,60, +201,54,168,61, +232,22,149,61, +193,68,131,61, +129,30,171,189, +175,126,67,61, +27,32,45,61, +255,130,74,61, +158,151,110,61, +217,215,193,188, +150,29,251,189, +53,37,150,189, +44,235,96,62, +211,103,129,188, +96,136,126,61, +250,58,15,62, +197,0,144,61, +9,215,41,61, +174,209,170,58, +109,159,28,62, +78,52,238,61, +130,70,59,61, +244,32,177,59, +71,39,0,190, +184,53,116,61, +186,227,40,190, +221,91,129,63, +141,78,146,61, +80,31,184,61, +255,99,46,61, +162,19,98,189, +108,47,10,190, +238,185,221,61, +106,47,140,188, +55,5,159,187, +1,189,30,62, +123,158,25,190, +116,163,30,190, +77,225,206,189, +141,67,218,189, +167,100,101,189, +36,223,230,188, +37,245,52,189, +108,193,18,62, +126,183,242,188, +190,184,102,189, +211,156,92,63, +175,240,69,190, +20,209,64,61, +44,12,242,188, +221,132,252,188, +69,169,10,190, +8,13,91,62, +253,103,155,61, +40,30,209,61, +115,240,231,60, +210,245,113,63, +42,82,241,60, +70,234,37,190, +168,242,52,60, +152,79,210,59, +40,48,154,61, +51,249,128,189, +61,8,31,187, +214,2,169,61, +100,65,78,62, +68,161,111,63, +111,225,20,189, +23,100,60,189, +67,99,151,189, +79,176,42,188, +138,127,146,189, +240,167,128,189, +241,63,239,61, +127,21,153,61, +23,252,103,61, +189,207,185,61, +129,131,183,188, +21,87,29,61, +175,158,30,190, +176,156,19,61, +133,125,128,189, +149,172,39,61, +245,117,218,189, +142,245,25,61, +114,146,117,61, +243,101,71,189, +139,136,167,60, +55,114,170,60, +109,214,206,61, +82,139,248,60, +150,142,97,188, +175,181,84,188, +44,242,137,189, +139,205,219,188, +166,180,94,61, +105,14,121,63, +153,208,54,189, +200,178,229,61, +54,103,246,61, +243,194,43,60, +181,80,168,60, +193,189,95,189, +101,210,251,59, +140,162,0,190, +167,113,226,61, +221,251,144,63, +207,1,19,61, +200,93,33,61, +246,175,160,61, +238,223,184,188, +56,167,31,61, +183,3,186,186, +213,94,132,60, +13,173,80,190, +61,14,32,190, +148,10,132,63, +130,132,188,61, +237,141,0,62, +24,162,148,61, +128,12,183,189, +233,167,217,189, +185,223,236,188, +113,181,24,188, +98,152,138,61, +138,106,164,61, +3,185,104,63, +14,76,219,187, +98,92,48,61, +6,147,177,60, +10,173,217,60, +45,40,253,188, +181,98,131,60, +176,234,229,59, +11,101,166,60, +95,77,230,59, +119,216,94,59, +13,69,245,189, +18,187,206,61, +234,99,178,61, +76,169,2,188, +134,1,46,190, +98,227,10,61, +126,232,153,188, +206,227,154,188, +111,219,72,189, +175,161,117,63, +41,106,194,60, +64,83,115,61, +81,148,187,189, +142,10,175,188, +207,46,221,61, +191,22,81,190, +99,70,191,61, +103,57,237,187, +130,136,217,189, +133,50,128,63, +246,177,134,61, +18,26,145,189, +111,82,228,188, +175,238,92,61, +228,23,40,190, +120,232,133,61, +174,60,33,188, +4,25,182,61, +151,117,112,59, +240,94,8,188, +219,126,62,190, +153,111,158,60, +210,166,106,61, +242,116,174,61, +179,136,195,188, +224,230,61,61, +58,158,22,189, +232,196,152,189, +121,62,61,189, +139,231,113,63, +84,225,254,60, +0,238,248,189, +46,37,191,189, +52,193,32,62, +96,133,28,61, +208,12,197,189, +69,57,13,62, +187,248,159,61, +237,168,140,61, +99,199,133,63, +40,31,173,61, +188,198,152,60, +76,218,12,61, +65,240,220,188, +148,84,239,59, +149,19,239,58, +197,69,246,60, +136,99,184,189, +229,223,72,189, +224,138,115,63, +142,19,73,61, +34,7,75,189, +127,137,20,189, +101,88,24,189, +139,104,206,61, +108,223,43,188, +213,154,133,61, +0,130,16,190, +215,100,226,187, +231,44,120,63, +172,226,173,60, +249,116,188,189, +7,55,15,189, +227,81,55,189, +68,115,110,61, +213,160,142,61, +212,20,225,61, +11,51,172,60, +30,19,203,189, +96,106,130,63, +86,174,63,189, +82,12,78,62, +202,50,92,60, +150,62,95,60, +111,231,105,188, +187,136,16,189, +37,199,1,62, +131,220,101,189, +224,246,254,60, +// Patterns\DSP\SVM\SVMF32\Params1_f32.txt +152,190,110,61, +21,83,70,189, +128,249,130,61, +128,93,74,60, +90,173,157,188, +40,158,103,61, +70,151,50,61, +55,255,18,60, +168,255,101,61, +195,75,0,189, +109,232,237,59, +106,158,197,60, +2,75,227,61, +153,224,85,189, +115,170,24,61, +22,91,23,61, +69,78,187,60, +112,4,36,60, +12,85,14,61, +61,142,142,189, +167,153,102,61, +132,213,96,189, +79,75,56,189, +233,110,203,187, +191,120,235,188, +135,75,23,189, +88,137,141,189, +89,10,109,61, +66,92,189,60, +202,103,58,189, +119,53,130,63, +8,97,49,189, +67,108,34,61, +161,52,61,189, +74,144,157,186, +187,63,188,60, +98,33,11,189, +110,82,31,61, +71,138,238,188, +200,135,168,188, +81,4,128,63, +22,184,154,61, +108,51,150,188, +128,228,54,61, +43,86,72,61, +111,187,70,189, +220,251,150,59, +123,110,74,61, +221,119,60,188, +203,187,95,61, +216,14,124,63, +96,1,133,61, +5,4,134,60, +29,140,148,60, +81,225,14,188, +169,248,106,189, +124,189,129,189, +230,208,249,60, +159,11,128,189, +244,233,89,61, +0,0,128,191, +253,100,184,189, +0,0,128,191, +81,246,50,63, +158,44,200,62, +0,0,128,63, +55,30,128,191, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Dims1_s16.txt +1,0, +0,0, +1,0, +100,0, +10,0, +6,0, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Reference1_s32.txt +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +// Patterns\DSP\SVM\SVMF32\Samples2_f32.txt +239,79,23,62, +93,192,185,187, +9,149,115,61, +115,120,9,61, +207,240,65,61, +157,138,248,61, +89,36,208,60, +36,40,88,62, +200,255,102,60, +120,243,206,60, +253,168,71,61, +202,72,37,190, +131,201,100,61, +136,119,30,62, +140,78,154,189, +16,220,12,189, +109,105,210,188, +58,132,139,60, +186,41,122,61, +139,130,204,61, +229,79,134,63, +17,236,237,61, +46,243,255,187, +200,237,133,61, +183,61,4,62, +183,129,183,60, +7,140,73,188, +243,171,152,61, +33,52,12,190, +136,227,104,61, +140,2,86,63, +153,209,68,61, +131,195,9,189, +45,239,119,60, +202,173,239,61, +77,134,255,61, +180,137,21,189, +185,239,15,189, +215,163,225,186, +71,245,3,61, +87,182,134,63, +232,0,218,188, +121,101,102,61, +192,29,14,62, +30,6,224,189, +247,161,221,188, +55,229,185,61, +141,212,253,60, +77,200,134,61, +194,227,15,189, +130,121,89,190, +53,176,106,189, +188,48,248,188, +78,50,181,61, +239,50,196,188, +228,141,65,61, +2,41,49,189, +60,153,3,62, +39,87,0,61, +204,192,190,189, +151,63,129,63, +100,29,139,61, +197,68,161,187, +105,128,209,61, +28,211,138,189, +125,185,12,190, +139,206,213,61, +30,55,13,190, +8,129,203,188, +129,93,121,189, +1,178,198,189, +106,143,150,60, +123,20,157,61, +21,46,101,61, +181,56,145,61, +155,238,192,189, +210,204,61,189, +106,108,59,62, +152,88,150,61, +7,239,26,62, +91,68,126,63, +80,217,18,62, +124,32,51,61, +250,216,50,61, +50,177,74,61, +161,43,109,61, +85,175,7,190, +133,139,31,62, +42,67,195,61, +37,222,201,61, +114,3,148,63, +103,27,39,190, +161,26,196,59, +177,116,87,61, +46,229,209,61, +77,243,237,61, +39,68,110,61, +52,35,16,190, +251,137,155,61, +65,154,195,61, +170,159,182,61, +1,39,46,61, +149,0,98,188, +186,126,55,189, +251,114,158,188, +112,47,131,189, +14,212,163,59, +26,122,198,60, +138,32,233,189, +49,244,3,61, +60,7,141,63, +189,73,236,187, +180,243,186,186, +13,184,116,189, +112,20,114,61, +64,248,222,60, +245,61,76,190, +197,248,212,61, +78,192,152,189, +34,125,65,189, +210,221,116,63, +135,20,105,60, +42,160,27,62, +48,179,97,189, +100,120,107,189, +34,180,17,61, +81,99,36,190, +164,195,3,189, +111,98,188,60, +146,150,174,188, +153,209,138,63, +53,197,147,188, +198,93,192,188, +107,137,8,189, +124,147,151,187, +240,78,106,190, +153,22,25,188, +37,236,166,61, +233,155,171,189, +237,182,232,189, +94,11,188,188, +61,239,134,188, +142,169,89,189, +219,190,110,61, +205,162,51,189, +190,98,71,61, +230,145,194,187, +8,30,32,190, +13,151,252,61, +71,95,14,61, +112,106,59,189, +161,61,251,187, +21,173,8,62, +23,173,63,189, +142,5,247,189, +107,186,220,60, +233,173,58,62, +177,143,24,189, +153,244,238,60, +0,225,92,61, +158,238,127,63, +69,21,74,187, +230,216,121,61, +24,182,34,190, +76,63,36,189, +124,146,15,61, +199,240,215,60, +23,222,65,61, +72,139,211,189, +187,75,53,188, +97,181,121,63, +89,190,65,188, +84,24,138,60, +105,216,143,61, +89,32,140,189, +4,131,104,61, +164,251,47,60, +253,86,25,62, +190,20,31,188, +164,104,171,189, +209,252,6,61, +202,9,191,189, +189,134,18,61, +252,76,86,61, +240,123,180,61, +220,227,16,190, +50,230,214,189, +176,35,10,61, +50,81,106,61, +109,33,227,189, +53,216,116,61, +125,151,91,60, +110,86,152,61, +160,214,174,61, +152,103,41,61, +218,72,182,189, +255,230,90,61, +186,119,89,189, +193,240,114,189, +97,209,170,189, +18,25,134,63, +68,217,236,61, +152,192,199,189, +54,5,166,188, +243,109,76,189, +232,44,17,189, +52,22,11,188, +201,83,123,60, +119,168,160,61, +97,87,32,190, +23,31,231,188, +191,36,197,188, +184,252,16,189, +101,150,130,61, +46,195,197,189, +146,215,7,190, +31,181,191,61, +9,226,127,189, +237,213,32,61, +233,169,162,188, +119,14,127,63, +70,44,35,62, +131,85,67,189, +135,64,166,189, +54,167,83,189, +69,47,54,61, +187,38,205,189, +36,105,235,60, +58,84,162,60, +104,59,14,59, +86,58,128,63, +48,134,136,61, +155,83,47,61, +34,12,57,61, +197,35,93,61, +148,66,129,189, +239,92,213,189, +234,232,222,188, +196,152,52,61, +118,111,234,61, +38,189,188,61, +43,34,142,60, +202,248,71,61, +61,248,132,188, +126,202,119,60, +6,112,153,61, +128,216,21,62, +14,182,5,62, +150,128,155,188, +62,195,234,189, +221,80,91,61, +194,217,28,62, +59,12,219,60, +180,176,170,189, +12,229,4,187, +234,192,167,189, +52,8,37,61, +97,45,134,61, +74,245,142,187, +236,93,235,188, +35,174,121,63, +105,181,150,189, +87,242,34,60, +130,52,65,189, +52,57,99,188, +231,180,49,187, +75,57,140,61, +20,200,191,61, +67,147,1,189, +103,22,180,189, +153,154,197,188, +22,248,94,61, +210,124,35,61, +106,93,118,61, +115,104,243,60, +120,207,47,188, +253,194,133,189, +78,191,157,61, +19,52,160,187, +226,146,237,189, +10,86,40,60, +128,168,30,188, +106,168,178,61, +85,237,213,188, +54,140,195,189, +118,101,110,61, +175,113,26,62, +245,181,241,189, +179,229,43,61, +41,65,203,188, +200,121,207,61, +66,107,21,190, +77,84,189,61, +204,31,174,189, +36,244,246,60, +103,16,154,61, +232,197,213,188, +181,165,138,61, +57,243,35,190, +78,170,34,188, +41,249,114,63, +61,135,161,189, +131,29,228,188, +200,199,116,60, +38,94,233,188, +227,233,47,190, +93,112,157,189, +160,206,131,61, +68,57,159,61, +52,111,63,187, +139,28,150,61, +174,18,203,61, +96,122,101,187, +171,46,142,62, +94,223,148,188, +248,15,140,189, +207,228,184,188, +101,15,94,62, +194,60,174,189, +73,252,194,61, +65,53,112,63, +245,195,24,190, +36,163,144,61, +79,183,133,61, +154,246,137,187, +36,16,154,61, +176,165,224,61, +25,141,173,61, +217,26,2,190, +140,95,151,189, +20,182,115,63, +151,147,155,189, +41,52,43,60, +7,230,247,61, +209,169,124,189, +105,179,40,190, +127,64,41,61, +226,46,184,188, +145,255,145,189, +37,83,0,190, +151,5,139,63, +35,190,38,61, +80,71,133,61, +127,130,148,61, +220,64,141,61, +103,227,13,188, +187,169,153,189, +201,175,195,60, +53,116,7,62, +79,228,147,189, +163,92,173,189, +250,207,192,61, +115,146,11,190, +33,146,218,189, +244,23,101,61, +254,17,160,189, +137,38,107,189, +236,146,50,189, +251,220,47,61, +107,130,79,189, +250,55,136,188, +3,118,59,61, +138,61,78,61, +4,166,28,187, +153,135,71,61, +165,15,113,61, +16,54,180,189, +43,110,235,60, +24,15,163,189, +96,15,123,188, +218,116,134,63, +61,68,43,189, +178,172,206,61, +162,160,9,189, +112,94,128,61, +220,237,203,189, +46,225,126,189, +232,99,140,60, +141,60,5,190, +214,123,8,189, +149,230,132,63, +224,211,181,188, +169,234,130,60, +132,6,239,61, +157,238,1,61, +4,173,235,61, +206,9,153,61, +25,38,223,61, +179,221,243,61, +127,2,53,189, +126,232,128,63, +137,47,121,189, +4,125,115,188, +92,87,45,190, +99,24,227,60, +103,11,2,61, +123,126,160,189, +51,44,101,61, +128,216,149,61, +215,176,31,57, +187,16,136,63, +122,75,251,189, +63,116,170,188, +162,96,19,190, +184,175,3,190, +198,100,95,189, +254,244,49,61, +40,11,200,188, +160,158,90,189, +237,110,172,60, +111,251,134,63, +249,106,71,189, +225,216,60,61, +92,150,83,61, +25,70,191,188, +148,71,192,60, +44,146,154,189, +38,188,33,60, +98,225,119,61, +78,61,248,61, +130,240,124,63, +204,101,102,61, +233,144,105,189, +214,215,9,189, +107,165,108,61, +49,182,108,188, +92,79,13,189, +95,141,0,62, +80,249,108,188, +66,86,44,187, +12,68,106,63, +83,105,72,61, +190,151,216,61, +108,76,175,61, +252,225,64,61, +204,59,219,187, +182,95,78,59, +19,67,27,188, +105,249,185,61, +165,106,4,190, +213,200,117,63, +135,131,240,189, +212,66,7,187, +53,105,193,59, +148,230,247,59, +162,84,140,188, +212,151,75,62, +44,181,131,61, +153,174,143,61, +155,129,129,188, +82,113,252,58, +215,106,57,62, +149,254,75,61, +205,63,147,189, +51,89,155,188, +66,93,1,189, +120,85,255,188, +29,15,7,190, +66,235,220,60, +121,183,188,187, +97,110,123,63, +60,149,104,61, +120,137,61,61, +198,252,229,189, +70,203,55,189, +156,96,143,61, +132,25,213,60, +212,207,120,61, +37,201,11,62, +78,153,165,61, +193,179,162,188, +27,24,231,188, +87,3,37,188, +12,42,51,189, +155,233,198,61, +3,27,203,185, +129,102,124,189, +141,44,2,61, +251,39,233,189, +195,47,47,61, +127,209,188,61, +56,137,64,61, +118,162,252,189, +235,183,229,186, +180,53,34,190, +141,45,56,61, +68,138,10,62, +113,68,4,62, +192,195,241,189, +32,231,147,61, +230,166,17,188, +229,246,147,62, +170,27,1,61, +84,224,163,189, +44,196,31,61, +246,107,57,61, +172,118,85,188, +56,0,79,61, +183,165,234,61, +46,212,198,189, +183,69,232,61, +240,8,109,189, +46,57,114,187, +156,180,105,60, +45,155,164,61, +234,4,244,60, +121,211,29,59, +187,57,115,189, +35,77,184,61, +154,124,25,62, +9,54,89,189, +125,58,12,189, +171,73,228,61, +165,234,117,58, +145,130,10,62, +45,179,138,58, +173,222,81,189, +75,76,158,188, +129,192,150,60, +29,191,173,188, +99,209,155,188, +42,155,134,189, +149,17,22,61, +29,167,134,188, +225,247,78,62, +167,79,177,185, +21,131,203,189, +34,33,32,61, +114,20,166,60, +168,21,47,188, +16,88,133,63, +221,205,10,61, +18,224,136,189, +125,1,92,61, +47,176,164,60, +39,180,136,189, +158,190,5,62, +127,27,38,190, +104,50,110,187, +12,107,88,61, +33,95,153,61, +203,70,72,188, +5,167,29,60, +89,100,157,189, +136,114,117,61, +73,202,121,61, +231,224,210,61, +156,105,159,188, +18,254,52,61, +62,201,17,190, +130,109,142,63, +214,117,135,189, +201,221,93,189, +235,102,182,188, +85,166,148,188, +138,253,68,189, +58,195,169,61, +89,35,187,188, +2,119,137,61, +240,156,211,189, +1,69,128,63, +83,93,2,61, +255,101,129,189, +223,252,58,189, +51,222,70,61, +252,108,96,188, +83,150,77,189, +27,172,206,186, +5,44,41,188, +110,121,27,61, +212,7,200,189, +113,6,173,61, +113,209,247,189, +203,59,73,61, +63,155,48,189, +176,43,19,189, +38,60,17,189, +31,13,169,61, +155,176,43,61, +12,38,58,61, +68,148,125,189, +51,98,240,60, +205,85,61,190, +39,199,149,188, +183,191,168,60, +185,205,95,60, +122,136,97,60, +188,235,84,189, +203,150,16,190, +44,137,131,61, +165,155,114,63, +218,59,172,61, +140,91,173,189, +78,246,222,189, +163,105,176,61, +51,172,32,62, +167,93,193,189, +36,130,180,189, +206,205,191,60, +97,178,9,190, +84,178,150,61, +231,59,179,188, +168,17,18,188, +159,160,192,61, +32,152,34,189, +41,95,175,188, +149,159,74,60, +103,138,68,187, +43,124,77,189, +216,49,13,62, +254,228,129,63, +185,109,147,189, +80,41,232,189, +106,168,158,188, +85,125,171,61, +43,97,71,189, +83,101,144,189, +77,54,29,61, +16,90,209,188, +141,41,74,61, +73,12,127,63, +6,103,214,188, +5,126,98,61, +94,102,188,189, +127,110,200,188, +26,202,154,188, +12,86,204,189, +59,204,61,61, +90,106,166,189, +54,222,229,189, +72,48,73,189, +92,33,7,190, +83,9,196,189, +68,114,29,62, +219,146,71,60, +206,67,84,188, +247,72,36,62, +126,83,239,189, +227,76,18,188, +110,244,53,62, +150,86,101,63, +161,49,133,61, +248,181,90,189, +109,161,127,60, +90,157,110,60, +139,237,1,190, +244,17,117,189, +167,190,74,61, +170,184,192,61, +163,48,156,61, +135,82,14,62, +125,214,180,189, +253,58,125,61, +107,127,48,61, +191,177,115,61, +209,252,70,61, +76,236,108,61, +166,221,158,61, +241,73,178,189, +197,31,160,61, +30,251,115,63, +186,174,109,61, +166,44,142,188, +69,219,184,188, +197,169,198,189, +144,194,205,188, +7,235,21,189, +151,128,107,188, +105,137,173,188, +80,217,148,188, +199,244,108,63, +188,75,161,61, +169,157,121,189, +38,49,110,61, +181,192,27,61, +242,74,180,57, +11,142,45,62, +61,150,67,188, +151,209,66,61, +25,152,42,62, +67,30,134,63, +128,148,229,186, +47,12,48,189, +21,79,198,189, +232,36,102,189, +51,186,1,62, +68,28,27,61, +228,57,182,61, +217,137,55,189, +92,236,254,61, +30,106,129,63, +35,231,94,61, +201,105,248,188, +53,28,210,189, +202,158,67,189, +104,236,149,61, +129,139,69,189, +32,140,129,61, +7,124,176,189, +187,6,119,61, +127,242,114,63, +109,37,117,61, +105,140,189,189, +236,163,41,189, +72,93,143,61, +34,244,219,61, +221,90,9,62, +86,208,126,59, +217,123,247,61, +214,212,37,189, +130,55,101,63, +232,146,180,189, +63,239,170,61, +145,49,42,62, +47,132,180,189, +188,116,25,60, +24,167,170,189, +173,4,79,61, +247,36,169,60, +51,52,128,60, +189,4,149,63, +73,86,157,59, +183,92,172,189, +63,175,110,189, +140,56,210,189, +217,64,101,61, +131,190,25,60, +156,165,52,61, +46,144,75,190, +177,171,246,188, +102,92,109,63, +150,140,169,60, +171,208,179,189, +16,210,221,188, +177,98,147,61, +23,159,22,189, +78,210,85,61, +177,127,160,60, +201,111,185,59, +197,174,148,62, +117,113,137,63, +162,136,139,61, +65,231,113,189, +198,103,5,189, +186,99,46,190, +99,32,105,189, +187,116,21,189, +2,170,243,189, +31,254,44,189, +15,77,132,61, +51,239,104,189, +58,86,75,60, +79,60,128,60, +236,178,187,61, +248,176,208,188, +179,249,166,61, +59,31,197,60, +175,222,206,57, +202,240,246,188, +153,178,70,188, +239,56,132,63, +147,166,6,62, +164,189,92,190, +186,18,136,189, +229,211,5,189, +67,68,89,61, +129,173,155,189, +90,75,204,189, +156,44,176,189, +129,95,51,61, +249,109,173,61, +160,104,15,61, +66,81,190,189, +172,106,109,60, +214,179,17,61, +52,30,66,189, +220,155,193,61, +30,103,158,189, +235,71,235,188, +79,204,209,188, +102,71,130,63, +218,176,224,188, +64,205,14,61, +42,254,250,61, +163,225,5,61, +191,48,180,61, +104,150,199,188, +187,84,241,56, +189,7,146,61, +95,19,52,61, +126,178,131,63, +97,10,171,189, +46,71,171,188, +114,20,198,188, +187,40,91,189, +101,155,0,190, +0,152,60,189, +153,162,223,60, +186,174,217,60, +3,139,114,188, +117,252,27,61, +146,249,251,59, +88,237,153,190, +102,50,221,60, +67,200,103,61, +166,141,121,189, +244,63,46,62, +254,98,147,189, +100,76,76,189, +54,62,209,61, +222,223,95,190, +208,84,110,189, +230,161,141,189, +199,48,29,190, +151,166,190,189, +196,136,68,189, +222,167,186,189, +144,239,77,189, +85,255,116,189, +65,208,239,189, +197,21,153,63, +89,1,239,61, +125,60,86,61, +220,138,145,189, +63,228,35,61, +19,164,94,190, +15,165,157,189, +193,132,192,60, +252,195,58,61, +85,93,219,188, +169,189,114,61, +179,211,22,62, +1,97,129,61, +254,65,49,189, +194,178,197,189, +193,61,107,189, +77,228,189,189, +152,71,111,61, +200,243,53,62, +78,251,26,61, +94,75,99,63, +31,170,132,189, +34,164,227,189, +253,135,234,61, +160,21,38,60, +117,35,12,190, +229,118,234,61, +20,140,32,189, +237,139,193,60, +26,67,230,61, +123,24,105,61, +118,132,163,188, +124,5,24,62, +185,206,219,189, +192,156,218,61, +42,124,124,189, +194,18,84,61, +178,106,162,188, +164,180,189,61, +168,98,0,188, +196,148,185,188, +171,237,132,60, +193,125,52,61, +89,27,197,61, +187,19,155,189, +25,5,184,189, +104,89,31,61, +161,172,254,61, +193,130,185,61, +203,12,102,189, +52,247,124,63, +239,147,174,60, +112,25,178,188, +11,185,220,189, +65,139,255,60, +115,51,198,60, +84,220,8,62, +148,244,95,61, +217,200,36,189, +197,182,134,61, +177,57,165,61, +7,172,55,61, +27,232,53,188, +143,139,25,188, +174,97,188,189, +224,218,193,189, +208,230,148,62, +72,188,191,187, +126,242,2,62, +15,8,118,189, +68,172,113,63, +43,78,154,188, +77,194,88,59, +178,40,34,62, +5,243,152,61, +119,128,15,188, +63,13,25,188, +64,107,24,62, +6,175,154,189, +25,120,217,61, +90,20,139,61, +41,77,7,61, +67,158,229,189, +87,107,151,186, +50,43,129,61, +12,205,155,188, +17,78,52,189, +16,84,115,61, +162,62,140,187, +184,4,216,59, +62,95,206,60, +114,70,61,61, +103,89,250,189, +154,112,113,61, +5,203,58,62, +40,197,156,61, +237,33,58,58, +94,191,163,60, +169,218,6,190, +235,175,128,61, +109,123,140,63, +244,237,1,189, +247,167,135,189, +127,246,101,189, +60,224,32,61, +214,171,70,187, +94,45,208,61, +203,87,206,61, +96,87,152,60, +242,16,69,190, +104,133,134,63, +17,246,148,61, +185,96,218,61, +8,184,196,188, +73,238,59,61, +239,119,42,190, +47,26,193,189, +84,178,217,188, +134,179,226,189, +70,91,28,189, +55,179,124,63, +17,22,232,188, +39,27,156,188, +193,156,82,189, +59,95,58,58, +162,114,254,189, +247,86,12,189, +216,155,33,61, +62,53,222,61, +40,136,170,60, +136,136,163,61, +177,99,17,189, +39,214,108,189, +246,225,95,189, +62,175,74,61, +172,79,220,189, +159,149,47,58, +25,221,232,189, +108,78,167,188, +11,155,28,61, +112,92,134,63, +131,204,118,188, +84,167,114,189, +122,138,212,189, +3,29,162,189, +139,249,117,189, +137,229,161,61, +253,142,249,188, +101,15,13,189, +244,65,0,61, +165,228,143,63, +229,132,16,187, +188,40,156,61, +0,222,156,189, +240,134,204,61, +101,183,33,189, +226,51,220,60, +150,127,100,189, +3,62,89,61, +238,168,7,61, +45,105,36,62, +74,250,66,189, +69,21,188,189, +233,202,146,61, +111,19,162,61, +72,236,16,62, +9,35,147,59, +96,229,175,61, +161,50,216,61, +63,18,194,189, +20,164,111,63, +229,62,174,60, +135,248,102,61, +111,173,46,189, +37,171,41,62, +178,155,124,61, +230,239,194,189, +245,253,28,189, +222,128,113,61, +172,223,55,62, +// Patterns\DSP\SVM\SVMF32\Params2_f32.txt +152,190,110,61, +21,83,70,189, +128,249,130,61, +128,93,74,60, +90,173,157,188, +40,158,103,61, +70,151,50,61, +55,255,18,60, +168,255,101,61, +195,75,0,189, +109,232,237,59, +106,158,197,60, +2,75,227,61, +153,224,85,189, +115,170,24,61, +22,91,23,61, +69,78,187,60, +112,4,36,60, +12,85,14,61, +61,142,142,189, +2,184,55,189, +107,43,94,189, +189,47,89,189, +51,166,18,189, +222,64,148,61, +117,119,214,187, +136,239,54,189, +56,192,29,59, +46,160,159,59, +154,238,125,188, +167,153,102,61, +132,213,96,189, +79,75,56,189, +233,110,203,187, +191,120,235,188, +135,75,23,189, +88,137,141,189, +89,10,109,61, +66,92,189,60, +202,103,58,189, +127,20,206,188, +125,107,235,61, +61,243,229,188, +186,100,170,60, +160,144,115,189, +241,247,195,189, +74,94,52,61, +170,18,39,188, +96,239,188,60, +89,22,61,61, +119,53,130,63, +8,97,49,189, +67,108,34,61, +161,52,61,189, +74,144,157,186, +187,63,188,60, +98,33,11,189, +110,82,31,61, +71,138,238,188, +200,135,168,188, +81,4,128,63, +22,184,154,61, +108,51,150,188, +128,228,54,61, +43,86,72,61, +111,187,70,189, +220,251,150,59, +123,110,74,61, +221,119,60,188, +203,187,95,61, +137,81,136,63, +39,63,32,189, +12,119,77,189, +40,211,40,61, +200,224,17,60, +87,34,119,61, +192,141,199,189, +192,120,209,189, +133,243,187,188, +0,76,21,61, +216,14,124,63, +96,1,133,61, +5,4,134,60, +29,140,148,60, +81,225,14,188, +169,248,106,189, +124,189,129,189, +230,208,249,60, +159,11,128,189, +244,233,89,61, +160,119,136,63, +200,59,30,189, +206,177,12,59, +106,252,233,60, +1,54,72,189, +0,99,143,61, +134,250,202,58, +86,27,229,189, +118,121,0,62, +141,73,226,60, +0,0,128,191, +0,0,128,191, +35,158,231,190, +0,0,128,191, +0,0,128,191, +0,0,128,63, +0,0,128,63, +35,158,231,62, +0,0,128,63, +0,0,128,63, +64,162,109,191, +205,204,140,63, +205,204,204,61, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Dims2_s16.txt +2,0, +0,0, +1,0, +100,0, +10,0, +10,0, +3,0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Reference2_s32.txt +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +// Patterns\DSP\SVM\SVMF32\Samples3_f32.txt +47,223,135,63, +195,173,114,60, +137,76,71,62, +181,109,209,61, +132,239,234,188, +54,94,53,61, +194,144,237,189, +187,51,158,61, +29,222,45,189, +14,242,143,189, +14,219,21,189, +96,171,209,188, +44,165,26,190, +50,157,131,188, +232,67,19,188, +45,21,126,61, +156,149,118,189, +2,154,227,60, +223,82,234,188, +200,58,29,188, +117,171,131,63, +90,168,222,188, +67,143,141,188, +152,172,206,61, +142,10,147,61, +193,251,131,61, +161,40,50,62, +54,66,184,189, +41,223,176,61, +75,195,215,189, +28,187,53,62, +254,137,137,189, +132,23,154,61, +39,84,81,189, +106,213,156,61, +125,175,53,61, +108,176,169,60, +82,47,64,60, +51,50,210,60, +83,28,5,189, +66,86,119,63, +252,239,147,189, +188,147,142,61, +3,58,175,60, +159,93,161,188, +99,95,4,61, +214,100,249,189, +186,76,71,61, +105,18,28,189, +90,204,39,62, +220,69,89,63, +208,252,4,62, +86,119,197,60, +47,203,182,189, +43,243,1,62, +8,182,146,61, +245,88,190,185, +7,201,84,189, +90,127,117,61, +81,180,188,60, +141,190,170,189, +187,184,166,186, +46,131,197,188, +58,44,144,61, +249,166,1,62, +175,115,133,189, +10,119,245,60, +111,48,223,189, +199,70,130,61, +131,103,170,61, +109,247,128,188, +110,34,206,189, +83,37,214,189, +2,19,46,61, +162,229,129,189, +129,228,151,189, +92,112,255,188, +171,34,42,188, +220,124,18,190, +62,197,218,61, +234,246,206,61, +117,195,238,61, +74,111,166,60, +61,194,44,62, +193,75,80,189, +7,172,133,61, +212,71,89,61, +47,66,164,189, +31,9,194,61, +199,250,17,62, +237,131,48,189, +38,13,101,61, +137,1,7,188, +87,172,124,61, +169,223,63,61, +109,85,163,61, +131,113,12,60, +39,89,168,189, +39,102,68,61, +238,190,146,61, +168,165,134,63, +12,143,120,188, +124,2,189,61, +54,14,33,188, +195,175,231,187, +192,81,204,61, +139,160,145,61, +225,172,87,61, +113,102,132,60, +76,156,222,61, +236,143,136,63, +12,172,68,189, +127,124,194,189, +176,106,217,60, +69,133,74,189, +154,128,80,61, +176,114,128,61, +127,224,163,189, +101,44,170,187, +217,163,237,60, +206,50,150,63, +159,108,0,61, +152,165,162,59, +104,73,93,189, +47,210,40,62, +103,241,36,190, +184,26,222,189, +215,80,213,189, +237,36,57,61, +195,30,2,189, +244,126,1,190, +211,42,214,61, +64,129,43,190, +109,38,52,189, +249,237,31,61, +31,120,114,61, +235,198,207,188, +235,53,193,60, +172,82,138,60, +195,90,189,61, +185,205,104,63, +119,110,207,60, +75,102,130,188, +17,118,158,61, +231,113,169,189, +28,244,4,62, +161,235,23,60, +13,246,252,61, +168,24,241,189, +33,83,220,189, +71,216,117,63, +220,64,159,190, +233,74,136,61, +148,43,192,60, +168,78,180,188, +175,33,137,189, +241,217,190,189, +211,36,120,187, +155,161,22,190, +50,127,131,188, +171,38,135,63, +242,135,223,189, +33,125,6,61, +103,219,162,60, +215,53,169,187, +14,88,59,188, +235,53,152,189, +65,161,115,188, +9,48,69,61, +249,104,169,61, +189,97,250,61, +243,150,157,188, +117,142,252,189, +148,118,182,61, +158,106,41,189, +15,252,50,189, +245,131,47,190, +103,28,249,187, +97,195,69,61, +208,64,171,189, +13,174,132,63, +161,60,65,189, +128,246,42,62, +62,79,18,188, +39,28,36,62, +128,100,91,61, +216,23,41,189, +66,45,215,189, +47,35,154,61, +129,255,116,57, +172,128,94,63, +168,251,210,61, +16,149,18,190, +192,191,61,187, +166,119,103,61, +77,13,152,59, +241,199,203,61, +86,131,58,60, +48,40,53,61, +221,72,94,61, +205,108,118,63, +190,66,11,188, +136,177,58,62, +198,232,108,189, +8,116,111,189, +159,180,83,190, +23,152,83,189, +148,146,90,189, +239,159,212,61, +188,138,39,62, +191,16,180,61, +214,184,138,61, +157,38,219,61, +136,42,174,189, +149,11,28,61, +225,3,144,189, +227,228,238,189, +50,211,174,61, +253,240,213,189, +32,105,138,188, +7,54,103,61, +232,216,220,61, +99,93,127,189, +254,69,99,61, +248,103,229,61, +123,38,67,189, +137,227,66,189, +228,244,83,190, +72,240,46,189, +238,80,20,58, +217,142,115,63, +177,110,121,187, +53,138,187,61, +169,240,178,61, +105,139,126,189, +142,69,82,189, +235,191,195,189, +211,168,247,189, +140,124,194,187, +6,239,162,61, +168,118,58,188, +106,236,36,61, +244,213,181,61, +155,246,55,60, +13,212,192,59, +243,8,44,61, +227,44,243,188, +132,230,37,62, +182,169,141,61, +35,47,89,60, +230,28,149,63, +85,163,147,189, +75,172,185,189, +21,19,177,189, +58,18,45,189, +33,18,23,61, +2,189,226,61, +109,134,229,61, +214,239,32,61, +133,31,31,189, +132,86,130,63, +252,249,47,62, +161,170,146,61, +82,27,52,190, +208,195,120,61, +164,239,9,189, +135,148,49,61, +179,7,204,188, +53,35,0,61, +243,148,64,61, +32,111,48,190, +122,124,78,60, +43,98,130,189, +62,119,211,188, +12,18,150,189, +240,253,243,60, +117,91,41,61, +184,103,135,61, +180,96,50,61, +109,198,66,61, +137,6,177,189, +232,64,21,62, +231,229,143,61, +152,11,234,61, +199,9,158,60, +224,94,156,189, +114,197,146,61, +225,71,242,61, +28,12,133,188, +175,78,242,58, +10,132,5,61, +79,201,20,60, +242,99,153,189, +250,123,175,61, +118,139,197,188, +180,96,10,189, +144,186,99,188, +215,36,91,188, +76,77,52,188, +221,17,169,188, +152,192,130,63, +144,180,136,60, +50,56,143,189, +52,51,42,188, +137,187,65,188, +112,189,1,189, +253,174,252,60, +192,199,50,61, +219,170,5,189, +0,242,113,189, +8,205,122,63, +229,17,100,62, +140,119,88,190, +3,88,69,61, +120,115,175,61, +118,201,83,186, +176,176,128,60, +53,47,133,61, +237,236,65,188, +25,222,11,190, +152,225,23,189, +10,152,217,61, +73,176,176,60, +134,89,44,62, +117,233,245,188, +13,72,74,188, +56,11,229,187, +33,150,216,189, +83,49,130,61, +73,85,138,61, +0,65,35,61, +184,20,211,60, +222,173,175,59, +130,144,134,58, +64,197,34,190, +224,64,38,62, +146,61,145,189, +185,189,28,190, +42,50,30,189, +222,230,246,189, +177,67,131,63, +246,111,56,62, +121,168,96,189, +26,211,247,189, +111,76,105,61, +249,166,43,60, +249,183,12,59, +120,151,167,61, +228,207,216,61, +116,166,123,189, +2,207,211,188, +103,22,32,61, +105,37,89,189, +199,196,122,189, +54,164,60,61, +198,240,177,189, +152,70,170,189, +24,45,146,188, +139,145,86,61, +220,130,192,188, +114,128,197,189, +29,118,48,189, +169,5,21,189, +90,44,202,61, +241,29,39,62, +193,82,207,188, +109,152,143,59, +108,78,172,59, +213,221,183,189, +204,133,43,61, +35,58,79,188, +229,65,6,190, +188,12,109,61, +125,162,186,61, +63,77,66,60, +54,106,182,61, +209,8,86,61, +164,182,177,61, +141,100,141,61, +205,171,139,189, +194,250,149,63, +230,233,60,189, +173,213,21,61, +2,1,46,60, +192,157,165,189, +75,79,140,61, +116,137,241,61, +146,94,105,61, +65,142,26,189, +49,167,198,61, +99,132,138,63, +67,230,16,62, +63,102,201,189, +41,104,37,189, +18,133,42,189, +175,57,83,188, +162,210,253,189, +120,131,246,189, +222,116,167,189, +71,78,18,190, +253,56,134,63, +220,71,164,61, +93,219,52,190, +86,70,172,189, +180,50,255,188, +82,118,9,62, +191,226,170,189, +27,128,7,62, +198,228,77,190, +25,86,59,189, +45,116,154,61, +247,137,204,189, +59,195,226,61, +75,228,95,187, +23,16,186,60, +129,179,190,189, +212,211,214,189, +156,203,135,188, +248,35,238,189, +233,55,53,189, +109,222,145,61, +254,128,79,189, +50,164,166,61, +82,144,241,189, +115,77,191,60, +14,176,134,189, +37,174,152,189, +178,230,95,189, +121,55,23,186, +90,129,16,62, +4,76,142,189, +197,14,181,188, +26,6,163,189, +64,113,21,62, +142,190,43,188, +226,45,201,188, +205,95,43,189, +103,155,143,59, +165,10,63,188, +197,166,95,189, +128,72,122,63, +252,97,161,61, +120,85,57,190, +81,196,11,190, +99,131,201,189, +81,30,147,60, +95,218,79,189, +90,123,37,190, +126,50,185,189, +202,244,34,189, +254,16,131,63, +227,13,189,186, +39,242,21,62, +83,136,198,61, +218,45,203,61, +161,252,135,61, +121,239,181,189, +65,139,32,61, +3,25,254,189, +59,53,84,61, +47,160,97,63, +239,76,185,189, +123,9,67,189, +244,220,45,59, +101,20,204,61, +240,95,244,189, +230,147,144,189, +192,115,203,58, +118,69,170,60, +71,26,32,189, +113,237,98,63, +72,134,225,185, +19,131,90,61, +235,169,54,61, +216,171,172,61, +154,37,59,61, +15,145,71,190, +209,91,129,60, +117,70,114,188, +104,253,155,60, +177,139,112,58, +0,20,43,61, +60,50,232,189, +168,64,127,61, +242,120,35,190, +40,202,201,189, +198,67,98,61, +121,83,8,61, +99,118,157,188, +164,102,18,189, +210,53,136,63, +99,249,108,61, +12,118,49,61, +8,52,103,61, +54,113,43,62, +137,42,166,189, +9,235,88,189, +115,253,46,189, +100,71,53,61, +117,103,88,61, +101,69,134,189, +60,82,145,189, +181,228,158,61, +65,210,26,190, +90,144,61,60, +13,25,149,186, +45,164,210,189, +174,87,197,186, +179,205,242,60, +5,10,207,189, +240,28,66,63, +140,197,168,61, +73,72,129,61, +110,211,102,61, +215,241,6,190, +4,140,201,60, +251,14,166,189, +164,4,49,61, +129,189,58,189, +202,187,152,189, +86,103,122,63, +206,240,166,189, +60,49,119,190, +60,68,17,62, +207,225,211,61, +81,38,227,189, +9,154,122,61, +21,81,113,61, +94,185,235,189, +246,254,105,189, +244,214,200,60, +137,254,13,61, +200,206,108,188, +90,66,42,189, +60,105,208,189, +2,104,146,189, +224,220,169,61, +106,180,9,62, +78,42,173,189, +169,46,39,62, +37,173,140,63, +240,175,250,189, +17,106,209,189, +114,217,72,189, +107,26,33,62, +160,88,54,60, +114,194,249,60, +252,131,157,189, +11,160,39,190, +56,26,155,188, +173,36,134,63, +68,56,227,61, +182,10,17,190, +146,42,145,60, +153,2,241,189, +229,57,22,60, +131,174,220,189, +251,157,28,190, +51,6,65,58, +220,41,146,187, +111,12,204,61, +153,171,63,189, +183,242,35,61, +189,64,170,61, +50,192,49,59, +67,142,235,189, +145,11,107,189, +138,1,6,61, +106,178,165,189, +210,183,241,61, +220,25,230,189, +170,162,160,61, +96,115,88,60, +87,153,7,60, +75,245,90,189, +120,37,15,187, +178,44,6,189, +90,94,197,60, +126,12,89,188, +92,160,57,62, +137,55,179,60, +185,148,129,187, +177,76,188,61, +230,118,222,189, +107,68,160,61, +241,156,64,188, +38,42,15,61, +112,127,235,61, +133,93,192,188, +84,54,110,60, +12,61,183,61, +103,45,49,189, +157,33,59,190, +15,118,102,60, +138,188,145,189, +1,80,241,189, +66,34,140,58, +89,165,69,189, +60,163,143,186, +52,11,73,189, +255,97,88,63, +83,115,162,188, +107,216,89,189, +180,55,252,61, +104,0,139,61, +197,133,178,61, +223,254,113,189, +154,169,167,60, +66,85,85,61, +83,29,29,62, +77,56,5,188, +200,0,251,189, +85,167,34,61, +186,150,197,61, +120,160,115,189, +190,222,18,189, +1,23,149,61, +242,36,137,188, +206,100,255,61, +229,136,53,61, +99,215,138,63, +126,185,190,61, +228,158,131,186, +139,168,182,189, +223,161,140,61, +196,2,179,189, +241,94,6,188, +17,129,15,61, +208,45,52,189, +221,157,13,190, +68,95,107,63, +148,194,108,189, +168,2,241,59, +25,225,122,61, +148,14,241,188, +212,161,220,60, +243,24,49,189, +31,171,168,61, +207,147,13,189, +86,152,59,187, +196,199,8,61, +69,65,0,62, +84,10,28,62, +226,41,241,61, +193,175,201,60, +39,225,100,189, +72,172,123,58, +123,101,153,61, +142,130,103,58, +82,79,235,60, +215,145,144,63, +126,86,184,189, +55,165,112,60, +71,128,72,189, +84,244,228,188, +246,62,26,189, +181,25,114,61, +118,191,150,189, +242,221,106,189, +228,54,107,189, +143,101,156,59, +160,31,184,61, +241,136,243,189, +127,189,32,62, +143,224,99,189, +241,191,36,61, +162,19,153,189, +220,32,28,189, +48,190,6,60, +18,228,237,61, +191,103,8,189, +92,200,146,61, +220,39,86,61, +249,151,77,190, +112,66,145,60, +46,177,46,190, +47,149,86,61, +50,58,202,61, +46,237,182,61, +9,128,195,188, +152,166,198,189, +140,233,49,61, +202,50,140,61, +23,239,32,59, +29,40,181,55, +98,249,9,62, +117,176,183,188, +1,25,216,61, +133,185,10,190, +100,101,230,188, +11,118,130,63, +39,166,132,61, +25,159,128,58, +211,198,131,189, +98,224,179,189, +78,241,112,61, +107,172,59,61, +41,59,175,189, +62,252,128,60, +145,158,196,188, +128,246,108,63, +45,222,230,60, +205,49,22,62, +223,105,201,189, +255,189,174,188, +187,125,93,61, +224,15,193,61, +101,184,22,189, +7,189,84,189, +151,182,126,189, +190,213,141,189, +49,226,200,189, +27,164,123,189, +222,74,163,189, +10,230,167,61, +220,245,68,60, +225,220,55,189, +224,187,63,61, +117,78,88,189, +216,22,243,188, +178,210,94,63, +131,13,40,189, +31,74,165,61, +145,86,65,62, +56,143,196,189, +154,69,238,61, +244,87,71,61, +225,192,228,61, +6,161,161,61, +11,202,107,61, +212,31,120,63, +84,149,156,189, +122,138,252,188, +206,35,0,62, +218,253,44,62, +120,209,201,58, +245,36,78,61, +87,199,67,61, +148,253,15,60, +221,16,231,60, +163,11,133,61, +95,221,159,189, +244,209,86,61, +145,43,114,61, +220,224,131,61, +35,94,9,190, +115,73,18,62, +180,163,159,189, +71,167,197,61, +40,253,83,189, +59,100,25,190, +57,130,215,60, +205,53,89,57, +172,202,38,189, +90,138,43,60, +160,5,184,186, +42,85,135,60, +222,252,66,187, +158,171,146,61, +231,142,55,189, +182,172,37,189, +211,96,172,59, +19,149,151,189, +10,28,174,189, +101,10,134,61, +87,54,158,188, +186,9,103,61, +89,206,120,189, +138,160,51,56, +194,55,55,60, +32,19,23,60, +94,42,249,61, +228,173,218,188, +7,22,73,60, +108,68,115,61, +147,137,163,61, +59,180,145,189, +4,114,241,60, +4,94,183,189, +119,104,91,190, +89,112,112,63, +18,61,163,59, +172,237,144,188, +119,74,137,60, +58,6,89,189, +151,99,23,62, +73,107,94,61, +181,214,180,189, +96,200,45,188, +20,80,10,62, +160,124,22,61, +22,96,153,189, +182,205,174,61, +138,90,238,61, +91,235,107,61, +43,29,135,61, +143,215,16,61, +65,240,248,189, +53,134,242,187, +167,245,208,188, +205,184,138,63, +187,2,39,62, +16,34,59,188, +241,120,22,62, +63,32,176,58, +155,245,12,189, +34,191,230,189, +166,238,130,189, +214,6,7,62, +97,251,78,61, +49,69,120,63, +20,142,209,189, +254,200,116,189, +122,68,79,61, +144,8,173,61, +90,8,9,190, +206,67,85,61, +231,109,78,187, +147,74,43,62, +48,105,205,189, +201,143,132,63, +10,176,223,189, +174,133,55,60, +224,253,221,189, +23,71,9,62, +128,19,163,61, +249,221,71,185, +188,181,193,61, +250,251,86,189, +243,194,160,189, +85,211,133,63, +35,134,49,62, +24,235,141,61, +248,233,196,61, +223,254,175,188, +87,13,113,190, +210,160,0,62, +137,228,179,189, +37,93,66,190, +153,221,85,61, +181,134,169,60, +136,189,25,61, +115,60,3,62, +12,213,126,189, +196,162,134,189, +14,4,186,189, +32,235,124,60, +97,181,173,61, +164,13,136,189, +197,186,98,189, +16,237,42,190, +138,248,147,188, +229,168,212,61, +28,95,22,62, +171,223,149,189, +100,214,242,189, +108,120,49,189, +99,152,174,61, +220,95,234,188, +195,189,73,189, +231,67,238,59, +79,24,147,59, +206,66,253,61, +244,66,40,188, +62,132,146,61, +124,110,172,61, +113,164,198,189, +204,248,239,60, +153,115,159,189, +126,187,65,62, +247,29,164,61, +204,152,216,59, +176,225,129,188, +88,125,253,189, +127,175,17,189, +245,15,34,190, +171,248,174,189, +219,18,143,189, +247,120,146,61, +234,27,53,188, +67,143,193,187, +153,222,9,60, +173,221,203,188, +41,30,86,189, +141,221,122,188, +139,180,14,189, +217,14,45,188, +166,99,33,190, +18,206,10,190, +156,18,155,61, +233,10,19,189, +174,130,198,61, +76,50,30,62, +10,44,158,187, +17,169,89,190, +96,111,28,62, +66,126,143,188, +152,114,186,61, +175,218,166,189, +101,161,27,62, +195,176,224,61, +74,148,139,61, +34,108,11,189, +89,0,103,60, +215,141,180,57, +166,65,21,188, +74,104,175,61, +206,124,92,189, +240,215,83,189, +183,14,22,61, +10,54,127,63, +237,58,148,61, +92,7,51,61, +235,169,189,61, +162,8,157,61, +144,125,1,62, +241,255,143,187, +206,226,166,189, +208,210,180,61, +2,241,149,189, +157,186,247,59, +189,173,241,188, +250,241,211,60, +230,27,217,189, +1,238,84,62, +39,128,31,189, +215,206,187,60, +64,101,108,61, +207,100,190,61, +179,69,17,188, +144,222,30,62, +158,80,218,189, +71,159,33,189, +138,248,212,189, +239,107,80,190, +118,115,89,61, +72,51,22,189, +203,199,102,188, +25,103,45,61, +87,78,192,61, +239,62,9,62, +18,13,175,184, +186,207,129,61, +248,206,180,187, +98,180,54,189, +243,156,97,190, +106,46,70,189, +120,185,31,188, +179,78,184,60, +97,91,108,61, +115,231,138,63, +152,181,0,190, +160,161,19,62, +228,124,145,61, +99,111,33,62, +124,87,219,60, +224,180,91,61, +243,112,216,61, +110,107,39,189, +40,63,28,60, +206,68,46,190, +70,6,222,61, +6,61,176,61, +33,152,223,188, +240,252,7,186, +64,175,130,61, +31,86,194,59, +179,255,225,187, +0,35,20,62, +50,198,16,190, +226,146,254,60, +166,3,200,61, +148,102,179,188, +208,24,231,61, +171,224,115,187, +10,123,184,189, +114,224,221,189, +7,103,50,186, +162,180,162,61, +231,33,225,189, +197,128,133,61, +198,99,90,189, +248,127,185,189, +130,72,84,61, +76,30,18,190, +252,190,89,61, +100,6,213,61, +50,14,29,62, +180,139,139,61, +115,5,199,189, +125,108,132,63, +244,187,26,189, +49,86,147,61, +1,250,28,189, +151,39,96,189, +62,7,75,62, +21,210,158,189, +184,32,67,61, +88,174,34,61, +38,58,60,190, +// Patterns\DSP\SVM\SVMF32\Params3_f32.txt +152,190,110,61, +21,83,70,189, +128,249,130,61, +128,93,74,60, +90,173,157,188, +40,158,103,61, +70,151,50,61, +55,255,18,60, +168,255,101,61, +195,75,0,189, +109,232,237,59, +106,158,197,60, +2,75,227,61, +153,224,85,189, +115,170,24,61, +22,91,23,61, +69,78,187,60, +112,4,36,60, +12,85,14,61, +61,142,142,189, +2,184,55,189, +107,43,94,189, +189,47,89,189, +51,166,18,189, +222,64,148,61, +117,119,214,187, +136,239,54,189, +56,192,29,59, +46,160,159,59, +154,238,125,188, +167,153,102,61, +132,213,96,189, +79,75,56,189, +233,110,203,187, +191,120,235,188, +135,75,23,189, +88,137,141,189, +89,10,109,61, +66,92,189,60, +202,103,58,189, +127,20,206,188, +125,107,235,61, +61,243,229,188, +186,100,170,60, +160,144,115,189, +241,247,195,189, +74,94,52,61, +170,18,39,188, +96,239,188,60, +89,22,61,61, +119,53,130,63, +8,97,49,189, +67,108,34,61, +161,52,61,189, +74,144,157,186, +187,63,188,60, +98,33,11,189, +110,82,31,61, +71,138,238,188, +200,135,168,188, +81,4,128,63, +22,184,154,61, +108,51,150,188, +128,228,54,61, +43,86,72,61, +111,187,70,189, +220,251,150,59, +123,110,74,61, +221,119,60,188, +203,187,95,61, +137,81,136,63, +39,63,32,189, +12,119,77,189, +40,211,40,61, +200,224,17,60, +87,34,119,61, +192,141,199,189, +192,120,209,189, +133,243,187,188, +0,76,21,61, +216,14,124,63, +96,1,133,61, +5,4,134,60, +29,140,148,60, +81,225,14,188, +169,248,106,189, +124,189,129,189, +230,208,249,60, +159,11,128,189, +244,233,89,61, +160,119,136,63, +200,59,30,189, +206,177,12,59, +106,252,233,60, +1,54,72,189, +0,99,143,61, +134,250,202,58, +86,27,229,189, +118,121,0,62, +141,73,226,60, +0,0,128,191, +0,0,128,191, +0,0,128,191, +0,0,128,191, +0,0,128,191, +0,0,128,63, +0,0,128,63, +0,0,128,63, +0,0,128,63, +0,0,128,63, +0,94,87,59, +205,204,204,61, +// Patterns\DSP\SVM\SVMF32\Dims3_s16.txt +3,0, +0,0, +1,0, +100,0, +10,0, +10,0, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Reference3_s32.txt +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +// Patterns\DSP\SVM\SVMF32\Samples4_f32.txt +81,15,51,189, +132,219,159,60, +74,176,75,189, +172,179,23,189, +30,221,135,187, +248,52,12,189, +52,68,182,61, +106,79,124,61, +225,35,232,187, +9,106,110,62, +128,129,103,63, +9,117,114,187, +54,120,8,190, +222,67,0,62, +136,221,50,61, +85,247,160,188, +223,102,112,190, +229,204,170,189, +247,208,29,190, +138,34,68,189, +169,9,146,61, +224,87,215,188, +247,111,252,61, +74,168,246,61, +20,149,188,59, +61,16,20,61, +73,48,114,61, +40,149,28,189, +86,220,213,61, +113,190,84,60, +26,150,237,61, +125,176,64,60, +109,147,118,189, +229,137,78,61, +77,174,189,61, +136,148,83,60, +191,0,102,62, +33,218,177,60, +127,154,17,60, +90,235,127,61, +126,179,140,63, +151,136,3,190, +230,186,39,190, +25,48,182,189, +21,197,135,188, +171,235,111,189, +47,113,38,62, +205,185,178,189, +187,208,97,59, +119,4,136,188, +211,90,120,63, +169,198,12,189, +151,25,19,188, +75,22,70,61, +78,119,4,62, +52,168,113,59, +27,149,80,57, +65,158,77,61, +112,197,174,189, +28,10,25,62, +94,210,109,63, +241,100,27,61, +227,140,185,189, +35,161,143,60, +121,17,173,61, +8,14,138,188, +233,115,13,61, +231,11,65,61, +154,27,12,61, +225,47,133,188, +242,8,122,63, +126,136,162,189, +135,11,128,61, +125,202,60,187, +135,86,7,62, +19,165,212,188, +242,143,19,61, +164,94,175,60, +188,226,229,60, +209,11,128,189, +157,117,126,63, +137,63,155,189, +73,30,118,61, +203,9,123,189, +126,144,60,61, +60,137,102,60, +63,202,156,61, +34,90,8,190, +217,244,247,59, +92,153,219,60, +21,127,138,63, +29,229,162,188, +169,176,209,189, +100,16,245,188, +35,95,199,61, +149,249,0,190, +202,120,132,189, +43,85,38,60, +182,170,1,190, +96,193,131,61, +172,136,130,187, +69,209,122,61, +140,239,126,60, +27,217,8,189, +0,220,97,61, +48,249,95,190, +110,222,168,189, +96,102,171,61, +10,64,75,61, +61,132,46,62, +108,130,129,63, +107,73,94,61, +187,78,215,61, +217,100,134,189, +89,189,135,61, +175,91,204,189, +4,146,76,189, +188,123,185,61, +177,209,54,189, +106,154,52,61, +85,5,42,190, +76,83,59,61, +4,102,106,188, +53,90,126,189, +1,65,152,61, +245,132,203,187, +28,87,193,185, +193,93,183,189, +176,71,235,61, +136,14,128,189, +124,165,134,63, +224,83,115,61, +52,3,86,190, +178,144,163,189, +29,113,71,187, +164,255,219,60, +192,208,184,60, +179,104,7,189, +220,159,52,189, +57,93,173,189, +127,225,147,60, +238,208,55,188, +123,186,168,188, +150,97,215,188, +236,209,39,60, +32,78,253,61, +214,128,128,189, +132,35,157,189, +170,81,140,189, +53,74,22,61, +15,169,209,60, +89,219,80,61, +188,112,157,61, +213,90,20,190, +87,61,182,189, +139,37,222,60, +245,129,102,189, +251,73,186,61, +79,45,139,189, +245,150,26,62, +78,162,122,61, +51,121,47,61, +17,58,189,189, +115,147,27,61, +136,248,149,61, +136,61,1,61, +1,236,128,189, +142,126,153,60, +220,199,96,61, +215,7,179,189, +166,153,209,188, +164,175,48,61, +132,3,179,61, +83,8,38,61, +39,228,121,60, +176,109,234,188, +159,220,17,60, +176,222,137,60, +78,222,68,61, +96,45,0,190, +81,137,96,63, +102,172,192,189, +69,126,188,189, +23,188,2,190, +209,119,107,189, +79,38,165,189, +102,59,84,61, +216,96,10,61, +39,153,248,60, +39,80,237,59, +180,56,114,63, +38,87,161,189, +207,247,10,189, +23,131,140,189, +66,31,4,189, +82,61,185,187, +163,189,81,60, +247,165,63,188, +159,42,61,61, +240,42,229,60, +207,161,113,63, +23,137,40,61, +214,206,130,61, +108,182,216,189, +190,53,144,61, +36,98,202,187, +17,224,72,189, +244,50,87,189, +164,101,45,189, +2,202,98,61, +219,96,0,62, +184,201,226,61, +169,176,22,60, +236,112,50,189, +62,151,0,188, +16,133,164,60, +111,219,149,61, +35,60,169,189, +31,40,202,61, +25,103,161,60, +180,122,139,60, +13,237,7,61, +54,104,191,189, +253,62,52,62, +173,98,42,190, +27,39,7,188, +226,231,147,61, +101,210,206,189, +95,227,181,188, +41,11,241,189, +189,158,125,63, +123,139,210,61, +19,62,12,62, +115,151,15,190, +209,220,225,61, +253,164,53,189, +163,81,57,189, +226,110,224,189, +217,97,120,60, +245,204,17,189, +168,196,118,63, +86,51,10,62, +64,33,122,188, +186,232,30,61, +95,218,115,189, +230,141,71,61, +221,210,174,61, +99,97,46,62, +248,21,4,190, +19,25,114,61, +197,142,2,190, +94,180,162,189, +79,71,228,189, +117,31,45,61, +240,181,249,188, +199,163,206,189, +129,202,40,62, +195,199,157,189, +131,200,162,62, +121,42,179,189, +94,86,29,62, +164,65,191,189, +227,67,67,61, +185,208,113,188, +63,212,188,189, +16,254,141,187, +175,80,10,190, +211,230,10,62, +228,81,233,188, +164,18,17,190, +150,219,199,61, +12,220,235,61, +128,216,99,60, +27,162,132,61, +64,174,173,189, +253,161,31,189, +12,61,227,189, +162,78,177,60, +186,20,163,189, +178,244,73,61, +105,157,107,63, +152,236,184,188, +167,118,66,189, +143,142,176,187, +178,47,159,60, +36,143,232,59, +229,177,202,61, +202,3,140,188, +69,121,52,61, +93,3,230,189, +110,138,168,61, +31,180,134,61, +128,35,198,61, +121,75,151,60, +13,250,58,189, +109,170,153,61, +87,147,1,190, +179,153,223,61, +113,111,230,61, +75,70,15,189, +51,228,147,189, +250,150,13,188, +231,3,211,61, +139,40,69,61, +72,206,55,190, +67,172,130,62, +240,8,162,189, +246,77,229,189, +71,164,220,60, +115,179,56,61, +129,245,30,187, +27,226,169,60, +156,160,98,59, +37,131,201,61, +195,133,119,189, +77,38,171,189, +93,102,227,60, +50,97,145,60, +177,187,138,188, +182,199,140,189, +81,195,117,63, +250,254,227,61, +250,130,58,189, +21,0,127,189, +154,68,56,62, +205,99,207,60, +1,206,224,61, +40,83,160,61, +147,192,215,61, +180,223,250,187, +16,226,65,61, +139,147,112,188, +31,156,17,61, +60,45,221,188, +172,0,47,60, +42,139,4,189, +110,133,255,189, +98,18,185,188, +21,144,129,189, +206,230,8,190, +246,107,113,63, +170,2,193,187, +97,244,198,189, +91,192,123,188, +136,236,233,61, +202,52,40,60, +191,16,148,61, +84,108,151,189, +39,186,177,62, +225,72,251,61, +239,129,125,63, +178,79,236,61, +211,195,225,188, +56,14,97,189, +32,179,65,190, +169,115,177,189, +138,203,44,60, +141,35,44,189, +65,186,73,189, +57,103,158,59, +138,4,228,189, +73,7,122,188, +107,1,236,188, +20,113,172,61, +254,171,133,189, +39,95,181,188, +182,38,15,190, +106,116,119,61, +106,57,153,59, +19,93,136,61, +227,237,135,63, +204,126,59,58, +63,105,138,61, +105,184,89,190, +170,248,163,61, +196,47,22,61, +218,130,122,189, +114,183,214,60, +154,137,213,60, +33,6,162,60, +182,225,102,63, +51,34,149,187, +37,9,113,62, +2,179,35,61, +162,100,134,59, +206,151,0,60, +20,108,52,61, +223,227,66,189, +140,188,39,190, +70,106,148,61, +117,235,129,63, +144,219,142,60, +64,63,202,188, +166,232,209,189, +78,44,188,61, +159,228,185,60, +68,108,221,189, +23,122,148,189, +33,221,99,189, +179,100,109,187, +178,37,137,63, +202,55,22,62, +41,116,69,189, +119,84,69,187, +91,239,81,190, +22,87,239,189, +172,39,47,62, +171,55,34,189, +116,214,116,60, +184,243,5,190, +139,84,248,188, +142,130,86,188, +193,138,142,61, +13,57,59,61, +21,28,9,189, +56,188,53,62, +12,202,211,61, +147,227,188,60, +203,126,18,190, +123,200,0,61, +71,144,22,190, +113,74,243,61, +68,162,69,189, +181,156,156,61, +47,196,161,187, +177,156,247,60, +28,217,77,189, +147,64,44,190, +96,83,229,60, +240,158,46,189, +20,53,133,63, +16,163,211,60, +145,213,191,60, +138,83,46,62, +173,251,229,188, +185,40,188,189, +205,235,117,61, +214,211,185,60, +212,70,195,189, +176,22,231,189, +55,149,133,63, +167,175,69,61, +193,159,140,61, +33,111,137,189, +148,100,86,59, +32,208,205,61, +216,95,97,188, +188,9,60,61, +152,110,17,190, +240,219,69,60, +157,228,91,61, +137,90,168,61, +151,191,207,187, +40,102,138,188, +45,112,30,61, +173,200,11,190, +189,16,106,62, +62,80,11,189, +132,98,232,189, +181,178,100,189, +239,176,80,63, +126,185,182,61, +118,230,130,60, +152,89,161,189, +240,247,146,189, +58,206,31,61, +123,90,204,60, +30,104,24,61, +154,50,15,190, +167,95,99,188, +6,130,128,189, +178,96,134,189, +84,186,44,189, +76,150,4,62, +97,240,35,190, +9,203,156,189, +100,9,56,61, +255,222,236,61, +152,14,212,189, +8,104,112,189, +168,130,23,190, +8,219,142,61, +132,36,53,188, +205,99,219,186, +176,242,203,189, +70,183,246,189, +159,190,217,60, +77,44,184,60, +132,177,159,189, +160,151,3,62, +35,32,132,63, +222,200,113,188, +190,73,130,189, +242,53,63,190, +114,50,193,189, +99,39,64,61, +201,84,33,189, +83,147,221,59, +129,119,58,189, +239,71,244,188, +218,242,121,63, +102,163,15,189, +169,170,119,189, +19,101,184,61, +141,189,166,60, +48,170,6,189, +211,189,117,188, +44,254,31,60, +224,243,56,189, +248,242,37,190, +86,28,206,189, +192,141,106,189, +14,36,104,189, +230,114,255,58, +43,86,148,61, +204,48,62,189, +79,175,77,189, +4,135,146,188, +87,161,2,60, +145,152,54,187, +246,188,146,63, +40,1,175,189, +239,242,249,189, +242,102,221,188, +144,131,83,189, +214,94,199,189, +165,218,152,188, +168,117,193,189, +153,99,140,189, +243,233,12,190, +88,149,129,63, +144,144,135,61, +245,96,45,60, +50,200,5,189, +159,161,179,188, +106,173,99,189, +114,54,141,60, +214,124,13,61, +33,0,63,61, +107,190,45,190, +244,96,103,63, +151,131,181,186, +180,227,87,188, +163,194,216,188, +73,50,41,62, +187,232,49,62, +202,30,61,61, +222,102,58,189, +238,117,146,61, +84,82,157,189, +78,47,140,61, +236,67,18,62, +85,202,133,189, +190,146,208,187, +1,214,156,189, +77,35,101,61, +241,243,194,61, +63,152,217,189, +90,135,196,188, +113,140,167,60, +153,156,142,63, +35,186,71,189, +126,68,225,189, +168,167,22,61, +24,234,29,190, +106,75,34,190, +255,94,192,61, +33,84,151,61, +83,199,13,190, +9,221,20,62, +80,244,217,188, +112,34,49,61, +52,215,27,61, +235,34,23,62, +131,33,2,61, +214,245,150,188, +0,81,165,189, +64,221,221,185, +129,216,253,59, +44,190,244,189, +7,40,129,61, +39,53,147,189, +201,74,179,61, +28,244,216,59, +78,113,192,189, +6,187,95,61, +42,80,226,61, +158,182,136,59, +214,174,6,61, +27,175,233,59, +241,190,35,62, +253,94,205,60, +206,213,93,61, +155,142,65,61, +224,4,251,59, +223,31,245,61, +27,145,77,189, +151,161,69,186, +227,243,133,61, +76,75,25,189, +54,66,134,63, +25,139,188,188, +162,200,124,61, +45,128,184,189, +46,61,195,189, +5,68,5,190, +245,255,83,62, +20,254,60,190, +55,67,68,60, +248,18,232,189, +75,4,163,60, +13,11,131,61, +232,119,101,189, +102,77,92,189, +61,88,57,59, +61,235,207,61, +224,232,180,188, +119,24,7,61, +96,102,131,62, +95,64,116,188, +172,249,59,61, +21,113,152,190, +167,91,201,60, +148,21,74,187, +200,155,223,189, +135,28,40,60, +123,181,219,60, +35,129,19,61, +186,254,151,187, +32,237,128,188, +226,1,4,61, +121,11,143,60, +48,31,38,190, +6,247,130,189, +214,129,4,62, +49,101,141,188, +217,183,113,61, +14,6,47,188, +212,82,12,188, +222,101,92,189, +134,89,96,63, +93,107,122,61, +38,172,30,189, +121,192,19,61, +223,200,205,61, +32,158,63,61, +92,218,129,189, +222,252,158,187, +240,211,255,60, +168,133,8,190, +131,254,126,63, +72,171,114,61, +255,206,29,61, +155,2,86,190, +58,98,27,189, +251,193,108,61, +157,55,180,189, +58,57,79,61, +124,69,159,189, +161,125,188,61, +63,234,130,63, +250,3,74,189, +0,5,149,61, +115,152,136,61, +118,198,192,61, +149,223,157,61, +135,93,4,189, +42,5,157,60, +55,224,143,61, +107,140,200,188, +237,240,62,61, +242,67,173,60, +151,6,152,61, +55,23,2,61, +172,60,135,189, +230,21,15,188, +238,15,123,188, +0,12,245,60, +137,168,95,61, +80,252,94,61, +243,223,133,186, +60,106,187,61, +178,226,72,61, +44,37,95,60, +213,63,83,61, +45,59,136,189, +7,129,100,61, +113,83,145,188, +252,135,84,189, +66,67,167,187, +149,129,103,63, +218,119,142,60, +39,41,7,189, +192,206,73,188, +167,203,72,61, +112,234,95,61, +117,15,120,189, +40,136,174,189, +190,3,117,189, +170,254,152,189, +207,7,115,63, +12,37,10,190, +220,87,187,188, +127,76,30,62, +9,57,15,188, +79,94,132,61, +59,54,180,61, +127,250,105,57, +33,88,243,59, +148,27,17,62, +214,1,190,189, +77,136,233,61, +88,226,92,187, +71,122,80,62, +181,101,4,62, +182,26,38,61, +79,28,52,189, +96,156,5,61, +161,72,67,190, +78,202,123,189, +138,75,53,61, +19,215,115,61, +247,200,80,61, +2,247,4,189, +183,157,200,60, +232,126,25,62, +143,213,174,189, +216,169,106,59, +20,200,13,62, +130,125,18,189, +82,200,49,184, +99,25,18,62, +26,239,128,189, +89,21,133,189, +126,87,157,189, +165,230,157,60, +219,47,131,188, +172,130,8,190, +216,35,140,61, +28,26,129,60, +244,78,148,189, +188,202,150,61, +214,41,153,61, +95,217,75,61, +251,48,130,189, +128,104,250,189, +181,161,51,61, +53,182,36,62, +99,28,71,189, +247,117,65,189, +136,105,142,63, +137,250,154,61, +129,154,14,189, +147,91,105,60, +43,149,19,60, +47,133,107,188, +76,227,4,61, +36,72,72,190, +114,134,138,189, +246,14,24,61, +252,101,116,63, +200,172,107,188, +105,80,36,190, +225,248,157,60, +173,176,172,189, +252,139,9,60, +49,102,209,189, +255,9,111,189, +58,243,16,189, +158,56,238,188, +129,225,134,63, +171,32,78,59, +90,242,19,62, +12,225,169,61, +34,10,157,188, +223,179,107,189, +143,59,59,190, +60,230,177,61, +32,156,84,62, +91,44,238,61, +45,154,70,61, +179,69,202,61, +105,77,14,62, +76,42,185,188, +24,148,50,61, +19,20,110,188, +80,252,193,59, +212,109,31,190, +148,27,160,60, +146,79,72,60, +196,198,111,190, +48,179,192,188, +15,240,98,61, +159,136,243,189, +170,150,159,189, +90,24,19,190, +49,49,39,61, +166,78,15,189, +85,103,33,189, +95,128,155,60, +221,48,58,188, +38,18,169,61, +71,121,234,189, +92,176,213,61, +175,158,98,60, +38,152,202,189, +94,20,96,60, +206,166,157,189, +177,178,187,60, +213,225,138,189, +60,66,166,188, +244,99,176,61, +255,234,65,61, +136,247,217,189, +40,23,91,188, +101,85,238,58, +191,235,102,187, +5,50,114,189, +167,197,218,189, +37,177,133,188, +197,249,109,63, +74,239,111,60, +45,151,147,61, +255,127,112,188, +45,195,46,188, +166,164,83,188, +91,144,59,61, +58,111,231,188, +102,221,189,61, +142,158,94,60, +156,59,63,189, +158,144,204,189, +200,199,163,188, +10,12,142,61, +228,8,172,188, +150,167,198,189, +214,190,50,61, +47,159,152,189, +228,94,183,60, +161,78,164,188, +206,199,120,63, +117,100,215,189, +217,95,155,61, +180,241,45,189, +154,147,149,61, +113,48,21,190, +52,114,20,62, +97,129,193,189, +212,224,170,61, +104,214,58,189, +158,24,122,63, +155,55,186,61, +117,99,7,190, +101,241,11,62, +188,118,6,190, +101,34,142,61, +145,163,205,60, +196,62,68,189, +118,128,250,189, +32,44,30,188, +61,123,94,63, +119,212,0,62, +191,183,141,60, +111,186,230,61, +32,76,44,189, +150,86,35,61, +150,90,183,61, +145,169,149,189, +128,70,122,189, +106,216,137,60, +65,19,135,189, +217,234,100,189, +220,154,85,188, +139,255,175,61, +232,248,129,189, +67,245,149,61, +117,73,0,189, +116,102,119,61, +206,149,42,60, +94,245,10,61, +54,188,123,63, +49,66,185,61, +252,181,200,61, +246,199,150,61, +101,30,231,61, +156,240,153,60, +123,196,6,189, +123,170,4,190, +105,114,139,61, +194,2,54,62, +205,87,115,63, +239,192,125,189, +232,102,89,189, +68,72,189,61, +177,146,48,60, +43,90,164,61, +55,62,0,190, +217,149,151,61, +16,93,28,189, +165,66,14,190, +202,136,241,60, +225,66,0,62, +190,0,231,188, +29,119,48,61, +2,130,123,189, +51,237,44,62, +26,175,59,189, +156,243,27,61, +31,70,19,60, +21,19,64,60, +191,238,136,63, +54,55,179,189, +247,246,194,61, +119,176,84,61, +195,231,159,188, +167,196,66,61, +225,87,57,62, +59,239,0,62, +208,249,176,189, +166,8,67,189, +47,237,57,60, +37,232,240,61, +84,190,206,60, +170,8,166,189, +191,150,180,60, +242,148,144,188, +37,249,175,58, +6,23,3,189, +58,196,91,61, +128,50,32,188, +17,136,154,188, +89,171,134,189, +122,63,116,59, +216,157,90,187, +186,133,14,189, +202,37,60,189, +194,57,125,61, +165,217,16,61, +175,98,148,61, +165,93,221,187, +87,226,216,58, +182,234,145,61, +68,133,80,61, +9,111,23,61, +66,229,189,61, +119,210,239,60, +104,170,248,61, +47,18,62,189, +206,38,191,189, +236,50,241,61, +164,15,143,63, +74,8,49,189, +152,201,1,190, +249,131,51,62, +152,150,185,189, +185,36,177,60, +189,56,25,188, +7,87,117,189, +130,76,68,189, +29,151,57,187, +38,83,62,62, +88,176,136,188, +122,18,172,188, +63,220,96,61, +170,1,231,189, +206,182,130,60, +160,105,48,62, +117,199,254,61, +248,67,107,61, +86,130,77,188, +45,42,131,63, +102,233,126,188, +165,21,235,59, +239,173,20,60, +189,62,1,62, +203,180,32,62, +114,157,61,59, +188,64,10,190, +188,48,208,60, +194,91,173,187, +183,118,129,63, +231,214,161,61, +12,7,63,189, +246,210,81,189, +218,7,16,62, +90,161,45,61, +74,194,188,61, +196,44,52,187, +203,85,140,61, +74,3,4,62, +245,180,131,63, +55,114,48,61, +112,88,23,62, +20,71,25,189, +8,23,137,189, +66,236,137,188, +120,116,100,189, +132,116,226,61, +126,69,152,61, +137,104,156,187, +// Patterns\DSP\SVM\SVMF32\Params4_f32.txt +152,190,110,61, +21,83,70,189, +128,249,130,61, +128,93,74,60, +90,173,157,188, +40,158,103,61, +70,151,50,61, +55,255,18,60, +168,255,101,61, +195,75,0,189, +109,232,237,59, +106,158,197,60, +2,75,227,61, +153,224,85,189, +115,170,24,61, +22,91,23,61, +69,78,187,60, +112,4,36,60, +12,85,14,61, +61,142,142,189, +2,184,55,189, +107,43,94,189, +189,47,89,189, +51,166,18,189, +222,64,148,61, +117,119,214,187, +136,239,54,189, +56,192,29,59, +46,160,159,59, +154,238,125,188, +167,153,102,61, +132,213,96,189, +79,75,56,189, +233,110,203,187, +191,120,235,188, +135,75,23,189, +88,137,141,189, +89,10,109,61, +66,92,189,60, +202,103,58,189, +127,20,206,188, +125,107,235,61, +61,243,229,188, +186,100,170,60, +160,144,115,189, +241,247,195,189, +74,94,52,61, +170,18,39,188, +96,239,188,60, +89,22,61,61, +119,53,130,63, +8,97,49,189, +67,108,34,61, +161,52,61,189, +74,144,157,186, +187,63,188,60, +98,33,11,189, +110,82,31,61, +71,138,238,188, +200,135,168,188, +81,4,128,63, +22,184,154,61, +108,51,150,188, +128,228,54,61, +43,86,72,61, +111,187,70,189, +220,251,150,59, +123,110,74,61, +221,119,60,188, +203,187,95,61, +137,81,136,63, +39,63,32,189, +12,119,77,189, +40,211,40,61, +200,224,17,60, +87,34,119,61, +192,141,199,189, +192,120,209,189, +133,243,187,188, +0,76,21,61, +216,14,124,63, +96,1,133,61, +5,4,134,60, +29,140,148,60, +81,225,14,188, +169,248,106,189, +124,189,129,189, +230,208,249,60, +159,11,128,189, +244,233,89,61, +160,119,136,63, +200,59,30,189, +206,177,12,59, +106,252,233,60, +1,54,72,189, +0,99,143,61, +134,250,202,58, +86,27,229,189, +118,121,0,62, +141,73,226,60, +0,0,128,191, +0,0,128,191, +0,0,128,191, +0,0,128,191, +0,0,128,191, +0,0,128,63, +0,0,128,63, +0,0,128,63, +0,0,128,63, +0,0,128,63, +53,164,133,190, +0,0,0,0, +205,204,204,61, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Dims4_s16.txt +4,0, +0,0, +1,0, +100,0, +10,0, +10,0, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Reference4_s32.txt +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +0,0,0,0, +0,0,0,0, +1,0,0,0, +0,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +// Patterns\DSP\SVM\SVMF32\Samples5_f32.txt +239,52,115,63, +117,137,97,60, +185,110,6,61, +120,125,55,62, +29,205,142,189, +160,50,199,188, +54,27,152,57, +177,186,243,189, +28,100,48,60, +10,169,103,60, +104,26,144,63, +231,173,216,60, +68,167,27,62, +233,107,4,190, +122,236,36,62, +64,164,175,189, +96,244,194,61, +83,84,14,190, +185,25,151,62, +188,216,26,190, +11,192,41,62, +16,202,246,188, +56,5,185,61, +182,129,114,61, +31,32,188,61, +210,86,153,189, +133,213,129,189, +21,0,12,61, +144,210,40,189, +212,92,168,61, +143,175,71,190, +169,119,226,59, +183,238,253,188, +101,246,26,61, +195,38,229,61, +128,147,168,60, +34,221,233,188, +9,67,82,62, +144,207,118,60, +37,45,183,61, +60,129,0,190, +51,78,29,189, +103,180,23,62, +237,20,2,62, +152,103,135,61, +17,197,245,60, +200,25,138,60, +183,118,32,190, +73,44,86,189, +5,77,214,189, +222,66,197,59, +212,171,110,62, +192,190,218,61, +204,248,66,61, +230,139,11,189, +193,63,138,61, +32,164,161,188, +167,198,58,189, +8,162,74,190, +90,19,4,188, +171,59,131,63, +116,122,193,61, +185,94,108,189, +122,166,51,61, +171,53,86,188, +216,254,47,60, +0,54,93,59, +135,14,147,61, +165,242,245,60, +77,74,252,189, +34,135,70,61, +27,54,33,189, +204,77,1,189, +147,31,148,189, +193,166,129,61, +86,89,3,61, +193,214,175,61, +43,67,114,188, +196,233,179,189, +85,117,137,189, +119,80,122,63, +126,9,139,61, +160,88,62,190, +7,247,219,189, +214,201,212,60, +133,109,235,61, +183,179,62,62, +173,245,171,59, +207,172,103,61, +51,103,248,59, +14,220,111,63, +27,13,246,60, +108,166,154,61, +139,118,222,60, +236,161,15,62, +46,41,183,189, +41,249,195,189, +233,155,100,189, +188,178,149,189, +215,13,194,189, +15,156,88,63, +104,101,1,190, +192,235,185,189, +138,213,214,189, +219,9,221,61, +115,165,185,61, +198,138,201,188, +224,1,181,188, +164,161,50,188, +251,216,182,61, +42,181,64,61, +213,62,217,188, +222,104,216,61, +88,120,175,189, +242,185,8,189, +143,176,25,62, +241,218,79,188, +84,95,44,62, +82,241,244,61, +22,200,17,60, +234,89,116,63, +146,186,51,189, +70,221,124,189, +176,0,218,188, +116,70,7,61, +241,207,140,61, +75,157,216,189, +6,123,2,190, +33,11,2,60, +143,40,202,189, +129,92,111,63, +85,19,203,60, +151,30,27,59, +191,252,146,189, +150,78,178,60, +74,237,36,188, +224,158,43,61, +98,89,203,60, +164,51,12,62, +147,41,253,188, +178,222,36,189, +2,109,90,189, +44,153,93,62, +230,189,198,61, +92,95,67,61, +5,185,5,190, +47,69,180,189, +84,148,183,61, +48,20,60,62, +218,199,39,190, +160,128,174,189, +225,36,88,62, +175,229,28,189, +127,71,114,61, +79,177,160,61, +169,10,82,190, +133,61,249,189, +214,30,52,189, +237,101,249,189, +162,158,246,188, +46,223,205,189, +122,64,230,60, +20,235,136,60, +12,128,147,189, +227,104,161,188, +66,58,226,61, +34,31,166,189, +43,66,52,61, +183,121,13,61, +138,22,29,60, +126,221,204,189, +181,231,61,62, +4,127,201,61, +183,184,53,61, +25,237,35,61, +106,68,123,189, +105,231,0,62, +19,22,195,188, +196,194,100,189, +66,141,16,190, +163,13,254,60, +155,175,227,188, +145,217,86,189, +42,23,11,188, +29,37,211,61, +26,70,139,187, +138,250,8,189, +191,72,115,61, +227,67,164,187, +249,126,61,188, +212,132,122,63, +234,1,4,189, +67,14,58,189, +5,156,16,190, +135,52,98,189, +219,14,119,61, +197,175,177,61, +13,83,155,188, +227,244,23,62, +47,16,126,189, +170,41,117,63, +139,87,158,188, +105,35,225,60, +43,27,167,188, +249,31,99,189, +72,61,189,189, +140,207,94,188, +47,92,67,189, +155,37,215,56, +192,203,52,60, +38,72,94,60, +51,21,230,57, +126,81,167,60, +244,53,102,188, +39,187,9,189, +11,126,3,189, +205,109,192,187, +112,40,175,61, +180,185,31,190, +128,191,175,61, +196,116,175,60, +78,121,119,61, +63,165,160,61, +27,200,220,61, +68,168,85,189, +146,20,184,61, +239,22,107,61, +119,32,241,60, +28,130,46,62, +63,15,208,189, +86,8,130,63, +196,94,156,189, +103,194,210,61, +236,119,207,61, +140,240,148,61, +235,217,213,186, +199,250,235,61, +165,238,51,62, +114,176,39,189, +10,190,13,62, +255,153,130,63, +186,127,72,189, +36,218,155,189, +18,228,103,61, +87,212,228,189, +40,56,84,189, +9,200,218,61, +12,17,70,189, +199,65,18,189, +30,86,45,189, +36,94,85,63, +146,199,225,188, +104,193,170,61, +97,136,24,62, +36,241,58,61, +232,94,27,61, +117,51,135,61, +75,247,193,61, +159,106,9,188, +19,56,232,60, +71,216,134,63, +151,60,187,61, +150,207,164,188, +142,152,33,62, +98,149,136,61, +133,52,165,189, +89,104,148,61, +161,26,78,58, +206,241,133,60, +26,55,171,188, +61,213,101,189, +196,55,215,61, +57,108,120,189, +187,194,245,61, +17,72,148,188, +100,96,247,188, +215,88,68,61, +147,67,5,190, +137,69,17,190, +234,131,3,61, +149,147,118,63, +236,148,13,61, +216,19,128,61, +101,221,163,189, +20,225,176,61, +148,25,140,61, +247,39,49,189, +205,10,71,189, +162,191,143,189, +7,253,30,62, +236,113,148,189, +10,120,34,189, +166,56,156,61, +152,237,78,61, +137,87,210,186, +225,255,109,188, +235,51,58,188, +172,178,63,190, +202,242,102,190, +52,19,225,188, +114,133,131,63, +44,129,73,185, +40,251,212,61, +183,119,120,189, +95,159,146,60, +123,68,158,187, +181,110,48,61, +74,225,16,62, +168,204,179,61, +21,110,192,188, +251,135,143,63, +129,204,182,189, +162,67,82,61, +83,252,137,60, +241,197,192,189, +197,212,88,61, +19,108,90,61, +16,112,7,61, +224,38,90,62, +149,128,226,189, +29,163,141,188, +234,54,15,61, +32,234,255,60, +26,178,79,189, +172,213,49,61, +101,210,226,59, +194,183,198,61, +10,38,20,188, +111,153,184,187, +0,175,205,188, +128,195,144,63, +39,56,151,61, +59,83,3,189, +222,231,18,60, +165,198,54,190, +33,144,35,190, +208,89,224,61, +6,21,115,187, +38,67,43,61, +141,122,17,61, +51,119,130,63, +17,191,73,60, +141,213,159,60, +158,37,84,61, +109,249,28,60, +26,87,2,190, +148,213,8,190, +169,241,141,61, +36,110,57,189, +195,167,184,61, +247,114,164,189, +129,151,157,60, +186,220,215,60, +227,188,25,62, +75,60,129,61, +126,134,68,187, +78,63,46,190, +182,93,133,61, +82,173,48,61, +179,136,43,189, +154,8,105,63, +174,162,8,62, +92,96,170,60, +178,86,223,61, +153,154,7,61, +51,224,170,189, +191,243,64,60, +220,127,155,61, +95,132,251,187, +30,221,157,61, +46,188,113,62, +239,159,133,189, +155,142,143,62, +128,90,128,60, +103,159,17,62, +251,51,139,189, +194,124,235,60, +243,253,222,189, +177,40,183,61, +140,249,85,188, +74,201,46,189, +42,14,220,189, +53,132,143,187, +200,33,123,61, +240,39,54,190, +152,70,82,61, +234,73,191,61, +23,92,5,62, +96,253,126,62, +194,146,233,189, +195,139,129,63, +26,42,125,188, +90,62,0,61, +80,142,222,61, +31,228,113,188, +139,156,229,189, +63,25,240,61, +236,216,23,60, +187,184,44,189, +14,177,73,190, +193,179,102,189, +191,163,111,189, +142,184,149,61, +3,26,10,62, +3,230,204,61, +194,54,165,189, +232,160,218,60, +247,76,7,190, +229,27,144,61, +76,64,119,61, +116,61,126,63, +195,6,159,188, +48,41,174,189, +149,113,110,189, +72,254,27,60, +98,88,209,188, +105,40,109,60, +254,165,138,61, +213,130,76,190, +45,196,149,61, +113,145,11,62, +45,79,74,189, +129,221,74,62, +125,6,175,61, +228,137,18,188, +151,77,177,189, +31,179,82,190, +177,174,10,189, +93,197,45,188, +96,108,71,189, +205,136,93,63, +177,80,90,60, +185,86,249,61, +213,135,109,61, +97,196,175,189, +162,238,219,188, +168,94,6,62, +238,130,107,61, +25,160,74,189, +50,192,197,187, +114,242,133,63, +89,39,95,189, +228,222,2,190, +42,87,202,188, +247,13,25,189, +173,55,3,62, +137,83,197,61, +57,81,182,60, +86,155,138,189, +87,120,121,61, +45,62,129,63, +231,146,30,189, +8,157,203,61, +231,72,197,61, +177,50,182,60, +201,109,171,188, +81,86,135,61, +84,175,45,190, +9,25,74,61, +230,162,143,60, +151,138,141,63, +129,84,162,189, +26,157,207,189, +77,157,104,61, +157,14,160,189, +155,46,172,189, +143,73,147,189, +67,201,44,189, +130,255,16,62, +220,17,50,61, +119,70,166,61, +152,148,41,61, +155,69,161,61, +115,137,143,60, +14,31,195,61, +23,179,50,190, +119,224,36,61, +156,194,162,60, +100,226,137,188, +204,101,37,189, +30,227,137,63, +201,3,10,190, +91,85,174,189, +27,236,37,61, +146,175,126,60, +51,222,164,189, +184,117,216,61, +12,23,26,61, +18,148,22,60, +125,236,130,61, +234,104,133,63, +251,64,50,60, +75,114,19,62, +7,1,60,60, +110,10,163,189, +165,27,36,60, +242,37,53,189, +159,82,144,61, +171,192,12,188, +65,13,43,189, +250,216,110,63, +159,212,39,189, +62,32,122,61, +147,67,139,188, +199,115,189,189, +169,150,188,189, +79,241,142,188, +22,76,50,188, +127,222,203,189, +253,145,6,190, +31,54,44,61, +97,190,199,61, +161,111,206,61, +226,146,234,189, +7,176,45,190, +195,205,214,188, +65,254,16,189, +39,150,148,189, +20,208,18,60, +55,100,145,61, +63,233,129,63, +79,102,135,188, +153,6,142,189, +6,113,94,61, +242,99,68,61, +80,78,129,61, +222,222,7,62, +31,191,183,60, +205,196,194,61, +181,136,115,60, +44,233,96,188, +98,100,159,60, +89,220,91,61, +67,242,108,189, +230,177,11,62, +94,17,103,189, +251,65,25,61, +195,206,139,60, +21,237,107,62, +148,68,165,188, +182,14,134,63, +187,229,10,61, +80,195,204,189, +122,224,243,61, +198,121,123,61, +77,90,162,61, +12,113,20,190, +53,200,210,189, +34,107,214,60, +157,127,4,62, +59,207,78,63, +90,23,199,187, +58,40,51,189, +108,255,20,189, +182,15,56,189, +115,45,23,190, +160,152,143,59, +68,128,6,190, +196,208,155,189, +214,53,189,187, +67,85,143,63, +30,168,54,61, +76,174,26,59, +28,90,186,61, +7,148,82,189, +199,89,75,189, +217,66,241,189, +159,159,144,60, +53,59,20,62, +254,174,188,189, +27,231,140,63, +83,199,253,188, +72,149,87,61, +176,160,169,61, +63,120,19,190, +236,164,31,62, +34,188,185,61, +182,169,147,61, +53,6,79,189, +244,80,15,62, +153,203,124,63, +51,15,160,61, +15,144,107,188, +9,146,149,189, +69,208,152,60, +243,40,48,60, +247,9,128,61, +38,35,115,189, +114,120,41,61, +61,125,51,61, +110,204,148,63, +57,152,198,189, +178,2,124,189, +82,128,215,60, +208,63,23,189, +48,61,193,189, +165,249,138,189, +68,42,233,189, +55,40,6,61, +220,111,31,62, +237,130,39,189, +240,212,234,188, +104,84,7,60, +227,109,225,188, +234,29,155,61, +224,40,28,59, +164,170,141,60, +152,104,229,59, +156,25,53,61, +34,31,224,61, +65,228,56,61, +185,109,39,61, +81,132,143,61, +4,204,8,62, +222,6,70,190, +202,185,159,189, +52,185,21,61, +77,208,63,190, +21,132,237,189, +149,160,136,61, +248,126,145,61, +243,237,175,188, +109,180,71,188, +107,102,41,189, +145,4,62,188, +32,29,33,62, +145,50,11,190, +99,22,28,61, +232,186,182,61, +78,208,155,189, +19,85,52,62, +185,0,81,189, +38,51,15,187, +178,223,194,60, +99,43,188,60, +102,193,204,187, +227,99,101,189, +47,212,139,189, +211,191,54,61, +14,172,143,61, +178,48,129,63, +85,53,103,189, +41,140,50,62, +29,211,180,189, +159,237,145,189, +87,96,102,61, +146,145,141,188, +124,230,223,61, +111,62,10,62, +100,239,4,62, +120,35,128,63, +41,230,47,189, +158,176,63,62, +76,211,189,189, +169,132,209,60, +199,138,210,60, +71,128,55,189, +141,19,229,189, +46,235,5,189, +195,170,57,62, +33,61,38,60, +1,21,10,189, +231,111,209,60, +47,125,210,60, +225,139,244,189, +245,0,90,189, +162,114,169,60, +22,144,143,60, +232,17,168,188, +218,128,62,59, +84,131,126,63, +230,3,5,188, +119,179,47,61, +198,195,53,60, +96,131,136,61, +94,207,199,59, +1,98,148,61, +110,191,38,190, +183,51,57,190, +238,143,169,59, +161,132,23,188, +78,39,29,189, +118,224,132,60, +108,232,20,62, +43,23,39,190, +78,213,93,190, +17,127,1,190, +195,182,175,60, +103,103,227,189, +123,29,212,60, +159,24,107,63, +80,211,13,60, +194,239,107,189, +176,110,73,189, +41,76,60,60, +87,104,52,190, +34,163,177,189, +244,116,9,61, +168,239,214,187, +104,161,224,189, +173,25,39,190, +212,141,160,189, +94,176,69,61, +60,137,179,61, +154,56,0,62, +69,133,45,61, +80,129,177,189, +124,140,236,61, +14,238,173,61, +62,111,160,189, +25,227,123,63, +18,41,180,189, +206,52,148,61, +119,184,151,188, +61,9,39,61, +203,117,244,61, +39,166,128,61, +199,7,99,189, +40,47,208,189, +247,230,135,189, +94,147,131,63, +42,5,142,188, +45,153,99,61, +226,144,171,189, +56,235,101,189, +184,49,31,62, +45,176,90,189, +89,136,9,60, +116,154,207,58, +65,155,127,188, +98,125,16,190, +166,189,3,190, +210,255,118,60, +24,10,28,190, +119,22,171,189, +246,139,222,61, +178,106,98,61, +70,50,8,189, +219,207,206,189, +119,162,49,62, +159,90,128,63, +216,180,148,189, +208,34,148,189, +24,82,214,189, +218,170,129,186, +237,104,136,61, +237,2,197,61, +249,171,32,189, +104,75,156,189, +13,138,60,61, +138,110,87,63, +87,35,245,60, +230,65,128,61, +61,252,73,187, +247,248,87,61, +93,249,241,61, +115,182,173,60, +130,175,48,190, +126,238,213,61, +152,24,143,59, +135,66,116,189, +121,203,223,188, +216,126,144,189, +244,65,3,190, +91,71,91,189, +255,0,240,188, +101,53,24,61, +213,21,177,189, +191,242,124,189, +169,98,99,188, +17,214,86,63, +69,3,51,190, +185,245,80,61, +70,123,52,61, +197,28,67,189, +249,196,18,190, +210,100,198,60, +127,206,225,188, +197,214,46,189, +95,233,236,61, +89,42,186,60, +236,98,87,188, +23,81,222,188, +118,8,33,62, +118,106,249,60, +45,241,244,188, +246,144,175,61, +29,201,43,188, +106,44,57,188, +40,24,141,189, +76,8,20,188, +116,68,36,62, +4,110,184,60, +230,61,134,188, +108,212,148,61, +50,225,8,190, +71,231,234,189, +38,50,202,189, +181,92,137,61, +61,25,163,188, +40,189,133,63, +130,12,15,61, +157,162,104,187, +240,204,226,60, +121,92,140,189, +242,227,192,187, +192,142,221,189, +53,201,204,188, +157,164,237,189, +99,192,167,189, +165,79,4,59, +105,63,116,189, +43,71,171,189, +156,30,172,61, +250,205,162,61, +41,254,223,186, +86,195,153,60, +141,128,7,62, +111,112,173,188, +245,122,9,61, +202,28,154,63, +45,171,242,59, +71,66,91,61, +105,50,9,61, +95,247,208,189, +124,63,245,61, +177,191,236,61, +225,25,2,62, +13,123,231,60, +253,194,142,61, +180,117,89,63, +99,57,140,61, +137,147,246,189, +11,181,141,61, +156,115,96,61, +227,191,207,189, +69,25,81,189, +87,81,104,188, +5,113,255,61, +84,7,129,189, +210,176,103,63, +122,105,236,59, +94,206,190,189, +82,234,218,189, +245,219,199,188, +108,59,187,60, +242,115,214,61, +250,61,107,189, +3,86,181,188, +59,80,13,186, +131,228,102,63, +154,183,221,61, +166,231,129,189, +180,179,74,61, +15,157,155,188, +123,84,16,62, +250,83,156,61, +236,200,51,189, +127,105,120,188, +54,158,234,189, +141,78,187,61, +93,148,8,190, +78,93,38,60, +223,131,104,189, +219,33,123,188, +132,24,27,61, +233,72,30,188, +164,141,8,59, +102,197,32,190, +234,89,111,61, +173,112,153,61, +3,105,121,189, +220,66,129,60, +168,213,156,61, +65,182,27,189, +35,160,118,189, +205,248,76,187, +250,229,76,61, +40,136,152,189, +65,203,45,188, +59,133,136,63, +94,52,0,61, +68,82,5,62, +147,248,178,61, +9,37,184,61, +211,25,192,61, +82,63,221,189, +38,2,1,188, +170,131,142,189, +160,95,115,189, +145,156,128,63, +56,143,188,189, +227,178,175,187, +149,111,250,189, +172,225,27,61, +18,207,161,61, +81,213,67,61, +11,97,150,189, +117,244,8,60, +14,108,15,189, +231,249,46,62, +99,98,214,59, +99,109,71,60, +31,188,93,61, +41,193,247,189, +246,105,86,189, +174,53,22,62, +185,163,241,189, +130,211,102,189, +183,174,144,188, +254,90,134,63, +31,101,45,188, +183,75,13,189, +209,89,156,61, +96,106,187,188, +229,228,139,186, +63,113,33,62, +162,112,136,61, +59,132,106,61, +101,231,153,189, +149,242,51,62, +194,32,0,62, +185,159,201,189, +184,201,102,60, +58,96,166,189, +230,220,251,61, +225,167,21,61, +130,175,3,62, +65,253,219,188, +233,184,188,189, +182,40,144,63, +118,30,111,60, +58,156,154,189, +172,91,200,61, +171,245,61,61, +87,220,164,189, +62,182,98,187, +103,255,77,189, +16,130,36,62, +120,48,12,189, +20,23,134,63, +119,208,127,190, +223,249,44,188, +56,130,173,61, +240,61,234,189, +155,242,188,61, +110,124,133,189, +16,210,8,62, +101,151,20,60, +131,242,216,61, +222,32,92,62, +207,94,81,188, +203,127,52,62, +119,107,5,62, +7,47,43,190, +90,48,165,188, +5,107,216,61, +192,10,71,187, +196,95,101,59, +75,114,139,60, +22,14,209,60, +57,156,95,189, +96,72,31,187, +92,177,122,61, +234,151,177,186, +56,70,248,60, +170,101,234,60, +115,143,3,60, +74,166,78,189, +96,167,165,189, +20,100,86,63, +132,141,156,61, +213,3,217,59, +171,35,170,61, +133,86,201,60, +0,100,128,189, +10,63,200,189, +247,128,234,61, +213,54,191,61, +67,200,122,59, +6,80,133,63, +72,0,56,58, +125,101,216,189, +188,40,134,61, +129,180,91,189, +28,70,238,61, +54,201,2,190, +223,116,42,62, +155,168,243,61, +94,24,213,188, +15,38,144,63, +161,12,186,189, +85,155,82,61, +143,231,192,188, +36,157,57,188, +57,185,133,61, +231,21,39,190, +217,200,22,190, +129,235,248,189, +121,241,130,189, +// Patterns\DSP\SVM\SVMF32\Params5_f32.txt +137,81,136,63, +39,63,32,189, +12,119,77,189, +40,211,40,61, +200,224,17,60, +87,34,119,61, +192,141,199,189, +192,120,209,189, +133,243,187,188, +0,76,21,61, +2,184,55,189, +107,43,94,189, +189,47,89,189, +51,166,18,189, +222,64,148,61, +117,119,214,187, +136,239,54,189, +56,192,29,59, +46,160,159,59, +154,238,125,188, +160,119,136,63, +200,59,30,189, +206,177,12,59, +106,252,233,60, +1,54,72,189, +0,99,143,61, +134,250,202,58, +86,27,229,189, +118,121,0,62, +141,73,226,60, +127,20,206,188, +125,107,235,61, +61,243,229,188, +186,100,170,60, +160,144,115,189, +241,247,195,189, +74,94,52,61, +170,18,39,188, +96,239,188,60, +89,22,61,61, +25,46,71,62, +77,164,149,62, +244,104,156,62, +102,183,84,62, +77,84,112,191, +205,204,204,61, +// Patterns\DSP\SVM\SVMF32\Dims5_s16.txt +3,0, +255,255, +1,0, +100,0, +10,0, +4,0, +0, +0, +0, +0, +// Patterns\DSP\SVM\SVMF32\Reference5_s32.txt +1,0,0,0, +255,255,255,255, +1,0,0,0, +255,255,255,255, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +255,255,255,255, +255,255,255,255, +255,255,255,255, +1,0,0,0, +255,255,255,255, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +255,255,255,255, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +255,255,255,255, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +1,0,0,0, +255,255,255,255, +1,0,0,0, +255,255,255,255, +255,255,255,255, +1,0,0,0, +1,0,0,0, +1,0,0,0, +255,255,255,255, +255,255,255,255, +// Patterns\DSP\Bayes\BayesF32\Dims1_s16.txt +10,0, +5,0, +14,0, +0, +0, +// Patterns\DSP\Bayes\BayesF32\Inputs1_f32.txt +92,3,169,61, +53,82,251,189, +165,112,183,61, +74,2,124,63, +195,44,92,189, +147,42,216,61, +214,46,142,189, +115,248,95,189, +120,20,141,60, +171,143,84,189, +157,161,124,61, +118,144,193,61, +233,164,33,61, +27,145,65,189, +136,61,149,189, +6,166,117,63, +66,70,48,60, +161,162,229,189, +170,116,107,61, +187,245,36,61, +57,129,137,188, +80,169,17,189, +115,42,29,190, +149,96,116,62, +177,3,138,61, +71,75,211,61, +198,19,92,189, +46,183,129,60, +233,157,133,63, +82,185,238,61, +120,15,242,188, +152,182,212,61, +80,125,138,189, +199,208,2,190, +4,157,122,57, +153,211,202,61, +166,141,238,61, +148,134,110,188, +226,147,149,59, +121,65,249,187, +86,154,251,189, +38,105,63,60, +174,191,128,63, +235,99,133,189, +172,253,150,189, +228,167,120,61, +214,215,156,189, +209,205,233,59, +8,65,230,188, +177,61,54,61, +135,9,115,60, +183,82,12,189, +155,219,160,189, +123,195,31,60, +164,173,22,190, +131,134,48,190, +14,217,112,63, +145,246,215,60, +220,253,18,59, +54,45,223,189, +157,7,241,188, +64,250,99,60, +244,63,45,61, +135,204,40,188, +46,156,11,60, +199,130,24,62, +14,254,254,188, +248,237,16,61, +18,144,249,189, +9,223,9,189, +28,133,32,60, +14,126,130,63, +222,209,236,189, +245,238,2,62, +106,183,45,62, +242,153,192,189, +69,177,154,188, +117,11,57,62, +139,15,160,61, +252,9,117,61, +106,255,241,60, +78,109,0,190, +109,150,190,189, +28,158,138,189, +206,39,47,188, +183,116,11,189, +76,5,113,58, +204,178,98,61, +180,68,143,63, +235,209,224,61, +223,59,97,189, +18,75,183,188, +195,231,210,189, +77,79,99,189, +16,109,143,189, +85,6,213,60, +56,85,169,189, +209,200,129,189, +163,104,186,189, +30,210,197,60, +241,159,141,63, +16,198,156,61, +1,218,157,61, +179,133,216,60, +79,93,106,189, +85,176,245,189, +31,30,254,59, +209,68,132,188, +79,182,242,60, +204,198,213,189, +87,201,157,189, +243,55,188,189, +229,92,124,189, +134,135,233,60, +48,170,70,63, +206,232,214,185, +218,116,207,60, +30,170,152,189, +0,247,135,61, +33,208,41,62, +124,226,2,62, +122,106,102,189, +125,221,186,61, +85,12,26,189, +244,179,123,61, +193,182,150,189, +158,74,118,61, +129,18,213,188, +200,44,184,60, +159,92,136,63, +174,158,3,61, +106,119,118,60, +216,115,94,189, +78,199,168,189, +171,142,145,61, +237,98,253,188, +184,38,57,189, +158,123,36,189, +68,71,44,61, +189,42,74,189, +// Patterns\DSP\Bayes\BayesF32\Params1_f32.txt +134,208,131,63, +182,121,92,60, +197,183,2,189, +15,8,5,188, +203,123,246,188, +224,151,164,188, +126,233,12,188, +86,230,43,57, +84,6,212,60, +91,93,145,60, +219,118,105,61, +40,150,54,61, +199,4,176,61, +50,84,112,187, +181,201,151,187, +37,167,131,63, +141,42,165,188, +74,230,19,60, +52,127,44,61, +92,181,21,188, +67,3,86,61, +52,185,89,189, +155,179,229,187, +126,218,217,187, +44,160,165,60, +97,176,32,189, +178,64,142,188, +27,146,244,60, +168,24,13,61, +91,199,13,61, +197,156,121,63, +95,140,56,60, +88,247,26,187, +138,166,19,61, +130,94,217,188, +13,183,100,60, +124,208,252,188, +142,3,73,188, +88,230,69,59, +27,248,88,59, +253,238,193,188, +188,26,61,189, +147,12,200,188, +226,30,78,60, +110,236,225,188, +244,154,116,63, +166,49,136,188, +136,252,186,188, +167,79,112,60, +71,179,103,60, +48,98,216,60, +186,193,46,187, +107,224,12,61, +51,203,10,61, +222,9,93,61, +121,44,147,60, +176,247,149,60, +143,148,108,59, +233,238,58,188, +142,114,221,188, +145,48,134,63, +196,135,152,189, +74,83,2,188, +113,209,213,188, +118,111,28,61, +64,180,230,59, +3,191,66,61, +186,203,140,60, +158,15,29,60, +153,45,71,189, +255,182,169,59, +133,246,172,59, +247,188,36,60, +21,154,7,60, +63,149,8,60, +103,188,22,60, +80,83,122,59, +79,139,183,59, +12,185,12,59, +64,68,4,60, +218,234,22,60, +119,25,236,59, +140,83,6,59, +211,243,97,59, +170,140,35,60, +48,225,14,60, +117,216,41,60, +64,147,68,59, +114,127,231,57, +149,190,156,58, +182,70,18,59, +113,170,235,58, +213,188,196,60, +98,195,161,59, +100,103,187,59, +46,211,43,60, +84,14,28,58, +67,58,38,59, +13,22,47,59, +134,195,199,59, +184,230,199,59, +83,80,210,59, +83,90,91,59, +134,187,97,59, +3,194,148,59, +118,8,15,60, +16,242,141,58, +31,61,197,59, +76,71,49,60, +103,203,206,59, +176,100,139,59, +16,111,162,59, +72,14,64,59, +142,248,80,59, +186,79,8,60, +231,33,46,60, +37,126,16,59, +249,167,165,59, +113,175,128,59, +109,233,207,59, +170,73,114,59, +59,1,181,59, +146,6,24,59, +134,130,137,59, +19,179,193,58, +115,166,18,60, +234,157,0,60, +36,242,16,58, +150,35,11,59, +31,10,142,59, +163,141,5,60, +125,32,143,58, +6,122,115,59, +70,61,100,59, +112,209,19,59, +129,94,227,59, +112,165,117,59, +64,255,210,58, +128,39,166,60, +37,23,142,59, +137,136,136,62, +137,136,8,62, +137,136,136,62, +205,204,76,62, +137,136,8,62, +174,95,102,47, +// Patterns\DSP\Bayes\BayesF32\Probas1_f32.txt +67,120,1,195, +139,93,107,195, +58,128,242,194, +109,176,91,65, +219,147,74,195, +2,43,69,195, +193,106,35,65, +32,193,12,195, +175,76,59,195, +237,20,93,196, +193,128,183,64, +222,60,232,194, +62,241,133,195, +250,31,93,195, +18,120,10,195, +93,251,1,64, +83,58,11,195, +23,43,122,195, +231,234,87,195, +222,164,1,195, +157,27,0,65, +84,84,199,194, +147,8,86,195, +171,140,74,195, +6,244,217,194, +172,125,64,195, +235,204,189,193, +9,70,43,195, +245,66,62,195, +82,172,115,196, +235,244,47,195, +3,61,171,196, +151,145,119,195, +209,179,160,195, +165,63,187,190, +39,205,47,195, +184,82,215,194, +88,56,101,65, +142,138,207,194, +8,169,170,195, +62,15,5,195, +129,240,174,194, +120,199,114,63, +133,32,129,194, +66,245,67,195, +111,56,14,195, +125,114,105,195, +8,127,16,195, +189,83,135,65, +235,93,56,195, +// Patterns\DSP\Bayes\BayesF32\Predicts1_s16.txt +3,0, +1,0, +0,0, +0,0, +0,0, +1,0, +4,0, +2,0, +2,0, +3,0, +0, +0, +0, +0, +// Patterns\DSP\Distance\DistanceF32\Dims1_s16.txt +10,0, +12,0, +0, +0, +0, +0, +// Patterns\DSP\Distance\DistanceF32\Dims9_s16.txt +10,0, +12,0, +3,0, +4,0, +2,0, +4,0, +4,0, +3,0, +4,0, +2,0, +3,0, +4,0, +// Patterns\DSP\Distance\DistanceF32\InputA1_f32.txt +91,197,54,190, +255,38,247,62, +202,136,3,62, +88,190,93,63, +139,246,194,191, +115,9,27,63, +77,46,157,191, +172,132,23,191, +151,186,191,191, +147,224,144,190, +250,220,52,191, +146,81,65,191, +53,228,14,191, +89,141,131,191, +43,138,127,63, +107,241,83,62, +243,30,40,63, +95,52,218,62, +252,113,186,191, +231,155,9,60, +11,35,210,191, +209,242,206,190, +51,250,1,189, +172,152,157,190, +64,158,116,63, +117,194,233,59, +20,123,228,190, +41,167,141,191, +232,140,157,62, +81,91,233,191, +126,159,99,63, +195,45,40,190, +83,156,17,63, +25,23,147,63, +83,11,235,189, +170,148,15,63, +203,158,174,63, +123,185,10,189, +100,73,250,63, +6,25,137,191, +152,236,164,189, +210,99,245,61, +125,167,2,64, +38,35,20,62, +120,248,205,62, +31,8,15,63, +251,141,86,63, +62,226,140,63, +160,186,171,63, +109,103,33,192, +92,158,196,190, +246,209,170,190, +214,132,151,62, +139,184,17,61, +220,95,108,63, +198,90,8,64, +190,205,77,62, +111,60,172,63, +50,21,90,63, +199,115,85,63, +35,210,97,191, +111,67,55,63, +223,24,7,191, +56,135,106,63, +36,142,13,63, +39,11,80,191, +74,195,134,62, +230,221,39,63, +2,160,206,189, +168,114,31,63, +59,115,60,188, +187,168,63,191, +148,200,34,191, +61,57,15,63, +253,171,22,188, +131,246,166,63, +23,2,126,63, +117,72,177,191, +28,162,145,63, +186,72,243,62, +116,206,73,191, +179,196,122,191, +11,139,51,191, +7,211,40,191, +74,149,117,191, +205,144,110,191, +80,216,242,189, +104,104,48,62, +31,115,106,191, +183,161,111,190, +252,88,9,63, +245,187,5,191, +143,122,44,189, +188,234,131,63, +129,76,150,61, +231,132,128,63, +24,78,217,62, +124,169,152,191, +118,202,42,191, +155,114,52,63, +116,58,219,190, +56,197,210,190, +99,18,193,62, +32,129,21,64, +123,140,144,62, +178,69,5,192, +16,69,23,63, +40,89,51,191, +14,28,4,192, +97,40,247,190, +122,186,89,191, +136,246,18,64, +52,125,13,63, +161,49,206,63, +176,26,134,191, +22,104,6,191, +89,168,131,61, +157,205,241,62, +180,54,143,190, +21,173,253,62, +// Patterns\DSP\Distance\DistanceF32\InputB1_f32.txt +156,28,84,191, +45,68,0,64, +61,68,60,63, +236,172,186,63, +132,216,50,63, +179,99,128,191, +184,155,103,62, +124,91,199,190, +16,74,11,64, +207,240,12,191, +22,249,108,191, +212,176,178,62, +136,15,201,63, +118,141,130,63, +61,173,106,63, +180,131,58,62, +50,190,138,61, +237,49,14,191, +161,95,13,191, +77,94,8,62, +234,91,114,191, +144,28,155,190, +88,155,218,62, +73,21,15,191, +144,70,239,190, +174,57,57,191, +163,33,191,189, +120,116,223,191, +175,250,133,63, +4,11,72,63, +180,59,124,191, +10,135,241,190, +67,181,191,190, +228,221,19,191, +157,107,180,191, +88,203,60,191, +196,32,215,191, +198,24,30,191, +45,137,54,192, +211,53,8,190, +196,224,53,63, +71,174,141,63, +245,25,157,60, +176,100,85,62, +79,208,34,191, +242,248,92,191, +131,43,22,63, +95,119,222,191, +229,157,134,63, +122,183,185,63, +32,128,44,62, +233,128,94,190, +238,32,180,191, +89,97,232,191, +179,170,140,63, +161,188,64,62, +191,212,37,191, +71,9,161,190, +78,29,35,191, +182,171,140,63, +49,41,204,189, +203,189,26,63, +64,223,189,63, +52,35,165,61, +200,136,165,191, +119,0,196,191, +169,160,106,63, +30,85,85,191, +101,47,228,191, +166,220,133,191, +176,77,29,63, +157,88,86,191, +194,242,247,188, +107,174,50,63, +186,163,129,190, +121,238,61,62, +88,189,141,191, +1,228,183,63, +140,251,206,63, +33,30,161,191, +253,222,120,62, +213,141,143,63, +208,227,62,63, +112,124,95,190, +168,1,166,191, +131,128,160,62, +38,17,175,63, +72,202,233,62, +37,109,46,191, +86,153,113,190, +3,178,174,63, +25,140,4,62, +62,228,3,63, +137,109,27,63, +59,125,209,191, +88,227,39,63, +113,30,52,190, +240,101,55,191, +68,195,27,191, +44,119,186,63, +254,21,113,63, +110,208,121,191, +86,188,148,61, +215,115,132,191, +104,0,25,191, +187,136,40,191, +185,147,167,191, +34,86,73,63, +137,122,209,62, +143,113,194,63, +173,104,62,62, +153,215,174,190, +184,59,116,191, +170,96,200,63, +207,212,218,62, +208,68,138,191, +188,15,105,191, +166,216,116,63, +81,17,66,60, +156,80,87,191, +// Patterns\DSP\Distance\DistanceF32\InputA8_f32.txt +21,70,165,60, +227,125,95,61, +102,226,109,60, +242,131,200,61, +120,76,48,62, +222,49,140,61, +45,34,14,62, +83,3,137,61, +200,95,45,62, +251,1,3,61, +117,140,163,61, +205,207,174,61, +51,253,147,61, +199,62,8,62, +249,83,4,62, +10,129,219,60, +90,30,174,61, +44,253,97,61, +189,24,65,62, +166,132,142,58, +43,162,89,62, +210,84,86,61, +63,157,134,59, +245,55,35,61, +231,203,241,61, +45,16,103,58, +97,216,97,61, +221,4,12,62, +170,187,27,61, +57,170,102,62, +85,255,224,61, +35,61,166,60, +87,238,143,61, +191,100,17,62, +63,85,104,60, +173,236,141,61, +92,219,15,62, +233,145,100,59, +96,49,78,62, +188,227,225,61, +117,222,7,60, +167,40,74,60, +223,69,87,62, +54,20,116,60, +33,175,41,61, +175,170,107,61, +126,193,176,61, +172,32,232,61, +18,90,245,61, +178,153,102,62, +188,116,12,61, +170,13,244,60, +53,122,216,60, +146,49,80,59, +28,219,168,61, +215,207,66,62, +118,4,147,60, +136,19,246,61, +3,202,155,61, +51,123,152,61, +139,162,4,62, +43,71,215,61, +143,178,158,61, +201,191,9,62, +164,72,166,61, +21,99,244,61, +6,78,30,61, +20,49,197,61, +128,184,114,60, +86,77,187,61, +236,94,221,58, +238,35,225,61, +241,66,135,61, +100,4,110,61, +35,101,122,58, +250,187,10,62, +10,16,211,61, +63,79,19,62, +139,5,242,61, +215,38,74,61, +208,175,167,61, +224,94,208,61, +2,48,149,61, +238,71,140,61, +136,46,22,62, +236,227,17,62, +221,129,148,60, +0,194,215,60, +145,95,15,62, +210,138,18,61, +20,252,167,61, +183,144,163,61, +201,243,210,59, +184,87,33,62, +43,211,55,60, +220,47,29,62, +250,118,42,61, +223,130,239,61, +11,250,133,61, +81,141,141,61, +53,249,43,61, +177,86,37,61, +124,116,23,61, +163,142,106,62, +68,200,226,60, +48,23,81,62, +174,83,109,61, +137,176,140,61, +99,199,68,62, +127,18,56,61, +147,39,162,61, +58,231,90,62, +239,191,82,61, +109,144,25,62, +252,191,199,61, +69,51,72,61, +12,27,196,59, +156,21,52,61, +140,81,213,60, +70,237,60,61, +// Patterns\DSP\Distance\DistanceF32\InputB8_f32.txt +40,145,149,61, +192,227,52,62, +196,192,132,61, +141,161,3,62, +91,56,124,61, +52,16,181,61, +142,80,163,60, +208,146,12,61, +92,111,68,62, +140,195,70,61, +246,24,167,61, +98,0,252,60, +221,91,94,62, +195,97,16,62, +149,196,1,62, +146,69,206,60, +154,112,25,60, +242,65,157,61, +95,89,156,61, +80,208,150,60, +21,4,6,62, +218,138,43,61, +125,195,113,61, +100,61,158,61, +68,85,75,61, +225,102,157,61, +183,107,34,60, +141,227,61,62, +20,181,227,61, +102,254,169,61, +32,88,214,61, +38,63,77,61, +43,233,34,61, +104,79,123,61, +149,81,25,62, +75,111,160,61, +177,82,26,62, +165,210,98,61, +97,241,130,62, +12,108,67,60, +146,120,130,61, +74,69,203,61, +14,101,225,58, +34,20,153,60, +27,151,105,61, +252,131,158,61, +63,115,87,61, +82,150,31,62, +222,82,213,61, +117,38,19,62, +180,173,136,60, +61,76,176,60, +251,184,14,62, +157,31,56,62, +56,233,222,61, +104,182,152,60, +226,100,131,61, +161,48,255,60, +220,61,129,61, +211,234,222,61, +144,215,18,60, +44,152,94,61, +154,144,8,62, +153,140,237,59, +183,30,238,61, +65,249,12,62, +78,193,168,61, +77,112,153,61, +20,31,36,62, +56,143,192,61, +173,71,98,61, +241,42,154,61, +242,126,94,59, +222,86,160,61, +226,169,232,60, +71,111,170,60, +42,97,254,61, +142,3,37,62, +69,188,57,62, +33,148,16,62, +237,82,223,60, +99,209,0,62, +111,75,171,61, +119,139,200,60, +209,102,15,62, +142,165,10,61, +120,58,23,62, +144,244,73,61, +204,172,150,61, +105,179,208,60, +73,232,22,62, +61,255,100,60, +61,221,99,61, +117,67,134,61, +160,246,52,62, +234,6,145,61, +188,95,154,60, +61,47,157,61, +197,127,133,61, +61,208,31,62, +115,160,206,61, +131,27,214,61, +240,243,254,59, +148,10,227,61, +242,33,131,61, +236,113,144,61, +239,159,15,62, +15,143,172,61, +249,26,54,61, +245,8,41,62, +12,135,165,60, +182,254,23,61, +136,81,212,61, +142,49,46,62, +97,60,62,61, +199,102,240,61, +70,155,202,61, +245,217,212,61, +74,181,168,58, +208,45,187,61, +// Patterns\DSP\Distance\DistanceF32\Ref1_f32.txt +250,134,134,63, +133,69,69,63, +178,0,175,63, +62,246,241,63, +156,61,124,63, +2,211,114,63, +26,15,203,63, +30,175,15,63, +152,201,128,63, +187,118,135,63, +// Patterns\DSP\Distance\DistanceF32\Ref2_f32.txt +73,11,252,64, +35,121,222,64, +77,27,28,65, +26,23,29,65, +244,77,6,65, +66,117,8,65, +170,7,22,65, +117,3,213,64, +227,241,3,65, +79,47,27,65, +// Patterns\DSP\Distance\DistanceF32\Ref3_f32.txt +92,39,107,64, +210,64,8,64, +106,176,38,64, +239,214,153,64, +42,67,126,64, +216,181,0,64, +59,150,52,64, +3,226,218,63, +12,187,87,64, +123,209,40,64, +// Patterns\DSP\Distance\DistanceF32\Ref4_f32.txt +176,247,97,65, +89,56,6,65, +246,241,94,65, +253,78,150,65, +222,222,109,65, +167,51,72,65, +149,49,100,65, +59,191,1,65, +224,0,83,65, +207,25,109,65, +// Patterns\DSP\Distance\DistanceF32\Ref5_f32.txt +93,101,133,63, +240,145,58,63, +91,223,146,63, +136,48,196,63, +208,32,142,63, +163,58,115,63, +1,38,165,63, +165,150,4,63, +92,189,133,63, +108,191,132,63, +// Patterns\DSP\Distance\DistanceF32\Ref6_f32.txt +211,143,149,63, +169,231,75,63, +99,50,149,63, +185,211,208,63, +192,71,141,63, +100,41,122,63, +153,228,165,63, +214,191,10,63, +180,115,131,63, +100,135,132,63, +// Patterns\DSP\Distance\DistanceF32\Ref7_f32.txt +204,64,169,64, +48,98,90,64, +105,142,147,64, +248,113,227,64, +151,63,181,64, +7,146,135,64, +131,57,160,64, +243,75,60,64, +226,228,154,64, +82,18,163,64, +// Patterns\DSP\Distance\DistanceF32\Ref8_f32.txt +55,193,148,62, +28,237,141,62, +246,181,173,62, +51,218,193,62, +249,229,196,62, +242,28,187,62, +42,151,143,62, +168,155,194,62, +220,116,137,62, +227,52,195,62, +// Patterns\DSP\Distance\DistanceF32\Ref9_f32.txt +206,254,133,64, +153,19,33,64, +105,142,147,64, +208,35,165,64, +169,205,132,64, +60,213,68,64, +11,59,83,64, +243,75,60,64, +245,48,116,64, +96,146,82,64, +// Patterns\DSP\Distance\DistanceU32\Dims1_s16.txt +10,0, +12,0, +1,0, +0, +0, +// Patterns\DSP\Distance\DistanceU32\InputA1_u32.txt +0,0,0,67, +0,0,224,200, +0,0,112,108, +0,0,32,248, +0,0,208,56, +0,0,240,216, +0,0,48,75, +0,0,224,144, +0,0,64,105, +0,0,192,254, +// Patterns\DSP\Distance\DistanceU32\InputB1_u32.txt +0,0,208,70, +0,0,32,161, +0,0,64,171, +0,0,208,221, +0,0,0,223, +0,0,64,55, +0,0,240,192, +0,0,224,3, +0,0,80,239, +0,0,16,103, +// Patterns\DSP\Distance\DistanceU32\Ref1_f32.txt +228,56,14,63, +154,153,25,63, +158,216,9,63, +239,238,238,62, +20,59,49,63, +110,219,54,63, +0,0,0,63, +205,204,204,62, +37,73,146,62, +239,238,238,62, +// Patterns\DSP\Distance\DistanceU32\Ref2_f32.txt +85,85,213,62, +0,0,0,63, +85,85,21,63, +85,85,21,63, +0,0,64,63, +85,85,85,63, +0,0,0,63, +171,170,170,62, +171,170,170,62, +85,85,21,63, +// Patterns\DSP\Distance\DistanceU32\Ref3_f32.txt +110,219,54,63, +0,0,64,63, +51,51,51,63, +186,232,34,63, +93,116,81,63, +85,85,85,63, +171,170,42,63, +37,73,18,63, +57,142,227,62, +186,232,34,63, +// Patterns\DSP\Distance\DistanceU32\Ref4_f32.txt +226,225,97,63, +57,142,99,63, +54,148,87,63, +243,26,74,63, +122,158,103,63, +47,186,104,63, +85,85,85,63, +0,0,80,63, +0,0,48,63, +243,26,74,63, +// Patterns\DSP\Distance\DistanceU32\Ref5_f32.txt +151,150,22,63, +171,170,42,63, +175,161,60,63, +175,161,60,63, +183,109,91,63, +47,186,104,63, +171,170,42,63, +0,0,0,63, +0,0,0,63, +175,161,60,63, +// Patterns\DSP\Distance\DistanceU32\Ref6_f32.txt +85,85,85,63, +85,85,85,63, +0,0,64,63, +171,170,42,63, +85,85,85,63, +85,85,85,63, +0,0,64,63, +0,0,64,63, +85,85,21,63, +171,170,42,63, +// Patterns\DSP\Distance\DistanceU32\Ref7_f32.txt +151,150,22,63, +171,170,42,63, +175,161,60,63, +175,161,60,63, +183,109,91,63, +47,186,104,63, +171,170,42,63, +0,0,0,63, +0,0,0,63, +175,161,60,63, +// Patterns\DSP\Distance\DistanceU32\Ref8_f32.txt +85,85,85,63, +183,109,91,63, +211,210,82,63, +114,28,71,63, +102,102,102,63, +47,186,104,63, +205,204,76,63, +140,46,58,63, +217,137,29,63, +114,28,71,63, +// Patterns\DSP\Distance\DistanceU32\Ref9_f32.txt +37,73,18,63, +0,0,128,63, +171,170,170,63, +110,219,182,63, +47,186,232,63, +0,0,0,64, +0,0,128,63, +54,148,215,62, +0,0,0,0, +110,219,182,63, +// Patterns\DSP\BasicMaths\BasicMathsF32\Input1_f32.txt +15,152,74,61, +121,218,11,63, +157,235,194,61, +10,166,174,61, +175,34,71,190, +253,127,215,188, +38,114,159,189, +115,86,243,188, +39,69,117,187, +233,191,153,62, +173,174,146,191, +217,165,9,63, +62,244,189,190, +46,90,125,188, +35,67,169,62, +146,247,11,63, +46,159,236,61, +186,81,23,190, +101,53,120,191, +183,86,142,62, +201,101,19,61, +109,219,232,60, +71,131,10,191, +137,193,249,189, +88,39,179,190, +7,188,246,62, +169,211,138,190, +147,170,84,190, +158,233,5,63, +136,5,93,63, +176,25,65,61, +210,187,161,190, +82,174,202,62, +17,57,167,62, +220,96,232,62, +69,200,32,191, +168,94,22,62, +209,103,171,190, +63,249,28,62, +68,71,43,191, +32,143,228,190, +101,116,80,63, +0,0,128,63, +254,132,84,191, +16,109,44,63, +226,195,218,60, +247,83,117,189, +198,224,62,191, +123,218,100,61, +147,12,62,190, +239,186,241,62, +210,252,8,62, +28,202,250,189, +233,187,107,190, +19,145,4,63, +138,184,240,190, +41,26,252,62, +10,159,15,191, +121,122,151,61, +204,250,88,190, +96,80,253,190, +131,193,32,189, +230,236,191,190, +31,225,186,189, +173,213,62,61, +21,134,170,190, +155,176,212,62, +71,30,169,61, +112,131,12,62, +176,80,37,187, +251,186,133,190, +91,255,12,191, +180,90,198,61, +17,248,42,63, +10,150,142,189, +128,139,39,190, +169,127,35,63, +13,89,26,191, +107,237,34,62, +44,0,239,62, +183,163,162,190, +110,0,201,189, +104,128,173,62, +122,195,17,190, +186,71,13,190, +73,110,177,190, +250,21,119,62, +146,202,46,190, +81,161,254,190, +86,119,144,62, +194,227,99,62, +171,81,143,62, +255,220,79,60, +127,192,153,190, +134,101,84,63, +142,58,151,190, +230,101,186,60, +70,113,2,191, +89,88,177,187, +84,154,249,62, +183,23,76,190, +226,77,110,190, +142,198,178,62, +242,24,179,190, +12,126,10,63, +207,101,9,190, +73,64,149,190, +234,54,18,62, +190,91,46,191, +8,212,140,190, +220,161,146,61, +71,182,66,191, +211,55,97,63, +74,161,136,62, +14,33,11,190, +108,25,196,62, +225,22,49,62, +82,198,251,62, +158,164,155,62, +223,143,241,62, +157,166,90,62, +69,148,31,191, +78,197,71,190, +185,130,45,61, +117,135,100,190, +37,246,101,61, +93,233,197,61, +27,188,139,190, +72,78,10,191, +161,77,108,190, +33,207,195,61, +64,212,34,61, +64,151,60,62, +95,88,70,63, +58,145,16,191, +182,113,104,190, +22,173,143,190, +234,20,219,190, +10,249,80,190, +208,249,44,190, +113,137,229,190, +53,5,134,190, +31,235,11,191, +181,86,205,62, +90,27,61,191, +195,119,233,62, +197,119,2,62, +230,190,126,61, +65,188,191,190, +186,86,210,62, +78,142,66,63, +58,18,58,190, +221,62,105,190, +147,215,185,62, +60,228,127,188, +250,180,197,190, +45,174,115,190, +100,40,26,63, +237,240,44,61, +197,82,155,189, +132,234,215,190, +7,109,157,60, +83,42,135,188, +177,217,132,188, +190,117,215,189, +47,157,149,190, +180,145,136,62, +252,207,5,63, +217,192,7,63, +89,133,223,190, +223,195,1,190, +88,129,121,190, +224,131,29,62, +12,159,131,189, +212,177,107,62, +197,72,80,191, +237,179,204,62, +31,177,254,190, +195,138,127,62, +238,112,157,190, +119,62,179,190, +194,142,227,61, +56,218,215,62, +204,146,32,191, +213,59,12,191, +252,139,81,62, +53,225,27,190, +178,163,33,62, +61,213,189,59, +197,247,67,191, +156,94,1,191, +200,118,61,62, +213,246,9,191, +130,127,21,62, +231,212,125,62, +154,178,243,190, +7,213,139,190, +22,5,135,190, +27,102,77,62, +71,185,151,61, +51,168,27,62, +100,77,92,62, +157,96,41,191, +164,238,244,61, +17,157,49,191, +15,135,108,188, +229,183,208,190, +4,31,146,62, +166,172,244,62, +100,188,135,61, +214,141,181,187, +246,42,28,190, +137,79,101,190, +221,92,231,62, +209,184,160,62, +85,149,12,191, +93,45,196,60, +173,32,13,191, +146,156,60,190, +61,158,142,62, +0,189,10,190, +96,150,187,190, +146,204,59,190, +83,16,30,63, +211,136,147,190, +158,32,199,190, +102,97,42,190, +5,163,215,189, +22,75,161,190, +234,227,128,61, +198,156,42,190, +59,99,7,63, +202,189,23,190, +20,150,83,190, +89,186,25,191, +190,94,245,189, +131,115,11,189, +143,125,170,59, +16,236,36,62, +209,167,13,61, +114,148,184,188, +192,206,153,189, +13,72,173,61, +20,5,49,62, +109,27,137,191, +124,102,122,190, +83,170,214,62, +199,236,37,62, +22,31,29,63, +160,10,158,62, +83,244,125,191, +250,64,180,190, +113,127,204,62, +67,147,51,62, +247,121,26,63, +92,4,55,61, +// Patterns\DSP\BasicMaths\BasicMathsF32\Input2_f32.txt +184,38,150,60, +141,77,79,62, +200,118,16,61, +144,112,1,61, +135,150,147,189, +104,183,31,188, +57,88,236,188, +35,89,52,188, +200,199,181,186, +178,230,227,61, +228,108,217,190, +158,8,76,62, +132,200,12,190, +58,197,187,187, +49,229,250,61, +174,120,79,62, +233,94,47,61, +113,76,96,189, +77,245,183,190, +166,252,210,61, +80,124,90,60, +161,148,44,60, +214,80,77,190, +230,26,57,189, +83,199,4,190, +158,221,54,62, +253,199,205,189, +197,157,157,189, +52,127,70,62, +11,207,163,62, +118,29,143,60, +92,188,239,189, +56,55,22,62, +85,223,247,61, +203,57,44,62, +88,83,110,190, +35,228,94,61, +126,18,254,189, +21,174,104,61, +63,226,125,190, +38,101,41,190, +175,126,154,62, +151,187,189,62, +234,129,157,190, +189,149,127,62, +236,34,34,60, +195,210,181,188, +209,119,141,190, +255,156,169,60, +140,218,140,189, +36,40,51,62, +17,14,75,61, +252,222,57,189, +120,182,174,189, +127,128,68,62, +163,104,50,190, +13,216,58,62, +81,227,84,190, +214,136,224,60, +40,208,160,189, +246,189,59,190, +84,73,110,188, +137,62,14,190, +37,129,10,189, +152,111,141,60, +228,195,252,189, +61,162,29,62, +142,174,250,60, +2,72,80,61, +107,11,117,186, +19,58,198,189, +176,255,80,190, +80,2,19,61, +218,108,125,62, +130,90,211,188, +135,89,120,189, +29,90,114,62, +178,201,100,190, +88,129,113,61, +67,34,49,62, +24,20,241,189, +155,248,20,189, +240,150,0,62, +66,16,88,189, +247,106,81,189, +112,128,3,190, +73,32,183,61, +163,139,129,189, +175,183,60,190, +237,35,214,61, +36,230,168,61, +161,112,212,61, +122,14,154,59, +144,231,227,189, +152,106,157,62, +24,42,224,189, +209,37,10,60, +109,90,65,190, +46,112,3,187, +215,253,56,62, +16,67,151,189, +31,158,176,189, +151,127,4,62, +168,188,4,190, +21,73,77,62, +176,169,75,189, +168,59,221,189, +94,187,88,61, +128,57,129,190, +120,191,208,189, +229,89,217,60, +65,79,144,190, +64,235,166,62, +100,134,202,61, +181,58,78,189, +119,86,17,62, +168,63,131,61, +233,153,58,62, +44,181,230,61, +58,8,51,62, +59,13,162,61, +205,138,108,190, +14,15,148,189, +167,152,128,60, +119,95,169,189, +60,111,170,60, +80,174,18,61, +138,32,207,189, +72,2,77,190, +120,34,175,189, +103,31,17,61, +9,92,113,60, +220,197,139,61, +150,0,147,62, +79,74,86,190, +72,70,172,189, +35,248,212,189, +250,94,34,190, +253,224,154,189, +47,51,128,189, +172,30,42,190, +26,168,198,189, +59,102,79,190, +123,47,24,62, +196,39,140,190, +127,8,45,62, +14,100,65,61, +156,205,188,60, +124,26,14,190, +41,228,27,62, +160,49,144,62, +206,231,137,189, +84,222,172,189, +86,188,9,62, +3,167,189,187, +125,135,18,190, +40,154,180,189, +145,129,100,62, +153,44,128,60, +217,59,230,188, +91,6,32,190, +180,89,233,59, +151,90,200,187, +35,236,196,187, +208,175,31,189, +92,197,221,189, +74,111,202,61, +54,89,70,62, +180,57,73,62, +61,169,37,190, +101,89,64,189, +83,235,184,189, +146,123,105,61, +189,25,195,188, +0,175,174,61, +89,94,154,190, +214,182,23,62, +102,195,60,190, +180,100,189,61, +125,95,233,189, +118,216,4,190, +37,167,40,61, +71,250,31,62, +22,4,110,190, +222,221,79,190, +230,77,155,61, +252,14,103,189, +154,152,111,61, +137,177,12,59, +134,61,145,190, +75,195,63,190, +135,107,140,61, +168,128,76,190, +94,153,93,61, +47,32,188,61, +111,157,52,190, +123,69,207,189, +100,35,200,189, +229,58,152,61, +239,229,224,60, +123,186,102,61, +146,70,163,61, +227,16,123,190, +170,135,53,61, +28,163,131,190, +8,77,175,187, +182,176,26,190, +242,151,216,61, +193,86,53,62, +25,51,201,60, +193,142,6,187, +78,124,103,189, +192,243,169,189, +24,121,43,62, +112,60,238,61, +136,98,80,190, +63,101,17,60, +20,49,81,190, +205,201,139,189, +170,102,211,61, +101,166,77,189, +122,7,11,190, +165,47,139,189, +194,75,106,62, +64,176,218,189, +255,148,19,190, +132,141,124,189, +94,209,31,189, +65,21,239,189, +109,13,191,60, +135,229,124,189, +240,174,72,62, +158,236,96,189, +216,208,156,189, +116,222,99,190, +192,218,53,189, +239,180,78,188, +67,183,252,58, +67,118,116,61, +101,249,81,60, +218,204,8,188, +178,252,227,188, +44,109,0,61, +119,50,131,61, +110,59,203,190, +38,149,185,189, +13,25,31,62, +201,242,117,61, +43,230,104,62, +78,67,234,61, +120,55,188,190, +15,152,5,190, +241,143,23,62, +79,23,133,61, +123,250,100,62, +84,164,135,60, +// Parameters\DSP\BasicMaths\BasicMathsF32 +// Patterns\DSP\BasicMaths\BasicMathsQ31\Input1_q31.txt +15,188,220,68, +59,57,218,66, +251,96,148,240, +18,200,253,11, +87,93,13,215, +2,67,206,9, +200,246,125,247, +27,111,85,11, +161,253,137,63, +178,138,83,105, +25,57,108,253, +118,155,217,209, +5,210,77,101, +208,72,61,211, +36,98,250,65, +102,124,0,81, +96,191,35,202, +94,232,236,242, +182,246,15,242, +10,106,222,246, +243,149,110,28, +49,41,41,122, +50,125,199,254, +9,105,91,88, +80,74,37,208, +15,159,146,204, +75,118,139,188, +113,93,39,242, +31,20,88,237, +0,12,2,168, +178,104,83,238, +17,110,85,38, +94,124,30,213, +223,34,221,4, +17,238,157,238, +243,99,99,248, +237,210,107,182, +190,114,195,85, +192,178,220,58, +205,103,138,252, +180,102,49,226, +128,241,129,57, +190,55,138,195, +64,1,10,197, +103,14,95,253, +216,216,240,28, +164,199,145,217, +49,147,41,194, +39,63,94,47, +187,78,169,198, +198,108,72,241, +110,147,87,0, +213,163,30,40, +65,209,180,28, +238,6,128,7, +146,121,132,37, +69,33,90,68, +159,225,187,14, +200,4,208,39, +110,207,239,12, +158,218,6,218, +94,209,7,25, +143,140,212,234, +150,38,175,141, +245,191,232,94, +28,19,70,217, +216,84,170,168, +78,88,121,21, +216,115,44,80, +249,50,170,225, +75,232,74,241, +7,91,161,24, +241,31,30,49, +34,171,118,47, +189,94,237,217, +78,50,70,38, +38,232,214,14, +196,229,232,10, +58,38,9,207, +206,167,102,221, +179,10,220,222, +21,196,52,23, +27,108,161,78, +89,153,170,76, +95,178,36,234, +149,104,184,32, +227,12,68,169, +128,3,122,21, +113,198,22,177, +153,244,227,204, +123,132,195,217, +152,243,97,253, +73,39,216,42, +216,245,70,192, +20,125,142,48, +67,59,82,73, +40,125,166,19, +235,102,183,212, +48,171,129,202, +142,23,112,244, +83,98,171,44, +109,1,55,253, +117,223,117,215, +17,15,207,26, +235,113,131,20, +143,86,119,85, +44,134,49,224, +4,140,245,248, +2,133,155,20, +224,250,69,62, +121,181,21,38, +168,81,129,228, +241,32,32,198, +90,214,25,225, +245,70,57,3, +65,63,224,200, +2,219,238,18, +96,119,248,235, +128,183,200,237, +187,110,98,25, +179,192,217,246, +105,178,123,79, +167,189,173,229, +39,154,98,230, +184,156,152,1, +175,83,40,20, +214,76,30,43, +0,0,0,128, +191,19,150,242, +126,157,142,220, +207,3,75,34, +56,141,97,61, +191,123,132,5, +144,129,191,15, +185,182,192,170, +25,222,145,206, +109,49,106,212, +148,133,50,200, +204,205,33,32, +255,28,122,249, +62,120,191,198, +11,233,189,222, +183,140,90,244, +16,142,205,2, +123,248,70,35, +169,13,179,227, +32,47,0,11, +162,168,222,206, +218,196,85,181, +204,225,57,4, +135,130,115,217, +213,7,170,244, +249,177,113,238, +255,255,255,127, +36,138,28,228, +149,236,81,3, +213,40,124,1, +150,69,64,238, +45,124,215,238, +208,40,52,208, +32,77,240,224, +157,113,53,29, +187,178,241,220, +128,121,68,134, +169,159,187,234, +82,97,200,14, +87,189,47,248, +84,236,150,187, +158,35,37,11, +76,42,9,101, +254,40,199,7, +0,0,0,128, +57,49,252,248, +84,228,173,17, +87,191,213,210, +80,14,138,185, +125,4,42,255, +117,41,206,41, +240,128,72,9, +110,51,49,1, +163,39,233,39, +131,172,44,4, +52,218,254,3, +142,0,245,251, +84,248,35,210, +62,55,52,58, +130,163,5,39, +244,113,10,19, +159,65,116,0, +167,46,55,24, +32,23,39,220, +171,121,18,229, +182,161,89,42, +126,228,69,86, +145,98,155,236, +4,46,128,3, +146,57,181,35, +255,97,125,228, +186,234,210,232, +237,177,211,173, +106,144,209,219, +113,13,155,56, +37,44,185,52, +86,216,154,9, +232,28,254,49, +235,240,166,17, +215,70,236,251, +122,42,235,177, +247,55,2,171, +220,215,39,199, +157,183,162,66, +145,86,200,159, +32,168,112,33, +254,84,90,225, +242,131,26,65, +252,160,48,23, +54,91,97,4, +109,209,105,65, +162,142,219,30, +160,231,181,48, +252,20,247,99, +157,163,134,215, +148,93,254,12, +234,48,20,209, +71,23,36,253, +153,160,61,238, +238,50,41,220, +212,95,35,82, +78,180,90,76, +21,82,113,57, +233,65,89,67, +0,0,0,128, +31,62,253,184, +107,44,195,191, +9,204,183,177, +69,84,194,247, +0,214,102,190, +34,40,234,38, +205,10,190,232, +245,174,27,218, +53,86,75,36, +197,105,89,240, +128,13,139,248, +193,131,145,10, +139,156,60,245, +148,105,17,193, +113,140,39,220, +46,233,93,17, +35,230,190,86, +208,68,213,35, +203,23,222,3, +55,83,95,248, +219,242,151,106, +130,77,95,191, +115,171,105,241, +13,27,106,7, +// Patterns\DSP\BasicMaths\BasicMathsQ31\Input2_q31.txt +250,221,56,25, +219,106,124,24, +96,27,90,250, +2,94,100,4, +227,135,0,241, +165,110,151,3, +126,64,226,252, +232,180,38,4, +82,188,69,23, +255,235,147,38, +7,88,14,255, +175,191,24,239, +49,196,26,37, +191,5,155,239, +124,110,42,24, +57,36,171,29, +196,200,69,236, +243,15,54,251, +37,35,229,250, +80,208,167,252, +117,236,105,10, +91,103,190,44, +106,137,141,255, +151,204,92,32, +110,240,120,238, +131,236,41,237, +220,15,75,231, +94,181,237,250, +209,185,42,249, +108,110,197,223, +206,199,134,249, +20,92,10,14, +150,69,75,240, +45,14,200,1, +68,19,162,249, +169,72,54,253, +76,226,12,229, +50,156,105,31, +54,52,143,21, +63,162,187,254, +11,37,21,245, +191,50,16,21, +8,246,218,233, +211,135,103,234, +113,133,9,255, +104,162,153,10, +120,143,236,241, +125,204,89,233, +76,121,89,17, +172,164,255,234, +100,13,156,250, +141,19,32,0, +94,210,177,14, +186,165,131,10, +77,63,191,2, +105,211,189,13, +213,7,9,25, +98,134,101,5, +114,6,149,14, +212,3,189,4, +236,112,23,242, +236,252,42,9, +72,5,63,248, +243,45,33,214, +77,40,195,34, +249,212,208,241, +158,17,3,224, +115,130,221,7, +233,122,93,29, +211,159,227,244, +41,246,156,250, +140,117,5,9, +148,132,253,17, +53,107,98,17, +109,27,14,242, +183,199,4,14, +110,108,111,5, +252,243,254,3, +245,221,16,238, +65,211,83,243, +209,149,220,243, +207,235,127,8, +233,202,204,28, +178,159,20,28, +127,156,254,247, +202,5,252,11, +18,95,59,224, +38,193,221,7, +134,232,24,227, +206,182,71,237, +30,199,254,241, +235,148,10,255, +181,76,177,15, +35,8,169,232, +137,232,200,17, +105,246,218,26, +179,131,50,7, +239,131,37,240, +71,47,104,236, +72,224,195,251, +148,110,92,16, +23,218,250,254, +26,207,38,241, +150,186,209,9, +164,113,131,7, +188,187,77,31, +230,168,89,244, +5,209,107,253, +255,66,140,7, +118,15,207,22, +70,5,243,13, +52,242,237,245, +25,102,205,234, +190,191,174,244, +25,70,46,1, +191,75,207,235, +81,65,239,6, +230,240,169,248, +86,251,83,249, +104,45,76,9, +58,27,166,252, +109,189,28,29, +65,251,91,246, +182,57,158,246, +131,169,149,0, +244,17,98,7, +2,254,202,15, +188,48,53,205, +73,66,22,251, +62,178,4,243, +43,124,143,12, +225,100,123,22, +123,89,5,2, +24,158,196,5, +248,203,198,224, +130,45,229,237, +112,60,9,240, +102,170,143,235, +90,220,196,11, +26,95,156,253, +181,194,7,235, +138,140,209,243, +93,252,187,251, +135,209,6,1, +203,196,235,12, +182,101,162,245, +115,123,7,4, +212,77,1,238, +122,10,167,228, +166,66,140,1, +53,121,225,241, +228,24,217,251, +152,223,145,249, +234,234,225,46, +161,8,201,245, +31,77,55,1, +166,61,139,0, +105,197,127,249, +235,39,183,249, +162,98,126,238, +29,137,159,244, +97,194,178,10, +193,252,40,243, +158,192,105,211, +39,228,53,248, +86,26,106,5, +159,93,35,253, +172,126,241,230, +138,4,21,4, +189,158,1,37, +24,77,217,2, +205,84,253,202, +31,64,110,253, +44,178,121,6, +154,25,117,239, +129,64,49,230, +240,159,177,255, +4,224,79,15, +210,112,102,3, +40,201,111,0, +86,59,158,14, +48,108,135,1, +187,163,118,1, +115,233,132,254, +78,252,51,239, +118,126,81,21, +74,230,74,14, +66,92,249,6, +198,148,42,0, +53,146,222,8, +60,199,222,242, +200,28,35,246, +101,245,130,15, +79,99,153,31, +248,156,229,248, +71,62,72,1, +201,38,20,13, +33,129,236,245, +147,228,130,247, +64,11,231,225, +223,115,191,242, +69,161,187,20, +32,154,79,19, +144,153,132,3, +210,142,79,18, +109,38,119,6, +78,183,129,254, +88,179,102,227, +8,202,222,224, +73,253,45,235, +79,22,104,24, +174,44,194,220, +210,129,63,12, +22,95,198,244, +131,111,216,23, +229,103,126,8, +244,183,154,1, +83,123,245,23, +213,93,77,11, +100,88,215,17, +84,59,157,36, +48,243,44,241, +154,88,194,4, +245,112,208,238, +143,236,243,254, +115,205,126,249, +243,140,223,242, +94,175,21,30, +95,92,247,27, +30,28,10,21, +48,242,170,24, +69,132,102,194, +39,173,253,229, +38,195,120,232, +189,226,83,227, +193,74,251,252, +72,45,249,231, +114,213,64,14, +66,63,123,247, +255,17,31,242, +5,34,75,13, +118,130,68,250, +152,207,68,253, +136,242,222,3, +12,201,14,252, +13,47,243,232, +52,242,222,242, +192,102,92,6, +121,181,197,31, +97,227,31,13, +12,164,106,1, +120,203,52,253, +1,190,10,39, +197,46,84,232, +151,58,168,250, +216,55,183,2, +// Parameters\DSP\BasicMaths\BasicMathsQ31 +// Patterns\DSP\BasicMaths\BasicMathsQ15\Input1_q15.txt +180,218, +110,14, +123,30, +250,4, +190,37, +57,242, +114,98, +195,10, +54,42, +9,41, +10,28, +101,24, +60,21, +251,35, +0,128, +104,86, +194,219, +247,98, +139,163, +193,214, +85,211, +48,76, +22,247, +118,17, +20,47, +201,220, +147,83, +238,233, +159,14, +11,26, +37,15, +85,38, +173,243, +70,109, +0,128, +168,16, +109,31, +11,19, +190,69, +117,14, +28,121, +250,238, +95,8, +28,232, +33,159, +141,13, +3,200, +141,245, +48,255, +89,34, +50,244, +158,13, +119,10, +137,251, +46,157, +13,25, +119,14, +18,41, +197,250, +18,29, +137,40, +137,12, +127,25, +219,245, +222,175, +84,159, +233,209, +138,187, +220,239, +42,21, +204,235, +155,54, +153,248, +193,30, +234,199, +46,208, +135,204, +26,46, +169,64, +188,243, +254,249, +125,160, +110,5, +175,157, +13,228, +49,221, +68,88, +128,214, +222,135, +125,53, +0,233, +89,246, +172,52, +33,10, +230,236, +161,52, +209,16, +53,251, +44,247, +28,228, +76,46, +54,205, +255,127, +82,110, +250,192, +207,60, +211,41, +33,253, +94,163, +94,25, +111,228, +121,207, +41,15, +167,27, +64,228, +195,171, +234,137, +26,234, +85,124, +106,255, +20,240, +118,250, +163,237, +219,213, +26,168, +92,252, +210,168, +179,62, +41,33, +232,210, +148,16, +197,230, +130,34, +124,186, +243,229, +103,37, +130,209, +82,224, +195,212, +172,83, +32,40, +44,227, +216,248, +133,219, +226,253, +11,45, +85,193, +108,246, +192,198, +196,252, +139,202, +186,32, +51,223, +14,206, +16,215, +140,3, +234,29, +88,114, +28,218, +208,23, +172,218, +132,195, +79,207, +81,38, +125,250, +134,228, +5,62, +1,164, +40,9, +79,247, +161,51, +38,201, +100,39, +58,219, +179,232, +65,184, +210,18, +151,69, +246,92, +41,240, +184,225, +17,91, +28,11, +11,199, +80,227, +56,253, +202,56, +253,223, +91,209, +43,26, +151,62, +74,176, +153,179, +221,149, +106,36, +104,249, +28,218, +140,220, +116,187, +254,204, +254,5, +85,245, +163,250, +55,9, +129,240, +134,89, +1,194, +133,3, +108,193, +86,43, +155,40, +63,68, +94,235, +42,14, +64,182, +100,201, +190,236, +71,213, +96,46, +153,75, +37,167, +98,31, +208,1, +120,20, +98,39, +193,209, +63,201, +72,38, +228,40, +170,249, +149,76, +141,196, +2,233, +29,26, +245,65, +235,246, +237,20, +25,18, +125,5, +212,191, +175,63, +175,51, +108,189, +251,246, +41,210, +99,36, +91,128, +228,148, +34,1, +226,228, +137,11, +197,6, +51,20, +110,9, +32,2, +190,30, +// Patterns\DSP\BasicMaths\BasicMathsQ15\Input2_q15.txt +11,244, +160,4, +198,9, +152,1, +26,12, +149,251, +145,31, +115,3, +137,13, +40,13, +253,8, +210,7, +207,6, +137,11, +34,214, +180,27, +97,244, +187,31, +91,226, +199,242, +174,241, +110,24, +36,253, +153,5, +24,15, +182,244, +204,26, +236,248, +176,4, +90,8, +219,4, +74,12, +12,252, +9,35, +62,214, +87,5, +20,10, +27,6, +93,22, +163,4, +213,38, +139,250, +175,2, +87,248, +241,224, +88,4, +12,238, +166,252, +189,255, +3,11, +55,252, +94,4, +91,3, +145,254, +81,224, +8,8, +163,4, +43,13, +83,254, +82,9, +255,12, +5,4, +45,8, +191,252, +79,230, +1,225, +57,241, +13,234, +211,250, +201,6, +134,249, +130,17, +160,253, +220,9, +4,238, +171,240, +127,239, +200,14, +187,20, +17,252, +19,254, +96,225, +190,1, +122,224, +10,247, +215,244, +77,28, +178,242, +123,217, +38,17, +160,248, +232,252, +228,16, +63,3, +224,249, +224,16, +100,5, +118,254, +43,253, +15,247, +216,14, +183,239, +10,41, +95,35, +203,235, +127,19, +105,13, +20,255, +77,226, +34,8, +41,247, +113,240, +220,4, +222,8, +26,247, +253,228, +35,218, +251,248, +221,39, +208,255, +229,250, +57,254, +29,250, +125,242, +209,227, +213,254, +12,228, +26,20, +162,10, +139,241, +81,5, +233,247, +16,11, +182,233, +166,247, +254,11, +24,241, +216,245, +35,242, +212,26, +222,12, +194,246, +180,253, +78,244, +82,255, +113,14, +232,235, +238,252, +165,237, +246,254, +220,238, +126,10, +124,245, +252,239, +224,242, +35,1, +151,9, +170,36, +218,243, +163,7, +8,244, +155,236, +99,240, +73,12, +60,254, +49,247, +227,19, +129,226, +240,2, +55,253, +142,16, +106,238, +161,12, +54,244, +135,248, +255,232, +9,6, +80,22, +206,29, +236,250, +75,246, +51,29, +144,3, +189,237, +205,246, +28,255, +53,18, +188,245, +11,241, +100,8, +17,20, +113,230, +129,231, +248,221, +173,11, +227,253, +218,243, +162,244, +5,234, +165,239, +236,1, +148,252, +72,254, +244,2, +8,251, +180,28, +31,236, +33,1, +240,235, +229,13, +5,13, +226,21, +99,249, +139,4, +90,232, +125,238, +211,249, +77,242, +223,14, +61,24, +131,227, +16,10, +149,0, +144,6, +161,12, +44,241, +114,238, +70,12, +28,13, +248,253, +142,24, +240,236, +161,248, +95,8, +38,21, +22,253, +182,6, +205,5, +194,1, +109,235, +107,20, +146,16, +167,234, +28,253, +77,241, +171,11, +19,215, +168,221, +93,0, +78,247, +179,3, +44,2, +122,6, +6,3, +174,0, +219,9, +// Parameters\DSP\BasicMaths\BasicMathsQ15 +// Patterns\DSP\BasicMaths\BasicMathsQ7\Input1_q7.txt +52, +216, +22, +227, +201, +72, +17, +227, +220, +248, +49, +49, +238, +16, +120, +31, +0, +16, +70, +169, +17, +61, +27, +44, +73, +144, +57, +68, +61, +110, +235, +74, +46, +197, +243, +23, +3, +72, +40, +5, +208, +184, +255, +33, +15, +186, +249, +25, +219, +201, +226, +18, +126, +209, +18, +253, +1, +68, +247, +71, +94, +239, +241, +64, +218, +202, +252, +218, +37, +230, +215, +251, +5, +30, +65, +24, +14, +35, +7, +248, +30, +30, +179, +0, +7, +47, +238, +4, +242, +15, +24, +249, +171, +92, +253, +198, +182, +52, +214, +6, +235, +59, +72, +6, +205, +188, +215, +236, +58, +253, +232, +17, +205, +127, +209, +208, +247, +12, +226, +241, +31, +86, +192, +253, +66, +23, +221, +7, +228, +249, +204, +3, +191, +224, +63, +222, +253, +234, +237, +247, +210, +11, +65, +38, +64, +232, +57, +42, +15, +56, +212, +1, +53, +47, +3, +232, +176, +22, +203, +174, +63, +84, +41, +37, +205, +24, +236, +164, +49, +100, +25, +4, +91, +164, +218, +207, +227, +59, +224, +43, +13, +240, +4, +236, +234, +58, +58, +39, +250, +69, +67, +205, +47, +239, +49, +26, +11, +249, +168, +20, +235, +248, +250, +184, +201, +228, +250, +230, +51, +211, +17, +31, +32, +27, +5, +193, +49, +8, +233, +24, +3, +8, +16, +180, +224, +177, +26, +19, +216, +150, +8, +148, +55, +223, +183, +10, +206, +76, +32, +250, +37, +201, +200, +246, +30, +12, +27, +235, +219, +26, +219, +15, +64, +25, +82, +206, +// Patterns\DSP\BasicMaths\BasicMathsQ7\Input2_q7.txt +19, +242, +8, +246, +236, +26, +6, +246, +243, +253, +18, +18, +249, +6, +43, +11, +0, +6, +25, +225, +6, +22, +10, +16, +26, +216, +20, +24, +22, +39, +248, +26, +16, +235, +251, +8, +1, +26, +14, +2, +239, +230, +0, +12, +6, +231, +253, +9, +243, +236, +245, +7, +45, +239, +6, +255, +0, +24, +253, +26, +34, +250, +251, +23, +242, +237, +255, +242, +13, +247, +241, +254, +2, +11, +23, +9, +5, +12, +2, +253, +11, +11, +229, +0, +3, +17, +250, +1, +251, +5, +9, +254, +226, +33, +255, +235, +229, +19, +241, +2, +248, +21, +26, +2, +238, +232, +241, +249, +21, +255, +247, +6, +238, +46, +239, +239, +253, +4, +245, +251, +11, +31, +233, +255, +24, +8, +244, +3, +246, +253, +237, +1, +233, +245, +23, +244, +255, +248, +249, +253, +240, +4, +23, +14, +23, +247, +20, +15, +5, +20, +240, +0, +19, +17, +1, +247, +227, +8, +237, +227, +23, +30, +15, +13, +238, +8, +249, +223, +18, +36, +9, +1, +32, +223, +242, +239, +246, +21, +245, +15, +5, +250, +1, +249, +248, +21, +21, +14, +254, +25, +24, +238, +17, +250, +17, +9, +4, +254, +224, +7, +248, +253, +254, +230, +236, +246, +254, +247, +18, +240, +6, +11, +11, +10, +2, +233, +18, +3, +248, +9, +1, +3, +6, +229, +245, +228, +9, +7, +242, +218, +3, +218, +20, +244, +230, +4, +238, +27, +11, +254, +13, +236, +236, +252, +11, +4, +10, +249, +243, +9, +243, +5, +23, +9, +29, +238, +// Parameters\DSP\BasicMaths\BasicMathsQ7 +// Patterns\NN\FullyConnected\TestCase_1_10_4_input_1.txt +1, +3, +5, +7, +9, +11, +13, +239, +17, +235, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_bias_1.txt +4, +8, +12, +16, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_weights_1.txt +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +// Patterns\NN\FullyConnected\TestCase_1_10_4_output_1.txt +57, +58, +59, +60, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_8_9_input_2.txt +254, +0, +255, +250, +243, +21, +255, +246, +// Patterns\NN\FullyConnected\TestCase_1_8_9_bias_2.txt +253, +1, +254, +2, +1, +8, +3, +2, +252, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_8_9_weights_2.txt +0, +253, +2, +3, +1, +6, +7, +255, +0, +1, +252, +3, +1, +6, +66, +0, +0, +21, +2, +33, +1, +7, +0, +8, +0, +20, +2, +3, +1, +248, +7, +251, +0, +1, +2, +3, +1, +255, +252, +8, +10, +253, +2, +3, +1, +6, +7, +250, +8, +253, +2, +34, +1, +6, +7, +8, +248, +253, +2, +0, +1, +248, +7, +8, +103, +102, +255, +255, +255, +127, +255, +255, +// Patterns\NN\FullyConnected\TestCase_1_8_9_output_2.txt +103, +102, +175, +128, +132, +127, +128, +128, +127, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_input_3.txt +245, +1, +2, +3, +4, +5, +6, +7, +246, +245, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_bias_3.txt +1, +2, +3, +253, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_weights_3.txt +0, +1, +2, +3, +4, +5, +6, +7, +8, +9, +0, +1, +128, +3, +4, +5, +248, +7, +8, +253, +127, +1, +2, +3, +75, +5, +6, +7, +8, +0, +0, +1, +254, +3, +4, +5, +248, +7, +8, +245, +// Patterns\NN\FullyConnected\TestCase_1_10_4_output_3.txt +25, +255, +255, +127, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_9_1_input_4.txt +245, +0, +0, +250, +5, +1, +255, +246, +255, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_9_1_bias_4.txt +253, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_9_1_weights_4.txt +0, +253, +2, +3, +1, +6, +7, +8, +9, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_9_1_output_4.txt +168, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_8_8_input_5.txt +254, +0, +255, +250, +243, +21, +255, +246, +// Patterns\NN\FullyConnected\TestCase_1_8_8_bias_5.txt +253, +1, +254, +2, +1, +8, +3, +2, +// Patterns\NN\FullyConnected\TestCase_1_8_8_weights_5.txt +0, +253, +2, +3, +1, +6, +7, +255, +0, +1, +252, +3, +1, +6, +66, +0, +0, +21, +2, +33, +1, +7, +0, +8, +0, +20, +2, +3, +1, +248, +7, +251, +0, +1, +2, +3, +1, +255, +252, +8, +10, +253, +2, +3, +1, +6, +7, +250, +8, +253, +2, +34, +1, +6, +7, +8, +248, +253, +2, +0, +1, +248, +7, +8, +// Patterns\NN\FullyConnected\TestCase_1_8_8_output_5.txt +103, +102, +175, +128, +132, +127, +128, +128, +// Patterns\NN\FullyConnected\TestCase_9_6_1_input_6.txt +3, +5, +7, +9, +11, +13, +3, +5, +7, +253, +11, +13, +3, +237, +7, +9, +5, +247, +3, +5, +7, +9, +65, +13, +3, +5, +7, +9, +11, +13, +3, +5, +7, +9, +11, +253, +3, +1, +7, +9, +3, +255, +3, +249, +7, +9, +5, +67, +3, +249, +7, +9, +65, +13, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_bias_6.txt +4, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_weights_6.txt +1, +3, +5, +7, +255, +11, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_output_6.txt +82, +58, +248, +82, +82, +34, +36, +127, +70, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_1_input_7.txt +1, +3, +5, +7, +9, +11, +13, +1, +3, +5, +7, +253, +11, +13, +1, +3, +237, +7, +9, +5, +247, +1, +3, +5, +7, +9, +65, +13, +1, +3, +5, +7, +9, +11, +13, +1, +3, +5, +7, +9, +11, +253, +1, +3, +1, +7, +9, +3, +255, +1, +3, +249, +7, +9, +5, +67, +0, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_1_bias_7.txt +4, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_1_weights_7.txt +1, +3, +5, +7, +255, +11, +13, +239, +// Patterns\NN\FullyConnected\TestCase_8_8_1_output_7.txt +107, +49, +22, +127, +48, +58, +128, +8, +// Patterns\NN\FullyConnected\TestCase_4_10_1_input_8.txt +1, +3, +5, +7, +9, +11, +13, +15, +237, +235, +1, +3, +5, +7, +9, +11, +13, +239, +17, +235, +1, +3, +5, +7, +9, +5, +13, +239, +17, +235, +1, +3, +5, +7, +9, +5, +13, +239, +17, +235, +// Patterns\NN\FullyConnected\TestCase_4_10_1_bias_8.txt +4, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_10_1_weights_8.txt +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_10_1_output_8.txt +23, +57, +39, +39, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_input_9.txt +3, +5, +7, +9, +11, +13, +3, +5, +7, +253, +11, +13, +3, +237, +7, +9, +5, +247, +3, +5, +7, +9, +65, +13, +3, +5, +7, +9, +11, +13, +3, +5, +7, +9, +11, +253, +3, +1, +7, +9, +3, +255, +3, +249, +7, +9, +5, +67, +3, +249, +7, +9, +65, +13, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_bias_9.txt +4, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_weights_9.txt +1, +3, +5, +7, +255, +11, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_6_1_output_9.txt +82, +58, +248, +82, +82, +34, +36, +127, +70, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_10_1_input_10.txt +1, +3, +5, +7, +9, +11, +13, +15, +237, +235, +1, +3, +5, +7, +9, +11, +13, +239, +17, +235, +1, +3, +5, +7, +9, +5, +13, +239, +17, +235, +1, +3, +5, +7, +9, +5, +13, +239, +17, +235, +// Patterns\NN\FullyConnected\TestCase_4_10_1_bias_10.txt +4, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_10_1_weights_10.txt +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_10_1_output_10.txt +23, +57, +39, +39, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_1_input_11.txt +1, +3, +5, +7, +9, +11, +13, +1, +3, +5, +7, +253, +11, +13, +1, +3, +237, +7, +9, +5, +247, +1, +3, +5, +7, +9, +65, +13, +1, +3, +5, +7, +9, +11, +13, +1, +3, +5, +7, +9, +11, +253, +1, +3, +1, +7, +9, +3, +255, +1, +3, +249, +7, +9, +5, +67, +0, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_1_bias_11.txt +4, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_1_weights_11.txt +1, +3, +5, +7, +255, +11, +13, +239, +// Patterns\NN\FullyConnected\TestCase_8_8_1_output_11.txt +107, +49, +22, +127, +48, +58, +128, +8, +// Patterns\NN\FullyConnected\TestCase_9_8_4_input_12.txt +180, +1, +1, +1, +1, +1, +1, +14, +1, +255, +1, +0, +251, +244, +2, +0, +9, +255, +11, +0, +251, +244, +2, +0, +1, +249, +254, +3, +1, +244, +249, +8, +255, +195, +1, +0, +251, +255, +2, +0, +2, +255, +1, +0, +1, +254, +23, +0, +1, +249, +254, +3, +1, +22, +249, +8, +3, +237, +19, +37, +241, +244, +2, +99, +1, +255, +19, +37, +251, +244, +2, +9, +// Patterns\NN\FullyConnected\TestCase_9_8_4_bias_12.txt +254, +1, +255, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_9_8_4_weights_12.txt +2, +1, +1, +1, +1, +1, +1, +1, +1, +1, +2, +3, +4, +2, +0, +253, +2, +255, +1, +0, +251, +244, +2, +0, +98, +255, +1, +7, +5, +254, +2, +0, +// Patterns\NN\FullyConnected\TestCase_9_8_4_output_12.txt +128, +151, +128, +128, +241, +215, +127, +103, +11, +243, +127, +127, +240, +212, +127, +127, +188, +175, +100, +201, +24, +4, +70, +127, +18, +24, +128, +71, +115, +128, +127, +127, +49, +79, +127, +127, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_5_input_13.txt +180, +1, +1, +1, +1, +1, +1, +1, +1, +255, +1, +0, +251, +244, +2, +0, +9, +255, +1, +0, +251, +244, +2, +0, +1, +249, +254, +3, +1, +244, +249, +8, +255, +255, +1, +0, +251, +255, +2, +0, +1, +249, +254, +3, +1, +22, +249, +8, +3, +237, +19, +37, +241, +244, +2, +99, +1, +255, +19, +37, +251, +244, +2, +9, +// Patterns\NN\FullyConnected\TestCase_8_8_5_bias_13.txt +254, +1, +255, +3, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_5_weights_13.txt +2, +1, +1, +1, +1, +1, +1, +1, +1, +1, +2, +3, +4, +2, +0, +253, +2, +255, +1, +0, +251, +244, +2, +0, +98, +255, +1, +7, +5, +254, +2, +0, +2, +255, +1, +0, +1, +254, +2, +0, +// Patterns\NN\FullyConnected\TestCase_8_8_5_output_13.txt +128, +128, +128, +128, +128, +227, +175, +127, +127, +55, +3, +191, +127, +127, +87, +225, +169, +127, +127, +37, +241, +215, +81, +128, +3, +37, +49, +128, +127, +157, +127, +128, +127, +127, +115, +99, +127, +127, +127, +91, +// Patterns\NN\FullyConnected\TestCase_4_7_3_input_14.txt +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_7_3_bias_14.txt +0, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_7_3_weights_14.txt +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_4_7_3_output_14.txt +6, +6, +6, +6, +6, +6, +6, +6, +6, +6, +6, +6, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_7_4_input_15.txt +254, +0, +255, +250, +243, +1, +255, +0, +0, +0, +0, +0, +0, +0, +248, +253, +2, +0, +1, +248, +7, +254, +0, +255, +250, +243, +1, +255, +248, +253, +2, +0, +1, +248, +7, +254, +0, +255, +250, +254, +1, +255, +254, +18, +36, +250, +243, +1, +8, +236, +18, +36, +240, +243, +1, +98, +// Patterns\NN\FullyConnected\TestCase_8_7_4_bias_15.txt +254, +1, +255, +3, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_7_4_weights_15.txt +0, +0, +0, +0, +0, +0, +0, +0, +1, +2, +3, +1, +255, +252, +254, +0, +255, +250, +243, +1, +255, +254, +0, +6, +4, +253, +1, +255, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_8_7_4_output_15.txt +238, +213, +127, +7, +4, +9, +239, +14, +251, +238, +216, +15, +238, +213, +127, +7, +251, +238, +216, +15, +249, +235, +41, +241, +46, +77, +127, +127, +108, +128, +127, +127, +// Patterns\NN\FullyConnected\TestCase_1_10_4_input_1.txt +1, +3, +5, +7, +9, +11, +13, +239, +17, +235, +0, +0, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_bias_1.txt +4, +8, +12, +16, +0, +0, +0, +0, +// Patterns\NN\FullyConnected\TestCase_1_10_4_weights_1.txt +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +1, +3, +5, +7, +9, +11, +13, +15, +17, +19, +// Patterns\NN\FullyConnected\TestCase_1_10_4_output_1.txt +57, +58, +59, +60, +0, +0, +0, +0, +// Parameters\NN\FullyConnected }; #endif diff --git a/Testing/GeneratedInclude/TestDesc.h b/Testing/GeneratedInclude/TestDesc.h index 23ff2b3a..59ca8f23 100644 --- a/Testing/GeneratedInclude/TestDesc.h +++ b/Testing/GeneratedInclude/TestDesc.h @@ -1,6 +1,32 @@ #include "Test.h" #include "Pattern.h" +#include "StatsTestsF32.h" #include "SupportTestsF32.h" +#include "BasicTestsF32.h" +#include "SVMF32.h" +#include "BayesF32.h" +#include "DistanceTestsF32.h" +#include "DistanceTestsU32.h" +#include "BasicMathsBenchmarksF32.h" +#include "BasicMathsBenchmarksQ31.h" +#include "BasicMathsBenchmarksQ15.h" +#include "BasicMathsBenchmarksQ7.h" +#include "FullyConnected.h" +#include "FullyConnectedBench.h" +class StatsTests : public Client::Group +{ + public: + StatsTests(Testing::testID_t id):Client::Group(id) + ,StatsTestsF32Var(1) + + { + this->addContainer(&StatsTestsF32Var); + + } + private: + StatsTestsF32 StatsTestsF32Var; +; +}; class SupportTests : public Client::Group { public: @@ -15,18 +41,157 @@ class SupportTests : public Client::Group SupportTestsF32 SupportTestsF32Var; ; }; +class BasicTests : public Client::Group +{ + public: + BasicTests(Testing::testID_t id):Client::Group(id) + ,BasicTestsF32Var(1) + + { + this->addContainer(&BasicTestsF32Var); + + } + private: + BasicTestsF32 BasicTestsF32Var; +; +}; +class SVMTests : public Client::Group +{ + public: + SVMTests(Testing::testID_t id):Client::Group(id) + ,SVMF32Var(1) + + { + this->addContainer(&SVMF32Var); + + } + private: + SVMF32 SVMF32Var; +; +}; +class BayesTests : public Client::Group +{ + public: + BayesTests(Testing::testID_t id):Client::Group(id) + ,BayesF32Var(1) + + { + this->addContainer(&BayesF32Var); + + } + private: + BayesF32 BayesF32Var; +; +}; +class DistanceTests : public Client::Group +{ + public: + DistanceTests(Testing::testID_t id):Client::Group(id) + ,DistanceTestsF32Var(1) +,DistanceTestsU32Var(2) + + { + this->addContainer(&DistanceTestsF32Var); +this->addContainer(&DistanceTestsU32Var); + + } + private: + DistanceTestsF32 DistanceTestsF32Var; +DistanceTestsU32 DistanceTestsU32Var; +; +}; class DSPTests : public Client::Group { public: DSPTests(Testing::testID_t id):Client::Group(id) - ,SupportTestsVar(2) + ,StatsTestsVar(1) +,SupportTestsVar(2) +,BasicTestsVar(3) +,SVMTestsVar(4) +,BayesTestsVar(5) +,DistanceTestsVar(6) { - this->addContainer(NULL);this->addContainer(&SupportTestsVar); -this->addContainer(NULL);this->addContainer(NULL);this->addContainer(NULL); + this->addContainer(&StatsTestsVar); +this->addContainer(&SupportTestsVar); +this->addContainer(&BasicTestsVar); +this->addContainer(&SVMTestsVar); +this->addContainer(&BayesTestsVar); +this->addContainer(&DistanceTestsVar); + } private: - SupportTests SupportTestsVar; + StatsTests StatsTestsVar; +SupportTests SupportTestsVar; +BasicTests BasicTestsVar; +SVMTests SVMTestsVar; +BayesTests BayesTestsVar; +DistanceTests DistanceTestsVar; +; +}; +class BasicBenchmarks : public Client::Group +{ + public: + BasicBenchmarks(Testing::testID_t id):Client::Group(id) + ,BasicMathsBenchmarksF32Var(1) +,BasicMathsBenchmarksQ31Var(2) +,BasicMathsBenchmarksQ15Var(3) +,BasicMathsBenchmarksQ7Var(4) + + { + this->addContainer(&BasicMathsBenchmarksF32Var); +this->addContainer(&BasicMathsBenchmarksQ31Var); +this->addContainer(&BasicMathsBenchmarksQ15Var); +this->addContainer(&BasicMathsBenchmarksQ7Var); + + } + private: + BasicMathsBenchmarksF32 BasicMathsBenchmarksF32Var; +BasicMathsBenchmarksQ31 BasicMathsBenchmarksQ31Var; +BasicMathsBenchmarksQ15 BasicMathsBenchmarksQ15Var; +BasicMathsBenchmarksQ7 BasicMathsBenchmarksQ7Var; +; +}; +class DSPBenchmarks : public Client::Group +{ + public: + DSPBenchmarks(Testing::testID_t id):Client::Group(id) + ,BasicBenchmarksVar(1) + + { + this->addContainer(&BasicBenchmarksVar); + + } + private: + BasicBenchmarks BasicBenchmarksVar; +; +}; +class NNTests : public Client::Group +{ + public: + NNTests(Testing::testID_t id):Client::Group(id) + ,FullyConnectedVar(1) + + { + this->addContainer(&FullyConnectedVar); + + } + private: + FullyConnected FullyConnectedVar; +; +}; +class NNBenchmarks : public Client::Group +{ + public: + NNBenchmarks(Testing::testID_t id):Client::Group(id) + ,FullyConnectedBenchVar(1) + + { + this->addContainer(&FullyConnectedBenchVar); + + } + private: + FullyConnectedBench FullyConnectedBenchVar; ; }; class Root : public Client::Group @@ -34,12 +199,21 @@ class Root : public Client::Group public: Root(Testing::testID_t id):Client::Group(id) ,DSPTestsVar(1) +,DSPBenchmarksVar(2) +,NNTestsVar(3) +,NNBenchmarksVar(4) { this->addContainer(&DSPTestsVar); -this->addContainer(NULL);this->addContainer(NULL);this->addContainer(NULL); +this->addContainer(&DSPBenchmarksVar); +this->addContainer(&NNTestsVar); +this->addContainer(&NNBenchmarksVar); + } private: DSPTests DSPTestsVar; +DSPBenchmarks DSPBenchmarksVar; +NNTests NNTestsVar; +NNBenchmarks NNBenchmarksVar; ; }; diff --git a/Testing/GeneratedInclude/TestDrive.h b/Testing/GeneratedInclude/TestDrive.h index 83ccfd90..04504a3f 100644 --- a/Testing/GeneratedInclude/TestDrive.h +++ b/Testing/GeneratedInclude/TestDrive.h @@ -8,6 +8,58 @@ __ALIGNED(8) const char testDesc[]={ 1,0,0,0, 'n','y','D','S','P','\0', 3,0,0,0, +1,0,0,0, +'n','y','S','t','a','t','s','\0', +2,0,0,0, +1,0,0,0, +'n','y','S','t','a','t','s','F','3','2','\0', +0,0,0,0, +14,0,0,0, +0,0,0,0, +140,0,0,0, +48,2,0,0, +2,0,0,0, +56,2,0,0, +10,0,0,0, +96,2,0,0, +200,0,0,0, +128,5,0,0, +2,0,0,0, +136,5,0,0, +10,0,0,0, +176,5,0,0, +120,0,0,0, +144,7,0,0, +120,0,0,0, +112,9,0,0, +2,0,0,0, +120,9,0,0, +10,0,0,0, +160,9,0,0, +140,0,0,0, +208,11,0,0, +140,0,0,0, +0,14,0,0, +2,0,0,0, +8,14,0,0, +10,0,0,0, +2,0,0,0, +'O','u','t','p','u','t','\0', +'T','e','m','p','\0', +0,0,0,0, +1,0,0,0, +1,0,0,0, +'n','n', +1,0,0,0, +2,0,0,0, +'n','n', +1,0,0,0, +3,0,0,0, +'n','n', +1,0,0,0, +4,0,0,0, +'n','n', +3,0,0,0, 2,0,0,0, 'n','y','S','u','p','p','o','r','t','\0', 2,0,0,0, @@ -15,24 +67,272 @@ __ALIGNED(8) const char testDesc[]={ 'n','y','S','u','p','p','o','r','t','F','3','2','\0', 0,0,0,0, 8,0,0,0, -0,0,0,0, +48,14,0,0, 120,5,0,0, -224,21,0,0, +16,36,0,0, 3,0,0,0, -232,21,0,0, +24,36,0,0, 100,0,0,0, -120,23,0,0, +168,37,0,0, 140,0,0,0, -168,25,0,0, +216,39,0,0, 200,0,0,0, -200,28,0,0, +248,42,0,0, 2,0,0,0, -208,28,0,0, +0,43,0,0, 200,0,0,0, -240,31,0,0, +32,46,0,0, +10,0,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +0,0,0,0, +1,0,0,0, +1,0,0,0, +'n','n', +1,0,0,0, +2,0,0,0, +'n','n', +3,0,0,0, +3,0,0,0, +'n','y','B','a','s','i','c','M','a','t','h','s','\0', +2,0,0,0, +1,0,0,0, +'n','y','B','a','s','i','c','M','a','t','h','s','F','3','2','\0', +0,0,0,0, +12,0,0,0, +72,46,0,0, +0,1,0,0, +72,50,0,0, +0,1,0,0, +72,54,0,0, +0,1,0,0, +72,58,0,0, +0,1,0,0, +72,62,0,0, +0,1,0,0, +72,66,0,0, +0,1,0,0, +72,70,0,0, +0,1,0,0, +72,74,0,0, +0,1,0,0, +72,78,0,0, +1,0,0,0, +80,78,0,0, +1,0,0,0, +88,78,0,0, +1,0,0,0, +96,78,0,0, +0,1,0,0, +2,0,0,0, +'O','u','t','p','u','t','\0', +'S','t','a','t','e','\0', +0,0,0,0, +1,0,0,0, +1,0,0,0, +'n','n', +1,0,0,0, +2,0,0,0, +'n','n', +1,0,0,0, +3,0,0,0, +'n','n', +1,0,0,0, +4,0,0,0, +'n','n', +1,0,0,0, +5,0,0,0, +'n','n', +1,0,0,0, +6,0,0,0, +'n','n', +1,0,0,0, +7,0,0,0, +'n','n', +1,0,0,0, +8,0,0,0, +'n','n', +1,0,0,0, +9,0,0,0, +'n','n', +1,0,0,0, +10,0,0,0, +'n','n', +1,0,0,0, +11,0,0,0, +'n','n', +1,0,0,0, +12,0,0,0, +'n','n', +1,0,0,0, +13,0,0,0, +'n','n', +1,0,0,0, +14,0,0,0, +'n','n', +1,0,0,0, +15,0,0,0, +'n','n', +1,0,0,0, +16,0,0,0, +'n','n', +1,0,0,0, +17,0,0,0, +'n','n', +1,0,0,0, +18,0,0,0, +'n','n', +1,0,0,0, +19,0,0,0, +'n','n', +1,0,0,0, +20,0,0,0, +'n','n', +1,0,0,0, +21,0,0,0, +'n','n', +1,0,0,0, +22,0,0,0, +'n','n', +1,0,0,0, +23,0,0,0, +'n','n', +1,0,0,0, +24,0,0,0, +'n','n', +3,0,0,0, +4,0,0,0, +'n','y','S','V','M','\0', +2,0,0,0, +1,0,0,0, +'n','y','S','V','M','F','3','2','\0', +0,0,0,0, +20,0,0,0, +96,82,0,0, +232,3,0,0, +0,98,0,0, +67,0,0,0, +16,99,0,0, +6,0,0,0, +32,99,0,0, +100,0,0,0, +176,100,0,0, +232,3,0,0, +80,116,0,0, +113,0,0,0, +24,118,0,0, +7,0,0,0, +40,118,0,0, +100,0,0,0, +184,119,0,0, +232,3,0,0, +88,135,0,0, +112,0,0,0, +24,137,0,0, +6,0,0,0, +40,137,0,0, +100,0,0,0, +184,138,0,0, +232,3,0,0, +88,154,0,0, +113,0,0,0, +32,156,0,0, +6,0,0,0, +48,156,0,0, +100,0,0,0, +192,157,0,0, +232,3,0,0, +96,173,0,0, +46,0,0,0, +24,174,0,0, +6,0,0,0, +40,174,0,0, +100,0,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +0,0,0,0, +1,0,0,0, +1,0,0,0, +'n','n', +1,0,0,0, +2,0,0,0, +'n','n', +1,0,0,0, +3,0,0,0, +'n','n', +1,0,0,0, +4,0,0,0, +'n','n', +1,0,0,0, +5,0,0,0, +'n','n', +3,0,0,0, +5,0,0,0, +'n','y','B','a','y','e','s','\0', +2,0,0,0, +1,0,0,0, +'n','y','B','a','y','e','s','F','3','2','\0', +0,0,0,0, +5,0,0,0, +184,175,0,0, +3,0,0,0, +192,175,0,0, +140,0,0,0, +240,177,0,0, +146,0,0,0, +56,180,0,0, +50,0,0,0, +0,181,0,0, 10,0,0,0, +2,0,0,0, +'P','r','o','b','a','s','\0', +'P','r','e','d','i','c','t','s','\0', +0,0,0,0, +1,0,0,0, 1,0,0,0, +'n','n', +3,0,0,0, +6,0,0,0, +'n','y','D','i','s','t','a','n','c','e','\0', +2,0,0,0, +1,0,0,0, +'n','y','D','i','s','t','a','n','c','e','F','3','2','\0', +0,0,0,0, +15,0,0,0, +24,181,0,0, +2,0,0,0, +32,181,0,0, +12,0,0,0, +56,181,0,0, +120,0,0,0, +24,183,0,0, +120,0,0,0, +248,184,0,0, +120,0,0,0, +216,186,0,0, +120,0,0,0, +184,188,0,0, +10,0,0,0, +224,188,0,0, +10,0,0,0, +8,189,0,0, +10,0,0,0, +48,189,0,0, +10,0,0,0, +88,189,0,0, +10,0,0,0, +128,189,0,0, +10,0,0,0, +168,189,0,0, +10,0,0,0, +208,189,0,0, +10,0,0,0, +248,189,0,0, +10,0,0,0, +3,0,0,0, 'O','u','t','p','u','t','\0', +'T','m','p','A','\0', +'T','m','p','B','\0', 0,0,0,0, 1,0,0,0, 1,0,0,0, @@ -40,5 +340,521 @@ __ALIGNED(8) const char testDesc[]={ 1,0,0,0, 2,0,0,0, 'n','n', +1,0,0,0, +3,0,0,0, +'n','n', +1,0,0,0, +4,0,0,0, +'n','n', +1,0,0,0, +5,0,0,0, +'n','n', +1,0,0,0, +6,0,0,0, +'n','n', +1,0,0,0, +7,0,0,0, +'n','n', +1,0,0,0, +8,0,0,0, +'n','n', +1,0,0,0, +9,0,0,0, +'n','n', +2,0,0,0, +2,0,0,0, +'n','y','D','i','s','t','a','n','c','e','U','3','2','\0', +0,0,0,0, +12,0,0,0, +32,190,0,0, +3,0,0,0, +40,190,0,0, +10,0,0,0, +80,190,0,0, +10,0,0,0, +120,190,0,0, +10,0,0,0, +160,190,0,0, +10,0,0,0, +200,190,0,0, +10,0,0,0, +240,190,0,0, +10,0,0,0, +24,191,0,0, +10,0,0,0, +64,191,0,0, +10,0,0,0, +104,191,0,0, +10,0,0,0, +144,191,0,0, +10,0,0,0, +184,191,0,0, +10,0,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +0,0,0,0, +1,0,0,0, +1,0,0,0, +'n','n', +1,0,0,0, +2,0,0,0, +'n','n', +1,0,0,0, +3,0,0,0, +'n','n', +1,0,0,0, +4,0,0,0, +'n','n', +1,0,0,0, +5,0,0,0, +'n','n', +1,0,0,0, +6,0,0,0, +'n','n', +1,0,0,0, +7,0,0,0, +'n','n', +1,0,0,0, +8,0,0,0, +'n','n', +1,0,0,0, +9,0,0,0, +'n','n', +3,0,0,0, +2,0,0,0, +'n','y','D','S','P','\0', +3,0,0,0, +1,0,0,0, +'n','y','B','a','s','i','c','M','a','t','h','s','\0', +2,0,0,0, +1,0,0,0, +'y',0,0,0,0, +'y','B','a','s','i','c','M','a','t','h','s','F','3','2','\0', +1,0,0,0, +2,0,0,0, +224,191,0,0, +0,1,0,0, +224,195,0,0, +0,1,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +1,0,0,0, +'g',1,0,0,0, +6,0,0,0, +5,0,0,0, +1,0,0,0, +5,0,0,0, +16,0,0,0, +32,0,0,0, +64,0,0,0, +128,0,0,0, +0,1,0,0, +1,0,0,0, +1,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +2,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +3,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +4,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +5,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +6,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +7,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +8,0,0,0, +'y',0,0,0,0, +'n', +2,0,0,0, +2,0,0,0, +'y',0,0,0,0, +'y','B','a','s','i','c','M','a','t','h','s','Q','3','1','\0', +1,0,0,0, +2,0,0,0, +224,199,0,0, +0,1,0,0, +224,203,0,0, +0,1,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +1,0,0,0, +'g',1,0,0,0, +6,0,0,0, +5,0,0,0, +1,0,0,0, +5,0,0,0, +16,0,0,0, +32,0,0,0, +64,0,0,0, +128,0,0,0, +0,1,0,0, +1,0,0,0, +1,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +2,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +3,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +4,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +5,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +6,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +7,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +8,0,0,0, +'y',0,0,0,0, +'n', +2,0,0,0, +3,0,0,0, +'y',0,0,0,0, +'y','B','a','s','i','c','M','a','t','h','s','Q','1','5','\0', +1,0,0,0, +2,0,0,0, +224,207,0,0, +0,1,0,0, +224,209,0,0, +0,1,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +1,0,0,0, +'g',1,0,0,0, +6,0,0,0, +5,0,0,0, +1,0,0,0, +5,0,0,0, +16,0,0,0, +32,0,0,0, +64,0,0,0, +128,0,0,0, +0,1,0,0, +1,0,0,0, +1,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +2,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +3,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +4,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +5,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +6,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +7,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +8,0,0,0, +'y',0,0,0,0, +'n', +2,0,0,0, +4,0,0,0, +'y',0,0,0,0, +'y','B','a','s','i','c','M','a','t','h','s','Q','7','\0', +1,0,0,0, +2,0,0,0, +224,211,0,0, +0,1,0,0, +224,212,0,0, +0,1,0,0, +1,0,0,0, +'O','u','t','p','u','t','\0', +1,0,0,0, +'g',1,0,0,0, +6,0,0,0, +5,0,0,0, +1,0,0,0, +5,0,0,0, +16,0,0,0, +32,0,0,0, +64,0,0,0, +128,0,0,0, +0,1,0,0, +1,0,0,0, +1,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +2,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +3,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +4,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +5,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +6,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +7,0,0,0, +'y',0,0,0,0, +'n', +1,0,0,0, +8,0,0,0, +'y',0,0,0,0, +'n', +3,0,0,0, +3,0,0,0, +'n','y','N','N','\0', +2,0,0,0, +1,0,0,0, +'n','y','F','u','l','l','y','C','o','n','n','e','c','t','e','d','\0', +0,0,0,0, +60,0,0,0, +224,213,0,0, +10,0,0,0, +240,213,0,0, +4,0,0,0, +248,213,0,0, +40,0,0,0, +32,214,0,0, +4,0,0,0, +40,214,0,0, +8,0,0,0, +48,214,0,0, +9,0,0,0, +64,214,0,0, +72,0,0,0, +136,214,0,0, +9,0,0,0, +152,214,0,0, +10,0,0,0, +168,214,0,0, +4,0,0,0, +176,214,0,0, +40,0,0,0, +216,214,0,0, +4,0,0,0, +224,214,0,0, +9,0,0,0, +240,214,0,0, +1,0,0,0, +248,214,0,0, +9,0,0,0, +8,215,0,0, +1,0,0,0, +16,215,0,0, +8,0,0,0, +24,215,0,0, +8,0,0,0, +32,215,0,0, +64,0,0,0, +96,215,0,0, +8,0,0,0, +104,215,0,0, +54,0,0,0, +160,215,0,0, +1,0,0,0, +168,215,0,0, +6,0,0,0, +176,215,0,0, +9,0,0,0, +192,215,0,0, +64,0,0,0, +0,216,0,0, +1,0,0,0, +8,216,0,0, +8,0,0,0, +16,216,0,0, +8,0,0,0, +24,216,0,0, +40,0,0,0, +64,216,0,0, +1,0,0,0, +72,216,0,0, +10,0,0,0, +88,216,0,0, +4,0,0,0, +96,216,0,0, +54,0,0,0, +152,216,0,0, +1,0,0,0, +160,216,0,0, +6,0,0,0, +168,216,0,0, +9,0,0,0, +184,216,0,0, +40,0,0,0, +224,216,0,0, +1,0,0,0, +232,216,0,0, +10,0,0,0, +248,216,0,0, +4,0,0,0, +0,217,0,0, +64,0,0,0, +64,217,0,0, +1,0,0,0, +72,217,0,0, +8,0,0,0, +80,217,0,0, +8,0,0,0, +88,217,0,0, +72,0,0,0, +160,217,0,0, +4,0,0,0, +168,217,0,0, +32,0,0,0, +200,217,0,0, +36,0,0,0, +240,217,0,0, +64,0,0,0, +48,218,0,0, +5,0,0,0, +56,218,0,0, +40,0,0,0, +96,218,0,0, +40,0,0,0, +136,218,0,0, +28,0,0,0, +168,218,0,0, +3,0,0,0, +176,218,0,0, +21,0,0,0, +200,218,0,0, +12,0,0,0, +216,218,0,0, +56,0,0,0, +16,219,0,0, +4,0,0,0, +24,219,0,0, +28,0,0,0, +56,219,0,0, +32,0,0,0, +2,0,0,0, +'O','u','t','p','u','t','\0', +'T','e','m','p','\0', +0,0,0,0, +1,0,0,0, +1,0,0,0, +'n','n', +1,0,0,0, +2,0,0,0, +'n','n', +1,0,0,0, +3,0,0,0, +'n','n', +1,0,0,0, +4,0,0,0, +'n','n', +1,0,0,0, +5,0,0,0, +'n','n', +1,0,0,0, +6,0,0,0, +'n','n', +1,0,0,0, +7,0,0,0, +'n','n', +1,0,0,0, +8,0,0,0, +'n','n', +1,0,0,0, +9,0,0,0, +'n','n', +1,0,0,0, +10,0,0,0, +'n','n', +1,0,0,0, +11,0,0,0, +'n','n', +1,0,0,0, +12,0,0,0, +'n','n', +1,0,0,0, +13,0,0,0, +'n','n', +1,0,0,0, +14,0,0,0, +'n','n', +1,0,0,0, +15,0,0,0, +'n','n', +3,0,0,0, +4,0,0,0, +'n','y','N','N','\0', +2,0,0,0, +1,0,0,0, +'n','y','F','u','l','l','y','C','o','n','n','e','c','t','e','d','\0', +1,0,0,0, +4,0,0,0, +88,219,0,0, +10,0,0,0, +104,219,0,0, +4,0,0,0, +112,219,0,0, +40,0,0,0, +152,219,0,0, +4,0,0,0, +2,0,0,0, +'O','u','t','p','u','t','\0', +'T','e','m','p','\0', +1,0,0,0, +'g',1,0,0,0, +5,0,0,0, +4,0,0,0, +1,0,0,0, +4,0,0,0, +10,0,0,0, +20,0,0,0, +100,0,0,0, +200,0,0,0, +1,0,0,0, +1,0,0,0, +'y',0,0,0,0, +'n', }; #endif diff --git a/Testing/GeneratedSource/TestDesc.cpp b/Testing/GeneratedSource/TestDesc.cpp index f9a476ea..cfe6cc74 100644 --- a/Testing/GeneratedSource/TestDesc.cpp +++ b/Testing/GeneratedSource/TestDesc.cpp @@ -1,5 +1,15 @@ #include "Test.h" +#include "StatsTestsF32.h" + StatsTestsF32::StatsTestsF32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&StatsTestsF32::test_entropy_f32); +this->addTest(2,(Client::test)&StatsTestsF32::test_logsumexp_f32); +this->addTest(3,(Client::test)&StatsTestsF32::test_kullback_leibler_f32); +this->addTest(4,(Client::test)&StatsTestsF32::test_logsumexp_dot_prod_f32); + + } + #include "SupportTestsF32.h" SupportTestsF32::SupportTestsF32(Testing::testID_t id):Client::Suite(id) { @@ -7,3 +17,165 @@ this->addTest(2,(Client::test)&SupportTestsF32::test_weighted_sum_f32); } + +#include "BasicTestsF32.h" + BasicTestsF32::BasicTestsF32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&BasicTestsF32::test_add_f32); +this->addTest(2,(Client::test)&BasicTestsF32::test_add_f32); +this->addTest(3,(Client::test)&BasicTestsF32::test_add_f32); +this->addTest(4,(Client::test)&BasicTestsF32::test_sub_f32); +this->addTest(5,(Client::test)&BasicTestsF32::test_sub_f32); +this->addTest(6,(Client::test)&BasicTestsF32::test_sub_f32); +this->addTest(7,(Client::test)&BasicTestsF32::test_mult_f32); +this->addTest(8,(Client::test)&BasicTestsF32::test_mult_f32); +this->addTest(9,(Client::test)&BasicTestsF32::test_mult_f32); +this->addTest(10,(Client::test)&BasicTestsF32::test_negate_f32); +this->addTest(11,(Client::test)&BasicTestsF32::test_negate_f32); +this->addTest(12,(Client::test)&BasicTestsF32::test_negate_f32); +this->addTest(13,(Client::test)&BasicTestsF32::test_offset_f32); +this->addTest(14,(Client::test)&BasicTestsF32::test_offset_f32); +this->addTest(15,(Client::test)&BasicTestsF32::test_offset_f32); +this->addTest(16,(Client::test)&BasicTestsF32::test_scale_f32); +this->addTest(17,(Client::test)&BasicTestsF32::test_scale_f32); +this->addTest(18,(Client::test)&BasicTestsF32::test_scale_f32); +this->addTest(19,(Client::test)&BasicTestsF32::test_dot_prod_f32); +this->addTest(20,(Client::test)&BasicTestsF32::test_dot_prod_f32); +this->addTest(21,(Client::test)&BasicTestsF32::test_dot_prod_f32); +this->addTest(22,(Client::test)&BasicTestsF32::test_abs_f32); +this->addTest(23,(Client::test)&BasicTestsF32::test_abs_f32); +this->addTest(24,(Client::test)&BasicTestsF32::test_abs_f32); + + } + +#include "SVMF32.h" + SVMF32::SVMF32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&SVMF32::test_svm_linear_predict_f32); +this->addTest(2,(Client::test)&SVMF32::test_svm_polynomial_predict_f32); +this->addTest(3,(Client::test)&SVMF32::test_svm_rbf_predict_f32); +this->addTest(4,(Client::test)&SVMF32::test_svm_sigmoid_predict_f32); +this->addTest(5,(Client::test)&SVMF32::test_svm_rbf_predict_f32); + + } + +#include "BayesF32.h" + BayesF32::BayesF32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&BayesF32::test_gaussian_naive_bayes_predict_f32); + + } + +#include "DistanceTestsF32.h" + DistanceTestsF32::DistanceTestsF32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&DistanceTestsF32::test_braycurtis_distance_f32); +this->addTest(2,(Client::test)&DistanceTestsF32::test_canberra_distance_f32); +this->addTest(3,(Client::test)&DistanceTestsF32::test_chebyshev_distance_f32); +this->addTest(4,(Client::test)&DistanceTestsF32::test_cityblock_distance_f32); +this->addTest(5,(Client::test)&DistanceTestsF32::test_correlation_distance_f32); +this->addTest(6,(Client::test)&DistanceTestsF32::test_cosine_distance_f32); +this->addTest(7,(Client::test)&DistanceTestsF32::test_euclidean_distance_f32); +this->addTest(8,(Client::test)&DistanceTestsF32::test_jensenshannon_distance_f32); +this->addTest(9,(Client::test)&DistanceTestsF32::test_minkowski_distance_f32); + + } + +#include "DistanceTestsU32.h" + DistanceTestsU32::DistanceTestsU32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&DistanceTestsU32::test_dice_distance); +this->addTest(2,(Client::test)&DistanceTestsU32::test_hamming_distance); +this->addTest(3,(Client::test)&DistanceTestsU32::test_jaccard_distance); +this->addTest(4,(Client::test)&DistanceTestsU32::test_kulsinski_distance); +this->addTest(5,(Client::test)&DistanceTestsU32::test_rogerstanimoto_distance); +this->addTest(6,(Client::test)&DistanceTestsU32::test_russellrao_distance); +this->addTest(7,(Client::test)&DistanceTestsU32::test_sokalmichener_distance); +this->addTest(8,(Client::test)&DistanceTestsU32::test_sokalsneath_distance); +this->addTest(9,(Client::test)&DistanceTestsU32::test_yule_distance); + + } + +#include "BasicMathsBenchmarksF32.h" + BasicMathsBenchmarksF32::BasicMathsBenchmarksF32(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&BasicMathsBenchmarksF32::vec_mult_f32); +this->addTest(2,(Client::test)&BasicMathsBenchmarksF32::vec_add_f32); +this->addTest(3,(Client::test)&BasicMathsBenchmarksF32::vec_sub_f32); +this->addTest(4,(Client::test)&BasicMathsBenchmarksF32::vec_abs_f32); +this->addTest(5,(Client::test)&BasicMathsBenchmarksF32::vec_negate_f32); +this->addTest(6,(Client::test)&BasicMathsBenchmarksF32::vec_offset_f32); +this->addTest(7,(Client::test)&BasicMathsBenchmarksF32::vec_scale_f32); +this->addTest(8,(Client::test)&BasicMathsBenchmarksF32::vec_dot_f32); + + } + +#include "BasicMathsBenchmarksQ31.h" + BasicMathsBenchmarksQ31::BasicMathsBenchmarksQ31(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&BasicMathsBenchmarksQ31::vec_mult_q31); +this->addTest(2,(Client::test)&BasicMathsBenchmarksQ31::vec_add_q31); +this->addTest(3,(Client::test)&BasicMathsBenchmarksQ31::vec_sub_q31); +this->addTest(4,(Client::test)&BasicMathsBenchmarksQ31::vec_abs_q31); +this->addTest(5,(Client::test)&BasicMathsBenchmarksQ31::vec_negate_q31); +this->addTest(6,(Client::test)&BasicMathsBenchmarksQ31::vec_offset_q31); +this->addTest(7,(Client::test)&BasicMathsBenchmarksQ31::vec_scale_q31); +this->addTest(8,(Client::test)&BasicMathsBenchmarksQ31::vec_dot_q31); + + } + +#include "BasicMathsBenchmarksQ15.h" + BasicMathsBenchmarksQ15::BasicMathsBenchmarksQ15(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&BasicMathsBenchmarksQ15::vec_mult_q15); +this->addTest(2,(Client::test)&BasicMathsBenchmarksQ15::vec_add_q15); +this->addTest(3,(Client::test)&BasicMathsBenchmarksQ15::vec_sub_q15); +this->addTest(4,(Client::test)&BasicMathsBenchmarksQ15::vec_abs_q15); +this->addTest(5,(Client::test)&BasicMathsBenchmarksQ15::vec_negate_q15); +this->addTest(6,(Client::test)&BasicMathsBenchmarksQ15::vec_offset_q15); +this->addTest(7,(Client::test)&BasicMathsBenchmarksQ15::vec_scale_q15); +this->addTest(8,(Client::test)&BasicMathsBenchmarksQ15::vec_dot_q15); + + } + +#include "BasicMathsBenchmarksQ7.h" + BasicMathsBenchmarksQ7::BasicMathsBenchmarksQ7(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&BasicMathsBenchmarksQ7::vec_mult_q7); +this->addTest(2,(Client::test)&BasicMathsBenchmarksQ7::vec_add_q7); +this->addTest(3,(Client::test)&BasicMathsBenchmarksQ7::vec_sub_q7); +this->addTest(4,(Client::test)&BasicMathsBenchmarksQ7::vec_abs_q7); +this->addTest(5,(Client::test)&BasicMathsBenchmarksQ7::vec_negate_q7); +this->addTest(6,(Client::test)&BasicMathsBenchmarksQ7::vec_offset_q7); +this->addTest(7,(Client::test)&BasicMathsBenchmarksQ7::vec_scale_q7); +this->addTest(8,(Client::test)&BasicMathsBenchmarksQ7::vec_dot_q7); + + } + +#include "FullyConnected.h" + FullyConnected::FullyConnected(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(2,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(3,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(4,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(5,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(6,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(7,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(8,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(9,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(10,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(11,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(12,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(13,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(14,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); +this->addTest(15,(Client::test)&FullyConnected::test_fully_connected_tflite_s8); + + } + +#include "FullyConnectedBench.h" + FullyConnectedBench::FullyConnectedBench(Testing::testID_t id):Client::Suite(id) + { + this->addTest(1,(Client::test)&FullyConnectedBench::test_fully_connected_tflite_s8); + + } diff --git a/Testing/Include/DistanceTestsF32.h b/Testing/Include/DistanceTestsF32.h new file mode 100755 index 00000000..b9cf4e1a --- /dev/null +++ b/Testing/Include/DistanceTestsF32.h @@ -0,0 +1,27 @@ +#include "Test.h" +#include "Pattern.h" +class DistanceTestsF32:public Client::Suite + { + public: + DistanceTestsF32(Testing::testID_t id); + void setUp(Testing::testID_t,std::vector& paramsArgs,Client::PatternMgr *mgr); + void tearDown(Testing::testID_t,Client::PatternMgr *mgr); + private: + #include "DistanceTestsF32_decl.h" + + Client::Pattern inputA; + Client::Pattern inputB; + Client::Pattern dims; + + Client::LocalPattern output; + Client::LocalPattern tmpA; + Client::LocalPattern tmpB; + + // Reference patterns are not loaded when we are in dump mode + Client::RefPattern ref; + + int vecDim; + int nbPatterns; + + + }; \ No newline at end of file diff --git a/Testing/Include/DistanceTestsU32.h b/Testing/Include/DistanceTestsU32.h new file mode 100755 index 00000000..c0e92aba --- /dev/null +++ b/Testing/Include/DistanceTestsU32.h @@ -0,0 +1,25 @@ +#include "Test.h" +#include "Pattern.h" +class DistanceTestsU32:public Client::Suite + { + public: + DistanceTestsU32(Testing::testID_t id); + void setUp(Testing::testID_t,std::vector& paramsArgs,Client::PatternMgr *mgr); + void tearDown(Testing::testID_t,Client::PatternMgr *mgr); + private: + #include "DistanceTestsU32_decl.h" + + Client::Pattern inputA; + Client::Pattern inputB; + Client::Pattern dims; + + Client::LocalPattern output; + + // Reference patterns are not loaded when we are in dump mode + Client::RefPattern ref; + + int vecDim; + int bitVecDim; + int nbPatterns; + + }; \ No newline at end of file diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_1.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_1.txt new file mode 100755 index 00000000..1ae9696b --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_1.txt @@ -0,0 +1,10 @@ +0x3f8686fa +0x3f454585 +0x3faf00b2 +0x3ff1f63b +0x3f7c3d9c +0x3f72d302 +0x3fcb0f1a +0x3f0faf1e +0x3f80c998 +0x3f8776bc diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_2.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_2.txt new file mode 100755 index 00000000..b688833c --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_2.txt @@ -0,0 +1,10 @@ +0x40fc0b48 +0x40de7924 +0x411c1b4d +0x411d171a +0x41064df4 +0x41087542 +0x411607aa +0x40d50375 +0x4103f1e3 +0x411b2f4f diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_3.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_3.txt new file mode 100755 index 00000000..868aa538 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_3.txt @@ -0,0 +1,10 @@ +0x406b275c +0x400840d1 +0x4026b06a +0x4099d6f0 +0x407e432a +0x4000b5d8 +0x4034963b +0x3fdae203 +0x4057bb0c +0x4028d17b diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_4.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_4.txt new file mode 100755 index 00000000..ecc2b0c6 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_4.txt @@ -0,0 +1,10 @@ +0x4161f7b0 +0x41063859 +0x415ef1f6 +0x41964efc +0x416ddede +0x414833a7 +0x41643195 +0x4101bf3b +0x415300e0 +0x416d19d0 diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_5.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_5.txt new file mode 100755 index 00000000..6030c263 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_5.txt @@ -0,0 +1,10 @@ +0x3f85655d +0x3f3a91f0 +0x3f92df5b +0x3fc43088 +0x3f8e20d0 +0x3f733aa3 +0x3fa52602 +0x3f0496a5 +0x3f85bd5b +0x3f84bf6c diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_6.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_6.txt new file mode 100755 index 00000000..09b633a9 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_6.txt @@ -0,0 +1,10 @@ +0x3f958fd3 +0x3f4be7a8 +0x3f953263 +0x3fd0d3b8 +0x3f8d47c0 +0x3f7a2964 +0x3fa5e499 +0x3f0abfd6 +0x3f8373b4 +0x3f848764 diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_7.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_7.txt new file mode 100755 index 00000000..099ccde0 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_7.txt @@ -0,0 +1,10 @@ +0x40a940cc +0x405a6230 +0x40938e69 +0x40e371f8 +0x40b53f97 +0x40879207 +0x40a03983 +0x403c4bf3 +0x409ae4e2 +0x40a31251 diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_8.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_8.txt new file mode 100755 index 00000000..c3f8e430 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_8.txt @@ -0,0 +1,10 @@ +0x3e94c12c +0x3e8ded1a +0x3eadb603 +0x3ec1da22 +0x3ec4e5f2 +0x3ebb1cf3 +0x3e8f9730 +0x3ec29bb2 +0x3e8974e2 +0x3ec334d7 diff --git a/Testing/Output/DSP/Distance/DistanceF32/Output_9.txt b/Testing/Output/DSP/Distance/DistanceF32/Output_9.txt new file mode 100755 index 00000000..90fb7137 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceF32/Output_9.txt @@ -0,0 +1,10 @@ +0x4085fede +0x4021139b +0x40938e65 +0x40a523cf +0x4084cd9b +0x4044d53f +0x40533b19 +0x403c4bf1 +0x407430f5 +0x40529258 diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_1.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_1.txt new file mode 100755 index 00000000..5aedbf48 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_1.txt @@ -0,0 +1,10 @@ +0x3f0e38e4 +0x3f19999a +0x3f09d89e +0x3eeeeeef +0x3f313b14 +0x3f36db6e +0x3f000000 +0x3ecccccd +0x3e924925 +0x3eeeeeef diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_2.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_2.txt new file mode 100755 index 00000000..e5a5fc15 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_2.txt @@ -0,0 +1,10 @@ +0x3ed55555 +0x3f000000 +0x3f155555 +0x3f155555 +0x3f400000 +0x3f555555 +0x3f000000 +0x3eaaaaab +0x3eaaaaab +0x3f155555 diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_3.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_3.txt new file mode 100755 index 00000000..392eb353 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_3.txt @@ -0,0 +1,10 @@ +0x3f36db6e +0x3f400000 +0x3f333333 +0x3f22e8ba +0x3f51745d +0x3f555555 +0x3f2aaaab +0x3f124925 +0x3ee38e39 +0x3f22e8ba diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_4.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_4.txt new file mode 100755 index 00000000..5b9055f8 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_4.txt @@ -0,0 +1,10 @@ +0x3f61e1e2 +0x3f638e39 +0x3f579436 +0x3f4a1af3 +0x3f679e7a +0x3f68ba2f +0x3f555555 +0x3f500000 +0x3f300000 +0x3f4a1af3 diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_5.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_5.txt new file mode 100755 index 00000000..be802694 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_5.txt @@ -0,0 +1,10 @@ +0x3f169697 +0x3f2aaaab +0x3f3ca1af +0x3f3ca1af +0x3f5b6db7 +0x3f68ba2f +0x3f2aaaab +0x3f000000 +0x3f000000 +0x3f3ca1af diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_6.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_6.txt new file mode 100755 index 00000000..3c2bb797 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_6.txt @@ -0,0 +1,10 @@ +0x3f555555 +0x3f555555 +0x3f400000 +0x3f2aaaab +0x3f555555 +0x3f555555 +0x3f400000 +0x3f400000 +0x3f155555 +0x3f2aaaab diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_7.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_7.txt new file mode 100755 index 00000000..be802694 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_7.txt @@ -0,0 +1,10 @@ +0x3f169697 +0x3f2aaaab +0x3f3ca1af +0x3f3ca1af +0x3f5b6db7 +0x3f68ba2f +0x3f2aaaab +0x3f000000 +0x3f000000 +0x3f3ca1af diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_8.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_8.txt new file mode 100755 index 00000000..ebdff85b --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_8.txt @@ -0,0 +1,10 @@ +0x3f555555 +0x3f5b6db7 +0x3f52d2d3 +0x3f471c72 +0x3f666666 +0x3f68ba2f +0x3f4ccccd +0x3f3a2e8c +0x3f1d89d9 +0x3f471c72 diff --git a/Testing/Output/DSP/Distance/DistanceU32/Output_9.txt b/Testing/Output/DSP/Distance/DistanceU32/Output_9.txt new file mode 100755 index 00000000..8326dd38 --- /dev/null +++ b/Testing/Output/DSP/Distance/DistanceU32/Output_9.txt @@ -0,0 +1,10 @@ +0x3f124925 +0x3f800000 +0x3faaaaab +0x3fb6db6e +0x3fe8ba2f +0x40000000 +0x3f800000 +0x3ed79436 +0x00000000 +0x3fb6db6e diff --git a/Testing/PatternGeneration/Distance.py b/Testing/PatternGeneration/Distance.py new file mode 100755 index 00000000..57837bf0 --- /dev/null +++ b/Testing/PatternGeneration/Distance.py @@ -0,0 +1,203 @@ +import os.path +import itertools +import Tools +import random +import numpy as np +import scipy.spatial + +NBTESTSAMPLES = 10 + +VECDIM = [12,14,20] + +def euclidean(xa,xb): + r = scipy.spatial.distance.euclidean(xa,xb) + return(r) + +def braycurtis(xa,xb): + r = scipy.spatial.distance.braycurtis(xa,xb) + return(r) + +def canberra(xa,xb): + r = scipy.spatial.distance.canberra(xa,xb) + return(r) + +def chebyshev(xa,xb): + r = scipy.spatial.distance.chebyshev(xa,xb) + return(r) + +def cityblock(xa,xb): + r = scipy.spatial.distance.cityblock(xa,xb) + return(r) + +def correlation(xa,xb): + r = scipy.spatial.distance.correlation (xa,xb) + return(r) + +def cosine(xa,xb): + r = scipy.spatial.distance.cosine (xa,xb) + return(r) + +def jensenshannon(xa,xb): + r = scipy.spatial.distance.jensenshannon (xa,xb) + return(r) + +def minkowski (xa,xb,dim): + r = scipy.spatial.distance.minkowski(xa,xb,p=dim) + return(r) + +def dice(xa,xb): + r = scipy.spatial.distance.dice (xa,xb) + return(r) + +def hamming(xa,xb): + r = scipy.spatial.distance.hamming (xa,xb) + return(r) + +def jaccard(xa,xb): + r = scipy.spatial.distance.jaccard (xa,xb) + return(r) + +def kulsinski(xa,xb): + r = scipy.spatial.distance.kulsinski (xa,xb) + return(r) + +def rogerstanimoto(xa,xb): + r = scipy.spatial.distance.rogerstanimoto (xa,xb) + return(r) + +def russellrao(xa,xb): + r = scipy.spatial.distance.russellrao (xa,xb) + return(r) + +def sokalmichener(xa,xb): + r = scipy.spatial.distance.sokalmichener (xa,xb) + return(r) + +def sokalsneath(xa,xb): + r = scipy.spatial.distance.sokalsneath (xa,xb) + return(r) + +def yule(xa,xb): + r = scipy.spatial.distance.yule (xa,xb) + return(r) + +def writeFTest(config,funcList): + dims=[] + dimsM=[] + inputsA=[] + inputsB=[] + inputsAJ=[] + inputsBJ=[] + outputs=[] + outputMin=[] + outputJen=[] + for i in range(0,len(funcList)): + outputs.append([]) + + vecDim = VECDIM[0] + + dims.append(NBTESTSAMPLES) + dims.append(vecDim) + + dimsM.append(NBTESTSAMPLES) + dimsM.append(vecDim) + + for _ in range(0,NBTESTSAMPLES): + normDim = np.random.choice([2,3,4]) + dimsM.append(normDim) + va = np.random.randn(vecDim) + # Normalization for distance assuming probability distribution in entry + vb = np.random.randn(vecDim) + for i in range(0,len(funcList)): + func = funcList[i] + outputs[i].append(func(va,vb)) + outputMin.append(minkowski(va,vb,normDim)) + + inputsA += list(va) + inputsB += list(vb) + + va = np.abs(va) + va = va / np.sum(va) + + vb = np.abs(vb) + vb = vb / np.sum(vb) + + inputsAJ += list(va) + inputsBJ += list(vb) + outputJen.append(jensenshannon(va,vb)) + + + inputsA=np.array(inputsA) + inputsB=np.array(inputsB) + for i in range(0,len(funcList)): + outputs[i]=np.array(outputs[i]) + + config.writeInput(1, inputsA,"InputA") + config.writeInput(1, inputsB,"InputB") + config.writeInput(8, inputsAJ,"InputA") + config.writeInput(8, inputsBJ,"InputB") + config.writeInputS16(1, dims,"Dims") + config.writeInputS16(9, dimsM,"Dims") + + for i in range(0,len(funcList)): + config.writeReference(i+1, outputs[i],"Ref") + + config.writeReference(8, outputJen,"Ref") + config.writeReference(9, outputMin,"Ref") + +def writeBTest(config,funcList): + dims=[] + inputsA=[] + inputsB=[] + outputs=[] + for i in range(0,len(funcList)): + outputs.append([]) + + vecDim = VECDIM[0] + + dims.append(NBTESTSAMPLES) + dims.append(vecDim) + va = np.random.choice([0,1],vecDim) + # Number of word32 containing all of our bits + pva = Tools.packset(va) + dims.append(len(pva)) + + for _ in range(0,NBTESTSAMPLES): + va = np.random.choice([0,1],vecDim) + vb = np.random.choice([0,1],vecDim) + # Boolean arrays are packed for the C code + pva = Tools.packset(va) + pvb = Tools.packset(vb) + for i in range(0,len(funcList)): + func = funcList[i] + outputs[i].append(func(va,vb)) + + inputsA += pva + inputsB += pvb + + inputsA=np.array(inputsA) + inputsB=np.array(inputsB) + for i in range(0,len(funcList)): + outputs[i]=np.array(outputs[i]) + + config.writeInput(1, inputsA,"InputA") + config.writeInput(1, inputsB,"InputB") + config.writeInputS16(1, dims,"Dims") + + for i in range(0,len(funcList)): + config.writeReferenceF32(i+1, outputs[i],"Ref") + +def writeFTests(config): + writeFTest(config,[braycurtis,canberra,chebyshev,cityblock,correlation,cosine,euclidean]) + +def writeBTests(config): + writeBTest(config,[dice,hamming,jaccard,kulsinski,rogerstanimoto,russellrao,sokalmichener,sokalsneath,yule]) + +PATTERNDIR = os.path.join("Patterns","DSP","Distance","Distance") +PARAMDIR = os.path.join("Parameters","DSP","Distance","Distance") + +configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32") +configu32=Tools.Config(PATTERNDIR,PARAMDIR,"u32") + +writeFTests(configf32) +writeBTests(configu32) \ No newline at end of file diff --git a/Testing/PatternGeneration/Tools.py b/Testing/PatternGeneration/Tools.py index 7d268f82..8254b421 100755 --- a/Testing/PatternGeneration/Tools.py +++ b/Testing/PatternGeneration/Tools.py @@ -1,11 +1,31 @@ import os.path import struct +import numpy as np def createMissingDir(destPath): theDir=os.path.normpath(destPath) if not os.path.exists(theDir): os.makedirs(theDir) +# Pack an array of boolean into uint32 +def packset(a): + b = np.packbits(a) + newSize = int(np.ceil(b.shape[0] / 4.0)) * 4 + c = np.copy(b) + c.resize(newSize) + #print(c) + vecSize = round(newSize/4) + c=c.reshape(vecSize,4) + #print(c) + r = np.zeros(vecSize) + result = [] + for i in range(0,vecSize): + #print(c[i,:]) + #print("%X %X %X %X" % (c[i,0],c[i,1],c[i,2],c[i,3])) + d = (c[i,0] << 24) | (c[i,1] << 16) | (c[i,2] << 8) | c[i,3] + result.append(d) + return(result) + def float_to_hex(f): """ Convert and x86 float to an ARM unsigned long int. @@ -48,6 +68,9 @@ def s16(r): def s32(r): return ("0x%s" % format(struct.unpack(' + + + void DistanceTestsF32::test_braycurtis_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_braycurtis_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_canberra_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_canberra_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_chebyshev_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_chebyshev_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_cityblock_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_cityblock_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_correlation_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *tmpap = tmpA.ptr(); + float32_t *tmpbp = tmpB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + memcpy(tmpap, inpA, sizeof(float32_t) * this->vecDim); + memcpy(tmpbp, inpB, sizeof(float32_t) * this->vecDim); + + *outp = arm_correlation_distance_f32(tmpap, tmpbp, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_cosine_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_cosine_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_euclidean_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_euclidean_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_jensenshannon_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_jensenshannon_distance_f32(inpA, inpB, this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void DistanceTestsF32::test_minkowski_distance_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + const int16_t *dimsp= dims.ptr(); + dimsp += 2; + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_minkowski_distance_f32(inpA, inpB, *dimsp,this->vecDim); + + inpA += this->vecDim; + inpB += this->vecDim; + outp ++; + dimsp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + + void DistanceTestsF32::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) + { + + if ((id != DistanceTestsF32::TEST_MINKOWSKI_DISTANCE_F32_9) && (id != DistanceTestsF32::TEST_JENSENSHANNON_DISTANCE_F32_8)) + { + inputA.reload(DistanceTestsF32::INPUTA_F32_ID,mgr); + inputB.reload(DistanceTestsF32::INPUTB_F32_ID,mgr); + dims.reload(DistanceTestsF32::DIMS_S16_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + output.create(this->nbPatterns,DistanceTestsF32::OUT_F32_ID,mgr); + } + + switch(id) + { + case DistanceTestsF32::TEST_BRAYCURTIS_DISTANCE_F32_1: + { + ref.reload(DistanceTestsF32::REF1_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_CANBERRA_DISTANCE_F32_2: + { + ref.reload(DistanceTestsF32::REF2_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_CHEBYSHEV_DISTANCE_F32_3: + { + ref.reload(DistanceTestsF32::REF3_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_CITYBLOCK_DISTANCE_F32_4: + { + ref.reload(DistanceTestsF32::REF4_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_CORRELATION_DISTANCE_F32_5: + { + ref.reload(DistanceTestsF32::REF5_F32_ID,mgr); + tmpA.create(this->vecDim,DistanceTestsF32::TMPA_F32_ID,mgr); + tmpB.create(this->vecDim,DistanceTestsF32::TMPB_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_COSINE_DISTANCE_F32_6: + { + ref.reload(DistanceTestsF32::REF6_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_EUCLIDEAN_DISTANCE_F32_7: + { + ref.reload(DistanceTestsF32::REF7_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_JENSENSHANNON_DISTANCE_F32_8: + { + inputA.reload(DistanceTestsF32::INPUTA_JEN_F32_ID,mgr); + inputB.reload(DistanceTestsF32::INPUTB_JEN_F32_ID,mgr); + dims.reload(DistanceTestsF32::DIMS_S16_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + output.create(this->nbPatterns,DistanceTestsF32::OUT_F32_ID,mgr); + + ref.reload(DistanceTestsF32::REF8_F32_ID,mgr); + } + break; + + case DistanceTestsF32::TEST_MINKOWSKI_DISTANCE_F32_9: + { + inputA.reload(DistanceTestsF32::INPUTA_F32_ID,mgr); + inputB.reload(DistanceTestsF32::INPUTB_F32_ID,mgr); + dims.reload(DistanceTestsF32::DIMS_MINKOWSKI_S16_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + output.create(this->nbPatterns,DistanceTestsF32::OUT_F32_ID,mgr); + + ref.reload(DistanceTestsF32::REF9_F32_ID,mgr); + } + break; + + } + + + + + + } + + void DistanceTestsF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) + { + output.dump(mgr); + } diff --git a/Testing/Source/DistanceTestsU32.cpp b/Testing/Source/DistanceTestsU32.cpp new file mode 100755 index 00000000..5b3bd136 --- /dev/null +++ b/Testing/Source/DistanceTestsU32.cpp @@ -0,0 +1,263 @@ +#include "DistanceTestsU32.h" +#include "Error.h" +#include "arm_math.h" +#include "Test.h" + +#include + +#define ERROR_THRESHOLD 1e-5 + + void DistanceTestsU32::test_dice_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_dice_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_hamming_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_hamming_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_jaccard_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_jaccard_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_kulsinski_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_kulsinski_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_rogerstanimoto_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_rogerstanimoto_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_russellrao_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_russellrao_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_sokalmichener_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_sokalmichener_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_sokalsneath_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_sokalsneath_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + void DistanceTestsU32::test_yule_distance() + { + const uint32_t *inpA = inputA.ptr(); + const uint32_t *inpB = inputB.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp = arm_yule_distance(inpA, inpB,this->vecDim); + + inpA += this->bitVecDim ; + inpB += this->bitVecDim ; + outp ++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)ERROR_THRESHOLD); + } + + + + + void DistanceTestsU32::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) + { + + inputA.reload(DistanceTestsU32::INPUTA_U32_ID,mgr); + inputB.reload(DistanceTestsU32::INPUTB_U32_ID,mgr); + dims.reload(DistanceTestsU32::DIMS_S16_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + this->bitVecDim=dimsp[2]; + //printf("%d %d %d\n",dimsp[0],dimsp[1],dimsp[2]); + output.create(this->nbPatterns,DistanceTestsU32::OUT_F32_ID,mgr); + + switch(id) + { + case DistanceTestsU32::TEST_DICE_DISTANCE_1: + { + ref.reload(DistanceTestsU32::REF1_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_HAMMING_DISTANCE_2: + { + ref.reload(DistanceTestsU32::REF2_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_JACCARD_DISTANCE_3: + { + ref.reload(DistanceTestsU32::REF3_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_KULSINSKI_DISTANCE_4: + { + ref.reload(DistanceTestsU32::REF4_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_ROGERSTANIMOTO_DISTANCE_5: + { + ref.reload(DistanceTestsU32::REF5_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_RUSSELLRAO_DISTANCE_6: + { + ref.reload(DistanceTestsU32::REF6_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_SOKALMICHENER_DISTANCE_7: + { + ref.reload(DistanceTestsU32::REF7_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_SOKALSNEATH_DISTANCE_8: + { + ref.reload(DistanceTestsU32::REF8_F32_ID,mgr); + } + break; + + case DistanceTestsU32::TEST_YULE_DISTANCE_9: + { + ref.reload(DistanceTestsU32::REF9_F32_ID,mgr); + } + break; + + } + + + } + + void DistanceTestsU32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) + { + output.dump(mgr); + } diff --git a/Testing/TestDesc.txt b/Testing/TestDesc.txt index 534b3222..2c33d651 100644 --- a/Testing/TestDesc.txt +++ b/Testing/TestDesc.txt @@ -5,6 +5,46 @@ n n y DSP +3 1 +n +y +Stats +2 1 +n +y +StatsF32 +0 +14 +Input1_f32.txt +Dims1_s16.txt +RefEntropy1_f32.txt +Input2_f32.txt +Dims2_s16.txt +RefLogSumExp2_f32.txt +InputA3_f32.txt +InputB3_f32.txt +Dims3_s16.txt +RefKL3_f32.txt +InputA4_f32.txt +InputB4_f32.txt +Dims4_s16.txt +RefLogSumExpDot4_f32.txt +2 +Output +Temp +0 +1 1 +n +n +1 2 +n +n +1 3 +n +n +1 4 +n +n 3 2 n y @@ -32,3 +72,655 @@ n 1 2 n n +3 3 +n +y +BasicMaths +2 1 +n +y +BasicMathsF32 +0 +12 +Input1_f32.txt +Input2_f32.txt +Reference1_f32.txt +Reference2_f32.txt +Reference3_f32.txt +Reference4_f32.txt +Reference5_f32.txt +Reference6_f32.txt +Reference7_f32.txt +Reference8_f32.txt +Reference9_f32.txt +Reference10_f32.txt +2 +Output +State +0 +1 1 +n +n +1 2 +n +n +1 3 +n +n +1 4 +n +n +1 5 +n +n +1 6 +n +n +1 7 +n +n +1 8 +n +n +1 9 +n +n +1 10 +n +n +1 11 +n +n +1 12 +n +n +1 13 +n +n +1 14 +n +n +1 15 +n +n +1 16 +n +n +1 17 +n +n +1 18 +n +n +1 19 +n +n +1 20 +n +n +1 21 +n +n +1 22 +n +n +1 23 +n +n +1 24 +n +n +3 4 +n +y +SVM +2 1 +n +y +SVMF32 +0 +20 +Samples1_f32.txt +Params1_f32.txt +Dims1_s16.txt +Reference1_s32.txt +Samples2_f32.txt +Params2_f32.txt +Dims2_s16.txt +Reference2_s32.txt +Samples3_f32.txt +Params3_f32.txt +Dims3_s16.txt +Reference3_s32.txt +Samples4_f32.txt +Params4_f32.txt +Dims4_s16.txt +Reference4_s32.txt +Samples5_f32.txt +Params5_f32.txt +Dims5_s16.txt +Reference5_s32.txt +1 +Output +0 +1 1 +n +n +1 2 +n +n +1 3 +n +n +1 4 +n +n +1 5 +n +n +3 5 +n +y +Bayes +2 1 +n +y +BayesF32 +0 +5 +Dims1_s16.txt +Inputs1_f32.txt +Params1_f32.txt +Probas1_f32.txt +Predicts1_s16.txt +2 +Probas +Predicts +0 +1 1 +n +n +3 6 +n +y +Distance +2 1 +n +y +DistanceF32 +0 +15 +Dims1_s16.txt +Dims9_s16.txt +InputA1_f32.txt +InputB1_f32.txt +InputA8_f32.txt +InputB8_f32.txt +Ref1_f32.txt +Ref2_f32.txt +Ref3_f32.txt +Ref4_f32.txt +Ref5_f32.txt +Ref6_f32.txt +Ref7_f32.txt +Ref8_f32.txt +Ref9_f32.txt +3 +Output +TmpA +TmpB +0 +1 1 +n +n +1 2 +n +n +1 3 +n +n +1 4 +n +n +1 5 +n +n +1 6 +n +n +1 7 +n +n +1 8 +n +n +1 9 +n +n +2 2 +n +y +DistanceU32 +0 +12 +Dims1_s16.txt +InputA1_u32.txt +InputB1_u32.txt +Ref1_f32.txt +Ref2_f32.txt +Ref3_f32.txt +Ref4_f32.txt +Ref5_f32.txt +Ref6_f32.txt +Ref7_f32.txt +Ref8_f32.txt +Ref9_f32.txt +1 +Output +0 +1 1 +n +n +1 2 +n +n +1 3 +n +n +1 4 +n +n +1 5 +n +n +1 6 +n +n +1 7 +n +n +1 8 +n +n +1 9 +n +n +3 2 +n +y +DSP +3 1 +n +y +BasicMaths +2 1 +y +0 +y +BasicMathsF32 +1 +2 +Input1_f32.txt +Input2_f32.txt +1 +Output +1 +g +1 +6 +5 +1 +5 +16 +32 +64 +128 +256 +1 1 +y +0 +n +1 2 +y +0 +n +1 3 +y +0 +n +1 4 +y +0 +n +1 5 +y +0 +n +1 6 +y +0 +n +1 7 +y +0 +n +1 8 +y +0 +n +2 2 +y +0 +y +BasicMathsQ31 +1 +2 +Input1_q31.txt +Input2_q31.txt +1 +Output +1 +g +1 +6 +5 +1 +5 +16 +32 +64 +128 +256 +1 1 +y +0 +n +1 2 +y +0 +n +1 3 +y +0 +n +1 4 +y +0 +n +1 5 +y +0 +n +1 6 +y +0 +n +1 7 +y +0 +n +1 8 +y +0 +n +2 3 +y +0 +y +BasicMathsQ15 +1 +2 +Input1_q15.txt +Input2_q15.txt +1 +Output +1 +g +1 +6 +5 +1 +5 +16 +32 +64 +128 +256 +1 1 +y +0 +n +1 2 +y +0 +n +1 3 +y +0 +n +1 4 +y +0 +n +1 5 +y +0 +n +1 6 +y +0 +n +1 7 +y +0 +n +1 8 +y +0 +n +2 4 +y +0 +y +BasicMathsQ7 +1 +2 +Input1_q7.txt +Input2_q7.txt +1 +Output +1 +g +1 +6 +5 +1 +5 +16 +32 +64 +128 +256 +1 1 +y +0 +n +1 2 +y +0 +n +1 3 +y +0 +n +1 4 +y +0 +n +1 5 +y +0 +n +1 6 +y +0 +n +1 7 +y +0 +n +1 8 +y +0 +n +3 3 +n +y +NN +2 1 +n +y +FullyConnected +0 +60 +TestCase_1_10_4_input_1.txt +TestCase_1_10_4_bias_1.txt +TestCase_1_10_4_weights_1.txt +TestCase_1_10_4_output_1.txt +TestCase_1_8_9_input_2.txt +TestCase_1_8_9_bias_2.txt +TestCase_1_8_9_weights_2.txt +TestCase_1_8_9_output_2.txt +TestCase_1_10_4_input_3.txt +TestCase_1_10_4_bias_3.txt +TestCase_1_10_4_weights_3.txt +TestCase_1_10_4_output_3.txt +TestCase_1_9_1_input_4.txt +TestCase_1_9_1_bias_4.txt +TestCase_1_9_1_weights_4.txt +TestCase_1_9_1_output_4.txt +TestCase_1_8_8_input_5.txt +TestCase_1_8_8_bias_5.txt +TestCase_1_8_8_weights_5.txt +TestCase_1_8_8_output_5.txt +TestCase_9_6_1_input_6.txt +TestCase_9_6_1_bias_6.txt +TestCase_9_6_1_weights_6.txt +TestCase_9_6_1_output_6.txt +TestCase_8_8_1_input_7.txt +TestCase_8_8_1_bias_7.txt +TestCase_8_8_1_weights_7.txt +TestCase_8_8_1_output_7.txt +TestCase_4_10_1_input_8.txt +TestCase_4_10_1_bias_8.txt +TestCase_4_10_1_weights_8.txt +TestCase_4_10_1_output_8.txt +TestCase_9_6_1_input_9.txt +TestCase_9_6_1_bias_9.txt +TestCase_9_6_1_weights_9.txt +TestCase_9_6_1_output_9.txt +TestCase_4_10_1_input_10.txt +TestCase_4_10_1_bias_10.txt +TestCase_4_10_1_weights_10.txt +TestCase_4_10_1_output_10.txt +TestCase_8_8_1_input_11.txt +TestCase_8_8_1_bias_11.txt +TestCase_8_8_1_weights_11.txt +TestCase_8_8_1_output_11.txt +TestCase_9_8_4_input_12.txt +TestCase_9_8_4_bias_12.txt +TestCase_9_8_4_weights_12.txt +TestCase_9_8_4_output_12.txt +TestCase_8_8_5_input_13.txt +TestCase_8_8_5_bias_13.txt +TestCase_8_8_5_weights_13.txt +TestCase_8_8_5_output_13.txt +TestCase_4_7_3_input_14.txt +TestCase_4_7_3_bias_14.txt +TestCase_4_7_3_weights_14.txt +TestCase_4_7_3_output_14.txt +TestCase_8_7_4_input_15.txt +TestCase_8_7_4_bias_15.txt +TestCase_8_7_4_weights_15.txt +TestCase_8_7_4_output_15.txt +2 +Output +Temp +0 +1 1 +n +n +1 2 +n +n +1 3 +n +n +1 4 +n +n +1 5 +n +n +1 6 +n +n +1 7 +n +n +1 8 +n +n +1 9 +n +n +1 10 +n +n +1 11 +n +n +1 12 +n +n +1 13 +n +n +1 14 +n +n +1 15 +n +n +3 4 +n +y +NN +2 1 +n +y +FullyConnected +1 +4 +TestCase_1_10_4_input_1.txt +TestCase_1_10_4_bias_1.txt +TestCase_1_10_4_weights_1.txt +TestCase_1_10_4_output_1.txt +2 +Output +Temp +1 +g +1 +5 +4 +1 +4 +10 +20 +100 +200 +1 1 +y +0 +n diff --git a/Testing/desc.txt b/Testing/desc.txt index fba88d5d..bb5fda4f 100644 --- a/Testing/desc.txt +++ b/Testing/desc.txt @@ -200,6 +200,85 @@ group Root { } } } + + group Distance Tests { + class = DistanceTests + folder = Distance + + suite Distance Tests F32 { + class = DistanceTestsF32 + folder = DistanceF32 + + Pattern DIMS_S16_ID : Dims1_s16.txt + Pattern DIMS_MINKOWSKI_S16_ID : Dims9_s16.txt + + Pattern INPUTA_F32_ID : InputA1_f32.txt + Pattern INPUTB_F32_ID : InputB1_f32.txt + + Pattern INPUTA_JEN_F32_ID : InputA8_f32.txt + Pattern INPUTB_JEN_F32_ID : InputB8_f32.txt + + Pattern REF1_F32_ID : Ref1_f32.txt + Pattern REF2_F32_ID : Ref2_f32.txt + Pattern REF3_F32_ID : Ref3_f32.txt + Pattern REF4_F32_ID : Ref4_f32.txt + Pattern REF5_F32_ID : Ref5_f32.txt + Pattern REF6_F32_ID : Ref6_f32.txt + Pattern REF7_F32_ID : Ref7_f32.txt + Pattern REF8_F32_ID : Ref8_f32.txt + Pattern REF9_F32_ID : Ref9_f32.txt + + Output OUT_F32_ID : Output + Output TMPA_F32_ID : TmpA + Output TMPB_F32_ID : TmpB + + Functions { + arm_braycurtis_distance_f32:test_braycurtis_distance_f32 + arm_canberra_distance_f32:test_canberra_distance_f32 + arm_chebyshev_distance_f32:test_chebyshev_distance_f32 + arm_cityblock_distance_f32:test_cityblock_distance_f32 + arm_correlation_distance_f32:test_correlation_distance_f32 + arm_cosine_distance_f32:test_cosine_distance_f32 + arm_euclidean_distance_f32:test_euclidean_distance_f32 + arm_jensenshannon_distance_f32:test_jensenshannon_distance_f32 + arm_minkowski_distance_f32:test_minkowski_distance_f32 + } + } + + suite Distance Tests U32 { + class = DistanceTestsU32 + folder = DistanceU32 + + Pattern DIMS_S16_ID : Dims1_s16.txt + + Pattern INPUTA_U32_ID : InputA1_u32.txt + Pattern INPUTB_U32_ID : InputB1_u32.txt + + Pattern REF1_F32_ID : Ref1_f32.txt + Pattern REF2_F32_ID : Ref2_f32.txt + Pattern REF3_F32_ID : Ref3_f32.txt + Pattern REF4_F32_ID : Ref4_f32.txt + Pattern REF5_F32_ID : Ref5_f32.txt + Pattern REF6_F32_ID : Ref6_f32.txt + Pattern REF7_F32_ID : Ref7_f32.txt + Pattern REF8_F32_ID : Ref8_f32.txt + Pattern REF9_F32_ID : Ref9_f32.txt + + Output OUT_F32_ID : Output + + Functions { + arm_dice_distance:test_dice_distance + arm_hamming_distance:test_hamming_distance + arm_jaccard_distance:test_jaccard_distance + arm_kulsinski_distance:test_kulsinski_distance + arm_rogerstanimoto_distance:test_rogerstanimoto_distance + arm_russellrao_distance:test_russellrao_distance + arm_sokalmichener_distance:test_sokalmichener_distance + arm_sokalsneath_distance:test_sokalsneath_distance + arm_yule_distance:test_yule_distance + } + } + } } group DSP Benchmarks {