diff --git a/Include/arm_math.h b/Include/arm_math.h index 4211470c..f61b86c3 100644 --- a/Include/arm_math.h +++ b/Include/arm_math.h @@ -7175,6 +7175,113 @@ uint32_t arm_gaussian_naive_bayes_predict_f32(const arm_gaussian_naive_bayes_ins const float32_t * in, float32_t *pBuffer); +/** + * @brief Computation of the LogSumExp + * + * In probabilistic computations, the dynamic of the probability values can be very + * wide because they come from gaussian functions. + * To avoid underflow and overflow issues, the values are represented by their log. + * In this representation, multiplying the original exp values is easy : their log are added. + * But adding the original exp values is requiring some special handling and it is the + * goal of the LogSumExp function. + * + * If the values are x1...xn, the function is computing: + * + * ln(exp(x1) + ... + exp(xn)) and the computation is done in such a way that + * rounding issues are minimised. + * + * The max xm of the values if extracted and the function is computing: + * xm + ln(exp(x1 - xm) + ... + exp(xn - xm)) + * + * @param[in] *in points to an array of input values. + * @param[in] blockSize number of samples in the input array. + * @return LogSumExp + * + */ + + +float32_t arm_logsumexp_f32(const float32_t *in, uint32_t blockSize); + +/** + * @brief Dot product with log arithmetic + * + * Vectors are containing the log of the samples + * + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[in] *pTmpBuffer temporary buffer of length blockSize + * @return The log of the dot product . + * + */ + + +float32_t arm_logsumexp_dot_prod_f32(const float32_t * pSrcA, + const float32_t * pSrcB, + uint32_t blockSize, + float32_t *pTmpBuffer); + +/** + * @brief Entropy + * + * @param[in] *pSrcA points to an array of input values. + * @param[in] blockSize number of samples in the input array. + * @return Entropy -Sum(p ln p) + * + */ + + +float32_t arm_entropy_f32(const float32_t * pSrcA,uint32_t blockSize); + + +/** + * @brief Kullback-Leibler + * + * @param[in] *pSrcA points to an array of input values for probaility distribution A. + * @param[in] *pSrcB points to an array of input values for probaility distribution B. + * @param[in] blockSize number of samples in the input array. + * @return Kullback-Leibler divergence D(A || B) + * + */ +float32_t arm_kullback_leibler_f32(const float32_t * pSrcA + ,const float32_t * pSrcB + ,uint32_t blockSize); + + +/** + * @brief Weighted sum + * + * + * @param[in] *in points to an array of input values. + * @param[in] *weigths weights + * @param[in] blockSize number of samples in the input array. + * @return Weighted sum + * + */ +float32_t arm_weighted_sum_f32(const float32_t *in + , const float32_t *weigths + , uint32_t blockSize); + + +/** + * @brief Barycenter + * + * + * @param[in] *in List of points + * @param[in] *in List of weights + * @param[out] *out Barycenter + * @param[in] nbVectors number of vectors + * @param[in] vecDim Dimension of space + * @return None + * + */ +void arm_barycenter_f32(const float32_t *in + , const float32_t *weights + , float32_t *out + , uint32_t nbVectors + , uint32_t vecDim); + + /** * @ingroup groupInterpolation */ diff --git a/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f32.c b/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f32.c index 158eec3f..ba760bf7 100755 --- a/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f32.c +++ b/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f32.c @@ -4,7 +4,7 @@ * Description: Naive Gaussian Bayesian Estimator * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_linear_init_f32.c b/Source/SVMFunctions/arm_svm_linear_init_f32.c index 28808ba7..e1d3753d 100755 --- a/Source/SVMFunctions/arm_svm_linear_init_f32.c +++ b/Source/SVMFunctions/arm_svm_linear_init_f32.c @@ -4,7 +4,7 @@ * Description: SVM Linear Instance Initialization * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_linear_predict_f32.c b/Source/SVMFunctions/arm_svm_linear_predict_f32.c index d6c92d91..66561262 100755 --- a/Source/SVMFunctions/arm_svm_linear_predict_f32.c +++ b/Source/SVMFunctions/arm_svm_linear_predict_f32.c @@ -4,7 +4,7 @@ * Description: SVM Linear Classifier * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_polynomial_init_f32.c b/Source/SVMFunctions/arm_svm_polynomial_init_f32.c index 53e6fc7c..07b46f30 100755 --- a/Source/SVMFunctions/arm_svm_polynomial_init_f32.c +++ b/Source/SVMFunctions/arm_svm_polynomial_init_f32.c @@ -4,7 +4,7 @@ * Description: SVM Polynomial Instance Initialization * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_polynomial_predict_f32.c b/Source/SVMFunctions/arm_svm_polynomial_predict_f32.c index f638a0b6..2bbee7e8 100755 --- a/Source/SVMFunctions/arm_svm_polynomial_predict_f32.c +++ b/Source/SVMFunctions/arm_svm_polynomial_predict_f32.c @@ -4,7 +4,7 @@ * Description: SVM Polynomial Classifier * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_rbf_init_f32.c b/Source/SVMFunctions/arm_svm_rbf_init_f32.c index 14b7ae1d..ffbee3ae 100755 --- a/Source/SVMFunctions/arm_svm_rbf_init_f32.c +++ b/Source/SVMFunctions/arm_svm_rbf_init_f32.c @@ -4,7 +4,7 @@ * Description: SVM Radial Basis Function Instance Initialization * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_rbf_predict_f32.c b/Source/SVMFunctions/arm_svm_rbf_predict_f32.c index dfce0062..3cce8967 100755 --- a/Source/SVMFunctions/arm_svm_rbf_predict_f32.c +++ b/Source/SVMFunctions/arm_svm_rbf_predict_f32.c @@ -4,7 +4,7 @@ * Description: SVM Radial Basis Function Classifier * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_sigmoid_init_f32.c b/Source/SVMFunctions/arm_svm_sigmoid_init_f32.c index 61f6d361..a4878687 100755 --- a/Source/SVMFunctions/arm_svm_sigmoid_init_f32.c +++ b/Source/SVMFunctions/arm_svm_sigmoid_init_f32.c @@ -4,7 +4,7 @@ * Description: SVM Sigmoid Instance Initialization * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SVMFunctions/arm_svm_sigmoid_predict_f32.c b/Source/SVMFunctions/arm_svm_sigmoid_predict_f32.c index 25e9d81b..078bc282 100755 --- a/Source/SVMFunctions/arm_svm_sigmoid_predict_f32.c +++ b/Source/SVMFunctions/arm_svm_sigmoid_predict_f32.c @@ -4,7 +4,7 @@ * Description: SVM Sigmoid Classifier * * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/StatisticsFunctions/arm_entropy_f32.c b/Source/StatisticsFunctions/arm_entropy_f32.c new file mode 100755 index 00000000..9f44f927 --- /dev/null +++ b/Source/StatisticsFunctions/arm_entropy_f32.c @@ -0,0 +1,124 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_logsumexp_f32.c + * Description: LogSumExp + * + * + * Target Processor: Cortex-M and Cortex-A 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 groupStats + * @{ + */ + + +/** + * @brief Entropy + * + * Distribution may contain 0 probabilities with Neon version. + * Result will be right but some exception flags will be set. + * + * @param[in] *pSrcA points to an array of input values. + * @param[in] blockSize number of samples in the input array. + * @return Entropy -Sum(p ln p) + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_entropy_f32(const float32_t * pSrcA,uint32_t blockSize) +{ + const float32_t *pIn; + uint32_t blkCnt; + float32_t accum, p; + + float32x4_t accumV; + float32x2_t accumV2; + float32x4_t tmpV, tmpV2; + + pIn = pSrcA; + + accum = 0.0; + accumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + tmpV = vld1q_f32(pIn); + pIn += 4; + + tmpV2 = vlogq_f32(tmpV); + accumV = vmlaq_f32(accumV, tmpV, tmpV2); + + blkCnt--; + + } + + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accum = accumV2[0] + accumV2[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + p = *pIn++; + accum += p * log(p); + + blkCnt--; + + } + + return(-accum); +} + +#else +float32_t arm_entropy_f32(const float32_t * pSrcA,uint32_t blockSize) +{ + const float32_t *pIn; + uint32_t blkCnt; + float32_t accum, p; + + pIn = pSrcA; + blkCnt = blockSize; + + accum = 0.0; + + while(blkCnt > 0) + { + p = *pIn++; + accum += p * log(p); + + blkCnt--; + + } + + return(-accum); +} +#endif +/** + * @} end of groupStats group + */ diff --git a/Source/StatisticsFunctions/arm_kullback_leibler_f32.c b/Source/StatisticsFunctions/arm_kullback_leibler_f32.c new file mode 100755 index 00000000..99637134 --- /dev/null +++ b/Source/StatisticsFunctions/arm_kullback_leibler_f32.c @@ -0,0 +1,137 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_logsumexp_f32.c + * Description: LogSumExp + * + * + * Target Processor: Cortex-M and Cortex-A 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 groupStats + * @{ + */ + + +/** + * @brief Kullback-Leibler + * + * Distribution A may contain 0 with Neon version. + * Result will be right but some exception flags will be set. + * + * Distribution B must not contain 0 probability. + * + * @param[in] *pSrcA points to an array of input values for probaility distribution A. + * @param[in] *pSrcB points to an array of input values for probaility distribution B. + * @param[in] blockSize number of samples in the input array. + * @return Kullback-Leibler divergence D(A || B) + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" + +float32_t arm_kullback_leibler_f32(const float32_t * pSrcA,const float32_t * pSrcB,uint32_t blockSize) +{ + const float32_t *pInA, *pInB; + uint32_t blkCnt; + float32_t accum, pA,pB; + + float32x4_t accumV; + float32x2_t accumV2; + float32x4_t tmpVA, tmpVB,tmpV; + + pInA = pSrcA; + pInB = pSrcB; + + accum = 0.0; + accumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + tmpVA = vld1q_f32(pInA); + pInA += 4; + + tmpVB = vld1q_f32(pInB); + pInB += 4; + + tmpV = vinvq_f32(tmpVA); + tmpVB = vmulq_f32(tmpVB, tmpV); + tmpVB = vlogq_f32(tmpVB); + + accumV = vmlaq_f32(accumV, tmpVA, tmpVB); + + blkCnt--; + + } + + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accum = accumV2[0] + accumV2[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + pA = *pInA++; + pB = *pInB++; + accum += pA * log(pB/pA); + + blkCnt--; + + } + + return(-accum); +} + +#else +float32_t arm_kullback_leibler_f32(const float32_t * pSrcA,const float32_t * pSrcB,uint32_t blockSize) +{ + const float32_t *pInA, *pInB; + uint32_t blkCnt; + float32_t accum, pA,pB; + + pInA = pSrcA; + pInB = pSrcB; + blkCnt = blockSize; + + accum = 0.0; + + while(blkCnt > 0) + { + pA = *pInA++; + pB = *pInB++; + accum += pA * log(pB / pA); + + blkCnt--; + + } + + return(-accum); +} +#endif +/** + * @} end of groupStats group + */ diff --git a/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f32.c b/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f32.c new file mode 100755 index 00000000..3f0c5548 --- /dev/null +++ b/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f32.c @@ -0,0 +1,66 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_logsumexp_f32.c + * Description: LogSumExp + * + * + * Target Processor: Cortex-M and Cortex-A 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 groupStats + * @{ + */ + + +/** + * @brief Dot product with log arithmetic + * + * Vectors are containing the log of the samples + * + * @param[in] *pSrcA points to the first input vector + * @param[in] *pSrcB points to the second input vector + * @param[in] blockSize number of samples in each vector + * @param[in] *pTmpBuffer temporary buffer of length blockSize + * @return The log of the dot product. + * + */ + + +float32_t arm_logsumexp_dot_prod_f32(const float32_t * pSrcA, + const float32_t * pSrcB, + uint32_t blockSize, + float32_t *pTmpBuffer) +{ + float32_t result; + arm_add_f32((float32_t*)pSrcA, (float32_t*)pSrcB, pTmpBuffer, blockSize); + + result = arm_logsumexp_f32(pTmpBuffer, blockSize); + return(result); +} + +/** + * @} end of groupStats group + */ diff --git a/Source/StatisticsFunctions/arm_logsumexp_f32.c b/Source/StatisticsFunctions/arm_logsumexp_f32.c new file mode 100755 index 00000000..4805b541 --- /dev/null +++ b/Source/StatisticsFunctions/arm_logsumexp_f32.c @@ -0,0 +1,216 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_logsumexp_f32.c + * Description: LogSumExp + * + * + * Target Processor: Cortex-M and Cortex-A 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 groupStats + * @{ + */ + + +/** + * @brief Computation of the LogSumExp + * + * In probabilistic computations, the dynamic of the probability values can be very + * wide because they come from gaussian functions. + * To avoid underflow and overflow issues, the values are represented by their log. + * In this representation, multiplying the original exp values is easy : their log are added. + * But adding the original exp values is requiring some special handling and it is the + * goal of the LogSumExp function. + * + * If the values are x1...xn, the function is computing: + * + * ln(exp(x1) + ... + exp(xn)) and the computation is done in such a way that + * rounding issues are minimised. + * + * The max xm of the values if extracted and the function is computing: + * xm + ln(exp(x1 - xm) + ... + exp(xn - xm)) + * + * @param[in] *in points to an array of input values. + * @param[in] blockSize number of samples in the input array. + * @return LogSumExp + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" +float32_t arm_logsumexp_f32(const float32_t *in, uint32_t blockSize) +{ + float32_t maxVal; + float32_t tmp; + float32x4_t tmpV, tmpVb; + float32x2_t tmpV2; + float32x4_t maxValV; + uint32x4_t idxV; + float32x4_t accumV; + float32x2_t accumV2; + + const float32_t *pIn; + uint32_t blkCnt; + float32_t accum; + + pIn = in; + + blkCnt = blockSize; + + if (blockSize <= 3) + { + maxVal = *pIn++; + blkCnt--; + + while(blkCnt > 0) + { + tmp = *pIn++; + + if (tmp > maxVal) + { + maxVal = tmp; + } + blkCnt--; + } + } + else + { + maxValV = vld1q_f32(pIn); + pIn += 4; + blkCnt = (blockSize - 4) >> 2; + + while(blkCnt > 0) + { + tmpVb = vld1q_f32(pIn); + pIn += 4; + + idxV = vcgtq_f32(tmpVb, maxValV); + maxValV = vbslq_f32(idxV, tmpVb, maxValV ); + + blkCnt--; + } + + accumV2 = vpmax_f32(vget_low_f32(maxValV),vget_high_f32(maxValV)); + accumV2 = vpmax_f32(accumV2,accumV2); + maxVal = accumV2[0]; + + blkCnt = (blockSize - 4) & 3; + + while(blkCnt > 0) + { + tmp = *pIn++; + + if (tmp > maxVal) + { + maxVal = tmp; + } + blkCnt--; + } + + } + + + + maxValV = vdupq_n_f32(maxVal); + pIn = in; + accum = 0; + accumV = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + + while(blkCnt > 0) + { + tmpV = vld1q_f32(pIn); + pIn += 4; + tmpV = vsubq_f32(tmpV, maxValV); + tmpV = vexpq_f32(tmpV); + accumV = vaddq_f32(accumV, tmpV); + + blkCnt--; + + } + accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); + accum = accumV2[0] + accumV2[1]; + + blkCnt = blockSize & 0x3; + while(blkCnt > 0) + { + tmp = *pIn++; + accum += exp(tmp - maxVal); + blkCnt--; + + } + + accum = maxVal + log(accum); + + return(accum); +} +#else +float32_t arm_logsumexp_f32(const float32_t *in, uint32_t blockSize) +{ + float32_t maxVal; + float32_t tmp; + const float32_t *pIn; + uint32_t blkCnt; + float32_t accum; + + pIn = in; + blkCnt = blockSize; + + maxVal = *pIn++; + blkCnt--; + + while(blkCnt > 0) + { + tmp = *pIn++; + + if (tmp > maxVal) + { + maxVal = tmp; + } + blkCnt--; + + } + + blkCnt = blockSize; + pIn = in; + accum = 0; + while(blkCnt > 0) + { + tmp = *pIn++; + accum += exp(tmp - maxVal); + blkCnt--; + + } + accum = maxVal + log(accum); + + return(accum); +} +#endif +/** + * @} end of groupStats group + */ diff --git a/Source/StatisticsFunctions/arm_max_f32.c b/Source/StatisticsFunctions/arm_max_f32.c index cd54e2a1..1b7139f9 100644 --- a/Source/StatisticsFunctions/arm_max_f32.c +++ b/Source/StatisticsFunctions/arm_max_f32.c @@ -6,7 +6,7 @@ * $Date: 18. March 2019 * $Revision: V1.6.0 * - * Target Processor: Cortex-M cores + * Target Processor: Cortex-M and Cortex-A cores * -------------------------------------------------------------------- */ /* * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. diff --git a/Source/SupportFunctions/arm_barycenter_f32.c b/Source/SupportFunctions/arm_barycenter_f32.c new file mode 100755 index 00000000..92fdf06f --- /dev/null +++ b/Source/SupportFunctions/arm_barycenter_f32.c @@ -0,0 +1,265 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_barycenter_f32.c + * Description: Barycenter + * + * + * Target Processor: Cortex-M and Cortex-A 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 + + +/** + @ingroup groupSupport + */ + + +/** + * @brief Barycenter + * + * + * @param[in] *in List of points + * @param[out] *out Barycenter + * @param[in] nbVectors number of vectors + * @param[in] vecDim Dimension of space + * @return None + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" +void arm_barycenter_f32(const float32_t *in, const float32_t *weights, float32_t *out, uint32_t nbVectors,uint32_t vecDim) +{ + + const float32_t *pIn,*pW, *pIn1, *pIn2, *pIn3, *pIn4; + float32_t *pOut; + uint32_t blkCntVector,blkCntSample; + float32_t accum, w,w1,w2,w3,w4; + + float32x4_t tmp, inV,outV, inV1, inV2, inV3, inV4; + + blkCntVector = nbVectors; + blkCntSample = vecDim; + + accum = 0.0; + + pW = weights; + pIn = in; + + /* Set counters to 0 */ + tmp = vdupq_n_f32(0.0); + pOut = out; + + blkCntSample = vecDim >> 2; + while(blkCntSample > 0) + { + vst1q_f32(pOut, tmp); + pOut += 4; + blkCntSample--; + } + + blkCntSample = vecDim & 3; + while(blkCntSample > 0) + { + *pOut = 0.0; + pOut++; + blkCntSample--; + } + + /* Sum */ + + pIn1 = pIn; + pIn2 = pIn1 + vecDim; + pIn3 = pIn2 + vecDim; + pIn4 = pIn3 + vecDim; + + blkCntVector = nbVectors >> 2; + while(blkCntVector > 0) + { + pOut = out; + w1 = *pW++; + w2 = *pW++; + w3 = *pW++; + w4 = *pW++; + accum += w1 + w2 + w3 + w4; + + blkCntSample = vecDim >> 2; + while(blkCntSample > 0) + { + outV = vld1q_f32(pOut); + inV1 = vld1q_f32(pIn1); + inV2 = vld1q_f32(pIn2); + inV3 = vld1q_f32(pIn3); + inV4 = vld1q_f32(pIn4); + outV = vmlaq_n_f32(outV,inV1,w1); + outV = vmlaq_n_f32(outV,inV2,w2); + outV = vmlaq_n_f32(outV,inV3,w3); + outV = vmlaq_n_f32(outV,inV4,w4); + vst1q_f32(pOut, outV); + pOut += 4; + pIn1 += 4; + pIn2 += 4; + pIn3 += 4; + pIn4 += 4; + + blkCntSample--; + } + + blkCntSample = vecDim & 3; + while(blkCntSample > 0) + { + *pOut = *pOut + *pIn1++ * w1; + *pOut = *pOut + *pIn2++ * w2; + *pOut = *pOut + *pIn3++ * w3; + *pOut = *pOut + *pIn4++ * w4; + pOut++; + blkCntSample--; + } + + pIn1 += 3*vecDim; + pIn2 += 3*vecDim; + pIn3 += 3*vecDim; + pIn4 += 3*vecDim; + + blkCntVector--; + } + + pIn = pIn1; + + blkCntVector = nbVectors & 3; + while(blkCntVector > 0) + { + pOut = out; + w = *pW++; + accum += w; + + blkCntSample = vecDim >> 2; + while(blkCntSample > 0) + { + outV = vld1q_f32(pOut); + inV = vld1q_f32(pIn); + outV = vmlaq_n_f32(outV,inV,w); + vst1q_f32(pOut, outV); + pOut += 4; + pIn += 4; + + blkCntSample--; + } + + blkCntSample = vecDim & 3; + while(blkCntSample > 0) + { + *pOut = *pOut + *pIn++ * w; + pOut++; + blkCntSample--; + } + + blkCntVector--; + } + + /* Normalize */ + pOut = out; + accum = 1.0 / accum; + + blkCntSample = vecDim >> 2; + while(blkCntSample > 0) + { + tmp = vld1q_f32(pOut); + tmp = vmulq_n_f32(tmp,accum); + vst1q_f32(pOut, tmp); + pOut += 4; + blkCntSample--; + } + + blkCntSample = vecDim & 3; + while(blkCntSample > 0) + { + *pOut = *pOut * accum; + pOut++; + blkCntSample--; + } + +} +#else +void arm_barycenter_f32(const float32_t *in, const float32_t *weights, float32_t *out, uint32_t nbVectors,uint32_t vecDim) +{ + + const float32_t *pIn,*pW; + float32_t *pOut; + uint32_t blkCntVector,blkCntSample; + float32_t accum, w; + + blkCntVector = nbVectors; + blkCntSample = vecDim; + + accum = 0.0; + + pW = weights; + pIn = in; + + /* Set counters to 0 */ + blkCntSample = vecDim; + pOut = out; + + while(blkCntSample > 0) + { + *pOut = 0.0; + pOut++; + blkCntSample--; + } + + /* Sum */ + while(blkCntVector > 0) + { + pOut = out; + w = *pW++; + accum += w; + + blkCntSample = vecDim; + while(blkCntSample > 0) + { + *pOut = *pOut + *pIn++ * w; + pOut++; + blkCntSample--; + } + + blkCntVector--; + } + + /* Normalize */ + blkCntSample = vecDim; + pOut = out; + + while(blkCntSample > 0) + { + *pOut = *pOut / accum; + pOut++; + blkCntSample--; + } + +} +#endif +/** + * @} end of groupSupport group + */ diff --git a/Source/SupportFunctions/arm_weighted_sum_f32.c b/Source/SupportFunctions/arm_weighted_sum_f32.c new file mode 100755 index 00000000..4b5adbc8 --- /dev/null +++ b/Source/SupportFunctions/arm_weighted_sum_f32.c @@ -0,0 +1,133 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_weighted_sum_f32.c + * Description: Weighted Sum + * + * + * Target Processor: Cortex-M and Cortex-A 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 groupSupport + * @{ + */ + + +/** + * @brief Weighted sum + * + * + * @param[in] *in points to an array of input values. + * @param[in] *weigths weights + * @param[in] blockSize number of samples in the input array. + * @return Weighted sum + * + */ + +#if defined(ARM_MATH_NEON) + +#include "NEMath.h" +float32_t arm_weighted_sum_f32(const float32_t *in,const float32_t *weigths, uint32_t blockSize) +{ + + float32_t accum1, accum2; + float32x4_t accum1V, accum2V; + float32x2_t tempV; + + float32x4_t inV,wV; + + const float32_t *pIn, *pW; + uint32_t blkCnt; + + + pIn = in; + pW = weigths; + + accum1=0.0; + accum2=0.0; + + accum1V = vdupq_n_f32(0.0); + accum2V = vdupq_n_f32(0.0); + + blkCnt = blockSize >> 2; + while(blkCnt > 0) + { + inV = vld1q_f32(pIn); + wV = vld1q_f32(pW); + + pIn += 4; + pW += 4; + + accum1V = vmlaq_f32(accum1V,inV,wV); + accum2V = vaddq_f32(accum2V,wV); + blkCnt--; + } + + tempV = vpadd_f32(vget_low_f32(accum1V),vget_high_f32(accum1V)); + accum1 = tempV[0] + tempV[1]; + + tempV = vpadd_f32(vget_low_f32(accum2V),vget_high_f32(accum2V)); + accum2 = tempV[0] + tempV[1]; + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + accum1 += *pIn++ * *pW; + accum2 += *pW++; + blkCnt--; + } + + + return(accum1 / accum2); +} +#else +float32_t arm_weighted_sum_f32(const float32_t *in, const float32_t *weigths, uint32_t blockSize) +{ + + float32_t accum1, accum2; + const float32_t *pIn, *pW; + uint32_t blkCnt; + + + pIn = in; + pW = weigths; + + accum1=0.0; + accum2=0.0; + + blkCnt = blockSize; + while(blkCnt > 0) + { + accum1 += *pIn++ * *pW; + accum2 += *pW++; + blkCnt--; + } + + return(accum1 / accum2); +} +#endif +/** + * @} end of groupSupport group + */ diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index a0b9531d..28a728f9 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -85,6 +85,8 @@ set(TESTSRC testmain.cpp Source/BasicMathsBenchmarksQ7.cpp Source/SVMF32.cpp Source/BayesF32.cpp + Source/StatsTestsF32.cpp + Source/SupportTestsF32.cpp Source/FullyConnected.cpp Source/FullyConnectedBench.cpp GeneratedSource/TestDesc.cpp diff --git a/Testing/GeneratedInclude/Patterns.h b/Testing/GeneratedInclude/Patterns.h index 046c505f..1bdd06de 100644 --- a/Testing/GeneratedInclude/Patterns.h +++ b/Testing/GeneratedInclude/Patterns.h @@ -1,365 +1,2074 @@ #ifndef _PATTERNS_H_ #define _PATTERNS_H_ __ALIGNED(8) const char patterns[]={ -// Patterns\DSP\Bayes\BayesF32\Dims1_s16.txt +// Patterns\DSP\Support\SupportF32\Inputs1_f32.txt +64,138,162,62, +33,25,32,63, +102,246,25,63, +144,44,119,61, +154,246,50,63, +189,138,203,62, +125,251,114,63, +67,94,196,61, +99,11,227,61, +219,96,179,62, +91,8,109,62, +27,233,96,63, +227,157,220,62, +72,88,88,63, +41,110,20,63, +200,67,175,61, +70,220,125,63, +153,234,14,63, +234,86,25,62, +182,111,66,61, +15,222,192,61, +172,219,19,63, +109,103,51,62, +115,194,118,63, +125,98,251,62, +254,88,7,63, +226,90,40,62, +150,85,79,61, +16,22,72,63, +84,41,208,62, +8,241,188,62, +108,130,225,62, +187,254,136,62, +152,211,110,63, +63,148,104,63, +91,207,21,63, +198,253,53,63, +164,77,165,62, +231,227,181,62, +49,211,51,60, +241,13,196,61, +140,76,23,63, +54,67,85,63, +136,177,165,62, +102,209,248,62, +206,16,18,62, +134,105,198,62, +191,235,80,63, +222,41,164,62, +22,6,32,63, +186,124,65,63, +82,75,70,63, +138,221,81,62, +248,6,148,62, +18,83,177,62, +144,60,145,62, +149,99,127,61, +131,219,58,63, +248,238,188,62, +18,93,111,62, +135,126,71,63, +202,9,83,63, +167,6,233,60, +61,89,168,61, +199,85,203,62, +149,33,206,61, +44,84,104,63, +128,65,34,61, +148,181,243,62, +22,242,185,62, +140,172,218,62, +140,120,206,62, +187,24,97,63, +145,203,76,63, +157,22,112,63, +115,92,144,62, +144,183,206,62, +34,212,148,61, +130,162,46,63, +124,11,93,62, +164,226,198,62, +43,225,43,63, +2,222,65,63, +63,195,166,61, +164,74,230,61, +139,177,172,62, +252,55,22,62, +185,188,44,62, +159,42,17,63, +51,20,135,62, +180,74,5,62, +236,139,254,61, +36,171,87,63, +240,207,76,63, +197,249,179,60, +13,53,206,61, +226,189,105,63, +139,53,117,63, +99,204,18,63, +144,52,90,63, +87,57,82,63, +148,97,94,61, +61,151,174,62, +135,21,140,60, +126,147,206,62, +214,193,21,63, +138,245,53,63, +118,14,117,63, +82,95,157,62, +170,171,62,63, +97,52,50,63, +80,236,147,62, +202,99,136,61, +105,207,20,63, +56,166,159,62, +88,176,248,61, +87,26,123,63, +41,52,175,62, +122,46,0,61, +102,226,158,62, +210,159,71,63, +175,224,241,62, +223,124,32,63, +97,24,99,63, +58,82,91,63, +33,63,175,62, +249,159,9,63, +2,20,132,62, +155,25,79,63, +42,71,233,62, +42,14,61,62, +158,90,220,61, +121,190,110,62, +213,148,231,62, +29,114,136,62, +147,15,25,63, +48,119,66,63, +176,171,24,63, +92,246,253,62, +117,24,27,62, +115,5,2,63, +195,59,86,63, +141,247,95,63, +160,90,10,63, +235,52,145,62, +24,202,163,62, +83,143,48,63, +32,113,50,63, +237,25,135,60, +34,163,8,63, +25,66,97,63, +11,197,15,63, +83,101,49,63, +22,186,176,62, +104,149,66,63, +254,122,15,63, +175,165,246,62, +65,235,84,63, +67,81,169,62, +137,134,15,63, +92,138,13,63, +118,162,70,63, +59,106,198,62, +121,141,232,62, +247,2,67,63, +46,58,107,63, +75,176,54,63, +28,229,138,60, +137,43,190,62, +253,169,127,63, +195,150,44,61, +244,144,100,62, +7,108,62,63, +13,68,10,61, +97,117,204,62, +154,15,108,63, +232,88,125,63, +60,76,99,63, +160,106,6,63, +17,17,2,63, +20,196,64,61, +167,201,171,62, +78,66,126,63, +215,252,175,60, +97,45,18,63, +70,67,230,61, +202,153,142,62, +109,13,105,61, +17,24,213,62, +99,101,237,62, +179,190,24,63, +17,244,93,63, +58,80,246,62, +179,95,107,63, +208,172,39,63, +23,74,203,62, +196,140,152,62, +96,239,27,63, +37,225,130,62, +100,66,229,62, +109,109,106,63, +178,219,41,63, +30,143,48,63, +106,225,71,63, +18,1,81,62, +58,20,52,63, +90,14,59,61, +66,164,78,62, +122,29,127,63, +204,238,252,62, +132,57,44,62, +60,235,70,58, +94,195,236,62, +70,205,228,62, +145,146,133,62, +236,73,143,62, +36,90,28,63, +114,112,86,59, +185,154,125,62, +96,107,99,62, +66,0,188,62, +42,99,56,62, +167,230,44,63, +56,236,81,63, +194,133,47,63, +129,92,60,63, +103,172,41,63, +121,58,202,62, +19,210,93,63, +107,94,80,63, +20,175,89,63, +125,60,119,63, +177,203,90,63, +220,15,135,62, +107,174,109,62, +68,92,122,63, +36,233,72,63, +80,228,234,59, +46,56,85,63, +19,105,85,61, +91,206,247,59, +61,130,147,62, +213,250,30,63, +47,108,79,63, +214,40,50,63, +83,211,26,62, +125,81,56,63, +123,140,86,63, +164,191,38,63, +226,207,65,63, +245,129,119,63, +134,156,76,63, +17,151,242,61, +187,52,164,62, +148,87,95,63, +249,155,12,63, +242,35,49,63, +36,78,60,63, +93,40,144,61, +31,170,51,63, +25,13,18,62, +40,197,76,63, +226,235,199,62, +97,246,49,63, +242,82,36,62, +26,195,62,62, +170,93,16,63, +241,75,184,62, +88,214,74,62, +41,30,157,62, +220,179,26,63, +23,9,49,62, +91,158,237,61, +76,44,222,62, +118,187,107,63, +113,154,82,63, +89,142,35,63, +211,48,156,62, +150,107,200,61, +243,150,215,61, +87,242,107,63, +242,25,85,62, +226,236,114,63, +94,9,246,59, +172,201,62,63, +201,69,82,62, +141,174,118,63, +183,80,92,63, +202,199,30,63, +224,51,217,62, +240,190,115,63, +233,95,38,63, +20,134,111,63, +210,109,64,63, +60,137,223,62, +181,23,64,63, +121,177,227,62, +69,177,235,62, +121,80,78,63, +161,40,190,62, +103,208,1,63, +70,12,202,61, +51,241,121,63, +23,84,3,63, +8,179,63,63, +48,232,54,63, +191,129,120,62, +0,131,74,62, +179,152,64,62, +188,11,52,63, +30,153,64,63, +31,148,52,63, +255,223,92,62, +247,36,161,62, +71,78,42,63, +52,164,221,62, +196,36,97,63, +242,46,53,62, +187,213,23,62, +200,63,65,61, +141,70,75,63, +186,161,25,63, +173,149,255,62, +65,80,35,63, +216,63,16,63, +229,19,168,62, +26,123,194,62, +5,113,30,63, +149,104,58,60, +53,38,59,63, +208,248,6,63, +0,102,160,61, +19,63,106,61, +233,117,228,62, +52,96,22,63, +158,46,49,61, +19,251,119,63, +51,138,104,63, +168,38,137,62, +28,81,125,63, +198,92,135,62, +50,65,83,61, +12,153,22,63, +36,96,121,61, +69,144,109,61, +3,70,119,63, +10,166,93,63, +73,132,85,63, +196,228,223,62, +21,134,238,62, +102,131,3,63, +124,153,200,61, +227,82,51,63, +177,200,83,63, +199,187,32,63, +129,166,29,63, +69,1,80,63, +172,204,185,62, +132,134,47,63, +238,242,14,63, +134,253,129,61, +12,156,223,62, +231,204,233,61, +10,9,21,63, +80,146,179,62, +221,29,102,63, +143,21,116,63, +64,157,34,63, +135,229,58,63, +111,59,95,63, +29,197,1,62, +167,209,169,62, +128,254,209,62, +229,2,109,63, +140,107,162,62, +169,188,56,63, +59,198,176,61, +5,46,202,62, +223,33,209,62, +85,214,137,62, +239,78,44,63, +112,86,4,63, +60,170,62,63, +51,96,110,63, +42,254,79,63, +80,244,144,62, +229,48,46,62, +220,51,195,62, +75,53,192,59, +235,99,40,63, +62,173,76,63, +96,37,126,62, +122,191,249,62, +113,222,41,63, +146,17,36,60, +133,154,120,63, +176,49,37,63, +234,113,102,63, +54,125,63,63, +155,65,122,63, +62,15,227,62, +110,57,97,63, +246,117,27,63, +161,14,77,63, +98,24,232,62, +5,25,31,60, +153,8,86,63, +163,39,83,63, +73,67,120,63, +59,51,200,62, +26,230,0,63, +164,36,226,59, +147,17,108,63, +202,115,12,63, +132,86,165,62, +129,29,128,60, +139,212,66,62, +47,152,236,62, +68,1,35,63, +57,187,63,61, +137,170,87,63, +230,48,72,63, +40,158,122,61, +215,230,37,62, +2,63,99,63, +151,178,247,60, +115,142,254,62, +80,119,49,63, +58,172,68,62, +79,46,201,62, +180,41,180,62, +221,136,98,63, +182,102,245,62, +8,0,160,62, +174,132,166,59, +40,63,79,62, +101,136,55,62, +177,14,230,61, +67,1,126,63, +213,34,34,63, +145,83,60,63, +212,116,12,63, +136,15,77,63, +5,221,112,63, +186,0,150,62, +111,24,122,63, +7,115,198,62, +152,39,17,62, +139,179,180,61, +160,28,51,63, +127,168,43,63, +130,242,208,62, +195,27,80,63, +14,96,130,61, +96,34,49,62, +98,245,25,63, +193,94,140,61, +253,212,36,63, +222,175,94,62, +197,58,99,63, +14,64,176,62, +7,159,73,63, +83,71,192,62, +99,138,83,62, +107,226,24,63, +179,66,98,63, +96,119,147,62, +75,118,25,63, +47,63,9,63, +25,105,88,62, +102,199,34,63, +26,98,74,63, +235,111,85,63, +181,204,34,63, +86,79,95,63, +138,222,82,63, +104,69,16,63, +87,67,152,62, +121,82,42,62, +96,142,65,63, +217,166,41,63, +200,211,6,63, +132,57,25,63, +36,233,45,62, +231,98,70,63, +147,240,247,62, +92,35,179,62, +26,54,170,62, +55,114,3,63, +74,92,15,63, +78,152,51,63, +88,57,25,63, +63,93,228,62, +76,84,184,62, +59,160,102,62, +69,14,150,62, +10,11,249,62, +139,67,39,63, +226,197,82,63, +7,36,213,62, +210,111,118,63, +1,27,76,62, +61,28,212,62, +76,11,177,62, +3,244,45,63, +210,7,230,62, +174,251,79,63, +41,57,11,63, +68,212,154,59, +218,1,249,62, +94,208,81,63, +197,164,18,62, +202,118,51,63, +172,49,27,61, +227,174,68,63, +40,249,80,63, +15,97,130,61, +160,146,157,62, +77,145,4,63, +31,42,200,62, +33,239,146,62, +23,31,221,62, +203,119,198,62, +173,178,97,63, +33,251,38,63, +176,129,112,63, +205,66,77,63, +220,196,162,62, +94,84,144,61, +149,123,107,63, +37,58,238,62, +149,136,246,62, +150,133,117,63, +69,156,134,62, +130,58,76,63, +57,217,124,63, +168,219,198,61, +185,5,55,63, +205,213,171,62, +84,99,179,62, +243,31,226,62, +210,36,10,63, +172,128,39,63, +225,233,90,63, +204,25,57,63, +40,203,122,63, +186,29,75,63, +81,48,124,63, +57,190,118,60, +116,234,137,62, +43,227,175,62, +152,14,110,62, +232,25,4,63, +32,48,109,63, +6,69,121,63, +130,248,250,62, +65,59,93,63, +163,61,72,63, +20,4,196,62, +169,42,33,63, +189,54,29,61, +68,58,211,62, +166,189,117,63, +26,238,41,63, +107,205,96,63, +197,19,240,62, +252,46,84,63, +78,39,239,60, +51,223,236,61, +78,147,254,62, +17,5,20,63, +34,207,55,63, +203,163,245,62, +7,78,94,63, +84,38,208,59, +70,45,239,61, +52,140,88,63, +24,248,112,63, +164,176,221,62, +139,64,8,61, +160,191,92,63, +247,236,100,62, +164,13,10,63, +46,203,214,62, +35,213,89,63, +155,52,46,63, +39,81,172,62, +188,193,209,61, +183,244,157,62, +186,233,4,63, +189,107,26,61, +190,135,21,63, +129,186,75,63, +244,23,183,61, +142,227,114,63, +9,247,15,62, +35,116,86,62, +95,177,105,62, +43,24,249,62, +9,42,10,63, +6,136,116,63, +88,118,208,62, +56,180,213,62, +96,196,72,63, +64,129,253,62, +142,121,250,61, +102,16,231,62, +106,145,101,63, +150,254,5,63, +218,215,25,62, +23,131,213,62, +108,20,131,62, +160,149,161,62, +180,52,243,62, +189,251,49,63, +207,91,20,63, +123,226,153,62, +114,103,193,62, +228,87,89,63, +42,79,57,63, +235,91,40,63, +67,217,173,62, +230,159,204,62, +114,178,38,62, +234,218,17,61, +8,87,14,63, +180,77,37,63, +25,96,245,62, +7,36,189,61, +201,94,185,62, +176,194,27,63, +29,182,169,60, +127,234,43,62, +58,3,10,63, +182,223,122,63, +150,38,79,63, +203,137,147,62, +47,231,49,63, +185,100,86,63, +3,210,100,63, +171,136,47,63, +73,62,39,63, +75,46,77,62, +33,9,181,62, +250,40,193,61, +97,30,70,62, +85,52,82,63, +66,192,125,63, +183,105,61,62, +157,138,216,62, +95,187,22,62, +24,204,42,63, +189,85,137,62, +105,227,58,62, +55,23,28,63, +127,156,62,63, +159,247,191,62, +153,136,176,62, +187,186,13,62, +123,74,48,62, +10,50,128,62, +154,84,123,62, +144,192,125,63, +145,30,202,62, +193,60,82,63, +187,107,127,60, +247,145,229,57, +140,145,82,61, +32,26,120,63, +41,112,95,63, +172,84,119,63, +122,238,170,62, +51,171,21,62, +4,76,105,63, +120,150,116,62, +85,219,172,62, +160,223,159,62, +118,106,171,62, +233,150,94,63, +91,228,0,62, +201,30,39,63, +26,193,247,62, +120,42,223,62, +6,168,65,63, +208,191,92,63, +246,202,160,62, +230,127,242,61, +68,164,14,63, +178,167,44,63, +234,139,177,62, +9,235,232,62, +8,115,137,62, +23,197,107,62, +52,62,0,63, +210,60,71,63, +247,13,64,63, +0,51,107,60, +201,37,63,63, +210,39,11,63, +211,255,1,62, +162,29,57,62, +226,177,167,62, +162,129,117,63, +86,216,109,63, +6,145,127,63, +125,121,168,62, +39,52,85,63, +136,10,7,63, +80,154,44,63, +37,74,7,62, +121,125,38,63, +159,118,55,63, +1,65,43,63, +245,19,219,62, +191,121,133,62, +228,79,87,62, +59,159,237,62, +127,252,124,63, +31,8,211,62, +88,164,21,62, +199,235,54,63, +2,3,12,63, +193,194,42,63, +158,10,80,63, +222,15,120,63, +159,151,212,62, +173,11,44,62, +240,136,107,61, +246,186,219,60, +237,45,84,62, +113,75,46,62, +112,197,213,62, +217,216,97,59, +139,94,42,63, +229,160,14,62, +119,96,240,61, +174,105,103,62, +164,52,139,62, +86,133,62,63, +152,156,244,62, +30,143,16,63, +34,210,163,62, +85,55,14,63, +146,187,57,60, +138,97,214,62, +120,127,208,61, +242,252,155,61, +184,133,50,63, +146,166,64,63, +118,198,154,61, +22,215,94,62, +164,252,44,63, +178,94,40,62, +247,63,125,63, +134,222,32,63, +226,107,113,61, +145,114,3,62, +6,115,187,61, +173,31,88,63, +194,80,76,63, +87,58,72,61, +182,175,56,63, +53,142,68,63, +199,60,254,62, +247,0,13,62, +254,154,114,63, +87,64,143,62, +253,105,225,62, +172,63,100,63, +42,209,79,63, +98,107,86,63, +224,253,198,61, +91,104,238,62, +19,97,168,61, +112,91,162,61, +239,78,72,63, +69,82,87,61, +6,236,205,62, +252,154,123,62, +103,252,2,63, +143,107,58,63, +192,5,169,61, +65,170,99,63, +251,26,2,63, +8,49,176,62, +203,239,9,62, +157,248,21,63, +186,247,153,61, +160,37,44,63, +48,66,170,62, +53,173,236,61, +184,60,143,62, +95,162,49,63, +174,70,117,63, +251,12,75,63, +104,98,193,62, +14,70,114,63, +40,157,196,62, +189,188,17,61, +65,32,60,61, +103,233,111,63, +168,202,66,61, +47,100,234,62, +1,149,85,61, +245,7,8,63, +96,95,49,63, +0,78,173,62, +162,64,142,62, +212,167,28,63, +223,176,70,63, +31,141,10,63, +157,101,144,60, +252,32,79,63, +224,51,87,63, +52,120,78,63, +154,182,111,62, +104,119,114,63, +48,46,24,63, +222,30,22,63, +4,210,123,62, +241,109,60,61, +140,7,211,61, +241,213,3,63, +173,23,236,62, +185,119,16,63, +158,236,134,62, +215,122,229,62, +4,223,28,63, +53,112,1,62, +190,123,198,62, +44,68,55,63, +113,72,135,62, +181,84,119,63, +188,191,66,63, +236,200,62,63, +196,169,176,62, +32,23,101,63, +30,174,102,63, +45,247,109,63, +169,244,140,62, +223,70,184,62, +166,220,13,62, +90,173,78,63, +114,204,62,63, +165,81,100,63, +53,111,13,61, +47,227,211,61, +20,202,162,62, +94,222,154,60, +53,210,220,62, +72,72,27,62, +228,106,40,63, +176,191,82,62, +254,38,199,62, +233,244,35,62, +40,164,89,63, +119,5,110,62, +42,139,20,63, +237,141,63,63, +238,40,204,61, +30,19,105,62, +106,235,29,63, +66,64,143,62, +101,199,27,63, +246,49,31,63, +113,57,3,63, +245,33,70,63, +210,148,130,62, +75,140,78,63, +13,71,56,62, +200,121,9,63, +78,12,233,61, +182,28,40,63, +62,96,80,63, +207,78,164,62, +157,209,79,62, +2,156,76,63, +21,231,5,63, +189,28,253,61, +75,207,188,61, +142,73,225,62, +187,95,87,63, +75,244,126,63, +54,88,4,63, +102,172,25,63, +102,164,55,62, +119,216,22,63, +84,33,103,63, +163,180,12,63, +89,230,63,63, +165,120,242,61, +246,216,179,62, +42,95,242,62, +244,163,137,62, +140,211,108,63, +205,174,95,62, +90,63,103,63, +227,219,15,63, +244,170,101,63, +88,4,214,62, +107,21,163,61, +194,138,51,63, +243,40,188,62, +194,122,12,63, +115,106,127,63, +50,29,41,63, +95,231,159,58, +197,9,52,63, +55,45,220,62, +149,65,110,63, +108,39,115,63, +75,47,69,63, +5,114,21,63, +245,86,66,63, +228,109,121,63, +97,186,249,62, +176,45,206,62, +81,132,190,62, +7,159,53,62, +155,251,207,62, +65,97,166,62, +89,70,235,62, +40,242,73,61, +36,60,118,63, +20,115,121,63, +209,230,3,63, +133,142,178,61, +176,72,88,63, +103,202,174,62, +223,248,97,63, +216,58,114,63, +40,195,204,62, +125,183,212,62, +164,155,160,62, +250,90,44,63, +72,196,103,63, +5,126,63,63, +181,242,16,63, +28,127,239,62, +251,174,234,62, +244,135,162,62, +251,92,79,63, +104,114,140,62, +162,204,14,63, +156,65,156,62, +25,202,46,63, +68,94,28,63, +104,114,126,63, +42,251,62,62, +88,21,147,62, +135,167,90,63, +37,77,252,62, +231,233,56,63, +184,118,71,62, +207,162,47,63, +199,71,96,62, +25,148,13,63, +100,204,82,63, +203,240,67,62, +139,216,57,61, +134,233,23,62, +4,227,14,63, +160,15,99,62, +144,216,231,59, +31,10,64,62, +105,97,200,61, +182,52,138,61, +102,182,35,63, +96,40,21,63, +128,109,72,63, +141,168,110,62, +119,11,177,62, +68,138,143,61, +233,82,79,62, +8,167,108,63, +252,211,84,62, +231,140,46,62, +146,69,41,63, +110,240,209,62, +20,246,86,63, +249,229,86,63, +222,254,113,63, +116,115,163,61, +196,138,79,62, +31,194,174,61, +72,232,60,62, +150,205,70,62, +215,104,106,63, +11,52,140,61, +234,177,233,62, +61,220,237,62, +33,179,64,63, +113,189,37,63, +57,183,116,63, +73,177,241,62, +53,77,158,62, +77,229,82,62, +182,111,89,63, +3,1,98,63, +160,139,121,63, +136,216,33,63, +208,95,228,62, +171,40,119,63, +54,197,16,63, +221,165,68,63, +156,60,78,62, +194,64,134,62, +116,240,94,63, +250,78,90,63, +120,155,60,63, +188,84,149,62, +231,130,118,63, +90,240,122,63, +221,97,3,63, +219,91,102,63, +31,236,112,63, +9,232,110,63, +81,49,166,62, +179,203,10,63, +6,247,185,62, +138,85,119,63, +1,20,180,62, +170,12,204,62, +213,108,96,63, +135,200,86,62, +114,142,120,63, +165,7,43,63, +156,14,193,61, +203,226,38,63, +115,18,205,62, +202,94,84,63, +102,100,69,62, +219,209,40,63, +4,198,113,63, +141,129,115,62, +109,228,174,62, +163,212,10,61, +237,9,155,62, +136,42,39,63, +201,81,79,62, +9,134,98,63, +89,218,26,63, +254,110,104,63, +184,13,29,63, +153,16,89,62, +236,146,179,62, +64,182,196,59, +41,149,110,63, +182,48,97,63, +133,241,247,60, +161,2,151,62, +32,84,187,61, +73,40,118,63, +198,6,113,62, +200,62,31,62, +147,223,131,61, +167,245,81,63, +206,225,11,62, +29,225,174,62, +161,246,11,62, +190,156,62,62, +68,182,190,62, +80,219,167,62, +14,144,191,62, +30,192,102,63, +82,186,176,61, +103,173,51,63, +251,39,226,61, +188,252,78,63, +192,188,27,63, +222,23,21,63, +120,229,181,62, +38,149,82,63, +100,198,48,63, +29,58,148,61, +26,42,48,63, +115,87,31,62, +5,86,231,62, +236,179,16,63, +100,59,37,63, +196,178,121,63, +254,4,171,62, +42,228,49,62, +69,163,93,63, +62,192,15,63, +71,180,24,63, +141,139,64,63, +100,188,166,60, +6,171,49,63, +76,48,73,63, +40,135,53,63, +5,197,175,62, +144,79,226,62, +78,124,127,63, +223,13,121,63, +252,216,196,62, +91,47,42,63, +252,169,5,62, +62,86,6,63, +95,0,81,63, +100,207,15,63, +14,83,147,62, +32,71,83,63, +216,177,64,63, +152,230,132,62, +92,160,31,63, +1,237,52,62, +46,88,110,62, +166,133,64,63, +7,245,117,63, +248,53,139,62, +226,90,44,63, +111,67,72,62, +0,6,50,63, +148,84,156,62, +203,67,67,62, +79,255,51,63, +194,78,182,59, +200,137,217,62, +68,32,156,62, +113,25,59,63, +192,188,119,63, +70,147,129,62, +224,168,78,63, +14,162,247,62, +89,183,70,61, +112,78,86,63, +181,72,100,62, +152,90,39,63, +205,175,33,63, +26,252,37,63, +144,221,83,63, +120,238,76,62, +42,103,39,63, +25,185,24,62, +187,233,107,62, +97,48,206,62, +105,215,142,62, +164,207,78,63, +26,153,19,63, +220,216,240,62, +122,175,13,61, +122,39,41,63, +30,192,96,63, +58,125,25,63, +199,71,207,62, +94,221,222,61, +67,1,188,62, +200,29,247,62, +138,213,159,62, +130,89,185,62, +137,230,18,62, +27,223,138,62, +13,211,213,61, +67,188,155,61, +75,152,223,62, +146,168,123,63, +118,191,196,62, +86,219,18,63, +145,71,186,62, +216,145,236,62, +87,198,236,62, +106,136,133,62, +174,36,18,63, +101,173,97,62, +37,154,53,63, +133,33,14,63, +219,16,2,63, +144,164,252,62, +154,190,134,62, +138,121,93,63, +102,137,71,63, +182,220,5,63, +152,54,75,63, +116,48,235,62, +149,234,35,63, +51,75,75,63, +70,43,29,62, +35,41,18,63, +179,55,72,63, +205,0,0,62, +155,12,112,63, +77,240,228,62, +150,43,16,63, +87,77,82,63, +96,112,37,63, +149,192,31,63, +92,162,119,63, +115,57,233,62, +147,198,14,62, +27,245,216,62, +38,22,43,63, +133,236,152,62, +0,241,198,62, +168,173,239,62, +124,90,25,63, +8,162,151,62, +101,170,203,62, +97,228,83,62, +92,184,185,62, +2,140,96,62, +231,241,194,62, +189,59,226,62, +71,122,49,62, +101,175,126,63, +96,170,137,62, +48,30,77,63, +113,212,233,62, +191,115,21,63, +150,137,68,63, +180,156,15,63, +49,160,18,63, +70,198,25,62, +78,198,221,62, +198,219,25,62, +29,157,74,61, +53,213,87,63, +174,75,207,62, +119,87,42,63, +89,159,224,62, +226,103,41,63, +54,101,101,63, +87,204,221,62, +120,128,127,63, +105,216,103,63, +68,209,224,62, +221,171,117,63, +55,37,124,63, +81,22,189,62, +129,132,116,63, +219,164,162,62, +91,225,103,63, +17,4,41,63, +36,158,10,63, +10,40,51,63, +96,198,250,62, +70,20,211,62, +144,44,41,63, +28,221,51,62, +78,221,90,63, +86,60,63,63, +82,53,5,62, +205,75,196,62, +146,28,16,61, +150,168,176,62, +42,144,66,63, +181,0,114,62, +63,71,147,62, +197,242,139,62, +249,252,123,63, +136,251,11,63, +40,181,205,60, +208,86,71,63, +86,133,84,63, +79,123,48,63, +15,134,59,62, +89,144,143,62, +105,211,17,63, +49,50,60,63, +110,221,184,61, +134,149,37,62, +245,82,36,63, +155,75,177,62, +109,200,170,62, +119,160,30,63, +176,70,22,63, +194,109,125,63, +179,78,110,63, +117,118,43,63, +39,33,36,63, +207,25,78,63, +22,254,252,62, +227,183,210,62, +136,15,57,63, +94,206,9,63, +88,168,18,63, +107,149,254,61, +193,147,77,63, +35,39,40,63, +241,142,207,62, +92,108,175,62, +108,208,82,63, +41,199,119,63, +97,24,61,63, +6,142,86,63, +137,184,94,63, +237,24,104,63, +221,35,110,63, +160,205,133,62, +1,58,253,62, +177,96,175,62, +26,64,48,60, +186,13,15,63, +215,233,168,62, +231,206,38,63, +228,32,232,62, +248,153,98,63, +206,99,50,63, +213,77,219,62, +200,28,255,62, +222,160,27,63, +159,227,6,63, +149,125,87,63, +42,89,115,62, +77,38,117,63, +82,175,99,63, +146,93,231,62, +149,61,92,63, +247,142,5,62, +152,135,162,61, +174,17,146,62, +205,11,109,63, +90,48,219,62, +223,243,231,62, +81,115,228,61, +18,152,31,63, +244,185,125,63, +128,197,123,62, +45,7,128,62, +113,205,33,63, +242,230,107,62, +47,162,83,62, +31,210,105,63, +22,175,61,63, +13,189,190,62, +137,248,27,62, +162,15,21,63, +128,86,41,63, +142,11,255,60, +224,37,20,63, +44,245,222,61, +20,50,29,63, +107,49,167,60, +157,103,97,63, +174,55,126,63, +55,234,80,63, +64,121,41,63, +205,116,9,62, +169,164,130,62, +169,122,70,63, +1,53,55,63, +92,76,226,62, +148,251,172,62, +81,69,234,62, +118,249,69,62, +207,192,122,63, +213,81,85,63, +212,24,110,63, +23,87,132,62, +66,75,95,62, +175,21,234,60, +220,202,57,63, +60,151,71,61, +86,68,181,62, +3,244,60,62, +179,18,0,60, +157,178,39,63, +198,127,7,63, +48,175,220,62, +191,110,75,63, +49,231,144,61, +102,237,171,62, +130,150,2,62, +245,156,115,63, +51,23,105,62, +244,45,147,62, +150,69,57,63, +220,191,142,62, +165,187,145,62, +210,104,52,63, +109,150,14,63, +196,162,30,62, +5,247,84,63, +109,106,231,61, +193,201,126,63, +95,42,71,63, +223,138,35,61, +65,117,49,62, +221,64,21,62, +4,208,67,63, +232,85,255,62, +219,10,78,63, +167,4,186,62, +214,166,12,62, +56,94,247,62, +24,140,48,62, +140,201,191,62, +136,76,132,62, +177,26,203,61, +48,125,133,62, +70,17,79,63, +234,213,39,63, +91,33,2,62, +230,205,26,63, +49,173,157,62, +139,57,139,61, +131,104,86,63, +65,254,63,63, +225,1,109,63, +224,40,88,62, +// Patterns\DSP\Support\SupportF32\Dims1_s16.txt +10,0, 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, +// Patterns\DSP\Support\SupportF32\Weights1_f32.txt +124,129,1,63, +125,231,49,63, +29,141,85,63, +168,24,94,62, +241,146,92,63, +128,92,191,62, +35,135,208,62, +49,48,51,63, +236,165,122,63, +27,128,33,63, +134,19,46,63, +25,207,110,63, +78,221,79,63, +238,63,37,63, +150,45,96,63, +28,98,68,62, +107,51,81,62, +207,207,69,63, +255,187,43,62, +128,69,158,62, +205,128,160,62, +246,20,222,62, +152,210,44,63, +59,239,15,63, +31,54,75,63, +110,125,185,62, +248,86,252,62, +60,92,227,62, +173,152,50,62, +137,142,89,63, +145,245,69,63, +177,110,234,62, +109,246,79,63, +0,74,76,62, +46,58,4,62, +2,227,198,62, +219,190,96,63, +166,155,204,62, +136,6,48,63, +198,21,113,63, +91,55,118,63, +58,37,98,62, +208,75,180,61, +225,214,143,62, +242,22,245,62, +55,94,201,62, +20,16,27,62, +130,96,101,63, +207,124,144,61, +150,77,214,62, +125,135,24,62, +224,35,186,61, +163,199,22,63, +173,203,175,62, +45,233,105,62, +147,13,101,63, +244,83,88,62, +156,174,127,63, +32,188,93,62, +155,28,215,56, +187,25,62,63, +73,10,66,63, +131,219,118,63, +14,141,146,62, +112,241,112,62, +58,250,249,58, +68,185,56,63, +94,255,10,63, +62,4,236,61, +193,18,170,62, +48,63,142,62, +151,156,64,63, +219,237,119,63, +41,50,116,63, +138,236,115,63, +80,190,85,63, +178,218,51,62, +32,240,173,62, +212,241,62,63, +99,189,2,63, +97,78,246,61, +234,189,228,62, +80,10,67,63, +61,148,178,62, +96,57,9,63, +202,197,253,62, +164,88,113,63, +238,113,237,62, +129,46,48,62, +161,138,63,63, +175,19,0,63, +254,188,14,63, +66,248,30,63, +179,191,119,63, +243,15,184,62, +37,108,86,63, +150,98,133,62, +201,226,78,63, +232,96,38,63, +126,146,56,63, +// Patterns\DSP\Support\SupportF32\Ref1_f32.txt +89,23,203,62, +103,24,250,62, +92,141,16,63, +96,9,151,62, +193,137,9,63, +40,143,208,62, +159,31,170,62, +228,68,183,62, +249,84,8,63, +35,164,7,63, +27,36,251,62, +92,147,245,62, +7,172,3,63, +152,178,196,62, +174,159,21,63, +136,117,0,63, +226,14,193,62, +238,147,216,62, +83,199,13,63, +248,137,220,62, +123,255,11,63, +51,16,32,63, +153,111,1,63, +27,178,46,63, +219,248,7,63, +203,10,30,63, +102,51,35,63, +172,227,187,62, +242,18,22,63, +24,153,40,63, +47,105,41,63, +173,37,22,63, +24,0,3,63, +163,87,206,62, +50,92,26,63, +72,234,212,62, +137,16,244,62, +34,217,228,62, +96,233,189,62, +243,86,12,63, +89,8,6,63, +73,99,168,62, +236,148,23,63, +75,55,18,63, +222,226,214,62, +187,74,226,62, +92,42,233,62, +248,205,194,62, +112,111,4,63, +178,235,16,63, +187,229,19,63, +32,213,237,62, +228,152,13,63, +199,168,75,63, +87,92,210,62, +107,155,9,63, +183,146,69,62, +75,168,175,62, +47,98,25,63, +169,51,3,63, +240,185,63,63, +45,153,226,62, +51,165,29,63, +209,54,83,62, +193,120,145,62, +190,26,220,62, +190,125,30,63, +107,253,50,63, +75,235,10,63, +111,34,232,62, +126,126,181,62, +70,139,25,62, +21,85,28,63, +21,217,113,62, +128,112,151,62, +103,240,248,62, +144,68,197,62, +28,125,206,62, +162,92,153,62, +218,167,228,62, +46,51,29,63, +48,84,2,63, +165,178,45,63, +152,176,147,62, +66,160,20,63, +42,46,224,62, +185,15,238,62, +250,0,13,63, +246,249,12,63, +194,252,5,63, +188,223,184,62, +144,50,215,62, +223,250,241,62, +88,1,5,63, +135,90,164,62, +135,228,243,62, +63,147,18,63, +135,130,10,63, +179,137,223,62, +94,226,9,63, +237,113,15,63, +204,126,23,63, +117,131,32,63, +45,151,223,62, +214,71,43,63, +16,210,21,63, +4,106,25,63, +230,114,152,62, +87,40,255,62, +33,251,19,63, +38,235,2,63, +50,214,215,62, +87,156,13,63, +28,145,186,62, +205,110,244,62, +76,60,17,63, +4,227,238,62, +125,35,6,63, +193,12,253,62, +185,227,251,62, +241,148,34,63, +248,83,3,63, +78,10,203,62, +198,116,250,62, +194,37,4,63, +111,51,201,62, +184,171,245,62, +140,93,239,62, +118,55,202,62, +68,224,20,63, +232,135,0,63, +209,208,23,63, +32,231,201,62, +173,205,245,62, +9,12,2,63, +13,237,20,63, +240,171,13,63, +73,8,6,63, +79,16,252,62, +82,182,238,62, +// Patterns\DSP\Support\SupportF32\Inputs2_f32.txt +113,8,227,62, +178,225,98,63, +117,96,39,62, +231,221,86,63, +28,59,12,62, +251,119,35,63, +194,62,189,61, +213,43,185,62, +160,31,160,62, +32,181,4,63, +252,67,46,63, +61,102,122,62, +78,4,10,63, +123,228,78,62, +3,121,86,63, +194,22,0,62, +32,248,222,61, +153,234,112,62, +39,190,145,61, +39,79,125,62, +186,182,103,63, +195,30,223,62, +213,144,211,62, +18,185,0,63, +68,213,44,63, +183,67,39,63, +101,51,234,61, +200,114,244,62, +217,37,244,62, +245,34,10,62, +156,206,233,62, +158,96,174,62, +22,150,114,63, +226,34,116,63, +31,232,29,63, +62,31,25,63, +246,252,244,62, +176,25,14,63, +171,66,98,63, +43,30,44,63, +254,42,16,63, +250,173,92,63, +76,41,70,61, +236,48,3,63, +7,250,21,63, +148,59,220,61, +130,243,78,63, +146,116,221,62, +219,239,19,63, +171,104,182,62, +165,88,137,61, +198,34,18,63, +198,227,143,60, +48,145,109,62, +29,145,108,63, +163,62,210,62, +224,162,19,63, +147,141,36,62, +41,172,110,63, +191,215,40,63, +115,124,96,63, +38,153,203,62, +165,214,229,62, +148,207,3,63, +45,19,55,63, +98,145,92,62, +163,229,78,63, +60,218,200,61, +67,45,57,63, +129,139,35,63, +217,208,57,63, +38,43,53,62, +215,252,38,63, +29,124,29,63, +229,228,241,59, +156,167,70,62, +241,147,32,63, +200,103,64,61, +149,215,8,63, +47,79,157,61, +92,189,170,62, +170,210,47,63, +214,147,137,62, +146,79,47,63, +33,89,32,63, +171,37,76,63, +71,126,44,63, +80,149,77,63, +67,21,32,62, +116,137,66,63, +52,148,178,62, +63,133,135,62, +233,81,221,62, +24,55,53,62, +179,156,72,63, +72,121,65,63, +108,179,94,62, +148,73,134,62, +145,21,18,63, +153,220,184,62, +222,251,0,61, +130,41,8,62, +88,227,31,62, +253,237,12,63, +200,66,107,63, +112,85,122,63, +77,46,61,63, +39,254,65,62, +120,215,21,61, +59,64,83,62, +220,113,212,62, +93,101,31,63, +16,129,129,62, +183,221,219,62, +226,26,32,62, +232,44,80,63, +3,63,99,63, +12,204,254,62, +30,39,152,62, +40,233,236,62, +220,170,92,63, +106,228,35,62, +84,215,100,63, +238,173,111,63, +95,26,123,63, +128,22,95,61, +72,243,183,62, +112,121,107,62, +159,98,152,62, +71,9,210,62, +78,77,135,62, +8,204,154,62, +55,75,163,62, +139,34,221,62, +153,148,84,63, +74,151,21,63, +135,51,196,61, +57,225,5,63, +217,26,19,63, +151,186,119,63, +173,239,88,63, +223,92,198,61, +171,104,57,63, +19,252,5,62, +252,96,33,61, +139,192,210,62, +41,155,108,63, +86,241,20,62, +136,220,236,62, +185,21,170,62, +183,127,77,62, +109,186,149,62, +233,43,82,63, +248,48,115,63, +116,102,143,61, +49,55,5,62, +137,158,123,63, +190,97,226,62, +168,215,14,63, +118,55,111,61, +219,60,68,63, +23,188,35,62, +56,48,250,62, +240,210,59,63, +117,153,110,63, +244,193,72,63, +111,171,133,60, +165,219,124,63, +7,188,64,63, +17,114,95,63, +100,32,10,62, +12,216,177,61, +142,168,98,63, +112,108,15,62, +121,94,72,61, +138,29,74,63, +51,122,229,62, +49,108,12,63, +100,200,58,61, +182,201,211,62, +18,44,153,62, +214,59,238,62, +36,202,200,62, +196,148,82,63, +170,55,40,63, +42,82,12,63, +14,184,8,63, +170,121,146,62, +21,146,163,61, +72,120,96,63, +59,247,79,62, +235,62,98,63, +177,9,191,62, +187,124,90,63, +47,77,128,62, +229,222,189,62, +121,92,127,63, +221,235,19,63, +115,9,97,63, +87,164,57,63, +// Patterns\DSP\Support\SupportF32\Dims2_s16.txt +10,0, +20,0, 0, 0, 0, 0, +// Patterns\DSP\Support\SupportF32\Weights2_f32.txt +111,92,35,63, +55,74,130,62, +204,79,57,63, +186,103,166,60, +25,19,58,63, +220,128,161,62, +26,192,203,62, +180,130,215,62, +103,25,122,60, +180,110,38,63, +129,154,3,63, +59,244,94,61, +120,58,101,63, +123,144,181,61, +16,180,13,60, +215,29,27,61, +217,42,133,62, +210,64,18,63, +88,163,71,63, +136,25,55,63, +8,128,244,62, +105,89,43,63, +6,222,9,63, +157,161,237,59, +154,220,87,63, +46,205,101,63, +163,220,229,61, +229,61,71,62, +213,83,211,62, +75,62,174,62, +142,103,132,61, +57,151,22,63, +229,162,203,62, +29,219,144,62, +25,101,8,63, +249,108,109,63, +151,140,37,62, +171,40,9,63, +160,172,199,62, +115,5,168,61, +247,157,25,63, +119,103,68,63, +95,10,103,62, +30,79,107,63, +116,245,176,62, +124,240,102,63, +178,189,105,63, +68,68,44,62, +44,148,92,63, +236,19,253,62, +190,177,144,62, +54,42,166,62, +138,140,30,61, +196,138,48,63, +150,97,19,63, +147,33,176,62, +61,170,28,63, +17,161,144,60, +223,88,110,63, +13,86,5,63, +4,79,68,63, +133,227,168,60, +192,2,21,63, +71,219,106,63, +108,97,108,63, +37,126,78,61, +21,83,238,61, +176,74,195,61, +208,201,64,62, +187,183,238,61, +205,92,97,63, +153,156,254,62, +146,81,178,62, +185,91,179,62, +124,248,145,62, +91,86,120,63, +9,68,86,63, +246,78,63,63, +196,191,11,63, +152,169,172,61, +13,175,76,63, +226,72,90,62, +29,66,44,62, +119,227,47,63, +171,124,110,63, +253,95,126,63, +90,40,80,63, +65,144,246,62, +217,100,113,62, +138,239,9,62, +164,234,9,61, +69,185,168,62, +41,122,131,62, +3,176,8,63, +93,69,42,63, +242,152,172,61, +111,189,166,60, +212,62,111,62, +45,138,197,62, +93,83,15,63, +9,141,78,63, +208,100,100,63, +52,39,87,63, +152,142,190,61, +240,100,35,62, +52,129,8,60, +161,231,133,62, +13,0,56,63, +36,139,104,63, +87,136,146,62, +102,242,197,62, +7,94,4,61, +226,215,15,63, +147,183,45,63, +197,28,220,62, +195,47,125,63, +137,73,138,62, +53,191,125,63, +124,40,66,62, +208,155,179,62, +52,150,124,63, +200,161,79,63, +135,179,67,63, +214,207,141,62, +195,17,11,63, +242,102,85,63, +205,176,236,62, +182,144,142,62, +84,178,20,63, +15,120,14,63, +7,159,183,62, +236,11,116,63, +134,6,119,63, +243,16,65,63, +101,13,54,63, +223,78,22,63, +130,200,41,63, +174,243,14,63, +188,47,249,62, +191,142,242,61, +36,48,253,62, +82,181,4,63, +167,46,236,62, +157,206,10,61, +83,153,22,63, +176,248,115,63, +226,59,185,60, +225,59,64,57, +168,237,11,63, +37,187,86,62, +185,251,75,63, +151,83,185,62, +138,245,27,63, +114,85,8,63, +77,62,237,62, +64,227,14,62, +54,252,32,63, +110,142,70,63, +94,122,206,60, +171,48,149,62, +215,99,77,63, +134,23,243,62, +126,91,218,61, +187,189,62,63, +145,235,53,62, +9,162,107,62, +136,78,69,63, +33,112,175,61, +246,161,74,63, +42,118,6,63, +6,100,145,62, +156,180,82,63, +170,239,22,63, +160,98,242,62, +127,142,172,62, +210,229,116,63, +175,255,26,62, +80,176,47,63, +144,201,98,63, +108,61,65,63, +94,233,47,63, +214,84,244,62, +225,161,30,62, +235,33,85,63, +33,9,247,62, +68,35,67,62, +240,20,37,63, +207,185,210,62, +130,178,86,63, +158,25,127,63, +37,238,33,62, +74,229,220,59, +234,98,205,62, +38,135,172,61, +39,12,217,62, +107,97,65,63, +8,108,48,63, +111,80,5,63, +11,134,36,62, +69,208,147,61, +// Patterns\DSP\Support\SupportF32\Ref2_f32.txt +182,218,173,62, +244,5,23,63, +74,175,14,63, +125,153,253,62, +70,53,14,63, +181,135,173,62, +223,196,243,62, +124,22,235,62, +248,238,242,62, +3,110,9,63, }; #endif diff --git a/Testing/GeneratedInclude/StatsTestsF32_decl.h b/Testing/GeneratedInclude/StatsTestsF32_decl.h new file mode 100755 index 00000000..4bd78e37 --- /dev/null +++ b/Testing/GeneratedInclude/StatsTestsF32_decl.h @@ -0,0 +1,30 @@ +void test_entropy_f32(); +void test_logsumexp_f32(); +void test_kullback_leibler_f32(); +void test_logsumexp_dot_prod_f32(); + +// Pattern IDs +static const int INPUT1_F32_ID=0; +static const int DIM1_S16_ID=1; +static const int REF1_ENTROPY_F32_ID=2; +static const int INPUT2_F32_ID=3; +static const int DIM2_S16_ID=4; +static const int REF2_LOGSUMEXP_F32_ID=5; +static const int INPUTA3_F32_ID=6; +static const int INPUTB3_F32_ID=7; +static const int DIM3_S16_ID=8; +static const int REF3_KL_F32_ID=9; +static const int INPUTA4_F32_ID=10; +static const int INPUTB4_F32_ID=11; +static const int DIM4_S16_ID=12; +static const int REF4_LOGSUMEXP_DOT_F32_ID=13; + +// Output IDs +static const int OUT_F32_ID=0; +static const int TMP_F32_ID=1; + +// Test IDs +static const int TEST_ENTROPY_F32_1=1; +static const int TEST_LOGSUMEXP_F32_2=2; +static const int TEST_KULLBACK_LEIBLER_F32_3=3; +static const int TEST_LOGSUMEXP_DOT_PROD_F32_4=4; diff --git a/Testing/GeneratedInclude/SupportTestsF32_decl.h b/Testing/GeneratedInclude/SupportTestsF32_decl.h new file mode 100755 index 00000000..01905710 --- /dev/null +++ b/Testing/GeneratedInclude/SupportTestsF32_decl.h @@ -0,0 +1,19 @@ +void test_barycenter_f32(); +void test_weighted_sum_f32(); + +// Pattern IDs +static const int INPUTS1_F32_ID=0; +static const int DIMS1_S16_ID=1; +static const int WEIGHTS1_F32_ID=2; +static const int REF1_F32_ID=3; +static const int INPUTS2_F32_ID=4; +static const int DIMS2_S16_ID=5; +static const int WEIGHTS2_F32_ID=6; +static const int REF2_F32_ID=7; + +// Output IDs +static const int OUT_F32_ID=0; + +// Test IDs +static const int TEST_BARYCENTER_F32_1=1; +static const int TEST_WEIGHTED_SUM_F32_2=2; diff --git a/Testing/GeneratedInclude/TestDesc.h b/Testing/GeneratedInclude/TestDesc.h index 10d17c71..23ff2b3a 100644 --- a/Testing/GeneratedInclude/TestDesc.h +++ b/Testing/GeneratedInclude/TestDesc.h @@ -1,32 +1,32 @@ #include "Test.h" #include "Pattern.h" -#include "BayesF32.h" -class BayesTests : public Client::Group +#include "SupportTestsF32.h" +class SupportTests : public Client::Group { public: - BayesTests(Testing::testID_t id):Client::Group(id) - ,BayesF32Var(1) + SupportTests(Testing::testID_t id):Client::Group(id) + ,SupportTestsF32Var(1) { - this->addContainer(&BayesF32Var); + this->addContainer(&SupportTestsF32Var); } private: - BayesF32 BayesF32Var; + SupportTestsF32 SupportTestsF32Var; ; }; class DSPTests : public Client::Group { public: DSPTests(Testing::testID_t id):Client::Group(id) - ,BayesTestsVar(3) + ,SupportTestsVar(2) { - this->addContainer(NULL);this->addContainer(NULL);this->addContainer(&BayesTestsVar); - + this->addContainer(NULL);this->addContainer(&SupportTestsVar); +this->addContainer(NULL);this->addContainer(NULL);this->addContainer(NULL); } private: - BayesTests BayesTestsVar; + SupportTests SupportTestsVar; ; }; class Root : public Client::Group diff --git a/Testing/GeneratedInclude/TestDrive.h b/Testing/GeneratedInclude/TestDrive.h index 22216845..83ccfd90 100644 --- a/Testing/GeneratedInclude/TestDrive.h +++ b/Testing/GeneratedInclude/TestDrive.h @@ -8,29 +8,37 @@ __ALIGNED(8) const char testDesc[]={ 1,0,0,0, 'n','y','D','S','P','\0', 3,0,0,0, -3,0,0,0, -'n','y','B','a','y','e','s','\0', +2,0,0,0, +'n','y','S','u','p','p','o','r','t','\0', 2,0,0,0, 1,0,0,0, -'n','y','B','a','y','e','s','F','3','2','\0', +'n','y','S','u','p','p','o','r','t','F','3','2','\0', 0,0,0,0, -5,0,0,0, +8,0,0,0, 0,0,0,0, +120,5,0,0, +224,21,0,0, 3,0,0,0, -8,0,0,0, +232,21,0,0, +100,0,0,0, +120,23,0,0, 140,0,0,0, -56,2,0,0, -146,0,0,0, -128,4,0,0, -50,0,0,0, -72,5,0,0, -10,0,0,0, +168,25,0,0, +200,0,0,0, +200,28,0,0, 2,0,0,0, -'P','r','o','b','a','s','\0', -'P','r','e','d','i','c','t','s','\0', +208,28,0,0, +200,0,0,0, +240,31,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', }; #endif diff --git a/Testing/GeneratedSource/TestDesc.cpp b/Testing/GeneratedSource/TestDesc.cpp index d460d3f4..f9a476ea 100644 --- a/Testing/GeneratedSource/TestDesc.cpp +++ b/Testing/GeneratedSource/TestDesc.cpp @@ -1,8 +1,9 @@ #include "Test.h" -#include "BayesF32.h" - BayesF32::BayesF32(Testing::testID_t id):Client::Suite(id) +#include "SupportTestsF32.h" + SupportTestsF32::SupportTestsF32(Testing::testID_t id):Client::Suite(id) { - this->addTest(1,(Client::test)&BayesF32::test_gaussian_naive_bayes_predict_f32); + this->addTest(1,(Client::test)&SupportTestsF32::test_barycenter_f32); +this->addTest(2,(Client::test)&SupportTestsF32::test_weighted_sum_f32); } diff --git a/Testing/Include/StatsTestsF32.h b/Testing/Include/StatsTestsF32.h new file mode 100755 index 00000000..ad731929 --- /dev/null +++ b/Testing/Include/StatsTestsF32.h @@ -0,0 +1,27 @@ +#include "Test.h" +#include "Pattern.h" +class StatsTestsF32:public Client::Suite + { + public: + StatsTestsF32(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 "StatsTestsF32_decl.h" + + Client::Pattern inputA; + Client::Pattern inputB; + Client::Pattern dims; + + Client::LocalPattern output; + Client::LocalPattern tmp; + + // Reference patterns are not loaded when we are in dump mode + Client::RefPattern ref; + + int nbPatterns; + int vecDim; + + + + }; \ No newline at end of file diff --git a/Testing/Include/SupportTestsF32.h b/Testing/Include/SupportTestsF32.h new file mode 100755 index 00000000..52109e28 --- /dev/null +++ b/Testing/Include/SupportTestsF32.h @@ -0,0 +1,27 @@ +#include "Test.h" +#include "Pattern.h" +class SupportTestsF32:public Client::Suite + { + public: + SupportTestsF32(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 "SupportTestsF32_decl.h" + + Client::Pattern input; + Client::Pattern coefs; + Client::Pattern dims; + + Client::LocalPattern output; + + // Reference patterns are not loaded when we are in dump mode + Client::RefPattern ref; + + int vecDim; + int nbPatterns; + int nbVectors; + + + + }; \ No newline at end of file diff --git a/Testing/Output/DSP/Stats/StatsF32/Output_1.txt b/Testing/Output/DSP/Stats/StatsF32/Output_1.txt new file mode 100755 index 00000000..ce603aeb --- /dev/null +++ b/Testing/Output/DSP/Stats/StatsF32/Output_1.txt @@ -0,0 +1,10 @@ +0x401ae843 +0x401e4a55 +0x4012db14 +0x401c29fe +0x4010f7d4 +0x401a117c +0x4021c4f2 +0x402484ef +0x401afb9b +0x401d2ddb diff --git a/Testing/Output/DSP/Stats/StatsF32/Output_2.txt b/Testing/Output/DSP/Stats/StatsF32/Output_2.txt new file mode 100755 index 00000000..e0c5c978 --- /dev/null +++ b/Testing/Output/DSP/Stats/StatsF32/Output_2.txt @@ -0,0 +1,10 @@ +0x4042f2f9 +0x4042f30e +0x4042fa4e +0x4042ef8e +0x4042f2ba +0x4042f3a3 +0x4042f198 +0x4042f27a +0x4042f3ae +0x4042f33f diff --git a/Testing/Output/DSP/Stats/StatsF32/Output_3.txt b/Testing/Output/DSP/Stats/StatsF32/Output_3.txt new file mode 100755 index 00000000..ca5baf23 --- /dev/null +++ b/Testing/Output/DSP/Stats/StatsF32/Output_3.txt @@ -0,0 +1,10 @@ +0x3f751811 +0x3ed01c22 +0x3eb6ebe3 +0x3f2fcb50 +0x3ee59dc6 +0x3e52b16c +0x3f100d62 +0x3f1b4d00 +0x3e9681e9 +0x3e757fd8 diff --git a/Testing/Output/DSP/Stats/StatsF32/Output_4.txt b/Testing/Output/DSP/Stats/StatsF32/Output_4.txt new file mode 100755 index 00000000..dbce8065 --- /dev/null +++ b/Testing/Output/DSP/Stats/StatsF32/Output_4.txt @@ -0,0 +1,10 @@ +0xc028b15a +0xc02503e3 +0xc02bd4e1 +0xc027c558 +0xc02a7f3f +0xc0213507 +0xc02958d2 +0xc02a74f2 +0xc0218d7f +0xc02a4ab4 diff --git a/Testing/Output/DSP/Support/SupportF32/Output_1.txt b/Testing/Output/DSP/Support/SupportF32/Output_1.txt new file mode 100755 index 00000000..0954778a --- /dev/null +++ b/Testing/Output/DSP/Support/SupportF32/Output_1.txt @@ -0,0 +1,140 @@ +0x3ecb1758 +0x3efa1868 +0x3f108d5d +0x3e970961 +0x3f0989c1 +0x3ed08f29 +0x3eaa1fa0 +0x3eb744e4 +0x3f0854f9 +0x3f07a424 +0x3efb241b +0x3ef5935d +0x3f03ac07 +0x3ec4b299 +0x3f159fac +0x3f007587 +0x3ec10ee1 +0x3ed893ed +0x3f0dc752 +0x3edc89f6 +0x3f0bff7a +0x3f201032 +0x3f016f98 +0x3f2eb21a +0x3f07f8da +0x3f1e0ac9 +0x3f233364 +0x3ebbe3ac +0x3f1612f2 +0x3f289919 +0x3f29692f +0x3f1625ad +0x3f030018 +0x3ece57a2 +0x3f1a5c31 +0x3ed4ea48 +0x3ef41088 +0x3ee4d923 +0x3ebde95f +0x3f0c56f2 +0x3f060859 +0x3ea86348 +0x3f1794ec +0x3f12374b +0x3ed6e2df +0x3ee24abb +0x3ee92a5d +0x3ec2cdf8 +0x3f046f70 +0x3f10ebb2 +0x3f13e5bc +0x3eedd520 +0x3f0d98e4 +0x3f4ba8c7 +0x3ed25c55 +0x3f099b6b +0x3e4592b7 +0x3eafa84a +0x3f19622e +0x3f0333a9 +0x3f3fb9ef +0x3ee2992c +0x3f1da533 +0x3e5336d0 +0x3e9178c0 +0x3edc1abd +0x3f1e7dbe +0x3f32fd6b +0x3f0aeb4b +0x3ee8226e +0x3eb57e7d +0x3e198b47 +0x3f1c5515 +0x3e71d915 +0x3e977080 +0x3ef8f068 +0x3ec54490 +0x3ece7d1e +0x3e995ca2 +0x3ee4a7da +0x3f1d332e +0x3f025430 +0x3f2db2a4 +0x3e93b099 +0x3f14a044 +0x3ee02e2b +0x3eee0fba +0x3f0d00fb +0x3f0cf9f7 +0x3f05fcc2 +0x3eb8dfbc +0x3ed73290 +0x3ef1fadf +0x3f050159 +0x3ea45a88 +0x3ef3e487 +0x3f129341 +0x3f0a8287 +0x3edf89b2 +0x3f09e25e +0x3f0f71ed +0x3f177ecc +0x3f208375 +0x3edf972b +0x3f2b47d7 +0x3f15d210 +0x3f196a03 +0x3e9872e7 +0x3eff2859 +0x3f13fb21 +0x3f02eb26 +0x3ed7d632 +0x3f0d9c57 +0x3eba911d +0x3ef46ecc +0x3f113c4c +0x3eeee305 +0x3f06237d +0x3efd0cbf +0x3efbe3b8 +0x3f2294f0 +0x3f0353f7 +0x3ecb0a4e +0x3efa74c7 +0x3f0425c2 +0x3ec93370 +0x3ef5abb9 +0x3eef5d8c +0x3eca3775 +0x3f14e046 +0x3f0087e8 +0x3f17d0d2 +0x3ec9e720 +0x3ef5cdad +0x3f020c09 +0x3f14ed0e +0x3f0dabf0 +0x3f06084a +0x3efc104f +0x3eeeb652 diff --git a/Testing/Output/DSP/Support/SupportF32/Output_2.txt b/Testing/Output/DSP/Support/SupportF32/Output_2.txt new file mode 100755 index 00000000..0ca406ff --- /dev/null +++ b/Testing/Output/DSP/Support/SupportF32/Output_2.txt @@ -0,0 +1,10 @@ +0x3eaddab7 +0x3f1705f4 +0x3f0eaf4a +0x3efd997e +0x3f0e3547 +0x3ead87b6 +0x3ef3c4dd +0x3eeb167c +0x3ef2eef8 +0x3f096e03 diff --git a/Testing/PatternGeneration/Stats.py b/Testing/PatternGeneration/Stats.py new file mode 100755 index 00000000..b5950658 --- /dev/null +++ b/Testing/PatternGeneration/Stats.py @@ -0,0 +1,115 @@ +import os.path +import itertools +import Tools +import random +import numpy as np +import scipy +import scipy.stats + +NBTESTS = 10 +VECDIM = [12,14,20] + +def entropyTest(config,nb): + inputs = [] + outputs = [] + vecDim = VECDIM[nb % len(VECDIM)] + dims=np.array([NBTESTS,vecDim]) + for _ in range(0,NBTESTS): + v = np.random.rand(vecDim) + v = v / np.sum(v) + e = scipy.stats.entropy(v) + inputs += list(v) + outputs.append(e) + inputs = np.array(inputs) + outputs = np.array(outputs) + config.writeInput(nb, inputs,"Input") + config.writeInputS16(nb, dims,"Dims") + config.writeReference(nb, outputs,"RefEntropy") + +def logsumexpTest(config,nb): + inputs = [] + outputs = [] + vecDim = VECDIM[nb % len(VECDIM)] + dims=np.array([NBTESTS,vecDim]) + for _ in range(0,NBTESTS): + v = np.random.rand(vecDim) + v = v / np.sum(v) + e = scipy.special.logsumexp(v) + inputs += list(v) + outputs.append(e) + inputs = np.array(inputs) + outputs = np.array(outputs) + config.writeInput(nb, inputs,"Input") + config.writeInputS16(nb, dims,"Dims") + config.writeReference(nb, outputs,"RefLogSumExp") + +def klTest(config,nb): + inputsA = [] + inputsB = [] + outputs = [] + vecDim = VECDIM[nb % len(VECDIM)] + dims=np.array([NBTESTS,vecDim]) + for _ in range(0,NBTESTS): + va = np.random.rand(vecDim) + va = va / np.sum(va) + + vb = np.random.rand(vecDim) + vb = vb / np.sum(vb) + + e = scipy.stats.entropy(va,vb) + inputsA += list(va) + inputsB += list(vb) + outputs.append(e) + inputsA = np.array(inputsA) + inputsB = np.array(inputsB) + outputs = np.array(outputs) + config.writeInput(nb, inputsA,"InputA") + config.writeInput(nb, inputsB,"InputB") + config.writeInputS16(nb, dims,"Dims") + config.writeReference(nb, outputs,"RefKL") + +def logSumExpDotTest(config,nb): + inputsA = [] + inputsB = [] + outputs = [] + vecDim = VECDIM[nb % len(VECDIM)] + dims=np.array([NBTESTS,vecDim]) + for _ in range(0,NBTESTS): + va = np.random.rand(vecDim) + va = va / np.sum(va) + + vb = np.random.rand(vecDim) + vb = vb / np.sum(vb) + + d = 0.001 + # It is a proba so must be in [0,1] + # But restricted to ]d,1] so that the log exists + va = (1-d)*va + d + vb = (1-d)*vb + d + e = np.log(np.dot(va,vb)) + va = np.log(va) + vb = np.log(vb) + + inputsA += list(va) + inputsB += list(vb) + outputs.append(e) + inputsA = np.array(inputsA) + inputsB = np.array(inputsB) + outputs = np.array(outputs) + config.writeInput(nb, inputsA,"InputA") + config.writeInput(nb, inputsB,"InputB") + config.writeInputS16(nb, dims,"Dims") + config.writeReference(nb, outputs,"RefLogSumExpDot") + +def writeTests(config): + entropyTest(config,1) + logsumexpTest(config,2) + klTest(config,3) + logSumExpDotTest(config,4) + +PATTERNDIR = os.path.join("Patterns","DSP","Stats","Stats") +PARAMDIR = os.path.join("Parameters","DSP","Stats","Stats") + +configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32") + +writeTests(configf32) \ No newline at end of file diff --git a/Testing/PatternGeneration/Support.py b/Testing/PatternGeneration/Support.py new file mode 100755 index 00000000..9f92af09 --- /dev/null +++ b/Testing/PatternGeneration/Support.py @@ -0,0 +1,84 @@ +import os.path +import itertools +import Tools +import random +import numpy as np + +NBTESTSAMPLES = 10 + +# Nb vectors for barycenter +NBVECTORS = [4,10,16] + +VECDIM = [12,14,20] + +def genWsum(config,nb): + dims=[] + inputs=[] + weights=[] + output=[] + vecDim = VECDIM[nb % len(VECDIM)] + + dims.append(NBTESTSAMPLES) + dims.append(vecDim) + + for _ in range(0,NBTESTSAMPLES): + va = np.random.rand(vecDim) + vb = np.random.rand(vecDim) + e = np.sum(va.T * vb) / np.sum(vb) + inputs += list(va) + weights += list(vb) + output.append(e) + inputs=np.array(inputs) + weights=np.array(weights) + output=np.array(output) + config.writeInput(nb, inputs,"Inputs") + config.writeInputS16(nb, dims,"Dims") + config.writeInput(nb, weights,"Weights") + config.writeReference(nb, output,"Ref") + +def genBarycenter(config,nb): + dims=[] + inputs=[] + weights=[] + output=[] + vecDim = VECDIM[nb % len(VECDIM)] + nbVecs = NBVECTORS[nb % len(NBVECTORS)] + + dims.append(NBTESTSAMPLES) + dims.append(nbVecs) + dims.append(vecDim) + + for _ in range(0,NBTESTSAMPLES): + + vecs = [] + b = np.zeros(vecDim) + coefs = np.random.rand(nbVecs) + + for i in range(nbVecs): + va = np.random.rand(vecDim) + b += va * coefs[i] + vecs += list(va) + + b = b / np.sum(coefs) + + inputs += list(vecs) + weights += list(coefs) + output += list(b) + inputs=np.array(inputs) + weights=np.array(weights) + output=np.array(output) + config.writeInput(nb, inputs,"Inputs") + config.writeInputS16(nb, dims,"Dims") + config.writeInput(nb, weights,"Weights") + config.writeReference(nb, output,"Ref") + +def writeTests(config): + genBarycenter(config,1) + genWsum(config,2) + +PATTERNDIR = os.path.join("Patterns","DSP","Support","Support") +PARAMDIR = os.path.join("Parameters","DSP","Support","Support") + +configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32") + +writeTests(configf32) \ No newline at end of file diff --git a/Testing/Patterns/DSP/Stats/StatsF32/Dims1_s16.txt b/Testing/Patterns/DSP/Stats/StatsF32/Dims1_s16.txt new file mode 100755 index 00000000..b392894b --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/Dims1_s16.txt @@ -0,0 +1,6 @@ +H +2 +// 10 +0x000A +// 14 +0x000E diff --git a/Testing/Patterns/DSP/Stats/StatsF32/Dims2_s16.txt b/Testing/Patterns/DSP/Stats/StatsF32/Dims2_s16.txt new file mode 100755 index 00000000..19131a9f --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/Dims2_s16.txt @@ -0,0 +1,6 @@ +H +2 +// 10 +0x000A +// 20 +0x0014 diff --git a/Testing/Patterns/DSP/Stats/StatsF32/Dims3_s16.txt b/Testing/Patterns/DSP/Stats/StatsF32/Dims3_s16.txt new file mode 100755 index 00000000..0e09b8b4 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/Dims3_s16.txt @@ -0,0 +1,6 @@ +H +2 +// 10 +0x000A +// 12 +0x000C diff --git a/Testing/Patterns/DSP/Stats/StatsF32/Dims4_s16.txt b/Testing/Patterns/DSP/Stats/StatsF32/Dims4_s16.txt new file mode 100755 index 00000000..b392894b --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/Dims4_s16.txt @@ -0,0 +1,6 @@ +H +2 +// 10 +0x000A +// 14 +0x000E diff --git a/Testing/Patterns/DSP/Stats/StatsF32/Input1_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/Input1_f32.txt new file mode 100755 index 00000000..92dea2a3 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/Input1_f32.txt @@ -0,0 +1,282 @@ +W +140 +// 0.096126 +0x3dc4ddd0 +// 0.054879 +0x3d60c8d1 +// 0.035373 +0x3d10e2d3 +// 0.080156 +0x3da428ff +// 0.015274 +0x3c7a4135 +// 0.123553 +0x3dfd0939 +// 0.020653 +0x3ca9303a +// 0.101714 +0x3dd04f6e +// 0.040169 +0x3d24885b +// 0.138936 +0x3e0e4521 +// 0.129785 +0x3e04e66e +// 0.015031 +0x3c764619 +// 0.024280 +0x3cc6e608 +// 0.124071 +0x3dfe18f2 +// 0.015211 +0x3c793604 +// 0.077605 +0x3d9eef79 +// 0.093893 +0x3dc04ac8 +// 0.049594 +0x3d4b2324 +// 0.074563 +0x3d98b488 +// 0.069522 +0x3d8e6150 +// 0.108617 +0x3dde72c5 +// 0.119865 +0x3df57ba7 +// 0.051507 +0x3d52f88b +// 0.008593 +0x3c0cc915 +// 0.122105 +0x3dfa1248 +// 0.085292 +0x3daeadd3 +// 0.107960 +0x3ddd1a01 +// 0.015674 +0x3c806693 +// 0.161033 +0x3e24e5bf +// 0.002654 +0x3b2df0d7 +// 0.012806 +0x3c51d19c +// 0.014205 +0x3c68baac +// 0.164592 +0x3e288ad7 +// 0.068758 +0x3d8cd0d6 +// 0.110863 +0x3de30c30 +// 0.135928 +0x3e0b30c9 +// 0.011206 +0x3c379b4c +// 0.120655 +0x3df71a21 +// 0.010775 +0x3c3088b6 +// 0.062895 +0x3d80cf41 +// 0.062579 +0x3d802954 +// 0.061050 +0x3d7a0fed +// 0.031948 +0x3d02db7d +// 0.024362 +0x3cc79334 +// 0.101570 +0x3dd003c0 +// 0.103529 +0x3dd406de +// 0.090873 +0x3dba1bde +// 0.004786 +0x3b9cd3f3 +// 0.046927 +0x3d4036e2 +// 0.004842 +0x3b9eabbb +// 0.068125 +0x3d8b8542 +// 0.090070 +0x3db876c0 +// 0.126675 +0x3e01b719 +// 0.110761 +0x3de2d6c2 +// 0.103435 +0x3dd3d58c +// 0.092096 +0x3dbc9d0b +// 0.145594 +0x3e151688 +// 0.126616 +0x3e01a7b0 +// 0.024383 +0x3cc7be82 +// 0.015570 +0x3c7f194e +// 0.053057 +0x3d59522e +// 0.058314 +0x3d6eda75 +// 0.044683 +0x3d3705de +// 0.150977 +0x3e1a99c4 +// 0.107335 +0x3ddbd265 +// 0.172803 +0x3e30f326 +// 0.003024 +0x3b462896 +// 0.004310 +0x3b8d3e21 +// 0.003969 +0x3b820a96 +// 0.089366 +0x3db7057b +// 0.102876 +0x3dd2b07e +// 0.083029 +0x3daa0b3f +// 0.059170 +0x3d725c12 +// 0.016977 +0x3c8b1456 +// 0.146734 +0x3e164174 +// 0.015161 +0x3c7864b9 +// 0.082400 +0x3da8c178 +// 0.026597 +0x3cd9e1fd +// 0.036095 +0x3d13d7f2 +// 0.124590 +0x3dff28d1 +// 0.132641 +0x3e07d32c +// 0.128042 +0x3e031d85 +// 0.020782 +0x3caa3ee9 +// 0.024906 +0x3ccc0724 +// 0.055786 +0x3d64805a +// 0.039608 +0x3d223be6 +// 0.103623 +0x3dd4382c +// 0.024213 +0x3cc65ade +// 0.051646 +0x3d538b20 +// 0.094721 +0x3dc1fd45 +// 0.130185 +0x3e054f49 +// 0.065448 +0x3d860968 +// 0.099440 +0x3dcba70e +// 0.120493 +0x3df6c54b +// 0.074504 +0x3d9895c3 +// 0.044909 +0x3d37f2e2 +// 0.072976 +0x3d957479 +// 0.022446 +0x3cb7e0a3 +// 0.087826 +0x3db3de05 +// 0.070806 +0x3d9102ca +// 0.039142 +0x3d205330 +// 0.068876 +0x3d8d0efc +// 0.095886 +0x3dc45ff9 +// 0.046935 +0x3d403ecc +// 0.104755 +0x3dd689c1 +// 0.085944 +0x3db00346 +// 0.025268 +0x3cceffcb +// 0.051143 +0x3d517b83 +// 0.053822 +0x3d5c74eb +// 0.108343 +0x3ddde2fa +// 0.058181 +0x3d6e4f44 +// 0.103072 +0x3dd31772 +// 0.121733 +0x3df94eef +// 0.097422 +0x3dc784fb +// 0.048325 +0x3d45f022 +// 0.021655 +0x3cb165fd +// 0.043063 +0x3d306264 +// 0.074061 +0x3d97ad50 +// 0.117680 +0x3df10229 +// 0.114582 +0x3deaa9d9 +// 0.122754 +0x3dfb6661 +// 0.060175 +0x3d7679b7 +// 0.049308 +0x3d49f78d +// 0.119300 +0x3df453b6 +// 0.003159 +0x3b4f03c2 +// 0.006785 +0x3bde52a3 +// 0.117153 +0x3defee00 +// 0.019708 +0x3ca171c9 +// 0.082308 +0x3da8914b +// 0.061496 +0x3d7be378 +// 0.039050 +0x3d1ff2f3 +// 0.036299 +0x3d14ae53 +// 0.104578 +0x3dd62cfa +// 0.038682 +0x3d1e70e8 +// 0.002466 +0x3b219720 +// 0.146722 +0x3e163e5b +// 0.076524 +0x3d9cb864 +// 0.060454 +0x3d779e40 +// 0.101473 +0x3dcfd10e +// 0.113088 +0x3de79a73 diff --git a/Testing/Patterns/DSP/Stats/StatsF32/Input2_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/Input2_f32.txt new file mode 100755 index 00000000..0ccba921 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/Input2_f32.txt @@ -0,0 +1,402 @@ +W +200 +// 0.056235 +0x3d66572c +// 0.077805 +0x3d9f5833 +// 0.043943 +0x3d33fd8f +// 0.063779 +0x3d829e5c +// 0.064986 +0x3d851773 +// 0.054177 +0x3d5de8d5 +// 0.037718 +0x3d1a7ea1 +// 0.060158 +0x3d7667c4 +// 0.086482 +0x3db11d8a +// 0.082833 +0x3da9a440 +// 0.050966 +0x3d50c1f6 +// 0.005996 +0x3bc47d21 +// 0.087289 +0x3db2c47c +// 0.016967 +0x3c8aff60 +// 0.014258 +0x3c699986 +// 0.026259 +0x3cd71c4d +// 0.077756 +0x3d9f3eb9 +// 0.018830 +0x3c9a4143 +// 0.008146 +0x3c05756c +// 0.065417 +0x3d85f91d +// 0.017280 +0x3c8d8f86 +// 0.006173 +0x3bca442f +// 0.031528 +0x3d0123fb +// 0.045332 +0x3d39ada6 +// 0.060593 +0x3d782fef +// 0.012308 +0x3c49a7dc +// 0.059121 +0x3d72295e +// 0.070851 +0x3d911a18 +// 0.084293 +0x3daca201 +// 0.101793 +0x3dd078a1 +// 0.038845 +0x3d1f1be0 +// 0.063282 +0x3d819a1c +// 0.013683 +0x3c603040 +// 0.061395 +0x3d7b7990 +// 0.049085 +0x3d490ce0 +// 0.074528 +0x3d98a234 +// 0.053696 +0x3d5bf0af +// 0.083965 +0x3dabf60c +// 0.014367 +0x3c6b6278 +// 0.057881 +0x3d6d14f9 +// 0.075077 +0x3d99c22b +// 0.063741 +0x3d828ac9 +// 0.006331 +0x3bcf70fc +// 0.062521 +0x3d800ad1 +// 0.014482 +0x3c6d47e5 +// 0.000047 +0x38464452 +// 0.081241 +0x3da66174 +// 0.021053 +0x3cac77f4 +// 0.026764 +0x3cdb4023 +// 0.116510 +0x3dee9c96 +// 0.013493 +0x3c5d10e5 +// 0.089995 +0x3db84f41 +// 0.000171 +0x3932fbe2 +// 0.086223 +0x3db09572 +// 0.106877 +0x3ddae292 +// 0.004089 +0x3b85fa3a +// 0.057155 +0x3d6a1b1c +// 0.111539 +0x3de46eaf +// 0.060647 +0x3d7868ea +// 0.002045 +0x3b060414 +// 0.060276 +0x3d76e424 +// 0.003055 +0x3b483ae7 +// 0.040906 +0x3d278d5c +// 0.061561 +0x3d7c27de +// 0.035198 +0x3d102bbc +// 0.069424 +0x3d8e2e1f +// 0.055495 +0x3d634e71 +// 0.060152 +0x3d7661c2 +// 0.059809 +0x3d74f9f8 +// 0.056055 +0x3d659a1e +// 0.056583 +0x3d67c319 +// 0.038416 +0x3d1d5a6d +// 0.038873 +0x3d1f39bc +// 0.051058 +0x3d5121fb +// 0.064343 +0x3d83c630 +// 0.045519 +0x3d3a71f1 +// 0.044943 +0x3d3815ad +// 0.061532 +0x3d7c088b +// 0.020923 +0x3cab678f +// 0.075879 +0x3d9b6692 +// 0.011548 +0x3c3d3392 +// 0.070785 +0x3d90f7d7 +// 0.054558 +0x3d5f77d9 +// 0.013389 +0x3c5b5bbc +// 0.014933 +0x3c74ab8e +// 0.015557 +0x3c7ee3ca +// 0.085977 +0x3db014d6 +// 0.051554 +0x3d5329da +// 0.090497 +0x3db9567a +// 0.034857 +0x3d0ec5e8 +// 0.067221 +0x3d89ab4d +// 0.094795 +0x3dc223f3 +// 0.050355 +0x3d4e409a +// 0.047586 +0x3d42e96c +// 0.048152 +0x3d453b73 +// 0.035092 +0x3d0fbc77 +// 0.032954 +0x3d06fadd +// 0.061213 +0x3d7aba1d +// 0.084998 +0x3dae134c +// 0.033980 +0x3d0b2e6a +// 0.038308 +0x3d1ce87d +// 0.037561 +0x3d19d98c +// 0.018229 +0x3c955521 +// 0.050508 +0x3d4ee1e7 +// 0.080445 +0x3da4c042 +// 0.081487 +0x3da6e2ad +// 0.006107 +0x3bc81974 +// 0.051214 +0x3d51c5ff +// 0.098546 +0x3dc9d293 +// 0.095200 +0x3dc2f864 +// 0.081929 +0x3da7ca61 +// 0.028955 +0x3ced33e2 +// 0.045321 +0x3d39a24d +// 0.034107 +0x3d0bb37d +// 0.035228 +0x3d104b96 +// 0.013547 +0x3c5df3d7 +// 0.030927 +0x3cfd5af4 +// 0.078610 +0x3da0fe78 +// 0.073860 +0x3d9743a9 +// 0.019911 +0x3ca31b7c +// 0.042311 +0x3d2d4e09 +// 0.019992 +0x3ca3c590 +// 0.061218 +0x3d7ac03d +// 0.067824 +0x3d8ae749 +// 0.056913 +0x3d691d90 +// 0.033024 +0x3d0744b1 +// 0.013628 +0x3c5f48e1 +// 0.011932 +0x3c437fc1 +// 0.020891 +0x3cab22c3 +// 0.081911 +0x3da7c0fe +// 0.081018 +0x3da5ec91 +// 0.036514 +0x3d159006 +// 0.067579 +0x3d8a66dc +// 0.025495 +0x3cd0db37 +// 0.081557 +0x3da70744 +// 0.050548 +0x3d4f0bad +// 0.054135 +0x3d5dbd04 +// 0.064251 +0x3d83962e +// 0.049079 +0x3d490732 +// 0.080179 +0x3da434aa +// 0.017069 +0x3c8bd443 +// 0.032430 +0x3d04d4ee +// 0.040662 +0x3d268cd9 +// 0.003388 +0x3b5e07db +// 0.047310 +0x3d41c7dd +// 0.027722 +0x3ce31980 +// 0.074089 +0x3d97bc1f +// 0.054994 +0x3d614168 +// 0.096348 +0x3dc55252 +// 0.064836 +0x3d84c8fd +// 0.015399 +0x3c7c4d7b +// 0.072098 +0x3d93a81f +// 0.058293 +0x3d6ec516 +// 0.037538 +0x3d19c0fb +// 0.059715 +0x3d749806 +// 0.063750 +0x3d828f81 +// 0.018897 +0x3c9ace2b +// 0.067245 +0x3d89b7d6 +// 0.052338 +0x3d566066 +// 0.095878 +0x3dc45b6d +// 0.055513 +0x3d63620e +// 0.063981 +0x3d8308b2 +// 0.045226 +0x3d393ea6 +// 0.073588 +0x3d96b511 +// 0.037877 +0x3d1b2473 +// 0.082377 +0x3da8b57c +// 0.087027 +0x3db23b4a +// 0.008888 +0x3c119e14 +// 0.086347 +0x3db0d6c6 +// 0.064021 +0x3d831d65 +// 0.067012 +0x3d893d95 +// 0.019129 +0x3c9cb3f2 +// 0.033592 +0x3d0997b0 +// 0.018059 +0x3c93ef83 +// 0.028626 +0x3cea8107 +// 0.075945 +0x3d9b8944 +// 0.076121 +0x3d9be56e +// 0.000857 +0x3a60a1c1 +// 0.069906 +0x3d8f2aad +// 0.005909 +0x3bc19c70 +// 0.092776 +0x3dbe016e +// 0.040213 +0x3d24b6c8 +// 0.021631 +0x3cb13284 +// 0.093571 +0x3dbfa23a +// 0.023001 +0x3cbc6d0b +// 0.074200 +0x3d97f63e +// 0.061399 +0x3d7b7df3 +// 0.055935 +0x3d651c2f +// 0.044264 +0x3d354ddd +// 0.030839 +0x3cfca237 +// 0.010192 +0x3c26fd09 +// 0.094557 +0x3dc1a758 +// 0.054240 +0x3d5e2b02 +// 0.035270 +0x3d1077af +// 0.080850 +0x3da594ad +// 0.044644 +0x3d36dc90 +// 0.027236 +0x3cdf1cff +// 0.044468 +0x3d3623b0 +// 0.001583 +0x3acf71c8 +// 0.069130 +0x3d8d9421 diff --git a/Testing/Patterns/DSP/Stats/StatsF32/InputA3_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/InputA3_f32.txt new file mode 100755 index 00000000..ede00b8c --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/InputA3_f32.txt @@ -0,0 +1,242 @@ +W +120 +// 0.006047 +0x3bc628bc +// 0.126348 +0x3e01615a +// 0.132721 +0x3e07e81b +// 0.079188 +0x3da22d7c +// 0.052569 +0x3d575298 +// 0.053801 +0x3d5c5df9 +// 0.111303 +0x3de3f2bd +// 0.036834 +0x3d16df24 +// 0.145668 +0x3e152a00 +// 0.031233 +0x3cffdce9 +// 0.131107 +0x3e0640c9 +// 0.093181 +0x3dbed5ab +// 0.091800 +0x3dbc019a +// 0.167721 +0x3e2bbf04 +// 0.085843 +0x3dafce3b +// 0.058460 +0x3d6f73af +// 0.144506 +0x3e13f96c +// 0.029775 +0x3cf3eaaf +// 0.020261 +0x3ca5f9d1 +// 0.001844 +0x3af1a775 +// 0.073163 +0x3d95d66e +// 0.179610 +0x3e37eba3 +// 0.007988 +0x3c02dfb6 +// 0.139031 +0x3e0e5e06 +// 0.106405 +0x3dd9eaa2 +// 0.000267 +0x398bd62b +// 0.098791 +0x3dca52bc +// 0.118489 +0x3df2aa84 +// 0.022028 +0x3cb473f4 +// 0.060337 +0x3d77241c +// 0.056541 +0x3d6797b3 +// 0.036456 +0x3d1552fb +// 0.147647 +0x3e1730cc +// 0.156344 +0x3e2018b2 +// 0.123088 +0x3dfc155e +// 0.073608 +0x3d96bf8c +// 0.012738 +0x3c50b3c7 +// 0.127402 +0x3e0275c6 +// 0.019504 +0x3c9fc654 +// 0.202326 +0x3e4f2e8f +// 0.024988 +0x3cccb3af +// 0.183719 +0x3e3c20b9 +// 0.179076 +0x3e375f97 +// 0.138144 +0x3e0d75a8 +// 0.010974 +0x3c33caea +// 0.084679 +0x3dad6bf1 +// 0.007287 +0x3beec8c1 +// 0.009164 +0x3c162495 +// 0.019588 +0x3ca076e6 +// 0.071888 +0x3d9339f6 +// 0.103017 +0x3dd2fa67 +// 0.052992 +0x3d590e5d +// 0.062562 +0x3d8020be +// 0.032107 +0x3d0382bb +// 0.122831 +0x3dfb8eb7 +// 0.123690 +0x3dfd511f +// 0.146890 +0x3e166a73 +// 0.003692 +0x3b71f9b4 +// 0.034373 +0x3d0ccae1 +// 0.226369 +0x3e67cd53 +// 0.055306 +0x3d62882b +// 0.111249 +0x3de3d67e +// 0.114484 +0x3dea7688 +// 0.043314 +0x3d3169ad +// 0.081992 +0x3da7eb7f +// 0.028787 +0x3cebd2b2 +// 0.137284 +0x3e0c941c +// 0.101281 +0x3dcf6c63 +// 0.153498 +0x3e1d2e77 +// 0.006570 +0x3bd74669 +// 0.063099 +0x3d8139dc +// 0.103138 +0x3dd33a17 +// 0.070770 +0x3d90f00b +// 0.138918 +0x3e0e4075 +// 0.026604 +0x3cd9efa8 +// 0.073999 +0x3d978ce7 +// 0.044662 +0x3d36ef23 +// 0.010329 +0x3c293b9d +// 0.154825 +0x3e1e8a61 +// 0.108104 +0x3ddd65be +// 0.172945 +0x3e31189b +// 0.131701 +0x3e06dc8f +// 0.018779 +0x3c99d6c5 +// 0.048364 +0x3d461960 +// 0.004625 +0x3b9790d5 +// 0.017069 +0x3c8bd34c +// 0.052701 +0x3d57dd21 +// 0.174354 +0x3e3289cd +// 0.012914 +0x3c539477 +// 0.067136 +0x3d897ec8 +// 0.106958 +0x3ddb0cf0 +// 0.111712 +0x3de4c94f +// 0.107299 +0x3ddbbf6a +// 0.108561 +0x3dde5535 +// 0.125588 +0x3e009a1d +// 0.111083 +0x3de37f86 +// 0.119331 +0x3df46406 +// 0.032154 +0x3d03b40b +// 0.122062 +0x3df9fbcb +// 0.136589 +0x3e0bddeb +// 0.034387 +0x3d0cd9a8 +// 0.021967 +0x3cb3f40a +// 0.131967 +0x3e07227a +// 0.082378 +0x3da8b5ab +// 0.125468 +0x3e007a9e +// 0.013779 +0x3c61c0f3 +// 0.086054 +0x3db03d01 +// 0.093864 +0x3dc03b84 +// 0.155477 +0x3e1f355a +// 0.131485 +0x3e06a3e2 +// 0.102287 +0x3dd17ba6 +// 0.061280 +0x3d7b0122 +// 0.104429 +0x3dd5dea7 +// 0.014807 +0x3c729aae +// 0.022420 +0x3cb7aacd +// 0.093206 +0x3dbee2b8 +// 0.037411 +0x3d193bf3 +// 0.138661 +0x3e0dfd3a +// 0.109075 +0x3ddf6291 +// 0.029463 +0x3cf15baf diff --git a/Testing/Patterns/DSP/Stats/StatsF32/InputA4_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/InputA4_f32.txt new file mode 100755 index 00000000..418ddd55 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/InputA4_f32.txt @@ -0,0 +1,282 @@ +W +140 +// -2.937437 +0xc03bfef9 +// -2.319812 +0xc01477cb +// -2.122321 +0xc007d41b +// -2.132953 +0xc008824d +// -3.902897 +0xc079c912 +// -2.485666 +0xc01f1525 +// -4.837458 +0xc09acc75 +// -2.200258 +0xc00cd109 +// -2.456678 +0xc01d3a37 +// -3.386361 +0xc058ba22 +// -2.968888 +0xc03e0244 +// -4.159550 +0xc0851b08 +// -2.225123 +0xc00e686c +// -2.237442 +0xc00f323e +// -3.657517 +0xc06a14c3 +// -2.159819 +0xc00a3a79 +// -2.212901 +0xc00da02b +// -4.361059 +0xc08b8dcb +// -2.275099 +0xc0119b3b +// -2.597107 +0xc02636ff +// -2.722921 +0xc02e4457 +// -2.461961 +0xc01d90c4 +// -3.440021 +0xc05c294c +// -2.342257 +0xc015e78a +// -3.155328 +0xc049f0e6 +// -2.345418 +0xc0161b54 +// -2.688389 +0xc02c0e8f +// -2.443140 +0xc01c5c67 +// -2.237181 +0xc00f2df7 +// -3.140883 +0xc049043a +// -2.614217 +0xc0274f56 +// -2.262157 +0xc010c72d +// -2.193239 +0xc00c5e06 +// -2.168818 +0xc00acdea +// -2.639748 +0xc028f1a2 +// -2.848019 +0xc03645f0 +// -2.765049 +0xc030f68f +// -2.451468 +0xc01ce4d8 +// -2.340835 +0xc015d03d +// -4.669080 +0xc095691a +// -2.642343 +0xc0291c25 +// -5.408748 +0xc0ad1477 +// -2.177459 +0xc00b5b7d +// -4.037190 +0xc08130a9 +// -2.304983 +0xc01384d8 +// -2.407948 +0xc01a1bd2 +// -2.709700 +0xc02d6bb8 +// -2.814918 +0xc03427a0 +// -2.310880 +0xc013e577 +// -3.337622 +0xc0559b99 +// -2.731337 +0xc02ece38 +// -3.139665 +0xc048f046 +// -3.555456 +0xc0638c96 +// -2.414098 +0xc01a8094 +// -2.219262 +0xc00e0863 +// -2.343753 +0xc016000b +// -3.213300 +0xc04da6b4 +// -1.912427 +0xbff4ca68 +// -3.482994 +0xc05ee960 +// -2.939992 +0xc03c28d3 +// -1.809478 +0xbfe79cfb +// -3.655081 +0xc069ecda +// -4.050159 +0xc0819ae7 +// -1.694885 +0xbfd8f1fe +// -3.928383 +0xc07b6aa0 +// -2.764698 +0xc030f0d0 +// -1.816547 +0xbfe8849b +// -3.480855 +0xc05ec655 +// -2.743057 +0xc02f8e3e +// -4.563702 +0xc09209d9 +// -2.808479 +0xc033be20 +// -2.783835 +0xc0322a5a +// -2.732837 +0xc02ee6cc +// -2.400041 +0xc0199a44 +// -4.563638 +0xc0920953 +// -1.775404 +0xbfe34074 +// -2.062098 +0xc003f96b +// -2.370733 +0xc017ba17 +// -3.405902 +0xc059fa4d +// -2.032680 +0xc002176d +// -3.162956 +0xc04a6de0 +// -3.425999 +0xc05b4393 +// -2.642872 +0xc02924cf +// -3.705794 +0xc06d2bbb +// -5.242547 +0xc0a7c2f3 +// -2.154788 +0xc009e80c +// -2.468035 +0xc01df44a +// -2.349867 +0xc0166437 +// -2.247067 +0xc00fcff1 +// -2.493350 +0xc01f930b +// -2.635539 +0xc028acac +// -3.137631 +0xc048cef1 +// -3.559765 +0xc063d32f +// -2.133347 +0xc00888c2 +// -2.899370 +0xc0398f45 +// -2.939320 +0xc03c1dd4 +// -2.655540 +0xc029f45d +// -2.487244 +0xc01f2f00 +// -2.315065 +0xc0142a08 +// -2.705430 +0xc02d25c5 +// -2.427825 +0xc01b617d +// -2.094550 +0xc0060d1b +// -2.815774 +0xc03435a5 +// -2.682923 +0xc02bb501 +// -2.298131 +0xc0131492 +// -4.220838 +0xc087111a +// -3.138187 +0xc048d80e +// -3.368468 +0xc05794fa +// -3.296028 +0xc052f21f +// -2.145281 +0xc0094c48 +// -1.969823 +0xbffc2328 +// -3.847174 +0xc0763818 +// -2.517131 +0xc02118ab +// -2.840606 +0xc035cc7f +// -3.264118 +0xc050e750 +// -4.499197 +0xc08ff96b +// -2.433933 +0xc01bc58e +// -2.641747 +0xc0291264 +// -2.178451 +0xc00b6bbd +// -4.503685 +0xc0901e30 +// -2.408603 +0xc01a268f +// -2.355837 +0xc016c607 +// -4.063132 +0xc082052c +// -2.087104 +0xc005931f +// -1.950742 +0xbff9b1e8 +// -2.614655 +0xc0275681 +// -2.652767 +0xc029c6ed +// -2.603648 +0xc026a22c +// -6.083038 +0xc0c2a83f +// -3.105599 +0xc046c223 +// -4.137948 +0xc0846a12 +// -2.020449 +0xc0014f07 +// -1.941666 +0xbff88882 +// -2.259635 +0xc0109ddd +// -3.241031 +0xc04f6d0d +// -2.669383 +0xc02ad72b +// -2.728630 +0xc02ea1e0 +// -2.028120 +0xc001ccba +// -3.992279 +0xc07f817e +// -2.289771 +0xc0128b9b diff --git a/Testing/Patterns/DSP/Stats/StatsF32/InputB3_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/InputB3_f32.txt new file mode 100755 index 00000000..fe5fdf12 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/InputB3_f32.txt @@ -0,0 +1,242 @@ +W +120 +// 0.044983 +0x3d384090 +// 0.063204 +0x3d817126 +// 0.014184 +0x3c68646a +// 0.119876 +0x3df5815b +// 0.202342 +0x3e4f32d3 +// 0.145255 +0x3e14bdbf +// 0.029081 +0x3cee3abb +// 0.175435 +0x3e33a51e +// 0.073557 +0x3d96a4fa +// 0.102909 +0x3dd2c21a +// 0.003713 +0x3b7359dd +// 0.025461 +0x3cd092d9 +// 0.027952 +0x3ce4fc04 +// 0.121727 +0x3df94bf7 +// 0.150883 +0x3e1a810a +// 0.137462 +0x3e0cc2e5 +// 0.177950 +0x3e363893 +// 0.025627 +0x3cd1eec3 +// 0.057045 +0x3d69a84b +// 0.028221 +0x3ce72fc6 +// 0.050590 +0x3d4f37a3 +// 0.035918 +0x3d131ea9 +// 0.118421 +0x3df286f7 +// 0.068203 +0x3d8bae1d +// 0.031919 +0x3d02bd42 +// 0.051377 +0x3d5270f2 +// 0.095771 +0x3dc4235d +// 0.112689 +0x3de6c972 +// 0.124770 +0x3dff876b +// 0.129501 +0x3e049bfb +// 0.061095 +0x3d7a3f14 +// 0.109398 +0x3de00c11 +// 0.060844 +0x3d793729 +// 0.109745 +0x3de0c21d +// 0.102047 +0x3dd0fdf0 +// 0.010844 +0x3c31abc7 +// 0.025053 +0x3ccd3c7a +// 0.104917 +0x3dd6de92 +// 0.101331 +0x3dcf86bb +// 0.066291 +0x3d87c37f +// 0.109169 +0x3ddf9419 +// 0.107543 +0x3ddc3fc2 +// 0.027078 +0x3cddd245 +// 0.030607 +0x3cfabc0a +// 0.074828 +0x3d993f39 +// 0.206119 +0x3e5310d4 +// 0.037497 +0x3d1996b2 +// 0.109567 +0x3de0646f +// 0.179149 +0x3e3772d6 +// 0.102167 +0x3dd13ce3 +// 0.081166 +0x3da63a5e +// 0.015204 +0x3c791a5c +// 0.180793 +0x3e3921db +// 0.042993 +0x3d3019e2 +// 0.032140 +0x3d03a551 +// 0.042215 +0x3d2ce9b6 +// 0.066584 +0x3d885d27 +// 0.079089 +0x3da1f99d +// 0.019153 +0x3c9ce730 +// 0.159346 +0x3e232b87 +// 0.096565 +0x3dc5c41d +// 0.081082 +0x3da60e67 +// 0.147438 +0x3e16f9f4 +// 0.078555 +0x3da0e1a0 +// 0.077076 +0x3d9dd9fc +// 0.015722 +0x3c80cafb +// 0.165153 +0x3e291dcd +// 0.093546 +0x3dbf94cd +// 0.034683 +0x3d0e0f9e +// 0.055575 +0x3d63a319 +// 0.023973 +0x3cc463b2 +// 0.130632 +0x3e05c445 +// 0.020764 +0x3caa1a04 +// 0.103480 +0x3dd3ed5b +// 0.138688 +0x3e0e0446 +// 0.098501 +0x3dc9bae5 +// 0.024754 +0x3ccac9eb +// 0.090573 +0x3db97e34 +// 0.153524 +0x3e1d3568 +// 0.099521 +0x3dcbd17a +// 0.012342 +0x3c4a3526 +// 0.061270 +0x3d7af6a9 +// 0.042894 +0x3d2fb16c +// 0.153689 +0x3e1d6085 +// 0.022284 +0x3cb68ce3 +// 0.003680 +0x3b71257c +// 0.004948 +0x3ba22640 +// 0.082520 +0x3da90018 +// 0.060753 +0x3d78d882 +// 0.146602 +0x3e161ec3 +// 0.161830 +0x3e25b6dc +// 0.001966 +0x3b00d470 +// 0.130081 +0x3e0533f4 +// 0.194115 +0x3e46c607 +// 0.146537 +0x3e160dab +// 0.044685 +0x3d370763 +// 0.126425 +0x3e017593 +// 0.001232 +0x3aa180bf +// 0.069823 +0x3d8eff7e +// 0.078981 +0x3da1c0e7 +// 0.139521 +0x3e0ede8e +// 0.128575 +0x3e03a929 +// 0.119353 +0x3df46f48 +// 0.086768 +0x3db1b384 +// 0.070929 +0x3d91436c +// 0.003132 +0x3b4d3c69 +// 0.035408 +0x3d110872 +// 0.139852 +0x3e0f3558 +// 0.058214 +0x3d6e715e +// 0.113633 +0x3de8b830 +// 0.128412 +0x3e037e4e +// 0.088403 +0x3db50cb1 +// 0.035593 +0x3d11c99e +// 0.108979 +0x3ddf3058 +// 0.079775 +0x3da360de +// 0.064459 +0x3d840350 +// 0.052166 +0x3d55ac70 +// 0.087890 +0x3db3ffa7 +// 0.107610 +0x3ddc62b1 +// 0.074867 +0x3d9953ed diff --git a/Testing/Patterns/DSP/Stats/StatsF32/InputB4_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/InputB4_f32.txt new file mode 100755 index 00000000..7ed2e75d --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/InputB4_f32.txt @@ -0,0 +1,282 @@ +W +140 +// -4.880571 +0xc09c2da4 +// -2.310025 +0xc013d775 +// -4.722834 +0xc0972175 +// -2.375864 +0xc0180e29 +// -2.499043 +0xc01ff051 +// -2.617184 +0xc0277ff3 +// -2.500725 +0xc0200bdf +// -3.125170 +0xc04802ca +// -2.044707 +0xc002dc79 +// -2.245046 +0xc00faed7 +// -3.789078 +0xc0728042 +// -2.422561 +0xc01b0b3f +// -2.542340 +0xc022b5b4 +// -2.324173 +0xc014bf3f +// -4.319170 +0xc08a36a5 +// -2.162495 +0xc00a6653 +// -2.362773 +0xc01737ae +// -2.666671 +0xc02aaabd +// -4.811499 +0xc099f7cd +// -2.457236 +0xc01d435c +// -2.344153 +0xc016069c +// -4.008705 +0xc0804750 +// -2.106636 +0xc006d322 +// -2.220302 +0xc00e196f +// -4.220413 +0xc0870d9f +// -4.033934 +0xc08115fc +// -2.067383 +0xc0045003 +// -2.087627 +0xc0059baf +// -2.514702 +0xc020f0df +// -2.498742 +0xc01feb64 +// -3.535087 +0xc0623edc +// -2.905015 +0xc039ebc2 +// -2.178259 +0xc00b689b +// -2.434247 +0xc01bcab4 +// -3.826071 +0xc074de5b +// -2.162461 +0xc00a65c1 +// -2.644227 +0xc0293b02 +// -2.566446 +0xc02440a5 +// -6.060368 +0xc0c1ee89 +// -1.916264 +0xbff54823 +// -2.803304 +0xc0336954 +// -2.654779 +0xc029e7e7 +// -2.335184 +0xc01573a9 +// -2.341243 +0xc015d6eb +// -3.759905 +0xc070a249 +// -2.242762 +0xc00f8968 +// -2.621021 +0xc027becd +// -2.491564 +0xc01f75c9 +// -2.746422 +0xc02fc562 +// -4.311164 +0xc089f50e +// -2.260324 +0xc010a927 +// -2.347152 +0xc01637be +// -2.541638 +0xc022aa32 +// -3.833711 +0xc0755b85 +// -2.269105 +0xc0113903 +// -2.923681 +0xc03b1d98 +// -2.488858 +0xc01f4971 +// -3.593271 +0xc065f828 +// -3.544676 +0xc062dbf7 +// -5.131858 +0xc0a4382e +// -3.911178 +0xc07a50bd +// -2.151457 +0xc009b17b +// -2.580359 +0xc025249a +// -2.104187 +0xc006aaff +// -2.370529 +0xc017b6be +// -2.044771 +0xc002dd86 +// -2.300521 +0xc0133bbe +// -2.801055 +0xc033447e +// -3.684200 +0xc06bc9ee +// -2.081287 +0xc00533ce +// -3.916425 +0xc07aa6b5 +// -2.163027 +0xc00a6f09 +// -3.035936 +0xc0424cc6 +// -3.616765 +0xc0677914 +// -3.256338 +0xc05067d7 +// -2.049571 +0xc0032c2a +// -2.793543 +0xc032c967 +// -2.093242 +0xc005f7af +// -2.377697 +0xc0182c2e +// -2.534072 +0xc0222e3d +// -3.141081 +0xc0490779 +// -3.026531 +0xc041b2ae +// -2.539031 +0xc0227f7d +// -2.219713 +0xc00e0fc9 +// -2.519878 +0xc02145ae +// -2.222879 +0xc00e43a5 +// -3.318352 +0xc0545fe0 +// -6.141658 +0xc0c48877 +// -2.532739 +0xc0221866 +// -2.849836 +0xc03663b7 +// -2.203600 +0xc00d07c7 +// -2.386310 +0xc018b94d +// -2.907326 +0xc03a11a2 +// -2.721533 +0xc02e2d97 +// -2.622819 +0xc027dc42 +// -2.159328 +0xc00a326f +// -2.286669 +0xc01258c8 +// -3.318666 +0xc0546508 +// -3.334933 +0xc0556f8a +// -3.479360 +0xc05eadd6 +// -2.436450 +0xc01beecc +// -2.304555 +0xc0137dd5 +// -3.350386 +0xc0566cba +// -3.987784 +0xc07f37dc +// -2.255624 +0xc0105c25 +// -2.225388 +0xc00e6cc3 +// -2.499332 +0xc01ff50f +// -2.662503 +0xc02a6674 +// -2.355506 +0xc016c09e +// -2.669696 +0xc02adc4c +// -2.785439 +0xc03244a1 +// -2.161930 +0xc00a5d0e +// -2.800365 +0xc033392f +// -2.776937 +0xc031b954 +// -1.891957 +0xbff22ba3 +// -5.177098 +0xc0a5aaca +// -2.583016 +0xc0255023 +// -2.938910 +0xc03c171a +// -2.537616 +0xc022684b +// -5.884942 +0xc0bc5171 +// -2.104592 +0xc006b1a3 +// -3.753596 +0xc0703aea +// -2.346414 +0xc0162ba6 +// -2.309552 +0xc013cfb2 +// -2.469240 +0xc01e0807 +// -2.320116 +0xc0147cc8 +// -3.702086 +0xc06ceefa +// -2.564086 +0xc02419fe +// -2.339059 +0xc015b325 +// -2.062204 +0xc003fb27 +// -3.666694 +0xc06aab1e +// -2.273782 +0xc01185a4 +// -5.516875 +0xc0b08a3d +// -4.206650 +0xc0869ce0 +// -2.816358 +0xc0343f36 +// -2.399771 +0xc01995d9 +// -2.635137 +0xc028a616 +// -2.263880 +0xc010e367 +// -2.297445 +0xc0130959 +// -2.174929 +0xc00b3209 diff --git a/Testing/Patterns/DSP/Stats/StatsF32/RefEntropy1_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/RefEntropy1_f32.txt new file mode 100755 index 00000000..4288b227 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/RefEntropy1_f32.txt @@ -0,0 +1,22 @@ +W +10 +// 2.420426 +0x401ae842 +// 2.473287 +0x401e4a55 +// 2.294621 +0x4012db14 +// 2.440063 +0x401c29fe +// 2.265126 +0x4010f7d3 +// 2.407317 +0x401a117d +// 2.527646 +0x4021c4f2 +// 2.570614 +0x402484f0 +// 2.421607 +0x401afb9b +// 2.455924 +0x401d2ddb diff --git a/Testing/Patterns/DSP/Stats/StatsF32/RefKL3_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/RefKL3_f32.txt new file mode 100755 index 00000000..20e8384e --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/RefKL3_f32.txt @@ -0,0 +1,22 @@ +W +10 +// 0.957399 +0x3f751812 +// 0.406465 +0x3ed01c21 +// 0.357268 +0x3eb6ebe3 +// 0.686696 +0x3f2fcb50 +// 0.448469 +0x3ee59dc7 +// 0.205755 +0x3e52b16b +// 0.562704 +0x3f100d63 +// 0.606644 +0x3f1b4d00 +// 0.293960 +0x3e9681e7 +// 0.239745 +0x3e757fd5 diff --git a/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExp1_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExp1_f32.txt new file mode 100755 index 00000000..a240bec1 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExp1_f32.txt @@ -0,0 +1,22 @@ +W +10 +// 2.711102 +0x402d82b0 +// 2.711427 +0x402d8804 +// 2.711261 +0x402d854c +// 2.711538 +0x402d89d8 +// 2.711763 +0x402d8d88 +// 2.711499 +0x402d8935 +// 2.710971 +0x402d808c +// 2.711208 +0x402d8470 +// 2.711304 +0x402d8602 +// 2.711338 +0x402d8691 diff --git a/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExp2_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExp2_f32.txt new file mode 100755 index 00000000..1b54d8b9 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExp2_f32.txt @@ -0,0 +1,22 @@ +W +10 +// 3.046080 +0x4042f2f9 +// 3.046085 +0x4042f30e +// 3.046527 +0x4042fa4e +// 3.045871 +0x4042ef8e +// 3.046065 +0x4042f2ba +// 3.046120 +0x4042f3a3 +// 3.045996 +0x4042f199 +// 3.046050 +0x4042f27b +// 3.046123 +0x4042f3ae +// 3.046097 +0x4042f33f diff --git a/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExpDot4_f32.txt b/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExpDot4_f32.txt new file mode 100755 index 00000000..220bee18 --- /dev/null +++ b/Testing/Patterns/DSP/Stats/StatsF32/RefLogSumExpDot4_f32.txt @@ -0,0 +1,22 @@ +W +10 +// -2.635825 +0xc028b15a +// -2.578362 +0xc02503e3 +// -2.684868 +0xc02bd4e2 +// -2.621420 +0xc027c558 +// -2.664016 +0xc02a7f3f +// -2.518862 +0xc0213507 +// -2.646046 +0xc02958d1 +// -2.663388 +0xc02a74f1 +// -2.524261 +0xc0218d7f +// -2.660810 +0xc02a4ab5 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Dims1_s16.txt b/Testing/Patterns/DSP/Support/SupportF32/Dims1_s16.txt new file mode 100755 index 00000000..b1603c07 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Dims1_s16.txt @@ -0,0 +1,8 @@ +H +3 +// 10 +0x000A +// 10 +0x000A +// 14 +0x000E diff --git a/Testing/Patterns/DSP/Support/SupportF32/Dims2_s16.txt b/Testing/Patterns/DSP/Support/SupportF32/Dims2_s16.txt new file mode 100755 index 00000000..19131a9f --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Dims2_s16.txt @@ -0,0 +1,6 @@ +H +2 +// 10 +0x000A +// 20 +0x0014 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Inputs1_f32.txt b/Testing/Patterns/DSP/Support/SupportF32/Inputs1_f32.txt new file mode 100755 index 00000000..bfc2f440 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Inputs1_f32.txt @@ -0,0 +1,2802 @@ +W +1400 +// 0.317461 +0x3ea28a40 +// 0.625383 +0x3f201921 +// 0.601416 +0x3f19f666 +// 0.060345 +0x3d772c90 +// 0.699075 +0x3f32f69a +// 0.397543 +0x3ecb8abd +// 0.949150 +0x3f72fb7d +// 0.095883 +0x3dc45e43 +// 0.110862 +0x3de30b63 +// 0.350348 +0x3eb360db +// 0.231477 +0x3e6d085b +// 0.878557 +0x3f60e91b +// 0.430892 +0x3edc9de3 +// 0.845097 +0x3f585848 +// 0.579806 +0x3f146e29 +// 0.085579 +0x3daf43c8 +// 0.991642 +0x3f7ddc46 +// 0.558267 +0x3f0eea99 +// 0.149746 +0x3e1956ea +// 0.047470 +0x3d426fb6 +// 0.094174 +0x3dc0de0f +// 0.577571 +0x3f13dbac +// 0.175199 +0x3e33676d +// 0.963905 +0x3f76c273 +// 0.490986 +0x3efb627d +// 0.528702 +0x3f0758fe +// 0.164409 +0x3e285ae2 +// 0.050619 +0x3d4f5596 +// 0.781587 +0x3f481610 +// 0.406565 +0x3ed02954 +// 0.369026 +0x3ebcf108 +// 0.440448 +0x3ee1826c +// 0.267568 +0x3e88febb +// 0.932916 +0x3f6ed398 +// 0.908512 +0x3f68943f +// 0.585195 +0x3f15cf5b +// 0.710904 +0x3f35fdc6 +// 0.322858 +0x3ea54da4 +// 0.355254 +0x3eb5e3e7 +// 0.010976 +0x3c33d331 +// 0.095730 +0x3dc40df1 +// 0.591012 +0x3f174c8c +// 0.833057 +0x3f554336 +// 0.323620 +0x3ea5b188 +// 0.485973 +0x3ef8d166 +// 0.142642 +0x3e1210ce +// 0.387524 +0x3ec66986 +// 0.816097 +0x3f50ebbf +// 0.320632 +0x3ea429de +// 0.625093 +0x3f200616 +// 0.755809 +0x3f417cba +// 0.774587 +0x3f464b52 +// 0.204947 +0x3e51dd8a +// 0.289116 +0x3e9406f8 +// 0.346337 +0x3eb15312 +// 0.283665 +0x3e913c90 +// 0.062351 +0x3d7f6395 +// 0.729912 +0x3f3adb83 +// 0.369011 +0x3ebceef8 +// 0.233753 +0x3e6f5d12 +// 0.779274 +0x3f477e87 +// 0.824368 +0x3f5309ca +// 0.028446 +0x3ce906a7 +// 0.082201 +0x3da8593d +// 0.397139 +0x3ecb55c7 +// 0.100650 +0x3dce2195 +// 0.907534 +0x3f68542c +// 0.039613 +0x3d224180 +// 0.475995 +0x3ef3b594 +// 0.363175 +0x3eb9f216 +// 0.427098 +0x3edaac8c +// 0.403263 +0x3ece788c +// 0.879284 +0x3f6118bb +// 0.799981 +0x3f4ccb91 +// 0.937845 +0x3f70169d +// 0.281955 +0x3e905c73 +// 0.403744 +0x3eceb790 +// 0.072670 +0x3d94d422 +// 0.682167 +0x3f2ea282 +// 0.215864 +0x3e5d0b7c +// 0.388448 +0x3ec6e2a4 +// 0.671405 +0x3f2be12b +// 0.757294 +0x3f41de02 +// 0.081427 +0x3da6c33f +// 0.112447 +0x3de64aa4 +// 0.337292 +0x3eacb18b +// 0.146698 +0x3e1637fc +// 0.168689 +0x3e2cbcb9 +// 0.567057 +0x3f112a9f +// 0.263826 +0x3e871433 +// 0.130168 +0x3e054ab4 +// 0.124290 +0x3dfe8bec +// 0.842455 +0x3f57ab24 +// 0.800048 +0x3f4ccff0 +// 0.021970 +0x3cb3f9c5 +// 0.100687 +0x3dce350d +// 0.913054 +0x3f69bde2 +// 0.957848 +0x3f75358b +// 0.573431 +0x3f12cc63 +// 0.852365 +0x3f5a3490 +// 0.821187 +0x3f523957 +// 0.054292 +0x3d5e6194 +// 0.340998 +0x3eae973d +// 0.017100 +0x3c8c1587 +// 0.403469 +0x3ece937e +// 0.584989 +0x3f15c1d6 +// 0.710778 +0x3f35f58a +// 0.957252 +0x3f750e76 +// 0.307368 +0x3e9d5f52 +// 0.744807 +0x3f3eabaa +// 0.696112 +0x3f323461 +// 0.288912 +0x3e93ec50 +// 0.066597 +0x3d8863ca +// 0.581290 +0x3f14cf69 +// 0.311815 +0x3e9fa638 +// 0.121430 +0x3df8b058 +// 0.980871 +0x3f7b1a57 +// 0.342195 +0x3eaf3429 +// 0.031294 +0x3d002e7a +// 0.310321 +0x3e9ee266 +// 0.779782 +0x3f479fd2 +// 0.472417 +0x3ef1e0af +// 0.626905 +0x3f207cdf +// 0.887091 +0x3f631861 +// 0.856723 +0x3f5b523a +// 0.342278 +0x3eaf3f21 +// 0.537597 +0x3f099ff9 +// 0.257965 +0x3e841402 +// 0.808984 +0x3f4f199b +// 0.455621 +0x3ee9472a +// 0.184624 +0x3e3d0e2a +// 0.107595 +0x3ddc5a9e +// 0.233148 +0x3e6ebe79 +// 0.452307 +0x3ee794d5 +// 0.266496 +0x3e88721d +// 0.597894 +0x3f190f93 +// 0.759631 +0x3f427730 +// 0.596370 +0x3f18abb0 +// 0.496020 +0x3efdf65c +// 0.151460 +0x3e1b1875 +// 0.507896 +0x3f020573 +// 0.836849 +0x3f563bc3 +// 0.874871 +0x3f5ff78d +// 0.540445 +0x3f0a5aa0 +// 0.283607 +0x3e9134eb +// 0.319901 +0x3ea3ca18 +// 0.689687 +0x3f308f53 +// 0.697039 +0x3f327120 +// 0.016492 +0x3c8719ed +// 0.533739 +0x3f08a322 +// 0.879915 +0x3f614219 +// 0.561600 +0x3f0fc50b +// 0.692952 +0x3f316553 +// 0.345170 +0x3eb0ba16 +// 0.760092 +0x3f429568 +// 0.560470 +0x3f0f7afe +// 0.481733 +0x3ef6a5af +// 0.831715 +0x3f54eb41 +// 0.330698 +0x3ea95143 +// 0.560647 +0x3f0f8689 +// 0.552892 +0x3f0d8a5c +// 0.775916 +0x3f46a276 +// 0.387529 +0x3ec66a3b +// 0.454204 +0x3ee88d79 +// 0.761764 +0x3f4302f7 +// 0.918857 +0x3f6b3a2e +// 0.713628 +0x3f36b04b +// 0.016955 +0x3c8ae51c +// 0.371426 +0x3ebe2b89 +// 0.998688 +0x3f7fa9fd +// 0.042136 +0x3d2c96c3 +// 0.223209 +0x3e6490f4 +// 0.743836 +0x3f3e6c07 +// 0.033756 +0x3d0a440d +// 0.399333 +0x3ecc7561 +// 0.922113 +0x3f6c0f9a +// 0.989638 +0x3f7d58e8 +// 0.887882 +0x3f634c3c +// 0.525064 +0x3f066aa0 +// 0.508073 +0x3f021111 +// 0.047062 +0x3d40c414 +// 0.335523 +0x3eabc9a7 +// 0.993199 +0x3f7e424e +// 0.021483 +0x3caffcd7 +// 0.571005 +0x3f122d61 +// 0.112433 +0x3de64346 +// 0.278517 +0x3e8e99ca +// 0.056898 +0x3d690d6d +// 0.416199 +0x3ed51811 +// 0.463664 +0x3eed6563 +// 0.596660 +0x3f18beb3 +// 0.867005 +0x3f5df411 +// 0.481081 +0x3ef6503a +// 0.919429 +0x3f6b5fb3 +// 0.654981 +0x3f27acd0 +// 0.397050 +0x3ecb4a17 +// 0.297949 +0x3e988cc4 +// 0.609121 +0x3f1bef60 +// 0.255624 +0x3e82e125 +// 0.447772 +0x3ee54264 +// 0.915732 +0x3f6a6d6d +// 0.663509 +0x3f29dbb2 +// 0.689684 +0x3f308f1e +// 0.780783 +0x3f47e16a +// 0.204106 +0x3e510112 +// 0.703434 +0x3f34143a +// 0.045668 +0x3d3b0e5a +// 0.201798 +0x3e4ea442 +// 0.996544 +0x3f7f1d7a +// 0.494009 +0x3efceecc +// 0.168188 +0x3e2c3984 +// 0.000759 +0x3a46eb3c +// 0.462428 +0x3eecc35e +// 0.446879 +0x3ee4cd46 +// 0.260884 +0x3e859291 +// 0.279861 +0x3e8f49ec +// 0.610750 +0x3f1c5a24 +// 0.003272 +0x3b567072 +// 0.247661 +0x3e7d9ab9 +// 0.222089 +0x3e636b60 +// 0.367189 +0x3ebc0042 +// 0.180066 +0x3e38632a +// 0.675394 +0x3f2ce6a7 +// 0.820011 +0x3f51ec38 +// 0.685635 +0x3f2f85c2 +// 0.735786 +0x3f3c5c81 +// 0.662787 +0x3f29ac67 +// 0.394977 +0x3eca3a79 +// 0.866487 +0x3f5dd213 +// 0.813941 +0x3f505e6b +// 0.850328 +0x3f59af14 +// 0.965767 +0x3f773c7d +// 0.854671 +0x3f5acbb1 +// 0.263793 +0x3e870fdc +// 0.232111 +0x3e6dae6b +// 0.977970 +0x3f7a5c44 +// 0.784807 +0x3f48e924 +// 0.007168 +0x3beae450 +// 0.832888 +0x3f55382e +// 0.052102 +0x3d556913 +// 0.007562 +0x3bf7ce5b +// 0.288103 +0x3e93823d +// 0.621015 +0x3f1efad5 +// 0.810244 +0x3f4f6c2f +// 0.695936 +0x3f3228d6 +// 0.151197 +0x3e1ad353 +// 0.719993 +0x3f38517d +// 0.838081 +0x3f568c7b +// 0.651362 +0x3f26bfa4 +// 0.757078 +0x3f41cfe2 +// 0.966827 +0x3f7781f5 +// 0.799263 +0x3f4c9c86 +// 0.118452 +0x3df29711 +// 0.320715 +0x3ea434bb +// 0.872430 +0x3f5f5794 +// 0.549255 +0x3f0c9bf9 +// 0.691955 +0x3f3123f2 +// 0.735567 +0x3f3c4e24 +// 0.070389 +0x3d90285d +// 0.701815 +0x3f33aa1f +// 0.142628 +0x3e120d19 +// 0.799883 +0x3f4cc528 +// 0.390472 +0x3ec7ebe2 +// 0.695166 +0x3f31f661 +// 0.160473 +0x3e2452f2 +// 0.186291 +0x3e3ec31a +// 0.563929 +0x3f105daa +// 0.359954 +0x3eb84bf1 +// 0.198083 +0x3e4ad658 +// 0.306871 +0x3e9d1e29 +// 0.604307 +0x3f1ab3dc +// 0.172886 +0x3e310917 +// 0.116025 +0x3ded9e5b +// 0.433932 +0x3ede2c4c +// 0.920829 +0x3f6bbb76 +// 0.822669 +0x3f529a71 +// 0.638891 +0x3f238e59 +// 0.305060 +0x3e9c30d3 +// 0.097861 +0x3dc86b96 +// 0.105268 +0x3dd796f3 +// 0.921667 +0x3f6bf257 +// 0.208107 +0x3e5519f2 +// 0.948927 +0x3f72ece2 +// 0.007508 +0x3bf6095e +// 0.745265 +0x3f3ec9ac +// 0.205344 +0x3e5245c9 +// 0.963601 +0x3f76ae8d +// 0.860607 +0x3f5c50b7 +// 0.620236 +0x3f1ec7ca +// 0.424224 +0x3ed933e0 +// 0.952132 +0x3f73bef0 +// 0.649901 +0x3f265fe9 +// 0.935640 +0x3f6f8614 +// 0.751676 +0x3f406dd2 +// 0.436594 +0x3edf893c +// 0.750362 +0x3f4017b5 +// 0.444713 +0x3ee3b179 +// 0.460337 +0x3eebb145 +// 0.805915 +0x3f4e5079 +// 0.371404 +0x3ebe28a1 +// 0.507086 +0x3f01d067 +// 0.098656 +0x3dca0c46 +// 0.976337 +0x3f79f133 +// 0.513002 +0x3f035417 +// 0.748826 +0x3f3fb308 +// 0.714480 +0x3f36e830 +// 0.242682 +0x3e7881bf +// 0.197765 +0x3e4a8300 +// 0.188083 +0x3e4098b3 +// 0.703304 +0x3f340bbc +// 0.752336 +0x3f40991e +// 0.705385 +0x3f34941f +// 0.215698 +0x3e5cdfff +// 0.314735 +0x3ea124f7 +// 0.665257 +0x3f2a4e47 +// 0.432893 +0x3edda434 +// 0.879467 +0x3f6124c4 +// 0.176937 +0x3e352ef2 +// 0.148276 +0x3e17d5bb +// 0.047180 +0x3d413fc8 +// 0.794045 +0x3f4b468d +// 0.600124 +0x3f19a1ba +// 0.499189 +0x3eff95ad +// 0.637943 +0x3f235041 +// 0.563474 +0x3f103fd8 +// 0.328277 +0x3ea813e5 +// 0.379845 +0x3ec27b1a +// 0.618912 +0x3f1e7105 +// 0.011377 +0x3c3a6895 +// 0.731052 +0x3f3b2635 +// 0.527234 +0x3f06f8d0 +// 0.078320 +0x3da06600 +// 0.057189 +0x3d6a3f13 +// 0.446212 +0x3ee475e9 +// 0.587405 +0x3f166034 +// 0.043257 +0x3d312e9e +// 0.968675 +0x3f77fb13 +// 0.908359 +0x3f688a33 +// 0.267873 +0x3e8926a8 +// 0.989519 +0x3f7d511c +// 0.264380 +0x3e875cc6 +// 0.051576 +0x3d534132 +// 0.588273 +0x3f16990c +// 0.060883 +0x3d796024 +// 0.057999 +0x3d6d9045 +// 0.965912 +0x3f774603 +// 0.865815 +0x3f5da60a +// 0.834050 +0x3f558449 +// 0.437292 +0x3edfe4c4 +// 0.465867 +0x3eee8615 +// 0.513724 +0x3f038366 +// 0.097949 +0x3dc8997c +// 0.700484 +0x3f3352e3 +// 0.827281 +0x3f53c8b1 +// 0.627865 +0x3f20bbc7 +// 0.615822 +0x3f1da681 +// 0.812519 +0x3f500145 +// 0.362890 +0x3eb9ccac +// 0.685646 +0x3f2f8684 +// 0.558394 +0x3f0ef2ee +// 0.063472 +0x3d81fd86 +// 0.436737 +0x3edf9c0c +// 0.114160 +0x3de9cce7 +// 0.582169 +0x3f15090a +// 0.350726 +0x3eb39250 +// 0.898893 +0x3f661ddd +// 0.953454 +0x3f74158f +// 0.635212 +0x3f229d40 +// 0.730065 +0x3f3ae587 +// 0.872001 +0x3f5f3b6f +// 0.126728 +0x3e01c51d +// 0.331678 +0x3ea9d1a7 +// 0.410145 +0x3ed1fe80 +// 0.925825 +0x3f6d02e5 +// 0.317227 +0x3ea26b8c +// 0.721629 +0x3f38bca9 +// 0.086316 +0x3db0c63b +// 0.394882 +0x3eca2e05 +// 0.408462 +0x3ed121df +// 0.269213 +0x3e89d655 +// 0.673079 +0x3f2c4eef +// 0.516944 +0x3f045670 +// 0.744785 +0x3f3eaa3c +// 0.931155 +0x3f6e6033 +// 0.812472 +0x3f4ffe2a +// 0.283114 +0x3e90f450 +// 0.170108 +0x3e2e30e5 +// 0.381255 +0x3ec333dc +// 0.005866 +0x3bc0354b +// 0.657775 +0x3f2863eb +// 0.799518 +0x3f4cad3e +// 0.248189 +0x3e7e2560 +// 0.487789 +0x3ef9bf7a +// 0.663550 +0x3f29de71 +// 0.010014 +0x3c241192 +// 0.971108 +0x3f789a85 +// 0.645289 +0x3f2531b0 +// 0.900176 +0x3f6671ea +// 0.748004 +0x3f3f7d36 +// 0.977564 +0x3f7a419b +// 0.443476 +0x3ee30f3e +// 0.879783 +0x3f61396e +// 0.607269 +0x3f1b75f6 +// 0.801004 +0x3f4d0ea1 +// 0.453311 +0x3ee81862 +// 0.009711 +0x3c1f1905 +// 0.836069 +0x3f560899 +// 0.824824 +0x3f5327a3 +// 0.969777 +0x3f784349 +// 0.391016 +0x3ec8333b +// 0.503511 +0x3f00e61a +// 0.006901 +0x3be224a4 +// 0.922143 +0x3f6c1193 +// 0.548642 +0x3f0c73ca +// 0.322926 +0x3ea55684 +// 0.015639 +0x3c801d81 +// 0.190264 +0x3e42d48b +// 0.462099 +0x3eec982f +// 0.636738 +0x3f230144 +// 0.046809 +0x3d3fbb39 +// 0.842446 +0x3f57aa89 +// 0.781996 +0x3f4830e6 +// 0.061186 +0x3d7a9e28 +// 0.162013 +0x3e25e6d7 +// 0.887680 +0x3f633f02 +// 0.030237 +0x3cf7b297 +// 0.497181 +0x3efe8e73 +// 0.693227 +0x3f317750 +// 0.192063 +0x3e44ac3a +// 0.392931 +0x3ec92e4f +// 0.351881 +0x3eb429b4 +// 0.884901 +0x3f6288dd +// 0.479299 +0x3ef566b6 +// 0.312500 +0x3ea00008 +// 0.005082 +0x3ba684ae +// 0.202389 +0x3e4f3f28 +// 0.179231 +0x3e378865 +// 0.112333 +0x3de60eb1 +// 0.992207 +0x3f7e0143 +// 0.633344 +0x3f2222d5 +// 0.735650 +0x3f3c5391 +// 0.548658 +0x3f0c74d4 +// 0.801018 +0x3f4d0f88 +// 0.940872 +0x3f70dd05 +// 0.292974 +0x3e9600ba +// 0.976935 +0x3f7a186f +// 0.387596 +0x3ec67307 +// 0.141753 +0x3e112798 +// 0.088233 +0x3db4b38b +// 0.699656 +0x3f331ca0 +// 0.670540 +0x3f2ba87f +// 0.408100 +0x3ed0f282 +// 0.812924 +0x3f501bc3 +// 0.063660 +0x3d82600e +// 0.172983 +0x3e312260 +// 0.601400 +0x3f19f562 +// 0.068540 +0x3d8c5ec1 +// 0.643875 +0x3f24d4fd +// 0.217468 +0x3e5eafde +// 0.887615 +0x3f633ac5 +// 0.344239 +0x3eb0400e +// 0.787583 +0x3f499f07 +// 0.375544 +0x3ec04753 +// 0.206583 +0x3e538a63 +// 0.597205 +0x3f18e26b +// 0.883830 +0x3f6242b3 +// 0.288020 +0x3e937760 +// 0.599461 +0x3f19764b +// 0.536120 +0x3f093f2f +// 0.211338 +0x3e586919 +// 0.635855 +0x3f22c766 +// 0.790559 +0x3f4a621a +// 0.833739 +0x3f556feb +// 0.635936 +0x3f22ccb5 +// 0.872304 +0x3f5f4f56 +// 0.823708 +0x3f52de8a +// 0.563559 +0x3f104568 +// 0.297389 +0x3e984357 +// 0.166330 +0x3e2a5279 +// 0.756079 +0x3f418e60 +// 0.662702 +0x3f29a6d9 +// 0.526669 +0x3f06d3c8 +// 0.598534 +0x3f193984 +// 0.169835 +0x3e2de924 +// 0.774947 +0x3f4662e7 +// 0.484257 +0x3ef7f093 +// 0.349879 +0x3eb3235c +// 0.332444 +0x3eaa361a +// 0.513462 +0x3f037237 +// 0.560002 +0x3f0f5c4a +// 0.701543 +0x3f33984e +// 0.598531 +0x3f193958 +// 0.446024 +0x3ee45d3f +// 0.360018 +0x3eb8544c +// 0.225221 +0x3e66a03b +// 0.293078 +0x3e960e45 +// 0.486412 +0x3ef90b0a +// 0.653374 +0x3f27438b +// 0.823332 +0x3f52c5e2 +// 0.416290 +0x3ed52407 +// 0.962644 +0x3f766fd2 +// 0.199322 +0x3e4c1b01 +// 0.414278 +0x3ed41c3d +// 0.345789 +0x3eb10b4c +// 0.679505 +0x3f2df403 +// 0.449278 +0x3ee607d2 +// 0.812434 +0x3f4ffbae +// 0.543841 +0x3f0b3929 +// 0.004725 +0x3b9ad444 +// 0.486342 +0x3ef901da +// 0.819586 +0x3f51d05e +// 0.143207 +0x3e12a4c5 +// 0.701031 +0x3f3376ca +// 0.037889 +0x3d1b31ac +// 0.768294 +0x3f44aee3 +// 0.816302 +0x3f50f928 +// 0.063662 +0x3d82610f +// 0.307759 +0x3e9d92a0 +// 0.517842 +0x3f04914d +// 0.390946 +0x3ec82a1f +// 0.286981 +0x3e92ef21 +// 0.431878 +0x3edd1f17 +// 0.387633 +0x3ec677cb +// 0.881633 +0x3f61b2ad +// 0.652269 +0x3f26fb21 +// 0.939479 +0x3f7081b0 +// 0.801801 +0x3f4d42cd +// 0.317908 +0x3ea2c4dc +// 0.070473 +0x3d90545e +// 0.919854 +0x3f6b7b95 +// 0.465287 +0x3eee3a25 +// 0.481511 +0x3ef68895 +// 0.959070 +0x3f758596 +// 0.262911 +0x3e869c45 +// 0.797768 +0x3f4c3a82 +// 0.987690 +0x3f7cd939 +// 0.097099 +0x3dc6dba8 +// 0.714931 +0x3f3705b9 +// 0.335616 +0x3eabd5cd +// 0.350367 +0x3eb36354 +// 0.441650 +0x3ee21ff3 +// 0.539624 +0x3f0a24d2 +// 0.654307 +0x3f2780ac +// 0.855131 +0x3f5ae9e1 +// 0.723050 +0x3f3919cc +// 0.979662 +0x3f7acb28 +// 0.793422 +0x3f4b1dba +// 0.985112 +0x3f7c3051 +// 0.015060 +0x3c76be39 +// 0.269367 +0x3e89ea74 +// 0.343530 +0x3eafe32b +// 0.232478 +0x3e6e0e98 +// 0.516020 +0x3f0419e8 +// 0.926516 +0x3f6d3020 +// 0.973709 +0x3f794506 +// 0.490177 +0x3efaf882 +// 0.864185 +0x3f5d3b41 +// 0.782190 +0x3f483da3 +// 0.382844 +0x3ec40414 +// 0.629557 +0x3f212aa9 +// 0.038382 +0x3d1d36bd +// 0.412554 +0x3ed33a44 +// 0.959925 +0x3f75bda6 +// 0.663789 +0x3f29ee1a +// 0.878134 +0x3f60cd6b +// 0.468901 +0x3ef013c5 +// 0.828842 +0x3f542efc +// 0.029194 +0x3cef274e +// 0.115660 +0x3decdf33 +// 0.497218 +0x3efe934e +// 0.578202 +0x3f140511 +// 0.718004 +0x3f37cf22 +// 0.479765 +0x3ef5a3cb +// 0.868378 +0x3f5e4e07 +// 0.006352 +0x3bd02654 +// 0.116786 +0x3def2d46 +// 0.845889 +0x3f588c34 +// 0.941286 +0x3f70f818 +// 0.432988 +0x3eddb0a4 +// 0.033265 +0x3d08408b +// 0.862299 +0x3f5cbfa0 +// 0.223560 +0x3e64ecf7 +// 0.539271 +0x3f0a0da4 +// 0.419519 +0x3ed6cb2e +// 0.850908 +0x3f59d523 +// 0.680490 +0x3f2e349b +// 0.336557 +0x3eac5127 +// 0.102420 +0x3dd1c1bc +// 0.308508 +0x3e9df4b7 +// 0.519191 +0x3f04e9ba +// 0.037700 +0x3d1a6bbd +// 0.584102 +0x3f1587be +// 0.795815 +0x3f4bba81 +// 0.089401 +0x3db717f4 +// 0.948785 +0x3f72e38e +// 0.140591 +0x3e0ff709 +// 0.209427 +0x3e567423 +// 0.228216 +0x3e69b15f +// 0.486513 +0x3ef9182b +// 0.539704 +0x3f0a2a09 +// 0.955201 +0x3f748806 +// 0.407153 +0x3ed07658 +// 0.417391 +0x3ed5b438 +// 0.784246 +0x3f48c460 +// 0.495127 +0x3efd8140 +// 0.122302 +0x3dfa798e +// 0.451297 +0x3ee71066 +// 0.896750 +0x3f65916a +// 0.523416 +0x3f05fe96 +// 0.150237 +0x3e19d7da +// 0.417016 +0x3ed58317 +// 0.256015 +0x3e83146c +// 0.315595 +0x3ea195a0 +// 0.475011 +0x3ef334b4 +// 0.695247 +0x3f31fbbd +// 0.579526 +0x3f145bcf +// 0.300556 +0x3e99e27b +// 0.377742 +0x3ec16772 +// 0.848997 +0x3f5957e4 +// 0.723864 +0x3f394f2a +// 0.657653 +0x3f285beb +// 0.339548 +0x3eadd943 +// 0.399657 +0x3ecc9fe6 +// 0.162790 +0x3e26b272 +// 0.035609 +0x3d11daea +// 0.556016 +0x3f0e5708 +// 0.645717 +0x3f254db4 +// 0.479249 +0x3ef56019 +// 0.092354 +0x3dbd2407 +// 0.362051 +0x3eb95ec9 +// 0.608439 +0x3f1bc2b0 +// 0.020717 +0x3ca9b61d +// 0.167887 +0x3e2bea7f +// 0.539112 +0x3f0a033a +// 0.979976 +0x3f7adfb6 +// 0.809183 +0x3f4f2696 +// 0.288161 +0x3e9389cb +// 0.694934 +0x3f31e72f +// 0.837474 +0x3f5664b9 +// 0.893830 +0x3f64d203 +// 0.685679 +0x3f2f88ab +// 0.653294 +0x3f273e49 +// 0.200372 +0x3e4d2e4b +// 0.353585 +0x3eb50921 +// 0.094316 +0x3dc128fa +// 0.193475 +0x3e461e61 +// 0.821111 +0x3f523455 +// 0.991215 +0x3f7dc042 +// 0.184974 +0x3e3d69b7 +// 0.422933 +0x3ed88a9d +// 0.147199 +0x3e16bb5f +// 0.667177 +0x3f2acc18 +// 0.268232 +0x3e8955bd +// 0.182508 +0x3e3ae369 +// 0.609729 +0x3f1c1737 +// 0.744575 +0x3f3e9c7f +// 0.374936 +0x3ebff79f +// 0.344792 +0x3eb08899 +// 0.138408 +0x3e0dbabb +// 0.172159 +0x3e304a7b +// 0.250382 +0x3e80320a +// 0.245440 +0x3e7b549a +// 0.991220 +0x3f7dc090 +// 0.394764 +0x3eca1e91 +// 0.821240 +0x3f523cc1 +// 0.015590 +0x3c7f6bbb +// 0.000438 +0x39e591f7 +// 0.051408 +0x3d52918c +// 0.969149 +0x3f781a20 +// 0.872805 +0x3f5f7029 +// 0.966136 +0x3f7754ac +// 0.333851 +0x3eaaee7a +// 0.146161 +0x3e15ab33 +// 0.911316 +0x3f694c04 +// 0.238855 +0x3e749678 +// 0.337611 +0x3eacdb55 +// 0.312253 +0x3e9fdfa0 +// 0.334797 +0x3eab6a76 +// 0.869490 +0x3f5e96e9 +// 0.125871 +0x3e00e45b +// 0.652814 +0x3f271ec9 +// 0.483895 +0x3ef7c11a +// 0.435871 +0x3edf2a78 +// 0.756470 +0x3f41a806 +// 0.862302 +0x3f5cbfd0 +// 0.314048 +0x3ea0caf6 +// 0.118408 +0x3df27fe6 +// 0.557194 +0x3f0ea444 +// 0.674434 +0x3f2ca7b2 +// 0.346771 +0x3eb18bea +// 0.454918 +0x3ee8eb09 +// 0.268456 +0x3e897308 +// 0.230244 +0x3e6bc517 +// 0.500949 +0x3f003e34 +// 0.778272 +0x3f473cd2 +// 0.750213 +0x3f400df7 +// 0.014355 +0x3c6b3300 +// 0.746670 +0x3f3f25c9 +// 0.543576 +0x3f0b27d2 +// 0.126952 +0x3e01ffd3 +// 0.180777 +0x3e391da2 +// 0.327529 +0x3ea7b1e2 +// 0.959009 +0x3f7581a2 +// 0.929082 +0x3f6dd856 +// 0.998307 +0x3f7f9106 +// 0.329052 +0x3ea8797d +// 0.832827 +0x3f553427 +// 0.527504 +0x3f070a88 +// 0.674230 +0x3f2c9a50 +// 0.132119 +0x3e074a25 +// 0.650352 +0x3f267d79 +// 0.716654 +0x3f37769f +// 0.668961 +0x3f2b4101 +// 0.427887 +0x3edb13f5 +// 0.260694 +0x3e8579bf +// 0.210266 +0x3e574fe4 +// 0.464105 +0x3eed9f3b +// 0.988228 +0x3f7cfc7f +// 0.412171 +0x3ed3081f +// 0.146135 +0x3e15a458 +// 0.714535 +0x3f36ebc7 +// 0.546921 +0x3f0c0302 +// 0.667034 +0x3f2ac2c1 +// 0.812662 +0x3f500a9e +// 0.968992 +0x3f780fde +// 0.415219 +0x3ed4979f +// 0.168013 +0x3e2c0bad +// 0.057504 +0x3d6b88f0 +// 0.026823 +0x3cdbbaf6 +// 0.207206 +0x3e542ded +// 0.170210 +0x3e2e4b71 +// 0.417522 +0x3ed5c570 +// 0.003446 +0x3b61d8d9 +// 0.665505 +0x3f2a5e8b +// 0.139286 +0x3e0ea0e5 +// 0.117371 +0x3df06077 +// 0.225989 +0x3e6769ae +// 0.271886 +0x3e8b34a4 +// 0.744222 +0x3f3e8556 +// 0.477757 +0x3ef49c98 +// 0.564684 +0x3f108f1e +// 0.319963 +0x3ea3d222 +// 0.555532 +0x3f0e3755 +// 0.011336 +0x3c39bb92 +// 0.418713 +0x3ed6618a +// 0.101806 +0x3dd07f78 +// 0.076166 +0x3d9bfcf2 +// 0.697353 +0x3f3285b8 +// 0.752542 +0x3f40a692 +// 0.075574 +0x3d9ac676 +// 0.217617 +0x3e5ed716 +// 0.675730 +0x3f2cfca4 +// 0.164424 +0x3e285eb2 +// 0.989257 +0x3f7d3ff7 +// 0.628395 +0x3f20de86 +// 0.058941 +0x3d716be2 +// 0.128367 +0x3e037291 +// 0.091528 +0x3dbb7306 +// 0.844233 +0x3f581fad +// 0.798107 +0x3f4c50c2 +// 0.048884 +0x3d483a57 +// 0.721431 +0x3f38afb6 +// 0.767795 +0x3f448e35 +// 0.496557 +0x3efe3cc7 +// 0.137699 +0x3e0d00f7 +// 0.947677 +0x3f729afe +// 0.279788 +0x3e8f4057 +// 0.440262 +0x3ee169fd +// 0.891597 +0x3f643fac +// 0.811785 +0x3f4fd12a +// 0.837576 +0x3f566b62 +// 0.097164 +0x3dc6fde0 +// 0.465640 +0x3eee685b +// 0.082216 +0x3da86113 +// 0.079276 +0x3da25b70 +// 0.782454 +0x3f484eef +// 0.052569 +0x3d575245 +// 0.402191 +0x3ecdec06 +// 0.245708 +0x3e7b9afc +// 0.511664 +0x3f02fc67 +// 0.728204 +0x3f3a6b8f +// 0.082531 +0x3da905c0 +// 0.889317 +0x3f63aa41 +// 0.508224 +0x3f021afb +// 0.344124 +0x3eb03108 +// 0.134704 +0x3e09efcb +// 0.585825 +0x3f15f89d +// 0.075180 +0x3d99f7ba +// 0.672449 +0x3f2c25a0 +// 0.332536 +0x3eaa4230 +// 0.115565 +0x3decad35 +// 0.279760 +0x3e8f3cb8 +// 0.693884 +0x3f31a25f +// 0.958110 +0x3f7546ae +// 0.793167 +0x3f4b0cfb +// 0.377704 +0x3ec16268 +// 0.946381 +0x3f72460e +// 0.384012 +0x3ec49d28 +// 0.035580 +0x3d11bcbd +// 0.045929 +0x3d3c2041 +// 0.937155 +0x3f6fe967 +// 0.047557 +0x3d42caa8 +// 0.457796 +0x3eea642f +// 0.052144 +0x3d559501 +// 0.531371 +0x3f0807f5 +// 0.692862 +0x3f315f60 +// 0.338486 +0x3ead4e00 +// 0.277837 +0x3e8e40a2 +// 0.611936 +0x3f1ca7d4 +// 0.776136 +0x3f46b0df +// 0.541216 +0x3f0a8d1f +// 0.017627 +0x3c90659d +// 0.809097 +0x3f4f20fc +// 0.840635 +0x3f5733e0 +// 0.806522 +0x3f4e7834 +// 0.234095 +0x3e6fb69a +// 0.947135 +0x3f727768 +// 0.594455 +0x3f182e30 +// 0.586409 +0x3f161ede +// 0.245918 +0x3e7bd204 +// 0.046003 +0x3d3c6df1 +// 0.103042 +0x3dd3078c +// 0.514983 +0x3f03d5f1 +// 0.461118 +0x3eec17ad +// 0.564327 +0x3f1077b9 +// 0.263524 +0x3e86ec9e +// 0.448203 +0x3ee57ad7 +// 0.612778 +0x3f1cdf04 +// 0.126405 +0x3e017035 +// 0.387663 +0x3ec67bbe +// 0.715884 +0x3f37442c +// 0.264225 +0x3e874871 +// 0.966136 +0x3f7754b5 +// 0.760738 +0x3f42bfbc +// 0.745253 +0x3f3ec8ec +// 0.345045 +0x3eb0a9c4 +// 0.894884 +0x3f651720 +// 0.901094 +0x3f66ae1e +// 0.929553 +0x3f6df72d +// 0.275304 +0x3e8cf4a9 +// 0.359916 +0x3eb846df +// 0.138537 +0x3e0ddca6 +// 0.807333 +0x3f4ead5a +// 0.745307 +0x3f3ecc72 +// 0.891871 +0x3f6451a5 +// 0.034530 +0x3d0d6f35 +// 0.103461 +0x3dd3e32f +// 0.317948 +0x3ea2ca14 +// 0.018905 +0x3c9ade5e +// 0.431291 +0x3edcd235 +// 0.151643 +0x3e1b4848 +// 0.657881 +0x3f286ae4 +// 0.205809 +0x3e52bfb0 +// 0.388969 +0x3ec726fe +// 0.160114 +0x3e23f4e9 +// 0.850161 +0x3f59a428 +// 0.232443 +0x3e6e0577 +// 0.580248 +0x3f148b2a +// 0.748259 +0x3f3f8ded +// 0.099687 +0x3dcc28ee +// 0.227612 +0x3e69131e +// 0.616873 +0x3f1deb6a +// 0.279787 +0x3e8f4042 +// 0.608511 +0x3f1bc765 +// 0.621856 +0x3f1f31f6 +// 0.512595 +0x3f033971 +// 0.773956 +0x3f4621f5 +// 0.255042 +0x3e8294d2 +// 0.806828 +0x3f4e8c4b +// 0.179959 +0x3e38470d +// 0.537015 +0x3f0979c8 +// 0.113793 +0x3de90c4e +// 0.656688 +0x3f281cb6 +// 0.813969 +0x3f50603e +// 0.320914 +0x3ea44ecf +// 0.202948 +0x3e4fd19d +// 0.799256 +0x3f4c9c02 +// 0.523057 +0x3f05e715 +// 0.123590 +0x3dfd1cbd +// 0.092192 +0x3dbccf4b +// 0.440014 +0x3ee1498e +// 0.841305 +0x3f575fbb +// 0.995915 +0x3f7ef44b +// 0.516971 +0x3f045836 +// 0.600287 +0x3f19ac66 +// 0.179338 +0x3e37a466 +// 0.589240 +0x3f16d877 +// 0.902852 +0x3f672154 +// 0.549631 +0x3f0cb4a3 +// 0.749609 +0x3f3fe659 +// 0.118394 +0x3df278a5 +// 0.351265 +0x3eb3d8f6 +// 0.473382 +0x3ef25f2a +// 0.268829 +0x3e89a3f4 +// 0.925103 +0x3f6cd38c +// 0.218440 +0x3e5faecd +// 0.903310 +0x3f673f5a +// 0.561949 +0x3f0fdbe3 +// 0.897140 +0x3f65aaf4 +// 0.418002 +0x3ed60458 +// 0.079631 +0x3da3156b +// 0.701336 +0x3f338ac2 +// 0.367500 +0x3ebc28f3 +// 0.548748 +0x3f0c7ac2 +// 0.997718 +0x3f7f6a73 +// 0.660602 +0x3f291d32 +// 0.001220 +0x3a9fe75f +// 0.703274 +0x3f3409c5 +// 0.430032 +0x3edc2d37 +// 0.930688 +0x3f6e4195 +// 0.949820 +0x3f73276c +// 0.770253 +0x3f452f4b +// 0.583771 +0x3f157205 +// 0.759139 +0x3f4256f5 +// 0.974333 +0x3f796de4 +// 0.487750 +0x3ef9ba61 +// 0.402692 +0x3ece2db0 +// 0.372103 +0x3ebe8451 +// 0.177364 +0x3e359f07 +// 0.406216 +0x3ecffb9b +// 0.324961 +0x3ea66141 +// 0.459521 +0x3eeb4659 +// 0.049303 +0x3d49f228 +// 0.961855 +0x3f763c24 +// 0.974412 +0x3f797314 +// 0.515241 +0x3f03e6d1 +// 0.087186 +0x3db28e85 +// 0.844859 +0x3f5848b0 +// 0.341388 +0x3eaeca67 +// 0.882704 +0x3f61f8df +// 0.946210 +0x3f723ad8 +// 0.399926 +0x3eccc328 +// 0.415462 +0x3ed4b77d +// 0.313687 +0x3ea09ba4 +// 0.673263 +0x3f2c5afa +// 0.905339 +0x3f67c448 +// 0.748017 +0x3f3f7e05 +// 0.566203 +0x3f10f2b5 +// 0.467767 +0x3eef7f1c +// 0.458366 +0x3eeaaefb +// 0.317443 +0x3ea287f4 +// 0.810012 +0x3f4f5cfb +// 0.274310 +0x3e8c7268 +// 0.557810 +0x3f0ecca2 +// 0.305188 +0x3e9c419c +// 0.682771 +0x3f2eca19 +// 0.610813 +0x3f1c5e44 +// 0.993933 +0x3f7e7268 +// 0.186505 +0x3e3efb2a +// 0.287272 +0x3e931558 +// 0.854119 +0x3f5aa787 +// 0.492776 +0x3efc4d25 +// 0.722319 +0x3f38e9e7 +// 0.194789 +0x3e4776b8 +// 0.686078 +0x3f2fa2cf +// 0.219024 +0x3e6047c7 +// 0.553041 +0x3f0d9419 +// 0.823431 +0x3f52cc64 +// 0.191348 +0x3e43f0cb +// 0.045373 +0x3d39d88b +// 0.148352 +0x3e17e986 +// 0.558151 +0x3f0ee304 +// 0.221739 +0x3e630fa0 +// 0.007075 +0x3be7d890 +// 0.187539 +0x3e400a1f +// 0.097842 +0x3dc86169 +// 0.067483 +0x3d8a34b6 +// 0.639502 +0x3f23b666 +// 0.582647 +0x3f152860 +// 0.782921 +0x3f486d80 +// 0.233065 +0x3e6ea88d +// 0.345791 +0x3eb10b77 +// 0.070088 +0x3d8f8a44 +// 0.202465 +0x3e4f52e9 +// 0.924424 +0x3f6ca708 +// 0.207840 +0x3e54d3fc +// 0.170459 +0x3e2e8ce7 +// 0.661218 +0x3f294592 +// 0.410037 +0x3ed1f06e +// 0.839692 +0x3f56f614 +// 0.839447 +0x3f56e5f9 +// 0.945295 +0x3f71fede +// 0.079810 +0x3da37374 +// 0.202678 +0x3e4f8ac4 +// 0.085331 +0x3daec21f +// 0.184480 +0x3e3ce848 +// 0.194144 +0x3e46cd96 +// 0.915662 +0x3f6a68d7 +// 0.068459 +0x3d8c340b +// 0.456436 +0x3ee9b1ea +// 0.464571 +0x3eeddc3d +// 0.752733 +0x3f40b321 +// 0.647422 +0x3f25bd71 +// 0.955921 +0x3f74b739 +// 0.472056 +0x3ef1b149 +// 0.309183 +0x3e9e4d35 +// 0.205953 +0x3e52e54d +// 0.849361 +0x3f596fb6 +// 0.882828 +0x3f620103 +// 0.974787 +0x3f798ba0 +// 0.632210 +0x3f21d888 +// 0.446043 +0x3ee45fd0 +// 0.965464 +0x3f7728ab +// 0.565509 +0x3f10c536 +// 0.768156 +0x3f44a5dd +// 0.201403 +0x3e4e3c9c +// 0.262213 +0x3e8640c2 +// 0.870857 +0x3f5ef074 +// 0.852768 +0x3f5a4efa +// 0.736747 +0x3f3c9b78 +// 0.291662 +0x3e9554bc +// 0.962935 +0x3f7682e7 +// 0.980230 +0x3f7af05a +// 0.513212 +0x3f0361dd +// 0.899839 +0x3f665bdb +// 0.941103 +0x3f70ec1f +// 0.933228 +0x3f6ee809 +// 0.324595 +0x3ea63151 +// 0.542171 +0x3f0acbb3 +// 0.363213 +0x3eb9f706 +// 0.966149 +0x3f77558a +// 0.351715 +0x3eb41401 +// 0.398534 +0x3ecc0caa +// 0.876661 +0x3f606cd5 +// 0.209749 +0x3e56c887 +// 0.970924 +0x3f788e72 +// 0.668085 +0x3f2b07a5 +// 0.094266 +0x3dc10e9c +// 0.651898 +0x3f26e2cb +// 0.400531 +0x3ecd1273 +// 0.829571 +0x3f545eca +// 0.192766 +0x3e456466 +// 0.659452 +0x3f28d1db +// 0.944428 +0x3f71c604 +// 0.237799 +0x3e73818d +// 0.341587 +0x3eaee46d +// 0.033894 +0x3d0ad4a3 +// 0.302810 +0x3e9b09ed +// 0.652993 +0x3f272a88 +// 0.202460 +0x3e4f51c9 +// 0.884858 +0x3f628609 +// 0.604894 +0x3f1ada59 +// 0.907944 +0x3f686efe +// 0.613491 +0x3f1d0db8 +// 0.211977 +0x3e591099 +// 0.350730 +0x3eb392ec +// 0.006003 +0x3bc4b640 +// 0.931963 +0x3f6e9529 +// 0.879650 +0x3f6130b6 +// 0.030267 +0x3cf7f185 +// 0.294942 +0x3e9702a1 +// 0.091469 +0x3dbb5420 +// 0.961552 +0x3f762849 +// 0.235377 +0x3e7106c6 +// 0.155513 +0x3e1f3ec8 +// 0.064391 +0x3d83df93 +// 0.820155 +0x3f51f5a7 +// 0.136604 +0x3e0be1ce +// 0.341561 +0x3eaee11d +// 0.136683 +0x3e0bf6a1 +// 0.186145 +0x3e3e9cbe +// 0.372484 +0x3ebeb644 +// 0.327845 +0x3ea7db50 +// 0.374146 +0x3ebf900e +// 0.901369 +0x3f66c01e +// 0.086293 +0x3db0ba52 +// 0.701865 +0x3f33ad67 +// 0.110428 +0x3de227fb +// 0.808544 +0x3f4efcbc +// 0.608349 +0x3f1bbcc0 +// 0.582395 +0x3f1517de +// 0.355266 +0x3eb5e578 +// 0.822588 +0x3f529526 +// 0.690527 +0x3f30c664 +// 0.072376 +0x3d943a1d +// 0.688142 +0x3f302a1a +// 0.155607 +0x3e1f5773 +// 0.451828 +0x3ee75605 +// 0.565245 +0x3f10b3ec +// 0.645437 +0x3f253b64 +// 0.975384 +0x3f79b2c4 +// 0.334022 +0x3eab04fe +// 0.173722 +0x3e31e42a +// 0.865773 +0x3f5da345 +// 0.561527 +0x3f0fc03e +// 0.596501 +0x3f18b447 +// 0.752129 +0x3f408b8d +// 0.020354 +0x3ca6bc64 +// 0.694016 +0x3f31ab06 +// 0.785893 +0x3f49304c +// 0.709094 +0x3f358728 +// 0.343300 +0x3eafc505 +// 0.442013 +0x3ee24f90 +// 0.997991 +0x3f7f7c4e +// 0.972868 +0x3f790ddf +// 0.384468 +0x3ec4d8fc +// 0.664785 +0x3f2a2f5b +// 0.130531 +0x3e05a9fc +// 0.524753 +0x3f06563e +// 0.816412 +0x3f51005f +// 0.561758 +0x3f0fcf64 +// 0.287743 +0x3e93530e +// 0.825304 +0x3f534720 +// 0.752714 +0x3f40b1d8 +// 0.259572 +0x3e84e698 +// 0.623541 +0x3f1fa05c +// 0.176685 +0x3e34ed01 +// 0.232758 +0x3e6e582e +// 0.752039 +0x3f4085a6 +// 0.960770 +0x3f75f507 +// 0.271896 +0x3e8b35f8 +// 0.673262 +0x3f2c5ae2 +// 0.195570 +0x3e48436f +// 0.695404 +0x3f320600 +// 0.305333 +0x3e9c5494 +// 0.190688 +0x3e4343cb +// 0.703114 +0x3f33ff4f +// 0.005564 +0x3bb64ec2 +// 0.424879 +0x3ed989c8 +// 0.304934 +0x3e9c2044 +// 0.730857 +0x3f3b1971 +// 0.967724 +0x3f77bcc0 +// 0.253077 +0x3e819346 +// 0.807264 +0x3f4ea8e0 +// 0.483658 +0x3ef7a20e +// 0.048515 +0x3d46b759 +// 0.837134 +0x3f564e70 +// 0.222934 +0x3e6448b5 +// 0.653726 +0x3f275a98 +// 0.631589 +0x3f21afcd +// 0.648378 +0x3f25fc1a +// 0.827600 +0x3f53dd90 +// 0.200128 +0x3e4cee78 +// 0.653918 +0x3f27672a +// 0.149144 +0x3e18b919 +// 0.230384 +0x3e6be9bb +// 0.402713 +0x3ece3061 +// 0.278987 +0x3e8ed769 +// 0.807856 +0x3f4ecfa4 +// 0.576555 +0x3f13991a +// 0.470405 +0x3ef0d8dc +// 0.034591 +0x3d0daf7a +// 0.660759 +0x3f29277a +// 0.877931 +0x3f60c01e +// 0.599567 +0x3f197d3a +// 0.404844 +0x3ecf47c7 +// 0.108821 +0x3ddedd5e +// 0.367197 +0x3ebc0143 +// 0.482649 +0x3ef71dc8 +// 0.312176 +0x3e9fd58a +// 0.362011 +0x3eb95982 +// 0.143458 +0x3e12e689 +// 0.271233 +0x3e8adf1b +// 0.104406 +0x3dd5d30d +// 0.076043 +0x3d9bbc43 +// 0.436709 +0x3edf984b +// 0.983041 +0x3f7ba892 +// 0.384273 +0x3ec4bf76 +// 0.573659 +0x3f12db56 +// 0.363827 +0x3eba4791 +// 0.462050 +0x3eec91d8 +// 0.462451 +0x3eecc657 +// 0.260806 +0x3e85886a +// 0.570872 +0x3f1224ae +// 0.220388 +0x3e61ad65 +// 0.709383 +0x3f359a25 +// 0.555199 +0x3f0e2185 +// 0.508070 +0x3f0210db +// 0.493443 +0x3efca490 +// 0.263173 +0x3e86be9a +// 0.865136 +0x3f5d798a +// 0.779440 +0x3f478966 +// 0.522899 +0x3f05dcb6 +// 0.793802 +0x3f4b3698 +// 0.459354 +0x3eeb3074 +// 0.640298 +0x3f23ea95 +// 0.794116 +0x3f4b4b33 +// 0.153485 +0x3e1d2b46 +// 0.570940 +0x3f122923 +// 0.782100 +0x3f4837b3 +// 0.125003 +0x3e0000cd +// 0.937692 +0x3f700c9b +// 0.447146 +0x3ee4f04d +// 0.563165 +0x3f102b96 +// 0.821493 +0x3f524d57 +// 0.646246 +0x3f257060 +// 0.624032 +0x3f1fc095 +// 0.967321 +0x3f77a25c +// 0.455516 +0x3ee93973 +// 0.139429 +0x3e0ec693 +// 0.423745 +0x3ed8f51b +// 0.668307 +0x3f2b1626 +// 0.298680 +0x3e98ec85 +// 0.388557 +0x3ec6f100 +// 0.468122 +0x3eefada8 +// 0.599037 +0x3f195a7c +// 0.296158 +0x3e97a208 +// 0.397784 +0x3ecbaa65 +// 0.206926 +0x3e53e461 +// 0.362735 +0x3eb9b85c +// 0.219284 +0x3e608c02 +// 0.380752 +0x3ec2f1e7 +// 0.441862 +0x3ee23bbd +// 0.173318 +0x3e317a47 +// 0.994864 +0x3f7eaf65 +// 0.268878 +0x3e89aa60 +// 0.801242 +0x3f4d1e30 +// 0.456699 +0x3ee9d471 +// 0.583797 +0x3f1573bf +// 0.767724 +0x3f448996 +// 0.560985 +0x3f0f9cb4 +// 0.572757 +0x3f12a031 +// 0.150170 +0x3e19c646 +// 0.433154 +0x3eddc64e +// 0.150252 +0x3e19dbc6 +// 0.049466 +0x3d4a9d1d +// 0.843097 +0x3f57d535 +// 0.404874 +0x3ecf4bae +// 0.665397 +0x3f2a5777 +// 0.438716 +0x3ee09f59 +// 0.661741 +0x3f2967e2 +// 0.896076 +0x3f656536 +// 0.433200 +0x3eddcc57 +// 0.998054 +0x3f7f8078 +// 0.905646 +0x3f67d869 +// 0.439097 +0x3ee0d144 +// 0.959654 +0x3f75abdd +// 0.984943 +0x3f7c2537 +// 0.369311 +0x3ebd1651 +// 0.955147 +0x3f748481 +// 0.317664 +0x3ea2a4db +// 0.905782 +0x3f67e15b +// 0.660218 +0x3f290411 +// 0.541476 +0x3f0a9e24 +// 0.699830 +0x3f33280a +// 0.489795 +0x3efac660 +// 0.412264 +0x3ed31446 +// 0.660836 +0x3f292c90 +// 0.175648 +0x3e33dd1c +// 0.854939 +0x3f5add4e +// 0.747014 +0x3f3f3c56 +// 0.130086 +0x3e053552 +// 0.383391 +0x3ec44bcd +// 0.035183 +0x3d101c92 +// 0.345036 +0x3eb0a896 +// 0.760012 +0x3f42902a +// 0.236331 +0x3e7200b5 +// 0.287653 +0x3e93473f +// 0.273337 +0x3e8bf2c5 +// 0.984329 +0x3f7bfcf9 +// 0.546807 +0x3f0bfb88 +// 0.025111 +0x3ccdb528 +// 0.778668 +0x3f4756d0 +// 0.830160 +0x3f548556 +// 0.689382 +0x3f307b4f +// 0.183129 +0x3e3b860f +// 0.280398 +0x3e8f9059 +// 0.569632 +0x3f11d369 +// 0.735141 +0x3f3c3231 +// 0.090266 +0x3db8dd6e +// 0.161703 +0x3e259586 +// 0.641891 +0x3f2452f5 +// 0.346280 +0x3eb14b9b +// 0.333560 +0x3eaac86d +// 0.619636 +0x3f1ea077 +// 0.587016 +0x3f1646b0 +// 0.989956 +0x3f7d6dc2 +// 0.930888 +0x3f6e4eb3 +// 0.669776 +0x3f2b7675 +// 0.641131 +0x3f242127 +// 0.805081 +0x3f4e19cf +// 0.494126 +0x3efcfe16 +// 0.411559 +0x3ed2b7e3 +// 0.722893 +0x3f390f88 +// 0.538305 +0x3f09ce5e +// 0.572881 +0x3f12a858 +// 0.124308 +0x3dfe956b +// 0.803036 +0x3f4d93c1 +// 0.656847 +0x3f282723 +// 0.405387 +0x3ecf8ef1 +// 0.342624 +0x3eaf6c5c +// 0.823493 +0x3f52d06c +// 0.967883 +0x3f77c729 +// 0.738653 +0x3f3d1861 +// 0.838105 +0x3f568e06 +// 0.870003 +0x3f5eb889 +// 0.906630 +0x3f6818ed +// 0.930235 +0x3f6e23dd +// 0.261334 +0x3e85cda0 +// 0.494583 +0x3efd3a01 +// 0.342535 +0x3eaf60b1 +// 0.010757 +0x3c30401a +// 0.558803 +0x3f0f0dba +// 0.329909 +0x3ea8e9d7 +// 0.651595 +0x3f26cee7 +// 0.453376 +0x3ee820e4 +// 0.885162 +0x3f6299f8 +// 0.696835 +0x3f3263ce +// 0.428328 +0x3edb4dd5 +// 0.498266 +0x3eff1cc8 +// 0.607923 +0x3f1ba0de +// 0.526911 +0x3f06e39f +// 0.841760 +0x3f577d95 +// 0.237645 +0x3e73592a +// 0.957616 +0x3f75264d +// 0.889394 +0x3f63af52 +// 0.451886 +0x3ee75d92 +// 0.860315 +0x3f5c3d95 +// 0.130428 +0x3e058ef7 +// 0.079360 +0x3da28798 +// 0.285291 +0x3e9211ae +// 0.925961 +0x3f6d0bcd +// 0.428103 +0x3edb305a +// 0.453032 +0x3ee7f3df +// 0.111548 +0x3de47351 +// 0.623414 +0x3f1f9812 +// 0.991119 +0x3f7db9f4 +// 0.245871 +0x3e7bc580 +// 0.250055 +0x3e80072d +// 0.632041 +0x3f21cd71 +// 0.230373 +0x3e6be6f2 +// 0.206673 +0x3e53a22f +// 0.913362 +0x3f69d21f +// 0.740953 +0x3f3daf16 +// 0.372536 +0x3ebebd0d +// 0.152315 +0x3e1bf889 +// 0.582270 +0x3f150fa2 +// 0.661476 +0x3f295680 +// 0.031133 +0x3cff0b8e +// 0.578703 +0x3f1425e0 +// 0.108866 +0x3ddef52c +// 0.614045 +0x3f1d3214 +// 0.020409 +0x3ca7316b +// 0.880487 +0x3f61679d +// 0.993037 +0x3f7e37ae +// 0.816074 +0x3f50ea37 +// 0.662006 +0x3f297940 +// 0.134235 +0x3e0974cd +// 0.255163 +0x3e82a4a9 +// 0.775309 +0x3f467aa9 +// 0.715653 +0x3f373501 +// 0.441989 +0x3ee24c5c +// 0.337857 +0x3eacfb94 +// 0.457560 +0x3eea4551 +// 0.193334 +0x3e45f976 +// 0.979505 +0x3f7ac0cf +// 0.833280 +0x3f5551d5 +// 0.930066 +0x3f6e18d4 +// 0.258477 +0x3e845717 +// 0.218061 +0x3e5f4b42 +// 0.028575 +0x3cea15af +// 0.725752 +0x3f39cadc +// 0.048728 +0x3d47973c +// 0.354037 +0x3eb54456 +// 0.184525 +0x3e3cf403 +// 0.007817 +0x3c0012b3 +// 0.655069 +0x3f27b29d +// 0.529293 +0x3f077fc6 +// 0.431024 +0x3edcaf30 +// 0.794659 +0x3f4b6ebf +// 0.070753 +0x3d90e731 +// 0.335796 +0x3eabed66 +// 0.127527 +0x3e029682 +// 0.951614 +0x3f739cf5 +// 0.227628 +0x3e691733 +// 0.287460 +0x3e932df4 +// 0.723718 +0x3f394596 +// 0.278808 +0x3e8ebfdc +// 0.284635 +0x3e91bba5 +// 0.704724 +0x3f3468d2 +// 0.556983 +0x3f0e966d +// 0.154918 +0x3e1ea2c4 +// 0.831894 +0x3f54f705 +// 0.112996 +0x3de76a6d +// 0.995266 +0x3f7ec9c1 +// 0.777990 +0x3f472a5f +// 0.039927 +0x3d238adf +// 0.173299 +0x3e317541 +// 0.145755 +0x3e1540dd +// 0.764893 +0x3f43d004 +// 0.498702 +0x3eff55e8 +// 0.804853 +0x3f4e0adb +// 0.363317 +0x3eba04a7 +// 0.137355 +0x3e0ca6d6 +// 0.483141 +0x3ef75e38 +// 0.172409 +0x3e308c18 +// 0.374585 +0x3ebfc98c +// 0.258396 +0x3e844c88 +// 0.099172 +0x3dcb1ab1 +// 0.260721 +0x3e857d30 +// 0.808857 +0x3f4f1146 +// 0.655608 +0x3f27d5ea +// 0.127080 +0x3e02215b +// 0.604704 +0x3f1acde6 +// 0.307962 +0x3e9dad31 +// 0.067981 +0x3d8b398b +// 0.837532 +0x3f566883 +// 0.749973 +0x3f3ffe41 +// 0.925810 +0x3f6d01e1 +// 0.211093 +0x3e5828e0 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Inputs2_f32.txt b/Testing/Patterns/DSP/Support/SupportF32/Inputs2_f32.txt new file mode 100755 index 00000000..356350c6 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Inputs2_f32.txt @@ -0,0 +1,402 @@ +W +200 +// 0.443424 +0x3ee30871 +// 0.886256 +0x3f62e1b2 +// 0.163454 +0x3e276075 +// 0.839323 +0x3f56dde7 +// 0.136944 +0x3e0c3b1c +// 0.638549 +0x3f2377fb +// 0.092405 +0x3dbd3ec2 +// 0.361663 +0x3eb92bd5 +// 0.312741 +0x3ea01fa0 +// 0.518389 +0x3f04b520 +// 0.680725 +0x3f2e43fc +// 0.244531 +0x3e7a663d +// 0.539128 +0x3f0a044e +// 0.202043 +0x3e4ee47b +// 0.837784 +0x3f567903 +// 0.125087 +0x3e0016c2 +// 0.108872 +0x3ddef820 +// 0.235270 +0x3e70ea99 +// 0.071163 +0x3d91be27 +// 0.247372 +0x3e7d4f27 +// 0.905132 +0x3f67b6ba +// 0.435782 +0x3edf1ec3 +// 0.413214 +0x3ed390d5 +// 0.502824 +0x3f00b912 +// 0.675129 +0x3f2cd544 +// 0.653377 +0x3f2743b7 +// 0.114356 +0x3dea3365 +// 0.477438 +0x3ef472c8 +// 0.476851 +0x3ef425d9 +// 0.134899 +0x3e0a22f5 +// 0.456654 +0x3ee9ce9c +// 0.340581 +0x3eae609e +// 0.947603 +0x3f729616 +// 0.953657 +0x3f7422e2 +// 0.616823 +0x3f1de81f +// 0.598133 +0x3f191f3e +// 0.478492 +0x3ef4fcf6 +// 0.555079 +0x3f0e19b0 +// 0.883830 +0x3f6242ab +// 0.672335 +0x3f2c1e2b +// 0.563156 +0x3f102afe +// 0.862030 +0x3f5cadfa +// 0.048379 +0x3d46294c +// 0.512465 +0x3f0330ec +// 0.585846 +0x3f15fa07 +// 0.107536 +0x3ddc3b94 +// 0.808403 +0x3f4ef382 +// 0.432530 +0x3edd7492 +// 0.577879 +0x3f13efdb +// 0.356267 +0x3eb668ab +// 0.067064 +0x3d8958a5 +// 0.570843 +0x3f1222c6 +// 0.017565 +0x3c8fe3c6 +// 0.231999 +0x3e6d9130 +// 0.924089 +0x3f6c911d +// 0.410634 +0x3ed23ea3 +// 0.576704 +0x3f13a2e0 +// 0.160696 +0x3e248d93 +// 0.932314 +0x3f6eac29 +// 0.659542 +0x3f28d7bf +// 0.876899 +0x3f607c73 +// 0.397653 +0x3ecb9926 +// 0.448903 +0x3ee5d6a5 +// 0.514886 +0x3f03cf94 +// 0.715136 +0x3f37132d +// 0.215398 +0x3e5c9162 +// 0.808191 +0x3f4ee5a3 +// 0.098072 +0x3dc8da3c +// 0.723347 +0x3f392d43 +// 0.638847 +0x3f238b81 +// 0.725843 +0x3f39d0d9 +// 0.176922 +0x3e352b26 +// 0.652296 +0x3f26fcd7 +// 0.615175 +0x3f1d7c1d +// 0.007382 +0x3bf1e4e5 +// 0.193999 +0x3e46a79c +// 0.627257 +0x3f2093f1 +// 0.046974 +0x3d4067c8 +// 0.534540 +0x3f08d795 +// 0.076811 +0x3d9d4f2f +// 0.333476 +0x3eaabd5c +// 0.686808 +0x3f2fd2aa +// 0.268706 +0x3e8993d6 +// 0.684808 +0x3f2f4f92 +// 0.626360 +0x3f205921 +// 0.797450 +0x3f4c25ab +// 0.673802 +0x3f2c7e47 +// 0.803060 +0x3f4d9550 +// 0.156331 +0x3e201543 +// 0.759910 +0x3f428974 +// 0.348787 +0x3eb29434 +// 0.264688 +0x3e87853f +// 0.432266 +0x3edd51e9 +// 0.176968 +0x3e353718 +// 0.783641 +0x3f489cb3 +// 0.755757 +0x3f417948 +// 0.217481 +0x3e5eb36c +// 0.262280 +0x3e864994 +// 0.570642 +0x3f121591 +// 0.361058 +0x3eb8dc99 +// 0.031490 +0x3d00fbde +// 0.132971 +0x3e082982 +// 0.156141 +0x3e1fe358 +// 0.550506 +0x3f0cedfd +// 0.918988 +0x3f6b42c8 +// 0.977866 +0x3f7a5570 +// 0.738988 +0x3f3d2e4d +// 0.189446 +0x3e41fe27 +// 0.036582 +0x3d15d778 +// 0.206300 +0x3e53403b +// 0.414931 +0x3ed471dc +// 0.622640 +0x3f1f655d +// 0.252938 +0x3e818110 +// 0.429426 +0x3edbddb7 +// 0.156353 +0x3e201ae2 +// 0.813185 +0x3f502ce8 +// 0.887680 +0x3f633f03 +// 0.497651 +0x3efecc0c +// 0.297173 +0x3e98271e +// 0.462716 +0x3eece928 +// 0.861982 +0x3f5caadc +// 0.160051 +0x3e23e46a +// 0.893911 +0x3f64d754 +// 0.936248 +0x3f6fadee +// 0.980871 +0x3f7b1a5f +// 0.054465 +0x3d5f1680 +// 0.359278 +0x3eb7f348 +// 0.229955 +0x3e6b7970 +// 0.297627 +0x3e98629f +// 0.410227 +0x3ed20947 +// 0.264262 +0x3e874d4e +// 0.302338 +0x3e9acc08 +// 0.318933 +0x3ea34b37 +// 0.431904 +0x3edd228b +// 0.830392 +0x3f549499 +// 0.584340 +0x3f15974a +// 0.095801 +0x3dc43387 +// 0.522968 +0x3f05e139 +// 0.574628 +0x3f131ad9 +// 0.967691 +0x3f77ba97 +// 0.847407 +0x3f58efad +// 0.096857 +0x3dc65cdf +// 0.724253 +0x3f3968ab +// 0.130844 +0x3e05fc13 +// 0.039399 +0x3d2160fc +// 0.411625 +0x3ed2c08b +// 0.924243 +0x3f6c9b29 +// 0.145452 +0x3e14f156 +// 0.462620 +0x3eecdc88 +// 0.332197 +0x3eaa15b9 +// 0.200683 +0x3e4d7fb7 +// 0.292438 +0x3e95ba6d +// 0.820983 +0x3f522be9 +// 0.949966 +0x3f7330f8 +// 0.070020 +0x3d8f6674 +// 0.130093 +0x3e053731 +// 0.982888 +0x3f7b9e89 +// 0.442152 +0x3ee261be +// 0.557978 +0x3f0ed7a8 +// 0.058403 +0x3d6f3776 +// 0.766554 +0x3f443cdb +// 0.159897 +0x3e23bc17 +// 0.488649 +0x3efa3038 +// 0.733687 +0x3f3bd2f0 +// 0.932029 +0x3f6e9975 +// 0.784209 +0x3f48c1f4 +// 0.016317 +0x3c85ab6f +// 0.987727 +0x3f7cdba5 +// 0.752869 +0x3f40bc07 +// 0.872834 +0x3f5f7211 +// 0.134889 +0x3e0a2064 +// 0.086838 +0x3db1d80c +// 0.885384 +0x3f62a88e +// 0.140062 +0x3e0f6c70 +// 0.048918 +0x3d485e79 +// 0.789513 +0x3f4a1d8a +// 0.448198 +0x3ee57a33 +// 0.548526 +0x3f0c6c31 +// 0.045601 +0x3d3ac864 +// 0.413648 +0x3ed3c9b6 +// 0.299164 +0x3e992c12 +// 0.465300 +0x3eee3bd6 +// 0.392167 +0x3ec8ca24 +// 0.822582 +0x3f5294c4 +// 0.657099 +0x3f2837aa +// 0.548129 +0x3f0c522a +// 0.534058 +0x3f08b80e +// 0.286084 +0x3e9279aa +// 0.079868 +0x3da39215 +// 0.876835 +0x3f607848 +// 0.203092 +0x3e4ff73b +// 0.883773 +0x3f623eeb +// 0.373121 +0x3ebf09b1 +// 0.853466 +0x3f5a7cbb +// 0.250589 +0x3e804d2f +// 0.370841 +0x3ebddee5 +// 0.997505 +0x3f7f5c79 +// 0.577818 +0x3f13ebdd +// 0.879050 +0x3f610973 +// 0.725164 +0x3f39a457 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Ref1_f32.txt b/Testing/Patterns/DSP/Support/SupportF32/Ref1_f32.txt new file mode 100755 index 00000000..e6733306 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Ref1_f32.txt @@ -0,0 +1,282 @@ +W +140 +// 0.396663 +0x3ecb1759 +// 0.488467 +0x3efa1867 +// 0.564657 +0x3f108d5c +// 0.294993 +0x3e970960 +// 0.537258 +0x3f0989c1 +// 0.407342 +0x3ed08f28 +// 0.332273 +0x3eaa1f9f +// 0.357947 +0x3eb744e4 +// 0.532547 +0x3f0854f9 +// 0.529848 +0x3f07a423 +// 0.490510 +0x3efb241b +// 0.479640 +0x3ef5935c +// 0.514344 +0x3f03ac07 +// 0.384175 +0x3ec4b298 +// 0.584468 +0x3f159fae +// 0.501793 +0x3f007588 +// 0.377067 +0x3ec10ee2 +// 0.423004 +0x3ed893ee +// 0.553823 +0x3f0dc753 +// 0.430740 +0x3edc89f8 +// 0.546867 +0x3f0bff7b +// 0.625247 +0x3f201033 +// 0.505609 +0x3f016f99 +// 0.682405 +0x3f2eb21b +// 0.531141 +0x3f07f8db +// 0.617352 +0x3f1e0acb +// 0.637503 +0x3f233366 +// 0.366971 +0x3ebbe3ac +// 0.586227 +0x3f1612f2 +// 0.658586 +0x3f289918 +// 0.661761 +0x3f29692f +// 0.586512 +0x3f1625ad +// 0.511720 +0x3f030018 +// 0.403012 +0x3ece57a3 +// 0.602969 +0x3f1a5c32 +// 0.415850 +0x3ed4ea48 +// 0.476689 +0x3ef41089 +// 0.446969 +0x3ee4d922 +// 0.370921 +0x3ebde960 +// 0.548202 +0x3f0c56f3 +// 0.523565 +0x3f060859 +// 0.328882 +0x3ea86349 +// 0.592116 +0x3f1794ec +// 0.571156 +0x3f12374b +// 0.419700 +0x3ed6e2de +// 0.441976 +0x3ee24abb +// 0.455401 +0x3ee92a5c +// 0.380478 +0x3ec2cdf8 +// 0.517325 +0x3f046f70 +// 0.566096 +0x3f10ebb2 +// 0.577724 +0x3f13e5bb +// 0.464517 +0x3eedd520 +// 0.553114 +0x3f0d98e4 +// 0.795544 +0x3f4ba8c7 +// 0.410861 +0x3ed25c57 +// 0.537528 +0x3f099b6b +// 0.192942 +0x3e4592b7 +// 0.343081 +0x3eafa84b +// 0.599154 +0x3f19622f +// 0.512507 +0x3f0333a9 +// 0.748931 +0x3f3fb9f0 +// 0.442575 +0x3ee2992d +// 0.615802 +0x3f1da533 +// 0.206264 +0x3e5336d1 +// 0.284124 +0x3e9178c1 +// 0.429892 +0x3edc1abe +// 0.619106 +0x3f1e7dbe +// 0.699179 +0x3f32fd6b +// 0.542653 +0x3f0aeb4b +// 0.453388 +0x3ee8226f +// 0.354481 +0x3eb57e7e +// 0.149945 +0x3e198b46 +// 0.610673 +0x3f1c5515 +// 0.236180 +0x3e71d915 +// 0.295780 +0x3e977080 +// 0.486209 +0x3ef8f067 +// 0.385289 +0x3ec54490 +// 0.403298 +0x3ece7d1c +// 0.299535 +0x3e995ca2 +// 0.446593 +0x3ee4a7da +// 0.614062 +0x3f1d332e +// 0.509097 +0x3f025430 +// 0.678507 +0x3f2db2a5 +// 0.288457 +0x3e93b098 +// 0.580570 +0x3f14a042 +// 0.437852 +0x3ee02e2a +// 0.464964 +0x3eee0fb9 +// 0.550796 +0x3f0d00fa +// 0.550689 +0x3f0cf9f6 +// 0.523388 +0x3f05fcc2 +// 0.361082 +0x3eb8dfbc +// 0.420308 +0x3ed73290 +// 0.472617 +0x3ef1fadf +// 0.519552 +0x3f050158 +// 0.321003 +0x3ea45a87 +// 0.476353 +0x3ef3e487 +// 0.572559 +0x3f12933f +// 0.541054 +0x3f0a8287 +// 0.436597 +0x3edf89b3 +// 0.538610 +0x3f09e25e +// 0.560332 +0x3f0f71ed +// 0.591778 +0x3f177ecc +// 0.627006 +0x3f208375 +// 0.436700 +0x3edf972d +// 0.669065 +0x3f2b47d6 +// 0.585237 +0x3f15d210 +// 0.599274 +0x3f196a04 +// 0.297752 +0x3e9872e6 +// 0.498355 +0x3eff2857 +// 0.578051 +0x3f13fb21 +// 0.511401 +0x3f02eb26 +// 0.421556 +0x3ed7d632 +// 0.553167 +0x3f0d9c57 +// 0.364388 +0x3eba911c +// 0.477408 +0x3ef46ecd +// 0.567326 +0x3f113c4c +// 0.466576 +0x3eeee304 +// 0.523979 +0x3f06237d +// 0.494238 +0x3efd0cc1 +// 0.491972 +0x3efbe3b9 +// 0.635085 +0x3f2294f1 +// 0.513000 +0x3f0353f8 +// 0.396563 +0x3ecb0a4e +// 0.489172 +0x3efa74c6 +// 0.516201 +0x3f0425c2 +// 0.392971 +0x3ec9336f +// 0.479826 +0x3ef5abb8 +// 0.467511 +0x3eef5d8c +// 0.394954 +0x3eca3776 +// 0.581547 +0x3f14e044 +// 0.502074 +0x3f0087e8 +// 0.593030 +0x3f17d0d1 +// 0.394341 +0x3ec9e720 +// 0.480085 +0x3ef5cdad +// 0.507996 +0x3f020c09 +// 0.581742 +0x3f14ed0d +// 0.553405 +0x3f0dabf0 +// 0.523564 +0x3f060849 +// 0.492312 +0x3efc104f +// 0.466235 +0x3eeeb652 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Ref2_f32.txt b/Testing/Patterns/DSP/Support/SupportF32/Ref2_f32.txt new file mode 100755 index 00000000..d60f848b --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Ref2_f32.txt @@ -0,0 +1,22 @@ +W +10 +// 0.339559 +0x3eaddab6 +// 0.589935 +0x3f1705f4 +// 0.557362 +0x3f0eaf4a +// 0.495312 +0x3efd997d +// 0.555500 +0x3f0e3546 +// 0.338926 +0x3ead87b5 +// 0.476111 +0x3ef3c4df +// 0.459156 +0x3eeb167c +// 0.474479 +0x3ef2eef8 +// 0.536835 +0x3f096e03 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Weights1_f32.txt b/Testing/Patterns/DSP/Support/SupportF32/Weights1_f32.txt new file mode 100755 index 00000000..50caf36c --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Weights1_f32.txt @@ -0,0 +1,202 @@ +W +100 +// 0.505882 +0x3f01817c +// 0.694938 +0x3f31e77d +// 0.834184 +0x3f558d1d +// 0.216891 +0x3e5e18a8 +// 0.861617 +0x3f5c92f1 +// 0.373753 +0x3ebf5c80 +// 0.407281 +0x3ed08723 +// 0.699954 +0x3f333031 +// 0.979094 +0x3f7aa5ec +// 0.630861 +0x3f21801b +// 0.679985 +0x3f2e1386 +// 0.932848 +0x3f6ecf19 +// 0.811971 +0x3f4fdd4e +// 0.645507 +0x3f253fee +// 0.875696 +0x3f602d96 +// 0.191781 +0x3e44621c +// 0.204298 +0x3e51336b +// 0.772702 +0x3f45cfcf +// 0.167709 +0x3e2bbbff +// 0.309124 +0x3e9e4580 +// 0.313483 +0x3ea080cd +// 0.433754 +0x3ede14f6 +// 0.675088 +0x3f2cd298 +// 0.562244 +0x3f0fef3b +// 0.793795 +0x3f4b361f +// 0.362285 +0x3eb97d6e +// 0.492851 +0x3efc56f8 +// 0.444063 +0x3ee35c3c +// 0.174411 +0x3e3298ad +// 0.849831 +0x3f598e89 +// 0.773278 +0x3f45f591 +// 0.457876 +0x3eea6eb1 +// 0.812354 +0x3f4ff66d +// 0.199501 +0x3e4c4a00 +// 0.129128 +0x3e043a2e +// 0.388451 +0x3ec6e302 +// 0.877912 +0x3f60bedb +// 0.399625 +0x3ecc9ba6 +// 0.687600 +0x3f300688 +// 0.941738 +0x3f7115c6 +// 0.961782 +0x3f76375b +// 0.220845 +0x3e62253a +// 0.088035 +0x3db44bd0 +// 0.280936 +0x3e8fd6e1 +// 0.478691 +0x3ef516f2 +// 0.393297 +0x3ec95e37 +// 0.151429 +0x3e1b1014 +// 0.896004 +0x3f656082 +// 0.070551 +0x3d907ccf +// 0.418561 +0x3ed64d96 +// 0.148954 +0x3e18877d +// 0.090889 +0x3dba23e0 +// 0.588984 +0x3f16c7a3 +// 0.343351 +0x3eafcbad +// 0.228429 +0x3e69e92d +// 0.894738 +0x3f650d93 +// 0.211258 +0x3e5853f4 +// 0.998758 +0x3f7fae9c +// 0.216538 +0x3e5dbc20 +// 0.000103 +0x38d71c9b +// 0.742580 +0x3f3e19bb +// 0.757969 +0x3f420a49 +// 0.964287 +0x3f76db83 +// 0.286232 +0x3e928d0e +// 0.235296 +0x3e70f170 +// 0.001907 +0x3af9fa3a +// 0.721577 +0x3f38b944 +// 0.542959 +0x3f0aff5e +// 0.115242 +0x3dec043e +// 0.332174 +0x3eaa12c1 +// 0.277826 +0x3e8e3f30 +// 0.752389 +0x3f409c97 +// 0.968473 +0x3f77eddb +// 0.953890 +0x3f743229 +// 0.952828 +0x3f73ec8a +// 0.834935 +0x3f55be50 +// 0.175639 +0x3e33dab2 +// 0.339723 +0x3eadf020 +// 0.745878 +0x3f3ef1d4 +// 0.510702 +0x3f02bd63 +// 0.120267 +0x3df64e61 +// 0.446761 +0x3ee4bdea +// 0.761876 +0x3f430a50 +// 0.348787 +0x3eb2943d +// 0.536032 +0x3f093960 +// 0.495650 +0x3efdc5ca +// 0.942759 +0x3f7158a4 +// 0.463760 +0x3eed71ee +// 0.172052 +0x3e302e81 +// 0.748209 +0x3f3f8aa1 +// 0.500300 +0x3f0013af +// 0.557571 +0x3f0ebcfe +// 0.620976 +0x3f1ef842 +// 0.967769 +0x3f77bfb3 +// 0.359497 +0x3eb80ff3 +// 0.837588 +0x3f566c25 +// 0.260518 +0x3e856296 +// 0.808148 +0x3f4ee2c9 +// 0.649916 +0x3f2660e8 +// 0.720985 +0x3f38927e diff --git a/Testing/Patterns/DSP/Support/SupportF32/Weights2_f32.txt b/Testing/Patterns/DSP/Support/SupportF32/Weights2_f32.txt new file mode 100755 index 00000000..ccd53bad --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Weights2_f32.txt @@ -0,0 +1,402 @@ +W +200 +// 0.638129 +0x3f235c6f +// 0.254472 +0x3e824a37 +// 0.723874 +0x3f394fcc +// 0.020313 +0x3ca667ba +// 0.726854 +0x3f3a1319 +// 0.315436 +0x3ea180dc +// 0.397950 +0x3ecbc01a +// 0.420919 +0x3ed782b4 +// 0.015265 +0x3c7a1967 +// 0.650127 +0x3f266eb4 +// 0.514076 +0x3f039a81 +// 0.054432 +0x3d5ef43b +// 0.895423 +0x3f653a78 +// 0.088654 +0x3db5907b +// 0.008649 +0x3c0db410 +// 0.037870 +0x3d1b1dd7 +// 0.260093 +0x3e852ad9 +// 0.571302 +0x3f1240d2 +// 0.779836 +0x3f47a358 +// 0.715233 +0x3f371988 +// 0.477539 +0x3ef48008 +// 0.669333 +0x3f2b5969 +// 0.538544 +0x3f09de06 +// 0.007252 +0x3beda19d +// 0.843210 +0x3f57dc9a +// 0.897662 +0x3f65cd2e +// 0.112237 +0x3de5dca3 +// 0.194572 +0x3e473de5 +// 0.412749 +0x3ed353d5 +// 0.340319 +0x3eae3e4b +// 0.064651 +0x3d84678e +// 0.588245 +0x3f169739 +// 0.397727 +0x3ecba2e5 +// 0.282922 +0x3e90db1d +// 0.532793 +0x3f086519 +// 0.927444 +0x3f6d6cf9 +// 0.161669 +0x3e258c97 +// 0.535777 +0x3f0928ab +// 0.389989 +0x3ec7aca0 +// 0.082042 +0x3da80573 +// 0.600067 +0x3f199df7 +// 0.767204 +0x3f446777 +// 0.225625 +0x3e670a5f +// 0.919176 +0x3f6b4f1e +// 0.345623 +0x3eb0f574 +// 0.902107 +0x3f66f07c +// 0.913051 +0x3f69bdb2 +// 0.168229 +0x3e2c4444 +// 0.861636 +0x3f5c942c +// 0.494293 +0x3efd13ec +// 0.282606 +0x3e90b1be +// 0.324541 +0x3ea62a36 +// 0.038708 +0x3d1e8c8a +// 0.689617 +0x3f308ac4 +// 0.575708 +0x3f136196 +// 0.344006 +0x3eb02193 +// 0.611973 +0x3f1caa3d +// 0.017655 +0x3c90a111 +// 0.931044 +0x3f6e58df +// 0.520844 +0x3f05560d +// 0.766831 +0x3f444f04 +// 0.020616 +0x3ca8e385 +// 0.582073 +0x3f1502c0 +// 0.917408 +0x3f6adb47 +// 0.923362 +0x3f6c616c +// 0.050413 +0x3d4e7e25 +// 0.116369 +0x3dee5315 +// 0.095357 +0x3dc34ab0 +// 0.188270 +0x3e40c9d0 +// 0.116561 +0x3deeb7bb +// 0.880322 +0x3f615ccd +// 0.497289 +0x3efe9c99 +// 0.348279 +0x3eb25192 +// 0.350309 +0x3eb35bb9 +// 0.285099 +0x3e91f87c +// 0.970068 +0x3f78565b +// 0.836976 +0x3f564409 +// 0.747299 +0x3f3f4ef6 +// 0.545895 +0x3f0bbfc4 +// 0.084308 +0x3daca998 +// 0.799546 +0x3f4caf0d +// 0.213169 +0x3e5a48e2 +// 0.168221 +0x3e2c421d +// 0.687065 +0x3f2fe377 +// 0.931590 +0x3f6e7cab +// 0.993652 +0x3f7e5ffd +// 0.813116 +0x3f50285a +// 0.481569 +0x3ef69041 +// 0.235736 +0x3e7164d9 +// 0.134703 +0x3e09ef8a +// 0.033671 +0x3d09eaa4 +// 0.329538 +0x3ea8b945 +// 0.256791 +0x3e837a29 +// 0.533936 +0x3f08b003 +// 0.665121 +0x3f2a455d +// 0.084276 +0x3dac98f2 +// 0.020354 +0x3ca6bd6f +// 0.233638 +0x3e6f3ed4 +// 0.385820 +0x3ec58a2d +// 0.559866 +0x3f0f535d +// 0.806840 +0x3f4e8d09 +// 0.892163 +0x3f6464d0 +// 0.840442 +0x3f572734 +// 0.093045 +0x3dbe8e98 +// 0.159565 +0x3e2364f0 +// 0.008332 +0x3c088134 +// 0.261533 +0x3e85e7a1 +// 0.718751 +0x3f38000d +// 0.908373 +0x3f688b24 +// 0.286196 +0x3e928857 +// 0.386615 +0x3ec5f266 +// 0.032316 +0x3d045e07 +// 0.561888 +0x3f0fd7e2 +// 0.678582 +0x3f2db793 +// 0.429907 +0x3edc1cc5 +// 0.989010 +0x3f7d2fc3 +// 0.270092 +0x3e8a4989 +// 0.991199 +0x3f7dbf35 +// 0.189608 +0x3e42287c +// 0.350798 +0x3eb39bd0 +// 0.986667 +0x3f7c9634 +// 0.811062 +0x3f4fa1c8 +// 0.764458 +0x3f43b387 +// 0.276976 +0x3e8dcfd6 +// 0.543240 +0x3f0b11c3 +// 0.833602 +0x3f5566f2 +// 0.462286 +0x3eecb0cd +// 0.278448 +0x3e8e90b6 +// 0.580846 +0x3f14b254 +// 0.556519 +0x3f0e780f +// 0.358635 +0x3eb79f07 +// 0.953307 +0x3f740bec +// 0.964943 +0x3f770686 +// 0.754165 +0x3f4110f3 +// 0.711142 +0x3f360d65 +// 0.587141 +0x3f164edf +// 0.663216 +0x3f29c882 +// 0.558406 +0x3f0ef3ae +// 0.486692 +0x3ef92fbc +// 0.118436 +0x3df28ebf +// 0.494508 +0x3efd3024 +// 0.518392 +0x3f04b552 +// 0.461293 +0x3eec2ea7 +// 0.033888 +0x3d0ace9d +// 0.588277 +0x3f169953 +// 0.953013 +0x3f73f8b0 +// 0.022612 +0x3cb93be2 +// 0.000183 +0x39403be1 +// 0.546595 +0x3f0beda8 +// 0.209698 +0x3e56bb25 +// 0.796810 +0x3f4bfbb9 +// 0.361966 +0x3eb95397 +// 0.609215 +0x3f1bf58a +// 0.532554 +0x3f085572 +// 0.463366 +0x3eed3e4d +// 0.139539 +0x3e0ee340 +// 0.628848 +0x3f20fc36 +// 0.775611 +0x3f468e6e +// 0.025205 +0x3cce7a5e +// 0.291387 +0x3e9530ab +// 0.802305 +0x3f4d63d7 +// 0.474789 +0x3ef31786 +// 0.106620 +0x3dda5b7e +// 0.745083 +0x3f3ebdbb +// 0.177656 +0x3e35eb91 +// 0.230110 +0x3e6ba209 +// 0.770730 +0x3f454e88 +// 0.085663 +0x3daf7021 +// 0.791534 +0x3f4aa1f6 +// 0.525241 +0x3f06762a +// 0.283966 +0x3e916406 +// 0.823068 +0x3f52b49c +// 0.589594 +0x3f16efaa +// 0.473409 +0x3ef262a0 +// 0.337025 +0x3eac8e7f +// 0.956632 +0x3f74e5d2 +// 0.151366 +0x3e1affaf +// 0.686284 +0x3f2fb050 +// 0.885888 +0x3f62c990 +// 0.754843 +0x3f413d6c +// 0.687155 +0x3f2fe95e +// 0.477210 +0x3ef454d6 +// 0.154914 +0x3e1ea1e1 +// 0.832549 +0x3f5521eb +// 0.482492 +0x3ef70921 +// 0.190564 +0x3e432344 +// 0.644851 +0x3f2514f0 +// 0.411574 +0x3ed2b9cf +// 0.838661 +0x3f56b282 +// 0.996485 +0x3f7f199e +// 0.158135 +0x3e21ee25 +// 0.006741 +0x3bdce54a +// 0.401145 +0x3ecd62ea +// 0.084242 +0x3dac8726 +// 0.423921 +0x3ed90c27 +// 0.755393 +0x3f41616b +// 0.689148 +0x3f306c08 +// 0.520759 +0x3f05506f +// 0.160668 +0x3e24860b +// 0.072175 +0x3d93d045 diff --git a/Testing/Source/StatsTestsF32.cpp b/Testing/Source/StatsTestsF32.cpp new file mode 100755 index 00000000..0b1c7d25 --- /dev/null +++ b/Testing/Source/StatsTestsF32.cpp @@ -0,0 +1,155 @@ +#include "StatsTestsF32.h" +#include "Error.h" +#include "arm_math.h" +#include "Test.h" + +#include + + + void StatsTestsF32::test_entropy_f32() + { + const float32_t *inp = inputA.ptr(); + + float32_t *refp = ref.ptr(); + float32_t *outp = output.ptr(); + float32_t *result; + + for(int i=0;i < this->nbPatterns; i++) + { + *outp = arm_entropy_f32(inp,this->vecDim); + outp++; + inp += vecDim; + } + + ASSERT_NEAR_EQ(ref,output,(float32_t)1e-6); + } + + void StatsTestsF32::test_logsumexp_f32() + { + const float32_t *inp = inputA.ptr(); + + float32_t *refp = ref.ptr(); + float32_t *outp = output.ptr(); + float32_t *result; + + for(int i=0;i < this->nbPatterns; i++) + { + *outp = arm_logsumexp_f32(inp,this->vecDim); + outp++; + inp += vecDim; + } + + ASSERT_NEAR_EQ(ref,output,(float32_t)1e-6); + } + + + void StatsTestsF32::test_kullback_leibler_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *refp = ref.ptr(); + float32_t *outp = output.ptr(); + float32_t *result; + + for(int i=0;i < this->nbPatterns; i++) + { + *outp = arm_kullback_leibler_f32(inpA,inpB,this->vecDim); + outp++; + inpA += vecDim; + inpB += vecDim; + } + + ASSERT_NEAR_EQ(ref,output,(float32_t)1e-6); + } + + void StatsTestsF32::test_logsumexp_dot_prod_f32() + { + const float32_t *inpA = inputA.ptr(); + const float32_t *inpB = inputB.ptr(); + + float32_t *refp = ref.ptr(); + float32_t *outp = output.ptr(); + float32_t *tmpp = tmp.ptr(); + float32_t *result; + + for(int i=0;i < this->nbPatterns; i++) + { + *outp = arm_logsumexp_dot_prod_f32(inpA,inpB,this->vecDim,tmpp); + outp++; + inpA += vecDim; + inpB += vecDim; + } + + ASSERT_NEAR_EQ(ref,output,(float32_t)1e-6); + } + + + + void StatsTestsF32::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) + { + switch(id) + { + case StatsTestsF32::TEST_ENTROPY_F32_1: + { + inputA.reload(StatsTestsF32::INPUT1_F32_ID,mgr); + dims.reload(StatsTestsF32::DIM1_S16_ID,mgr); + ref.reload(StatsTestsF32::REF1_ENTROPY_F32_ID,mgr); + output.create(ref.nbSamples(),StatsTestsF32::OUT_F32_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + } + break; + + case StatsTestsF32::TEST_LOGSUMEXP_F32_2: + { + inputA.reload(StatsTestsF32::INPUT2_F32_ID,mgr); + dims.reload(StatsTestsF32::DIM2_S16_ID,mgr); + ref.reload(StatsTestsF32::REF2_LOGSUMEXP_F32_ID,mgr); + output.create(ref.nbSamples(),StatsTestsF32::OUT_F32_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + } + break; + + case StatsTestsF32::TEST_KULLBACK_LEIBLER_F32_3: + { + inputA.reload(StatsTestsF32::INPUTA3_F32_ID,mgr); + inputB.reload(StatsTestsF32::INPUTB3_F32_ID,mgr); + dims.reload(StatsTestsF32::DIM3_S16_ID,mgr); + ref.reload(StatsTestsF32::REF3_KL_F32_ID,mgr); + output.create(ref.nbSamples(),StatsTestsF32::OUT_F32_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + } + break; + + case StatsTestsF32::TEST_LOGSUMEXP_DOT_PROD_F32_4: + { + inputA.reload(StatsTestsF32::INPUTA4_F32_ID,mgr); + inputB.reload(StatsTestsF32::INPUTB4_F32_ID,mgr); + dims.reload(StatsTestsF32::DIM4_S16_ID,mgr); + ref.reload(StatsTestsF32::REF4_LOGSUMEXP_DOT_F32_ID,mgr); + output.create(ref.nbSamples(),StatsTestsF32::OUT_F32_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + + tmp.create(this->vecDim,StatsTestsF32::TMP_F32_ID,mgr); + } + break; + } + + } + + void StatsTestsF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) + { + output.dump(mgr); + } diff --git a/Testing/Source/SupportTestsF32.cpp b/Testing/Source/SupportTestsF32.cpp new file mode 100755 index 00000000..e71a7935 --- /dev/null +++ b/Testing/Source/SupportTestsF32.cpp @@ -0,0 +1,94 @@ +#include "SupportTestsF32.h" +#include "Error.h" +#include "arm_math.h" +#include "Test.h" + +#include + + + void SupportTestsF32::test_barycenter_f32() + { + const float32_t *inp = input.ptr(); + const float32_t *coefsp = coefs.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + arm_barycenter_f32(inp, coefsp, + outp, + this->nbVectors, + this->vecDim); + + inp += this->vecDim * this->nbVectors; + coefsp += this->nbVectors; + outp += this->vecDim; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + void SupportTestsF32::test_weighted_sum_f32() + { + const float32_t *inp = input.ptr(); + const float32_t *coefsp = coefs.ptr(); + + float32_t *outp = output.ptr(); + + for(int i=0; i < this->nbPatterns ; i ++) + { + *outp=arm_weighted_sum_f32(inp, coefsp, + this->vecDim); + + inp += this->vecDim; + coefsp += this->vecDim; + outp++; + } + + ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3); + } + + + void SupportTestsF32::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) + { + + switch(id) + { + case TEST_BARYCENTER_F32_1: + { + input.reload(SupportTestsF32::INPUTS1_F32_ID,mgr); + coefs.reload(SupportTestsF32::WEIGHTS1_F32_ID,mgr); + dims.reload(SupportTestsF32::DIMS1_S16_ID,mgr); + ref.reload(SupportTestsF32::REF1_F32_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + + this->nbPatterns=dimsp[0]; + this->nbVectors=dimsp[1]; + this->vecDim=dimsp[2]; + output.create(this->nbPatterns*this->vecDim,SupportTestsF32::OUT_F32_ID,mgr); + } + break; + + case TEST_WEIGHTED_SUM_F32_2: + input.reload(SupportTestsF32::INPUTS2_F32_ID,mgr); + coefs.reload(SupportTestsF32::WEIGHTS2_F32_ID,mgr); + dims.reload(SupportTestsF32::DIMS2_S16_ID,mgr); + ref.reload(SupportTestsF32::REF2_F32_ID,mgr); + + const int16_t *dimsp = dims.ptr(); + + this->nbPatterns=dimsp[0]; + this->vecDim=dimsp[1]; + output.create(this->nbPatterns,SupportTestsF32::OUT_F32_ID,mgr); + break; + } + + + + } + + void SupportTestsF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) + { + output.dump(mgr); + } diff --git a/Testing/TestDesc.txt b/Testing/TestDesc.txt index 990fb858..534b3222 100644 --- a/Testing/TestDesc.txt +++ b/Testing/TestDesc.txt @@ -5,25 +5,30 @@ n n y DSP -3 3 +3 2 n y -Bayes +Support 2 1 n y -BayesF32 +SupportF32 0 -5 -Dims1_s16.txt +8 Inputs1_f32.txt -Params1_f32.txt -Probas1_f32.txt -Predicts1_s16.txt -2 -Probas -Predicts +Dims1_s16.txt +Weights1_f32.txt +Ref1_f32.txt +Inputs2_f32.txt +Dims2_s16.txt +Weights2_f32.txt +Ref2_f32.txt +1 +Output 0 1 1 n n +1 2 +n +n diff --git a/Testing/desc.txt b/Testing/desc.txt index 4fb8c813..fba88d5d 100644 --- a/Testing/desc.txt +++ b/Testing/desc.txt @@ -5,6 +5,73 @@ group Root { class = DSPTests folder = DSP + group Statistics Tests { + class = StatsTests + folder = Stats + + suite Statistics Tests F32 { + class = StatsTestsF32 + folder = StatsF32 + + Pattern INPUT1_F32_ID : Input1_f32.txt + Pattern DIM1_S16_ID : Dims1_s16.txt + Pattern REF1_ENTROPY_F32_ID : RefEntropy1_f32.txt + + Pattern INPUT2_F32_ID : Input2_f32.txt + Pattern DIM2_S16_ID : Dims2_s16.txt + Pattern REF2_LOGSUMEXP_F32_ID : RefLogSumExp2_f32.txt + + Pattern INPUTA3_F32_ID : InputA3_f32.txt + Pattern INPUTB3_F32_ID : InputB3_f32.txt + Pattern DIM3_S16_ID : Dims3_s16.txt + Pattern REF3_KL_F32_ID : RefKL3_f32.txt + + Pattern INPUTA4_F32_ID : InputA4_f32.txt + Pattern INPUTB4_F32_ID : InputB4_f32.txt + Pattern DIM4_S16_ID : Dims4_s16.txt + Pattern REF4_LOGSUMEXP_DOT_F32_ID : RefLogSumExpDot4_f32.txt + + Output OUT_F32_ID : Output + Output TMP_F32_ID : Temp + + Functions { + arm_entropy_f32:test_entropy_f32 + arm_logsumexp_f32:test_logsumexp_f32 + arm_kullback_leibler_f32:test_kullback_leibler_f32 + arm_logsumexp_dot_prod_f32:test_logsumexp_dot_prod_f32 + } + + } + } + + group Support Tests { + class = SupportTests + folder = Support + + suite Support Tests F32 { + class = SupportTestsF32 + folder = SupportF32 + + Pattern INPUTS1_F32_ID : Inputs1_f32.txt + Pattern DIMS1_S16_ID : Dims1_s16.txt + Pattern WEIGHTS1_F32_ID : Weights1_f32.txt + Pattern REF1_F32_ID : Ref1_f32.txt + + Pattern INPUTS2_F32_ID : Inputs2_f32.txt + Pattern DIMS2_S16_ID : Dims2_s16.txt + Pattern WEIGHTS2_F32_ID : Weights2_f32.txt + Pattern REF2_F32_ID : Ref2_f32.txt + + Output OUT_F32_ID : Output + + Functions { + arm_barycenter_f32:test_barycenter_f32 + arm_weighted_sum_f32:test_weighted_sum_f32 + } + + } + } + group Basic Tests { class = BasicTests folder = BasicMaths