diff --git a/Include/dsp/support_functions_f16.h b/Include/dsp/support_functions_f16.h index be6e542a..e2bdb39e 100755 --- a/Include/dsp/support_functions_f16.h +++ b/Include/dsp/support_functions_f16.h @@ -26,12 +26,100 @@ #ifndef _SUPPORT_FUNCTIONS_F16_H_ #define _SUPPORT_FUNCTIONS_F16_H_ +#include "arm_math_types_f16.h" +#include "arm_math_memory.h" + +#include "dsp/none.h" +#include "dsp/utils.h" + #ifdef __cplusplus extern "C" { #endif #if defined(ARM_FLOAT16_SUPPORTED) + + /** + * @brief Copies the elements of a floating-point vector. + * @param[in] pSrc input pointer + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ +void arm_copy_f16(const float16_t * pSrc, float16_t * pDst, uint32_t blockSize); + + /** + * @brief Fills a constant value into a floating-point vector. + * @param[in] value input value to be filled + * @param[out] pDst output pointer + * @param[in] blockSize number of samples to process + */ +void arm_fill_f16(float16_t value, float16_t * pDst, uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] pSrc points to the f16 input vector + * @param[out] pDst points to the q15 output vector + * @param[in] blockSize length of the input vector + */ +void arm_f16_to_q15(const float16_t * pSrc, q15_t * pDst, uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] pSrc points to the q15 input vector + * @param[out] pDst points to the f16 output vector + * @param[in] blockSize length of the input vector + */ +void arm_q15_to_f16(const q15_t * pSrc, float16_t * pDst, uint32_t blockSize); + + +/** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] pSrc points to the f32 input vector + * @param[out] pDst points to the f16 output vector + * @param[in] blockSize length of the input vector + */ +void arm_float_to_f16(const float32_t * pSrc, float16_t * pDst, uint32_t blockSize); + +/** + * @brief Converts the elements of the floating-point vector to Q31 vector. + * @param[in] pSrc points to the f16 input vector + * @param[out] pDst points to the f32 output vector + * @param[in] blockSize length of the input vector + */ +void arm_f16_to_float(const float16_t * pSrc, float32_t * pDst, uint32_t blockSize); + +/** + * @brief Weighted sum + * + * + * @param[in] *in Array of input values. + * @param[in] *weigths Weights + * @param[in] blockSize Number of samples in the input array. + * @return Weighted sum + * + */ +float16_t arm_weighted_sum_f16(const float16_t *in + , const float16_t *weigths + , uint32_t blockSize); + +/** + * @brief Barycenter + * + * + * @param[in] in List of vectors + * @param[in] weights Weights of the vectors + * @param[out] out Barycenter + * @param[in] nbVectors Number of vectors + * @param[in] vecDim Dimension of space (vector dimension) + * @return None + * + */ +void arm_barycenter_f16(const float16_t *in + , const float16_t *weights + , float16_t *out + , uint32_t nbVectors + , uint32_t vecDim); + #endif /*defined(ARM_FLOAT16_SUPPORTED)*/ #ifdef __cplusplus } diff --git a/PythonWrapper/setup.py b/PythonWrapper/setup.py index 82b8b2a0..defb900c 100644 --- a/PythonWrapper/setup.py +++ b/PythonWrapper/setup.py @@ -25,6 +25,7 @@ transform.remove(os.path.join(ROOT,"Source","TransformFunctions","TransformFunct support = glob.glob(os.path.join(ROOT,"Source","SupportFunctions","*.c")) support.remove(os.path.join(ROOT,"Source","SupportFunctions","SupportFunctions.c")) +support.remove(os.path.join(ROOT,"Source","SupportFunctions","SupportFunctionsF16.c")) fastmath = glob.glob(os.path.join(ROOT,"Source","FastMathFunctions","*.c")) fastmath.remove(os.path.join(ROOT,"Source","FastMathFunctions","FastMathFunctions.c")) diff --git a/Source/SupportFunctions/CMakeLists.txt b/Source/SupportFunctions/CMakeLists.txt index c139c54a..41b13f27 100644 --- a/Source/SupportFunctions/CMakeLists.txt +++ b/Source/SupportFunctions/CMakeLists.txt @@ -15,5 +15,14 @@ configDsp(CMSISDSPSupport ${ROOT}) ### Includes target_include_directories(CMSISDSPSupport PUBLIC "${DSP}/Include") - +if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) +target_sources(CMSISDSPSupport PRIVATE arm_copy_f16.c) +target_sources(CMSISDSPSupport PRIVATE arm_fill_f16.c) +target_sources(CMSISDSPSupport PRIVATE arm_f16_to_q15.c) +target_sources(CMSISDSPSupport PRIVATE arm_q15_to_f16.c) +target_sources(CMSISDSPSupport PRIVATE arm_float_to_f16.c) +target_sources(CMSISDSPSupport PRIVATE arm_f16_to_float.c) +target_sources(CMSISDSPSupport PRIVATE arm_weighted_sum_f16.c) +target_sources(CMSISDSPSupport PRIVATE arm_barycenter_f16.c) +endif() diff --git a/Source/SupportFunctions/SupportFunctionsF16.c b/Source/SupportFunctions/SupportFunctionsF16.c new file mode 100755 index 00000000..0e39d8d1 --- /dev/null +++ b/Source/SupportFunctions/SupportFunctionsF16.c @@ -0,0 +1,36 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: SupportFunctions.c + * Description: Combination of all support function source files. + * + * $Date: 16. March 2020 + * $Revision: V1.1.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2019-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_copy_f16.c" +#include "arm_fill_f16.c" +#include "arm_f16_to_q15.c" +#include "arm_f16_to_float.c" +#include "arm_q15_to_f16.c" +#include "arm_float_to_f16.c" +#include "arm_weighted_sum_f16.c" +#include "arm_barycenter_f16.c" diff --git a/Source/SupportFunctions/arm_barycenter_f16.c b/Source/SupportFunctions/arm_barycenter_f16.c new file mode 100755 index 00000000..18ae0f43 --- /dev/null +++ b/Source/SupportFunctions/arm_barycenter_f16.c @@ -0,0 +1,262 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_barycenter_f16.c + * Description: Barycenter + * + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + +#include +#include + + +/** + @ingroup groupSupport + */ + + +/** + * @brief Barycenter + * + * + * @param[in] *in List of vectors + * @param[in] *weights Weights of the vectors + * @param[out] *out Barycenter + * @param[in] nbVectors Number of vectors + * @param[in] vecDim Dimension of space (vector dimension) + * @return None + * + */ + +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_barycenter_f16(const float16_t *in, + const float16_t *weights, + float16_t *out, + uint32_t nbVectors, + uint32_t vecDim) +{ + const float16_t *pIn, *pW; + const float16_t *pIn1, *pIn2, *pIn3, *pIn4; + float16_t *pOut; + uint32_t blkCntVector, blkCntSample; + float16_t accum, w; + + blkCntVector = nbVectors; + blkCntSample = vecDim; + + accum = 0.0f; + + pW = weights; + pIn = in; + + + arm_fill_f16(0.0f, out, vecDim); + + + /* Sum */ + pIn1 = pIn; + pIn2 = pIn1 + vecDim; + pIn3 = pIn2 + vecDim; + pIn4 = pIn3 + vecDim; + + blkCntVector = nbVectors >> 2; + while (blkCntVector > 0) + { + f16x8_t outV, inV1, inV2, inV3, inV4; + float16_t w1, w2, w3, w4; + + pOut = out; + w1 = *pW++; + w2 = *pW++; + w3 = *pW++; + w4 = *pW++; + accum += w1 + w2 + w3 + w4; + + blkCntSample = vecDim >> 3; + while (blkCntSample > 0) { + outV = vld1q((const float16_t *) pOut); + inV1 = vld1q(pIn1); + inV2 = vld1q(pIn2); + inV3 = vld1q(pIn3); + inV4 = vld1q(pIn4); + outV = vfmaq(outV, inV1, w1); + outV = vfmaq(outV, inV2, w2); + outV = vfmaq(outV, inV3, w3); + outV = vfmaq(outV, inV4, w4); + vst1q(pOut, outV); + + pOut += 8; + pIn1 += 8; + pIn2 += 8; + pIn3 += 8; + pIn4 += 8; + + blkCntSample--; + } + + blkCntSample = vecDim & 7; + 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) + { + f16x8_t inV, outV; + + pOut = out; + w = *pW++; + accum += w; + + blkCntSample = vecDim >> 3; + while (blkCntSample > 0) + { + outV = vld1q_f16(pOut); + inV = vld1q_f16(pIn); + outV = vfmaq(outV, inV, w); + vst1q_f16(pOut, outV); + pOut += 8; + pIn += 8; + + blkCntSample--; + } + + blkCntSample = vecDim & 7; + while (blkCntSample > 0) + { + *pOut = *pOut + *pIn++ * w; + pOut++; + blkCntSample--; + } + + blkCntVector--; + } + + /* Normalize */ + pOut = out; + accum = 1.0f / accum; + + blkCntSample = vecDim >> 3; + while (blkCntSample > 0) + { + f16x8_t tmp; + + tmp = vld1q((const float16_t *) pOut); + tmp = vmulq(tmp, accum); + vst1q(pOut, tmp); + pOut += 8; + blkCntSample--; + } + + blkCntSample = vecDim & 7; + while (blkCntSample > 0) + { + *pOut = *pOut * accum; + pOut++; + blkCntSample--; + } +} +#else +void arm_barycenter_f16(const float16_t *in, const float16_t *weights, float16_t *out, uint32_t nbVectors,uint32_t vecDim) +{ + + const float16_t *pIn,*pW; + float16_t *pOut; + uint32_t blkCntVector,blkCntSample; + float16_t accum, w; + + blkCntVector = nbVectors; + blkCntSample = vecDim; + + accum = 0.0f; + + pW = weights; + pIn = in; + + /* Set counters to 0 */ + blkCntSample = vecDim; + pOut = out; + + while(blkCntSample > 0) + { + *pOut = 0.0f; + 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 /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + * @} end of groupSupport group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_copy_f16.c b/Source/SupportFunctions/arm_copy_f16.c new file mode 100755 index 00000000..d5a02990 --- /dev/null +++ b/Source/SupportFunctions/arm_copy_f16.c @@ -0,0 +1,130 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_copy_f16.c + * Description: Copies the elements of a floating-point vector + * + * $Date: 18. March 2020 + * $Revision: V1.6.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + @ingroup groupSupport + */ + + +/** + @addtogroup copy + @{ + */ + +/** + @brief Copies the elements of a f16 vector. + @param[in] pSrc points to input vector + @param[out] pDst points to output vector + @param[in] blockSize number of samples in each vector + @return none + */ +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_copy_f16( + const float16_t * pSrc, + float16_t * pDst, + uint32_t blockSize) +{ + do { + mve_pred16_t p = vctp16q(blockSize); + + vstrhq_p_f16(pDst, + vldrhq_z_f16((float16_t const *) pSrc, p), p); + /* + * Decrement the blockSize loop counter + * Advance vector source and destination pointers + */ + pSrc += 8; + pDst += 8; + blockSize -= 8; + } + while ((int32_t) blockSize > 0); +} + +#else + +void arm_copy_f16( + const float16_t * pSrc, + float16_t * pDst, + uint32_t blockSize) +{ + uint32_t blkCnt; /* Loop counter */ + +#if defined (ARM_MATH_LOOPUNROLL) + + /* Loop unrolling: Compute 4 outputs at a time */ + blkCnt = blockSize >> 2U; + + while (blkCnt > 0U) + { + /* C = A */ + + /* Copy and store result in destination buffer */ + *pDst++ = *pSrc++; + *pDst++ = *pSrc++; + *pDst++ = *pSrc++; + *pDst++ = *pSrc++; + + /* Decrement loop counter */ + blkCnt--; + } + + /* Loop unrolling: Compute remaining outputs */ + blkCnt = blockSize % 0x4U; + +#else + + /* Initialize blkCnt with number of samples */ + blkCnt = blockSize; + +#endif /* #if defined (ARM_MATH_LOOPUNROLL) */ + + while (blkCnt > 0U) + { + /* C = A */ + + /* Copy and store result in destination buffer */ + *pDst++ = *pSrc++; + + /* Decrement loop counter */ + blkCnt--; + } +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + @} end of BasicCopy group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_f16_to_float.c b/Source/SupportFunctions/arm_f16_to_float.c new file mode 100755 index 00000000..8fec5ff6 --- /dev/null +++ b/Source/SupportFunctions/arm_f16_to_float.c @@ -0,0 +1,130 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_float_to_q15.c + * Description: Converts the elements of the floating-point vector to Q15 vector + * + * $Date: 18. March 2020 + * $Revision: V1.6.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + @ingroup groupSupport + */ + +/** + * @defgroup f16_to_x Convert 16-bit floating point value + */ + +/** + @addtogroup f16_to_x + @{ + */ + +/** + @brief Converts the elements of the f16 vector to f32 vector. + @param[in] pSrc points to the f16 input vector + @param[out] pDst points to the f32 output vector + @param[in] blockSize number of samples in each vector + @return none + + */ + +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_f16_to_float( + const float16_t * pSrc, + float32_t * pDst, + uint32_t blockSize) +{ + int32_t blkCnt; /* loop counters */ + float16x8_t vecDst; + float32x4x2_t tmp; + + blkCnt = blockSize >> 3; + while (blkCnt > 0) + { + vecDst = vldrhq_f16(pSrc); + pSrc += 8; + + tmp.val[0] = vcvtbq_f32_f16(vecDst); + tmp.val[1] = vcvttq_f32_f16(vecDst); + vst2q(pDst,tmp); + + pDst += 8; + /* + * Decrement the blockSize loop counter + */ + blkCnt--; + } + /* + * tail + * (will be merged thru tail predication) + */ + blkCnt = blockSize & 7; + while (blkCnt > 0) + { + + *pDst++ = (float32_t) *pSrc++; + /* + * Decrement the loop counter + */ + blkCnt--; + } +} + +#else +void arm_f16_to_float( + const float16_t * pSrc, + float32_t * pDst, + uint32_t blockSize) +{ + const float16_t *pIn = pSrc; /* Src pointer */ + uint32_t blkCnt; /* loop counter */ + + /* + * Loop over blockSize number of values + */ + blkCnt = blockSize; + + while (blkCnt > 0U) + { + + *pDst++ = (float32_t) * pIn++; + /* + * Decrement the loop counter + */ + blkCnt--; + } +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + @} end of f16_to_x group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_f16_to_q15.c b/Source/SupportFunctions/arm_f16_to_q15.c new file mode 100755 index 00000000..2c04b65a --- /dev/null +++ b/Source/SupportFunctions/arm_f16_to_q15.c @@ -0,0 +1,157 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_float_to_q15.c + * Description: Converts the elements of the floating-point vector to Q15 vector + * + * $Date: 18. March 2020 + * $Revision: V1.6.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + @ingroup groupSupport + */ + +/** + @addtogroup f16_to_x + @{ + */ + +/** + @brief Converts the elements of the f16 vector to Q15 vector. + @param[in] pSrc points to the f16 input vector + @param[out] pDst points to the Q15 output vector + @param[in] blockSize number of samples in each vector + @return none + + @par Details + The equation used for the conversion process is: +
+      pDst[n] = (q15_t)(pSrc[n] * 32768);   0 <= n < blockSize.
+  
+ + @par Scaling and Overflow Behavior + The function uses saturating arithmetic. + Results outside of the allowable Q15 range [0x8000 0x7FFF] are saturated. + + @note + In order to apply rounding in scalar version, the library should be rebuilt with the ROUNDING macro + defined in the preprocessor section of project options. + */ + +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_f16_to_q15( + const float16_t * pSrc, + q15_t * pDst, + uint32_t blockSize) +{ + float16_t maxQ = (float16_t) Q15_MAX; + float16x8_t vecDst; + + + do { + mve_pred16_t p = vctp16q(blockSize); + + vecDst = vldrhq_z_f16((float16_t const *) pSrc, p); + /* C = A * 32767 */ + /* convert from float to Q15 and then store the results in the destination buffer */ + vecDst = vmulq_m(vuninitializedq_f16(), vecDst, maxQ, p); + + vstrhq_p_s16(pDst, + vcvtaq_m(vuninitializedq_s16(), vecDst, p), p); + /* + * Decrement the blockSize loop counter + * Advance vector source and destination pointers + */ + pSrc += 8; + pDst += 8; + blockSize -= 8; + } + while ((int32_t) blockSize > 0); +} + +#else + +void arm_f16_to_q15( + const float16_t * pSrc, + q15_t * pDst, + uint32_t blockSize) +{ + const float16_t *pIn = pSrc; /* Src pointer */ + uint32_t blkCnt; /* loop counter */ +#ifdef ARM_MATH_ROUNDING + float16_t in; +#endif /* #ifdef ARM_MATH_ROUNDING */ + + /* + * Loop over blockSize number of values + */ + blkCnt = blockSize; + + while (blkCnt > 0U) + { + +#ifdef ARM_MATH_ROUNDING + + /* + * C = A * 65536 + */ + /* + * convert from float to Q31 and then store the results in the destination buffer + */ + in = *pIn++; + in = (in * 32768.0); + in += in > 0.0 ? 0.5 : -0.5; + *pDst++ = clip_q31_to_q15((q31_t) (in)); + +#else + + /* + * C = A * 32768 + */ + /* + * convert from float to Q31 and then store the results in the destination buffer + */ + *pDst++ = clip_q31_to_q15((q31_t) (*pIn++ * 32768.0)); + +#endif /* #ifdef ARM_MATH_ROUNDING */ + + /* + * Decrement the loop counter + */ + blkCnt--; + } + +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + @} end of f16_to_x group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_fill_f16.c b/Source/SupportFunctions/arm_fill_f16.c new file mode 100755 index 00000000..4f14785e --- /dev/null +++ b/Source/SupportFunctions/arm_fill_f16.c @@ -0,0 +1,127 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_fill_f16.c + * Description: Fills a constant value into a floating-point vector + * + * $Date: 18. March 2020 + * $Revision: V1.6.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + @ingroup groupSupport + */ + + +/** + @addtogroup Fill + @{ + */ + +/** + @brief Fills a constant value into a f16 vector. + @param[in] value input value to be filled + @param[out] pDst points to output vector + @param[in] blockSize number of samples in each vector + @return none + */ +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_fill_f16( + float16_t value, + float16_t * pDst, + uint32_t blockSize) +{ + do { + mve_pred16_t p = vctp16q(blockSize); + + vstrhq_p_f16(pDst, + vdupq_m_n_f16(vuninitializedq_f16(), value, p), p); + /* + * Decrement the blockSize loop counter + * Advance vector source and destination pointers + */ + pDst += 8; + blockSize -= 8; + } + while ((int32_t) blockSize > 0); +} +#else +void arm_fill_f16( + float16_t value, + float16_t * pDst, + uint32_t blockSize) +{ + uint32_t blkCnt; /* Loop counter */ + +#if defined (ARM_MATH_LOOPUNROLL) + + /* Loop unrolling: Compute 4 outputs at a time */ + blkCnt = blockSize >> 2U; + + while (blkCnt > 0U) + { + /* C = value */ + + /* Fill value in destination buffer */ + *pDst++ = value; + *pDst++ = value; + *pDst++ = value; + *pDst++ = value; + + /* Decrement loop counter */ + blkCnt--; + } + + /* Loop unrolling: Compute remaining outputs */ + blkCnt = blockSize % 0x4U; + +#else + + /* Initialize blkCnt with number of samples */ + blkCnt = blockSize; + +#endif /* #if defined (ARM_MATH_LOOPUNROLL) */ + + while (blkCnt > 0U) + { + /* C = value */ + + /* Fill value in destination buffer */ + *pDst++ = value; + + /* Decrement loop counter */ + blkCnt--; + } +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + @} end of Fill group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_float_to_f16.c b/Source/SupportFunctions/arm_float_to_f16.c new file mode 100755 index 00000000..170e8430 --- /dev/null +++ b/Source/SupportFunctions/arm_float_to_f16.c @@ -0,0 +1,127 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_float_to_q15.c + * Description: Converts the elements of the floating-point vector to Q15 vector + * + * $Date: 18. March 2020 + * $Revision: V1.6.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + @ingroup groupSupport + */ + +/** + @addtogroup float_to_x + @{ + */ + +/** + @brief Converts the elements of the floating-point vector to f16 vector. + @param[in] pSrc points to the f32 input vector + @param[out] pDst points to the f16 output vector + @param[in] blockSize number of samples in each vector + @return none + + */ + +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_float_to_f16( + const float32_t * pSrc, + float16_t * pDst, + uint32_t blockSize) +{ + int32_t blkCnt; /* loop counters */ + float32x4x2_t tmp; + float16x8_t vecDst; + float32_t const *pSrcVec; + + + pSrcVec = (float32_t const *) pSrc; + blkCnt = blockSize >> 3; + while (blkCnt > 0) + { + /* convert from float32 to float16 and then store the results in the destination buffer */ + tmp = vld2q(pSrcVec); pSrcVec += 8; + /* narrow / merge */ + vecDst = vcvtbq_f16_f32(vecDst, tmp.val[0]); + vecDst = vcvttq_f16_f32(vecDst, tmp.val[1]); + vst1q(pDst, vecDst); pDst += 8; + /* + * Decrement the blockSize loop counter + */ + blkCnt--; + } + + /* + * tail + */ + blkCnt = blockSize & 7; + if (blkCnt > 0) + { + mve_pred16_t p0 = vctp16q(blkCnt); + tmp = vld2q(pSrcVec); + vecDst = vcvtbq_f16_f32(vecDst, tmp.val[0]); + vecDst = vcvttq_f16_f32(vecDst, tmp.val[1]); + vstrhq_p(pDst, vecDst, p0); + } +} + +#else + +void arm_float_to_f16( + const float32_t * pSrc, + float16_t * pDst, + uint32_t blockSize) +{ + const float32_t *pIn = pSrc; /* Src pointer */ + uint32_t blkCnt; /* loop counter */ + + /* + * Loop over blockSize number of values + */ + blkCnt = blockSize; + + while (blkCnt > 0U) + { + + *pDst++ = (float16_t) * pIn++; + /* + * Decrement the loop counter + */ + blkCnt--; + } +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + @} end of float_to_x group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_q15_to_f16.c b/Source/SupportFunctions/arm_q15_to_f16.c new file mode 100755 index 00000000..8a8760a3 --- /dev/null +++ b/Source/SupportFunctions/arm_q15_to_f16.c @@ -0,0 +1,155 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_q15_to_float.c + * Description: Converts the elements of the Q15 vector to floating-point vector + * + * $Date: 18. March 2020 + * $Revision: V1.6.0 + * + * Target Processor: Cortex-M cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + @ingroup groupSupport + */ + +/** + * @defgroup q15_to_x Convert 16-bit Integer value + */ + +/** + @addtogroup q15_to_x + @{ + */ + +/** + @brief Converts the elements of the Q15 vector to f16 vector. + @param[in] pSrc points to the Q15 input vector + @param[out] pDst points to the f16 output vector + @param[in] blockSize number of samples in each vector + @return none + + @par Details + The equation used for the conversion process is: +
+      pDst[n] = (float16_t) pSrc[n] / 32768;   0 <= n < blockSize.
+  
+ */ + +#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +void arm_q15_to_f16( + const q15_t * pSrc, + float16_t * pDst, + uint32_t blockSize) +{ + int32_t blkCnt; /* loop counters */ + q15x8_t vecDst; + q15_t const *pSrcVec; + + pSrcVec = (q15_t const *) pSrc; + blkCnt = blockSize >> 3; + while (blkCnt > 0) + { + /* C = (float16_t) A / 32768 */ + /* convert from q15 to float and then store the results in the destination buffer */ + vecDst = vld1q(pSrcVec); pSrcVec += 8; + vstrhq(pDst, vcvtq_n_f16_s16(vecDst, 15)); pDst += 8; + /* + * Decrement the blockSize loop counter + */ + blkCnt--; + } + /* + * tail + * (will be merged thru tail predication) + */ + blkCnt = blockSize & 7; + if (blkCnt > 0) + { + mve_pred16_t p0 = vctp16q(blkCnt); + vecDst = vld1q(pSrcVec); pSrcVec += 8; + vstrhq_p(pDst, vcvtq_n_f16_s16(vecDst, 15), p0); + } +} +#else + +void arm_q15_to_f16( + const q15_t * pSrc, + float16_t * pDst, + uint32_t blockSize) +{ + uint32_t blkCnt; /* Loop counter */ + const q15_t *pIn = pSrc; /* Source pointer */ + +#if defined (ARM_MATH_LOOPUNROLL) + + /* Loop unrolling: Compute 4 outputs at a time */ + blkCnt = blockSize >> 2U; + + while (blkCnt > 0U) + { + /* C = (float16_t) A / 32768 */ + + /* Convert from q15 to float and store result in destination buffer */ + *pDst++ = ((float16_t) * pIn++ / 32768.0f); + *pDst++ = ((float16_t) * pIn++ / 32768.0f); + *pDst++ = ((float16_t) * pIn++ / 32768.0f); + *pDst++ = ((float16_t) * pIn++ / 32768.0f); + + /* Decrement loop counter */ + blkCnt--; + } + + /* Loop unrolling: Compute remaining outputs */ + blkCnt = blockSize % 0x4U; + +#else + + /* Initialize blkCnt with number of samples */ + blkCnt = blockSize; + +#endif /* #if defined (ARM_MATH_LOOPUNROLL) */ + + while (blkCnt > 0U) + { + /* C = (float16_t) A / 32768 */ + + /* Convert from q15 to float and store result in destination buffer */ + *pDst++ = ((float16_t) *pIn++ / 32768.0f); + + /* Decrement loop counter */ + blkCnt--; + } + +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + @} end of q15_to_x group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_weighted_sum_f16.c b/Source/SupportFunctions/arm_weighted_sum_f16.c new file mode 100755 index 00000000..1f3df946 --- /dev/null +++ b/Source/SupportFunctions/arm_weighted_sum_f16.c @@ -0,0 +1,135 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_weighted_sum_f16.c + * Description: Weighted Sum + * + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "arm_math.h" +#include +#include + +#include "dsp/support_functions_f16.h" + +#if defined(ARM_FLOAT16_SUPPORTED) + + +/** + * @addtogroup groupSupport + * @{ + */ + + +/** + * @brief Weighted sum + * + * + * @param[in] *in 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_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) + +#include "arm_helium_utils.h" + +float16_t arm_weighted_sum_f16(const float16_t *in,const float16_t *weigths, uint32_t blockSize) +{ + _Float16 accum1, accum2; + float16x8_t accum1V, accum2V; + float16x8_t inV, wV; + const float16_t *pIn, *pW; + uint32_t blkCnt; + + + pIn = in; + pW = weigths; + + + accum1V = vdupq_n_f16(0.0f16); + accum2V = vdupq_n_f16(0.0f16); + + blkCnt = blockSize >> 2; + while (blkCnt > 0) + { + inV = vld1q(pIn); + wV = vld1q(pW); + + pIn += 4; + pW += 4; + + accum1V = vfmaq(accum1V, inV, wV); + accum2V = vaddq(accum2V, wV); + blkCnt--; + } + + accum1 = vecAddAcrossF16Mve(accum1V); + accum2 = vecAddAcrossF16Mve(accum2V); + + blkCnt = blockSize & 3; + while(blkCnt > 0) + { + accum1 += (_Float16)*pIn++ * (_Float16)*pW; + accum2 += (_Float16)*pW++; + blkCnt--; + } + + + return (accum1 / accum2); +} + +#else + +float16_t arm_weighted_sum_f16(const float16_t *in, const float16_t *weigths, uint32_t blockSize) +{ + + _Float16 accum1, accum2; + const float16_t *pIn, *pW; + uint32_t blkCnt; + + + pIn = in; + pW = weigths; + + accum1=0.0f16; + accum2=0.0f16; + + blkCnt = blockSize; + while(blkCnt > 0) + { + accum1 += (_Float16)*pIn++ * (_Float16)*pW; + accum2 += (_Float16)*pW++; + blkCnt--; + } + + return(accum1 / accum2); +} +#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/** + * @} end of groupSupport group + */ + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ + diff --git a/Source/SupportFunctions/arm_weighted_sum_f32.c b/Source/SupportFunctions/arm_weighted_sum_f32.c index ac3d4819..9bbfe1d4 100755 --- a/Source/SupportFunctions/arm_weighted_sum_f32.c +++ b/Source/SupportFunctions/arm_weighted_sum_f32.c @@ -28,6 +28,7 @@ #include #include +#include "dsp/support_functions.h" /** * @addtogroup groupSupport diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index d277a6aa..ebc02ecc 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -337,6 +337,8 @@ set(TESTSRC16 Source/Tests/UnaryTestsF16.cpp Source/Tests/TransformCF16.cpp Source/Tests/TransformRF16.cpp + Source/Tests/SupportTestsF16.cpp + Source/Tests/SupportBarTestsF16.cpp ) endif() endif() diff --git a/Testing/Include/Tests/SupportBarTestsF16.h b/Testing/Include/Tests/SupportBarTestsF16.h new file mode 100755 index 00000000..bbc130fb --- /dev/null +++ b/Testing/Include/Tests/SupportBarTestsF16.h @@ -0,0 +1,24 @@ +#include "Test.h" +#include "Pattern.h" + +#include "dsp/support_functions_f16.h" + +class SupportBarTestsF16:public Client::Suite + { + public: + SupportBarTestsF16(Testing::testID_t id); + virtual void setUp(Testing::testID_t,std::vector& params,Client::PatternMgr *mgr); + virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr); + private: + #include "SupportBarTestsF16_decl.h" + Client::Pattern input; + Client::Pattern coefs; + Client::Pattern ref; + Client::Pattern dims; + + Client::LocalPattern output; + + int nbTests; + + + }; diff --git a/Testing/Include/Tests/SupportTestsF16.h b/Testing/Include/Tests/SupportTestsF16.h new file mode 100755 index 00000000..35260e18 --- /dev/null +++ b/Testing/Include/Tests/SupportTestsF16.h @@ -0,0 +1,33 @@ +#include "Test.h" +#include "Pattern.h" + +#include "dsp/support_functions_f16.h" + +class SupportTestsF16:public Client::Suite + { + public: + SupportTestsF16(Testing::testID_t id); + virtual void setUp(Testing::testID_t,std::vector& paramsArgs,Client::PatternMgr *mgr); + virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr); + private: + #include "SupportTestsF16_decl.h" + + Client::Pattern input; + Client::Pattern inputQ15; + Client::Pattern inputF32; + Client::Pattern coefs; + Client::LocalPattern buffer; + + Client::LocalPattern output; + Client::LocalPattern outputQ15; + Client::LocalPattern outputF32; + + // Reference patterns are not loaded when we are in dump mode + Client::RefPattern ref; + Client::RefPattern refQ15; + Client::RefPattern refF32; + + int nbSamples; + int offset; + + }; diff --git a/Testing/PatternGeneration/Support.py b/Testing/PatternGeneration/Support.py index 60de6998..81b5ebce 100755 --- a/Testing/PatternGeneration/Support.py +++ b/Testing/PatternGeneration/Support.py @@ -85,15 +85,27 @@ def writeTestsF32(config): va = np.random.rand(NBSAMPLES) va = Tools.normalize(va) config.writeInput(1,va,"Samples") - config.writeInputQ15(3,va,"Samples") config.writeInputQ31(4,va,"Samples") config.writeInputQ7(5,va,"Samples") + config.writeInputF16(11,va,"Samples") + # This is for benchmarking the weighted sum and we use only one test pattern genWsum(config,6) +def writeTestsF16(config): + NBSAMPLES=256 + + va = np.random.rand(NBSAMPLES) + va = Tools.normalize(va) + config.writeInputF32(1,va,"Samples") + config.writeInputQ15(3,va,"Samples") + config.writeInput(11,va,"Samples") + + # This is for benchmarking the weighted sum and we use only one test pattern + genWsum(config,6) def writeTestsQ31(config): NBSAMPLES=256 @@ -115,6 +127,7 @@ def writeTestsQ15(config): config.writeInput(3,va,"Samples") config.writeInputQ31(4,va,"Samples") config.writeInputQ7(5,va,"Samples") + config.writeInputF16(11,va,"Samples") def writeTestsQ7(config): NBSAMPLES=256 @@ -171,16 +184,19 @@ def generatePatterns(): PARAMDIR = os.path.join("Parameters","DSP","Support","Support") configf32=Tools.Config(PATTERNDIR,PARAMDIR,"f32") + configf16=Tools.Config(PATTERNDIR,PARAMDIR,"f16") configq31=Tools.Config(PATTERNDIR,PARAMDIR,"q31") configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15") configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7") writeTestsF32(configf32) + writeTestsF16(configf16) writeTestsQ31(configq31) writeTestsQ15(configq15) writeTestsQ7(configq7) writeTests2(configf32,0) + # For benchmarking we need to vary number of vectors and vector dimension separately @@ -188,8 +204,10 @@ def generatePatterns(): PARAMBARDIR = os.path.join("Parameters","DSP","SupportBar") configBarf32=Tools.Config(PATTERNBARDIR,PARAMBARDIR,"f32") + configBarf16=Tools.Config(PATTERNBARDIR,PARAMBARDIR,"f16") writeBarTests(configBarf32) + writeBarTests(configBarf16) if __name__ == '__main__': generatePatterns() diff --git a/Testing/Patterns/DSP/Support/SupportF16/Inputs6_f16.txt b/Testing/Patterns/DSP/Support/SupportF16/Inputs6_f16.txt new file mode 100755 index 00000000..417c4297 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF16/Inputs6_f16.txt @@ -0,0 +1,102 @@ +H +50 +// 0.549118 +0x3865 +// 0.782574 +0x3a43 +// 0.537389 +0x384d +// 0.576597 +0x389d +// 0.849496 +0x3acc +// 0.764850 +0x3a1e +// 0.539151 +0x3850 +// 0.459163 +0x3759 +// 0.352476 +0x35a4 +// 0.333343 +0x3555 +// 0.362662 +0x35cd +// 0.343928 +0x3581 +// 0.046084 +0x29e6 +// 0.583088 +0x38aa +// 0.464789 +0x3770 +// 0.659567 +0x3947 +// 0.177360 +0x31ad +// 0.465121 +0x3771 +// 0.849010 +0x3acb +// 0.748383 +0x39fd +// 0.493254 +0x37e4 +// 0.023579 +0x2609 +// 0.354457 +0x35ac +// 0.880690 +0x3b0c +// 0.029813 +0x27a2 +// 0.338038 +0x3569 +// 0.724386 +0x39cc +// 0.341454 +0x3577 +// 0.676073 +0x3969 +// 0.041176 +0x2945 +// 0.214019 +0x32d9 +// 0.322539 +0x3529 +// 0.499026 +0x37fc +// 0.616038 +0x38ee +// 0.688882 +0x3983 +// 0.066439 +0x2c41 +// 0.094981 +0x2e14 +// 0.873092 +0x3afc +// 0.642707 +0x3924 +// 0.537527 +0x384d +// 0.370953 +0x35ef +// 0.450042 +0x3733 +// 0.434679 +0x36f4 +// 0.676789 +0x396a +// 0.303649 +0x34dc +// 0.076930 +0x2cec +// 0.871305 +0x3af8 +// 0.855053 +0x3ad7 +// 0.498935 +0x37fc +// 0.854980 +0x3ad7 diff --git a/Testing/Patterns/DSP/Support/SupportF16/Ref6_f16.txt b/Testing/Patterns/DSP/Support/SupportF16/Ref6_f16.txt new file mode 100755 index 00000000..3d238667 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF16/Ref6_f16.txt @@ -0,0 +1,8 @@ +H +3 +// 0.544937 +0x385c +// 0.581009 +0x38a6 +// 0.504352 +0x3809 diff --git a/Testing/Patterns/DSP/Support/SupportF16/Samples11_f16.txt b/Testing/Patterns/DSP/Support/SupportF16/Samples11_f16.txt new file mode 100755 index 00000000..6fb7f195 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF16/Samples11_f16.txt @@ -0,0 +1,514 @@ +H +256 +// 0.232213 +0x336e +// 0.160670 +0x3124 +// 0.314001 +0x3506 +// 0.360407 +0x35c4 +// 0.166373 +0x3153 +// 0.728551 +0x39d4 +// 0.248761 +0x33f6 +// 0.520383 +0x382a +// 0.394236 +0x364f +// 0.566054 +0x3887 +// 0.270999 +0x3456 +// 0.277125 +0x346f +// 0.720051 +0x39c3 +// 0.143232 +0x3095 +// 0.953418 +0x3ba1 +// 0.926008 +0x3b68 +// 0.298628 +0x34c7 +// 0.453645 +0x3742 +// 0.854467 +0x3ad6 +// 0.634962 +0x3914 +// 0.020716 +0x254e +// 0.201798 +0x3275 +// 0.754917 +0x3a0a +// 0.160460 +0x3122 +// 0.860240 +0x3ae2 +// 0.456928 +0x3750 +// 0.798465 +0x3a63 +// 0.606581 +0x38da +// 0.918952 +0x3b5a +// 0.840406 +0x3ab9 +// 0.882951 +0x3b10 +// 0.788696 +0x3a4f +// 0.872629 +0x3afb +// 0.739226 +0x39ea +// 0.851721 +0x3ad0 +// 0.721847 +0x39c6 +// 0.064343 +0x2c1e +// 0.155535 +0x30fa +// 0.296368 +0x34be +// 0.602155 +0x38d1 +// 0.668798 +0x395a +// 0.567897 +0x388b +// 0.027349 +0x2700 +// 0.208933 +0x32b0 +// 0.391116 +0x3642 +// 0.320529 +0x3521 +// 0.239981 +0x33ae +// 0.742395 +0x39f0 +// 0.302185 +0x34d6 +// 0.297422 +0x34c2 +// 0.339546 +0x356f +// 0.606334 +0x38da +// 0.802948 +0x3a6c +// 0.783320 +0x3a44 +// 0.301217 +0x34d2 +// 0.392084 +0x3646 +// 0.906930 +0x3b41 +// 0.784974 +0x3a48 +// 0.820630 +0x3a91 +// 0.555112 +0x3871 +// 0.249777 +0x33fe +// 0.397971 +0x365e +// 0.766186 +0x3a21 +// 0.102160 +0x2e8a +// 0.932833 +0x3b76 +// 0.232574 +0x3371 +// 0.351984 +0x35a2 +// 0.413864 +0x369f +// 0.649752 +0x3933 +// 0.661229 +0x394a +// 0.160011 +0x311f +// 0.515113 +0x381f +// 0.401695 +0x366d +// 0.639391 +0x391d +// 0.184963 +0x31eb +// 0.309950 +0x34f6 +// 0.997266 +0x3bfa +// 0.442989 +0x3716 +// 0.687126 +0x397f +// 0.791793 +0x3a56 +// 0.450806 +0x3737 +// 0.857254 +0x3adc +// 0.103779 +0x2ea4 +// 0.866772 +0x3aef +// 0.052627 +0x2abc +// 0.228961 +0x3354 +// 0.479702 +0x37ad +// 0.988195 +0x3be8 +// 0.073056 +0x2cad +// 0.716525 +0x39bb +// 0.346232 +0x358a +// 0.040766 +0x2938 +// 0.774048 +0x3a31 +// 0.484317 +0x37c0 +// 0.253514 +0x340e +// 0.186310 +0x31f6 +// 0.498707 +0x37fb +// 0.941175 +0x3b88 +// 0.897112 +0x3b2d +// 0.756706 +0x3a0e +// 0.510568 +0x3816 +// 0.361185 +0x35c7 +// 0.924279 +0x3b65 +// 0.213337 +0x32d4 +// 0.434672 +0x36f4 +// 0.608576 +0x38de +// 0.488150 +0x37cf +// 0.216525 +0x32ee +// 0.137149 +0x3064 +// 0.659985 +0x3948 +// 0.176793 +0x31a8 +// 0.217174 +0x32f3 +// 0.622483 +0x38fb +// 0.050904 +0x2a84 +// 0.736709 +0x39e5 +// 0.568254 +0x388c +// 0.295369 +0x34ba +// 0.789799 +0x3a52 +// 0.756526 +0x3a0d +// 0.261791 +0x3430 +// 0.779672 +0x3a3d +// 0.369407 +0x35e9 +// 0.317762 +0x3516 +// 0.070755 +0x2c87 +// 0.570782 +0x3891 +// 0.785270 +0x3a48 +// 0.765575 +0x3a20 +// 0.093798 +0x2e01 +// 0.287046 +0x3498 +// 0.164721 +0x3145 +// 0.669478 +0x395b +// 0.270905 +0x3456 +// 0.528716 +0x383b +// 0.229784 +0x335a +// 0.246877 +0x33e6 +// 0.034023 +0x285b +// 0.167404 +0x315b +// 0.981554 +0x3bda +// 0.134720 +0x3050 +// 0.430314 +0x36e3 +// 0.203442 +0x3283 +// 0.010579 +0x216b +// 0.593494 +0x38bf +// 0.227444 +0x3347 +// 0.504467 +0x3809 +// 0.086099 +0x2d83 +// 0.061914 +0x2bed +// 0.091971 +0x2de3 +// 0.695435 +0x3990 +// 0.477607 +0x37a4 +// 0.559673 +0x387a +// 0.401697 +0x366d +// 0.816674 +0x3a89 +// 0.417955 +0x36b0 +// 0.255284 +0x3416 +// 0.138090 +0x306b +// 0.864719 +0x3aeb +// 0.830540 +0x3aa5 +// 1.000000 +0x3c00 +// 0.264740 +0x343c +// 0.256583 +0x341b +// 0.512447 +0x3819 +// 0.017940 +0x2498 +// 0.361380 +0x35c8 +// 0.167601 +0x315d +// 0.116623 +0x2f77 +// 0.954834 +0x3ba3 +// 0.698154 +0x3996 +// 0.474653 +0x3798 +// 0.736439 +0x39e4 +// 0.523479 +0x3830 +// 0.669148 +0x395a +// 0.628036 +0x3906 +// 0.663049 +0x394e +// 0.784101 +0x3a46 +// 0.150674 +0x30d2 +// 0.425963 +0x36d1 +// 0.903916 +0x3b3b +// 0.761962 +0x3a18 +// 0.088827 +0x2daf +// 0.175334 +0x319c +// 0.094504 +0x2e0c +// 0.839851 +0x3ab8 +// 0.904541 +0x3b3c +// 0.611002 +0x38e3 +// 0.973025 +0x3bc9 +// 0.375334 +0x3601 +// 0.408567 +0x3689 +// 0.275563 +0x3469 +// 0.336170 +0x3561 +// 0.684577 +0x397a +// 0.701685 +0x399d +// 0.879323 +0x3b09 +// 0.851562 +0x3ad0 +// 0.687842 +0x3981 +// 0.432475 +0x36eb +// 0.471428 +0x378b +// 0.498133 +0x37f8 +// 0.884369 +0x3b13 +// 0.540393 +0x3853 +// 0.690243 +0x3986 +// 0.406783 +0x3682 +// 0.119419 +0x2fa5 +// 0.871600 +0x3af9 +// 0.590247 +0x38b9 +// 0.829816 +0x3aa3 +// 0.026947 +0x26e6 +// 0.885707 +0x3b16 +// 0.007491 +0x1fac +// 0.019259 +0x24ee +// 0.355738 +0x35b1 +// 0.510329 +0x3815 +// 0.438521 +0x3704 +// 0.020706 +0x254d +// 0.808353 +0x3a78 +// 0.556563 +0x3874 +// 0.168611 +0x3165 +// 0.640904 +0x3921 +// 0.929503 +0x3b70 +// 0.363973 +0x35d3 +// 0.806832 +0x3a74 +// 0.228931 +0x3353 +// 0.006998 +0x1f2b +// 0.979839 +0x3bd7 +// 0.370853 +0x35ef +// 0.723556 +0x39ca +// 0.328841 +0x3543 +// 0.096281 +0x2e29 +// 0.699122 +0x3998 +// 0.057076 +0x2b4e +// 0.321814 +0x3526 +// 0.781857 +0x3a41 +// 0.563734 +0x3883 +// 0.079375 +0x2d14 +// 0.336694 +0x3563 +// 0.516908 +0x3823 +// 0.000134 +0x865 +// 0.158567 +0x3113 +// 0.227195 +0x3345 +// 0.539051 +0x3850 +// 0.119377 +0x2fa4 +// 0.085954 +0x2d80 +// 0.875148 +0x3b00 +// 0.717698 +0x39be +// 0.186023 +0x31f4 +// 0.260592 +0x342b +// 0.066414 +0x2c40 +// 0.188375 +0x3207 +// 0.692106 +0x3989 +// 0.295660 +0x34bb +// 0.163717 +0x313d +// 0.381374 +0x361a +// 0.451327 +0x3739 +// 0.853639 +0x3ad4 +// 0.919007 +0x3b5a +// 0.515822 +0x3820 diff --git a/Testing/Patterns/DSP/Support/SupportF16/Samples1_f32.txt b/Testing/Patterns/DSP/Support/SupportF16/Samples1_f32.txt new file mode 100755 index 00000000..ba2c2c78 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF16/Samples1_f32.txt @@ -0,0 +1,514 @@ +W +256 +// 0.232213 +0x3e6dc924 +// 0.160670 +0x3e2486b6 +// 0.314001 +0x3ea0c4b0 +// 0.360407 +0x3eb8873d +// 0.166373 +0x3e2a5dcc +// 0.728551 +0x3f3a8256 +// 0.248761 +0x3e7ebb3f +// 0.520383 +0x3f0537d7 +// 0.394236 +0x3ec9d94d +// 0.566054 +0x3f10e8eb +// 0.270999 +0x3e8ac054 +// 0.277125 +0x3e8de34d +// 0.720051 +0x3f38553f +// 0.143232 +0x3e12ab5c +// 0.953418 +0x3f741331 +// 0.926008 +0x3f6d0edf +// 0.298628 +0x3e98e5bc +// 0.453645 +0x3ee8441e +// 0.854467 +0x3f5abe5e +// 0.634962 +0x3f228ce2 +// 0.020716 +0x3ca9b3f0 +// 0.201798 +0x3e4ea407 +// 0.754917 +0x3f414244 +// 0.160460 +0x3e244fbe +// 0.860240 +0x3f5c38b0 +// 0.456928 +0x3ee9f27c +// 0.798465 +0x3f4c6833 +// 0.606581 +0x3f1b48e3 +// 0.918952 +0x3f6b4071 +// 0.840406 +0x3f5724df +// 0.882951 +0x3f62091b +// 0.788696 +0x3f49e803 +// 0.872629 +0x3f5f64a1 +// 0.739226 +0x3f3d3de7 +// 0.851721 +0x3f5a0a5b +// 0.721847 +0x3f38caf3 +// 0.064343 +0x3d83c65c +// 0.155535 +0x3e1f44b3 +// 0.296368 +0x3e97bd96 +// 0.602155 +0x3f1a26d1 +// 0.668798 +0x3f2b3656 +// 0.567897 +0x3f1161b7 +// 0.027349 +0x3ce00b2d +// 0.208933 +0x3e55f2a5 +// 0.391116 +0x3ec84050 +// 0.320529 +0x3ea41c61 +// 0.239981 +0x3e75bd9c +// 0.742395 +0x3f3e0d99 +// 0.302185 +0x3e9ab80e +// 0.297422 +0x3e9847ac +// 0.339546 +0x3eadd8f5 +// 0.606334 +0x3f1b38b1 +// 0.802948 +0x3f4d8e05 +// 0.783320 +0x3f4887ab +// 0.301217 +0x3e9a3928 +// 0.392084 +0x3ec8bf3b +// 0.906930 +0x3f682c8c +// 0.784974 +0x3f48f40f +// 0.820630 +0x3f5214d5 +// 0.555112 +0x3f0e1bd0 +// 0.249777 +0x3e7fc575 +// 0.397971 +0x3ecbc2d6 +// 0.766186 +0x3f4424c0 +// 0.102160 +0x3dd13961 +// 0.932833 +0x3f6ece1e +// 0.232574 +0x3e6e27da +// 0.351984 +0x3eb43742 +// 0.413864 +0x3ed3e600 +// 0.649752 +0x3f265621 +// 0.661229 +0x3f294646 +// 0.160011 +0x3e23da06 +// 0.515113 +0x3f03de74 +// 0.401695 +0x3ecdaae9 +// 0.639391 +0x3f23af22 +// 0.184963 +0x3e3d66f3 +// 0.309950 +0x3e9eb1b7 +// 0.997266 +0x3f7f4ccb +// 0.442989 +0x3ee2cf65 +// 0.687126 +0x3f2fe785 +// 0.791793 +0x3f4ab2ea +// 0.450806 +0x3ee6d007 +// 0.857254 +0x3f5b7500 +// 0.103779 +0x3dd48a16 +// 0.866772 +0x3f5de4c3 +// 0.052627 +0x3d578efb +// 0.228961 +0x3e6a74b3 +// 0.479702 +0x3ef59b6f +// 0.988195 +0x3f7cfa5f +// 0.073056 +0x3d959e7c +// 0.716525 +0x3f376e35 +// 0.346232 +0x3eb14546 +// 0.040766 +0x3d26fa91 +// 0.774048 +0x3f462803 +// 0.484317 +0x3ef7f86d +// 0.253514 +0x3e81cc9e +// 0.186310 +0x3e3ec7f1 +// 0.498707 +0x3eff5680 +// 0.941175 +0x3f70f0df +// 0.897112 +0x3f65a925 +// 0.756706 +0x3f41b77f +// 0.510568 +0x3f02b49b +// 0.361185 +0x3eb8ed41 +// 0.924279 +0x3f6c9d8d +// 0.213337 +0x3e5a750f +// 0.434672 +0x3ede8d52 +// 0.608576 +0x3f1bcba6 +// 0.488150 +0x3ef9eece +// 0.216525 +0x3e5db8a2 +// 0.137149 +0x3e0c70ea +// 0.659985 +0x3f28f4c1 +// 0.176793 +0x3e350932 +// 0.217174 +0x3e5e62e1 +// 0.622483 +0x3f1f5b05 +// 0.050904 +0x3d50808b +// 0.736709 +0x3f3c98fb +// 0.568254 +0x3f11791d +// 0.295369 +0x3e973a8d +// 0.789799 +0x3f4a303f +// 0.756526 +0x3f41abaa +// 0.261791 +0x3e860968 +// 0.779672 +0x3f479891 +// 0.369407 +0x3ebd22dd +// 0.317762 +0x3ea2b1a4 +// 0.070755 +0x3d90e7fd +// 0.570782 +0x3f121ec0 +// 0.785270 +0x3f49077b +// 0.765575 +0x3f43fcc1 +// 0.093798 +0x3dc018fa +// 0.287046 +0x3e92f7a8 +// 0.164721 +0x3e28acbb +// 0.669478 +0x3f2b62f0 +// 0.270905 +0x3e8ab40e +// 0.528716 +0x3f0759ef +// 0.229784 +0x3e6b4c76 +// 0.246877 +0x3e7ccd69 +// 0.034023 +0x3d0b5c0e +// 0.167404 +0x3e2b6c0b +// 0.981554 +0x3f7b4725 +// 0.134720 +0x3e09f429 +// 0.430314 +0x3edc5225 +// 0.203442 +0x3e5052ff +// 0.010579 +0x3c2d5312 +// 0.593494 +0x3f17ef38 +// 0.227444 +0x3e68e722 +// 0.504467 +0x3f0124b8 +// 0.086099 +0x3db054ad +// 0.061914 +0x3d7d99d6 +// 0.091971 +0x3dbc5b8b +// 0.695435 +0x3f320806 +// 0.477607 +0x3ef488da +// 0.559673 +0x3f0f46bb +// 0.401697 +0x3ecdab35 +// 0.816674 +0x3f51118c +// 0.417955 +0x3ed5fe3d +// 0.255284 +0x3e82b4a4 +// 0.138090 +0x3e0d677a +// 0.864719 +0x3f5d5e34 +// 0.830540 +0x3f549e4d +// 1.000000 +0x3f800000 +// 0.264740 +0x3e878bf5 +// 0.256583 +0x3e835ee8 +// 0.512447 +0x3f032fc2 +// 0.017940 +0x3c92f727 +// 0.361380 +0x3eb906cc +// 0.167601 +0x3e2b9f88 +// 0.116623 +0x3deed844 +// 0.954834 +0x3f747000 +// 0.698154 +0x3f32ba35 +// 0.474653 +0x3ef305c4 +// 0.736439 +0x3f3c8745 +// 0.523479 +0x3f0602ba +// 0.669148 +0x3f2b4d46 +// 0.628036 +0x3f20c6ff +// 0.663049 +0x3f29bd96 +// 0.784101 +0x3f48bad0 +// 0.150674 +0x3e1a4a43 +// 0.425963 +0x3eda17ca +// 0.903916 +0x3f676708 +// 0.761962 +0x3f430ff7 +// 0.088827 +0x3db5eb23 +// 0.175334 +0x3e338ac1 +// 0.094504 +0x3dc18b6d +// 0.839851 +0x3f570079 +// 0.904541 +0x3f678ffc +// 0.611002 +0x3f1c6a9f +// 0.973025 +0x3f791831 +// 0.375334 +0x3ec02bb9 +// 0.408567 +0x3ed12fa1 +// 0.275563 +0x3e8d1691 +// 0.336170 +0x3eac1e7c +// 0.684577 +0x3f2f4073 +// 0.701685 +0x3f33a19a +// 0.879323 +0x3f611b48 +// 0.851562 +0x3f59ffff +// 0.687842 +0x3f30166e +// 0.432475 +0x3edd6d54 +// 0.471428 +0x3ef15ef6 +// 0.498133 +0x3eff0b45 +// 0.884369 +0x3f6265fb +// 0.540393 +0x3f0a5736 +// 0.690243 +0x3f30b3c8 +// 0.406783 +0x3ed045e9 +// 0.119419 +0x3df4920d +// 0.871600 +0x3f5f212a +// 0.590247 +0x3f171a71 +// 0.829816 +0x3f546ed0 +// 0.026947 +0x3cdcbfbb +// 0.885707 +0x3f62bdb0 +// 0.007491 +0x3bf57904 +// 0.019259 +0x3c9dc503 +// 0.355738 +0x3eb6234c +// 0.510329 +0x3f02a4e8 +// 0.438521 +0x3ee085d6 +// 0.020706 +0x3ca99f7a +// 0.808353 +0x3f4ef040 +// 0.556563 +0x3f0e7aed +// 0.168611 +0x3e2ca85b +// 0.640904 +0x3f241250 +// 0.929503 +0x3f6df3e2 +// 0.363973 +0x3eba5aab +// 0.806832 +0x3f4e8c84 +// 0.228931 +0x3e6a6d03 +// 0.006998 +0x3be552df +// 0.979839 +0x3f7ad6b8 +// 0.370853 +0x3ebde06c +// 0.723556 +0x3f393af9 +// 0.328841 +0x3ea85de8 +// 0.096281 +0x3dc52f10 +// 0.699122 +0x3f32f9b1 +// 0.057076 +0x3d69c847 +// 0.321814 +0x3ea4c4d4 +// 0.781857 +0x3f4827cc +// 0.563734 +0x3f1050e4 +// 0.079375 +0x3da28f6e +// 0.336694 +0x3eac631d +// 0.516908 +0x3f04541c +// 0.000134 +0x390ca629 +// 0.158567 +0x3e225f7d +// 0.227195 +0x3e68a5b0 +// 0.539051 +0x3f09ff3f +// 0.119377 +0x3df47be2 +// 0.085954 +0x3db00868 +// 0.875148 +0x3f6009b6 +// 0.717698 +0x3f37bb10 +// 0.186023 +0x3e3e7cc2 +// 0.260592 +0x3e856c5f +// 0.066414 +0x3d880450 +// 0.188375 +0x3e40e56d +// 0.692106 +0x3f312dda +// 0.295660 +0x3e9760cd +// 0.163717 +0x3e27a550 +// 0.381374 +0x3ec3437a +// 0.451327 +0x3ee71457 +// 0.853639 +0x3f5a881e +// 0.919007 +0x3f6b4411 +// 0.515822 +0x3f040cf0 diff --git a/Testing/Patterns/DSP/Support/SupportF16/Samples3_q15.txt b/Testing/Patterns/DSP/Support/SupportF16/Samples3_q15.txt new file mode 100755 index 00000000..9b344655 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF16/Samples3_q15.txt @@ -0,0 +1,514 @@ +H +256 +// 0.232213 +0x1DB9 +// 0.160670 +0x1491 +// 0.314001 +0x2831 +// 0.360407 +0x2E22 +// 0.166373 +0x154C +// 0.728551 +0x5D41 +// 0.248761 +0x1FD7 +// 0.520383 +0x429C +// 0.394236 +0x3276 +// 0.566054 +0x4874 +// 0.270999 +0x22B0 +// 0.277125 +0x2379 +// 0.720051 +0x5C2B +// 0.143232 +0x1255 +// 0.953418 +0x7A0A +// 0.926008 +0x7687 +// 0.298628 +0x2639 +// 0.453645 +0x3A11 +// 0.854467 +0x6D5F +// 0.634962 +0x5146 +// 0.020716 +0x02A7 +// 0.201798 +0x19D5 +// 0.754917 +0x60A1 +// 0.160460 +0x148A +// 0.860240 +0x6E1C +// 0.456928 +0x3A7D +// 0.798465 +0x6634 +// 0.606581 +0x4DA4 +// 0.918952 +0x75A0 +// 0.840406 +0x6B92 +// 0.882951 +0x7105 +// 0.788696 +0x64F4 +// 0.872629 +0x6FB2 +// 0.739226 +0x5E9F +// 0.851721 +0x6D05 +// 0.721847 +0x5C65 +// 0.064343 +0x083C +// 0.155535 +0x13E9 +// 0.296368 +0x25EF +// 0.602155 +0x4D13 +// 0.668798 +0x559B +// 0.567897 +0x48B1 +// 0.027349 +0x0380 +// 0.208933 +0x1ABE +// 0.391116 +0x3210 +// 0.320529 +0x2907 +// 0.239981 +0x1EB8 +// 0.742395 +0x5F07 +// 0.302185 +0x26AE +// 0.297422 +0x2612 +// 0.339546 +0x2B76 +// 0.606334 +0x4D9C +// 0.802948 +0x66C7 +// 0.783320 +0x6444 +// 0.301217 +0x268E +// 0.392084 +0x3230 +// 0.906930 +0x7416 +// 0.784974 +0x647A +// 0.820630 +0x690A +// 0.555112 +0x470E +// 0.249777 +0x1FF9 +// 0.397971 +0x32F1 +// 0.766186 +0x6212 +// 0.102160 +0x0D14 +// 0.932833 +0x7767 +// 0.232574 +0x1DC5 +// 0.351984 +0x2D0E +// 0.413864 +0x34FA +// 0.649752 +0x532B +// 0.661229 +0x54A3 +// 0.160011 +0x147B +// 0.515113 +0x41EF +// 0.401695 +0x336B +// 0.639391 +0x51D8 +// 0.184963 +0x17AD +// 0.309950 +0x27AC +// 0.997266 +0x7FA6 +// 0.442989 +0x38B4 +// 0.687126 +0x57F4 +// 0.791793 +0x6559 +// 0.450806 +0x39B4 +// 0.857254 +0x6DBB +// 0.103779 +0x0D49 +// 0.866772 +0x6EF2 +// 0.052627 +0x06BC +// 0.228961 +0x1D4F +// 0.479702 +0x3D67 +// 0.988195 +0x7E7D +// 0.073056 +0x095A +// 0.716525 +0x5BB7 +// 0.346232 +0x2C51 +// 0.040766 +0x0538 +// 0.774048 +0x6314 +// 0.484317 +0x3DFE +// 0.253514 +0x2073 +// 0.186310 +0x17D9 +// 0.498707 +0x3FD6 +// 0.941175 +0x7878 +// 0.897112 +0x72D5 +// 0.756706 +0x60DC +// 0.510568 +0x415A +// 0.361185 +0x2E3B +// 0.924279 +0x764F +// 0.213337 +0x1B4F +// 0.434672 +0x37A3 +// 0.608576 +0x4DE6 +// 0.488150 +0x3E7C +// 0.216525 +0x1BB7 +// 0.137149 +0x118E +// 0.659985 +0x547A +// 0.176793 +0x16A1 +// 0.217174 +0x1BCC +// 0.622483 +0x4FAE +// 0.050904 +0x0684 +// 0.736709 +0x5E4C +// 0.568254 +0x48BD +// 0.295369 +0x25CF +// 0.789799 +0x6518 +// 0.756526 +0x60D6 +// 0.261791 +0x2182 +// 0.779672 +0x63CC +// 0.369407 +0x2F49 +// 0.317762 +0x28AC +// 0.070755 +0x090E +// 0.570782 +0x490F +// 0.785270 +0x6484 +// 0.765575 +0x61FE +// 0.093798 +0x0C02 +// 0.287046 +0x24BE +// 0.164721 +0x1516 +// 0.669478 +0x55B1 +// 0.270905 +0x22AD +// 0.528716 +0x43AD +// 0.229784 +0x1D6A +// 0.246877 +0x1F9A +// 0.034023 +0x045B +// 0.167404 +0x156E +// 0.981554 +0x7DA4 +// 0.134720 +0x113F +// 0.430314 +0x3715 +// 0.203442 +0x1A0A +// 0.010579 +0x015B +// 0.593494 +0x4BF8 +// 0.227444 +0x1D1D +// 0.504467 +0x4092 +// 0.086099 +0x0B05 +// 0.061914 +0x07ED +// 0.091971 +0x0BC6 +// 0.695435 +0x5904 +// 0.477607 +0x3D22 +// 0.559673 +0x47A3 +// 0.401697 +0x336B +// 0.816674 +0x6889 +// 0.417955 +0x3580 +// 0.255284 +0x20AD +// 0.138090 +0x11AD +// 0.864719 +0x6EAF +// 0.830540 +0x6A4F +// 1.000000 +0x7FFF +// 0.264740 +0x21E3 +// 0.256583 +0x20D8 +// 0.512447 +0x4198 +// 0.017940 +0x024C +// 0.361380 +0x2E42 +// 0.167601 +0x1574 +// 0.116623 +0x0EEE +// 0.954834 +0x7A38 +// 0.698154 +0x595D +// 0.474653 +0x3CC1 +// 0.736439 +0x5E44 +// 0.523479 +0x4301 +// 0.669148 +0x55A7 +// 0.628036 +0x5063 +// 0.663049 +0x54DF +// 0.784101 +0x645D +// 0.150674 +0x1349 +// 0.425963 +0x3686 +// 0.903916 +0x73B4 +// 0.761962 +0x6188 +// 0.088827 +0x0B5F +// 0.175334 +0x1671 +// 0.094504 +0x0C19 +// 0.839851 +0x6B80 +// 0.904541 +0x73C8 +// 0.611002 +0x4E35 +// 0.973025 +0x7C8C +// 0.375334 +0x300B +// 0.408567 +0x344C +// 0.275563 +0x2346 +// 0.336170 +0x2B08 +// 0.684577 +0x57A0 +// 0.701685 +0x59D1 +// 0.879323 +0x708E +// 0.851562 +0x6D00 +// 0.687842 +0x580B +// 0.432475 +0x375B +// 0.471428 +0x3C58 +// 0.498133 +0x3FC3 +// 0.884369 +0x7133 +// 0.540393 +0x452C +// 0.690243 +0x585A +// 0.406783 +0x3411 +// 0.119419 +0x0F49 +// 0.871600 +0x6F91 +// 0.590247 +0x4B8D +// 0.829816 +0x6A37 +// 0.026947 +0x0373 +// 0.885707 +0x715F +// 0.007491 +0x00F5 +// 0.019259 +0x0277 +// 0.355738 +0x2D89 +// 0.510329 +0x4152 +// 0.438521 +0x3821 +// 0.020706 +0x02A6 +// 0.808353 +0x6778 +// 0.556563 +0x473D +// 0.168611 +0x1595 +// 0.640904 +0x5209 +// 0.929503 +0x76FA +// 0.363973 +0x2E97 +// 0.806832 +0x6746 +// 0.228931 +0x1D4E +// 0.006998 +0x00E5 +// 0.979839 +0x7D6B +// 0.370853 +0x2F78 +// 0.723556 +0x5C9D +// 0.328841 +0x2A17 +// 0.096281 +0x0C53 +// 0.699122 +0x597D +// 0.057076 +0x074E +// 0.321814 +0x2931 +// 0.781857 +0x6414 +// 0.563734 +0x4828 +// 0.079375 +0x0A29 +// 0.336694 +0x2B19 +// 0.516908 +0x422A +// 0.000134 +0x0004 +// 0.158567 +0x144C +// 0.227195 +0x1D15 +// 0.539051 +0x4500 +// 0.119377 +0x0F48 +// 0.085954 +0x0B01 +// 0.875148 +0x7005 +// 0.717698 +0x5BDE +// 0.186023 +0x17D0 +// 0.260592 +0x215B +// 0.066414 +0x0880 +// 0.188375 +0x181D +// 0.692106 +0x5897 +// 0.295660 +0x25D8 +// 0.163717 +0x14F5 +// 0.381374 +0x30D1 +// 0.451327 +0x39C5 +// 0.853639 +0x6D44 +// 0.919007 +0x75A2 +// 0.515822 +0x4206 diff --git a/Testing/Patterns/DSP/Support/SupportF16/Weights6_f16.txt b/Testing/Patterns/DSP/Support/SupportF16/Weights6_f16.txt new file mode 100755 index 00000000..37e2e382 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF16/Weights6_f16.txt @@ -0,0 +1,102 @@ +H +50 +// 0.873606 +0x3afd +// 0.005892 +0x1e09 +// 0.669526 +0x395b +// 0.198146 +0x3257 +// 0.032904 +0x2836 +// 0.829321 +0x3aa2 +// 0.044536 +0x29b3 +// 0.842708 +0x3abe +// 0.981319 +0x3bda +// 0.274000 +0x3462 +// 0.509194 +0x3813 +// 0.994965 +0x3bf6 +// 0.572766 +0x3895 +// 0.557596 +0x3876 +// 0.306704 +0x34e8 +// 0.983822 +0x3bdf +// 0.145555 +0x30a8 +// 0.539088 +0x3850 +// 0.527526 +0x3838 +// 0.501409 +0x3803 +// 0.249480 +0x33fc +// 0.273503 +0x3460 +// 0.567660 +0x388b +// 0.741561 +0x39ef +// 0.458026 +0x3754 +// 0.239162 +0x33a7 +// 0.731739 +0x39db +// 0.662458 +0x394d +// 0.024779 +0x2658 +// 0.086811 +0x2d8e +// 0.660991 +0x394a +// 0.834424 +0x3aad +// 0.163672 +0x313d +// 0.120432 +0x2fb5 +// 0.593488 +0x38bf +// 0.973784 +0x3bca +// 0.167473 +0x315c +// 0.858171 +0x3ade +// 0.986637 +0x3be5 +// 0.223556 +0x3327 +// 0.382377 +0x361e +// 0.757667 +0x3a10 +// 0.032219 +0x2820 +// 0.574024 +0x3898 +// 0.125286 +0x3002 +// 0.946997 +0x3b93 +// 0.942443 +0x3b8a +// 0.152563 +0x30e2 +// 0.240567 +0x33b3 +// 0.160261 +0x3121 diff --git a/Testing/Patterns/DSP/Support/SupportF32/Samples11_f16.txt b/Testing/Patterns/DSP/Support/SupportF32/Samples11_f16.txt new file mode 100755 index 00000000..b9108238 --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportF32/Samples11_f16.txt @@ -0,0 +1,514 @@ +H +256 +// 0.928092 +0x3b6d +// 0.368183 +0x35e4 +// 0.571198 +0x3892 +// 0.792987 +0x3a58 +// 0.135043 +0x3052 +// 0.516565 +0x3822 +// 0.380247 +0x3615 +// 0.801799 +0x3a6a +// 0.742622 +0x39f1 +// 0.298445 +0x34c6 +// 0.766190 +0x3a21 +// 0.804265 +0x3a6f +// 0.564469 +0x3884 +// 0.081104 +0x2d31 +// 0.617799 +0x38f1 +// 0.820545 +0x3a90 +// 0.593758 +0x38c0 +// 0.701100 +0x399c +// 0.773487 +0x3a30 +// 0.901279 +0x3b36 +// 0.159429 +0x311a +// 0.334302 +0x3559 +// 0.501954 +0x3804 +// 0.996636 +0x3bf9 +// 0.691333 +0x3988 +// 0.082747 +0x2d4c +// 0.099107 +0x2e58 +// 0.934495 +0x3b7a +// 0.681699 +0x3974 +// 0.214758 +0x32df +// 0.414598 +0x36a2 +// 0.881974 +0x3b0e +// 0.794914 +0x3a5c +// 0.233253 +0x3377 +// 0.225136 +0x3334 +// 0.285668 +0x3492 +// 0.980818 +0x3bd9 +// 0.081656 +0x2d3a +// 0.275447 +0x3468 +// 0.091711 +0x2ddf +// 0.305875 +0x34e5 +// 0.815844 +0x3a87 +// 0.326304 +0x3539 +// 0.638931 +0x391d +// 0.768513 +0x3a26 +// 0.202206 +0x3278 +// 0.922609 +0x3b62 +// 0.792886 +0x3a58 +// 0.202354 +0x327a +// 0.691668 +0x3989 +// 0.545673 +0x385e +// 0.612396 +0x38e6 +// 0.496877 +0x37f3 +// 1.000000 +0x3c00 +// 0.085321 +0x2d76 +// 0.508319 +0x3811 +// 0.618905 +0x38f4 +// 0.966952 +0x3bbc +// 0.149469 +0x30c8 +// 0.554524 +0x3870 +// 0.803000 +0x3a6d +// 0.123715 +0x2feb +// 0.318080 +0x3517 +// 0.222870 +0x3322 +// 0.536545 +0x384b +// 0.310211 +0x34f7 +// 0.944334 +0x3b8e +// 0.108977 +0x2ef9 +// 0.667889 +0x3958 +// 0.697683 +0x3995 +// 0.782407 +0x3a42 +// 0.980594 +0x3bd8 +// 0.746447 +0x39f9 +// 0.739605 +0x39eb +// 0.162644 +0x3134 +// 0.109875 +0x2f08 +// 0.073911 +0x2cbb +// 0.256218 +0x3419 +// 0.147305 +0x30b7 +// 0.798973 +0x3a64 +// 0.785710 +0x3a49 +// 0.406120 +0x367f +// 0.958986 +0x3bac +// 0.743674 +0x39f3 +// 0.377807 +0x360b +// 0.197856 +0x3255 +// 0.993848 +0x3bf3 +// 0.305295 +0x34e2 +// 0.642877 +0x3925 +// 0.813812 +0x3a83 +// 0.406699 +0x3682 +// 0.347775 +0x3590 +// 0.402117 +0x366f +// 0.350357 +0x359b +// 0.863235 +0x3ae8 +// 0.087246 +0x2d95 +// 0.406586 +0x3681 +// 0.784430 +0x3a47 +// 0.088875 +0x2db0 +// 0.214557 +0x32de +// 0.336660 +0x3563 +// 0.695285 +0x3990 +// 0.484991 +0x37c3 +// 0.604672 +0x38d6 +// 0.887005 +0x3b19 +// 0.625025 +0x3900 +// 0.442401 +0x3714 +// 0.649450 +0x3932 +// 0.535042 +0x3848 +// 0.566616 +0x3888 +// 0.702968 +0x39a0 +// 0.443387 +0x3718 +// 0.691643 +0x3988 +// 0.148938 +0x30c4 +// 0.422130 +0x36c1 +// 0.519010 +0x3827 +// 0.003557 +0x1b49 +// 0.353880 +0x35a9 +// 0.191210 +0x321e +// 0.222550 +0x331f +// 0.151175 +0x30d6 +// 0.451442 +0x3739 +// 0.178088 +0x31b3 +// 0.829812 +0x3aa3 +// 0.362210 +0x35cc +// 0.023579 +0x2609 +// 0.240655 +0x33b3 +// 0.281067 +0x347f +// 0.292393 +0x34ae +// 0.495214 +0x37ec +// 0.164700 +0x3145 +// 0.081812 +0x2d3c +// 0.686087 +0x397d +// 0.989710 +0x3beb +// 0.534037 +0x3846 +// 0.953629 +0x3ba1 +// 0.470394 +0x3787 +// 0.589032 +0x38b6 +// 0.066748 +0x2c46 +// 0.591349 +0x38bb +// 0.595815 +0x38c4 +// 0.199585 +0x3263 +// 0.964677 +0x3bb8 +// 0.957099 +0x3ba8 +// 0.314884 +0x350a +// 0.363945 +0x35d3 +// 0.379587 +0x3613 +// 0.823508 +0x3a97 +// 0.476943 +0x37a2 +// 0.576599 +0x389d +// 0.976197 +0x3bcf +// 0.648911 +0x3931 +// 0.388403 +0x3637 +// 0.743286 +0x39f2 +// 0.651643 +0x3937 +// 0.582673 +0x38a9 +// 0.837353 +0x3ab3 +// 0.737360 +0x39e6 +// 0.463983 +0x376c +// 0.669884 +0x395c +// 0.480094 +0x37ae +// 0.175549 +0x319e +// 0.900248 +0x3b34 +// 0.901717 +0x3b37 +// 0.062953 +0x2c07 +// 0.292839 +0x34af +// 0.152965 +0x30e5 +// 0.493216 +0x37e4 +// 0.674409 +0x3965 +// 0.766926 +0x3a23 +// 0.163727 +0x313d +// 0.783660 +0x3a45 +// 0.774835 +0x3a33 +// 0.573664 +0x3897 +// 0.864757 +0x3aeb +// 0.323017 +0x352b +// 0.140309 +0x307d +// 0.906016 +0x3b40 +// 0.413709 +0x369f +// 0.692897 +0x398b +// 0.052492 +0x2ab8 +// 0.775660 +0x3a35 +// 0.968980 +0x3bc0 +// 0.827482 +0x3a9f +// 0.826842 +0x3a9d +// 0.390995 +0x3642 +// 0.045299 +0x29cc +// 0.717154 +0x39bd +// 0.857862 +0x3add +// 0.949625 +0x3b99 +// 0.849718 +0x3acc +// 0.649719 +0x3933 +// 0.251719 +0x3407 +// 0.251616 +0x3407 +// 0.327955 +0x353f +// 0.722739 +0x39c8 +// 0.975739 +0x3bce +// 0.485316 +0x37c4 +// 0.988757 +0x3be9 +// 0.222821 +0x3321 +// 0.495650 +0x37ee +// 0.299410 +0x34ca +// 0.648484 +0x3930 +// 0.798967 +0x3a64 +// 0.168396 +0x3163 +// 0.921487 +0x3b5f +// 0.611067 +0x38e3 +// 0.392697 +0x3648 +// 0.733527 +0x39de +// 0.272622 +0x345d +// 0.922768 +0x3b62 +// 0.002421 +0x18f5 +// 0.028643 +0x2755 +// 0.063584 +0x2c12 +// 0.646145 +0x392b +// 0.825908 +0x3a9b +// 0.394134 +0x364e +// 0.145785 +0x30aa +// 0.887541 +0x3b1a +// 0.112269 +0x2f2f +// 0.316360 +0x3510 +// 0.962913 +0x3bb4 +// 0.613137 +0x38e8 +// 0.037422 +0x28ca +// 0.754094 +0x3a08 +// 0.655590 +0x393f +// 0.505835 +0x380c +// 0.101144 +0x2e79 +// 0.566300 +0x3888 +// 0.005654 +0x1dca +// 0.017671 +0x2486 +// 0.762087 +0x3a19 +// 0.279619 +0x3479 +// 0.528099 +0x383a +// 0.054468 +0x2af9 +// 0.897809 +0x3b2f +// 0.279912 +0x347b +// 0.092985 +0x2df3 +// 0.001031 +0x1439 +// 0.493187 +0x37e4 +// 0.668156 +0x3958 +// 0.095851 +0x2e22 +// 0.074376 +0x2cc3 +// 0.053116 +0x2acd +// 0.086791 +0x2d8e +// 0.546554 +0x385f +// 0.841710 +0x3abc +// 0.920885 +0x3b5e +// 0.460475 +0x375e +// 0.473652 +0x3794 +// 0.995239 +0x3bf6 +// 0.933960 +0x3b79 +// 0.432443 +0x36eb +// 0.068078 +0x2c5b +// 0.218448 +0x32fe +// 0.882461 +0x3b0f diff --git a/Testing/Patterns/DSP/Support/SupportQ15/Samples11_f16.txt b/Testing/Patterns/DSP/Support/SupportQ15/Samples11_f16.txt new file mode 100755 index 00000000..867922de --- /dev/null +++ b/Testing/Patterns/DSP/Support/SupportQ15/Samples11_f16.txt @@ -0,0 +1,514 @@ +H +256 +// 0.828976 +0x3aa2 +// 0.701268 +0x399c +// 0.851200 +0x3acf +// 0.961544 +0x3bb1 +// 0.473197 +0x3792 +// 0.101768 +0x2e83 +// 0.966664 +0x3bbc +// 0.071066 +0x2c8c +// 0.724660 +0x39cc +// 0.657955 +0x3943 +// 0.781047 +0x3a40 +// 0.540825 +0x3854 +// 0.089603 +0x2dbc +// 0.386455 +0x362f +// 0.267020 +0x3446 +// 0.024196 +0x2632 +// 0.177265 +0x31ac +// 0.448938 +0x372f +// 0.429568 +0x36e0 +// 0.846378 +0x3ac5 +// 0.028887 +0x2765 +// 0.414852 +0x36a3 +// 0.594031 +0x38c1 +// 0.915098 +0x3b52 +// 0.734150 +0x39e0 +// 0.566120 +0x3887 +// 0.582418 +0x38a9 +// 0.333086 +0x3554 +// 0.794628 +0x3a5b +// 0.795664 +0x3a5e +// 0.373510 +0x35fa +// 0.865132 +0x3aec +// 0.647046 +0x392d +// 0.660646 +0x3949 +// 0.669314 +0x395b +// 0.149604 +0x30ca +// 0.814072 +0x3a83 +// 0.195463 +0x3241 +// 0.590355 +0x38b9 +// 0.610765 +0x38e3 +// 0.429719 +0x36e0 +// 0.925605 +0x3b68 +// 0.465498 +0x3773 +// 0.282325 +0x3484 +// 0.921245 +0x3b5f +// 0.349939 +0x3599 +// 0.203195 +0x3281 +// 0.810807 +0x3a7d +// 0.520470 +0x382a +// 0.831099 +0x3aa6 +// 0.182119 +0x31d4 +// 0.671885 +0x3960 +// 0.156237 +0x3100 +// 0.508236 +0x3811 +// 0.304914 +0x34e1 +// 0.459547 +0x375a +// 0.982341 +0x3bdc +// 0.586868 +0x38b2 +// 0.663244 +0x394e +// 0.247314 +0x33ea +// 0.381579 +0x361b +// 0.963080 +0x3bb4 +// 0.785647 +0x3a49 +// 0.694654 +0x398f +// 0.176717 +0x31a8 +// 0.743054 +0x39f2 +// 0.258432 +0x3423 +// 0.780450 +0x3a3e +// 0.472522 +0x378f +// 0.015113 +0x23bd +// 0.213243 +0x32d3 +// 0.825883 +0x3a9b +// 0.210115 +0x32b9 +// 0.317289 +0x3514 +// 0.885566 +0x3b16 +// 0.684442 +0x397a +// 0.309746 +0x34f5 +// 0.037463 +0x28cc +// 0.446993 +0x3727 +// 0.962961 +0x3bb4 +// 0.912866 +0x3b4e +// 0.686169 +0x397d +// 0.445227 +0x3720 +// 0.024713 +0x2654 +// 0.205483 +0x3293 +// 0.335312 +0x355d +// 0.804661 +0x3a70 +// 0.363307 +0x35d0 +// 0.393693 +0x364d +// 0.207496 +0x32a4 +// 0.942392 +0x3b8a +// 0.178303 +0x31b5 +// 0.571629 +0x3893 +// 0.242732 +0x33c4 +// 0.049779 +0x2a5f +// 0.449441 +0x3731 +// 0.685840 +0x397d +// 0.161048 +0x3127 +// 0.941780 +0x3b89 +// 0.374247 +0x35fd +// 0.644811 +0x3929 +// 0.536383 +0x384b +// 0.605545 +0x38d8 +// 0.696571 +0x3993 +// 0.887784 +0x3b1a +// 0.746876 +0x39fa +// 0.438161 +0x3703 +// 0.320703 +0x3522 +// 0.191811 +0x3223 +// 0.381322 +0x361a +// 0.724961 +0x39cd +// 0.858548 +0x3ade +// 0.608865 +0x38df +// 0.705759 +0x39a5 +// 0.026812 +0x26dd +// 0.760236 +0x3a15 +// 0.781340 +0x3a40 +// 0.505424 +0x380b +// 0.518898 +0x3827 +// 0.292720 +0x34af +// 0.295414 +0x34ba +// 0.143398 +0x3097 +// 0.204531 +0x328c +// 0.448830 +0x372e +// 0.408056 +0x3687 +// 0.124796 +0x2ffd +// 0.226856 +0x3342 +// 0.281641 +0x3482 +// 0.316026 +0x350e +// 0.632438 +0x390f +// 0.849437 +0x3acc +// 0.544719 +0x385c +// 0.378390 +0x360e +// 0.502774 +0x3806 +// 0.106363 +0x2ecf +// 0.751638 +0x3a03 +// 0.015356 +0x23dd +// 0.652852 +0x3939 +// 0.884592 +0x3b14 +// 0.198046 +0x3256 +// 0.120470 +0x2fb6 +// 0.281926 +0x3483 +// 0.382527 +0x361f +// 0.554751 +0x3870 +// 0.444027 +0x371b +// 0.471118 +0x378a +// 0.957779 +0x3baa +// 0.426181 +0x36d2 +// 0.524349 +0x3832 +// 0.768101 +0x3a25 +// 0.147446 +0x30b8 +// 0.416878 +0x36ac +// 0.088127 +0x2da4 +// 0.448862 +0x372f +// 0.524513 +0x3832 +// 0.832445 +0x3aa9 +// 0.698128 +0x3996 +// 0.484999 +0x37c3 +// 0.902391 +0x3b38 +// 0.433745 +0x36f1 +// 0.010281 +0x2144 +// 0.179654 +0x31c0 +// 0.936824 +0x3b7f +// 0.556005 +0x3873 +// 0.563006 +0x3881 +// 0.398727 +0x3661 +// 0.779867 +0x3a3d +// 0.200420 +0x326a +// 0.979296 +0x3bd6 +// 0.698000 +0x3996 +// 0.897483 +0x3b2e +// 0.508605 +0x3812 +// 0.826625 +0x3a9d +// 0.193984 +0x3235 +// 0.520778 +0x382b +// 0.135033 +0x3052 +// 0.637960 +0x391b +// 1.000000 +0x3c00 +// 0.530107 +0x383e +// 0.297845 +0x34c4 +// 0.618321 +0x38f2 +// 0.053367 +0x2ad5 +// 0.938301 +0x3b82 +// 0.854077 +0x3ad5 +// 0.640969 +0x3921 +// 0.902974 +0x3b39 +// 0.174120 +0x3192 +// 0.047430 +0x2a12 +// 0.838782 +0x3ab6 +// 0.726417 +0x39d0 +// 0.131666 +0x3037 +// 0.095405 +0x2e1b +// 0.382679 +0x361f +// 0.569925 +0x388f +// 0.562668 +0x3880 +// 0.495394 +0x37ed +// 0.615876 +0x38ed +// 0.629130 +0x3908 +// 0.048796 +0x2a3f +// 0.068318 +0x2c5f +// 0.760713 +0x3a16 +// 0.705848 +0x39a6 +// 0.850479 +0x3ace +// 0.088611 +0x2dac +// 0.259089 +0x3425 +// 0.524642 +0x3832 +// 0.231038 +0x3365 +// 0.374284 +0x35fd +// 0.092343 +0x2de9 +// 0.008590 +0x2066 +// 0.850167 +0x3acd +// 0.772895 +0x3a2f +// 0.275516 +0x3469 +// 0.338602 +0x356b +// 0.436539 +0x36fc +// 0.890658 +0x3b20 +// 0.642485 +0x3924 +// 0.905353 +0x3b3e +// 0.548387 +0x3863 +// 0.262145 +0x3432 +// 0.184135 +0x31e4 +// 0.093348 +0x2df9 +// 0.746791 +0x39f9 +// 0.279910 +0x347b +// 0.429754 +0x36e0 +// 0.317862 +0x3516 +// 0.646375 +0x392c +// 0.022641 +0x25cc +// 0.175964 +0x31a1 +// 0.641328 +0x3921 +// 0.706863 +0x39a8 +// 0.387399 +0x3633 +// 0.882597 +0x3b10 +// 0.726396 +0x39d0 +// 0.147333 +0x30b7 +// 0.638180 +0x391b +// 0.127333 +0x3013 +// 0.662982 +0x394e +// 0.566727 +0x3889 +// 0.939104 +0x3b83 +// 0.785249 +0x3a48 +// 0.464104 +0x376d +// 0.550282 +0x3867 +// 0.948345 +0x3b96 +// 0.221296 +0x3315 +// 0.403497 +0x3675 +// 0.230993 +0x3364 +// 0.917234 +0x3b56 +// 0.321136 +0x3523 +// 0.420607 +0x36bb +// 0.381449 +0x361a +// 0.552719 +0x386c +// 0.939476 +0x3b84 +// 0.100416 +0x2e6d +// 0.357449 +0x35b8 +// 0.316799 +0x3512 diff --git a/Testing/Patterns/DSP/SupportBarF16/Coefs1_f16.txt b/Testing/Patterns/DSP/SupportBarF16/Coefs1_f16.txt new file mode 100755 index 00000000..41ef74d1 --- /dev/null +++ b/Testing/Patterns/DSP/SupportBarF16/Coefs1_f16.txt @@ -0,0 +1,258 @@ +H +128 +// 0.956870 +0x3ba8 +// 0.496988 +0x37f4 +// 0.081595 +0x2d39 +// 0.409254 +0x368c +// 0.303503 +0x34db +// 0.214610 +0x32de +// 0.692067 +0x3989 +// 0.663186 +0x394e +// 0.421168 +0x36bd +// 0.565000 +0x3885 +// 0.848443 +0x3aca +// 0.251959 +0x3408 +// 0.906224 +0x3b40 +// 0.225606 +0x3338 +// 0.334127 +0x3559 +// 0.361348 +0x35c8 +// 0.538468 +0x384f +// 0.566696 +0x3889 +// 0.782401 +0x3a42 +// 0.881794 +0x3b0e +// 0.666430 +0x3955 +// 0.911880 +0x3b4c +// 0.139435 +0x3076 +// 0.588459 +0x38b5 +// 0.780194 +0x3a3e +// 0.835910 +0x3ab0 +// 0.065313 +0x2c2e +// 0.619731 +0x38f5 +// 0.284354 +0x348d +// 0.022623 +0x25cb +// 0.038803 +0x28f7 +// 0.946211 +0x3b92 +// 0.100064 +0x2e67 +// 0.829055 +0x3aa2 +// 0.173715 +0x318f +// 0.553661 +0x386e +// 0.326809 +0x353b +// 0.940537 +0x3b86 +// 0.787262 +0x3a4c +// 0.849207 +0x3acb +// 0.214522 +0x32dd +// 0.289448 +0x34a2 +// 0.224730 +0x3331 +// 0.628871 +0x3908 +// 0.156498 +0x3102 +// 0.890163 +0x3b1f +// 0.009359 +0x20cb +// 0.577976 +0x38a0 +// 0.658599 +0x3945 +// 0.699156 +0x3998 +// 0.001193 +0x14e3 +// 0.314851 +0x350a +// 0.192745 +0x322b +// 0.301540 +0x34d3 +// 0.438487 +0x3704 +// 0.813333 +0x3a82 +// 0.694723 +0x398f +// 0.280421 +0x347d +// 0.430809 +0x36e5 +// 0.419525 +0x36b6 +// 0.436903 +0x36fe +// 0.620851 +0x38f8 +// 0.321395 +0x3524 +// 0.604003 +0x38d5 +// 0.185005 +0x31ec +// 0.488674 +0x37d2 +// 0.650474 +0x3934 +// 0.869135 +0x3af4 +// 0.713748 +0x39b6 +// 0.520951 +0x382b +// 0.362701 +0x35ce +// 0.699791 +0x3999 +// 0.427493 +0x36d7 +// 0.047511 +0x2a15 +// 0.098553 +0x2e4f +// 0.423265 +0x36c6 +// 0.970148 +0x3bc3 +// 0.136748 +0x3060 +// 0.918154 +0x3b58 +// 0.515897 +0x3821 +// 0.244997 +0x33d7 +// 0.369781 +0x35eb +// 0.613708 +0x38e9 +// 0.520651 +0x382a +// 0.326945 +0x353b +// 0.682006 +0x3975 +// 0.074692 +0x2cc8 +// 0.137713 +0x3068 +// 0.208111 +0x32a9 +// 0.634047 +0x3913 +// 0.857670 +0x3add +// 0.507829 +0x3810 +// 0.358574 +0x35bd +// 0.376590 +0x3607 +// 0.297378 +0x34c2 +// 0.066621 +0x2c44 +// 0.441345 +0x3710 +// 0.812919 +0x3a81 +// 0.443154 +0x3717 +// 0.122853 +0x2fdd +// 0.910393 +0x3b48 +// 0.586902 +0x38b2 +// 0.813573 +0x3a82 +// 0.730396 +0x39d8 +// 0.558675 +0x3878 +// 0.494916 +0x37eb +// 0.334836 +0x355b +// 0.332451 +0x3552 +// 0.075775 +0x2cd9 +// 0.659524 +0x3947 +// 0.026518 +0x26ca +// 0.305520 +0x34e3 +// 0.529187 +0x383c +// 0.878764 +0x3b08 +// 0.419737 +0x36b7 +// 0.812553 +0x3a80 +// 0.424012 +0x36c9 +// 0.129471 +0x3025 +// 0.931772 +0x3b74 +// 0.547770 +0x3862 +// 0.340727 +0x3574 +// 0.020064 +0x2523 +// 0.785738 +0x3a49 +// 0.683353 +0x3978 +// 0.058463 +0x2b7c +// 0.145155 +0x30a5 +// 0.228796 +0x3352 +// 0.898074 +0x3b2f diff --git a/Testing/Patterns/DSP/SupportBarF16/Dims1_s16.txt b/Testing/Patterns/DSP/SupportBarF16/Dims1_s16.txt new file mode 100755 index 00000000..8af9aa45 --- /dev/null +++ b/Testing/Patterns/DSP/SupportBarF16/Dims1_s16.txt @@ -0,0 +1,44 @@ +H +21 +// 10 +0x000A +// 4 +0x0004 +// 4 +0x0004 +// 8 +0x0008 +// 4 +0x0004 +// 9 +0x0009 +// 4 +0x0004 +// 4 +0x0004 +// 8 +0x0008 +// 8 +0x0008 +// 8 +0x0008 +// 9 +0x0009 +// 8 +0x0008 +// 4 +0x0004 +// 9 +0x0009 +// 8 +0x0008 +// 9 +0x0009 +// 9 +0x0009 +// 9 +0x0009 +// 4 +0x0004 +// 4 +0x0004 diff --git a/Testing/Patterns/DSP/SupportBarF16/Inputs1_f16.txt b/Testing/Patterns/DSP/SupportBarF16/Inputs1_f16.txt new file mode 100755 index 00000000..5dee4b78 --- /dev/null +++ b/Testing/Patterns/DSP/SupportBarF16/Inputs1_f16.txt @@ -0,0 +1,916 @@ +H +457 +// 0.106532 +0x2ed1 +// 0.497532 +0x37f6 +// 0.890575 +0x3b20 +// 0.103215 +0x2e9b +// 0.358456 +0x35bc +// 0.854112 +0x3ad5 +// 0.261257 +0x342e +// 0.542976 +0x3858 +// 0.113934 +0x2f4b +// 0.307220 +0x34ea +// 0.889834 +0x3b1e +// 0.491050 +0x37db +// 0.478087 +0x37a6 +// 0.606903 +0x38db +// 0.294450 +0x34b6 +// 0.782827 +0x3a43 +// 0.853677 +0x3ad4 +// 0.997263 +0x3bfa +// 0.459460 +0x375a +// 0.278292 +0x3474 +// 0.810761 +0x3a7c +// 0.546945 +0x3860 +// 0.229528 +0x3358 +// 0.250174 +0x3401 +// 0.534174 +0x3846 +// 0.734461 +0x39e0 +// 0.284537 +0x348d +// 0.622315 +0x38fb +// 0.331570 +0x354e +// 0.098499 +0x2e4e +// 0.480378 +0x37b0 +// 0.149973 +0x30cd +// 0.901256 +0x3b36 +// 0.094658 +0x2e0f +// 0.509299 +0x3813 +// 0.712161 +0x39b3 +// 0.253065 +0x340d +// 0.688482 +0x3982 +// 0.037197 +0x28c3 +// 0.216806 +0x32f0 +// 0.545384 +0x385d +// 0.349946 +0x3599 +// 0.715045 +0x39b8 +// 0.379354 +0x3612 +// 0.355904 +0x35b2 +// 0.459737 +0x375b +// 0.646989 +0x392d +// 0.992873 +0x3bf1 +// 0.825026 +0x3a9a +// 0.970865 +0x3bc4 +// 0.503469 +0x3807 +// 0.727272 +0x39d1 +// 0.526058 +0x3835 +// 0.701132 +0x399c +// 0.005002 +0x1d1f +// 0.119965 +0x2fae +// 0.150103 +0x30ce +// 0.533007 +0x3844 +// 0.687298 +0x3980 +// 0.892531 +0x3b24 +// 0.374709 +0x35ff +// 0.797878 +0x3a62 +// 0.994900 +0x3bf6 +// 0.699639 +0x3999 +// 0.623257 +0x38fc +// 0.034240 +0x2862 +// 0.330431 +0x3549 +// 0.566860 +0x3889 +// 0.037405 +0x28ca +// 0.987313 +0x3be6 +// 0.755930 +0x3a0c +// 0.171740 +0x317f +// 0.051787 +0x2aa1 +// 0.292910 +0x34b0 +// 0.555473 +0x3872 +// 0.704891 +0x39a4 +// 0.017726 +0x248a +// 0.943475 +0x3b8c +// 0.339683 +0x356f +// 0.755757 +0x3a0c +// 0.944164 +0x3b8e +// 0.858374 +0x3ade +// 0.087285 +0x2d96 +// 0.801996 +0x3a6a +// 0.402872 +0x3672 +// 0.154085 +0x30ee +// 0.342052 +0x3579 +// 0.548381 +0x3863 +// 0.703609 +0x39a1 +// 0.982697 +0x3bdd +// 0.927849 +0x3b6c +// 0.730443 +0x39d8 +// 0.804695 +0x3a70 +// 0.914025 +0x3b50 +// 0.746629 +0x39f9 +// 0.656496 +0x3941 +// 0.177815 +0x31b1 +// 0.178128 +0x31b3 +// 0.051356 +0x2a93 +// 0.419791 +0x36b7 +// 0.309380 +0x34f3 +// 0.317794 +0x3516 +// 0.780728 +0x3a3f +// 0.194890 +0x323d +// 0.937657 +0x3b80 +// 0.600412 +0x38ce +// 0.084162 +0x2d63 +// 0.758037 +0x3a10 +// 0.342404 +0x357a +// 0.926317 +0x3b69 +// 0.658135 +0x3944 +// 0.320361 +0x3520 +// 0.132661 +0x303f +// 0.880571 +0x3b0b +// 0.577278 +0x389e +// 0.049056 +0x2a47 +// 0.326281 +0x3538 +// 0.144631 +0x30a1 +// 0.837326 +0x3ab3 +// 0.156820 +0x3105 +// 0.294280 +0x34b5 +// 0.888939 +0x3b1d +// 0.444398 +0x371c +// 0.656293 +0x3940 +// 0.115350 +0x2f62 +// 0.598086 +0x38c9 +// 0.066242 +0x2c3d +// 0.970696 +0x3bc4 +// 0.107737 +0x2ee5 +// 0.696892 +0x3993 +// 0.936636 +0x3b7e +// 0.292485 +0x34ae +// 0.889192 +0x3b1d +// 0.693133 +0x398c +// 0.494239 +0x37e8 +// 0.496147 +0x37f0 +// 0.863516 +0x3ae8 +// 0.901431 +0x3b36 +// 0.241817 +0x33bd +// 0.684517 +0x397a +// 0.692455 +0x398a +// 0.028141 +0x2734 +// 0.654344 +0x393c +// 0.486245 +0x37c8 +// 0.184763 +0x31ea +// 0.995113 +0x3bf6 +// 0.729885 +0x39d7 +// 0.524312 +0x3832 +// 0.714227 +0x39b7 +// 0.975591 +0x3bce +// 0.286107 +0x3494 +// 0.606811 +0x38db +// 0.668256 +0x3959 +// 0.152148 +0x30de +// 0.214849 +0x32e0 +// 0.545604 +0x385d +// 0.258044 +0x3421 +// 0.549518 +0x3865 +// 0.841156 +0x3abb +// 0.189413 +0x3210 +// 0.996621 +0x3bf9 +// 0.287922 +0x349b +// 0.221245 +0x3314 +// 0.344532 +0x3583 +// 0.993528 +0x3bf3 +// 0.326025 +0x3537 +// 0.518455 +0x3826 +// 0.949073 +0x3b98 +// 0.605328 +0x38d8 +// 0.339441 +0x356e +// 0.228574 +0x3350 +// 0.504492 +0x3809 +// 0.469137 +0x3782 +// 0.413322 +0x369d +// 0.211035 +0x32c1 +// 0.742830 +0x39f1 +// 0.136245 +0x305c +// 0.662443 +0x394d +// 0.783605 +0x3a45 +// 0.287021 +0x3498 +// 0.269690 +0x3451 +// 0.733263 +0x39de +// 0.880451 +0x3b0b +// 0.149646 +0x30ca +// 0.285272 +0x3490 +// 0.529097 +0x383c +// 0.400435 +0x3668 +// 0.246495 +0x33e3 +// 0.363495 +0x35d1 +// 0.961290 +0x3bb1 +// 0.472452 +0x378f +// 0.880793 +0x3b0c +// 0.550834 +0x3868 +// 0.922244 +0x3b61 +// 0.122864 +0x2fdd +// 0.742086 +0x39f0 +// 0.755626 +0x3a0c +// 0.855235 +0x3ad8 +// 0.545651 +0x385d +// 0.449006 +0x372f +// 0.949097 +0x3b98 +// 0.248140 +0x33f1 +// 0.492785 +0x37e2 +// 0.174517 +0x3196 +// 0.584683 +0x38ad +// 0.067141 +0x2c4c +// 0.705132 +0x39a4 +// 0.142734 +0x3091 +// 0.761568 +0x3a18 +// 0.188330 +0x3207 +// 0.642043 +0x3923 +// 0.060400 +0x2bbb +// 0.385549 +0x362b +// 0.566511 +0x3888 +// 0.168163 +0x3162 +// 0.994637 +0x3bf5 +// 0.416822 +0x36ab +// 0.673274 +0x3963 +// 0.762820 +0x3a1a +// 0.834400 +0x3aad +// 0.015293 +0x23d4 +// 0.600474 +0x38ce +// 0.887300 +0x3b19 +// 0.344693 +0x3584 +// 0.911028 +0x3b4a +// 0.002469 +0x190f +// 0.023051 +0x25e7 +// 0.923237 +0x3b63 +// 0.072783 +0x2ca8 +// 0.843013 +0x3abe +// 0.978769 +0x3bd5 +// 0.440241 +0x370b +// 0.101018 +0x2e77 +// 0.409853 +0x368f +// 0.291902 +0x34ac +// 0.358003 +0x35ba +// 0.143726 +0x3099 +// 0.343093 +0x357d +// 0.791579 +0x3a55 +// 0.698913 +0x3997 +// 0.108603 +0x2ef3 +// 0.425104 +0x36cd +// 0.229301 +0x3356 +// 0.004892 +0x1d02 +// 0.122730 +0x2fdb +// 0.814980 +0x3a85 +// 0.699480 +0x3999 +// 0.933123 +0x3b77 +// 0.410716 +0x3692 +// 0.629022 +0x3908 +// 0.404001 +0x3677 +// 0.926749 +0x3b6a +// 0.846361 +0x3ac5 +// 0.393694 +0x364d +// 0.902288 +0x3b38 +// 0.877114 +0x3b04 +// 0.675889 +0x3968 +// 0.530479 +0x383e +// 0.728947 +0x39d5 +// 0.160219 +0x3121 +// 0.383383 +0x3622 +// 0.938769 +0x3b83 +// 0.663370 +0x394f +// 0.130596 +0x302e +// 0.260151 +0x342a +// 0.459305 +0x3759 +// 0.994542 +0x3bf5 +// 0.646101 +0x392b +// 0.703211 +0x39a0 +// 0.473974 +0x3795 +// 0.318692 +0x3519 +// 0.548940 +0x3864 +// 0.779865 +0x3a3d +// 0.115493 +0x2f64 +// 0.764128 +0x3a1d +// 0.465078 +0x3771 +// 0.277470 +0x3471 +// 0.213156 +0x32d2 +// 0.711328 +0x39b1 +// 0.409489 +0x368d +// 0.374492 +0x35fe +// 0.436086 +0x36fa +// 0.755892 +0x3a0c +// 0.420576 +0x36bb +// 0.102711 +0x2e93 +// 0.849385 +0x3acc +// 0.103311 +0x2e9d +// 0.078602 +0x2d08 +// 0.664105 +0x3950 +// 0.255307 +0x3416 +// 0.657774 +0x3943 +// 0.020228 +0x252e +// 0.182071 +0x31d4 +// 0.094825 +0x2e12 +// 0.590074 +0x38b8 +// 0.237071 +0x3396 +// 0.242629 +0x33c4 +// 0.157773 +0x310c +// 0.209353 +0x32b3 +// 0.083905 +0x2d5f +// 0.146740 +0x30b2 +// 0.549354 +0x3865 +// 0.603150 +0x38d3 +// 0.718786 +0x39c0 +// 0.660831 +0x3949 +// 0.126985 +0x3010 +// 0.248071 +0x33f0 +// 0.138655 +0x3070 +// 0.528400 +0x383a +// 0.060976 +0x2bce +// 0.268160 +0x344a +// 0.913489 +0x3b4f +// 0.730158 +0x39d7 +// 0.268330 +0x344b +// 0.353510 +0x35a8 +// 0.517134 +0x3823 +// 0.893552 +0x3b26 +// 0.682193 +0x3975 +// 0.055199 +0x2b11 +// 0.157574 +0x310b +// 0.194217 +0x3237 +// 0.102369 +0x2e8d +// 0.518361 +0x3826 +// 0.856828 +0x3adb +// 0.464607 +0x376f +// 0.243317 +0x33c9 +// 0.242768 +0x33c5 +// 0.175030 +0x319a +// 0.925239 +0x3b67 +// 0.404016 +0x3677 +// 0.110742 +0x2f16 +// 0.253367 +0x340e +// 0.166016 +0x3150 +// 0.188217 +0x3206 +// 0.155232 +0x30f8 +// 0.568907 +0x388d +// 0.002015 +0x1821 +// 0.561031 +0x387d +// 0.442068 +0x3713 +// 0.010218 +0x213b +// 0.857135 +0x3adb +// 0.599827 +0x38cc +// 0.484476 +0x37c0 +// 0.912910 +0x3b4e +// 0.451951 +0x373b +// 0.774223 +0x3a32 +// 0.844909 +0x3ac2 +// 0.830782 +0x3aa5 +// 0.116712 +0x2f78 +// 0.021514 +0x2582 +// 0.056437 +0x2b39 +// 0.871867 +0x3afa +// 0.998460 +0x3bfd +// 0.533033 +0x3844 +// 0.733385 +0x39de +// 0.635822 +0x3916 +// 0.066906 +0x2c48 +// 0.003334 +0x1ad4 +// 0.950727 +0x3b9b +// 0.890833 +0x3b20 +// 0.689737 +0x3985 +// 0.443086 +0x3717 +// 0.325795 +0x3536 +// 0.304570 +0x34e0 +// 0.654455 +0x393c +// 0.123053 +0x2fe0 +// 0.441562 +0x3711 +// 0.615594 +0x38ed +// 0.005671 +0x1dcf +// 0.659235 +0x3946 +// 0.484417 +0x37c0 +// 0.913067 +0x3b4e +// 0.385005 +0x3629 +// 0.496434 +0x37f1 +// 0.655609 +0x393f +// 0.980828 +0x3bd9 +// 0.164783 +0x3146 +// 0.593037 +0x38bf +// 0.438637 +0x3705 +// 0.675532 +0x3967 +// 0.509535 +0x3814 +// 0.433838 +0x36f1 +// 0.671372 +0x395f +// 0.097221 +0x2e39 +// 0.399143 +0x3663 +// 0.525347 +0x3834 +// 0.738948 +0x39e9 +// 0.570479 +0x3890 +// 0.915263 +0x3b52 +// 0.429515 +0x36df +// 0.163260 +0x3139 +// 0.469480 +0x3783 +// 0.527657 +0x3839 +// 0.645856 +0x392b +// 0.727361 +0x39d2 +// 0.604323 +0x38d6 +// 0.069401 +0x2c71 +// 0.509907 +0x3814 +// 0.294041 +0x34b4 +// 0.257267 +0x341e +// 0.601742 +0x38d0 +// 0.629847 +0x390a +// 0.277914 +0x3472 +// 0.543382 +0x3859 +// 0.556401 +0x3874 +// 0.086856 +0x2d8f +// 0.368224 +0x35e4 +// 0.321791 +0x3526 +// 0.159132 +0x3118 +// 0.982855 +0x3bdd +// 0.481969 +0x37b6 +// 0.496734 +0x37f3 +// 0.454984 +0x3748 +// 0.606968 +0x38db +// 0.712903 +0x39b4 +// 0.400385 +0x3668 +// 0.073094 +0x2cae +// 0.484467 +0x37c0 +// 0.858089 +0x3add +// 0.417460 +0x36ae +// 0.675354 +0x3967 +// 0.160686 +0x3124 +// 0.629910 +0x390a +// 0.149919 +0x30cc +// 0.019615 +0x2505 +// 0.805168 +0x3a71 +// 0.935126 +0x3b7b +// 0.945230 +0x3b90 +// 0.542654 +0x3857 +// 0.970170 +0x3bc3 +// 0.940751 +0x3b87 +// 0.105790 +0x2ec5 +// 0.337515 +0x3566 +// 0.709871 +0x39ae +// 0.798114 +0x3a63 +// 0.660907 +0x394a +// 0.969733 +0x3bc2 +// 0.809610 +0x3a7a +// 0.854374 +0x3ad6 +// 0.689805 +0x3985 +// 0.153979 +0x30ed +// 0.577720 +0x389f +// 0.695944 +0x3991 +// 0.213619 +0x32d6 +// 0.215322 +0x32e4 +// 0.255341 +0x3416 +// 0.103505 +0x2ea0 +// 0.120335 +0x2fb4 +// 0.513636 +0x381c +// 0.482140 +0x37b7 +// 0.450196 +0x3734 +// 0.658834 +0x3945 +// 0.768260 +0x3a25 +// 0.570194 +0x3890 +// 0.640953 +0x3921 +// 0.239049 +0x33a6 +// 0.152443 +0x30e1 diff --git a/Testing/Patterns/DSP/SupportBarF16/Ref1_f16.txt b/Testing/Patterns/DSP/SupportBarF16/Ref1_f16.txt new file mode 100755 index 00000000..6175907c --- /dev/null +++ b/Testing/Patterns/DSP/SupportBarF16/Ref1_f16.txt @@ -0,0 +1,136 @@ +H +67 +// 0.327704 +0x353e +// 0.665135 +0x3952 +// 0.448036 +0x372b +// 0.515265 +0x381f +// 0.551816 +0x386a +// 0.551472 +0x3869 +// 0.439659 +0x3709 +// 0.502080 +0x3804 +// 0.295175 +0x34b9 +// 0.678826 +0x396e +// 0.471628 +0x378c +// 0.625753 +0x3902 +// 0.389009 +0x3639 +// 0.525265 +0x3834 +// 0.750672 +0x3a01 +// 0.288296 +0x349d +// 0.666572 +0x3955 +// 0.594229 +0x38c1 +// 0.178227 +0x31b4 +// 0.568369 +0x388c +// 0.512687 +0x381a +// 0.473645 +0x3794 +// 0.406305 +0x3680 +// 0.646267 +0x392c +// 0.372201 +0x35f5 +// 0.589026 +0x38b6 +// 0.538939 +0x3850 +// 0.451800 +0x373b +// 0.255620 +0x3417 +// 0.604975 +0x38d7 +// 0.783135 +0x3a44 +// 0.434926 +0x36f5 +// 0.500915 +0x3802 +// 0.385077 +0x3629 +// 0.329215 +0x3544 +// 0.445282 +0x3720 +// 0.515997 +0x3821 +// 0.488761 +0x37d2 +// 0.534970 +0x3848 +// 0.458699 +0x3757 +// 0.565399 +0x3886 +// 0.428392 +0x36db +// 0.608847 +0x38df +// 0.257330 +0x341e +// 0.391524 +0x3644 +// 0.499636 +0x37ff +// 0.494076 +0x37e8 +// 0.519520 +0x3828 +// 0.187670 +0x3201 +// 0.448629 +0x372e +// 0.318067 +0x3517 +// 0.260116 +0x3429 +// 0.522119 +0x382d +// 0.505605 +0x380b +// 0.358237 +0x35bb +// 0.522214 +0x382d +// 0.616310 +0x38ee +// 0.450732 +0x3736 +// 0.709664 +0x39ad +// 0.591168 +0x38bb +// 0.702376 +0x399e +// 0.563923 +0x3883 +// 0.434761 +0x36f5 +// 0.304614 +0x34e0 +// 0.188790 +0x320b +// 0.161440 +0x312b +// 0.491055 +0x37db diff --git a/Testing/Patterns/DSP/SupportBarF16/Samples1_f16.txt b/Testing/Patterns/DSP/SupportBarF16/Samples1_f16.txt new file mode 100755 index 00000000..f26c183e --- /dev/null +++ b/Testing/Patterns/DSP/SupportBarF16/Samples1_f16.txt @@ -0,0 +1,3842 @@ +H +1920 +// 0.358265 +0x35bb +// 0.769225 +0x3a27 +// 0.137499 +0x3066 +// 0.955818 +0x3ba6 +// 0.418155 +0x36b1 +// 0.162037 +0x312f +// 0.215946 +0x32e9 +// 0.316999 +0x3512 +// 0.422302 +0x36c2 +// 0.243937 +0x33ce +// 0.538914 +0x3850 +// 0.362814 +0x35ce +// 0.650336 +0x3934 +// 0.872881 +0x3afc +// 0.354031 +0x35aa +// 0.136853 +0x3061 +// 0.373729 +0x35fb +// 0.719100 +0x39c1 +// 0.179372 +0x31bd +// 0.827761 +0x3a9f +// 0.884351 +0x3b13 +// 0.806441 +0x3a74 +// 0.754990 +0x3a0a +// 0.710420 +0x39af +// 0.349479 +0x3597 +// 0.036340 +0x28a7 +// 0.303382 +0x34db +// 0.630108 +0x390a +// 0.982441 +0x3bdc +// 0.835839 +0x3ab0 +// 0.924842 +0x3b66 +// 0.390342 +0x363f +// 0.394716 +0x3651 +// 0.509456 +0x3813 +// 0.544192 +0x385b +// 0.175369 +0x319d +// 0.802746 +0x3a6c +// 0.886344 +0x3b17 +// 0.839240 +0x3ab7 +// 0.466709 +0x3778 +// 0.726450 +0x39d0 +// 0.381233 +0x361a +// 0.636536 +0x3918 +// 0.286424 +0x3495 +// 0.638321 +0x391b +// 0.250856 +0x3404 +// 0.080416 +0x2d26 +// 0.130707 +0x302f +// 0.980369 +0x3bd8 +// 0.991293 +0x3bee +// 0.478163 +0x37a7 +// 0.501965 +0x3804 +// 0.405460 +0x367d +// 0.922810 +0x3b62 +// 0.406182 +0x3680 +// 0.757579 +0x3a10 +// 0.433637 +0x36f0 +// 0.275619 +0x3469 +// 0.700707 +0x399b +// 0.179527 +0x31bf +// 0.395245 +0x3653 +// 0.979567 +0x3bd6 +// 0.727388 +0x39d2 +// 0.877935 +0x3b06 +// 0.508659 +0x3812 +// 0.604502 +0x38d6 +// 0.949459 +0x3b98 +// 0.916084 +0x3b54 +// 0.866489 +0x3aef +// 0.615132 +0x38ec +// 0.917206 +0x3b56 +// 0.278592 +0x3475 +// 0.235399 +0x3388 +// 0.560839 +0x387d +// 0.483228 +0x37bb +// 0.654388 +0x393c +// 0.055343 +0x2b15 +// 0.945454 +0x3b90 +// 0.929818 +0x3b70 +// 0.356907 +0x35b6 +// 0.971327 +0x3bc5 +// 0.208865 +0x32af +// 0.140323 +0x307e +// 0.291115 +0x34a8 +// 0.144682 +0x30a1 +// 0.811770 +0x3a7f +// 0.293110 +0x34b1 +// 0.359405 +0x35c0 +// 0.635368 +0x3915 +// 0.907687 +0x3b43 +// 0.004205 +0x1c4e +// 0.366911 +0x35df +// 0.608962 +0x38df +// 0.011704 +0x21fe +// 0.498367 +0x37f9 +// 0.188790 +0x320b +// 0.427379 +0x36d7 +// 0.776624 +0x3a37 +// 0.299329 +0x34ca +// 0.836204 +0x3ab1 +// 0.486866 +0x37ca +// 0.553237 +0x386d +// 0.462384 +0x3766 +// 0.350192 +0x359a +// 0.326030 +0x3537 +// 0.331069 +0x354c +// 0.540031 +0x3852 +// 0.733360 +0x39de +// 0.214456 +0x32dd +// 0.125513 +0x3004 +// 0.586058 +0x38b0 +// 0.684994 +0x397b +// 0.532086 +0x3842 +// 0.935142 +0x3b7b +// 0.177689 +0x31b0 +// 0.307320 +0x34eb +// 0.079634 +0x2d19 +// 0.588127 +0x38b4 +// 0.795163 +0x3a5c +// 0.722756 +0x39c8 +// 0.207073 +0x32a0 +// 0.969216 +0x3bc1 +// 0.194281 +0x3238 +// 0.504433 +0x3809 +// 0.937804 +0x3b81 +// 0.344519 +0x3583 +// 0.724446 +0x39cc +// 0.606426 +0x38da +// 0.451583 +0x373a +// 0.656203 +0x3940 +// 0.812268 +0x3a80 +// 0.106578 +0x2ed2 +// 0.803034 +0x3a6d +// 0.259555 +0x3427 +// 0.126292 +0x300b +// 0.818756 +0x3a8d +// 0.794389 +0x3a5b +// 0.608369 +0x38de +// 0.541477 +0x3855 +// 0.416903 +0x36ac +// 0.783374 +0x3a44 +// 0.712388 +0x39b3 +// 0.499322 +0x37fd +// 0.620402 +0x38f7 +// 0.720590 +0x39c4 +// 0.190358 +0x3217 +// 0.394627 +0x3650 +// 0.918245 +0x3b59 +// 0.785187 +0x3a48 +// 0.792098 +0x3a56 +// 0.433694 +0x36f0 +// 0.399262 +0x3663 +// 0.025841 +0x269e +// 0.141956 +0x308b +// 0.403481 +0x3675 +// 0.680015 +0x3971 +// 0.595063 +0x38c3 +// 0.939674 +0x3b84 +// 0.760798 +0x3a16 +// 0.087706 +0x2d9d +// 0.285530 +0x3492 +// 0.311851 +0x34fd +// 0.625849 +0x3902 +// 0.112541 +0x2f34 +// 0.784306 +0x3a46 +// 0.495963 +0x37ef +// 0.716502 +0x39bb +// 0.065336 +0x2c2e +// 0.273640 +0x3461 +// 0.473149 +0x3792 +// 0.441927 +0x3712 +// 0.810879 +0x3a7d +// 0.499646 +0x37ff +// 0.035703 +0x2892 +// 0.331116 +0x354c +// 0.411409 +0x3695 +// 0.600982 +0x38cf +// 0.402678 +0x3671 +// 0.369621 +0x35ea +// 0.454104 +0x3744 +// 0.131368 +0x3034 +// 0.126340 +0x300b +// 0.566963 +0x3889 +// 0.979383 +0x3bd6 +// 0.543028 +0x3858 +// 0.506880 +0x380e +// 0.870325 +0x3af6 +// 0.253712 +0x340f +// 0.649915 +0x3933 +// 0.201999 +0x3277 +// 0.897620 +0x3b2e +// 0.942799 +0x3b8b +// 0.507683 +0x3810 +// 0.265067 +0x343e +// 0.738801 +0x39e9 +// 0.158372 +0x3111 +// 0.215759 +0x32e8 +// 0.639940 +0x391f +// 0.575388 +0x389a +// 0.350254 +0x359b +// 0.671552 +0x395f +// 0.195547 +0x3242 +// 0.692747 +0x398b +// 0.752712 +0x3a06 +// 0.521687 +0x382c +// 0.694962 +0x398f +// 0.696116 +0x3992 +// 0.336529 +0x3562 +// 0.472599 +0x3790 +// 0.171071 +0x3179 +// 0.685252 +0x397b +// 0.256510 +0x341b +// 0.580526 +0x38a5 +// 0.959332 +0x3bad +// 0.675711 +0x3968 +// 0.792419 +0x3a57 +// 0.127498 +0x3014 +// 0.101921 +0x2e86 +// 0.926752 +0x3b6a +// 0.724974 +0x39cd +// 0.847735 +0x3ac8 +// 0.546153 +0x385f +// 0.527082 +0x3837 +// 0.658092 +0x3944 +// 0.823723 +0x3a97 +// 0.484271 +0x37c0 +// 0.689079 +0x3983 +// 0.209827 +0x32b7 +// 0.392494 +0x3648 +// 0.107140 +0x2edb +// 0.599668 +0x38cc +// 0.511210 +0x3817 +// 0.497459 +0x37f6 +// 0.385538 +0x362b +// 0.992681 +0x3bf1 +// 0.936280 +0x3b7e +// 0.130240 +0x302b +// 0.988820 +0x3be9 +// 0.028709 +0x2759 +// 0.450015 +0x3733 +// 0.595396 +0x38c3 +// 0.536297 +0x384a +// 0.365274 +0x35d8 +// 0.110283 +0x2f0f +// 0.783771 +0x3a45 +// 0.386350 +0x362e +// 0.238668 +0x33a3 +// 0.564418 +0x3884 +// 0.825827 +0x3a9b +// 0.211276 +0x32c3 +// 0.027305 +0x26fd +// 0.602556 +0x38d2 +// 0.007667 +0x1fda +// 0.384887 +0x3628 +// 0.556749 +0x3874 +// 0.100012 +0x2e67 +// 0.717570 +0x39be +// 0.968037 +0x3bbf +// 0.001696 +0x16f2 +// 0.435790 +0x36f9 +// 0.087425 +0x2d98 +// 0.715588 +0x39ba +// 0.719651 +0x39c2 +// 0.535880 +0x3849 +// 0.304876 +0x34e1 +// 0.958216 +0x3baa +// 0.161896 +0x312e +// 0.726728 +0x39d0 +// 0.076574 +0x2ce7 +// 0.971104 +0x3bc5 +// 0.590181 +0x38b9 +// 0.845739 +0x3ac4 +// 0.976030 +0x3bcf +// 0.718666 +0x39c0 +// 0.381562 +0x361b +// 0.781270 +0x3a40 +// 0.319416 +0x351c +// 0.322988 +0x352b +// 0.879866 +0x3b0a +// 0.284431 +0x348d +// 0.726585 +0x39d0 +// 0.072908 +0x2cab +// 0.464735 +0x3770 +// 0.684721 +0x397a +// 0.972187 +0x3bc7 +// 0.415182 +0x36a5 +// 0.463252 +0x3769 +// 0.312328 +0x34ff +// 0.520492 +0x382a +// 0.751173 +0x3a02 +// 0.620935 +0x38f8 +// 0.152936 +0x30e5 +// 0.865548 +0x3aed +// 0.881980 +0x3b0e +// 0.919405 +0x3b5b +// 0.221661 +0x3318 +// 0.853568 +0x3ad4 +// 0.793612 +0x3a59 +// 0.497608 +0x37f6 +// 0.912467 +0x3b4d +// 0.275485 +0x3468 +// 0.647546 +0x392e +// 0.085442 +0x2d78 +// 0.040050 +0x2920 +// 0.837716 +0x3ab4 +// 0.589098 +0x38b6 +// 0.546943 +0x3860 +// 0.435001 +0x36f6 +// 0.403409 +0x3674 +// 0.553340 +0x386d +// 0.599634 +0x38cc +// 0.977456 +0x3bd2 +// 0.567728 +0x388b +// 0.830138 +0x3aa4 +// 0.807901 +0x3a77 +// 0.454964 +0x3748 +// 0.174654 +0x3197 +// 0.937843 +0x3b81 +// 0.049453 +0x2a54 +// 0.123157 +0x2fe2 +// 0.279476 +0x3479 +// 0.262427 +0x3433 +// 0.302662 +0x34d8 +// 0.034175 +0x2860 +// 0.679505 +0x3970 +// 0.379176 +0x3611 +// 0.097221 +0x2e39 +// 0.232336 +0x336f +// 0.148541 +0x30c1 +// 0.839294 +0x3ab7 +// 0.814645 +0x3a84 +// 0.819061 +0x3a8d +// 0.847381 +0x3ac7 +// 0.645023 +0x3929 +// 0.419153 +0x36b5 +// 0.385895 +0x362d +// 0.837359 +0x3ab3 +// 0.518762 +0x3826 +// 0.377579 +0x360b +// 0.820029 +0x3a8f +// 0.818031 +0x3a8b +// 0.796074 +0x3a5e +// 0.181111 +0x31cc +// 0.043461 +0x2990 +// 0.112948 +0x2f3b +// 0.490323 +0x37d8 +// 0.327139 +0x353c +// 0.893814 +0x3b27 +// 0.496158 +0x37f0 +// 0.710695 +0x39b0 +// 0.495337 +0x37ed +// 0.497455 +0x37f6 +// 0.997026 +0x3bfa +// 0.781361 +0x3a40 +// 0.135290 +0x3054 +// 0.493485 +0x37e5 +// 0.876202 +0x3b02 +// 0.034836 +0x2876 +// 0.895649 +0x3b2a +// 0.640235 +0x391f +// 0.334811 +0x355b +// 0.862473 +0x3ae6 +// 0.379376 +0x3612 +// 0.647905 +0x392f +// 0.024022 +0x2626 +// 0.354095 +0x35aa +// 0.942133 +0x3b89 +// 0.653290 +0x393a +// 0.166362 +0x3153 +// 0.126701 +0x300e +// 0.536077 +0x384a +// 0.215280 +0x32e4 +// 0.044845 +0x29bd +// 0.530819 +0x383f +// 0.934126 +0x3b79 +// 0.698518 +0x3997 +// 0.961291 +0x3bb1 +// 0.418252 +0x36b1 +// 0.609892 +0x38e1 +// 0.115336 +0x2f62 +// 0.335471 +0x355e +// 0.151395 +0x30d8 +// 0.132572 +0x303e +// 0.720400 +0x39c3 +// 0.991056 +0x3bee +// 0.616072 +0x38ee +// 0.827896 +0x3aa0 +// 0.007807 +0x1fff +// 0.208819 +0x32af +// 0.341972 +0x3579 +// 0.733260 +0x39de +// 0.150951 +0x30d5 +// 0.221416 +0x3316 +// 0.347806 +0x3591 +// 0.241621 +0x33bb +// 0.765587 +0x3a20 +// 0.675301 +0x3967 +// 0.155487 +0x30fa +// 0.080844 +0x2d2d +// 0.704833 +0x39a3 +// 0.109190 +0x2efd +// 0.432762 +0x36ed +// 0.393732 +0x364d +// 0.018373 +0x24b4 +// 0.901535 +0x3b36 +// 0.419925 +0x36b8 +// 0.537798 +0x384d +// 0.759106 +0x3a13 +// 0.097034 +0x2e36 +// 0.058535 +0x2b7e +// 0.174445 +0x3195 +// 0.013748 +0x230a +// 0.216243 +0x32eb +// 0.788006 +0x3a4e +// 0.014787 +0x2392 +// 0.579318 +0x38a2 +// 0.615343 +0x38ec +// 0.576687 +0x389d +// 0.115754 +0x2f69 +// 0.520495 +0x382a +// 0.572374 +0x3894 +// 0.430334 +0x36e3 +// 0.296853 +0x34c0 +// 0.857872 +0x3add +// 0.708154 +0x39aa +// 0.721545 +0x39c6 +// 0.753660 +0x3a07 +// 0.837799 +0x3ab4 +// 0.113448 +0x2f43 +// 0.680721 +0x3972 +// 0.073006 +0x2cac +// 0.081231 +0x2d33 +// 0.636433 +0x3917 +// 0.035750 +0x2893 +// 0.722654 +0x39c8 +// 0.042779 +0x297a +// 0.985274 +0x3be2 +// 0.436602 +0x36fc +// 0.704150 +0x39a2 +// 0.321112 +0x3523 +// 0.604870 +0x38d7 +// 0.493182 +0x37e4 +// 0.382877 +0x3620 +// 0.949965 +0x3b9a +// 0.296711 +0x34bf +// 0.772709 +0x3a2f +// 0.598593 +0x38ca +// 0.981684 +0x3bda +// 0.003211 +0x1a93 +// 0.825541 +0x3a9b +// 0.423347 +0x36c6 +// 0.731718 +0x39db +// 0.753567 +0x3a07 +// 0.043494 +0x2991 +// 0.661806 +0x394b +// 0.892523 +0x3b24 +// 0.673772 +0x3964 +// 0.872846 +0x3afc +// 0.385438 +0x362b +// 0.034833 +0x2875 +// 0.102998 +0x2e98 +// 0.615881 +0x38ed +// 0.738649 +0x39e9 +// 0.085864 +0x2d7f +// 0.715459 +0x39b9 +// 0.372323 +0x35f5 +// 0.470909 +0x3789 +// 0.314793 +0x3509 +// 0.027315 +0x26fe +// 0.046775 +0x29fd +// 0.379695 +0x3613 +// 0.257711 +0x3420 +// 0.981485 +0x3bda +// 0.579571 +0x38a3 +// 0.210738 +0x32be +// 0.546702 +0x3860 +// 0.245644 +0x33dc +// 0.996510 +0x3bf9 +// 0.265701 +0x3440 +// 0.285155 +0x3490 +// 0.125420 +0x3003 +// 0.304664 +0x34e0 +// 0.183685 +0x31e1 +// 0.766357 +0x3a22 +// 0.753178 +0x3a07 +// 0.542131 +0x3856 +// 0.532065 +0x3842 +// 0.159712 +0x311c +// 0.509688 +0x3814 +// 0.072383 +0x2ca2 +// 0.306346 +0x34e7 +// 0.216524 +0x32ee +// 0.379947 +0x3614 +// 0.927054 +0x3b6b +// 0.949963 +0x3b9a +// 0.130984 +0x3031 +// 0.825000 +0x3a9a +// 0.035148 +0x2880 +// 0.042644 +0x2975 +// 0.566131 +0x3887 +// 0.695766 +0x3991 +// 0.347952 +0x3591 +// 0.272816 +0x345d +// 0.630482 +0x390b +// 0.033035 +0x283a +// 0.890678 +0x3b20 +// 0.139809 +0x3079 +// 0.057381 +0x2b58 +// 0.876304 +0x3b03 +// 0.516405 +0x3822 +// 0.257090 +0x341d +// 0.326248 +0x3538 +// 0.992457 +0x3bf1 +// 0.875809 +0x3b02 +// 0.283601 +0x348a +// 0.061959 +0x2bee +// 0.804462 +0x3a70 +// 0.733208 +0x39de +// 0.854095 +0x3ad5 +// 0.084617 +0x2d6a +// 0.510797 +0x3816 +// 0.278975 +0x3477 +// 0.554329 +0x386f +// 0.923595 +0x3b64 +// 0.165258 +0x314a +// 0.317831 +0x3516 +// 0.339825 +0x3570 +// 0.040798 +0x2939 +// 0.254345 +0x3412 +// 0.682175 +0x3975 +// 0.081037 +0x2d30 +// 0.700217 +0x399a +// 0.910823 +0x3b49 +// 0.730343 +0x39d8 +// 0.319589 +0x351d +// 0.372758 +0x35f7 +// 0.701874 +0x399d +// 0.912925 +0x3b4e +// 0.100294 +0x2e6b +// 0.496810 +0x37f3 +// 0.256633 +0x341b +// 0.603167 +0x38d3 +// 0.971256 +0x3bc5 +// 0.644381 +0x3928 +// 0.464563 +0x376f +// 0.677953 +0x396c +// 0.533962 +0x3846 +// 0.886260 +0x3b17 +// 0.295446 +0x34ba +// 0.125712 +0x3006 +// 0.208887 +0x32af +// 0.189911 +0x3214 +// 0.017757 +0x248c +// 0.534079 +0x3846 +// 0.755891 +0x3a0c +// 0.632669 +0x3910 +// 0.322453 +0x3529 +// 0.434454 +0x36f4 +// 0.934066 +0x3b79 +// 0.172891 +0x3188 +// 0.564565 +0x3884 +// 0.348726 +0x3594 +// 0.108779 +0x2ef6 +// 0.721070 +0x39c5 +// 0.790906 +0x3a54 +// 0.999333 +0x3bff +// 0.623435 +0x38fd +// 0.419693 +0x36b7 +// 0.972387 +0x3bc7 +// 0.894052 +0x3b27 +// 0.369496 +0x35e9 +// 0.996502 +0x3bf9 +// 0.162866 +0x3136 +// 0.819446 +0x3a8e +// 0.747810 +0x39fc +// 0.361876 +0x35ca +// 0.476030 +0x379e +// 0.050709 +0x2a7e +// 0.524945 +0x3833 +// 0.404213 +0x3678 +// 0.071645 +0x2c96 +// 0.138102 +0x306b +// 0.837244 +0x3ab3 +// 0.779663 +0x3a3d +// 0.987760 +0x3be7 +// 0.835757 +0x3ab0 +// 0.732417 +0x39dc +// 0.244244 +0x33d1 +// 0.752935 +0x3a06 +// 0.098526 +0x2e4e +// 0.632287 +0x390f +// 0.036138 +0x28a0 +// 0.040526 +0x2930 +// 0.273171 +0x345f +// 0.493208 +0x37e4 +// 0.766885 +0x3a23 +// 0.711655 +0x39b1 +// 0.898427 +0x3b30 +// 0.498918 +0x37fc +// 0.648474 +0x3930 +// 0.400514 +0x3669 +// 0.521013 +0x382b +// 0.304481 +0x34df +// 0.085315 +0x2d76 +// 0.180923 +0x31ca +// 0.183292 +0x31de +// 0.467742 +0x377c +// 0.066142 +0x2c3c +// 0.275236 +0x3467 +// 0.503115 +0x3806 +// 0.861134 +0x3ae4 +// 0.700330 +0x399a +// 0.930544 +0x3b72 +// 0.142900 +0x3093 +// 0.923895 +0x3b64 +// 0.982402 +0x3bdc +// 0.735544 +0x39e2 +// 0.885226 +0x3b15 +// 0.833128 +0x3aaa +// 0.572648 +0x3895 +// 0.536433 +0x384b +// 0.712700 +0x39b4 +// 0.136794 +0x3061 +// 0.333469 +0x3556 +// 0.365705 +0x35da +// 0.930066 +0x3b71 +// 0.468636 +0x3780 +// 0.385043 +0x3629 +// 0.319403 +0x351c +// 0.476110 +0x379e +// 0.454365 +0x3745 +// 0.474225 +0x3796 +// 0.611781 +0x38e5 +// 0.828428 +0x3aa1 +// 0.287144 +0x3498 +// 0.240940 +0x33b6 +// 0.864041 +0x3aea +// 0.033398 +0x2846 +// 0.408367 +0x3689 +// 0.582835 +0x38aa +// 0.384179 +0x3626 +// 0.365418 +0x35d9 +// 0.773982 +0x3a31 +// 0.342465 +0x357b +// 0.181419 +0x31ce +// 0.763486 +0x3a1c +// 0.476559 +0x37a0 +// 0.036403 +0x28a9 +// 0.883262 +0x3b11 +// 0.251130 +0x3405 +// 0.815425 +0x3a86 +// 0.611005 +0x38e3 +// 0.090347 +0x2dc8 +// 0.459929 +0x375c +// 0.908674 +0x3b45 +// 0.371872 +0x35f3 +// 0.162308 +0x3132 +// 0.546508 +0x385f +// 0.905652 +0x3b3f +// 0.134835 +0x3051 +// 0.854840 +0x3ad7 +// 0.024624 +0x264e +// 0.132130 +0x303a +// 0.285799 +0x3493 +// 0.309537 +0x34f4 +// 0.630732 +0x390c +// 0.356966 +0x35b6 +// 0.828407 +0x3aa1 +// 0.750790 +0x3a02 +// 0.129034 +0x3021 +// 0.018644 +0x24c6 +// 0.641390 +0x3922 +// 0.610724 +0x38e3 +// 0.683331 +0x3977 +// 0.244818 +0x33d6 +// 0.846619 +0x3ac6 +// 0.121552 +0x2fc8 +// 0.565150 +0x3885 +// 0.359250 +0x35bf +// 0.307685 +0x34ec +// 0.377697 +0x360b +// 0.442406 +0x3714 +// 0.399949 +0x3666 +// 0.555323 +0x3871 +// 0.614436 +0x38ea +// 0.951479 +0x3b9d +// 0.978820 +0x3bd5 +// 0.705242 +0x39a4 +// 0.518928 +0x3827 +// 0.358003 +0x35ba +// 0.472091 +0x378e +// 0.244491 +0x33d3 +// 0.523009 +0x382f +// 0.951800 +0x3b9d +// 0.190401 +0x3218 +// 0.262285 +0x3432 +// 0.092814 +0x2df1 +// 0.246838 +0x33e6 +// 0.323914 +0x352f +// 0.423551 +0x36c7 +// 0.486776 +0x37ca +// 0.877685 +0x3b05 +// 0.782093 +0x3a42 +// 0.770167 +0x3a29 +// 0.590227 +0x38b9 +// 0.589330 +0x38b7 +// 0.477373 +0x37a3 +// 0.187338 +0x31ff +// 0.775997 +0x3a35 +// 0.022798 +0x25d6 +// 0.041138 +0x2944 +// 0.765207 +0x3a1f +// 0.490234 +0x37d8 +// 0.490107 +0x37d7 +// 0.415257 +0x36a5 +// 0.493879 +0x37e7 +// 0.179018 +0x31bb +// 0.129532 +0x3025 +// 0.182300 +0x31d5 +// 0.177358 +0x31ad +// 0.889695 +0x3b1e +// 0.888984 +0x3b1d +// 0.850521 +0x3ace +// 0.487560 +0x37cd +// 0.961172 +0x3bb0 +// 0.444832 +0x371e +// 0.616516 +0x38ef +// 0.038142 +0x28e2 +// 0.217325 +0x32f4 +// 0.808720 +0x3a78 +// 0.272948 +0x345e +// 0.524738 +0x3833 +// 0.194159 +0x3237 +// 0.493078 +0x37e4 +// 0.300978 +0x34d1 +// 0.742696 +0x39f1 +// 0.219703 +0x3308 +// 0.897544 +0x3b2e +// 0.586567 +0x38b1 +// 0.915836 +0x3b54 +// 0.395941 +0x3656 +// 0.442020 +0x3713 +// 0.016585 +0x243f +// 0.619699 +0x38f5 +// 0.855094 +0x3ad7 +// 0.959049 +0x3bac +// 0.648989 +0x3931 +// 0.142453 +0x308f +// 0.529347 +0x383c +// 0.069954 +0x2c7a +// 0.526392 +0x3836 +// 0.880505 +0x3b0b +// 0.174129 +0x3192 +// 0.346367 +0x358b +// 0.594004 +0x38c1 +// 0.061666 +0x2be5 +// 0.688389 +0x3982 +// 0.612760 +0x38e7 +// 0.444894 +0x371e +// 0.280533 +0x347d +// 0.878441 +0x3b07 +// 0.550860 +0x3868 +// 0.404488 +0x3679 +// 0.325764 +0x3536 +// 0.100770 +0x2e73 +// 0.452333 +0x373d +// 0.174530 +0x3196 +// 0.120026 +0x2faf +// 0.930153 +0x3b71 +// 0.959609 +0x3bad +// 0.866138 +0x3aee +// 0.324250 +0x3530 +// 0.929264 +0x3b6f +// 0.505286 +0x380b +// 0.686653 +0x397e +// 0.864968 +0x3aeb +// 0.069201 +0x2c6e +// 0.096972 +0x2e35 +// 0.185425 +0x31ef +// 0.937376 +0x3b80 +// 0.746609 +0x39f9 +// 0.181943 +0x31d2 +// 0.238446 +0x33a1 +// 0.894114 +0x3b27 +// 0.422243 +0x36c2 +// 0.668554 +0x3959 +// 0.560069 +0x387b +// 0.583512 +0x38ab +// 0.755514 +0x3a0b +// 0.442202 +0x3713 +// 0.520621 +0x382a +// 0.919843 +0x3b5c +// 0.818741 +0x3a8d +// 0.398798 +0x3661 +// 0.193436 +0x3231 +// 0.134984 +0x3052 +// 0.098515 +0x2e4e +// 0.978024 +0x3bd3 +// 0.001426 +0x15d8 +// 0.634866 +0x3914 +// 0.587262 +0x38b3 +// 0.224950 +0x3333 +// 0.873429 +0x3afd +// 0.572166 +0x3894 +// 0.498778 +0x37fb +// 0.516162 +0x3821 +// 0.110246 +0x2f0e +// 0.552827 +0x386c +// 0.051888 +0x2aa4 +// 0.313774 +0x3505 +// 0.967105 +0x3bbd +// 0.700149 +0x399a +// 0.378144 +0x360d +// 0.570708 +0x3891 +// 0.014261 +0x234d +// 0.223127 +0x3324 +// 0.741460 +0x39ef +// 0.849496 +0x3acc +// 0.304528 +0x34df +// 0.295428 +0x34ba +// 0.588206 +0x38b5 +// 0.856678 +0x3ada +// 0.873268 +0x3afc +// 0.731597 +0x39da +// 0.841997 +0x3abc +// 0.629860 +0x390a +// 0.553148 +0x386d +// 0.806899 +0x3a75 +// 0.709385 +0x39ad +// 0.307137 +0x34ea +// 0.689410 +0x3984 +// 0.403220 +0x3674 +// 0.546268 +0x385f +// 0.674091 +0x3965 +// 0.565634 +0x3886 +// 0.927306 +0x3b6b +// 0.288103 +0x349c +// 0.234572 +0x3382 +// 0.549773 +0x3866 +// 0.740765 +0x39ed +// 0.248238 +0x33f2 +// 0.178141 +0x31b3 +// 0.274306 +0x3464 +// 0.884694 +0x3b14 +// 0.330467 +0x354a +// 0.809049 +0x3a79 +// 0.194009 +0x3235 +// 0.429022 +0x36dd +// 0.310447 +0x34f8 +// 0.843172 +0x3abf +// 0.908005 +0x3b44 +// 0.759160 +0x3a13 +// 0.234733 +0x3383 +// 0.607622 +0x38dc +// 0.068157 +0x2c5d +// 0.679746 +0x3970 +// 0.423640 +0x36c7 +// 0.537015 +0x384c +// 0.847526 +0x3ac8 +// 0.331518 +0x354e +// 0.151111 +0x30d6 +// 0.711712 +0x39b2 +// 0.857392 +0x3adc +// 0.181584 +0x31d0 +// 0.685296 +0x397b +// 0.682267 +0x3975 +// 0.536215 +0x384a +// 0.137143 +0x3063 +// 0.992623 +0x3bf1 +// 0.718746 +0x39c0 +// 0.789994 +0x3a52 +// 0.882436 +0x3b0f +// 0.675698 +0x3968 +// 0.065525 +0x2c32 +// 0.247058 +0x33e8 +// 0.412732 +0x369b +// 0.516003 +0x3821 +// 0.724826 +0x39cc +// 0.250258 +0x3401 +// 0.673895 +0x3964 +// 0.971987 +0x3bc7 +// 0.953656 +0x3ba1 +// 0.125795 +0x3007 +// 0.311054 +0x34fa +// 0.268091 +0x344a +// 0.171874 +0x3180 +// 0.534633 +0x3847 +// 0.970055 +0x3bc3 +// 0.561587 +0x387e +// 0.864047 +0x3aea +// 0.289480 +0x34a2 +// 0.961149 +0x3bb0 +// 0.399430 +0x3664 +// 0.910707 +0x3b49 +// 0.686630 +0x397e +// 0.351375 +0x359f +// 0.517483 +0x3824 +// 0.949679 +0x3b99 +// 0.022812 +0x25d7 +// 0.272038 +0x345a +// 0.025820 +0x269c +// 0.050629 +0x2a7b +// 0.655279 +0x393e +// 0.932327 +0x3b75 +// 0.839568 +0x3ab7 +// 0.889107 +0x3b1d +// 0.321026 +0x3523 +// 0.125138 +0x3001 +// 0.042158 +0x2965 +// 0.733452 +0x39de +// 0.123711 +0x2feb +// 0.934647 +0x3b7a +// 0.517533 +0x3824 +// 0.678213 +0x396d +// 0.728540 +0x39d4 +// 0.001265 +0x152e +// 0.984713 +0x3be1 +// 0.763668 +0x3a1c +// 0.470224 +0x3786 +// 0.960563 +0x3baf +// 0.568949 +0x388d +// 0.260928 +0x342d +// 0.407468 +0x3685 +// 0.657686 +0x3943 +// 0.346340 +0x358b +// 0.444853 +0x371e +// 0.173465 +0x318d +// 0.685356 +0x397c +// 0.628635 +0x3907 +// 0.284173 +0x348c +// 0.737884 +0x39e7 +// 0.926120 +0x3b69 +// 0.445672 +0x3721 +// 0.894668 +0x3b28 +// 0.583827 +0x38ac +// 0.379614 +0x3613 +// 0.553418 +0x386d +// 0.446068 +0x3723 +// 0.180808 +0x31c9 +// 0.236895 +0x3395 +// 0.232474 +0x3370 +// 0.119376 +0x2fa4 +// 0.494724 +0x37ea +// 0.134279 +0x304c +// 0.673662 +0x3964 +// 0.338743 +0x356b +// 0.289142 +0x34a0 +// 0.718152 +0x39bf +// 0.820424 +0x3a90 +// 0.393641 +0x364c +// 0.211889 +0x32c8 +// 0.445301 +0x3720 +// 0.522153 +0x382d +// 0.581582 +0x38a7 +// 0.485983 +0x37c7 +// 0.062423 +0x2bfd +// 0.972577 +0x3bc8 +// 0.396505 +0x3658 +// 0.627540 +0x3905 +// 0.473217 +0x3792 +// 0.951819 +0x3b9d +// 0.999323 +0x3bff +// 0.392069 +0x3646 +// 0.526502 +0x3836 +// 0.660505 +0x3949 +// 0.601230 +0x38cf +// 0.492476 +0x37e1 +// 0.022406 +0x25bc +// 0.287267 +0x3499 +// 0.212203 +0x32ca +// 0.587477 +0x38b3 +// 0.202275 +0x3279 +// 0.345918 +0x3589 +// 0.477123 +0x37a2 +// 0.014703 +0x2387 +// 0.459750 +0x375b +// 0.932127 +0x3b75 +// 0.122283 +0x2fd3 +// 0.165198 +0x3149 +// 0.100213 +0x2e6a +// 0.695195 +0x3990 +// 0.576057 +0x389c +// 0.254483 +0x3412 +// 0.406166 +0x3680 +// 0.512208 +0x3819 +// 0.746315 +0x39f8 +// 0.997397 +0x3bfb +// 0.857213 +0x3adc +// 0.198589 +0x325b +// 0.230491 +0x3360 +// 0.014598 +0x2379 +// 0.588906 +0x38b6 +// 0.609012 +0x38df +// 0.078087 +0x2cff +// 0.019817 +0x2513 +// 0.854783 +0x3ad7 +// 0.611634 +0x38e5 +// 0.848840 +0x3aca +// 0.312780 +0x3501 +// 0.726821 +0x39d1 +// 0.243643 +0x33cc +// 0.917021 +0x3b56 +// 0.442773 +0x3716 +// 0.754391 +0x3a09 +// 0.730189 +0x39d7 +// 0.797000 +0x3a60 +// 0.329586 +0x3546 +// 0.624902 +0x3900 +// 0.833698 +0x3aab +// 0.366721 +0x35de +// 0.318427 +0x3518 +// 0.705527 +0x39a5 +// 0.851618 +0x3ad0 +// 0.277938 +0x3472 +// 0.250864 +0x3404 +// 0.718220 +0x39bf +// 0.798028 +0x3a62 +// 0.780686 +0x3a3f +// 0.338108 +0x3569 +// 0.524927 +0x3833 +// 0.991025 +0x3bee +// 0.106383 +0x2ecf +// 0.579037 +0x38a2 +// 0.638424 +0x391b +// 0.449631 +0x3732 +// 0.203214 +0x3281 +// 0.616505 +0x38ef +// 0.118137 +0x2f90 +// 0.249024 +0x33f8 +// 0.766340 +0x3a21 +// 0.940720 +0x3b87 +// 0.983983 +0x3bdf +// 0.644069 +0x3927 +// 0.687254 +0x397f +// 0.406812 +0x3682 +// 0.726525 +0x39d0 +// 0.325679 +0x3536 +// 0.665274 +0x3952 +// 0.410325 +0x3691 +// 0.388826 +0x3639 +// 0.637161 +0x3919 +// 0.461435 +0x3762 +// 0.527991 +0x3839 +// 0.955133 +0x3ba4 +// 0.337260 +0x3565 +// 0.622856 +0x38fc +// 0.330343 +0x3549 +// 0.022636 +0x25cb +// 0.604877 +0x38d7 +// 0.933326 +0x3b77 +// 0.327115 +0x353c +// 0.960654 +0x3baf +// 0.965346 +0x3bb9 +// 0.502589 +0x3805 +// 0.138221 +0x306c +// 0.530778 +0x383f +// 0.093188 +0x2df7 +// 0.958620 +0x3bab +// 0.467607 +0x377b +// 0.450625 +0x3736 +// 0.449993 +0x3733 +// 0.472204 +0x378e +// 0.841734 +0x3abc +// 0.057718 +0x2b63 +// 0.976880 +0x3bd1 +// 0.651835 +0x3937 +// 0.742449 +0x39f1 +// 0.939227 +0x3b84 +// 0.076771 +0x2cea +// 0.548391 +0x3863 +// 0.129425 +0x3024 +// 0.117728 +0x2f89 +// 0.305170 +0x34e2 +// 0.352231 +0x35a3 +// 0.581904 +0x38a8 +// 0.140813 +0x3082 +// 0.438331 +0x3703 +// 0.541062 +0x3854 +// 0.211959 +0x32c8 +// 0.422370 +0x36c2 +// 0.115327 +0x2f62 +// 0.312623 +0x3501 +// 0.207986 +0x32a8 +// 0.794328 +0x3a5b +// 0.108241 +0x2eed +// 0.968752 +0x3bc0 +// 0.055753 +0x2b23 +// 0.852727 +0x3ad2 +// 0.184286 +0x31e6 +// 0.951043 +0x3b9c +// 0.196378 +0x3249 +// 0.206310 +0x329a +// 0.215281 +0x32e4 +// 0.580625 +0x38a5 +// 0.707415 +0x39a9 +// 0.933199 +0x3b77 +// 0.851605 +0x3ad0 +// 0.488477 +0x37d1 +// 0.495560 +0x37ee +// 0.745206 +0x39f6 +// 0.147942 +0x30bc +// 0.628978 +0x3908 +// 0.876897 +0x3b04 +// 0.711070 +0x39b0 +// 0.048431 +0x2a33 +// 0.863584 +0x3ae9 +// 0.749064 +0x39fe +// 0.679990 +0x3971 +// 0.892190 +0x3b23 +// 0.935710 +0x3b7c +// 0.465944 +0x3775 +// 0.328661 +0x3542 +// 0.298295 +0x34c6 +// 0.478419 +0x37a8 +// 0.680718 +0x3972 +// 0.110630 +0x2f15 +// 0.312158 +0x34ff +// 0.270446 +0x3454 +// 0.691661 +0x3989 +// 0.135774 +0x3058 +// 0.721223 +0x39c5 +// 0.824490 +0x3a99 +// 0.029352 +0x2784 +// 0.003468 +0x1b1a +// 0.020929 +0x255c +// 0.770972 +0x3a2b +// 0.299343 +0x34ca +// 0.802760 +0x3a6c +// 0.316331 +0x3510 +// 0.306237 +0x34e6 +// 0.481570 +0x37b5 +// 0.910189 +0x3b48 +// 0.332779 +0x3553 +// 0.799168 +0x3a65 +// 0.956075 +0x3ba6 +// 0.529050 +0x383b +// 0.599117 +0x38cb +// 0.655229 +0x393e +// 0.759688 +0x3a14 +// 0.416549 +0x36aa +// 0.712814 +0x39b4 +// 0.375314 +0x3601 +// 0.457365 +0x3751 +// 0.635930 +0x3916 +// 0.500735 +0x3802 +// 0.633584 +0x3912 +// 0.146921 +0x30b4 +// 0.059724 +0x2ba5 +// 0.836011 +0x3ab0 +// 0.228191 +0x334d +// 0.948741 +0x3b97 +// 0.582866 +0x38aa +// 0.630815 +0x390c +// 0.588866 +0x38b6 +// 0.720856 +0x39c4 +// 0.428253 +0x36da +// 0.810159 +0x3a7b +// 0.137084 +0x3063 +// 0.371839 +0x35f3 +// 0.472509 +0x378f +// 0.458321 +0x3755 +// 0.100794 +0x2e73 +// 0.824052 +0x3a98 +// 0.347898 +0x3591 +// 0.378199 +0x360d +// 0.640314 +0x391f +// 0.298133 +0x34c5 +// 0.473122 +0x3792 +// 0.817072 +0x3a89 +// 0.368676 +0x35e6 +// 0.044563 +0x29b4 +// 0.240517 +0x33b2 +// 0.025418 +0x2682 +// 0.100912 +0x2e75 +// 0.905884 +0x3b3f +// 0.714386 +0x39b7 +// 0.860807 +0x3ae3 +// 0.896372 +0x3b2c +// 0.221448 +0x3316 +// 0.723050 +0x39c9 +// 0.207439 +0x32a3 +// 0.022594 +0x25c9 +// 0.482164 +0x37b7 +// 0.145567 +0x30a8 +// 0.247930 +0x33ef +// 0.683949 +0x3979 +// 0.295295 +0x34ba +// 0.543870 +0x385a +// 0.913097 +0x3b4e +// 0.659384 +0x3946 +// 0.238516 +0x33a2 +// 0.722690 +0x39c8 +// 0.737553 +0x39e7 +// 0.956570 +0x3ba7 +// 0.649516 +0x3932 +// 0.235828 +0x338c +// 0.745256 +0x39f6 +// 0.446734 +0x3726 +// 0.602994 +0x38d3 +// 0.717384 +0x39bd +// 0.515068 +0x381f +// 0.257561 +0x341f +// 0.400512 +0x3668 +// 0.035052 +0x287d +// 0.039887 +0x291b +// 0.532368 +0x3842 +// 0.475292 +0x379b +// 0.750224 +0x3a00 +// 0.015965 +0x2416 +// 0.200676 +0x326c +// 0.842440 +0x3abd +// 0.676263 +0x3969 +// 0.409719 +0x368e +// 0.874058 +0x3afe +// 0.721963 +0x39c7 +// 0.629760 +0x390a +// 0.521914 +0x382d +// 0.004605 +0x1cb7 +// 0.029386 +0x2786 +// 0.998020 +0x3bfc +// 0.015225 +0x23cc +// 0.791329 +0x3a55 +// 0.882275 +0x3b0f +// 0.600731 +0x38ce +// 0.439350 +0x3708 +// 0.793093 +0x3a58 +// 0.920786 +0x3b5e +// 0.080445 +0x2d26 +// 0.541364 +0x3855 +// 0.392164 +0x3646 +// 0.699157 +0x3998 +// 0.182139 +0x31d4 +// 0.498578 +0x37fa +// 0.278796 +0x3476 +// 0.268811 +0x344d +// 0.077952 +0x2cfd +// 0.874345 +0x3aff +// 0.159824 +0x311d +// 0.920364 +0x3b5d +// 0.929100 +0x3b6f +// 0.811222 +0x3a7d +// 0.536249 +0x384a +// 0.191696 +0x3222 +// 0.319581 +0x351d +// 0.487569 +0x37cd +// 0.741845 +0x39ef +// 0.273030 +0x345e +// 0.157033 +0x3106 +// 0.960795 +0x3bb0 +// 0.798617 +0x3a64 +// 0.686588 +0x397e +// 0.453506 +0x3742 +// 0.236478 +0x3391 +// 0.445189 +0x371f +// 0.070069 +0x2c7c +// 0.651283 +0x3936 +// 0.152085 +0x30de +// 0.222776 +0x3321 +// 0.906682 +0x3b41 +// 0.293415 +0x34b2 +// 0.255156 +0x3415 +// 0.279044 +0x3477 +// 0.300684 +0x34d0 +// 0.299626 +0x34cb +// 0.862468 +0x3ae6 +// 0.009220 +0x20b8 +// 0.571991 +0x3893 +// 0.665417 +0x3953 +// 0.303519 +0x34db +// 0.648923 +0x3931 +// 0.653385 +0x393a +// 0.370578 +0x35ee +// 0.587427 +0x38b3 +// 0.875272 +0x3b01 +// 0.288403 +0x349d +// 0.830148 +0x3aa4 +// 0.520516 +0x382a +// 0.249427 +0x33fb +// 0.483691 +0x37bd +// 0.373549 +0x35fa +// 0.508890 +0x3812 +// 0.609882 +0x38e1 +// 0.844786 +0x3ac2 +// 0.396733 +0x3659 +// 0.506511 +0x380d +// 0.557059 +0x3875 +// 0.021312 +0x2575 +// 0.103690 +0x2ea3 +// 0.119392 +0x2fa4 +// 0.650280 +0x3934 +// 0.460828 +0x3760 +// 0.649943 +0x3933 +// 0.094056 +0x2e05 +// 0.778836 +0x3a3b +// 0.531588 +0x3841 +// 0.439512 +0x3708 +// 0.663894 +0x3950 +// 0.943153 +0x3b8c +// 0.464278 +0x376e +// 0.229390 +0x3357 +// 0.924473 +0x3b65 +// 0.268397 +0x344b +// 0.294843 +0x34b8 +// 0.295399 +0x34ba +// 0.753429 +0x3a07 +// 0.996298 +0x3bf8 +// 0.950542 +0x3b9b +// 0.333842 +0x3557 +// 0.248182 +0x33f1 +// 0.347129 +0x358e +// 0.189436 +0x3210 +// 0.643739 +0x3926 +// 0.139986 +0x307b +// 0.457652 +0x3753 +// 0.511902 +0x3818 +// 0.261676 +0x3430 +// 0.288569 +0x349e +// 0.849798 +0x3acc +// 0.230204 +0x335e +// 0.170416 +0x3174 +// 0.573539 +0x3897 +// 0.184632 +0x31e9 +// 0.080257 +0x2d23 +// 0.967297 +0x3bbd +// 0.751699 +0x3a03 +// 0.200856 +0x326d +// 0.368352 +0x35e5 +// 0.991222 +0x3bee +// 0.448273 +0x372c +// 0.306982 +0x34e9 +// 0.281400 +0x3481 +// 0.850247 +0x3acd +// 0.324451 +0x3531 +// 0.257730 +0x3420 +// 0.809824 +0x3a7b +// 0.924068 +0x3b64 +// 0.982870 +0x3bdd +// 0.068136 +0x2c5c +// 0.280205 +0x347c +// 0.675829 +0x3968 +// 0.240836 +0x33b5 +// 0.975529 +0x3bce +// 0.608519 +0x38de +// 0.829814 +0x3aa3 +// 0.034553 +0x286c +// 0.449962 +0x3733 +// 0.645977 +0x392b +// 0.215556 +0x32e6 +// 0.425603 +0x36cf +// 0.732292 +0x39dc +// 0.758045 +0x3a10 +// 0.184859 +0x31ea +// 0.196664 +0x324b +// 0.747765 +0x39fb +// 0.099671 +0x2e61 +// 0.864505 +0x3aeb +// 0.727810 +0x39d3 +// 0.292604 +0x34af +// 0.009423 +0x20d3 +// 0.548798 +0x3864 +// 0.870297 +0x3af6 +// 0.834501 +0x3aad +// 0.104583 +0x2eb1 +// 0.501357 +0x3803 +// 0.823944 +0x3a97 +// 0.936681 +0x3b7e +// 0.191334 +0x321f +// 0.799957 +0x3a66 +// 0.745067 +0x39f6 +// 0.739656 +0x39eb +// 0.518001 +0x3825 +// 0.517371 +0x3824 +// 0.760137 +0x3a15 +// 0.666083 +0x3954 +// 0.366009 +0x35db +// 0.868303 +0x3af2 +// 0.052951 +0x2ac7 +// 0.430934 +0x36e5 +// 0.065213 +0x2c2c +// 0.690670 +0x3986 +// 0.451934 +0x373b +// 0.448818 +0x372e +// 0.503728 +0x3808 +// 0.679110 +0x396f +// 0.392573 +0x3648 +// 0.793184 +0x3a58 +// 0.488153 +0x37cf +// 0.540152 +0x3852 +// 0.698469 +0x3996 +// 0.904954 +0x3b3d +// 0.286745 +0x3497 +// 0.863684 +0x3ae9 +// 0.267082 +0x3446 +// 0.475024 +0x379a +// 0.493425 +0x37e5 +// 0.822064 +0x3a94 +// 0.081396 +0x2d36 +// 0.934507 +0x3b7a +// 0.610661 +0x38e3 +// 0.828361 +0x3aa0 +// 0.418339 +0x36b2 +// 0.208453 +0x32ac +// 0.448718 +0x372e +// 0.150873 +0x30d4 +// 0.313101 +0x3502 +// 0.329005 +0x3544 +// 0.245660 +0x33dc +// 0.690491 +0x3986 +// 0.484978 +0x37c2 +// 0.595304 +0x38c3 +// 0.525975 +0x3835 +// 0.493940 +0x37e7 +// 0.657384 +0x3942 +// 0.346983 +0x358d +// 0.911188 +0x3b4a +// 0.331827 +0x354f +// 0.259947 +0x3429 +// 0.339876 +0x3570 +// 0.138864 +0x3072 +// 0.598104 +0x38c9 +// 0.211342 +0x32c3 +// 0.110260 +0x2f0f +// 0.875395 +0x3b01 +// 0.971743 +0x3bc6 +// 0.769558 +0x3a28 +// 0.208694 +0x32ae +// 0.361589 +0x35c9 +// 0.630892 +0x390c +// 0.769754 +0x3a28 +// 0.355896 +0x35b2 +// 0.680593 +0x3972 +// 0.084712 +0x2d6c +// 0.965268 +0x3bb9 +// 0.195057 +0x323e +// 0.937753 +0x3b81 +// 0.331114 +0x354c +// 0.139607 +0x3078 +// 0.815038 +0x3a85 +// 0.354028 +0x35aa +// 0.095486 +0x2e1c +// 0.051759 +0x2aa0 +// 0.883803 +0x3b12 +// 0.888011 +0x3b1b +// 0.543188 +0x3858 +// 0.267636 +0x3448 +// 0.450202 +0x3734 +// 0.468189 +0x377e +// 0.177513 +0x31ae +// 0.578575 +0x38a1 +// 0.548524 +0x3863 +// 0.713847 +0x39b6 +// 0.246940 +0x33e7 +// 0.874562 +0x3aff +// 0.959822 +0x3bae +// 0.427072 +0x36d5 +// 0.923157 +0x3b63 +// 0.798444 +0x3a63 +// 0.413244 +0x369d +// 0.817484 +0x3a8a +// 0.862033 +0x3ae5 +// 0.042413 +0x296e +// 0.810151 +0x3a7b +// 0.786521 +0x3a4b +// 0.954986 +0x3ba4 +// 0.758511 +0x3a11 +// 0.272054 +0x345a +// 0.975780 +0x3bce +// 0.336268 +0x3561 +// 0.709300 +0x39ad +// 0.891273 +0x3b21 +// 0.755065 +0x3a0a +// 0.126600 +0x300d +// 0.744286 +0x39f4 +// 0.162305 +0x3132 +// 0.663826 +0x3950 +// 0.691158 +0x3987 +// 0.173330 +0x318c +// 0.058259 +0x2b75 +// 0.692474 +0x398a +// 0.996404 +0x3bf9 +// 0.010713 +0x217c +// 0.639091 +0x391d +// 0.063370 +0x2c0e +// 0.179894 +0x31c2 +// 0.147592 +0x30b9 +// 0.239627 +0x33ab +// 0.672463 +0x3961 +// 0.518646 +0x3826 +// 0.796075 +0x3a5e +// 0.541777 +0x3856 +// 0.167715 +0x315e +// 0.846482 +0x3ac6 +// 0.009313 +0x20c5 +// 0.358843 +0x35be +// 0.289255 +0x34a1 +// 0.904240 +0x3b3c +// 0.555669 +0x3872 +// 0.558718 +0x3878 +// 0.218937 +0x3302 +// 0.623336 +0x38fd +// 0.329811 +0x3547 +// 0.647108 +0x392d +// 0.894913 +0x3b29 +// 0.411280 +0x3695 +// 0.724642 +0x39cc +// 0.771829 +0x3a2d +// 0.571085 +0x3892 +// 0.741961 +0x39f0 +// 0.256529 +0x341b +// 0.741418 +0x39ee +// 0.866045 +0x3aee +// 0.136454 +0x305e +// 0.256001 +0x3419 +// 0.314407 +0x3508 +// 0.172665 +0x3186 +// 0.108597 +0x2ef3 +// 0.648166 +0x392f +// 0.579110 +0x38a2 +// 0.245051 +0x33d7 +// 0.996041 +0x3bf8 +// 0.195132 +0x323f +// 0.047201 +0x2a0b +// 0.338114 +0x3569 +// 0.413838 +0x369f +// 0.529281 +0x383c +// 0.339439 +0x356e +// 0.613016 +0x38e7 +// 0.781333 +0x3a40 +// 0.681549 +0x3974 +// 0.671323 +0x395f +// 0.209927 +0x32b8 +// 0.231285 +0x3367 +// 0.786007 +0x3a4a +// 0.820624 +0x3a91 +// 0.858193 +0x3ade +// 0.043142 +0x2986 +// 0.983526 +0x3bde +// 0.958162 +0x3baa +// 0.903399 +0x3b3a +// 0.019174 +0x24e9 +// 0.904991 +0x3b3d +// 0.789598 +0x3a51 +// 0.519277 +0x3827 +// 0.131005 +0x3031 +// 0.255135 +0x3415 +// 0.364999 +0x35d7 +// 0.416950 +0x36ac +// 0.021830 +0x2597 +// 0.077677 +0x2cf9 +// 0.378855 +0x3610 +// 0.679389 +0x396f +// 0.257132 +0x341d +// 0.150524 +0x30d1 +// 0.357406 +0x35b8 +// 0.010255 +0x2140 +// 0.442317 +0x3714 +// 0.822703 +0x3a95 +// 0.256190 +0x3419 +// 0.063006 +0x2c08 +// 0.269048 +0x344e +// 0.158596 +0x3113 +// 0.815731 +0x3a87 +// 0.321473 +0x3525 +// 0.635594 +0x3916 +// 0.530180 +0x383e +// 0.218401 +0x32fd +// 0.161966 +0x312f +// 0.603395 +0x38d4 +// 0.051632 +0x2a9c +// 0.457855 +0x3753 +// 0.116790 +0x2f79 +// 0.485709 +0x37c5 +// 0.112695 +0x2f36 +// 0.864580 +0x3aeb +// 0.975778 +0x3bce +// 0.132567 +0x303e +// 0.557486 +0x3876 +// 0.435710 +0x36f9 +// 0.391300 +0x3643 +// 0.935448 +0x3b7c +// 0.692620 +0x398a +// 0.792742 +0x3a58 +// 0.076510 +0x2ce6 +// 0.024301 +0x2639 +// 0.755604 +0x3a0b +// 0.838205 +0x3ab5 +// 0.353871 +0x35a9 +// 0.212525 +0x32cd +// 0.116584 +0x2f76 +// 0.215547 +0x32e6 +// 0.317204 +0x3513 +// 0.286014 +0x3494 +// 0.349892 +0x3599 +// 0.872678 +0x3afb +// 0.113614 +0x2f45 +// 0.187463 +0x3200 +// 0.167545 +0x315d +// 0.653596 +0x393b +// 0.793293 +0x3a59 +// 0.625148 +0x3900 +// 0.159279 +0x3119 +// 0.323042 +0x352b +// 0.733602 +0x39de +// 0.431910 +0x36e9 +// 0.546750 +0x3860 +// 0.233452 +0x3378 +// 0.017948 +0x2498 +// 0.007697 +0x1fe2 +// 0.206007 +0x3298 +// 0.973038 +0x3bc9 +// 0.979324 +0x3bd6 +// 0.112165 +0x2f2e +// 0.576660 +0x389d +// 0.973423 +0x3bca +// 0.536283 +0x384a +// 0.077696 +0x2cf9 +// 0.227513 +0x3348 +// 0.949075 +0x3b98 +// 0.628969 +0x3908 +// 0.976760 +0x3bd0 +// 0.913355 +0x3b4f +// 0.503917 +0x3808 +// 0.746390 +0x39f9 +// 0.383844 +0x3624 +// 0.020363 +0x2537 +// 0.026818 +0x26de +// 0.730888 +0x39d9 +// 0.725240 +0x39cd +// 0.516946 +0x3823 +// 0.316304 +0x3510 +// 0.909669 +0x3b47 +// 0.959588 +0x3bad +// 0.581036 +0x38a6 +// 0.526167 +0x3836 +// 0.773705 +0x3a31 +// 0.351170 +0x359e +// 0.147378 +0x30b7 +// 0.910494 +0x3b49 +// 0.639453 +0x391e +// 0.440880 +0x370e +// 0.718342 +0x39bf +// 0.435293 +0x36f7 +// 0.242751 +0x33c5 +// 0.876348 +0x3b03 +// 0.341453 +0x3577 +// 0.498874 +0x37fb +// 0.296446 +0x34be +// 0.610776 +0x38e3 +// 0.900814 +0x3b35 +// 0.513973 +0x381d +// 0.873187 +0x3afc +// 0.790613 +0x3a53 +// 0.837486 +0x3ab3 +// 0.321695 +0x3526 +// 0.822657 +0x3a95 +// 0.845356 +0x3ac3 +// 0.439218 +0x3707 +// 0.795024 +0x3a5c +// 0.757243 +0x3a0f +// 0.022370 +0x25ba +// 0.746641 +0x39f9 +// 0.173118 +0x318a +// 0.662746 +0x394d +// 0.054632 +0x2afe +// 0.927906 +0x3b6c +// 0.838215 +0x3ab5 +// 0.057215 +0x2b53 +// 0.332920 +0x3554 +// 0.021644 +0x258a +// 0.507307 +0x380f +// 0.573053 +0x3896 +// 0.951392 +0x3b9c +// 0.535383 +0x3848 +// 0.735008 +0x39e1 +// 0.151821 +0x30dc +// 0.147185 +0x30b6 +// 0.196050 +0x3246 +// 0.507513 +0x380f +// 0.114248 +0x2f50 +// 0.851205 +0x3acf +// 0.238699 +0x33a3 +// 0.551410 +0x3869 +// 0.765027 +0x3a1f +// 0.680492 +0x3972 +// 0.713419 +0x39b5 +// 0.216540 +0x32ee +// 0.840791 +0x3aba +// 0.389041 +0x363a +// 0.994124 +0x3bf4 +// 0.954548 +0x3ba3 +// 0.591536 +0x38bb +// 0.986659 +0x3be5 +// 0.461941 +0x3764 +// 0.205713 +0x3295 +// 0.403110 +0x3673 +// 0.574002 +0x3898 +// 0.698281 +0x3996 +// 0.865206 +0x3aec +// 0.501860 +0x3804 +// 0.713521 +0x39b5 +// 0.991253 +0x3bee +// 0.206053 +0x3298 +// 0.225107 +0x3334 +// 0.129483 +0x3025 +// 0.851803 +0x3ad0 +// 0.495729 +0x37ef +// 0.380064 +0x3615 +// 0.074027 +0x2cbd +// 0.746932 +0x39fa +// 0.272370 +0x345c +// 0.410211 +0x3690 +// 0.522341 +0x382e +// 0.385209 +0x362a +// 0.270196 +0x3453 +// 0.714611 +0x39b8 +// 0.778975 +0x3a3b +// 0.252956 +0x340c +// 0.192992 +0x322d +// 0.086718 +0x2d8d +// 0.174804 +0x3198 +// 0.103742 +0x2ea4 +// 0.847634 +0x3ac8 +// 0.983278 +0x3bde +// 0.049592 +0x2a59 +// 0.992643 +0x3bf1 +// 0.380947 +0x3618 +// 0.120246 +0x2fb2 +// 0.196491 +0x324a +// 0.554148 +0x386f +// 0.212437 +0x32cc +// 0.780764 +0x3a3f +// 0.298323 +0x34c6 +// 0.130422 +0x302c +// 0.929998 +0x3b71 +// 0.241071 +0x33b7 +// 0.812680 +0x3a80 +// 0.744086 +0x39f4 +// 0.355519 +0x35b0 +// 0.018621 +0x24c4 +// 0.299106 +0x34c9 +// 0.605621 +0x38d8 +// 0.979051 +0x3bd5 +// 0.875588 +0x3b01 +// 0.537619 +0x384d +// 0.781501 +0x3a41 +// 0.048647 +0x2a3a +// 0.555471 +0x3872 +// 0.103566 +0x2ea1 +// 0.708706 +0x39ab +// 0.930560 +0x3b72 +// 0.709008 +0x39ac +// 0.571693 +0x3893 +// 0.916460 +0x3b55 +// 0.157695 +0x310c +// 0.279523 +0x3479 +// 0.444029 +0x371b +// 0.151499 +0x30d9 +// 0.628500 +0x3907 +// 0.755019 +0x3a0a +// 0.856255 +0x3ada +// 0.005452 +0x1d95 +// 0.527549 +0x3838 +// 0.298202 +0x34c5 +// 0.647089 +0x392d +// 0.781924 +0x3a41 +// 0.779766 +0x3a3d +// 0.783362 +0x3a44 +// 0.743563 +0x39f3 +// 0.267762 +0x3449 +// 0.150158 +0x30ce +// 0.717368 +0x39bd +// 0.413618 +0x369e +// 0.102626 +0x2e91 +// 0.622160 +0x38fa +// 0.098649 +0x2e50 +// 0.360493 +0x35c5 +// 0.213643 +0x32d6 +// 0.362172 +0x35cb +// 0.419751 +0x36b7 +// 0.408524 +0x3689 +// 0.216638 +0x32ef +// 0.759328 +0x3a13 +// 0.498416 +0x37fa +// 0.458216 +0x3755 +// 0.844962 +0x3ac2 +// 0.317467 +0x3514 +// 0.555105 +0x3871 +// 0.623731 +0x38fd +// 0.976349 +0x3bd0 +// 0.416375 +0x36a9 +// 0.520733 +0x382a +// 0.606129 +0x38d9 +// 0.676741 +0x396a +// 0.913013 +0x3b4e +// 0.941863 +0x3b89 +// 0.551557 +0x386a +// 0.184675 +0x31e9 +// 0.565163 +0x3885 +// 0.562968 +0x3881 +// 0.435912 +0x36f9 +// 0.942787 +0x3b8b +// 0.082524 +0x2d48 +// 0.770365 +0x3a2a +// 0.449020 +0x372f +// 0.932167 +0x3b75 +// 0.112817 +0x2f38 +// 0.464159 +0x376d +// 0.517895 +0x3825 +// 0.850604 +0x3ace +// 0.390097 +0x363e +// 0.191320 +0x321f +// 0.109506 +0x2f02 +// 0.671381 +0x395f +// 0.694182 +0x398e +// 0.443293 +0x3718 +// 0.924463 +0x3b65 +// 0.302391 +0x34d7 +// 0.119994 +0x2fae +// 0.750904 +0x3a02 +// 0.558746 +0x3878 +// 0.834973 +0x3aae +// 0.973611 +0x3bca +// 0.541042 +0x3854 +// 0.380230 +0x3615 +// 0.259715 +0x3428 +// 0.168613 +0x3165 +// 0.151036 +0x30d5 +// 0.783899 +0x3a45 +// 0.731611 +0x39da +// 0.657036 +0x3942 +// 0.965403 +0x3bb9 +// 0.711042 +0x39b0 +// 0.482399 +0x37b8 +// 0.115916 +0x2f6b +// 0.383435 +0x3623 +// 0.381354 +0x361a +// 0.221058 +0x3313 +// 0.443825 +0x371a +// 0.382286 +0x361e +// 0.763811 +0x3a1c +// 0.271513 +0x3458 +// 0.198002 +0x3256 +// 0.577473 +0x389f +// 0.906727 +0x3b41 +// 0.524249 +0x3832 +// 0.624529 +0x38ff +// 0.091300 +0x2dd8 +// 0.583927 +0x38ac +// 0.695059 +0x398f +// 0.581338 +0x38a7 +// 0.319078 +0x351b +// 0.027171 +0x26f5 +// 0.456560 +0x374e +// 0.906479 +0x3b40 +// 0.395631 +0x3655 +// 0.946983 +0x3b93 +// 0.041032 +0x2941 +// 0.156468 +0x3102 +// 0.738627 +0x39e9 +// 0.390021 +0x363e +// 0.059991 +0x2bae +// 0.074282 +0x2cc1 +// 0.730353 +0x39d8 +// 0.476670 +0x37a0 +// 0.619469 +0x38f5 +// 0.659501 +0x3947 +// 0.790122 +0x3a52 +// 0.355983 +0x35b2 +// 0.880582 +0x3b0b +// 0.965261 +0x3bb9 +// 0.387878 +0x3635 +// 0.234986 +0x3385 +// 0.651590 +0x3936 +// 0.395043 +0x3652 +// 0.577018 +0x389e +// 0.846110 +0x3ac5 +// 0.688622 +0x3982 +// 0.940771 +0x3b87 +// 0.782031 +0x3a42 +// 0.479077 +0x37aa +// 0.534566 +0x3847 +// 0.572793 +0x3895 +// 0.127767 +0x3017 +// 0.677484 +0x396b +// 0.764514 +0x3a1e +// 0.087741 +0x2d9e +// 0.209783 +0x32b7 +// 0.031095 +0x27f6 +// 0.620081 +0x38f6 +// 0.101747 +0x2e83 +// 0.630845 +0x390c +// 0.277665 +0x3471 +// 0.197009 +0x324e +// 0.419876 +0x36b8 +// 0.933652 +0x3b78 +// 0.483197 +0x37bb +// 0.599988 +0x38cd +// 0.503834 +0x3808 +// 0.626573 +0x3903 +// 0.893043 +0x3b25 +// 0.809436 +0x3a7a +// 0.696872 +0x3993 +// 0.186825 +0x31fa +// 0.680283 +0x3971 +// 0.213883 +0x32d8 +// 0.599880 +0x38cd +// 0.329722 +0x3547 +// 0.792279 +0x3a57 +// 0.621120 +0x38f8 +// 0.562922 +0x3881 +// 0.767122 +0x3a23 +// 0.619395 +0x38f5 +// 0.799376 +0x3a65 +// 0.641788 +0x3922 +// 0.295762 +0x34bb +// 0.664980 +0x3952 +// 0.671026 +0x395e +// 0.629084 +0x3908 +// 0.191833 +0x3223 +// 0.290073 +0x34a4 diff --git a/Testing/Patterns/DSP/SupportBarF16/Weights1_f16.txt b/Testing/Patterns/DSP/SupportBarF16/Weights1_f16.txt new file mode 100755 index 00000000..171d1be4 --- /dev/null +++ b/Testing/Patterns/DSP/SupportBarF16/Weights1_f16.txt @@ -0,0 +1,136 @@ +H +67 +// 0.586587 +0x38b1 +// 0.967413 +0x3bbd +// 0.103899 +0x2ea6 +// 0.812563 +0x3a80 +// 0.700588 +0x399b +// 0.072419 +0x2ca3 +// 0.025789 +0x269a +// 0.160875 +0x3126 +// 0.449514 +0x3731 +// 0.679843 +0x3970 +// 0.313259 +0x3503 +// 0.746796 +0x39f9 +// 0.052101 +0x2aab +// 0.758290 +0x3a11 +// 0.750161 +0x3a00 +// 0.734067 +0x39df +// 0.190501 +0x3219 +// 0.362815 +0x35ce +// 0.926594 +0x3b6a +// 0.965030 +0x3bb8 +// 0.573280 +0x3896 +// 0.002884 +0x19e8 +// 0.216499 +0x32ee +// 0.960992 +0x3bb0 +// 0.289942 +0x34a4 +// 0.734115 +0x39df +// 0.773575 +0x3a30 +// 0.139824 +0x3079 +// 0.237692 +0x339b +// 0.705432 +0x39a5 +// 0.176470 +0x31a6 +// 0.608995 +0x38df +// 0.946655 +0x3b93 +// 0.715297 +0x39b9 +// 0.489275 +0x37d4 +// 0.142748 +0x3091 +// 0.927856 +0x3b6c +// 0.051195 +0x2a8e +// 0.822680 +0x3a95 +// 0.851382 +0x3ad0 +// 0.333856 +0x3557 +// 0.417365 +0x36ae +// 0.177323 +0x31ad +// 0.381014 +0x3619 +// 0.684170 +0x3979 +// 0.794994 +0x3a5c +// 0.796380 +0x3a5f +// 0.306946 +0x34e9 +// 0.304410 +0x34df +// 0.877385 +0x3b05 +// 0.547589 +0x3861 +// 0.583798 +0x38ac +// 0.114610 +0x2f56 +// 0.639137 +0x391d +// 0.083052 +0x2d51 +// 0.854577 +0x3ad6 +// 0.235748 +0x338b +// 0.537383 +0x384d +// 0.801044 +0x3a69 +// 0.237114 +0x3396 +// 0.050423 +0x2a74 +// 0.595702 +0x38c4 +// 0.764289 +0x3a1d +// 0.079631 +0x2d19 +// 0.821178 +0x3a92 +// 0.054163 +0x2aef +// 0.034259 +0x2863 diff --git a/Testing/Source/Tests/SupportBarTestsF16.cpp b/Testing/Source/Tests/SupportBarTestsF16.cpp new file mode 100755 index 00000000..1c636b3d --- /dev/null +++ b/Testing/Source/Tests/SupportBarTestsF16.cpp @@ -0,0 +1,67 @@ +#include "SupportBarTestsF16.h" +#include +#include "Error.h" +#include "Test.h" + + + void SupportBarTestsF16::test_barycenter_f16() + { + const float16_t *inp = input.ptr(); + const float16_t *coefsp = coefs.ptr(); + const int16_t *dimsp=dims.ptr(); + int nbVecs; + int vecDim; + + float16_t *outp = output.ptr(); + + for(int i=0; i < this->nbTests ; i ++) + { + nbVecs = dimsp[2*i+1]; + vecDim = dimsp[2*i+2]; + + arm_barycenter_f16(inp, coefsp, + outp, + nbVecs, + vecDim); + + inp += vecDim * nbVecs; + coefsp += nbVecs; + outp += vecDim; + } + + ASSERT_NEAR_EQ(output,ref,(float16_t)1e-3); + ASSERT_EMPTY_TAIL(output); + } + + + void SupportBarTestsF16::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) + { + (void)paramsArgs; + dims.reload(SupportBarTestsF16::DIM_S16_ID,mgr); + + const int16_t *dimsp=dims.ptr(); + + this->nbTests=dimsp[0]; + + + switch(id) + { + + case TEST_BARYCENTER_F16_1: + input.reload(SupportBarTestsF16::SAMPLES_F16_ID,mgr); + coefs.reload(SupportBarTestsF16::COEFS_F16_ID,mgr); + ref.reload(SupportBarTestsF16::REF_F16_ID,mgr); + + output.create(ref.nbSamples(),SupportBarTestsF16::OUT_SAMPLES_F16_ID,mgr); + break; + } + + + + } + + void SupportBarTestsF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) + { + (void)id; + output.dump(mgr); + } diff --git a/Testing/Source/Tests/SupportTestsF16.cpp b/Testing/Source/Tests/SupportTestsF16.cpp new file mode 100755 index 00000000..654c1b90 --- /dev/null +++ b/Testing/Source/Tests/SupportTestsF16.cpp @@ -0,0 +1,315 @@ +#include "SupportTestsF16.h" +#include +#include +#include "Error.h" +#include "Test.h" + +#define SNR_THRESHOLD 120 +#define REL_ERROR (1.0e-5) + +#define REL_WEIGHTEDSUM_ERROR (2.0e-2) + +#define REL_ERROR_F32 (1.0e-3) +#define ABS_Q15_ERROR ((q15_t)10) +#define ABS_Q31_ERROR ((q31_t)80) +#define ABS_Q7_ERROR ((q7_t)10) + + +void SupportTestsF16::test_weighted_sum_f16() +{ + const float16_t *inp = input.ptr(); + const float16_t *coefsp = coefs.ptr(); + float16_t *refp = ref.ptr(); + + float16_t *outp = output.ptr(); + + + *outp=arm_weighted_sum_f16(inp, coefsp,this->nbSamples); + + + ASSERT_REL_ERROR(*outp,refp[this->offset],REL_WEIGHTEDSUM_ERROR); + ASSERT_EMPTY_TAIL(output); + +} + + +void SupportTestsF16::test_copy_f16() +{ + const float16_t *inp = input.ptr(); + float16_t *outp = output.ptr(); + + + arm_copy_f16(inp, outp,this->nbSamples); + + + ASSERT_EQ(input,output); + ASSERT_EMPTY_TAIL(output); + +} + +void SupportTestsF16::test_fill_f16() +{ + float16_t *outp = output.ptr(); + float16_t val = 1.1; + int i; + + + arm_fill_f16(val, outp,this->nbSamples); + + + for(i=0 ; i < this->nbSamples; i++) + { + ASSERT_EQ(val,outp[i]); +} +ASSERT_EMPTY_TAIL(output); + +} + +void SupportTestsF16::test_f16_q15() +{ + const float16_t *inp = input.ptr(); + q15_t *outp = outputQ15.ptr(); + + + arm_f16_to_q15(inp, outp,this->nbSamples); + + + ASSERT_NEAR_EQ(refQ15,outputQ15,ABS_Q15_ERROR); + ASSERT_EMPTY_TAIL(outputQ15); + +} + +void SupportTestsF16::test_f16_f32() +{ + const float16_t *inp = input.ptr(); + float32_t *outp = outputF32.ptr(); + + + arm_f16_to_float(inp, outp,this->nbSamples); + + + ASSERT_REL_ERROR(refF32,outputF32,REL_ERROR_F32); + ASSERT_EMPTY_TAIL(outputF32); + +} + +void SupportTestsF16::test_q15_f16() +{ + const q15_t *inp = inputQ15.ptr(); + float16_t *outp = output.ptr(); + + + arm_q15_to_f16(inp, outp,this->nbSamples); + + + ASSERT_REL_ERROR(ref,output,REL_ERROR); + ASSERT_EMPTY_TAIL(outputF32); + +} + +void SupportTestsF16::test_f32_f16() +{ + const float32_t *inp = inputF32.ptr(); + float16_t *outp = output.ptr(); + + + arm_float_to_f16(inp, outp,this->nbSamples); + + + ASSERT_REL_ERROR(ref,output,REL_ERROR); + ASSERT_EMPTY_TAIL(outputF32); + +} + + +void SupportTestsF16::setUp(Testing::testID_t id,std::vector& paramsArgs,Client::PatternMgr *mgr) +{ + + (void)paramsArgs; + switch(id) + { + + case TEST_WEIGHTED_SUM_F16_1: + this->nbSamples = 3; + input.reload(SupportTestsF16::INPUTS_F16_ID,mgr,this->nbSamples); + coefs.reload(SupportTestsF16::WEIGHTS_F16_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::REF_F16_ID,mgr); + + output.create(1,SupportTestsF16::OUT_F16_ID,mgr); + + this->offset=0; + break; + + case TEST_WEIGHTED_SUM_F16_2: + this->nbSamples = 8; + input.reload(SupportTestsF16::INPUTS_F16_ID,mgr,this->nbSamples); + coefs.reload(SupportTestsF16::WEIGHTS_F16_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::REF_F16_ID,mgr); + + output.create(1,SupportTestsF16::OUT_F16_ID,mgr); + + this->offset=1; + break; + + case TEST_WEIGHTED_SUM_F16_3: + this->nbSamples = 11; + input.reload(SupportTestsF16::INPUTS_F16_ID,mgr,this->nbSamples); + coefs.reload(SupportTestsF16::WEIGHTS_F16_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::REF_F16_ID,mgr); + + output.create(1,SupportTestsF16::OUT_F16_ID,mgr); + + this->offset=2; + break; + + case TEST_COPY_F16_4: + this->nbSamples = 7; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + + output.create(input.nbSamples(),SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_COPY_F16_5: + this->nbSamples = 16; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + + output.create(input.nbSamples(),SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_COPY_F16_6: + this->nbSamples = 23; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + + output.create(input.nbSamples(),SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_FILL_F16_7: + this->nbSamples = 7; + + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_FILL_F16_8: + this->nbSamples = 16; + + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_FILL_F16_9: + this->nbSamples = 23; + + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_F16_Q15_10: + this->nbSamples = 7; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + refQ15.reload(SupportTestsF16::SAMPLES_Q15_ID,mgr,this->nbSamples); + outputQ15.create(this->nbSamples,SupportTestsF16::OUT_Q15_ID,mgr); + + break; + + case TEST_F16_Q15_11: + this->nbSamples = 16; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + refQ15.reload(SupportTestsF16::SAMPLES_Q15_ID,mgr,this->nbSamples); + outputQ15.create(this->nbSamples,SupportTestsF16::OUT_Q15_ID,mgr); + + break; + + case TEST_F16_Q15_12: + this->nbSamples = 23; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + refQ15.reload(SupportTestsF16::SAMPLES_Q15_ID,mgr,this->nbSamples); + outputQ15.create(this->nbSamples,SupportTestsF16::OUT_Q15_ID,mgr); + + break; + + case TEST_F16_F32_13: + this->nbSamples = 7; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + refF32.reload(SupportTestsF16::SAMPLES_F32_ID,mgr,this->nbSamples); + outputF32.create(this->nbSamples,SupportTestsF16::OUT_F32_ID,mgr); + + break; + + case TEST_F16_F32_14: + this->nbSamples = 16; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + refF32.reload(SupportTestsF16::SAMPLES_F32_ID,mgr,this->nbSamples); + outputF32.create(this->nbSamples,SupportTestsF16::OUT_F32_ID,mgr); + + break; + + case TEST_F16_F32_15: + this->nbSamples = 23; + input.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + refF32.reload(SupportTestsF16::SAMPLES_F32_ID,mgr,this->nbSamples); + outputF32.create(this->nbSamples,SupportTestsF16::OUT_F32_ID,mgr); + + break; + + case TEST_Q15_F16_16: + this->nbSamples = 7; + inputQ15.reload(SupportTestsF16::SAMPLES_Q15_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_Q15_F16_17: + this->nbSamples = 16; + inputQ15.reload(SupportTestsF16::SAMPLES_Q15_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_Q15_F16_18: + this->nbSamples = 23; + inputQ15.reload(SupportTestsF16::SAMPLES_Q15_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_F32_F16_19: + this->nbSamples = 3; + inputF32.reload(SupportTestsF16::SAMPLES_F32_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_F32_F16_20: + this->nbSamples = 8; + inputF32.reload(SupportTestsF16::SAMPLES_F32_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + case TEST_F32_F16_21: + this->nbSamples = 11; + inputF32.reload(SupportTestsF16::SAMPLES_F32_ID,mgr,this->nbSamples); + ref.reload(SupportTestsF16::SAMPLES_F16_ID,mgr,this->nbSamples); + output.create(this->nbSamples,SupportTestsF16::OUT_F16_ID,mgr); + + break; + + + } + +} + +void SupportTestsF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) +{ + (void)id; + output.dump(mgr); +} diff --git a/Testing/desc_f16.txt b/Testing/desc_f16.txt index e1262619..b5f27502 100755 --- a/Testing/desc_f16.txt +++ b/Testing/desc_f16.txt @@ -28,16 +28,16 @@ group Root { //Pattern INPUT22_F16_ID : Input22_f16.txt //Pattern DIM22_S16_ID : Dims22_s16.txt //Pattern REF22_ENTROPY_F16_ID : RefEntropy22_f16.txt -// + // //Pattern INPUT23_F16_ID : Input23_f16.txt //Pattern DIM23_S16_ID : Dims23_s16.txt //Pattern REF23_LOGSUMEXP_F16_ID : RefLogSumExp23_f16.txt -// + // //Pattern INPUTA24_F16_ID : InputA24_f16.txt //Pattern INPUTB24_F16_ID : InputB24_f16.txt //Pattern DIM24_S16_ID : Dims24_s16.txt //Pattern REF24_KL_F16_ID : RefKL24_f16.txt -// + // //Pattern INPUTA25_F16_ID : InputA25_f16.txt //Pattern INPUTB25_F16_ID : InputB25_f16.txt //Pattern DIM25_S16_ID : Dims25_s16.txt @@ -95,6 +95,73 @@ group Root { } } + group Support Tests { + class = SupportTests + folder = Support + + suite Support Tests F16 { + class = SupportTestsF16 + folder = SupportF16 + + Pattern INPUTS_F16_ID : Inputs6_f16.txt + Pattern WEIGHTS_F16_ID : Weights6_f16.txt + Pattern REF_F16_ID : Ref6_f16.txt + + Pattern SAMPLES_F32_ID : Samples1_f32.txt + Pattern SAMPLES_Q15_ID : Samples3_q15.txt + Pattern SAMPLES_F16_ID : Samples11_f16.txt + + Output OUT_F16_ID : Output + Output OUT_Q15_ID : OutputQ15 + Output OUT_F32_ID : OutputF32 + + Functions { + test_weighted_sum_f16 nb=3:test_weighted_sum_f16 + test_weighted_sum_f16 nb=4n:test_weighted_sum_f16 + test_weighted_sum_f16 nb=4n+1:test_weighted_sum_f16 + test_copy_f16 nb=7:test_copy_f16 + test_copy_f16 nb=8n:test_copy_f16 + test_copy_f16 nb=8n+1:test_copy_f16 + test_fill_f16 nb=7:test_fill_f16 + test_fill_f16 nb=8n:test_fill_f16 + test_fill_f16 nb=8n+1:test_fill_f16 + test_f16_q15 nb=7:test_f16_q15 + test_f16_q15 nb=8n:test_f16_q15 + test_f16_q15 nb=8n+1:test_f16_q15 + test_f16_f32 nb=7:test_f16_f32 + test_f16_f32 nb=8n:test_f16_f32 + test_f16_f32 nb=8n+1:test_f16_f32 + test_q15_f16 nb=7:test_q15_f16 + test_q15_f16 nb=8n:test_q15_f16 + test_q15_f16 nb=8n+1:test_q15_f16 + test_f32_f16 nb=3:test_f32_f16 + test_f32_f16 nb=4n:test_f32_f16 + test_f32_f16 nb=4n+1:test_f32_f16 + } + + } + + } + + suite Support Bar Tests F16 { + class = SupportBarTestsF16 + folder = SupportBarF16 + + Pattern SAMPLES_F16_ID : Inputs1_f16.txt + Pattern COEFS_F16_ID : Weights1_f16.txt + Pattern REF_F16_ID : Ref1_f16.txt + Pattern DIM_S16_ID : Dims1_s16.txt + + + Output OUT_SAMPLES_F16_ID : Output + + + Functions { + test_barycenter_f16:test_barycenter_f16 + } + + } + group Interpolation Tests{ class = InterpolationTests