diff --git a/.gitignore b/.gitignore index 21a7154c9e555d38221ad10b81572effcf6d23d2..04a72323f13973b4a37da26f47f82f279fd54148 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ build Documentation/html/* Doxygen/history.txt Doxygen/dsp.dxy +__pycache__/ \ No newline at end of file diff --git a/Doxygen/dsp.dxy.in b/Doxygen/dsp.dxy.in index 278ae87978a8c8e3b340ce684c1cd195daab851d..86e92a5d66ebe5afe2b3ca065a9e22fd5cc8290d 100644 --- a/Doxygen/dsp.dxy.in +++ b/Doxygen/dsp.dxy.in @@ -1703,7 +1703,7 @@ FORMULA_MACROFILE = # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -USE_MATHJAX = NO +USE_MATHJAX = YES # With MATHJAX_VERSION it is possible to specify the MathJax version to be used. # Note that the different versions of MathJax have different requirements with @@ -1745,7 +1745,7 @@ MATHJAX_FORMAT = HTML-CSS # - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_RELPATH = +MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example @@ -1757,7 +1757,7 @@ MATHJAX_RELPATH = # MATHJAX_EXTENSIONS = ams # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_EXTENSIONS = +MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site diff --git a/Include/dsp/debug.h b/Include/dsp/debug.h new file mode 100644 index 0000000000000000000000000000000000000000..c95804ceae1193778c156583b7fd436aa17416de --- /dev/null +++ b/Include/dsp/debug.h @@ -0,0 +1,146 @@ +/****************************************************************************** + * @file basic_math_functions.h + * @brief Public header file for CMSIS DSP Library + * @version V1.10.0 + * @date 08 July 2021 + * 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. + */ + + +#ifndef _DEBUG_FUNCTIONS_H_ +#define _DEBUG_FUNCTIONS_H_ + +#include "arm_math_types.h" +#include "arm_math_memory.h" + +#include "dsp/none.h" +#include "dsp/utils.h" + +#include "dsp/matrix_functions.h" +#include "dsp/matrix_functions_f16.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if defined(ARM_FLOAT16_SUPPORTED) +#define PROW_f16(S,NB) \ +{ \ + printf("{%f",(double)(S)[0]); \ + for(unsigned int i=1;i<(NB) ;i++) \ + { \ + printf(",%f",(double)(S)[i]);\ + } \ + printf("}"); \ +}; + +#define PV_f16(S,V,NB)\ +{ \ + printf("%s=",(S)); \ + PROW_f16((V),(NB)); \ + printf(";\n"); \ +}; + +#define PM_f16(S,M) \ +{ \ + printf("%s={",(S)); \ + for(unsigned int row=0;row<(M)->numRows;row++) \ + { \ + if (row != 0) \ + { \ + printf("\n,"); \ + } \ + PROW_f16((M)->pData + row * (M)->numCols, (M)->numCols);\ + } \ + printf("};\n"); \ +} + +#endif + +#define PROW_f32(S,NB) \ +{ \ + printf("{%f",(double)(S)[0]); \ + for(unsigned int i=1;i<(NB) ;i++) \ + { \ + printf(",%f",(double)(S)[i]);\ + } \ + printf("}"); \ +}; + +#define PV_f32(S,V,NB)\ +{ \ + printf("%s=",(S)); \ + PROW_f32((V),(NB)); \ + printf(";\n"); \ +}; + +#define PM_f32(S,M) \ +{ \ + printf("%s={",(S)); \ + for(unsigned int row=0;row<(M)->numRows;row++) \ + { \ + if (row != 0) \ + { \ + printf("\n,"); \ + } \ + PROW_f32((M)->pData + row * (M)->numCols, (M)->numCols);\ + } \ + printf("};\n"); \ +} + +#define PROW_f64(S,NB) \ +{ \ + printf("{%.20g",(double)(S)[0]); \ + for(unsigned int i=1;i<(NB) ;i++) \ + { \ + printf(",%.20g",(double)(S)[i]);\ + } \ + printf("}"); \ +}; + +#define PV_f64(S,V,NB) \ +{ \ + printf("%s=",(S)); \ + PROW_f64((V),(NB));\ + printf(";\n"); \ +}; + +#define PM_f64(S,M) \ +{ \ + printf("%s={",(S)); \ + for(unsigned int row=0;row<(M)->numRows;row++) \ + { \ + if (row != 0) \ + { \ + printf("\n,"); \ + } \ + PROW_f64((M)->pData + row * (M)->numCols, (M)->numCols);\ + } \ + printf("};\n"); \ +} + +#ifdef __cplusplus +} +#endif + +#endif /* ifndef _DEBUG_FUNCTIONS_H_ */ diff --git a/Include/dsp/matrix_functions.h b/Include/dsp/matrix_functions.h index f3801a98b80097cd19a18b795a66df698b9f35db..c8606be5fc59b6971f1f35eec8fb5315d2f4f36f 100755 --- a/Include/dsp/matrix_functions.h +++ b/Include/dsp/matrix_functions.h @@ -109,6 +109,9 @@ extern "C" * return ARM_MATH_SUCCESS. */ + #define DEFAULT_HOUSEHOLDER_THRESHOLD_F64 (1.0e-16) + #define DEFAULT_HOUSEHOLDER_THRESHOLD_F32 (1.0e-12f) + /** * @brief Instance structure for the floating-point matrix structure. */ @@ -750,6 +753,88 @@ void arm_mat_init_f32( arm_matrix_instance_f64 * d, uint16_t * pp); +/** + @brief QR decomposition of a m x n floating point matrix with m >= n. + @param[in] pSrc points to input matrix structure. The source matrix is modified by the function. + @param[in] threshold norm2 threshold. + @param[out] pOutR points to output R matrix structure of dimension m x n + @param[out] pOutQ points to output Q matrix structure of dimension m x m + @param[out] pOutTau points to Householder scaling factors of dimension n + @param[inout] pTmpA points to a temporary vector of dimension m. + @param[inout] pTmpB points to a temporary vector of dimension n. + @return execution status + - \ref ARM_MATH_SUCCESS : Operation successful + - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed + - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible) + */ + +arm_status arm_mat_qr_f32( + const arm_matrix_instance_f32 * pSrc, + const float32_t threshold, + arm_matrix_instance_f32 * pOutR, + arm_matrix_instance_f32 * pOutQ, + float32_t * pOutTau, + float32_t *pTmpA, + float32_t *pTmpB + ); + +/** + @brief QR decomposition of a m x n floating point matrix with m >= n. + @param[in] pSrc points to input matrix structure. The source matrix is modified by the function. + @param[in] threshold norm2 threshold. + @param[out] pOutR points to output R matrix structure of dimension m x n + @param[out] pOutQ points to output Q matrix structure of dimension m x m + @param[out] pOutTau points to Householder scaling factors of dimension n + @param[inout] pTmpA points to a temporary vector of dimension m. + @param[inout] pTmpB points to a temporary vector of dimension n. + @return execution status + - \ref ARM_MATH_SUCCESS : Operation successful + - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed + - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible) + */ + +arm_status arm_mat_qr_f64( + const arm_matrix_instance_f64 * pSrc, + const float64_t threshold, + arm_matrix_instance_f64 * pOutR, + arm_matrix_instance_f64 * pOutQ, + float64_t * pOutTau, + float64_t *pTmpA, + float64_t *pTmpB + ); + +/** + @brief Householder transform of a floating point vector. + @param[in] pSrc points to the input vector. + @param[in] threshold norm2 threshold. + @param[in] blockSize dimension of the vector space. + @param[outQ] pOut points to the output vector. + @return beta return the scaling factor beta + */ + +float32_t arm_householder_f32( + const float32_t * pSrc, + const float32_t threshold, + uint32_t blockSize, + float32_t * pOut + ); + +/** + @brief Householder transform of a double floating point vector. + @param[in] pSrc points to the input vector. + @param[in] threshold norm2 threshold. + @param[in] blockSize dimension of the vector space. + @param[outQ] pOut points to the output vector. + @return beta return the scaling factor beta + */ + +float64_t arm_householder_f64( + const float64_t * pSrc, + const float64_t threshold, + uint32_t blockSize, + float64_t * pOut + ); + #ifdef __cplusplus } #endif diff --git a/Include/dsp/matrix_functions_f16.h b/Include/dsp/matrix_functions_f16.h index 3693ec4336323bafe8f18f917a22ff43257ff9e1..8ce4bf290817155adc1217897d84ac23e8b62ef8 100755 --- a/Include/dsp/matrix_functions_f16.h +++ b/Include/dsp/matrix_functions_f16.h @@ -41,6 +41,8 @@ extern "C" #if defined(ARM_FLOAT16_SUPPORTED) + #define DEFAULT_HOUSEHOLDER_THRESHOLD_F16 (1.0e-3f) + /** * @brief Instance structure for the floating-point matrix structure. */ @@ -212,6 +214,46 @@ void arm_mat_init_f16( arm_matrix_instance_f16 * dst); +/** + @brief QR decomposition of a m x n floating point matrix with m >= n. + @param[in] pSrc points to input matrix structure. The source matrix is modified by the function. + @param[in] threshold norm2 threshold. + @param[out] pOutR points to output R matrix structure of dimension m x n + @param[out] pOutQ points to output Q matrix structure of dimension m x m + @param[out] pOutTau points to Householder scaling factors of dimension n + @param[inout] pTmpA points to a temporary vector of dimension m. + @param[inout] pTmpB points to a temporary vector of dimension n. + @return execution status + - \ref ARM_MATH_SUCCESS : Operation successful + - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed + - \ref ARM_MATH_SINGULAR : Input matrix is found to be singular (non-invertible) + */ + +arm_status arm_mat_qr_f16( + const arm_matrix_instance_f16 * pSrc, + const float16_t threshold, + arm_matrix_instance_f16 * pOutR, + arm_matrix_instance_f16 * pOutQ, + float16_t * pOutTau, + float16_t *pTmpA, + float16_t *pTmpB + ); + +/** + @brief Householder transform of a half floating point vector. + @param[in] pSrc points to the input vector. + @param[in] threshold norm2 threshold. + @param[in] blockSize dimension of the vector space. + @param[outQ] pOut points to the output vector. + @return beta return the scaling factor beta + */ + +float16_t arm_householder_f16( + const float16_t * pSrc, + const float16_t threshold, + uint32_t blockSize, + float16_t * pOut + ); #endif /*defined(ARM_FLOAT16_SUPPORTED)*/ #ifdef __cplusplus diff --git a/Include/dsp/matrix_utils.h b/Include/dsp/matrix_utils.h index a02cb6d17252d79edf1107eb3757f53521750a01..92ed2793d5482414e7606fd19e8624166364a74b 100755 --- a/Include/dsp/matrix_utils.h +++ b/Include/dsp/matrix_utils.h @@ -56,6 +56,18 @@ extern "C" } \ } +#define COPY_COL_T(T,A,ROW,COL,DST) \ +{ \ + uint32_t row; \ + T *pb=DST; \ + T *pa = (A)->pData + ROW * (A)->numCols + COL;\ + for(row = ROW; row < (A)->numRows; row ++) \ + { \ + *pb++ = *pa; \ + pa += (A)->numCols; \ + } \ +} + #if defined(ARM_FLOAT16_SUPPORTED) #if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) @@ -145,6 +157,7 @@ extern "C" #else + #define SWAP_ROWS_F16(A,COL,i,j) \ { \ int32_t w; \ @@ -217,6 +230,9 @@ extern "C" #endif /*defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE)*/ +/* Functions with only a scalar version */ +#define COPY_COL_F16(A,ROW,COL,DST) \ + COPY_COL_T(float16_t,A,ROW,COL,DST) #define SCALE_COL_F16(A,ROW,v,i) \ SCALE_COL_T(float16_t,(_Float16),A,ROW,v,i) @@ -505,6 +521,15 @@ extern "C" #endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */ + +/* Functions with only a scalar version */ + +#define COPY_COL_F32(A,ROW,COL,DST) \ + COPY_COL_T(float32_t,A,ROW,COL,DST) + +#define COPY_COL_F64(A,ROW,COL,DST) \ + COPY_COL_T(float64_t,A,ROW,COL,DST) + #define SWAP_COLS_F32(A,COL,i,j) \ { \ int32_t w; \ diff --git a/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_matrix.c b/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_matrix.c index 20d0315026a82d6e5c8a2debe9d2698bf3d70def..8892bdd274ac6af008989c2e886ef2780a4d53ab 100755 --- a/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_matrix.c +++ b/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_matrix.c @@ -422,33 +422,35 @@ cmsis_arm_mat_add_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f32 *pSrcB_converted=NULL; // input + arm_matrix_instance_f32 pSrcB_converted; // input + + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); - arm_matrix_instance_f32 *pSrcB_converted = f32MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); + f32MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_add_f32(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_add_f32(&pSrcA_converted,&pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -457,33 +459,37 @@ cmsis_arm_mat_add_q15(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q15 *pSrcA_converted=NULL; // input + arm_matrix_instance_q15 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q15 *pSrcB_converted=NULL; // input + arm_matrix_instance_q15 pSrcB_converted; // input + + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q15 *pSrcA_converted = q15MatrixFromNumpy(pSrcA); - arm_matrix_instance_q15 *pSrcB_converted = q15MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + q15MatrixFromNumpy(&pSrcA_converted,pSrcA); + q15MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq15Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_add_q15(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_add_q15(&pSrcA_converted, + &pSrcB_converted, + &pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -492,33 +498,37 @@ cmsis_arm_mat_add_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q31 *pSrcB_converted=NULL; // input + arm_matrix_instance_q31 pSrcB_converted; // input + + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); - arm_matrix_instance_q31 *pSrcB_converted = q31MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); + q31MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_add_q31(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_add_q31(&pSrcA_converted, + &pSrcB_converted, + &pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -526,17 +536,18 @@ cmsis_arm_mat_cmplx_trans_f32(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_f32 *pSrc_converted=NULL; // input + arm_matrix_instance_f32 pSrc_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_f32 *pSrc_converted = f32MatrixFromNumpy(pSrc); - pSrc_converted->numCols = pSrc_converted->numCols / 2; + f32MatrixFromNumpy(&pSrc_converted,pSrc); + pSrc_converted.numCols = pSrc_converted.numCols / 2; - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows*2 ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows*2 ; + createf32Matrix(&pDst_converted,row,column); /* Dimensions in matrix instance are not correct but they are not used by CMSIS-DSP since the library is not compiled with ARM_MATRIX_CHECK. @@ -547,19 +558,19 @@ cmsis_arm_mat_cmplx_trans_f32(PyObject *obj, PyObject *args) */ - arm_status returnValue = arm_mat_cmplx_trans_f32(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_cmplx_trans_f32(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -567,17 +578,18 @@ cmsis_arm_mat_cmplx_trans_q31(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q31 *pSrc_converted=NULL; // input + arm_matrix_instance_q31 pSrc_converted; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_q31 *pSrc_converted = q31MatrixFromNumpy(pSrc); - pSrc_converted->numCols = pSrc_converted->numCols / 2; + q31MatrixFromNumpy(&pSrc_converted,pSrc); + pSrc_converted.numCols = pSrc_converted.numCols / 2; - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows*2 ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows*2 ; + createq31Matrix(&pDst_converted,row,column); /* Dimensions in matrix instance are not correct but they are not used by CMSIS-DSP since the library is not compiled with ARM_MATRIX_CHECK. @@ -588,19 +600,19 @@ cmsis_arm_mat_cmplx_trans_q31(PyObject *obj, PyObject *args) */ - arm_status returnValue = arm_mat_cmplx_trans_q31(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_cmplx_trans_q31(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -608,17 +620,18 @@ cmsis_arm_mat_cmplx_trans_q15(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q15 *pSrc_converted=NULL; // input + arm_matrix_instance_q15 pSrc_converted; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_q15 *pSrc_converted = q15MatrixFromNumpy(pSrc); - pSrc_converted->numCols = pSrc_converted->numCols / 2; + q15MatrixFromNumpy(&pSrc_converted,pSrc); + pSrc_converted.numCols = pSrc_converted.numCols / 2; - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows*2 ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows*2 ; + createq15Matrix(&pDst_converted,row,column); /* Dimensions in matrix instance are not correct but they are not used by CMSIS-DSP since the library is not compiled with ARM_MATRIX_CHECK. @@ -629,19 +642,19 @@ cmsis_arm_mat_cmplx_trans_q15(PyObject *obj, PyObject *args) */ - arm_status returnValue = arm_mat_cmplx_trans_q15(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_cmplx_trans_q15(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -649,35 +662,37 @@ cmsis_arm_mat_cmplx_mult_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f32 *pSrcB_converted=NULL; // input + arm_matrix_instance_f32 pSrcB_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); - arm_matrix_instance_f32 *pSrcB_converted = f32MatrixFromNumpy(pSrcB); - pSrcA_converted->numCols = pSrcA_converted->numCols / 2; - pSrcB_converted->numCols = pSrcB_converted->numCols / 2; - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols * 2; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); + f32MatrixFromNumpy(&pSrcB_converted,pSrcB); + pSrcA_converted.numCols = pSrcA_converted.numCols / 2; + pSrcB_converted.numCols = pSrcB_converted.numCols / 2; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols * 2; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_cmplx_mult_f32(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_cmplx_mult_f32(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -686,39 +701,41 @@ cmsis_arm_mat_cmplx_mult_q15(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q15 *pSrcA_converted=NULL; // input + arm_matrix_instance_q15 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q15 *pSrcB_converted=NULL; // input + arm_matrix_instance_q15 pSrcB_converted; // input PyObject *pScratch=NULL; // input q15_t *pScratch_converted=NULL; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"OOO",&pSrcA,&pSrcB,&pScratch)) { - arm_matrix_instance_q15 *pSrcA_converted = q15MatrixFromNumpy(pSrcA); - arm_matrix_instance_q15 *pSrcB_converted = q15MatrixFromNumpy(pSrcB); + q15MatrixFromNumpy(&pSrcA_converted,pSrcA); + q15MatrixFromNumpy(&pSrcB_converted,pSrcB); GETARGUMENT(pScratch,NPY_INT16,int16_t,int16_t); - pSrcA_converted->numCols = pSrcA_converted->numCols / 2; - pSrcB_converted->numCols = pSrcB_converted->numCols / 2; - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols * 2; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); - - arm_status returnValue = arm_mat_cmplx_mult_q15(pSrcA_converted,pSrcB_converted,pDst_converted,pScratch_converted); + pSrcA_converted.numCols = pSrcA_converted.numCols / 2; + pSrcB_converted.numCols = pSrcB_converted.numCols / 2; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols * 2; + createq15Matrix(&pDst_converted,row,column); + + arm_status returnValue = arm_mat_cmplx_mult_q15(&pSrcA_converted, + &pSrcB_converted,&pDst_converted,pScratch_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); FREEARGUMENT(pScratch_converted); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -727,35 +744,37 @@ cmsis_arm_mat_cmplx_mult_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q31 *pSrcB_converted=NULL; // input + arm_matrix_instance_q31 pSrcB_converted; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); - arm_matrix_instance_q31 *pSrcB_converted = q31MatrixFromNumpy(pSrcB); - pSrcA_converted->numCols = pSrcA_converted->numCols / 2; - pSrcB_converted->numCols = pSrcB_converted->numCols / 2; - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols * 2; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); + q31MatrixFromNumpy(&pSrcB_converted,pSrcB); + pSrcA_converted.numCols = pSrcA_converted.numCols / 2; + pSrcB_converted.numCols = pSrcB_converted.numCols / 2; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols * 2; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_cmplx_mult_q31(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_cmplx_mult_q31(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -764,29 +783,30 @@ cmsis_arm_mat_trans_f32(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_f32 *pSrc_converted=NULL; // input + arm_matrix_instance_f32 pSrc_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_f32 *pSrc_converted = f32MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows ; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_trans_f32(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_trans_f32(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -794,29 +814,30 @@ cmsis_arm_mat_trans_f64(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_f64 *pSrc_converted=NULL; // input + arm_matrix_instance_f64 pSrc_converted; // input + arm_matrix_instance_f64 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_f64 *pSrc_converted = f64MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows ; - arm_matrix_instance_f64 *pDst_converted = createf64Matrix(row,column); + f64MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows ; + createf64Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_trans_f64(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_trans_f64(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf64Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf64Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -824,29 +845,30 @@ cmsis_arm_mat_trans_q7(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q7 *pSrc_converted=NULL; // input + arm_matrix_instance_q7 pSrc_converted; // input + arm_matrix_instance_q7 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_q7 *pSrc_converted = q7MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows ; - arm_matrix_instance_q7 *pDst_converted = createq7Matrix(row,column); + q7MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows ; + createq7Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_trans_q7(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_trans_q7(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq7Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq7Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -854,29 +876,30 @@ cmsis_arm_mat_trans_q15(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q15 *pSrc_converted=NULL; // input + arm_matrix_instance_q15 pSrc_converted; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_q15 *pSrc_converted = q15MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + q15MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows ; + createq15Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_trans_q15(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_trans_q15(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -885,29 +908,30 @@ cmsis_arm_mat_trans_q31(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q31 *pSrc_converted=NULL; // input + arm_matrix_instance_q31 pSrc_converted; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"O",&pSrc)) { - arm_matrix_instance_q31 *pSrc_converted = q31MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numCols ; - uint32_t column = pSrc_converted->numRows ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numCols ; + uint32_t column = pSrc_converted.numRows ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_trans_q31(pSrc_converted,pDst_converted); + arm_status returnValue = arm_mat_trans_q31(&pSrc_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -915,7 +939,7 @@ cmsis_arm_mat_vec_mult_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input float32_t *pSrcB_converted=NULL; // input float32_t *pDst=NULL; // output @@ -923,24 +947,24 @@ cmsis_arm_mat_vec_mult_f32(PyObject *obj, PyObject *args) if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); GETARGUMENT(pSrcB,NPY_DOUBLE,double,float32_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcA_converted->numCols ; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcA_converted.numCols ; pDst=PyMem_Malloc(sizeof(float32_t)*row); - arm_mat_vec_mult_f32(pSrcA_converted,pSrcB_converted,pDst); + arm_mat_vec_mult_f32(&pSrcA_converted,pSrcB_converted,pDst); FLOATARRAY1(pDstOBJ,row,pDst); PyObject *pythonResult = Py_BuildValue("O",pDstOBJ); - FREEARGUMENT(pSrcA_converted); + FREEMATRIX(&pSrcA_converted); FREEARGUMENT(pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -948,33 +972,36 @@ cmsis_arm_mat_mult_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f32 *pSrcB_converted=NULL; // input + arm_matrix_instance_f32 pSrcB_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); - arm_matrix_instance_f32 *pSrcB_converted = f32MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); + f32MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_f32(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_mult_f32(&pSrcA_converted, + &pSrcB_converted, + &pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -982,33 +1009,35 @@ cmsis_arm_mat_mult_f64(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f64 *pSrcA_converted=NULL; // input + arm_matrix_instance_f64 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f64 *pSrcB_converted=NULL; // input + arm_matrix_instance_f64 pSrcB_converted; // input + arm_matrix_instance_f64 pDst_converted ; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f64 *pSrcA_converted = f64MatrixFromNumpy(pSrcA); - arm_matrix_instance_f64 *pSrcB_converted = f64MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_f64 *pDst_converted = createf64Matrix(row,column); + f64MatrixFromNumpy(&pSrcA_converted,pSrcA); + f64MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createf64Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_f64(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_mult_f64(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf64Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf64Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1016,7 +1045,7 @@ cmsis_arm_mat_vec_mult_q15(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q15 *pSrcA_converted=NULL; // input + arm_matrix_instance_q15 pSrcA_converted; // input PyObject *pSrcB=NULL; // input q15_t *pSrcB_converted=NULL; // input q15_t *pDst=NULL; // output @@ -1024,24 +1053,24 @@ cmsis_arm_mat_vec_mult_q15(PyObject *obj, PyObject *args) if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q15 *pSrcA_converted = q15MatrixFromNumpy(pSrcA); + q15MatrixFromNumpy(&pSrcA_converted,pSrcA); GETARGUMENT(pSrcB,NPY_INT16,int16_t,q15_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcA_converted->numCols ; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcA_converted.numCols ; pDst=PyMem_Malloc(sizeof(q15_t)*row); - arm_mat_vec_mult_q15(pSrcA_converted,pSrcB_converted,pDst); + arm_mat_vec_mult_q15(&pSrcA_converted,pSrcB_converted,pDst); INT16ARRAY1(pDstOBJ,row,pDst); PyObject *pythonResult = Py_BuildValue("O",pDstOBJ); - FREEARGUMENT(pSrcA_converted); + FREEMATRIX(&pSrcA_converted); FREEARGUMENT(pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1049,7 +1078,7 @@ cmsis_arm_mat_vec_mult_q7(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q7 *pSrcA_converted=NULL; // input + arm_matrix_instance_q7 pSrcA_converted; // input PyObject *pSrcB=NULL; // input q7_t *pSrcB_converted=NULL; // input q7_t *pDst=NULL; // output @@ -1057,24 +1086,24 @@ cmsis_arm_mat_vec_mult_q7(PyObject *obj, PyObject *args) if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q7 *pSrcA_converted = q7MatrixFromNumpy(pSrcA); + q7MatrixFromNumpy(&pSrcA_converted,pSrcA); GETARGUMENT(pSrcB,NPY_BYTE,int8_t,q7_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcA_converted->numCols ; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcA_converted.numCols ; pDst=PyMem_Malloc(sizeof(q7_t)*row); - arm_mat_vec_mult_q7(pSrcA_converted,pSrcB_converted,pDst); + arm_mat_vec_mult_q7(&pSrcA_converted,pSrcB_converted,pDst); INT8ARRAY1(pDstOBJ,row,pDst); PyObject *pythonResult = Py_BuildValue("O",pDstOBJ); - FREEARGUMENT(pSrcA_converted); + FREEMATRIX(&pSrcA_converted); FREEARGUMENT(pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1082,37 +1111,40 @@ cmsis_arm_mat_mult_q7(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q7 *pSrcA_converted=NULL; // input + arm_matrix_instance_q7 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q7 *pSrcB_converted=NULL; // input + arm_matrix_instance_q7 pSrcB_converted; // input PyObject *pState=NULL; // input q7_t *pState_converted=NULL; // input + arm_matrix_instance_q7 pDst_converted; if (PyArg_ParseTuple(args,"OOO",&pSrcA,&pSrcB,&pState)) { - arm_matrix_instance_q7 *pSrcA_converted = q7MatrixFromNumpy(pSrcA); - arm_matrix_instance_q7 *pSrcB_converted = q7MatrixFromNumpy(pSrcB); + q7MatrixFromNumpy(&pSrcA_converted,pSrcA); + q7MatrixFromNumpy(&pSrcB_converted,pSrcB); GETARGUMENT(pState,NPY_BYTE,int8_t,q7_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q7 *pDst_converted = createq7Matrix(row,column); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq7Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_q7(pSrcA_converted,pSrcB_converted,pDst_converted,pState_converted); + arm_status returnValue = arm_mat_mult_q7(&pSrcA_converted, + &pSrcB_converted, + &pDst_converted,pState_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq7Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq7Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); FREEARGUMENT(pState_converted); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1120,38 +1152,40 @@ cmsis_arm_mat_mult_q15(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q15 *pSrcA_converted=NULL; // input + arm_matrix_instance_q15 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q15 *pSrcB_converted=NULL; // input + arm_matrix_instance_q15 pSrcB_converted; // input PyObject *pState=NULL; // input q15_t *pState_converted=NULL; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"OOO",&pSrcA,&pSrcB,&pState)) { - arm_matrix_instance_q15 *pSrcA_converted = q15MatrixFromNumpy(pSrcA); - arm_matrix_instance_q15 *pSrcB_converted = q15MatrixFromNumpy(pSrcB); + q15MatrixFromNumpy(&pSrcA_converted,pSrcA); + q15MatrixFromNumpy(&pSrcB_converted,pSrcB); GETARGUMENT(pState,NPY_INT16,int16_t,int16_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq15Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_q15(pSrcA_converted,pSrcB_converted,pDst_converted,pState_converted); + arm_status returnValue = arm_mat_mult_q15(&pSrcA_converted, + &pSrcB_converted,&pDst_converted,pState_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); FREEARGUMENT(pState_converted); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1160,37 +1194,39 @@ cmsis_arm_mat_mult_fast_q15(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q15 *pSrcA_converted=NULL; // input + arm_matrix_instance_q15 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q15 *pSrcB_converted=NULL; // input + arm_matrix_instance_q15 pSrcB_converted; // input PyObject *pState=NULL; // input q15_t *pState_converted=NULL; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"OOO",&pSrcA,&pSrcB,&pState)) { - arm_matrix_instance_q15 *pSrcA_converted = q15MatrixFromNumpy(pSrcA); - arm_matrix_instance_q15 *pSrcB_converted = q15MatrixFromNumpy(pSrcB); + q15MatrixFromNumpy(&pSrcA_converted,pSrcA); + q15MatrixFromNumpy(&pSrcB_converted,pSrcB); GETARGUMENT(pState,NPY_INT16,int16_t,int16_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq15Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_fast_q15(pSrcA_converted,pSrcB_converted,pDst_converted,pState_converted); + arm_status returnValue = arm_mat_mult_fast_q15(&pSrcA_converted, + &pSrcB_converted,&pDst_converted,pState_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); FREEARGUMENT(pState_converted); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1198,7 +1234,7 @@ cmsis_arm_mat_vec_mult_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input q31_t *pSrcB_converted=NULL; // input q31_t *pDst=NULL; // output @@ -1206,24 +1242,24 @@ cmsis_arm_mat_vec_mult_q31(PyObject *obj, PyObject *args) if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); GETARGUMENT(pSrcB,NPY_INT32,int32_t,q31_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcA_converted->numCols ; + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcA_converted.numCols ; pDst=PyMem_Malloc(sizeof(q31_t)*row); - arm_mat_vec_mult_q31(pSrcA_converted,pSrcB_converted,pDst); + arm_mat_vec_mult_q31(&pSrcA_converted,pSrcB_converted,pDst); INT32ARRAY1(pDstOBJ,row,pDst); PyObject *pythonResult = Py_BuildValue("O",pDstOBJ); - FREEARGUMENT(pSrcA_converted); + FREEMATRIX(&pSrcA_converted); FREEARGUMENT(pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1231,33 +1267,35 @@ cmsis_arm_mat_mult_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q31 *pSrcB_converted=NULL; // input + arm_matrix_instance_q31 pSrcB_converted; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); - arm_matrix_instance_q31 *pSrcB_converted = q31MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); + q31MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_q31(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_mult_q31(&pSrcA_converted,&pSrcB_converted, + &pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1265,38 +1303,40 @@ cmsis_arm_mat_mult_opt_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q31 *pSrcB_converted=NULL; // input + arm_matrix_instance_q31 pSrcB_converted; // input PyObject *pState=NULL; // input q31_t *pState_converted=NULL; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"OOO",&pSrcA,&pSrcB,&pState)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); - arm_matrix_instance_q31 *pSrcB_converted = q31MatrixFromNumpy(pSrcB); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); + q31MatrixFromNumpy(&pSrcB_converted,pSrcB); GETARGUMENT(pState,NPY_INT32,int32_t,int32_t); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_opt_q31(pSrcA_converted,pSrcB_converted,pDst_converted,pState_converted); + arm_status returnValue = arm_mat_mult_opt_q31(&pSrcA_converted, + &pSrcB_converted,&pDst_converted,pState_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); FREEARGUMENT(pState_converted); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1304,33 +1344,35 @@ cmsis_arm_mat_mult_fast_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q31 *pSrcB_converted=NULL; // input + arm_matrix_instance_q31 pSrcB_converted; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); - arm_matrix_instance_q31 *pSrcB_converted = q31MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); + q31MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_mult_fast_q31(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_mult_fast_q31(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1339,33 +1381,35 @@ cmsis_arm_mat_sub_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f32 *pSrcB_converted=NULL; // input + arm_matrix_instance_f32 pSrcB_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); - arm_matrix_instance_f32 *pSrcB_converted = f32MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); + f32MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_sub_f32(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_sub_f32(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1373,33 +1417,35 @@ cmsis_arm_mat_sub_f64(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f64 *pSrcA_converted=NULL; // input + arm_matrix_instance_f64 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f64 *pSrcB_converted=NULL; // input + arm_matrix_instance_f64 pSrcB_converted; // input + arm_matrix_instance_f64 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f64 *pSrcA_converted = f64MatrixFromNumpy(pSrcA); - arm_matrix_instance_f64 *pSrcB_converted = f64MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_f64 *pDst_converted = createf64Matrix(row,column); + f64MatrixFromNumpy(&pSrcA_converted,pSrcA); + f64MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createf64Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_sub_f64(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_sub_f64(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf64Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf64Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1408,33 +1454,35 @@ cmsis_arm_mat_sub_q15(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q15 *pSrcA_converted=NULL; // input + arm_matrix_instance_q15 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q15 *pSrcB_converted=NULL; // input + arm_matrix_instance_q15 pSrcB_converted; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q15 *pSrcA_converted = q15MatrixFromNumpy(pSrcA); - arm_matrix_instance_q15 *pSrcB_converted = q15MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + q15MatrixFromNumpy(&pSrcA_converted,pSrcA); + q15MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq15Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_sub_q15(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_sub_q15(&pSrcA_converted,&pSrcB_converted, + &pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1443,33 +1491,35 @@ cmsis_arm_mat_sub_q31(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_q31 *pSrcA_converted=NULL; // input + arm_matrix_instance_q31 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_q31 *pSrcB_converted=NULL; // input + arm_matrix_instance_q31 pSrcB_converted; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_q31 *pSrcA_converted = q31MatrixFromNumpy(pSrcA); - arm_matrix_instance_q31 *pSrcB_converted = q31MatrixFromNumpy(pSrcB); - uint32_t row = pSrcA_converted->numRows ; - uint32_t column = pSrcB_converted->numCols ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrcA_converted,pSrcA); + q31MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t row = pSrcA_converted.numRows ; + uint32_t column = pSrcB_converted.numCols ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_sub_q31(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_sub_q31(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1478,30 +1528,31 @@ cmsis_arm_mat_scale_f32(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_f32 *pSrc_converted=NULL; // input + arm_matrix_instance_f32 pSrc_converted; // input float32_t scale; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"Of",&pSrc,&scale)) { - arm_matrix_instance_f32 *pSrc_converted = f32MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numRows ; - uint32_t column = pSrc_converted->numCols ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numRows ; + uint32_t column = pSrc_converted.numCols ; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_scale_f32(pSrc_converted,scale,pDst_converted); + arm_status returnValue = arm_mat_scale_f32(&pSrc_converted,scale,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1510,31 +1561,32 @@ cmsis_arm_mat_scale_q15(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q15 *pSrc_converted=NULL; // input + arm_matrix_instance_q15 pSrc_converted; // input q15_t scaleFract; // input int32_t shift; // input + arm_matrix_instance_q15 pDst_converted; if (PyArg_ParseTuple(args,"Ohi",&pSrc,&scaleFract,&shift)) { - arm_matrix_instance_q15 *pSrc_converted = q15MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numRows ; - uint32_t column = pSrc_converted->numCols ; - arm_matrix_instance_q15 *pDst_converted = createq15Matrix(row,column); + q15MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numRows ; + uint32_t column = pSrc_converted.numCols ; + createq15Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_scale_q15(pSrc_converted,scaleFract,shift,pDst_converted); + arm_status returnValue = arm_mat_scale_q15(&pSrc_converted,scaleFract,shift,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq15Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq15Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrc_converted); + FREEMATRIX(&pSrc_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1543,63 +1595,268 @@ cmsis_arm_mat_scale_q31(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input - arm_matrix_instance_q31 *pSrc_converted=NULL; // input + arm_matrix_instance_q31 pSrc_converted; // input q31_t scaleFract; // input int32_t shift; // input + arm_matrix_instance_q31 pDst_converted; if (PyArg_ParseTuple(args,"Oii",&pSrc,&scaleFract,&shift)) { - arm_matrix_instance_q31 *pSrc_converted = q31MatrixFromNumpy(pSrc); - uint32_t row = pSrc_converted->numRows ; - uint32_t column = pSrc_converted->numCols ; - arm_matrix_instance_q31 *pDst_converted = createq31Matrix(row,column); + q31MatrixFromNumpy(&pSrc_converted,pSrc); + uint32_t row = pSrc_converted.numRows ; + uint32_t column = pSrc_converted.numCols ; + createq31Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_scale_q31(pSrc_converted,scaleFract,shift,pDst_converted); + arm_status returnValue = arm_mat_scale_q31(&pSrc_converted,scaleFract,shift,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromq31Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromq31Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); + FREEMATRIX(&pSrc_converted); + Py_DECREF(pDstOBJ); + return(pythonResult); + + } + Py_RETURN_NONE; +} + +static PyObject * +cmsis_arm_mat_qr_f64(PyObject *obj, PyObject *args) +{ + + PyObject *src=NULL; + arm_matrix_instance_f64 src_converted; + + PyObject *pTmpaIn=NULL; + float64_t *pTmpaIn_converted=NULL; + + PyObject *pTmpbIn=NULL; + float64_t *pTmpbIn_converted=NULL; + + float64_t threshold; + + arm_matrix_instance_f64 Q_converted; + arm_matrix_instance_f64 R_converted; + + if (PyArg_ParseTuple(args,"OdOO",&src,&threshold,&pTmpaIn,&pTmpbIn)) + { + + f64MatrixFromNumpy(&src_converted,src); + uint64_t column = src_converted.numCols ; + uint64_t row = src_converted.numRows ; + + GETARGUMENT(pTmpaIn,NPY_DOUBLE,double,float64_t); + GETARGUMENT(pTmpbIn,NPY_DOUBLE,double,float64_t); + int tmpALength=arraySizepTmpaIn ; + int tmpBLength=arraySizepTmpbIn ; + + + createf64Matrix(&Q_converted,row,row); + createf64Matrix(&R_converted,row,column); + float64_t *pTau=PyMem_Malloc(sizeof(float64_t)*column); + float64_t *pTmpa=PyMem_Malloc(sizeof(float64_t)*tmpALength); + float64_t *pTmpb=PyMem_Malloc(sizeof(float64_t)*tmpBLength); + + arm_status returnValue = arm_mat_qr_f64(&src_converted,threshold, + &R_converted,&Q_converted,pTau,pTmpa,pTmpb); + + PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); + PyObject* ROBJ=NumpyArrayFromf64Matrix(&R_converted); + PyObject* QOBJ=NumpyArrayFromf64Matrix(&Q_converted); + FLOAT64ARRAY1(pTauOBJ,column,pTau); + + PyObject *pythonResult = Py_BuildValue("OOOO",theReturnOBJ,ROBJ,QOBJ,pTauOBJ); + + Py_DECREF(theReturnOBJ); + Py_DECREF(ROBJ); + Py_DECREF(QOBJ); + Py_DECREF(pTauOBJ); + FREEMATRIX(&src_converted); + FREEARGUMENT(pTmpaIn_converted); + FREEARGUMENT(pTmpbIn_converted); + + PyMem_Free(pTmpa); + PyMem_Free(pTmpb); + + return(pythonResult); + + } + Py_RETURN_NONE; +} + +static PyObject * +cmsis_arm_mat_qr_f32(PyObject *obj, PyObject *args) +{ + + PyObject *src=NULL; + arm_matrix_instance_f32 src_converted; + + PyObject *pTmpaIn=NULL; + float32_t *pTmpaIn_converted=NULL; + + PyObject *pTmpbIn=NULL; + float32_t *pTmpbIn_converted=NULL; + + float32_t threshold; + + arm_matrix_instance_f32 Q_converted; + arm_matrix_instance_f32 R_converted; + + if (PyArg_ParseTuple(args,"OfOO",&src,&threshold,&pTmpaIn,&pTmpbIn)) + { + + f32MatrixFromNumpy(&src_converted,src); + uint32_t column = src_converted.numCols ; + uint32_t row = src_converted.numRows ; + + GETARGUMENT(pTmpaIn,NPY_DOUBLE,double,float32_t); + GETARGUMENT(pTmpbIn,NPY_DOUBLE,double,float32_t); + int tmpALength=arraySizepTmpaIn ; + int tmpBLength=arraySizepTmpbIn ; + + + createf32Matrix(&Q_converted,row,row); + createf32Matrix(&R_converted,row,column); + float32_t *pTau=PyMem_Malloc(sizeof(float32_t)*column); + float32_t *pTmpa=PyMem_Malloc(sizeof(float32_t)*tmpALength); + float32_t *pTmpb=PyMem_Malloc(sizeof(float32_t)*tmpBLength); + + arm_status returnValue = arm_mat_qr_f32(&src_converted,threshold, + &R_converted,&Q_converted,pTau,pTmpa,pTmpb); + + PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); + PyObject* ROBJ=NumpyArrayFromf32Matrix(&R_converted); + PyObject* QOBJ=NumpyArrayFromf32Matrix(&Q_converted); + FLOATARRAY1(pTauOBJ,column,pTau); + + PyObject *pythonResult = Py_BuildValue("OOOO",theReturnOBJ,ROBJ,QOBJ,pTauOBJ); + + Py_DECREF(theReturnOBJ); + Py_DECREF(ROBJ); + Py_DECREF(QOBJ); + Py_DECREF(pTauOBJ); + FREEMATRIX(&src_converted); + FREEARGUMENT(pTmpaIn_converted); + FREEARGUMENT(pTmpbIn_converted); + + PyMem_Free(pTmpa); + PyMem_Free(pTmpb); + + + return(pythonResult); + + } + Py_RETURN_NONE; +} + +static PyObject * +cmsis_arm_householder_f64(PyObject *obj, PyObject *args) +{ + + PyObject *pSrc=NULL; // input + float64_t *pSrc_converted=NULL; // input + uint32_t blockSize; // input + float64_t pResult; // output + float64_t *pDst=NULL; // output + float64_t threshold; + + if (PyArg_ParseTuple(args,"Od",&pSrc,&threshold)) + { + + GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t); + blockSize = arraySizepSrc ; + + pDst=PyMem_Malloc(sizeof(float64_t)*blockSize); + + + pResult=arm_householder_f64(pSrc_converted,threshold,blockSize,pDst); + PyObject* pResultOBJ=Py_BuildValue("d",pResult); + FLOAT64ARRAY1(pDstOBJ,blockSize,pDst); + + PyObject *betaResult = Py_BuildValue("O",pResultOBJ); + PyObject *vecResult = Py_BuildValue("O",pDstOBJ); + + PyObject *pythonResult = Py_BuildValue("OO",betaResult,vecResult); + FREEARGUMENT(pSrc_converted); + Py_DECREF(pResultOBJ); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } +static PyObject * +cmsis_arm_householder_f32(PyObject *obj, PyObject *args) +{ + + PyObject *pSrc=NULL; // input + float32_t *pSrc_converted=NULL; // input + uint32_t blockSize; // input + float32_t pResult; // output + float32_t *pDst=NULL; // output + float32_t threshold; + + if (PyArg_ParseTuple(args,"Of",&pSrc,&threshold)) + { + + GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t); + blockSize = arraySizepSrc ; + pDst=PyMem_Malloc(sizeof(float32_t)*blockSize); + + + pResult=arm_householder_f32(pSrc_converted,threshold,blockSize,pDst); + PyObject* pResultOBJ=Py_BuildValue("f",pResult); + FLOATARRAY1(pDstOBJ,blockSize,pDst); + + PyObject *betaResult = Py_BuildValue("O",pResultOBJ); + PyObject *vecResult = Py_BuildValue("O",pDstOBJ); + + PyObject *pythonResult = Py_BuildValue("OO",betaResult,vecResult); + + FREEARGUMENT(pSrc_converted); + Py_DECREF(pResultOBJ); + Py_DECREF(pDstOBJ); + return(pythonResult); + + } + Py_RETURN_NONE; +} static PyObject * cmsis_arm_mat_inverse_f32(PyObject *obj, PyObject *args) { PyObject *src=NULL; // input - arm_matrix_instance_f32 *src_converted=NULL; // input + arm_matrix_instance_f32 src_converted; // input + arm_matrix_instance_f32 dst_converted; if (PyArg_ParseTuple(args,"O",&src)) { - arm_matrix_instance_f32 *src_converted = f32MatrixFromNumpy(src); - uint32_t row = src_converted->numCols ; - uint32_t column = src_converted->numRows ; - arm_matrix_instance_f32 *dst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&src_converted,src); + uint32_t row = src_converted.numCols ; + uint32_t column = src_converted.numRows ; + createf32Matrix(&dst_converted,row,column); - arm_status returnValue = arm_mat_inverse_f32(src_converted,dst_converted); + arm_status returnValue = arm_mat_inverse_f32(&src_converted,&dst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* dstOBJ=NumpyArrayFromf32Matrix(dst_converted); + PyObject* dstOBJ=NumpyArrayFromf32Matrix(&dst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,dstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(src_converted); + FREEMATRIX(&src_converted); Py_DECREF(dstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1608,29 +1865,30 @@ cmsis_arm_mat_inverse_f64(PyObject *obj, PyObject *args) { PyObject *src=NULL; // input - arm_matrix_instance_f64 *src_converted=NULL; // input + arm_matrix_instance_f64 src_converted; // input + arm_matrix_instance_f64 dst_converted; if (PyArg_ParseTuple(args,"O",&src)) { - arm_matrix_instance_f64 *src_converted = f64MatrixFromNumpy(src); - uint32_t row = src_converted->numCols ; - uint32_t column = src_converted->numRows ; - arm_matrix_instance_f64 *dst_converted = createf64Matrix(row,column); + f64MatrixFromNumpy(&src_converted,src); + uint32_t row = src_converted.numCols ; + uint32_t column = src_converted.numRows ; + createf64Matrix(&dst_converted,row,column); - arm_status returnValue = arm_mat_inverse_f64(src_converted,dst_converted); + arm_status returnValue = arm_mat_inverse_f64(&src_converted,&dst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* dstOBJ=NumpyArrayFromf64Matrix(dst_converted); + PyObject* dstOBJ=NumpyArrayFromf64Matrix(&dst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,dstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(src_converted); + FREEMATRIX(&src_converted); Py_DECREF(dstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } @@ -1639,29 +1897,30 @@ cmsis_arm_mat_cholesky_f32(PyObject *obj, PyObject *args) { PyObject *src=NULL; // input - arm_matrix_instance_f32 *src_converted=NULL; // input + arm_matrix_instance_f32 src_converted; // input + arm_matrix_instance_f32 dst_converted; if (PyArg_ParseTuple(args,"O",&src)) { - arm_matrix_instance_f32 *src_converted = f32MatrixFromNumpy(src); - uint32_t column = src_converted->numCols ; - uint32_t row = src_converted->numRows ; - arm_matrix_instance_f32 *dst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&src_converted,src); + uint32_t column = src_converted.numCols ; + uint32_t row = src_converted.numRows ; + createf32Matrix(&dst_converted,row,column); - arm_status returnValue = arm_mat_cholesky_f32(src_converted,dst_converted); + arm_status returnValue = arm_mat_cholesky_f32(&src_converted,&dst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* dstOBJ=NumpyArrayFromf32Matrix(dst_converted); + PyObject* dstOBJ=NumpyArrayFromf32Matrix(&dst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,dstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(src_converted); + FREEMATRIX(&src_converted); Py_DECREF(dstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1669,29 +1928,30 @@ cmsis_arm_mat_cholesky_f64(PyObject *obj, PyObject *args) { PyObject *src=NULL; // input - arm_matrix_instance_f64 *src_converted=NULL; // input + arm_matrix_instance_f64 src_converted; // input + arm_matrix_instance_f64 dst_converted; if (PyArg_ParseTuple(args,"O",&src)) { - arm_matrix_instance_f64 *src_converted = f64MatrixFromNumpy(src); - uint32_t column = src_converted->numCols ; - uint32_t row = src_converted->numRows ; - arm_matrix_instance_f64 *dst_converted = createf64Matrix(row,column); + f64MatrixFromNumpy(&src_converted,src); + uint32_t column = src_converted.numCols ; + uint32_t row = src_converted.numRows ; + createf64Matrix(&dst_converted,row,column); - arm_status returnValue = arm_mat_cholesky_f64(src_converted,dst_converted); + arm_status returnValue = arm_mat_cholesky_f64(&src_converted,&dst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* dstOBJ=NumpyArrayFromf64Matrix(dst_converted); + PyObject* dstOBJ=NumpyArrayFromf64Matrix(&dst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,dstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(src_converted); + FREEMATRIX(&src_converted); Py_DECREF(dstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1699,32 +1959,34 @@ cmsis_arm_mat_ldlt_f32(PyObject *obj, PyObject *args) { PyObject *src=NULL; // input - arm_matrix_instance_f32 *src_converted=NULL; // input + arm_matrix_instance_f32 src_converted; // input + arm_matrix_instance_f32 l_converted; + arm_matrix_instance_f32 d_converted; if (PyArg_ParseTuple(args,"O",&src)) { - arm_matrix_instance_f32 *src_converted = f32MatrixFromNumpy(src); - uint32_t column = src_converted->numCols ; - uint32_t row = src_converted->numRows ; + f32MatrixFromNumpy(&src_converted,src); + uint32_t column = src_converted.numCols ; + uint32_t row = src_converted.numRows ; - arm_matrix_instance_f32 *l_converted = createf32Matrix(row,column); - arm_matrix_instance_f32 *d_converted = createf32Matrix(row,column); + createf32Matrix(&l_converted,row,column); + createf32Matrix(&d_converted,row,column); uint16_t *pPerm=(uint16_t *)PyMem_Malloc(sizeof(uint16_t)*row); INT16ARRAY1(pPermOBJ,row,pPerm); - arm_status returnValue = arm_mat_ldlt_f32(src_converted,l_converted,d_converted,pPerm); + arm_status returnValue = arm_mat_ldlt_f32(&src_converted,&l_converted,&d_converted,pPerm); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* lOBJ=NumpyArrayFromf32Matrix(l_converted); - PyObject* dOBJ=NumpyArrayFromf32Matrix(d_converted); + PyObject* lOBJ=NumpyArrayFromf32Matrix(&l_converted); + PyObject* dOBJ=NumpyArrayFromf32Matrix(&d_converted); PyObject *pythonResult = Py_BuildValue("OOOO",theReturnOBJ,lOBJ,dOBJ,pPermOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(src_converted); + FREEMATRIX(&src_converted); Py_DECREF(lOBJ); Py_DECREF(dOBJ); Py_DECREF(pPermOBJ); @@ -1732,7 +1994,7 @@ cmsis_arm_mat_ldlt_f32(PyObject *obj, PyObject *args) return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1740,32 +2002,34 @@ cmsis_arm_mat_ldlt_f64(PyObject *obj, PyObject *args) { PyObject *src=NULL; // input - arm_matrix_instance_f64 *src_converted=NULL; // input + arm_matrix_instance_f64 src_converted; // input + arm_matrix_instance_f64 l_converted; + arm_matrix_instance_f64 d_converted; if (PyArg_ParseTuple(args,"O",&src)) { - arm_matrix_instance_f64 *src_converted = f64MatrixFromNumpy(src); - uint32_t column = src_converted->numCols ; - uint32_t row = src_converted->numRows ; + f64MatrixFromNumpy(&src_converted,src); + uint32_t column = src_converted.numCols ; + uint32_t row = src_converted.numRows ; - arm_matrix_instance_f64 *l_converted = createf64Matrix(row,column); - arm_matrix_instance_f64 *d_converted = createf64Matrix(row,column); + createf64Matrix(&l_converted,row,column); + createf64Matrix(&d_converted,row,column); uint16_t *pPerm=(uint16_t *)PyMem_Malloc(sizeof(uint16_t)*row); INT16ARRAY1(pPermOBJ,row,pPerm); - arm_status returnValue = arm_mat_ldlt_f64(src_converted,l_converted,d_converted,pPerm); + arm_status returnValue = arm_mat_ldlt_f64(&src_converted,&l_converted,&d_converted,pPerm); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* lOBJ=NumpyArrayFromf64Matrix(l_converted); - PyObject* dOBJ=NumpyArrayFromf64Matrix(d_converted); + PyObject* lOBJ=NumpyArrayFromf64Matrix(&l_converted); + PyObject* dOBJ=NumpyArrayFromf64Matrix(&d_converted); PyObject *pythonResult = Py_BuildValue("OOOO",theReturnOBJ,lOBJ,dOBJ,pPermOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(src_converted); + FREEMATRIX(&src_converted); Py_DECREF(lOBJ); Py_DECREF(dOBJ); Py_DECREF(pPermOBJ); @@ -1773,7 +2037,7 @@ cmsis_arm_mat_ldlt_f64(PyObject *obj, PyObject *args) return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1781,34 +2045,36 @@ cmsis_arm_mat_solve_lower_triangular_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f32 *pSrcB_converted=NULL; // input + arm_matrix_instance_f32 pSrcB_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); - arm_matrix_instance_f32 *pSrcB_converted = f32MatrixFromNumpy(pSrcB); - uint32_t column = pSrcB_converted->numCols ; - uint32_t row = pSrcA_converted->numRows ; + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); + f32MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t column = pSrcB_converted.numCols ; + uint32_t row = pSrcA_converted.numRows ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_solve_lower_triangular_f32(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_solve_lower_triangular_f32(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1816,34 +2082,36 @@ cmsis_arm_mat_solve_lower_triangular_f64(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f64 *pSrcA_converted=NULL; // input + arm_matrix_instance_f64 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f64 *pSrcB_converted=NULL; // input + arm_matrix_instance_f64 pSrcB_converted; // input + arm_matrix_instance_f64 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f64 *pSrcA_converted = f64MatrixFromNumpy(pSrcA); - arm_matrix_instance_f64 *pSrcB_converted = f64MatrixFromNumpy(pSrcB); - uint32_t column = pSrcB_converted->numCols ; - uint32_t row = pSrcA_converted->numRows ; + f64MatrixFromNumpy(&pSrcA_converted,pSrcA); + f64MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t column = pSrcB_converted.numCols ; + uint32_t row = pSrcA_converted.numRows ; - arm_matrix_instance_f64 *pDst_converted = createf64Matrix(row,column); + createf64Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_solve_lower_triangular_f64(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_solve_lower_triangular_f64(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf64Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf64Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1851,33 +2119,35 @@ cmsis_arm_mat_solve_upper_triangular_f32(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f32 *pSrcA_converted=NULL; // input + arm_matrix_instance_f32 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f32 *pSrcB_converted=NULL; // input + arm_matrix_instance_f32 pSrcB_converted; // input + arm_matrix_instance_f32 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f32 *pSrcA_converted = f32MatrixFromNumpy(pSrcA); - arm_matrix_instance_f32 *pSrcB_converted = f32MatrixFromNumpy(pSrcB); - uint32_t column = pSrcB_converted->numCols ; - uint32_t row = pSrcA_converted->numRows ; - arm_matrix_instance_f32 *pDst_converted = createf32Matrix(row,column); + f32MatrixFromNumpy(&pSrcA_converted,pSrcA); + f32MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t column = pSrcB_converted.numCols ; + uint32_t row = pSrcA_converted.numRows ; + createf32Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_solve_upper_triangular_f32(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_solve_upper_triangular_f32(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf32Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf32Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyObject * @@ -1885,33 +2155,35 @@ cmsis_arm_mat_solve_upper_triangular_f64(PyObject *obj, PyObject *args) { PyObject *pSrcA=NULL; // input - arm_matrix_instance_f64 *pSrcA_converted=NULL; // input + arm_matrix_instance_f64 pSrcA_converted; // input PyObject *pSrcB=NULL; // input - arm_matrix_instance_f64 *pSrcB_converted=NULL; // input + arm_matrix_instance_f64 pSrcB_converted; // input + arm_matrix_instance_f64 pDst_converted; if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB)) { - arm_matrix_instance_f64 *pSrcA_converted = f64MatrixFromNumpy(pSrcA); - arm_matrix_instance_f64 *pSrcB_converted = f64MatrixFromNumpy(pSrcB); - uint32_t column = pSrcB_converted->numCols ; - uint32_t row = pSrcA_converted->numRows ; - arm_matrix_instance_f64 *pDst_converted = createf64Matrix(row,column); + f64MatrixFromNumpy(&pSrcA_converted,pSrcA); + f64MatrixFromNumpy(&pSrcB_converted,pSrcB); + uint32_t column = pSrcB_converted.numCols ; + uint32_t row = pSrcA_converted.numRows ; + createf64Matrix(&pDst_converted,row,column); - arm_status returnValue = arm_mat_solve_upper_triangular_f64(pSrcA_converted,pSrcB_converted,pDst_converted); + arm_status returnValue = arm_mat_solve_upper_triangular_f64(&pSrcA_converted, + &pSrcB_converted,&pDst_converted); PyObject* theReturnOBJ=Py_BuildValue("i",returnValue); - PyObject* pDstOBJ=NumpyArrayFromf64Matrix(pDst_converted); + PyObject* pDstOBJ=NumpyArrayFromf64Matrix(&pDst_converted); PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ); Py_DECREF(theReturnOBJ); - FREEARGUMENT(pSrcA_converted); - FREEARGUMENT(pSrcB_converted); + FREEMATRIX(&pSrcA_converted); + FREEMATRIX(&pSrcB_converted); Py_DECREF(pDstOBJ); return(pythonResult); } - return(NULL); + Py_RETURN_NONE; } static PyMethodDef CMSISDSPMethods[] = { @@ -1962,6 +2234,10 @@ static PyMethodDef CMSISDSPMethods[] = { {"arm_mat_solve_lower_triangular_f64", cmsis_arm_mat_solve_lower_triangular_f64, METH_VARARGS,""}, {"arm_mat_solve_upper_triangular_f32", cmsis_arm_mat_solve_upper_triangular_f32, METH_VARARGS,""}, {"arm_mat_solve_upper_triangular_f64", cmsis_arm_mat_solve_upper_triangular_f64, METH_VARARGS,""}, +{"arm_householder_f32", cmsis_arm_householder_f32, METH_VARARGS,""}, +{"arm_householder_f64", cmsis_arm_householder_f64, METH_VARARGS,""}, +{"arm_mat_qr_f32", cmsis_arm_mat_qr_f32, METH_VARARGS,""}, +{"arm_mat_qr_f64", cmsis_arm_mat_qr_f64, METH_VARARGS,""}, {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL}, {NULL, NULL, 0, NULL} /* Sentinel */ diff --git a/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_module.h b/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_module.h index 0b80194adc24a3962ae906e606193554299d645e..9475838f743502482d34925d575bb360cd70bec7 100644 --- a/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_module.h +++ b/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_module.h @@ -179,83 +179,77 @@ Method_##NAME##_##FIELD(dsp_##NAME##Object *self, PyObject *ignored)\ void capsule_cleanup(PyObject *capsule) { void *memory = PyCapsule_GetPointer(capsule, "cmsisdsp capsule"); - // I'm going to assume your memory needs to be freed with free(). - // If it needs different cleanup, perform whatever that cleanup is - // instead of calling free(). PyMem_Free(memory); } #define FLOATARRAY2(OBJ,NB1,NB2,DATA) \ - npy_intp dims[2]; \ - dims[0]=NB1; \ - dims[1]=NB2; \ - const int ND=2; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPY_FLOAT, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[2]; \ + dims##OBJ[0]=NB1; \ + dims##OBJ[1]=NB2; \ + const int ND##OBJ=2; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_FLOAT, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define FLOATARRAY1(OBJ,NB1,DATA) \ npy_intp dims##OBJ[1]; \ dims##OBJ[0]=NB1; \ const int ND##OBJ=1; \ PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_FLOAT, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define FLOAT64ARRAY1(OBJ,NB1,DATA) \ - npy_intp dims[1]; \ - dims[0]=NB1; \ - const int ND=1; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPY_DOUBLE, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[1]; \ + dims##OBJ[0]=NB1; \ + const int ND##OBJ=1; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_DOUBLE, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define UINT32ARRAY1(OBJ,NB1,DATA) \ - npy_intp dims[1]; \ - dims[0]=NB1; \ - const int ND=1; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPY_UINT32, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[1]; \ + dims##OBJ[0]=NB1; \ + const int ND##OBJ=1; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_UINT32, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define INT32ARRAY1(OBJ,NB1,DATA) \ - npy_intp dims[1]; \ - dims[0]=NB1; \ - const int ND=1; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPY_INT32, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[1]; \ + dims##OBJ[0]=NB1; \ + const int ND##OBJ=1; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_INT32, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define INT16ARRAY1(OBJ,NB1,DATA) \ - npy_intp dims[1]; \ - dims[0]=NB1; \ - const int ND=1; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPY_INT16, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[1]; \ + dims##OBJ[0]=NB1; \ + const int ND##OBJ=1; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_INT16, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define INT8ARRAY1(OBJ,NB1,DATA) \ - npy_intp dims[1]; \ - dims[0]=NB1; \ - const int ND=1; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPY_BYTE, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[1]; \ + dims##OBJ[0]=NB1; \ + const int ND##OBJ=1; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPY_BYTE, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define TYP_ARRAY1(OBJ,NB1,DATA,NPYTYPE) \ - npy_intp dims[1]; \ - dims[0]=NB1; \ - const int ND=1; \ - PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND, dims, NPYTYPE, DATA);\ - PyObject *capsule = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ - PyArray_SetBaseObject(OBJ, capsule); + npy_intp dims##OBJ[1]; \ + dims##OBJ[0]=NB1; \ + const int ND##OBJ=1; \ + PyArrayObject *OBJ=(PyArrayObject*)PyArray_SimpleNewFromData(ND##OBJ, dims##OBJ, NPYTYPE, DATA);\ + PyObject *capsule##OBJ = PyCapsule_New(DATA, "cmsisdsp capsule",capsule_cleanup); \ + PyArray_SetBaseObject(OBJ, capsule##OBJ); #define MATRIXFROMNUMPY(EXT,TYP,SRCTYPE,NUMPYTYPE) \ -arm_matrix_instance_##EXT *EXT##MatrixFromNumpy(PyObject *o) \ +void EXT##MatrixFromNumpy(arm_matrix_instance_##EXT *s,PyObject *o) \ { \ - arm_matrix_instance_##EXT *s; \ - \ - s=PyMem_Malloc(sizeof(arm_matrix_instance_##EXT)); \ s->pData=NULL; \ s->numRows=0; \ s->numCols=0; \ @@ -277,25 +271,21 @@ arm_matrix_instance_##EXT *EXT##MatrixFromNumpy(PyObject *o) \ } \ \ \ - return(s); \ \ } #define CREATEMATRIX(EXT,TYP) \ -arm_matrix_instance_##EXT *create##EXT##Matrix(uint32_t r,uint32_t c)\ +void create##EXT##Matrix(arm_matrix_instance_##EXT *s,uint32_t r,uint32_t c)\ { \ - arm_matrix_instance_##EXT *s; \ \ - s=PyMem_Malloc(sizeof(arm_matrix_instance_##EXT)); \ s->pData=PyMem_Malloc(sizeof(TYP)*r*c); \ s->numRows=r; \ s->numCols=c; \ - return(s); \ } - +#define FREEMATRIX(s) PyMem_Free((s)->pData) #define NUMPYVECTORFROMBUFFER(EXT,CTYPE,NUMPYTYPE_FROMC) \ PyObject *NumpyVectorFrom##EXT##Buffer(CTYPE *ptr,int nb) \ diff --git a/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_support.c b/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_support.c index 0f39bddb2c46b4924262b9756f57b86f0a4af3fd..910e61cec4cf287e5cf6597eeed390dbdaf75063 100755 --- a/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_support.c +++ b/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_support.c @@ -934,7 +934,7 @@ cmsis_arm_weighted_sum_f32(PyObject *obj, PyObject *args) } static PyObject * -cmsis_arm_div_q63_to_q31(PyObject *obj, PyObject *args) +cmsis_arm_div_int64_to_int32(PyObject *obj, PyObject *args) { PyObject *pSrc=NULL; // input @@ -946,7 +946,7 @@ cmsis_arm_div_q63_to_q31(PyObject *obj, PyObject *args) { - result=arm_div_q63_to_q31(num,den); + result=arm_div_int64_to_int32(num,den); PyObject* resultOBJ=Py_BuildValue("l",result); @@ -962,7 +962,7 @@ cmsis_arm_div_q63_to_q31(PyObject *obj, PyObject *args) static PyMethodDef CMSISDSPMethods[] = { -{"arm_div_q63_to_q31", cmsis_arm_div_q63_to_q31, METH_VARARGS,""}, +{"arm_div_int64_to_int32", cmsis_arm_div_int64_to_int32, METH_VARARGS,""}, {"arm_copy_f64", cmsis_arm_copy_f64, METH_VARARGS,""}, {"arm_copy_f32", cmsis_arm_copy_f32, METH_VARARGS,""}, {"arm_copy_q7", cmsis_arm_copy_q7, METH_VARARGS,""}, diff --git a/PythonWrapper/examples/example_1_4.py b/PythonWrapper/examples/example_1_4.py index 273bf405538d3d93b2b06c6d8c63053481be0a12..6e0248464444b4fcba7183cb3123581a0e98e250 100755 --- a/PythonWrapper/examples/example_1_4.py +++ b/PythonWrapper/examples/example_1_4.py @@ -31,7 +31,7 @@ y = np.sin(angles) vals=list(zip(y,x)) -printSubTitle("Atan2 Referebce") +printSubTitle("Atan2 Reference") ref=np.array([np.arctan2(yv,xv) for (yv,xv) in vals])/math.pi*180 print(ref) diff --git a/PythonWrapper/examples/example_1_5.py b/PythonWrapper/examples/example_1_5.py new file mode 100644 index 0000000000000000000000000000000000000000..5b4edb9c9051688198d1e6cb6f54b94e700a81ed --- /dev/null +++ b/PythonWrapper/examples/example_1_5.py @@ -0,0 +1,158 @@ +# New functions for version 1.5 of the Python wrapper +import cmsisdsp as dsp +import cmsisdsp.fixedpoint as f +import numpy as np +import math +import colorama +from colorama import init,Fore, Back, Style + +from numpy.linalg import qr + +def householder(x,eps=1e-16): + #print(x) + v=np.hstack([[1],x[1:]]) + + alpha = x[0] + xnorm2=x[1:].dot(x[1:]) + epsilon=eps + + #print(sigma) + + if xnorm2<=epsilon: + tau = 0.0 + v = np.zeros(len(x)) + else: + if np.sign(alpha) <= 0: + beta = math.sqrt(alpha*alpha + xnorm2) + else: + beta = -math.sqrt(alpha*alpha + xnorm2) + + r = (alpha - beta) + v = x / r + tau = (beta - alpha) / beta + v[0] = 1 + + return(v,tau) + +init() + +def printTitle(s): + print("\n" + Fore.GREEN + Style.BRIGHT + s + Style.RESET_ALL) + +def printSubTitle(s): + print("\n" + Style.BRIGHT + s + Style.RESET_ALL) + +printTitle("Householder") + +VECDIM = 10 + +a=np.random.randn(VECDIM) +a = a / np.max(np.abs(a)) + +# Reference +vRef,betaRef = householder(a) + +printSubTitle("Householder F32") +betaF32,vF32 = dsp.arm_householder_f32(a,dsp.DEFAULT_HOUSEHOLDER_THRESHOLD_F32) +print(np.isclose(betaRef,betaF32,1e-6,1e-6)) +print(np.isclose(vRef,vF32,1e-6,1e-6)) + +printSubTitle("Householder F64") +betaF64,vF64 = dsp.arm_householder_f64(a,dsp.DEFAULT_HOUSEHOLDER_THRESHOLD_F64) +print(np.isclose(betaRef,betaF64,1e-6,1e-6)) +print(np.isclose(vRef,vF64,1e-6,1e-6)) + +printSubTitle("Householder Proportional F32") +a=np.random.randn(5) +# With the threshold defined with DEFAULT_HOUSEHOLDER_THRESHOLD_F32 +# this vector is considered as proportional to (1,0,...) +# and thus the function will return (0,[0,...,0]) +a = a / np.max(np.abs(a)) * 1.0e-7 +resF32 = dsp.arm_householder_f32(a,dsp.DEFAULT_HOUSEHOLDER_THRESHOLD_F32) +print(resF32) + +# With a smaller threshold, a computation is taking place +resF32 = dsp.arm_householder_f32(a,0.001*dsp.DEFAULT_HOUSEHOLDER_THRESHOLD_F32) +print(resF32) + +printTitle("QR decomposition") + +def checkOrtho(A,err=1e-10): + product = A.T.dot(A) + #print(A) + np.fill_diagonal(product,0) + #print(product) + print(np.max(np.abs(product))) + return (np.all(np.abs(product)<=err)) + +m=np.array([[-0.35564874, -0.07809871, -0.10350569, -0.50633135, -0.65073484], + [-0.71887395, 0.45257918, 0.29606363, 0.1497621 , 0.07002738], + [-0.50586141, -0.50613839, -0.01650463, -0.29693649, 0.47667742], + [ 0.06802137, 0.07689169, -0.02726221, -0.09996672, 0.15521956], + [ 0.21220523, -0.22273009, 0.78247386, -0.2760002 , -0.24438688], + [ 0.09683658, 0.62026597, 0.26771763, -0.26935342, 0.18443573], + [-0.01014268, 0.27578087, -0.44635721, -0.21827312, -0.26463186], + [-0.20420646, -0.12880459, 0.13207738, 0.65319578, -0.3956695 ]]) + +rows,columns = m.shape + + +# The CMSIS-DSP C functions is requiring two temporary arrays +# To follow the C function as closely as possible, we create +# two arrays. Their size will be used internally by the Python +# wrapper to allocate two temporary buffers. +# Like that you can check you have dimensionned the arrays in the +# right way. +# The content of the temporary buffers is not accesible from the +# Python API. tmpa and tmpb are not modified. +tmpa=np.zeros(rows) +tmpb=np.zeros(rows) + +printSubTitle("QR F32") + +status,r,q,tau = dsp.arm_mat_qr_f32(m,dsp.DEFAULT_HOUSEHOLDER_THRESHOLD_F32,tmpa,tmpb) + +# Status different from 0 if matrix dimensions are not right +# (rows must be >= columns) +#print(status) +#print(q) +#print(r) +#print(tau) + +# Check that the matrix Q is orthogonal +assert(checkOrtho(q,err=1.0e-6)) + +# Remove householder vectors from R matrix +i=1 +for c in r.T: + c[i:] = 0 + i = i+1 + +# Check that M = Q R +newm = np.dot(q,r) +assert_allclose(newm,m,2e-6,1e-7) + + +printSubTitle("QR F64") + +status,r,q,tau = dsp.arm_mat_qr_f64(m,dsp.DEFAULT_HOUSEHOLDER_THRESHOLD_F64,tmpa,tmpb) + +# Status different from 0 if matrix dimensions are not right +# (rows must be >= columns) +#print(status) +#print(q) +#print(r) +#print(tau) + +# Check that the matrix Q is orthogonal +assert(checkOrtho(q,err=1e-14)) + +# Remove householder vectors from R matrix +i=1 +for c in r.T: + c[i:] = 0 + i = i+1 + +# Check that M = Q R +newm = np.dot(q,r) +assert_allclose(newm,m) \ No newline at end of file diff --git a/PythonWrapper/examples/testdsp5.py b/PythonWrapper/examples/testdsp5.py index 253a8fed2f63624b848edd858aad7247b5f6dd3b..ae908ce3b76bb2de13b04456441f174883c55918 100755 --- a/PythonWrapper/examples/testdsp5.py +++ b/PythonWrapper/examples/testdsp5.py @@ -431,12 +431,12 @@ ref = sa res = dsp.arm_copy_f64(sa) assert_allclose(ref,res,1e-10,1e-10) -print("arm_div_q63_to_q31") +print("arm_div_int64_to_int32") den=0x7FFF00000000 num=0x10000 ref=den//num -res=dsp.arm_div_q63_to_q31(den,num) +res=dsp.arm_div_int64_to_int32(den,num) print(ref) print(res) diff --git a/PythonWrapper_README.md b/PythonWrapper_README.md index 421bcb2d0c58d3cd6f409dcce9b094397f7eb1d6..8bf2b358ce9412ea12184eca24bb91c721957c71 100644 --- a/PythonWrapper_README.md +++ b/PythonWrapper_README.md @@ -1,17 +1,17 @@ # README -This is a Python wrapper for the Arm open source [CMSIS-DSP](https://arm-software.github.io/CMSIS_5/DSP/html/index.html) and it is compatible with `NumPy`. +This is a Python wrapper for the Arm open source [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) and it is compatible with `NumPy`. -The CMSIS-DSP is available on our [GitHub](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) or as a CMSIS Pack. +The CMSIS-DSP is available on our [GitHub](https://github.com/ARM-software/CMSIS-DSP) or as a [CMSIS Pack](https://github.com/ARM-software/CMSIS-DSP/releases). -The idea is to follow as closely as possible the C [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) API to ease the migration to the final implementation on a board. +The idea is to follow as closely as possible the C [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) API to ease the migration to the final implementation on a board. The signal processing chain can thus be tested and developed in a Python environment and then easily converted to a C implementation running on a Cortex-M or Cortex-A board. A tutorial is also available but with less details than this README: https://developer.arm.com/documentation/102463/latest/ -This wrapper is also containing the scripts for the new CMSIS-DSP [Synchronous Data Flow](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP/SDFTools) (SDF) framework. +This wrapper is also containing the scripts for the new CMSIS-DSP [Synchronous Data Flow](https://github.com/ARM-software/CMSIS-DSP/blob/main/SDFTools/README.md) (SDF) framework. SDF is also including some nodes to communicate with Modelica using the VHT Modelica blocks developed as part of our [VHT-SystemModeling](https://github.com/ARM-software/VHT-SystemModeling) demos. @@ -41,13 +41,13 @@ It is advised to do it in a Python virtual environment. Then, in the virtual env You must have a recent `pip` (to automatically install the dependencies like `NumPy`) and you should have a compiler which can be found by Python when building the package. -DSP examples are available in the [CMSIS-DSP PythonWrapper examples](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP/PythonWrapper/examples) folder. +DSP examples are available in the [CMSIS-DSP PythonWrapper examples](https://github.com/ARM-software/CMSIS-DSP/tree/main/PythonWrapper/examples) folder. -Synchronous Data Flow examples are available in the [SDF](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP/SDFTools) folder of [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) . +Synchronous Data Flow examples are available in the [SDF](https://github.com/ARM-software/CMSIS-DSP/tree/main/SDFTools) folder of [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) . You can also install and run it from [Google colab](https://colab.research.google.com/): -This [link](https://colab.research.google.com/github/ARM-software/CMSIS_5/blob/develop/CMSIS/DSP/PythonWrapper/examples/cmsisdsp_tests.ipynb) will open a Jupyter notebook in [Google colab](https://colab.research.google.com/) for testing. This notebook is from the [examples](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP/PythonWrapper/examples) in the CMSIS-DSP GitHub repository. +This [link](https://colab.research.google.com/github/ARM-software/CMSIS-DSP/blob/main/PythonWrapper/examples/cmsisdsp_tests.ipynb) will open a Jupyter notebook in [Google colab](https://colab.research.google.com/) for testing. This notebook is from the [examples](https://github.com/ARM-software/CMSIS-DSP/tree/main/PythonWrapper/examples) in the CMSIS-DSP GitHub repository. ### Building @@ -56,11 +56,11 @@ It it is not working (because it is not possible for us to test all configuratio It is advised to do this it into a virtualenv -Since the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) wrapper is using `NumPy`, you must first install it in the virtual environment. +Since the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) wrapper is using `NumPy`, you must first install it in the virtual environment. > pip install numpy -Once `NumPy` is installed, you can build the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) python wrapper. Go to folder `CMSIS/DSP`. +Once `NumPy` is installed, you can build the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) python wrapper. Go to folder `CMSIS/DSP`. (In a previous version you had to go to the `PythonWrapper` folder. Now the `setup.py` is inside the DSP folder). Now, you can install the cmsisdsp package in editable mode: @@ -79,7 +79,7 @@ Install some packages to be able to run the examples Depending on the example, you may have to install more packages. -The examples are in the [CMSIS-DSP PythonWrapper examples](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP/PythonWrapper/examples) folder. +The examples are in the [CMSIS-DSP PythonWrapper examples](https://github.com/ARM-software/CMSIS-DSP/tree/main/PythonWrapper/examples) folder. You can test the scripts `testdsp.py` and `example.py` and try to run them from this virtual environment. `example.py` is requiring a data file to be downloaded from the web. See below in this document for the link. @@ -87,7 +87,7 @@ Note that due to the great number of possible configurations (OS, Compiler, Pyth # Usage -The idea is to follow as closely as possible the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) API to ease the migration to the final implementation on a board. +The idea is to follow as closely as possible the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) API to ease the migration to the final implementation on a board. First you need to import the module @@ -103,7 +103,7 @@ If you use scipy signal processing functions: ## Functions with no instance arguments -You can use a [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) function with numpy arrays: +You can use a [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) function with numpy arrays: > r = dsp.arm_add_f32(np.array([1.,2,3]),np.array([4.,5,7])) @@ -111,11 +111,11 @@ The function can also be called more simply with > r = dsp.arm_add_f32([1.,2,3],[4.,5,7]) -The result of a [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) function will always be a numpy array whatever the arguments were (numpy array or list). +The result of a [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) function will always be a numpy array whatever the arguments were (numpy array or list). ## Functions with instance arguments -When the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) function is requiring an instance data structure, it is just a bit more complex to use it: +When the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) function is requiring an instance data structure, it is just a bit more complex to use it: First you need to create this instance: @@ -125,7 +125,7 @@ Then, you need to call an init function: > dsp.arm_fir_init_f32(firf32,3,[1.,2,3],[0,0,0,0,0,0,0]) -The third argument in this function is the state. Since all arguments (except the instance ones) are read-only in this Python API, this state will never be changed ! It is just used to communicate the length of the state array which must be allocated by the init function. This argument is required because it is present in the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) API and in the final C implementation you'll need to allocate a state array with the right dimension. +The third argument in this function is the state. Since all arguments (except the instance ones) are read-only in this Python API, this state will never be changed ! It is just used to communicate the length of the state array which must be allocated by the init function. This argument is required because it is present in the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) API and in the final C implementation you'll need to allocate a state array with the right dimension. Since the goal is to be as close as possible to the C API, the API is forcing the use of this argument. @@ -139,9 +139,9 @@ Then, you can filter with CMSIS-DSP: > print(dsp.arm_fir_f32(firf32,[1,2,3,4,5])) -The size of this signal should be `blockSize`. `blockSize` was inferred from the size of the state array : `numTaps + blockSize - 1` according to [CMSIS-DSP.](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) So here the signal must have 5 samples. +The size of this signal should be `blockSize`. `blockSize` was inferred from the size of the state array : `numTaps + blockSize - 1` according to [CMSIS-DSP.](https://github.com/ARM-software/CMSIS-DSP) So here the signal must have 5 samples. -If you want to filter more than 5 samples, then you can just call the function again. The state variable inside firf32 will ensure that it works like in the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) C code. +If you want to filter more than 5 samples, then you can just call the function again. The state variable inside firf32 will ensure that it works like in the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) C code. > print(dsp.arm_fir_f32(firf32,[6,7,8,9,10])) @@ -161,7 +161,7 @@ Let's define a signal you will use for the FFT. > nb = 16 > signal = np.cos(2 * np.pi * np.arange(nb) / nb) -The [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) cfft is requiring complex signals with a specific layout in memory. +The [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) cfft is requiring complex signals with a specific layout in memory. To remain as close as possible to the C API, we are not using complex numbers in the wrapper. So a complex signal must be converted into a real one. The function imToReal1D is defined in testdsp.py @@ -187,9 +187,9 @@ You convert back to a complex format to compare with scipy: ## Matrix -For matrix, the instance variables are masked by the Python API. We decided that for matrix only there was no use for having the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) instance visibles since they contain the same information as the numpy array (samples and dimension). +For matrix, the instance variables are masked by the Python API. We decided that for matrix only there was no use for having the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) instance visibles since they contain the same information as the numpy array (samples and dimension). -So to use a [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) matrix function, it is very simple: +So to use a [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) matrix function, it is very simple: > a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]]) > b=np.array([[1.,2,3],[5.1,6,7],[9.1,10,11],[5,8,4]]) @@ -198,7 +198,7 @@ So to use a [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMS > print(np.dot(a , b)) -[CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) result: +[CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) result: > v=dsp.arm_mat_mult_f32(a,b) > print(v) @@ -224,10 +224,10 @@ Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PCh, Mark RG, Mietus JE The Python wrapper is containing three submodules : `fixedpoint` , `mfcc` and `datatype` `fixedpoint` is proving some tools to help generating the fixedpoint values expected -by [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP). +by [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP). `mfcc` is generating some tools to generate the MEL filters, DCT and window coefficients -expected by the [CMSIS-DSP](https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP) MFCC implementation. +expected by the [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP) MFCC implementation. MEL filters are represented as 3 arrays to encode a sparse array. diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 6b8e817d491fcf8759ed4d1705f30be60bb89fb2..37b4dc879c0645393c46776234ca9ae7ad557caa 100755 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -5,7 +5,6 @@ project(CMSISDSP) # DSP Sources SET(DSP ${CMAKE_CURRENT_SOURCE_DIR}/..) - option(NEON "Neon acceleration" OFF) option(NEONEXPERIMENTAL "Neon experimental acceleration" OFF) option(HELIUMEXPERIMENTAL "Helium experimental acceleration" OFF) diff --git a/Source/MatrixFunctions/Config.cmake b/Source/MatrixFunctions/Config.cmake index 02b5b67fc7aa154442d7921068d301e4041defe2..837a1d188e98dd19eaa6c2e88a5be98d301e5d46 100644 --- a/Source/MatrixFunctions/Config.cmake +++ b/Source/MatrixFunctions/Config.cmake @@ -11,6 +11,8 @@ MatrixFunctions/arm_mat_solve_lower_triangular_f64.c MatrixFunctions/arm_mat_solve_upper_triangular_f64.c MatrixFunctions/arm_mat_sub_f64.c MatrixFunctions/arm_mat_trans_f64.c +MatrixFunctions/arm_mat_qr_f64.c +MatrixFunctions/arm_householder_f64.c ) set(SRCF32 MatrixFunctions/arm_mat_add_f32.c @@ -27,6 +29,8 @@ MatrixFunctions/arm_mat_solve_upper_triangular_f32.c MatrixFunctions/arm_mat_sub_f32.c MatrixFunctions/arm_mat_trans_f32.c MatrixFunctions/arm_mat_vec_mult_f32.c +MatrixFunctions/arm_mat_qr_f32.c +MatrixFunctions/arm_householder_f32.c ) set(SRCQ31 MatrixFunctions/arm_mat_add_q31.c @@ -82,6 +86,8 @@ MatrixFunctions/arm_mat_solve_upper_triangular_f16.c MatrixFunctions/arm_mat_sub_f16.c MatrixFunctions/arm_mat_trans_f16.c MatrixFunctions/arm_mat_vec_mult_f16.c +MatrixFunctions/arm_mat_qr_f16.c +MatrixFunctions/arm_householder_f16.c ) endif() diff --git a/Source/MatrixFunctions/MatrixFunctions.c b/Source/MatrixFunctions/MatrixFunctions.c index d4fa42c1cc11af34874268c95df9284c33e3da2c..7d7302be00c567f3f367e2f872afade5ce7b1b42 100644 --- a/Source/MatrixFunctions/MatrixFunctions.c +++ b/Source/MatrixFunctions/MatrixFunctions.c @@ -72,3 +72,7 @@ #include "arm_mat_solve_lower_triangular_f64.c" #include "arm_mat_ldlt_f32.c" #include "arm_mat_ldlt_f64.c" +#include "arm_mat_qr_f32.c" +#include "arm_mat_qr_f64.c" +#include "arm_householder_f64.c" +#include "arm_householder_f32.c" \ No newline at end of file diff --git a/Source/MatrixFunctions/MatrixFunctionsF16.c b/Source/MatrixFunctions/MatrixFunctionsF16.c index 9d3a41fb3dca6c065787d09f00a542d22f86fce3..edc07e61b474b6119d3a000fe29db19e1c4da69c 100755 --- a/Source/MatrixFunctions/MatrixFunctionsF16.c +++ b/Source/MatrixFunctions/MatrixFunctionsF16.c @@ -39,3 +39,5 @@ #include "arm_mat_cholesky_f16.c" #include "arm_mat_solve_upper_triangular_f16.c" #include "arm_mat_solve_lower_triangular_f16.c" +#include "arm_mat_qr_f16.c" +#include "arm_householder_f32.c" \ No newline at end of file diff --git a/Source/MatrixFunctions/arm_householder_f16.c b/Source/MatrixFunctions/arm_householder_f16.c new file mode 100644 index 0000000000000000000000000000000000000000..21691a13977f6fe29be1babe81b257f5fa895d60 --- /dev/null +++ b/Source/MatrixFunctions/arm_householder_f16.c @@ -0,0 +1,116 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_householder_f16.c + * Description: Half floating-point Householder transform + * + * $Date: 15 June 2022 + * $Revision: V1.11.0 + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2022 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/matrix_functions_f16.h" +#include "dsp/basic_math_functions_f16.h" +#include "dsp/fast_math_functions_f16.h" + +#include "dsp/matrix_utils.h" + + +#include + + +/** + @ingroup groupMatrix + */ + + +/** + @addtogroup MatrixHouseholder + @{ + */ + +/** + @brief Householder transform of a half floating point vector. + @param[in] pSrc points to the input vector. + @param[in] threshold norm2 threshold. + @param[in] blockSize dimension of the vector space. + @param[out] pOut points to the output vector. + @return beta return the scaling factor beta + */ +#if defined(ARM_FLOAT16_SUPPORTED) + +float16_t arm_householder_f16( + const float16_t * pSrc, + const float16_t threshold, + uint32_t blockSize, + float16_t * pOut + ) + +{ + uint32_t i; + float16_t epsilon; + float16_t x1norm2,alpha; + float16_t beta,tau,r; + + epsilon = threshold; + + alpha = pSrc[0]; + + for(i=1; i < blockSize; i++) + { + pOut[i] = pSrc[i]; + } + pOut[0] = 1.0f16; + + arm_dot_prod_f16(pSrc+1,pSrc+1,blockSize-1,&x1norm2); + + if ((_Float16)x1norm2<=(_Float16)epsilon) + { + tau = 0.0f16; + memset(pOut,0,blockSize * sizeof(float16_t)); + } + else + { + beta = (_Float16)alpha * (_Float16)alpha + (_Float16)x1norm2; + (void)arm_sqrt_f16(beta,&beta); + + if ((_Float16)alpha > 0.0f16) + { + beta = -(_Float16)beta; + } + + r = 1.0f16 / ((_Float16)alpha -(_Float16)beta); + arm_scale_f16(pOut,r,pOut,blockSize); + pOut[0] = 1.0f16; + + + tau = ((_Float16)beta - (_Float16)alpha) / (_Float16)beta; + + } + + return(tau); + +} + + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ +/** + @} end of MatrixHouseholder group + */ diff --git a/Source/MatrixFunctions/arm_householder_f32.c b/Source/MatrixFunctions/arm_householder_f32.c new file mode 100644 index 0000000000000000000000000000000000000000..083dbc78d4b3cb01092c2570a71d988f59fe21b1 --- /dev/null +++ b/Source/MatrixFunctions/arm_householder_f32.c @@ -0,0 +1,188 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_householder_f32.c + * Description: Floating-point Householder transform + * + * $Date: 15 June 2022 + * $Revision: V1.11.0 + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2022 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/matrix_functions.h" +#include "dsp/basic_math_functions.h" +#include "dsp/fast_math_functions.h" + +#include "dsp/matrix_utils.h" + +#include + + +/** + @ingroup groupMatrix + */ + +/** + @defgroup MatrixHouseholder Householder transform of a vector + + Computes the Householder transform of a vector x. + + The Householder transform of x is a vector v with + + \f[ + v_0 = 1 + \f] + + and a scalar \f$\beta\f$ such that: + + \f[ + P = I - \beta v v^T + \f] + + is an orthogonal matrix and + + \f[ + P x = ||x||_2 e_1 + \f] + + So P is an hyperplane reflection such that the image of x + is proportional to \f$e_1\f$. + + \f$e_1\f$ is the vector of coordinates: + + \f[ + \begin{pmatrix} + 1 \\ + 0 \\ + \vdots \\ + \end{pmatrix} + \f] + + If x is already proportional to \f$e_1\f$ then + the matrix P should be the identity. + + Thus, \f$\beta\f$ should be 0 and in this case the vector v + can also be null. + + But how do we detect that x is already proportional to + \f$e_1\f$. + + If x + \f[ + x = + \begin{pmatrix} + x_0 \\ + xr \\ + \end{pmatrix} + \f] + + where \f$xr\f$ is a vector. + + The algorithm is computing the norm squared of this vector: + + \f[ + ||xr||^2 + \f] + + and this value is compared to a `threshold`. If the value + is smaller than the `threshold`, the algorithm is + returning 0 for \f$\beta\f$ and the householder vector. + + This `threshold` is an argument of the function. + + Default values are provided in the header + `dsp/matrix_functions.h` like for instance + `DEFAULT_HOUSEHOLDER_THRESHOLD_F32` + + + + */ + +/** + @addtogroup MatrixHouseholder + @{ + */ + +/** + @brief Householder transform of a floating point vector. + @param[in] pSrc points to the input vector. + @param[in] threshold norm2 threshold. + @param[in] blockSize dimension of the vector space. + @param[out] pOut points to the output vector. + @return beta return the scaling factor beta + */ + +float32_t arm_householder_f32( + const float32_t * pSrc, + const float32_t threshold, + uint32_t blockSize, + float32_t * pOut + ) + +{ + uint32_t i; + float32_t epsilon; + float32_t x1norm2,alpha; + float32_t beta,tau,r; + + epsilon = threshold; + + alpha = pSrc[0]; + + for(i=1; i < blockSize; i++) + { + pOut[i] = pSrc[i]; + } + pOut[0] = 1.0f; + + arm_dot_prod_f32(pSrc+1,pSrc+1,blockSize-1,&x1norm2); + + if (x1norm2<=epsilon) + { + tau = 0.0f; + memset(pOut,0,blockSize * sizeof(float32_t)); + } + else + { + beta = alpha * alpha + x1norm2; + (void)arm_sqrt_f32(beta,&beta); + + if (alpha > 0.0f) + { + beta = -beta; + } + + r = 1.0f / (alpha -beta); + arm_scale_f32(pOut,r,pOut,blockSize); + pOut[0] = 1.0f; + + + tau = (beta - alpha) / beta; + + } + + return(tau); + +} + + +/** + @} end of MatrixHouseholder group + */ diff --git a/Source/MatrixFunctions/arm_householder_f64.c b/Source/MatrixFunctions/arm_householder_f64.c new file mode 100644 index 0000000000000000000000000000000000000000..1fd75b46084bebe1ba64f880aa5269627c29ec5d --- /dev/null +++ b/Source/MatrixFunctions/arm_householder_f64.c @@ -0,0 +1,113 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_householder_f64.c + * Description: Double floating-point Householder transform + * + * $Date: 15 June 2022 + * $Revision: V1.11.0 + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2022 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/matrix_functions.h" +#include "dsp/basic_math_functions.h" +#include "dsp/fast_math_functions.h" + +#include "dsp/matrix_utils.h" + +#include + + +/** + @ingroup groupMatrix + */ + + +/** + @addtogroup MatrixHouseholder + @{ + */ + +/** + @brief Householder transform of a double floating point vector. + @param[in] pSrc points to the input vector. + @param[in] threshold norm2 threshold. + @param[in] blockSize dimension of the vector space. + @param[out] pOut points to the output vector. + @return beta return the scaling factor beta + */ + +float64_t arm_householder_f64( + const float64_t * pSrc, + const float64_t threshold, + uint32_t blockSize, + float64_t * pOut + ) + +{ + uint32_t i; + float64_t epsilon; + float64_t x1norm2,alpha; + float64_t beta,tau,r; + + epsilon = threshold; + + alpha = pSrc[0]; + + for(i=1; i < blockSize; i++) + { + pOut[i] = pSrc[i]; + } + pOut[0] = 1.0; + + arm_dot_prod_f64(pSrc+1,pSrc+1,blockSize-1,&x1norm2); + + if (x1norm2<=epsilon) + { + tau = 0.0; + memset(pOut,0,blockSize * sizeof(float64_t)); + } + else + { + beta = alpha * alpha + x1norm2; + beta=sqrt(beta); + + if (alpha > 0.0) + { + beta = -beta; + } + + r = 1.0 / (alpha -beta); + arm_scale_f64(pOut,r,pOut,blockSize); + pOut[0] = 1.0; + + + tau = (beta - alpha) / beta; + + } + + return(tau); + +} + + +/** + @} end of MatrixHouseholder group + */ diff --git a/Source/MatrixFunctions/arm_mat_qr_f16.c b/Source/MatrixFunctions/arm_mat_qr_f16.c new file mode 100644 index 0000000000000000000000000000000000000000..6ee0eeece3db4e71d532411305ef11ef6bd4d297 --- /dev/null +++ b/Source/MatrixFunctions/arm_mat_qr_f16.c @@ -0,0 +1,220 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_mat_qr_f16.c + * Description: Half floating-point matrix QR decomposition. + * + * $Date: 15 June 2022 + * $Revision: V1.11.0 + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2022 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/matrix_functions_f16.h" +#include "dsp/matrix_utils.h" + + +/** + @ingroup groupMatrix + */ + + +/** + @addtogroup MatrixQR + @{ + */ + +/** + @brief QR decomposition of a m x n half floating point matrix with m >= n. + @param[in] pSrc points to input matrix structure. The source matrix is modified by the function. + @param[in] threshold norm2 threshold. + @param[out] pOutR points to output R matrix structure of dimension m x n + @param[out] pOutQ points to output Q matrix structure of dimension m x m (can be NULL) + @param[out] pOutTau points to Householder scaling factors of dimension n + @param[inout] pTmpA points to a temporary vector of dimension m. + @param[inout] pTmpB points to a temporary vector of dimension m. + @return execution status + - \ref ARM_MATH_SUCCESS : Operation successful + - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed + + @par pOutQ is optional: + pOutQ can be a NULL pointer. + In this case, the argument will be ignored + and the output Q matrix won't be computed. + + @par f16 implementation + The f16 implementation is not very accurate. + + @par Norm2 threshold + For the meaning of this argument please + refer to the \ref MatrixHouseholder documentation + + */ +#if defined(ARM_FLOAT16_SUPPORTED) + +arm_status arm_mat_qr_f16( + const arm_matrix_instance_f16 * pSrc, + const float16_t threshold, + arm_matrix_instance_f16 * pOutR, + arm_matrix_instance_f16 * pOutQ, + float16_t * pOutTau, + float16_t *pTmpA, + float16_t *pTmpB + ) + +{ + + + uint32_t col=0; + int32_t nb,pos; + float16_t *pa,*pc; + float16_t beta; + float16_t *pv; + float16_t *pdst; + float16_t *p; + float16_t sum; + + if (pSrc->numRows < pSrc->numCols) + { + return(ARM_MATH_SIZE_MISMATCH); + } + + memcpy(pOutR->pData,pSrc->pData,pSrc->numCols * pSrc->numRows*sizeof(float16_t)); + pOutR->numCols = pSrc->numCols; + pOutR->numRows = pSrc->numRows; + + p = pOutR->pData; + + pc = pOutTau; + for(col=0 ; col < pSrc->numCols; col++) + { + uint32_t i,j,k; + COPY_COL_F16(pOutR,col,col,pTmpA); + + beta = arm_householder_f16(pTmpA,threshold,pSrc->numRows - col,pTmpA); + *pc++ = beta; + + pdst = pTmpB; + + /* v.T A(col:,col:) -> tmpb */ + for(j=0;jnumCols-col; j++) + { + pa = p+j; + pv = pTmpA; + sum = 0.0f16; + for(k=0;knumRows-col; k++) + { + sum += (_Float16)*pv++ * (_Float16)*pa; + pa += pOutR->numCols; + } + *pdst++ = sum; + } + + /* A(col:,col:) - beta v tmpb */ + pa = p; + for(j=0;jnumRows-col; j++) + { + for(i=0;inumCols-col; i++) + { + *pa = (_Float16)*pa - (_Float16)beta * (_Float16)pTmpA[j] * (_Float16)pTmpB[i] ; + pa++; + } + pa += col; + } + + /* Copy Householder reflectors into R matrix */ + pa = p + pOutR->numCols; + for(k=0;knumRows-col-1; k++) + { + *pa = pTmpA[k+1]; + pa += pOutR->numCols; + } + + p += 1 + pOutR->numCols; + } + + /* Generate Q if requested by user matrix */ + + if (pOutQ != NULL) + { + /* Initialize Q matrix to identity */ + memset(pOutQ->pData,0,sizeof(float16_t)*pOutQ->numRows*pOutQ->numRows); + + pa = pOutQ->pData; + for(col=0 ; col < pOutQ->numCols; col++) + { + *pa = 1.0f16; + pa += pOutQ->numCols+1; + } + + nb = pOutQ->numRows - pOutQ->numCols + 1; + + pc = pOutTau + pOutQ->numCols - 1; + for(col=0 ; col < pOutQ->numCols; col++) + { + int32_t i,j,k; + pos = pSrc->numRows - nb; + p = pOutQ->pData + pos + pOutQ->numCols*pos ; + + + COPY_COL_F16(pOutR,pos,pos,pTmpA); + pTmpA[0] = 1.0f16; + pdst = pTmpB; + + /* v.T A(col:,col:) -> tmpb */ + for(j=0;jnumRows-pos; j++) + { + pa = p+j; + pv = pTmpA; + sum = 0.0f16; + for(k=0;knumRows-pos; k++) + { + sum += (_Float16)*pv++ * (_Float16)*pa; + pa += pOutQ->numCols; + } + *pdst++ = sum; + } + + pa = p; + beta = *pc--; + for(j=0;jnumRows-pos; j++) + { + for(i=0;inumCols-pos; i++) + { + *pa = (_Float16)*pa - (_Float16)beta * (_Float16)pTmpA[j] * (_Float16)pTmpB[i] ; + pa++; + } + pa += pos; + } + + + nb++; + } + } + + arm_status status = ARM_MATH_SUCCESS; + /* Return to application */ + return (status); +} + + +#endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ +/** + @} end of MatrixQR group + */ diff --git a/Source/MatrixFunctions/arm_mat_qr_f32.c b/Source/MatrixFunctions/arm_mat_qr_f32.c new file mode 100644 index 0000000000000000000000000000000000000000..699adcf6e407827a6e3e970cc5ee38c67c710038 --- /dev/null +++ b/Source/MatrixFunctions/arm_mat_qr_f32.c @@ -0,0 +1,291 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_mat_qr_f32.c + * Description: Floating-point matrix QR decomposition. + * + * $Date: 15 June 2022 + * $Revision: V1.11.0 + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2022 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/matrix_functions.h" +#include "dsp/matrix_utils.h" + + +/** + @ingroup groupMatrix + */ + +/** + @defgroup MatrixQR QR decomposition of a Matrix + + Computes the QR decomposition of a matrix M using Householder algorithm. + + \f[ + M = Q R + \f] + + where Q is an orthogonal matrix and R is upper triangular. + No pivoting strategy is used. + + The returned value for R is using a format a bit similar + to LAPACK : it is not just containing the matrix R but + also the Householder reflectors. + + The function is also returning a vector \f$\tau\f$ + that is containing the scaling factor for the reflectors. + + Returned value R has the structure: + + \f[ + \begin{pmatrix} + r_{11} & r_{12} & \dots & r_{1n} \\ + v_{12} & r_{22} & \dots & r_{2n} \\ + v_{13} & v_{22} & \dots & r_{3n} \\ + \vdots & \vdots & \ddots & \vdots \\ + v_{1m} & v_{2(m-1)} & \dots & r_{mn} \\ + \end{pmatrix} + \f] + + where + + \f[ + v_1 = + \begin{pmatrix} + 1 \\ + v_{12} \\ + \vdots \\ + v_{1m} \\ + \end{pmatrix} + \f] + + is the first householder reflector. + + The Householder Matrix is given by \f$H_1\f$ + + \f[ + H_1 = I - \tau_1 v_1 v_1^T + \f] + + The Matrix Q is the product of the Householder matrices: + + \f[ + Q = H_1 H_2 \dots H_n + \f] + + The computation of the matrix Q by this function is + optional. + + And the matrix R, would be the returned value R without the + householder reflectors: + + \f[ + \begin{pmatrix} + r_{11} & r_{12} & \dots & r_{1n} \\ + 0 & r_{22} & \dots & r_{2n} \\ + 0 & 0 & \dots & r_{3n} \\ + \vdots & \vdots & \ddots & \vdots \\ + 0 & 0 & \dots & r_{mn} \\ + \end{pmatrix} + \f] + + + */ + +/** + @addtogroup MatrixQR + @{ + */ + +/** + @brief QR decomposition of a m x n floating point matrix with m >= n. + @param[in] pSrc points to input matrix structure. The source matrix is modified by the function. + @param[in] threshold norm2 threshold. + @param[out] pOutR points to output R matrix structure of dimension m x n + @param[out] pOutQ points to output Q matrix structure of dimension m x m (can be NULL) + @param[out] pOutTau points to Householder scaling factors of dimension n + @param[inout] pTmpA points to a temporary vector of dimension m. + @param[inout] pTmpB points to a temporary vector of dimension m. + @return execution status + - \ref ARM_MATH_SUCCESS : Operation successful + - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed + + @par pOutQ is optional: + pOutQ can be a NULL pointer. + In this case, the argument will be ignored + and the output Q matrix won't be computed. + + + @par Norm2 threshold + For the meaning of this argument please + refer to the \ref MatrixHouseholder documentation + + */ + +arm_status arm_mat_qr_f32( + const arm_matrix_instance_f32 * pSrc, + const float32_t threshold, + arm_matrix_instance_f32 * pOutR, + arm_matrix_instance_f32 * pOutQ, + float32_t * pOutTau, + float32_t *pTmpA, + float32_t *pTmpB + ) + +{ + + + uint32_t col=0; + int32_t nb,pos; + float32_t *pa,*pc; + float32_t beta; + float32_t *pv; + float32_t *pdst; + float32_t *p; + float32_t sum; + + if (pSrc->numRows < pSrc->numCols) + { + return(ARM_MATH_SIZE_MISMATCH); + } + + memcpy(pOutR->pData,pSrc->pData,pSrc->numCols * pSrc->numRows*sizeof(float32_t)); + pOutR->numCols = pSrc->numCols; + pOutR->numRows = pSrc->numRows; + + p = pOutR->pData; + + pc = pOutTau; + for(col=0 ; col < pSrc->numCols; col++) + { + uint32_t i,j,k; + COPY_COL_F32(pOutR,col,col,pTmpA); + + beta = arm_householder_f32(pTmpA,threshold,pSrc->numRows - col,pTmpA); + *pc++ = beta; + + pdst = pTmpB; + + /* v.T A(col:,col:) -> tmpb */ + for(j=0;jnumCols-col; j++) + { + pa = p+j; + pv = pTmpA; + sum = 0.0f; + for(k=0;knumRows-col; k++) + { + sum += *pv++ * *pa; + pa += pOutR->numCols; + } + *pdst++ = sum; + } + + /* A(col:,col:) - beta v tmpb */ + pa = p; + for(j=0;jnumRows-col; j++) + { + for(i=0;inumCols-col; i++) + { + *pa = *pa - beta * pTmpA[j] * pTmpB[i] ; + pa++; + } + pa += col; + } + + /* Copy Householder reflectors into R matrix */ + pa = p + pOutR->numCols; + for(k=0;knumRows-col-1; k++) + { + *pa = pTmpA[k+1]; + pa += pOutR->numCols; + } + + p += 1 + pOutR->numCols; + } + + /* Generate Q if requested by user matrix */ + + if (pOutQ != NULL) + { + /* Initialize Q matrix to identity */ + memset(pOutQ->pData,0,sizeof(float32_t)*pOutQ->numRows*pOutQ->numRows); + + pa = pOutQ->pData; + for(col=0 ; col < pOutQ->numCols; col++) + { + *pa = 1.0f; + pa += pOutQ->numCols+1; + } + + nb = pOutQ->numRows - pOutQ->numCols + 1; + + pc = pOutTau + pOutQ->numCols - 1; + for(col=0 ; col < pOutQ->numCols; col++) + { + int32_t i,j,k; + pos = pSrc->numRows - nb; + p = pOutQ->pData + pos + pOutQ->numCols*pos ; + + + COPY_COL_F32(pOutR,pos,pos,pTmpA); + pTmpA[0] = 1.0f; + pdst = pTmpB; + + /* v.T A(col:,col:) -> tmpb */ + for(j=0;jnumRows-pos; j++) + { + pa = p+j; + pv = pTmpA; + sum = 0.0f; + for(k=0;knumRows-pos; k++) + { + sum += *pv++ * *pa; + pa += pOutQ->numCols; + } + *pdst++ = sum; + } + + pa = p; + beta = *pc--; + for(j=0;jnumRows-pos; j++) + { + for(i=0;inumCols-pos; i++) + { + *pa = *pa - beta * pTmpA[j] * pTmpB[i] ; + pa++; + } + pa += pos; + } + + + nb++; + } + } + + arm_status status = ARM_MATH_SUCCESS; + /* Return to application */ + return (status); +} + + +/** + @} end of MatrixQR group + */ diff --git a/Source/MatrixFunctions/arm_mat_qr_f64.c b/Source/MatrixFunctions/arm_mat_qr_f64.c new file mode 100644 index 0000000000000000000000000000000000000000..e056f7706aca7b3b52ff6307994310cbb36642a5 --- /dev/null +++ b/Source/MatrixFunctions/arm_mat_qr_f64.c @@ -0,0 +1,216 @@ +/* ---------------------------------------------------------------------- + * Project: CMSIS DSP Library + * Title: arm_mat_qr_f64.c + * Description: Double floating-point matrix QR decomposition. + * + * $Date: 15 June 2022 + * $Revision: V1.11.0 + * + * Target Processor: Cortex-M and Cortex-A cores + * -------------------------------------------------------------------- */ +/* + * Copyright (C) 2010-2022 ARM Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dsp/matrix_functions.h" +#include "dsp/matrix_utils.h" + + +/** + @ingroup groupMatrix + */ + + +/** + @addtogroup MatrixQR + @{ + */ + +/** + @brief QR decomposition of a m x n double floating point matrix with m >= n. + @param[in] pSrc points to input matrix structure. The source matrix is modified by the function. + @param[in] threshold norm2 threshold. + @param[out] pOutR points to output R matrix structure of dimension m x n + @param[out] pOutQ points to output Q matrix structure of dimension m x m (can be NULL) + @param[out] pOutTau points to Householder scaling factors of dimension n + @param[inout] pTmpA points to a temporary vector of dimension m. + @param[inout] pTmpB points to a temporary vector of dimension m. + @return execution status + - \ref ARM_MATH_SUCCESS : Operation successful + - \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed + + @par pOutQ is optional: + pOutQ can be a NULL pointer. + In this case, the argument will be ignored + and the output Q matrix won't be computed. + + + @par Norm2 threshold + For the meaning of this argument please + refer to the \ref MatrixHouseholder documentation + + */ + +arm_status arm_mat_qr_f64( + const arm_matrix_instance_f64 * pSrc, + const float64_t threshold, + arm_matrix_instance_f64 * pOutR, + arm_matrix_instance_f64 * pOutQ, + float64_t * pOutTau, + float64_t *pTmpA, + float64_t *pTmpB + ) + +{ + + + uint32_t col=0; + int32_t nb,pos; + float64_t *pa,*pc; + float64_t beta; + float64_t *pv; + float64_t *pdst; + float64_t *p; + float64_t sum; + + if (pSrc->numRows < pSrc->numCols) + { + return(ARM_MATH_SIZE_MISMATCH); + } + + memcpy(pOutR->pData,pSrc->pData,pSrc->numCols * pSrc->numRows*sizeof(float64_t)); + pOutR->numCols = pSrc->numCols; + pOutR->numRows = pSrc->numRows; + + p = pOutR->pData; + + pc = pOutTau; + for(col=0 ; col < pSrc->numCols; col++) + { + uint32_t i,j,k; + COPY_COL_F64(pOutR,col,col,pTmpA); + + beta = arm_householder_f64(pTmpA,threshold,pSrc->numRows - col,pTmpA); + *pc++ = beta; + + pdst = pTmpB; + + /* v.T A(col:,col:) -> tmpb */ + for(j=0;jnumCols-col; j++) + { + pa = p+j; + pv = pTmpA; + sum = 0.0; + for(k=0;knumRows-col; k++) + { + sum += *pv++ * *pa; + pa += pOutR->numCols; + } + *pdst++ = sum; + } + + /* A(col:,col:) - beta v tmpb */ + pa = p; + for(j=0;jnumRows-col; j++) + { + for(i=0;inumCols-col; i++) + { + *pa = *pa - beta * pTmpA[j] * pTmpB[i] ; + pa++; + } + pa += col; + } + + /* Copy Householder reflectors into R matrix */ + pa = p + pOutR->numCols; + for(k=0;knumRows-col-1; k++) + { + *pa = pTmpA[k+1]; + pa += pOutR->numCols; + } + + p += 1 + pOutR->numCols; + } + + /* Generate Q if requested by user matrix */ + + if (pOutQ != NULL) + { + /* Initialize Q matrix to identity */ + memset(pOutQ->pData,0,sizeof(float64_t)*pOutQ->numRows*pOutQ->numRows); + + pa = pOutQ->pData; + for(col=0 ; col < pOutQ->numCols; col++) + { + *pa = 1.0; + pa += pOutQ->numCols+1; + } + + nb = pOutQ->numRows - pOutQ->numCols + 1; + + pc = pOutTau + pOutQ->numCols - 1; + for(col=0 ; col < pOutQ->numCols; col++) + { + int32_t i,j,k; + pos = pSrc->numRows - nb; + p = pOutQ->pData + pos + pOutQ->numCols*pos ; + + + COPY_COL_F64(pOutR,pos,pos,pTmpA); + pTmpA[0] = 1.0; + pdst = pTmpB; + + /* v.T A(col:,col:) -> tmpb */ + for(j=0;jnumRows-pos; j++) + { + pa = p+j; + pv = pTmpA; + sum = 0.0; + for(k=0;knumRows-pos; k++) + { + sum += *pv++ * *pa; + pa += pOutQ->numCols; + } + *pdst++ = sum; + } + + pa = p; + beta = *pc--; + for(j=0;jnumRows-pos; j++) + { + for(i=0;inumCols-pos; i++) + { + *pa = *pa - beta * pTmpA[j] * pTmpB[i] ; + pa++; + } + pa += pos; + } + + + nb++; + } + } + + arm_status status = ARM_MATH_SUCCESS; + /* Return to application */ + return (status); +} + + +/** + @} end of MatrixQR group + */ diff --git a/Testing/Include/Tests/UnaryTestsF16.h b/Testing/Include/Tests/UnaryTestsF16.h index 4c7f46889c8bc7ae9baed4ce489b1b6c5671f2d1..ffb101341afe5fe5593a27240bf924ecb4499615 100755 --- a/Testing/Include/Tests/UnaryTestsF16.h +++ b/Testing/Include/Tests/UnaryTestsF16.h @@ -14,14 +14,26 @@ class UnaryTestsF16:public Client::Suite Client::Pattern input1; Client::Pattern input2; Client::Pattern ref; + Client::Pattern refBeta; + Client::Pattern refTau; + Client::Pattern refR; + Client::Pattern refQ; + Client::Pattern dims; Client::LocalPattern output; + Client::LocalPattern outputBeta; + + Client::LocalPattern outputTau; + Client::LocalPattern outputR; + Client::LocalPattern outputQ; /* Local copies of inputs since matrix instance in CMSIS-DSP are not using pointers to const. */ Client::LocalPattern a; Client::LocalPattern b; + Client::LocalPattern c; + Client::LocalPattern d; int nbr; int nbc; @@ -29,4 +41,6 @@ class UnaryTestsF16:public Client::Suite arm_matrix_instance_f16 in1; arm_matrix_instance_f16 in2; arm_matrix_instance_f16 out; + arm_matrix_instance_f16 outQ; + arm_matrix_instance_f16 outR; }; diff --git a/Testing/Include/Tests/UnaryTestsF32.h b/Testing/Include/Tests/UnaryTestsF32.h index 2e1649703230b7596272cecd96ea0a346849c2dd..884c258dee22da1ca9fe14636b22c29166d6d1c5 100755 --- a/Testing/Include/Tests/UnaryTestsF32.h +++ b/Testing/Include/Tests/UnaryTestsF32.h @@ -17,13 +17,23 @@ class UnaryTestsF32:public Client::Suite Client::Pattern input1; Client::Pattern input2; Client::Pattern ref; + Client::Pattern refBeta; + Client::Pattern refll; Client::Pattern refd; Client::Pattern refp; + Client::Pattern refTau; + Client::Pattern refR; + Client::Pattern refQ; Client::Pattern dims; Client::LocalPattern output; + Client::LocalPattern outputBeta; + + Client::LocalPattern outputTau; + Client::LocalPattern outputR; + Client::LocalPattern outputQ; Client::LocalPattern outputll; Client::LocalPattern outputd; @@ -50,6 +60,8 @@ class UnaryTestsF32:public Client::Suite arm_matrix_instance_f32 in2; arm_matrix_instance_f32 out; + arm_matrix_instance_f32 outQ; + arm_matrix_instance_f32 outR; arm_matrix_instance_f32 outll; arm_matrix_instance_f32 outd; diff --git a/Testing/Include/Tests/UnaryTestsF64.h b/Testing/Include/Tests/UnaryTestsF64.h index 29c0a5f0ae6d1e47c9c27bfeeaed365bb1b2eec4..4f7b22d8837f953173a81f83518838b1077bf21e 100755 --- a/Testing/Include/Tests/UnaryTestsF64.h +++ b/Testing/Include/Tests/UnaryTestsF64.h @@ -17,18 +17,28 @@ class UnaryTestsF64:public Client::Suite Client::Pattern input1; Client::Pattern input2; Client::Pattern ref; + Client::Pattern refBeta; + Client::Pattern refll; Client::Pattern refd; Client::Pattern refp; + Client::Pattern refTau; + Client::Pattern refR; + Client::Pattern refQ; Client::Pattern dims; Client::LocalPattern output; + Client::LocalPattern outputBeta; Client::LocalPattern outputll; Client::LocalPattern outputd; Client::LocalPattern outputp; + Client::LocalPattern outputTau; + Client::LocalPattern outputR; + Client::LocalPattern outputQ; + /* Local copies of inputs since matrix instance in CMSIS-DSP are not using pointers to const. */ @@ -52,6 +62,8 @@ class UnaryTestsF64:public Client::Suite arm_matrix_instance_f64 outll; arm_matrix_instance_f64 outd; + arm_matrix_instance_f64 outQ; + arm_matrix_instance_f64 outR; float64_t *outa; float64_t *outb; diff --git a/Testing/PatternGeneration/Matrix.py b/Testing/PatternGeneration/Matrix.py index 8d04d126af0b71435debe84625b01ea285c4b2ce..c264d5a784dfdecb34ec7679d4fd1c250206e26e 100755 --- a/Testing/PatternGeneration/Matrix.py +++ b/Testing/PatternGeneration/Matrix.py @@ -5,6 +5,7 @@ import Tools import numpy.linalg import math import scipy.linalg +import QR def cartesian(*somelists): r=[] @@ -685,7 +686,6 @@ def notnull(x): return(x) def writeUnaryTests(config,format): - config.setOverwrite(False) # For benchmarks NBSAMPLES=NBA*NBB NBVECSAMPLES = NBB @@ -790,8 +790,7 @@ def writeUnaryTests(config,format): dims=[1,2,3,4,7,8,9,15,16,17,32,33] # - if format == Tools.F32 or format == Tools.F16 or format == Tools.F64: - config.setOverwrite(True) + vals = [] inp=[] @@ -812,7 +811,6 @@ def writeUnaryTests(config,format): config.writeInput(1, inp,"InputInvert") config.writeReference(1, vals,"RefInvert") - config.setOverwrite(False) # One kind of matrix shape # Cholesky and LDLT definite positive (DPO) @@ -916,7 +914,6 @@ def writeUnaryTests(config,format): config.writeReferenceS16(1, permvals,"RefLDLT_PERM_SDPO") # Lower and upper triangular - config.setOverwrite(True) thedims=[] theltmatrix=[] theutmatrix=[] @@ -962,10 +959,202 @@ def writeUnaryTests(config,format): config.writeReference(1, theltinvs,"RefLTSolve") config.writeReference(1, theutinvs,"RefUTSolve") config.writeInputS16(1, thedims,"DimsLTSolve") - config.setOverwrite(False) + +def okQRConfig(args): + rows,cols,rank=args + maxDim=max(rows,cols) + return((rank<=maxDim) and (rows >= cols)) + + + +def testHouseholder(config,format): + sizes=[Tools.loopnb(format,Tools.TAILONLY), + Tools.loopnb(format,Tools.BODYONLY), + Tools.loopnb(format,Tools.BODYANDTAIL) + ] + + thedims=[] + theInput=[] + theOutputVector=[] + theOutputValue=[] + + for s in sizes: + x = np.random.randn(s) + x = Tools.normalize(x) + + v,beta=QR.householder(x) + + thedims.append(s) + theInput += list(np.array(x).reshape(s)) + theOutputVector += list(np.array(v).reshape(s)) + theOutputValue.append(beta) + + s = 4 + x = np.array([1,0,0,0]) + + v,beta=QR.householder(x) + + thedims.append(s) + theInput += list(np.array(x).reshape(s)) + theOutputVector += list(np.array(v).reshape(s)) + theOutputValue.append(beta) + + + x = np.array([-1,0,0,0]) + + v,beta=QR.householder(x) + + thedims.append(s) + theInput += list(np.array(x).reshape(s)) + theOutputVector += list(np.array(v).reshape(s)) + theOutputValue.append(beta) + + config.writeInputS16(1, thedims,"DimsHouseholder") + config.writeInput(1, theInput,"InputVectorHouseHolder") + config.writeReference(1, theOutputVector,"RefVectorHouseholder") + config.writeReference(1, theOutputValue,"RefValueHouseholder") + + +# Check that the matrix is an orthogonal one +def checkOrtho(A): + product = A.T.dot(A) + #print(A) + np.fill_diagonal(product,0) + #print(product) + return (np.all(np.abs(product)<1e-10)) + +# Check the result of the QR algorithm implemented +# in python. +# We must have M = Q R and Q orthogonal +# In f16, on some mqtrix the accuracy is +# very bad so the test is relaxed a lot +def checkMyQR(m,q,r,format): + # Check that M = QR + # Q is Orthogonal + nm = np.dot(q,r) + rtol = 1e-14 + atol = 1e-13 + if format == Tools.F16: + rtol = 3e-2 + atol = 3e-2 + if not (np.allclose(nm,m,rtol=rtol,atol=atol)): + print(np.max(np.abs(nm-m))) + print(np.max(atol + rtol * np.abs(m))) + assert (np.allclose(nm,m,rtol=rtol,atol=atol)) + assert (checkOrtho(q)) + + +# Generate patterns for QR decomposition +def testQR(config,format): + eps=1e-16 + if format==Tools.F32: + eps=1e-12 + if format==Tools.F16: + eps=1.0e-3 + thedims=[] + theMatrix=[] + theRefR=[] + theRefQ=[] + theRefTau=[] + + sizes=[Tools.loopnb(format,Tools.TAILONLY), + Tools.loopnb(format,Tools.BODYONLY), + Tools.loopnb(format,Tools.BODYANDTAIL) + ] + ranks=[1,Tools.loopnb(format,Tools.TAILONLY), + Tools.loopnb(format,Tools.BODYONLY), + Tools.loopnb(format,Tools.BODYANDTAIL)] + + allConfigs=cartesian(sizes,sizes,ranks) + allConfigs=list(filter(okQRConfig,allConfigs)) + + for c in allConfigs: + rows,cols,rank = c + thedims += [rows,cols,rank] + m = QR.randomIsometry(rows,cols,rank) + theMatrix += list(np.array(m).reshape(rows*cols)) + + #q,r = numpy.linalg.qr(m,mode='complete') + #h,tau = numpy.linalg.qr(m,mode='raw') + + q,r,tau,h = QR.QR(m,eps=eps) + # Used to check that the reference Python + # implementation for QR is correct: + checkMyQR(m,q,r,format) + + #print(r) + for i in range(cols): + try: + r[i+1:,i] = h[i][1:] + except: + print(h) + print(r) + print(i) + print(r[1:,i]) + print(h[i][1:]) + raise + + #print(m) + #print(h) + #print("") + #print(r) + #print("--------\n\n") + + + + theRefTau += list(np.array(tau).reshape(cols)) + theRefR += list(np.array(r).reshape(rows*cols)) + theRefQ += list(np.array(q).reshape(rows*rows)) + + for d in sizes: + m = QR.kahan_matrix(d) + thedims += [d,d,d] + + theMatrix += list(np.array(m).reshape(d*d)) + #q,r = numpy.linalg.qr(m,mode='complete') + #h,tau = numpy.linalg.qr(m,mode='raw') + q,r,tau,h = QR.QR(m,eps=eps) + # Used to check that the reference Python + # implementation for QR is correct: + checkMyQR(m,q,r,format) + + for i in range(d): + try: + r[i+1:,i] = h[i][1:] + except: + print(h) + print(r) + print(i) + raise + theRefTau += list(np.array(tau).reshape(d)) + theRefR += list(np.array(r).reshape(d*d)) + theRefQ += list(np.array(q).reshape(d*d)) + + config.writeInputS16(1, thedims,"DimsQR") + config.writeInput(1, theMatrix,"InputMatrixQR") + + config.writeReference(1, theRefTau,"RefTau") + config.writeReference(1, theRefR,"RefR") + config.writeReference(1, theRefQ,"RefQ") + + + + +def checkHouseholder(h): + v,beta=h + n = len(v) + #print(v) + #print(beta) + v=v[np.newaxis] + + p=np.identity(n)-beta * v.T .dot(v) + #print("P") + #print(p) + print(checkOrtho(p)) def generatePatterns(): + PATTERNBINDIR = os.path.join("Patterns","DSP","Matrix","Binary","Binary") PARAMBINDIR = os.path.join("Parameters","DSP","Matrix","Binary","Binary") @@ -984,12 +1173,12 @@ def generatePatterns(): configBinaryq7.setOverwrite(False) - writeBinaryTests(configBinaryf64,Tools.F32) - writeBinaryTests(configBinaryf32,Tools.F32) - writeBinaryTests(configBinaryf16,Tools.F16) - writeBinaryTests(configBinaryq31,Tools.Q31) - writeBinaryTests(configBinaryq15,Tools.Q15) - writeBinaryTests(configBinaryq7,Tools.Q7) + #writeBinaryTests(configBinaryf64,Tools.F32) + #writeBinaryTests(configBinaryf32,Tools.F32) + #writeBinaryTests(configBinaryf16,Tools.F16) + #writeBinaryTests(configBinaryq31,Tools.Q31) + #writeBinaryTests(configBinaryq15,Tools.Q15) + #writeBinaryTests(configBinaryq7,Tools.Q7) PATTERNUNDIR = os.path.join("Patterns","DSP","Matrix","Unary","Unary") PARAMUNDIR = os.path.join("Parameters","DSP","Matrix","Unary","Unary") @@ -1008,13 +1197,29 @@ def generatePatterns(): configUnaryq15.setOverwrite(False) configUnaryq7.setOverwrite(False) - writeUnaryTests(configUnaryf64,Tools.F64) - writeUnaryTests(configUnaryf32,Tools.F32) - writeUnaryTests(configUnaryf16,Tools.F16) - writeUnaryTests(configUnaryq31,Tools.Q31) - writeUnaryTests(configUnaryq31,Tools.Q31) - writeUnaryTests(configUnaryq15,Tools.Q15) - writeUnaryTests(configUnaryq7,Tools.Q7) + #writeUnaryTests(configUnaryf64,Tools.F64) + #writeUnaryTests(configUnaryf32,Tools.F32) + #writeUnaryTests(configUnaryf16,Tools.F16) + #writeUnaryTests(configUnaryq31,Tools.Q31) + #writeUnaryTests(configUnaryq31,Tools.Q31) + #writeUnaryTests(configUnaryq15,Tools.Q15) + #writeUnaryTests(configUnaryq7,Tools.Q7) + + #configUnaryf64.setOverwrite(True) + #configUnaryf32.setOverwrite(True) + #configUnaryf16.setOverwrite(True) + testQR(configUnaryf64,Tools.F64) + testQR(configUnaryf32,Tools.F32) + testQR(configUnaryf16,Tools.F16) + #testHouseholder(configUnaryf64,Tools.F32) + #testHouseholder(configUnaryf32,Tools.F32) + #testHouseholder(configUnaryf16,Tools.F32) + + + + + + if __name__ == '__main__': - generatePatterns() \ No newline at end of file + generatePatterns() diff --git a/Testing/PatternGeneration/QR.py b/Testing/PatternGeneration/QR.py new file mode 100644 index 0000000000000000000000000000000000000000..48518eb4d9d5da31ab0160000d11ff6d8c7d1408 --- /dev/null +++ b/Testing/PatternGeneration/QR.py @@ -0,0 +1,96 @@ +import numpy as np +import Tools +from numpy.linalg import qr +import math + +def randomIsometry(rows,cols,rank): + if rank==1: + r=np.random.randn(rows) + r = Tools.normalize(r)[np.newaxis] + c=np.random.randn(cols) + c = Tools.normalize(c)[np.newaxis] + result=r.T.dot(c) + else: + a = np.random.randn(rows,rows) + b = np.random.randn(cols,cols) + + diagDim = min(rows,cols) + d = np.zeros((rows,cols)) + + diag = np.ones(diagDim) + diag[rank:] = 0 + np.fill_diagonal(d,diag) + + qa,_ = qr(a) + qb,_ = qr(b) + + result = qa .dot(d.dot(qb)) + return(result) + +def kahan_matrix(rows): + cols = rows + eps = np.finfo(np.float32).eps + s = math.pow(eps,1.0/rows) + c = math.sqrt(1-s*s) + m = np.zeros((rows,cols)) + sc = 1.0 + + for i in range(rows-1): + m[i,i] = sc + m[i,i+1:] = - sc * c * np.ones(rows-i-1) + sc = sc * s + + m = m + m.T + + return(m) + +def householder(x,eps=1e-16): + #print(x) + v=np.hstack([[1],x[1:]]) + + alpha = x[0] + xnorm2=x[1:].dot(x[1:]) + epsilon=eps + + #print(sigma) + + if xnorm2<=epsilon: + tau = 0.0 + v = np.zeros(len(x)) + else: + if np.sign(alpha) <= 0: + beta = math.sqrt(alpha*alpha + xnorm2) + else: + beta = -math.sqrt(alpha*alpha + xnorm2) + + r = (alpha - beta) + v = x / r + tau = (beta - alpha) / beta + v[0] = 1 + + return(v,tau) + +def QR(oldm,eps=1e-16): + m=np.copy(oldm) + (rows,cols) = m.shape + hvects=[] + tau=[] + h=[] + for c in range(cols): + currentSize = rows - c + v,beta=householder(m[c:,c],eps=eps) + tau.append(beta) + h.append(v) + hvects.append((v,beta)) + t = np.identity(currentSize) - beta * np.outer(v,v) + m[c:,c:] = np.dot(t,m[c:,c:]) + + hvects.reverse() + q=np.identity(rows) + c=cols - 1 + for (v,beta) in hvects: + t = np.identity(len(v)) - beta * np.outer(v,v) + q[c:,c:] = np.dot(t,q[c:,c:]) + c = c - 1 + + return(q,m,tau,h) \ No newline at end of file diff --git a/Testing/PatternGeneration/Tools.py b/Testing/PatternGeneration/Tools.py index 27313c1dce3b65ce12fb660c1bff5096b37ca482..be7d64bf056c577f8cb6acc9b81d44c26b690140 100755 --- a/Testing/PatternGeneration/Tools.py +++ b/Testing/PatternGeneration/Tools.py @@ -21,7 +21,7 @@ Q7 = 7 def loopnb(format,loopkind): nb = 0 if loopkind == TAILONLY: - if format == 64 or format == Tools.Q63: + if format == 64 or format == Q63: nb = 2 if format == 0 or format == 31: nb = 3 @@ -30,7 +30,7 @@ def loopnb(format,loopkind): if format == 7: nb = 15 if loopkind == BODYONLY: - if format == 64 or format == Tools.Q63: + if format == 64 or format == Q63: nb = 4 if format == 0 or format == 31: nb = 8 @@ -39,7 +39,7 @@ def loopnb(format,loopkind): if format == 7: nb = 32 if loopkind == BODYANDTAIL: - if format == 64 or format == Tools.Q63: + if format == 64 or format == Q63: nb = 5 if format == 0 or format == 31: nb = 11 # 9 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/DimsHouseholder1_s16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/DimsHouseholder1_s16.txt new file mode 100644 index 0000000000000000000000000000000000000000..3cac51d106b83245619535012119233c2eaba182 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/DimsHouseholder1_s16.txt @@ -0,0 +1,12 @@ +H +5 +// 3 +0x0003 +// 8 +0x0008 +// 11 +0x000B +// 4 +0x0004 +// 4 +0x0004 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/DimsQR1_s16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/DimsQR1_s16.txt new file mode 100644 index 0000000000000000000000000000000000000000..0a48f09018dc718e7b4026091332342151a867a4 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/DimsQR1_s16.txt @@ -0,0 +1,140 @@ +H +69 +// 7 +0x0007 +// 7 +0x0007 +// 1 +0x0001 +// 7 +0x0007 +// 7 +0x0007 +// 7 +0x0007 +// 16 +0x0010 +// 7 +0x0007 +// 1 +0x0001 +// 16 +0x0010 +// 7 +0x0007 +// 7 +0x0007 +// 16 +0x0010 +// 7 +0x0007 +// 16 +0x0010 +// 16 +0x0010 +// 16 +0x0010 +// 1 +0x0001 +// 16 +0x0010 +// 16 +0x0010 +// 7 +0x0007 +// 16 +0x0010 +// 16 +0x0010 +// 16 +0x0010 +// 23 +0x0017 +// 7 +0x0007 +// 1 +0x0001 +// 23 +0x0017 +// 7 +0x0007 +// 7 +0x0007 +// 23 +0x0017 +// 7 +0x0007 +// 16 +0x0010 +// 23 +0x0017 +// 7 +0x0007 +// 23 +0x0017 +// 23 +0x0017 +// 16 +0x0010 +// 1 +0x0001 +// 23 +0x0017 +// 16 +0x0010 +// 7 +0x0007 +// 23 +0x0017 +// 16 +0x0010 +// 16 +0x0010 +// 23 +0x0017 +// 16 +0x0010 +// 23 +0x0017 +// 23 +0x0017 +// 23 +0x0017 +// 1 +0x0001 +// 23 +0x0017 +// 23 +0x0017 +// 7 +0x0007 +// 23 +0x0017 +// 23 +0x0017 +// 16 +0x0010 +// 23 +0x0017 +// 23 +0x0017 +// 23 +0x0017 +// 7 +0x0007 +// 7 +0x0007 +// 7 +0x0007 +// 16 +0x0010 +// 16 +0x0010 +// 16 +0x0010 +// 23 +0x0017 +// 23 +0x0017 +// 23 +0x0017 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/InputMatrixQR1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/InputMatrixQR1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..2df10c5fb5e0e761edbef57b129e43fcc68dc138 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/InputMatrixQR1_f16.txt @@ -0,0 +1,12538 @@ +H +6268 +// 0.194226 +0x3237 +// -0.338752 +0xb56c +// 0.100293 +0x2e6b +// -0.140017 +0xb07b +// -0.233258 +0xb377 +// 0.018390 +0x24b5 +// -0.052353 +0xaab3 +// 0.426716 +0x36d4 +// -0.744240 +0xb9f4 +// 0.220345 +0x330d +// -0.307618 +0xb4ec +// -0.512469 +0xb81a +// 0.040402 +0x292c +// -0.115019 +0xaf5c +// -0.209413 +0xb2b4 +// 0.365240 +0x35d8 +// -0.108136 +0xaeec +// 0.150965 +0x30d5 +// 0.251498 +0x3406 +// -0.019828 +0xa513 +// 0.056446 +0x2b3a +// 0.573358 +0x3896 +// -1.000000 +0xbc00 +// 0.296068 +0x34bd +// -0.413331 +0xb69d +// -0.688581 +0xb982 +// 0.054286 +0x2af3 +// -0.154545 +0xb0f2 +// 0.076220 +0x2ce1 +// -0.132937 +0xb041 +// 0.039358 +0x290a +// -0.054947 +0xab09 +// -0.091538 +0xaddc +// 0.007217 +0x1f64 +// -0.020545 +0xa542 +// -0.079051 +0xad0f +// 0.137873 +0x3069 +// -0.040820 +0xa93a +// 0.056987 +0x2b4b +// 0.094937 +0x2e13 +// -0.007485 +0x9faa +// 0.021308 +0x2574 +// -0.048781 +0xaa3e +// 0.085080 +0x2d72 +// -0.025189 +0xa673 +// 0.035166 +0x2880 +// 0.058585 +0x2b80 +// -0.004619 +0x9cbb +// 0.013149 +0x22bb +// 0.112908 +0x2f3a +// 0.409909 +0x368f +// -0.065171 +0xac2c +// -0.553697 +0xb86e +// -0.238556 +0xb3a2 +// -0.495415 +0xb7ed +// -0.453931 +0xb743 +// 0.331607 +0x354e +// 0.675293 +0x3967 +// 0.137801 +0x3069 +// 0.158917 +0x3116 +// -0.233301 +0xb377 +// 0.578316 +0x38a0 +// -0.029903 +0xa7a8 +// -0.064914 +0xac28 +// 0.249276 +0x33fa +// 0.150654 +0x30d2 +// 0.777853 +0x3a39 +// -0.028472 +0xa74a +// -0.524017 +0xb831 +// -0.174617 +0xb196 +// 0.079528 +0x2d17 +// -0.342677 +0xb57c +// -0.183540 +0xb1e0 +// 0.130634 +0x302e +// -0.906920 +0xbb41 +// -0.000663 +0x916e +// 0.054683 +0x2b00 +// 0.804783 +0x3a70 +// -0.277114 +0xb46f +// 0.464909 +0x3770 +// -0.040972 +0xa93f +// 0.081894 +0x2d3e +// -0.198824 +0xb25d +// 0.107125 +0x2edb +// 0.299034 +0x34c9 +// 0.260835 +0x342c +// -0.629068 +0xb908 +// 0.025451 +0x2684 +// 0.095398 +0x2e1b +// -0.263300 +0xb436 +// 0.606417 +0x38da +// 0.360073 +0x35c3 +// -0.227071 +0xb344 +// -0.555440 +0xb872 +// 0.209087 +0x32b1 +// 0.222573 +0x331f +// 0.191476 +0x3221 +// -0.616728 +0xb8ef +// 0.000112 +0x759 +// -0.144180 +0xb09d +// -0.140794 +0xb081 +// -0.017404 +0xa475 +// -0.074455 +0xacc4 +// -0.238971 +0xb3a6 +// -0.003118 +0x9a63 +// -0.000207 +0x8ac4 +// 0.265616 +0x3440 +// 0.259377 +0x3426 +// 0.032062 +0x281b +// 0.137164 +0x3064 +// 0.440243 +0x370b +// 0.005744 +0x1de2 +// 0.000016 +0x10b +// -0.020445 +0xa53c +// -0.019965 +0xa51c +// -0.002468 +0x990e +// -0.010558 +0xa168 +// -0.033887 +0xa856 +// -0.000442 +0x8f3e +// 0.000469 +0xfaf +// -0.603339 +0xb8d4 +// -0.589168 +0xb8b7 +// -0.072827 +0xaca9 +// -0.311564 +0xb4fc +// -1.000000 +0xbc00 +// -0.013048 +0xa2ae +// -0.000267 +0x8c60 +// 0.343373 +0x357e +// 0.335308 +0x355d +// 0.041447 +0x294e +// 0.177318 +0x31ad +// 0.569121 +0x388e +// 0.007426 +0x1f9b +// -0.000195 +0x8a68 +// 0.251448 +0x3406 +// 0.245542 +0x33db +// 0.030351 +0x27c5 +// 0.129847 +0x3028 +// 0.416760 +0x36ab +// 0.005438 +0x1d91 +// 0.000070 +0x491 +// -0.089639 +0xadbd +// -0.087533 +0xad9a +// -0.010820 +0xa18a +// -0.046289 +0xa9ed +// -0.148571 +0xb0c1 +// -0.001938 +0x97f1 +// -0.000203 +0x8aa7 +// 0.261123 +0x342e +// 0.254990 +0x3414 +// 0.031519 +0x2809 +// 0.134844 +0x3051 +// 0.432796 +0x36ed +// 0.005647 +0x1dc8 +// 0.000074 +0x4d9 +// -0.095116 +0xae16 +// -0.092882 +0xadf2 +// -0.011481 +0xa1e1 +// -0.049118 +0xaa49 +// -0.157650 +0xb10b +// -0.002057 +0x9836 +// 0.000260 +0xc44 +// -0.334991 +0xb55c +// -0.327123 +0xb53c +// -0.040436 +0xa92d +// -0.172989 +0xb189 +// -0.555228 +0xb871 +// -0.007244 +0x9f6b +// 0.000081 +0x54f +// -0.104219 +0xaeac +// -0.101772 +0xae83 +// -0.012580 +0xa271 +// -0.053819 +0xaae4 +// -0.172738 +0xb187 +// -0.002254 +0x989e +// 0.000251 +0xc1b +// -0.322354 +0xb528 +// -0.314783 +0xb509 +// -0.038910 +0xa8fb +// -0.166464 +0xb154 +// -0.534284 +0xb846 +// -0.006971 +0x9f23 +// -0.000152 +0x88fa +// 0.195311 +0x3240 +// 0.190724 +0x321a +// 0.023575 +0x2609 +// 0.100859 +0x2e74 +// 0.323717 +0x352e +// 0.004224 +0x1c53 +// -0.000334 +0x8d79 +// 0.429777 +0x36e0 +// 0.419682 +0x36b7 +// 0.051877 +0x2aa4 +// 0.221936 +0x331a +// 0.712330 +0x39b3 +// 0.009294 +0x20c2 +// -0.000351 +0x8dc0 +// 0.451435 +0x3739 +// 0.440832 +0x370e +// 0.054491 +0x2afa +// 0.233121 +0x3376 +// 0.748227 +0x39fc +// 0.009763 +0x2100 +// -0.000130 +0x883f +// 0.166689 +0x3156 +// 0.162774 +0x3135 +// 0.020120 +0x2527 +// 0.086078 +0x2d82 +// 0.276277 +0x346c +// 0.003605 +0x1b62 +// 0.025235 +0x2676 +// 0.244621 +0x33d4 +// -0.064406 +0xac1f +// -0.233728 +0xb37b +// 0.323061 +0x352b +// -0.404427 +0xb679 +// -0.097915 +0xae44 +// -0.080873 +0xad2d +// -0.092144 +0xade6 +// 0.136423 +0x305e +// 0.501468 +0x3803 +// -0.190108 +0xb215 +// -0.186138 +0xb1f5 +// -0.360942 +0xb5c6 +// 0.378797 +0x3610 +// 0.168459 +0x3164 +// 0.180578 +0x31c7 +// 0.095558 +0x2e1e +// -0.117773 +0xaf8a +// 0.178570 +0x31b7 +// -0.303671 +0xb4dc +// 0.272082 +0x345a +// 0.329647 +0x3546 +// 0.269948 +0x3452 +// 0.221603 +0x3317 +// 0.279928 +0x347b +// 0.238953 +0x33a6 +// -0.284362 +0xb48d +// -0.026117 +0xa6b0 +// -0.009926 +0xa115 +// 0.318463 +0x3518 +// -0.128613 +0xb01e +// 0.028971 +0x276b +// -0.398008 +0xb65e +// 0.169196 +0x316a +// 0.302233 +0x34d6 +// -0.279323 +0xb478 +// -0.101949 +0xae86 +// 0.053796 +0x2ae3 +// 0.413108 +0x369c +// -0.182595 +0xb1d8 +// 0.264300 +0x343b +// 0.116729 +0x2f78 +// 0.067841 +0x2c58 +// 0.312853 +0x3501 +// -0.093993 +0xae04 +// 0.335547 +0x355e +// -0.073047 +0xacad +// -0.229280 +0xb356 +// 0.065506 +0x2c31 +// 0.570603 +0x3891 +// -0.566606 +0xb888 +// 0.276029 +0x346b +// -0.092294 +0xade8 +// -0.006006 +0x9e26 +// 0.130927 +0x3031 +// 0.151829 +0x30dc +// -0.210138 +0xb2b9 +// 0.295008 +0x34b8 +// 0.079863 +0x2d1c +// -0.113060 +0xaf3c +// 0.346809 +0x358d +// 0.314009 +0x3506 +// 0.259469 +0x3427 +// -0.028831 +0xa761 +// 0.043537 +0x2993 +// 0.138174 +0x306c +// -0.305798 +0xb4e5 +// -0.567487 +0xb88a +// -0.045398 +0xa9d0 +// -0.227090 +0xb344 +// -0.204750 +0xb28d +// -0.044735 +0xa9ba +// 0.024797 +0x2659 +// -0.191067 +0xb21d +// 0.135939 +0x305a +// -0.112205 +0xaf2e +// -0.039542 +0xa910 +// 0.233737 +0x337b +// 0.133354 +0x3044 +// -0.228163 +0xb34d +// -0.221155 +0xb314 +// -0.011104 +0xa1af +// 0.216753 +0x32f0 +// -0.320252 +0xb520 +// -0.234474 +0xb381 +// -0.044539 +0xa9b3 +// 0.545724 +0x385e +// 0.243602 +0x33cc +// -0.141104 +0xb084 +// -0.002915 +0x99f8 +// 0.371476 +0x35f2 +// 0.046826 +0x29fe +// 0.100359 +0x2e6c +// 0.358602 +0x35bd +// 0.006847 +0x1f03 +// 0.005703 +0x1dd7 +// 0.532591 +0x3843 +// -0.079756 +0xad1b +// -0.069521 +0xac73 +// -0.213894 +0xb2d8 +// 0.025203 +0x2674 +// 0.460723 +0x375f +// 0.185849 +0x31f2 +// -0.004605 +0x9cb7 +// 0.524344 +0x3832 +// -0.427510 +0xb6d7 +// -0.417746 +0xb6af +// -0.161280 +0xb129 +// -0.106241 +0xaecd +// 0.016676 +0x2445 +// -0.273762 +0xb461 +// 0.330338 +0x3549 +// 0.246890 +0x33e7 +// -0.111095 +0xaf1c +// -0.571441 +0xb892 +// 0.121853 +0x2fcc +// 0.253745 +0x340f +// 0.022792 +0x25d6 +// -0.049746 +0xaa5e +// 0.200115 +0x3267 +// 0.027062 +0x26ee +// 0.020825 +0x2555 +// -0.019134 +0xa4e6 +// -0.293108 +0xb4b1 +// 0.197809 +0x3254 +// -0.354119 +0xb5aa +// -0.003631 +0x9b70 +// 0.160946 +0x3126 +// -0.279391 +0xb478 +// 0.042022 +0x2961 +// -0.101987 +0xae87 +// 0.207745 +0x32a6 +// 0.308715 +0x34f0 +// 0.159329 +0x3119 +// -0.232464 +0xb370 +// -0.105127 +0xaeba +// 0.167817 +0x315f +// 0.267297 +0x3447 +// 0.275975 +0x346a +// 0.362440 +0x35cd +// 0.101354 +0x2e7d +// 0.472971 +0x3791 +// -0.010645 +0xa173 +// -0.066626 +0xac44 +// -0.248038 +0xb3f0 +// 0.250175 +0x3401 +// 0.287986 +0x349c +// 0.308641 +0x34f0 +// 0.223945 +0x332b +// 0.107839 +0x2ee7 +// -0.396743 +0xb659 +// 0.034506 +0x286b +// 0.063060 +0x2c09 +// 0.352345 +0x35a3 +// -0.051735 +0xaa9f +// 0.288042 +0x349c +// -0.291297 +0xb4a9 +// 0.133113 +0x3042 +// -0.071479 +0xac93 +// -0.431301 +0xb6e7 +// 0.025303 +0x267a +// -0.197606 +0xb253 +// 0.029077 +0x2772 +// -0.019284 +0xa4f0 +// -0.001625 +0x96a7 +// 0.181903 +0x31d2 +// -0.135221 +0xb054 +// -0.234465 +0xb381 +// 0.331231 +0x354d +// -0.202432 +0xb27a +// -0.279630 +0xb479 +// -0.137916 +0xb06a +// 0.046946 +0x2a02 +// -0.396668 +0xb659 +// 0.147745 +0x30ba +// -0.141775 +0xb089 +// -0.271631 +0xb459 +// -0.116998 +0xaf7d +// 0.417980 +0x36b0 +// -0.670252 +0xb95d +// -0.158615 +0xb113 +// 0.318045 +0x3517 +// -0.344622 +0xb584 +// 0.079248 +0x2d12 +// 0.256129 +0x3419 +// 0.098417 +0x2e4c +// 0.240678 +0x33b4 +// -0.339270 +0xb56e +// 0.246291 +0x33e2 +// 0.430679 +0x36e4 +// -0.348997 +0xb595 +// 0.499409 +0x37fe +// -0.025349 +0xa67d +// -0.159495 +0xb11b +// -0.150120 +0xb0ce +// -0.047045 +0xaa06 +// 0.139414 +0x3076 +// 0.348722 +0x3594 +// 0.180790 +0x31c9 +// 0.591557 +0x38bc +// 0.074949 +0x2ccc +// 0.197318 +0x3250 +// 0.232462 +0x3370 +// -0.233366 +0xb378 +// -0.426618 +0xb6d3 +// -0.068667 +0xac65 +// 0.035525 +0x288c +// 0.067643 +0x2c54 +// 0.446004 +0x3723 +// 0.053478 +0x2ad8 +// 0.214344 +0x32dc +// 0.046018 +0x29e4 +// -0.173233 +0xb18b +// -0.132303 +0xb03c +// -0.252289 +0xb409 +// -0.018190 +0xa4a8 +// -0.175741 +0xb1a0 +// 0.415261 +0x36a5 +// 0.027322 +0x26ff +// 0.112423 +0x2f32 +// 0.450032 +0x3733 +// 0.241437 +0x33ba +// -0.108785 +0xaef6 +// 0.065484 +0x2c31 +// 0.036631 +0x28b0 +// -0.096752 +0xae31 +// -0.047396 +0xaa11 +// -0.030429 +0xa7ca +// -0.012053 +0xa22c +// -0.015434 +0xa3e7 +// -0.001562 +0x9666 +// 0.088469 +0x2da9 +// -0.010249 +0xa13f +// -0.000822 +0x92bc +// -0.017479 +0xa47a +// -0.018634 +0xa4c5 +// -0.008822 +0xa084 +// -0.019219 +0xa4ec +// -0.017624 +0xa483 +// -0.251124 +0xb405 +// -0.140476 +0xb07f +// 0.371037 +0x35f0 +// 0.181760 +0x31d1 +// 0.116694 +0x2f78 +// 0.046224 +0x29eb +// 0.059186 +0x2b93 +// 0.005992 +0x1e23 +// -0.339270 +0xb56e +// 0.039304 +0x2908 +// 0.003153 +0x1a75 +// 0.067031 +0x2c4a +// 0.071458 +0x2c93 +// 0.033831 +0x2855 +// 0.073704 +0x2cb8 +// 0.067588 +0x2c53 +// -0.450275 +0xb734 +// -0.251879 +0xb408 +// 0.665285 +0x3953 +// 0.325904 +0x3537 +// 0.209237 +0x32b2 +// 0.082881 +0x2d4e +// 0.106124 +0x2ecb +// 0.010743 +0x2180 +// -0.608325 +0xb8de +// 0.070474 +0x2c83 +// 0.005653 +0x1dca +// 0.120189 +0x2fb1 +// 0.128127 +0x301a +// 0.060660 +0x2bc4 +// 0.132154 +0x303b +// 0.121189 +0x2fc2 +// 0.013071 +0x22b1 +// 0.007312 +0x1f7d +// -0.019313 +0xa4f2 +// -0.009461 +0xa0d8 +// -0.006074 +0x9e38 +// -0.002406 +0x98ed +// -0.003081 +0x9a4f +// -0.000312 +0x8d1c +// 0.017659 +0x2485 +// -0.002046 +0x9831 +// -0.000164 +0x8961 +// -0.003489 +0x9b25 +// -0.003719 +0x9b9e +// -0.001761 +0x9736 +// -0.003836 +0x9bdb +// -0.003518 +0x9b34 +// -0.287066 +0xb498 +// -0.160581 +0xb123 +// 0.424142 +0x36c9 +// 0.207775 +0x32a6 +// 0.133395 +0x3045 +// 0.052839 +0x2ac3 +// 0.067657 +0x2c54 +// 0.006849 +0x1f03 +// -0.387827 +0xb635 +// 0.044930 +0x29c0 +// 0.003604 +0x1b61 +// 0.076625 +0x2ce7 +// 0.081685 +0x2d3a +// 0.038673 +0x28f3 +// 0.084253 +0x2d64 +// 0.077262 +0x2cf2 +// 0.033605 +0x284d +// 0.018798 +0x24d0 +// -0.049652 +0xaa5b +// -0.024323 +0xa63a +// -0.015616 +0xa3ff +// -0.006186 +0x9e56 +// -0.007920 +0xa00e +// -0.000802 +0x9291 +// 0.045401 +0x29d0 +// -0.005260 +0x9d63 +// -0.000422 +0x8ee9 +// -0.008970 +0xa098 +// -0.009562 +0xa0e5 +// -0.004527 +0x9ca3 +// -0.009863 +0xa10d +// -0.009045 +0xa0a2 +// 0.518494 +0x3826 +// 0.290040 +0x34a4 +// -0.766079 +0xba21 +// -0.375280 +0xb601 +// -0.240937 +0xb3b6 +// -0.095438 +0xae1c +// -0.122202 +0xafd2 +// -0.012371 +0xa255 +// 0.700489 +0x399b +// -0.081151 +0xad32 +// -0.006509 +0x9eaa +// -0.138398 +0xb06e +// -0.147539 +0xb0b9 +// -0.069850 +0xac78 +// -0.152176 +0xb0df +// -0.139549 +0xb077 +// -0.618629 +0xb8f3 +// -0.346054 +0xb589 +// 0.914029 +0x3b50 +// 0.447757 +0x372a +// 0.287468 +0x3499 +// 0.113869 +0x2f4a +// 0.145802 +0x30aa +// 0.014760 +0x238f +// -0.835771 +0xbab0 +// 0.096824 +0x2e32 +// 0.007766 +0x1ff4 +// 0.165127 +0x3149 +// 0.176032 +0x31a2 +// 0.083340 +0x2d55 +// 0.181565 +0x31cf +// 0.166500 +0x3154 +// 0.357371 +0x35b8 +// 0.199909 +0x3266 +// -0.528019 +0xb839 +// -0.258661 +0xb423 +// -0.166065 +0xb150 +// -0.065780 +0xac36 +// -0.084227 +0xad64 +// -0.008527 +0xa05e +// 0.482811 +0x37ba +// -0.055934 +0xab29 +// -0.004486 +0x9c98 +// -0.095391 +0xae1b +// -0.101691 +0xae82 +// -0.048144 +0xaa2a +// -0.104887 +0xaeb6 +// -0.096184 +0xae28 +// 0.676815 +0x396a +// 0.378602 +0x360f +// -1.000000 +0xbc00 +// -0.489871 +0xb7d7 +// -0.314507 +0xb508 +// -0.124580 +0xaff9 +// -0.159516 +0xb11b +// -0.016148 +0xa422 +// 0.914381 +0x3b51 +// -0.105931 +0xaec8 +// -0.008497 +0xa05a +// -0.180658 +0xb1c8 +// -0.192590 +0xb22a +// -0.091179 +0xadd6 +// -0.198643 +0xb25b +// -0.182160 +0xb1d4 +// 0.326212 +0x3538 +// 0.182479 +0x31d7 +// -0.481981 +0xb7b6 +// -0.236109 +0xb38e +// -0.151586 +0xb0da +// -0.060045 +0xabb0 +// -0.076884 +0xacec +// -0.007783 +0x9ff8 +// 0.440715 +0x370d +// -0.051057 +0xaa89 +// -0.004095 +0x9c32 +// -0.087074 +0xad93 +// -0.092825 +0xadf1 +// -0.043946 +0xa9a0 +// -0.095742 +0xae21 +// -0.087798 +0xad9e +// -0.059181 +0xab93 +// -0.033105 +0xa83d +// 0.087440 +0x2d99 +// 0.042834 +0x297c +// 0.027501 +0x270a +// 0.010893 +0x2194 +// 0.013948 +0x2324 +// 0.001412 +0x15c9 +// -0.079954 +0xad1e +// 0.009263 +0x20be +// 0.000743 +0x1216 +// 0.015797 +0x240b +// 0.016840 +0x2450 +// 0.007973 +0x2015 +// 0.017369 +0x2472 +// 0.015928 +0x2414 +// -0.039698 +0xa915 +// -0.022207 +0xa5af +// 0.058655 +0x2b82 +// 0.028733 +0x275b +// 0.018447 +0x24b9 +// 0.007307 +0x1f7c +// 0.009356 +0x20ca +// 0.000947 +0x13c2 +// -0.053633 +0xaadd +// 0.006213 +0x1e5d +// 0.000498 +0x1015 +// 0.010596 +0x216d +// 0.011296 +0x21c9 +// 0.005348 +0x1d7a +// 0.011651 +0x21f7 +// 0.010685 +0x2178 +// 0.043260 +0x298a +// 0.024199 +0x2632 +// -0.063917 +0xac17 +// -0.031311 +0xa802 +// -0.020102 +0xa525 +// -0.007963 +0xa014 +// -0.010196 +0xa138 +// -0.001032 +0x943a +// 0.058445 +0x2b7b +// -0.006771 +0x9eef +// -0.000543 +0x9073 +// -0.011547 +0xa1ea +// -0.012310 +0xa24d +// -0.005828 +0x9df8 +// -0.012697 +0xa280 +// -0.011643 +0xa1f6 +// -0.445915 +0xb722 +// -0.249439 +0xb3fb +// 0.658843 +0x3945 +// 0.322748 +0x352a +// 0.207211 +0x32a1 +// 0.082078 +0x2d41 +// 0.105096 +0x2eba +// 0.010639 +0x2172 +// -0.602434 +0xb8d2 +// 0.069792 +0x2c77 +// 0.005598 +0x1dbb +// 0.119025 +0x2f9e +// 0.126886 +0x300f +// 0.060072 +0x2bb0 +// 0.130874 +0x3030 +// 0.120015 +0x2fae +// 0.206396 +0x329b +// 0.115455 +0x2f64 +// -0.304951 +0xb4e1 +// -0.149387 +0xb0c8 +// -0.095909 +0xae23 +// -0.037991 +0xa8dd +// -0.048645 +0xaa3a +// -0.004924 +0x9d0b +// 0.278842 +0x3476 +// -0.032304 +0xa823 +// -0.002591 +0x994e +// -0.055092 +0xab0d +// -0.058730 +0xab84 +// -0.027805 +0xa71e +// -0.060576 +0xabc1 +// -0.055550 +0xab1c +// -0.024696 +0xa653 +// -0.286001 +0xb493 +// 0.113211 +0x2f3f +// -0.137900 +0xb06a +// -0.217191 +0xb2f3 +// 0.143378 +0x3097 +// -0.017888 +0xa494 +// 0.205214 +0x3291 +// 0.202153 +0x3278 +// 0.318643 +0x3519 +// -0.049633 +0xaa5a +// 0.046277 +0x29ec +// -0.320281 +0xb520 +// -0.084303 +0xad65 +// -0.015865 +0xa410 +// -0.337018 +0xb564 +// -0.223498 +0xb327 +// -0.073595 +0xacb6 +// 0.034864 +0x2876 +// -0.083758 +0xad5c +// -0.133034 +0xb042 +// -0.091509 +0xaddb +// -0.010084 +0xa12a +// -0.262743 +0xb434 +// -0.119968 +0xafae +// 0.118193 +0x2f90 +// 0.178678 +0x31b8 +// -0.182758 +0xb1d9 +// -0.259554 +0xb427 +// 0.043198 +0x2987 +// -0.232099 +0xb36d +// 0.008084 +0x2024 +// 0.216284 +0x32ec +// 0.153501 +0x30e9 +// -0.022023 +0xa5a3 +// -0.017224 +0xa469 +// -0.033817 +0xa854 +// 0.155647 +0x30fb +// -0.269310 +0xb44f +// 0.470249 +0x3786 +// -0.011664 +0xa1f9 +// 0.203878 +0x3286 +// 0.046084 +0x29e6 +// -0.126920 +0xb010 +// 0.070113 +0x2c7d +// -0.146100 +0xb0ad +// -0.399024 +0xb662 +// -0.005334 +0x9d76 +// 0.181632 +0x31d0 +// -0.179958 +0xb1c2 +// 0.049370 +0x2a52 +// 0.513293 +0x381b +// -0.228732 +0xb352 +// -0.078644 +0xad08 +// -0.039318 +0xa908 +// 0.025521 +0x2689 +// -0.312993 +0xb502 +// -0.114458 +0xaf53 +// 0.084622 +0x2d6a +// -0.063521 +0xac11 +// -0.321928 +0xb527 +// -0.059462 +0xab9c +// -0.017269 +0xa46c +// 0.033619 +0x284e +// 0.024511 +0x2646 +// -0.164458 +0xb143 +// 0.157536 +0x310b +// 0.180999 +0x31cb +// -0.048118 +0xaa29 +// -0.063070 +0xac09 +// -0.015785 +0xa40a +// -0.036221 +0xa8a3 +// 0.039889 +0x291b +// -0.171571 +0xb17e +// -0.191128 +0xb21e +// 0.266062 +0x3442 +// -0.182192 +0xb1d5 +// -0.056959 +0xab4a +// 0.190901 +0x321c +// -0.053795 +0xaae3 +// -0.033391 +0xa846 +// -0.128863 +0xb020 +// -0.118990 +0xaf9e +// 0.106589 +0x2ed2 +// -0.121198 +0xafc2 +// 0.066696 +0x2c45 +// 0.064775 +0x2c25 +// 0.037244 +0x28c4 +// -0.170919 +0xb178 +// 0.031843 +0x2813 +// 0.161528 +0x312b +// -0.157979 +0xb10e +// -0.013189 +0xa2c1 +// 0.043569 +0x2994 +// -0.044805 +0xa9bc +// 0.061753 +0x2be8 +// -0.162139 +0xb130 +// 0.055321 +0x2b15 +// 0.001087 +0x1474 +// 0.054060 +0x2aeb +// 0.366785 +0x35de +// 0.070896 +0x2c8a +// 0.052956 +0x2ac7 +// -0.060444 +0xabbd +// -0.336806 +0xb564 +// -0.091875 +0xade1 +// -0.165470 +0xb14c +// 0.338184 +0x3569 +// -0.046136 +0xa9e8 +// 0.015030 +0x23b2 +// -0.225777 +0xb33a +// 0.132772 +0x3040 +// -0.012357 +0xa254 +// 0.248775 +0x33f6 +// 0.090213 +0x2dc6 +// 0.020335 +0x2535 +// -0.068394 +0xac61 +// -0.260231 +0xb42a +// -0.277231 +0xb470 +// -0.198386 +0xb259 +// 0.026013 +0x26a9 +// -0.257879 +0xb420 +// 0.073521 +0x2cb5 +// -0.146664 +0xb0b1 +// 0.117987 +0x2f8d +// -0.033693 +0xa850 +// -0.178667 +0xb1b8 +// 0.283639 +0x348a +// 0.009687 +0x20f6 +// -0.009747 +0xa0fd +// 0.223139 +0x3324 +// 0.025525 +0x2689 +// -0.119403 +0xafa4 +// -0.178538 +0xb1b7 +// -0.199827 +0xb265 +// -0.091176 +0xadd6 +// 0.222694 +0x3320 +// -0.205161 +0xb291 +// -0.152826 +0xb0e4 +// 0.145184 +0x30a5 +// -0.084660 +0xad6b +// -0.090112 +0xadc4 +// 0.090507 +0x2dcb +// 0.017879 +0x2494 +// -0.181578 +0xb1cf +// -0.251227 +0xb405 +// -0.213310 +0xb2d3 +// -0.054434 +0xaaf8 +// -0.108998 +0xaefa +// 0.264258 +0x343a +// 0.003789 +0x1bc2 +// 0.304307 +0x34de +// -0.004692 +0x9cce +// -0.141765 +0xb089 +// 0.041905 +0x295d +// 0.025257 +0x2677 +// 0.389067 +0x363a +// 0.040487 +0x292f +// 0.037541 +0x28ce +// 0.243855 +0x33ce +// -0.458371 +0xb755 +// -0.372840 +0xb5f7 +// 0.112080 +0x2f2c +// -0.185989 +0xb1f4 +// -0.310414 +0xb4f7 +// 0.045779 +0x29dc +// -0.252142 +0xb409 +// 0.009018 +0x209e +// 0.123943 +0x2fef +// -0.183358 +0xb1de +// -0.034148 +0xa85f +// 0.134882 +0x3051 +// -0.032819 +0xa833 +// -0.048247 +0xaa2d +// -0.192966 +0xb22d +// 0.220913 +0x3312 +// 0.050966 +0x2a86 +// -0.003535 +0x9b3d +// 0.085702 +0x2d7c +// 0.007964 +0x2014 +// 0.219304 +0x3305 +// 0.100044 +0x2e67 +// -0.000886 +0x9341 +// 0.166842 +0x3157 +// 0.047731 +0x2a1c +// -0.044999 +0xa9c3 +// -0.287885 +0xb49b +// 0.382797 +0x3620 +// 0.002064 +0x183a +// -0.068663 +0xac65 +// 0.065077 +0x2c2a +// -0.081601 +0xad39 +// -0.044748 +0xa9ba +// -0.278257 +0xb474 +// -0.188873 +0xb20b +// 0.248568 +0x33f4 +// -0.053484 +0xaad9 +// 0.140530 +0x307f +// 0.247219 +0x33e9 +// 0.040999 +0x293f +// -0.265391 +0xb43f +// -0.080785 +0xad2c +// 0.086877 +0x2d8f +// 0.001245 +0x151a +// 0.028957 +0x276a +// 0.097466 +0x2e3d +// 0.193416 +0x3230 +// 0.070704 +0x2c86 +// 0.159824 +0x311d +// -0.014091 +0xa337 +// -0.031274 +0xa801 +// 0.099878 +0x2e64 +// -0.154490 +0xb0f2 +// -0.030372 +0xa7c6 +// -0.068575 +0xac64 +// 0.136038 +0x305a +// 0.209505 +0x32b4 +// -0.221428 +0xb316 +// -0.016697 +0xa446 +// -0.046557 +0xa9f6 +// 0.277849 +0x3472 +// -0.021374 +0xa579 +// 0.288631 +0x349e +// 0.095846 +0x2e22 +// -0.227960 +0xb34b +// -0.020734 +0xa54f +// -0.024399 +0xa63f +// -0.114990 +0xaf5c +// 0.185817 +0x31f2 +// 0.094397 +0x2e0b +// 0.035551 +0x288d +// -0.042709 +0xa977 +// -0.174386 +0xb195 +// 0.037381 +0x28c9 +// -0.049295 +0xaa4f +// 0.156183 +0x30ff +// -0.031252 +0xa800 +// 0.029748 +0x279e +// -0.223826 +0xb32a +// 0.070827 +0x2c88 +// 0.174952 +0x3199 +// 0.040185 +0x2925 +// 0.086005 +0x2d81 +// 0.260851 +0x342c +// -0.020403 +0xa539 +// 0.026277 +0x26ba +// -0.254420 +0xb412 +// 0.279257 +0x3478 +// -0.161901 +0xb12e +// -0.096534 +0xae2e +// -0.082353 +0xad45 +// 0.106812 +0x2ed6 +// -0.075528 +0xacd5 +// -0.150234 +0xb0cf +// -0.262473 +0xb433 +// 0.104395 +0x2eae +// -0.251296 +0xb405 +// 0.455043 +0x3748 +// 0.244178 +0x33d0 +// 0.227227 +0x3345 +// 0.020825 +0x2555 +// -0.021972 +0xa5a0 +// 0.045324 +0x29cd +// -0.012488 +0xa265 +// -0.588066 +0xb8b4 +// -0.017585 +0xa480 +// -0.076460 +0xace5 +// -0.379469 +0xb612 +// 0.208544 +0x32ac +// 0.162913 +0x3137 +// -0.115365 +0xaf62 +// 0.189974 +0x3214 +// -0.530090 +0xb83e +// 0.248554 +0x33f4 +// -0.145418 +0xb0a7 +// -0.134538 +0xb04e +// -0.065559 +0xac32 +// -0.114082 +0xaf4d +// 0.154394 +0x30f1 +// 0.180939 +0x31ca +// 0.213355 +0x32d4 +// -0.088871 +0xadb0 +// -0.188848 +0xb20b +// -0.206162 +0xb299 +// -0.097262 +0xae3a +// 0.023137 +0x25ec +// 0.218636 +0x32ff +// -0.595574 +0xb8c4 +// -0.027318 +0xa6fe +// -0.180446 +0xb1c6 +// 0.162456 +0x3133 +// 0.005024 +0x1d25 +// 0.197828 +0x3255 +// -0.316099 +0xb50f +// 0.435414 +0x36f7 +// -0.161298 +0xb129 +// 0.052936 +0x2ac7 +// -0.456036 +0xb74c +// -0.387822 +0xb635 +// 0.090385 +0x2dc9 +// -0.283721 +0xb48a +// 0.263889 +0x3439 +// 0.026375 +0x26c1 +// 0.255816 +0x3418 +// 0.364958 +0x35d7 +// 0.419546 +0x36b6 +// -0.312101 +0xb4fe +// 0.100587 +0x2e70 +// 0.111628 +0x2f25 +// 0.489856 +0x37d6 +// 0.253445 +0x340e +// 0.093322 +0x2df9 +// 0.094023 +0x2e04 +// 0.167127 +0x3159 +// -0.356428 +0xb5b4 +// 0.084325 +0x2d66 +// -0.148586 +0xb0c1 +// 0.237979 +0x339e +// -0.089634 +0xadbd +// -0.015146 +0xa3c1 +// 0.144489 +0x30a0 +// -0.280635 +0xb47d +// -0.246729 +0xb3e5 +// -0.259087 +0xb425 +// -0.569419 +0xb88e +// -0.093566 +0xadfd +// 0.318815 +0x351a +// 0.255165 +0x3415 +// -0.204502 +0xb28b +// -0.034051 +0xa85c +// 0.013036 +0x22ad +// -0.181064 +0xb1cb +// 0.123721 +0x2feb +// 0.201711 +0x3274 +// -0.372393 +0xb5f5 +// -0.044890 +0xa9bf +// 0.024458 +0x2643 +// -0.035159 +0xa880 +// -0.188417 +0xb208 +// -0.379939 +0xb614 +// 0.097044 +0x2e36 +// 0.139898 +0x307a +// 0.279610 +0x3479 +// 0.031310 +0x2802 +// -0.125401 +0xb003 +// 0.016048 +0x241c +// 0.094744 +0x2e10 +// -0.080818 +0xad2c +// 0.344780 +0x3584 +// -0.003052 +0x9a40 +// 0.690684 +0x3987 +// 0.287649 +0x349a +// -0.072152 +0xac9e +// -0.284234 +0xb48c +// 0.146328 +0x30af +// 0.460614 +0x375f +// 0.032968 +0x2838 +// -0.021385 +0xa579 +// 0.024645 +0x264f +// 0.432159 +0x36ea +// 0.239466 +0x33aa +// 0.136331 +0x305d +// -0.329300 +0xb545 +// 0.083056 +0x2d51 +// 0.535335 +0x3848 +// 0.090676 +0x2dce +// 0.068867 +0x2c68 +// 0.026455 +0x26c6 +// -0.076928 +0xacec +// 0.097094 +0x2e37 +// 0.273313 +0x345f +// -0.017534 +0xa47d +// -0.030118 +0xa7b6 +// 0.042497 +0x2971 +// 0.458455 +0x3756 +// 0.157629 +0x310b +// -0.322975 +0xb52b +// 0.094725 +0x2e10 +// 0.083487 +0x2d58 +// 0.611049 +0x38e3 +// -0.007814 +0xa000 +// -0.374751 +0xb5ff +// -0.044276 +0xa9ab +// -0.189233 +0xb20e +// 0.124811 +0x2ffd +// -0.200921 +0xb26e +// 0.302752 +0x34d8 +// -0.384083 +0xb625 +// 0.055752 +0x2b23 +// 0.159982 +0x311f +// -0.084754 +0xad6d +// -0.305491 +0xb4e3 +// -0.104900 +0xaeb7 +// 0.186590 +0x31f9 +// -0.583508 +0xb8ab +// -0.204008 +0xb287 +// 0.151008 +0x30d5 +// -0.267898 +0xb449 +// -0.090943 +0xadd2 +// -0.211895 +0xb2c8 +// -0.310189 +0xb4f7 +// -0.128223 +0xb01a +// 0.234986 +0x3385 +// -0.135158 +0xb053 +// -0.273874 +0xb462 +// 0.110621 +0x2f14 +// -0.151179 +0xb0d6 +// 0.134663 +0x304f +// -0.049794 +0xaa60 +// 0.502846 +0x3806 +// -0.119728 +0xafaa +// 0.133765 +0x3048 +// -0.431583 +0xb6e8 +// 0.332997 +0x3554 +// 0.186571 +0x31f8 +// 0.257101 +0x341d +// 0.005839 +0x1dfb +// -0.187209 +0xb1fe +// 0.480064 +0x37ae +// 0.001045 +0x1447 +// 0.071767 +0x2c98 +// 0.528032 +0x3839 +// 0.202519 +0x327b +// -0.044961 +0xa9c1 +// 0.145638 +0x30a9 +// -0.186622 +0xb1f9 +// 0.383575 +0x3623 +// -0.179861 +0xb1c1 +// 0.018292 +0x24af +// 0.330598 +0x354a +// -0.022198 +0xa5af +// -0.248619 +0xb3f5 +// -0.006532 +0x9eb0 +// -0.059836 +0xaba9 +// 0.014284 +0x2350 +// -0.376512 +0xb606 +// 0.532338 +0x3842 +// 0.027886 +0x2724 +// -0.233087 +0xb375 +// 0.639850 +0x391e +// -0.154570 +0xb0f2 +// -0.144770 +0xb0a2 +// 0.003169 +0x1a7e +// -0.028234 +0xa73a +// -0.114909 +0xaf5b +// 0.012432 +0x225e +// -0.212426 +0xb2cc +// 0.048697 +0x2a3c +// 0.043417 +0x298f +// 0.207770 +0x32a6 +// 0.045305 +0x29cd +// -0.292337 +0xb4ad +// 0.001564 +0x1668 +// -0.178407 +0xb1b6 +// -0.268010 +0xb44a +// -0.185760 +0xb1f2 +// -0.036575 +0xa8ae +// -0.067101 +0xac4b +// -0.016305 +0xa42d +// 0.477077 +0x37a2 +// 0.380656 +0x3617 +// 0.554183 +0x386f +// -0.035537 +0xa88c +// -0.205612 +0xb294 +// 0.179645 +0x31c0 +// -0.018152 +0xa4a6 +// 0.045977 +0x29e3 +// -0.013887 +0xa31c +// 0.383992 +0x3625 +// -0.446477 +0xb725 +// 0.312925 +0x3502 +// -0.070195 +0xac7e +// 0.067783 +0x2c57 +// 0.601848 +0x38d1 +// 0.222969 +0x3323 +// -0.201822 +0xb275 +// -0.011489 +0xa1e2 +// 0.167080 +0x3159 +// -0.073254 +0xacb0 +// -0.157396 +0xb109 +// 0.056136 +0x2b2f +// 0.445341 +0x3720 +// 0.360198 +0x35c3 +// -0.301847 +0xb4d4 +// -0.208298 +0xb2aa +// -0.115270 +0xaf61 +// 0.097450 +0x2e3d +// 0.140702 +0x3081 +// 0.539210 +0x3850 +// -0.005929 +0x9e12 +// 0.044192 +0x29a8 +// -0.074019 +0xacbd +// 0.127804 +0x3017 +// -0.172284 +0xb183 +// -0.165812 +0xb14e +// 0.346372 +0x358b +// -0.583211 +0xb8aa +// -0.122901 +0xafde +// -0.302474 +0xb4d7 +// -0.108887 +0xaef8 +// 0.224792 +0x3331 +// 0.232702 +0x3372 +// 0.158258 +0x3110 +// -0.269374 +0xb44f +// 0.150156 +0x30ce +// 0.129233 +0x3023 +// 0.050974 +0x2a86 +// 0.110238 +0x2f0e +// 0.199196 +0x3260 +// -0.021740 +0xa591 +// -0.430018 +0xb6e1 +// 0.245066 +0x33d8 +// 0.333545 +0x3556 +// -0.153605 +0xb0ea +// -0.191406 +0xb220 +// -0.141839 +0xb08a +// 0.096790 +0x2e32 +// -0.044498 +0xa9b2 +// -0.159363 +0xb119 +// -0.684382 +0xb97a +// 0.315173 +0x350b +// 0.392736 +0x3649 +// 0.291031 +0x34a8 +// -0.198597 +0xb25b +// 0.091304 +0x2dd8 +// 0.326987 +0x353b +// -0.684613 +0xb97a +// 0.315279 +0x350b +// 0.392868 +0x3649 +// 0.291129 +0x34a8 +// -0.198664 +0xb25b +// 0.091334 +0x2dd8 +// 0.327098 +0x353c +// -0.871654 +0xbaf9 +// 0.401416 +0x366c +// 0.500203 +0x3800 +// 0.370668 +0x35ee +// -0.252941 +0xb40c +// 0.116288 +0x2f71 +// 0.416463 +0x36aa +// 0.120999 +0x2fbe +// -0.055723 +0xab22 +// -0.069436 +0xac72 +// -0.051454 +0xaa96 +// 0.035112 +0x287f +// -0.016142 +0xa422 +// -0.057811 +0xab66 +// -0.908191 +0xbb44 +// 0.418242 +0x36b1 +// 0.521170 +0x382b +// 0.386205 +0x362e +// -0.263543 +0xb437 +// 0.121162 +0x2fc1 +// 0.433920 +0x36f1 +// 0.031999 +0x2819 +// -0.014736 +0xa38c +// -0.018363 +0xa4b3 +// -0.013607 +0xa2f8 +// 0.009286 +0x20c1 +// -0.004269 +0x9c5f +// -0.015289 +0xa3d4 +// 0.649289 +0x3932 +// -0.299012 +0xb4c9 +// -0.372597 +0xb5f6 +// -0.276108 +0xb46b +// 0.188414 +0x3207 +// -0.086622 +0xad8b +// -0.310220 +0xb4f7 +// 0.534661 +0x3847 +// -0.246223 +0xb3e1 +// -0.306817 +0xb4e9 +// -0.227363 +0xb347 +// 0.155150 +0x30f7 +// -0.071329 +0xac91 +// -0.255453 +0xb416 +// -0.912260 +0xbb4c +// 0.420116 +0x36b9 +// 0.523504 +0x3830 +// 0.387935 +0x3635 +// -0.264724 +0xb43c +// 0.121705 +0x2fca +// 0.435864 +0x36f9 +// -0.441169 +0xb70f +// 0.203168 +0x3280 +// 0.253167 +0x340d +// 0.187606 +0x3201 +// -0.128021 +0xb019 +// 0.058857 +0x2b89 +// 0.210784 +0x32bf +// -0.029907 +0xa7a8 +// 0.013773 +0x230d +// 0.017162 +0x2465 +// 0.012718 +0x2283 +// -0.008679 +0xa072 +// 0.003990 +0x1c16 +// 0.014289 +0x2351 +// 0.382418 +0x361e +// -0.176112 +0xb1a3 +// -0.219453 +0xb306 +// -0.162622 +0xb134 +// 0.110972 +0x2f1a +// -0.051019 +0xaa88 +// -0.182714 +0xb1d9 +// 0.449838 +0x3733 +// -0.207160 +0xb2a1 +// -0.258141 +0xb421 +// -0.191292 +0xb21f +// 0.130536 +0x302d +// -0.060013 +0xabaf +// -0.214926 +0xb2e1 +// 0.067643 +0x2c54 +// -0.031151 +0xa7fa +// -0.038818 +0xa8f8 +// -0.028765 +0xa75d +// 0.019629 +0x2506 +// -0.009024 +0xa09f +// -0.032319 +0xa823 +// 0.263074 +0x3436 +// -0.121151 +0xafc1 +// -0.150966 +0xb0d5 +// -0.111871 +0xaf29 +// 0.076340 +0x2ce3 +// -0.035097 +0xa87e +// -0.125693 +0xb006 +// -0.654875 +0xb93d +// 0.301584 +0x34d3 +// 0.375803 +0x3603 +// 0.278483 +0x3475 +// -0.190035 +0xb215 +// 0.087367 +0x2d97 +// 0.312889 +0x3502 +// 0.153965 +0x30ed +// -0.070904 +0xac8a +// -0.088353 +0xada8 +// -0.065473 +0xac31 +// 0.044678 +0x29b8 +// -0.020540 +0xa542 +// -0.073562 +0xacb5 +// 0.340021 +0x3571 +// -0.156587 +0xb103 +// -0.195123 +0xb23e +// -0.144593 +0xb0a1 +// 0.098669 +0x2e51 +// -0.045362 +0xa9ce +// -0.162457 +0xb133 +// 1.000000 +0x3c00 +// -0.460522 +0xb75e +// -0.573854 +0xb897 +// -0.425247 +0xb6ce +// 0.290185 +0x34a5 +// -0.133410 +0xb045 +// -0.477785 +0xb7a5 +// 0.545421 +0x385d +// -0.251178 +0xb405 +// -0.312992 +0xb502 +// -0.231939 +0xb36c +// 0.158273 +0x3111 +// -0.072765 +0xaca8 +// -0.260594 +0xb42b +// -0.926605 +0xbb6a +// 0.426722 +0x36d4 +// 0.531736 +0x3841 +// 0.394036 +0x364e +// -0.268887 +0xb44d +// 0.123619 +0x2fe9 +// 0.442718 +0x3715 +// -0.614501 +0xb8ea +// 0.282991 +0x3487 +// 0.352634 +0x35a4 +// 0.261314 +0x342e +// -0.178319 +0xb1b5 +// 0.081981 +0x2d3f +// 0.293599 +0x34b3 +// 0.025233 +0x2676 +// 0.101716 +0x2e83 +// 0.177354 +0x31ad +// 0.118754 +0x2f9a +// -0.163005 +0xb137 +// -0.108673 +0xaef5 +// 0.274187 +0x3463 +// 0.109997 +0x2f0a +// 0.161157 +0x3128 +// -0.163244 +0xb139 +// -0.173031 +0xb189 +// -0.100284 +0xae6b +// 0.209072 +0x32b1 +// 0.325574 +0x3536 +// -0.078818 +0xad0b +// 0.249028 +0x33f8 +// 0.104214 +0x2eab +// 0.085728 +0x2d7d +// 0.273992 +0x3462 +// -0.095456 +0xae1c +// -0.177095 +0xb1ab +// -0.042059 +0xa962 +// -0.044134 +0xa9a6 +// -0.096914 +0xae34 +// 0.010066 +0x2127 +// -0.235502 +0xb389 +// -0.001952 +0x97ff +// 0.268080 +0x344a +// -0.082593 +0xad49 +// 0.147514 +0x30b8 +// 0.161033 +0x3127 +// -0.175669 +0xb19f +// -0.019543 +0xa501 +// 0.213230 +0x32d3 +// 0.289268 +0x34a1 +// -0.404472 +0xb679 +// 0.169388 +0x316c +// -0.051289 +0xaa91 +// 0.169498 +0x316d +// 0.063945 +0x2c18 +// 0.495044 +0x37ec +// -0.176168 +0xb1a3 +// -0.281880 +0xb483 +// 0.070723 +0x2c87 +// 0.334637 +0x355b +// -0.250728 +0xb403 +// 0.146661 +0x30b1 +// -0.175051 +0xb19a +// -0.017901 +0xa495 +// -0.166862 +0xb157 +// -0.333081 +0xb554 +// -0.002202 +0x9883 +// -0.473099 +0xb792 +// -0.170067 +0xb171 +// 0.292311 +0x34ad +// -0.212542 +0xb2cd +// -0.384943 +0xb629 +// 0.076474 +0x2ce5 +// -0.101143 +0xae79 +// 0.237376 +0x3399 +// 0.038125 +0x28e1 +// -0.152661 +0xb0e3 +// 0.450021 +0x3733 +// -0.283952 +0xb48b +// 0.140745 +0x3081 +// -0.029306 +0xa781 +// -0.301187 +0xb4d2 +// -0.079544 +0xad17 +// -0.056511 +0xab3c +// -0.036213 +0xa8a3 +// -0.119352 +0xafa3 +// -0.149020 +0xb0c5 +// 0.161898 +0x312e +// 0.245618 +0x33dc +// 0.461745 +0x3763 +// 0.249564 +0x33fc +// 0.161343 +0x312a +// -0.364169 +0xb5d4 +// -0.236946 +0xb395 +// 0.331760 +0x354f +// -0.041228 +0xa947 +// -0.042106 +0xa964 +// -0.000488 +0x8fff +// 0.108026 +0x2eea +// -0.236394 +0xb391 +// -0.058909 +0xab8a +// -0.000676 +0x918a +// 0.055445 +0x2b19 +// 0.087285 +0x2d96 +// -0.158037 +0xb10f +// -0.108039 +0xaeea +// -0.125620 +0xb005 +// 0.149630 +0x30ca +// 0.011675 +0x21fa +// 0.261692 +0x3430 +// -0.019294 +0xa4f0 +// 0.331946 +0x3550 +// 0.036140 +0x28a0 +// -0.093826 +0xae01 +// 0.056215 +0x2b32 +// -0.336313 +0xb562 +// -0.299280 +0xb4ca +// 0.372949 +0x35f8 +// -0.052918 +0xaac6 +// -0.124896 +0xaffe +// -0.010799 +0xa187 +// 0.083091 +0x2d51 +// 0.282136 +0x3484 +// 0.076955 +0x2ced +// -0.142040 +0xb08c +// -0.101615 +0xae81 +// -0.075736 +0xacd9 +// 0.042413 +0x296e +// -0.176859 +0xb1a9 +// 0.094184 +0x2e07 +// -0.119113 +0xafa0 +// 0.431320 +0x36e7 +// 0.004647 +0x1cc2 +// 0.077036 +0x2cee +// -0.115208 +0xaf60 +// -0.341300 +0xb576 +// -0.422389 +0xb6c2 +// -0.081003 +0xad2f +// 0.191802 +0x3223 +// -0.203531 +0xb283 +// 0.363519 +0x35d1 +// 0.273449 +0x3460 +// 0.075408 +0x2cd3 +// 0.249802 +0x33fe +// 0.028659 +0x2756 +// 0.221340 +0x3315 +// -0.189501 +0xb210 +// 0.057432 +0x2b5a +// -0.201478 +0xb273 +// 0.330562 +0x354a +// -0.269951 +0xb452 +// -0.011264 +0xa1c4 +// -0.192764 +0xb22b +// -0.109015 +0xaefa +// 0.006536 +0x1eb1 +// -0.029465 +0xa78b +// -0.423742 +0xb6c8 +// -0.219037 +0xb302 +// 0.436338 +0x36fb +// -0.095244 +0xae18 +// 0.034647 +0x286f +// -0.244135 +0xb3d0 +// 0.098119 +0x2e48 +// 0.385066 +0x3629 +// -0.261827 +0xb430 +// 0.024529 +0x2648 +// 0.253351 +0x340e +// 0.063958 +0x2c18 +// -0.113002 +0xaf3b +// -0.323069 +0xb52b +// 0.053249 +0x2ad1 +// -0.042401 +0xa96d +// 0.115775 +0x2f69 +// -0.075394 +0xacd3 +// -0.443999 +0xb71b +// -0.256418 +0xb41a +// 0.090137 +0x2dc5 +// 0.244504 +0x33d3 +// 0.119476 +0x2fa5 +// 0.181408 +0x31ce +// 0.344752 +0x3584 +// 0.217047 +0x32f2 +// -0.008289 +0xa03e +// -0.160930 +0xb126 +// -0.212302 +0xb2cb +// -0.168749 +0xb166 +// -0.467862 +0xb77c +// 0.214900 +0x32e0 +// -0.146029 +0xb0ac +// -0.165459 +0xb14b +// 0.074158 +0x2cbf +// 0.165194 +0x3149 +// 0.233630 +0x337a +// -0.359846 +0xb5c2 +// -0.269358 +0xb44f +// -0.003491 +0x9b26 +// -0.122548 +0xafd8 +// -0.130331 +0xb02c +// -0.044561 +0xa9b4 +// -0.065272 +0xac2d +// -0.106754 +0xaed5 +// 0.018300 +0x24af +// -0.421522 +0xb6bf +// -0.054995 +0xab0a +// -0.346756 +0xb58c +// 0.178777 +0x31b9 +// -0.291495 +0xb4aa +// -0.048764 +0xaa3e +// -0.349987 +0xb59a +// -0.168377 +0xb163 +// 0.007823 +0x2001 +// -0.120841 +0xafbc +// 0.116582 +0x2f76 +// -0.206522 +0xb29c +// -0.137569 +0xb067 +// 0.065402 +0x2c30 +// 0.256505 +0x341b +// 0.126801 +0x300f +// 0.101394 +0x2e7d +// 0.322048 +0x3527 +// -0.134326 +0xb04c +// 0.427870 +0x36d9 +// 0.034844 +0x2876 +// -0.054274 +0xaaf2 +// -0.231876 +0xb36c +// -0.092190 +0xade6 +// -0.348992 +0xb595 +// 0.375560 +0x3602 +// -0.057627 +0xab60 +// -0.189919 +0xb214 +// 0.209900 +0x32b7 +// -0.118786 +0xaf9a +// -0.231725 +0xb36a +// 0.011949 +0x221e +// -0.069192 +0xac6e +// 0.395233 +0x3653 +// 0.020288 +0x2532 +// -0.267287 +0xb447 +// -0.238477 +0xb3a2 +// -0.369664 +0xb5ea +// -0.097263 +0xae3a +// 0.301137 +0x34d1 +// 0.184996 +0x31eb +// -0.234032 +0xb37d +// -0.164273 +0xb142 +// 0.095412 +0x2e1b +// 0.156845 +0x3105 +// -0.074534 +0xacc5 +// -0.059281 +0xab97 +// 0.098974 +0x2e56 +// -0.060791 +0xabc8 +// 0.241473 +0x33ba +// -0.278636 +0xb475 +// -0.358685 +0xb5bd +// 0.239992 +0x33ae +// -0.200657 +0xb26c +// 0.030382 +0x27c7 +// 0.093920 +0x2e03 +// 0.292329 +0x34ad +// 0.166274 +0x3152 +// 0.058983 +0x2b8d +// -0.305500 +0xb4e3 +// -0.104356 +0xaeae +// 0.137236 +0x3064 +// -0.100672 +0xae71 +// 0.115789 +0x2f69 +// -0.244449 +0xb3d3 +// -0.015531 +0xa3f4 +// 0.022878 +0x25db +// 0.202823 +0x327e +// 0.230133 +0x335d +// -0.284251 +0xb48c +// 0.254504 +0x3412 +// 0.221543 +0x3317 +// -0.224474 +0xb32f +// -0.217027 +0xb2f2 +// -0.277522 +0xb471 +// -0.069041 +0xac6b +// 0.193399 +0x3230 +// 0.317151 +0x3513 +// 0.117127 +0x2f7f +// 0.417643 +0x36af +// 0.265240 +0x343e +// -0.226924 +0xb343 +// -0.124527 +0xaff8 +// -0.302958 +0xb4d9 +// -0.026146 +0xa6b2 +// 0.158114 +0x310f +// 0.249363 +0x33fb +// -0.062406 +0xabfd +// 0.185862 +0x31f3 +// 0.057477 +0x2b5b +// 0.206490 +0x329c +// -0.333294 +0xb555 +// 0.392991 +0x364a +// -0.074327 +0xacc2 +// 0.049762 +0x2a5f +// 0.121316 +0x2fc4 +// -0.023158 +0xa5ee +// -0.199173 +0xb260 +// 0.224736 +0x3331 +// -0.272432 +0xb45c +// 0.190619 +0x321a +// 0.043146 +0x2986 +// -0.199322 +0xb261 +// -0.138302 +0xb06d +// -0.294309 +0xb4b5 +// 0.076132 +0x2cdf +// 0.054918 +0x2b08 +// -0.011521 +0xa1e6 +// -0.325372 +0xb535 +// -0.113674 +0xaf46 +// 0.177820 +0x31b1 +// -0.128332 +0xb01b +// 0.064267 +0x2c1d +// 0.541342 +0x3855 +// 0.292774 +0x34af +// -0.250770 +0xb403 +// 0.001780 +0x174b +// 0.015444 +0x23e8 +// 0.185961 +0x31f3 +// 0.091851 +0x2de1 +// -0.132116 +0xb03a +// -0.159260 +0xb119 +// 0.365520 +0x35d9 +// 0.435399 +0x36f7 +// -0.224535 +0xb32f +// 0.190280 +0x3217 +// 0.102261 +0x2e8b +// 0.097382 +0x2e3c +// 0.049768 +0x2a5f +// -0.012519 +0xa269 +// 0.020478 +0x253e +// -0.033952 +0xa859 +// -0.232424 +0xb370 +// -0.025894 +0xa6a1 +// -0.003728 +0x9ba2 +// -0.131105 +0xb032 +// -0.085153 +0xad73 +// -0.236163 +0xb38f +// 0.169456 +0x316c +// 0.028306 +0x273f +// 0.209625 +0x32b5 +// -0.305127 +0xb4e2 +// 0.300106 +0x34cd +// 0.049472 +0x2a55 +// 0.098061 +0x2e47 +// 0.046691 +0x29fa +// -0.161878 +0xb12e +// -0.205141 +0xb291 +// 0.004317 +0x1c6c +// 0.158337 +0x3111 +// 0.441739 +0x3711 +// 0.065479 +0x2c31 +// -0.338347 +0xb56a +// 0.106674 +0x2ed4 +// -0.039671 +0xa914 +// -0.110522 +0xaf13 +// 0.289314 +0x34a1 +// -0.383564 +0xb623 +// 0.280658 +0x347e +// -0.138853 +0xb071 +// -0.051834 +0xaaa3 +// 0.243962 +0x33cf +// 0.266533 +0x3444 +// -0.271267 +0xb457 +// -0.153154 +0xb0e7 +// 0.108726 +0x2ef5 +// 0.353169 +0x35a7 +// 0.318413 +0x3518 +// -0.142367 +0xb08e +// 0.241516 +0x33bb +// 0.102454 +0x2e8f +// -0.041825 +0xa95b +// 0.074580 +0x2cc6 +// 0.264217 +0x343a +// 0.122448 +0x2fd6 +// 0.229975 +0x335c +// -0.176890 +0xb1a9 +// 0.302434 +0x34d7 +// 0.361660 +0x35c9 +// 0.148280 +0x30bf +// 0.138394 +0x306e +// 0.295101 +0x34b9 +// 0.221928 +0x331a +// 0.186631 +0x31f9 +// -0.100918 +0xae75 +// 0.196827 +0x324c +// 0.229898 +0x335b +// -0.129938 +0xb028 +// 0.028561 +0x2750 +// -0.042710 +0xa978 +// 0.079348 +0x2d14 +// -0.349252 +0xb597 +// 0.062354 +0x2bfb +// 0.175134 +0x319b +// 0.095304 +0x2e19 +// -0.139595 +0xb078 +// 0.060403 +0x2bbb +// 0.391312 +0x3643 +// -0.012454 +0xa260 +// -0.076055 +0xacde +// -0.088206 +0xada5 +// 0.077114 +0x2cef +// 0.146611 +0x30b1 +// -0.238120 +0xb39f +// -0.251958 +0xb408 +// 0.148380 +0x30c0 +// 0.065143 +0x2c2b +// 0.099759 +0x2e62 +// 0.257983 +0x3421 +// -0.598729 +0xb8ca +// -0.342416 +0xb57b +// -0.232106 +0xb36d +// 0.009249 +0x20bc +// 0.145128 +0x30a5 +// 0.104104 +0x2eaa +// 0.109879 +0x2f08 +// -0.241147 +0xb3b7 +// 0.012442 +0x225f +// 0.208284 +0x32aa +// 0.119046 +0x2f9e +// 0.263622 +0x3438 +// 0.245580 +0x33dc +// 0.146643 +0x30b1 +// 0.262658 +0x3434 +// -0.313447 +0xb504 +// -0.100671 +0xae71 +// -0.020738 +0xa54f +// 0.014735 +0x238b +// 0.291948 +0x34ac +// 0.385110 +0x3629 +// -0.050722 +0xaa7e +// 0.170427 +0x3174 +// -0.115480 +0xaf64 +// -0.121081 +0xafc0 +// -0.058443 +0xab7b +// -0.244517 +0xb3d3 +// -0.088133 +0xada4 +// -0.044024 +0xa9a3 +// -0.440673 +0xb70d +// 0.262537 +0x3433 +// -0.284781 +0xb48e +// 0.015733 +0x2407 +// 0.011554 +0x21ea +// 0.318001 +0x3517 +// -0.162160 +0xb130 +// 0.119675 +0x2fa9 +// -0.008285 +0xa03e +// 0.240768 +0x33b4 +// 0.152465 +0x30e1 +// -0.127308 +0xb013 +// 0.184117 +0x31e4 +// -0.180228 +0xb1c4 +// 0.111347 +0x2f20 +// 0.388053 +0x3635 +// 0.025666 +0x2692 +// -0.377046 +0xb608 +// 0.512329 +0x3819 +// -0.052588 +0xaabb +// 0.185113 +0x31ec +// -0.196280 +0xb248 +// -0.178806 +0xb1b9 +// 0.104070 +0x2ea9 +// -0.043323 +0xa98c +// -0.381730 +0xb61c +// 0.206520 +0x329c +// 0.289726 +0x34a3 +// -0.163158 +0xb139 +// 0.118319 +0x2f93 +// 0.286265 +0x3495 +// 0.031601 +0x280b +// -0.039492 +0xa90e +// 0.363448 +0x35d1 +// 0.087711 +0x2d9d +// -0.218648 +0xb2ff +// 0.051269 +0x2a90 +// 0.315114 +0x350b +// -0.210804 +0xb2bf +// -0.165628 +0xb14d +// 0.025527 +0x2689 +// -0.142360 +0xb08e +// 0.202686 +0x327c +// -0.130636 +0xb02e +// -0.304746 +0xb4e0 +// 0.334579 +0x355a +// 0.114165 +0x2f4e +// -0.010885 +0xa193 +// -0.083671 +0xad5b +// 0.086170 +0x2d84 +// -0.216525 +0xb2ee +// -0.008490 +0xa059 +// -0.142415 +0xb08f +// 0.167905 +0x315f +// -0.142221 +0xb08d +// -0.107657 +0xaee4 +// -0.203051 +0xb27f +// 0.153019 +0x30e6 +// 0.559584 +0x387a +// 0.036334 +0x28a7 +// 0.115569 +0x2f65 +// 0.617815 +0x38f1 +// -0.014086 +0xa336 +// 0.093658 +0x2dfe +// -0.026211 +0xa6b6 +// 0.040578 +0x2932 +// 0.204958 +0x328f +// -0.031002 +0xa7f0 +// -0.098232 +0xae49 +// 0.034203 +0x2861 +// 0.112402 +0x2f32 +// 0.134860 +0x3051 +// -0.114513 +0xaf54 +// -0.053915 +0xaae7 +// -0.752820 +0xba06 +// -0.048880 +0xaa42 +// -0.155477 +0xb0fa +// -0.831159 +0xbaa6 +// 0.018950 +0x24da +// -0.126000 +0xb008 +// 0.035262 +0x2883 +// -0.054591 +0xaafd +// -0.275734 +0xb469 +// 0.041707 +0x2957 +// 0.132154 +0x303b +// -0.046014 +0xa9e4 +// -0.151216 +0xb0d7 +// -0.181430 +0xb1ce +// 0.154057 +0x30ee +// 0.072532 +0x2ca4 +// -0.052455 +0xaab7 +// -0.003406 +0x9afa +// -0.010833 +0xa18c +// -0.057913 +0xab6a +// 0.001320 +0x1569 +// -0.008779 +0xa07f +// 0.002457 +0x1908 +// -0.003804 +0x9bca +// -0.019212 +0xa4eb +// 0.002906 +0x19f4 +// 0.009208 +0x20b7 +// -0.003206 +0x9a91 +// -0.010536 +0xa165 +// -0.012642 +0xa279 +// 0.010734 +0x217f +// 0.005054 +0x1d2d +// 0.585991 +0x38b0 +// 0.038048 +0x28df +// 0.121023 +0x2fbf +// 0.646970 +0x392d +// -0.014751 +0xa38d +// 0.098078 +0x2e47 +// -0.027447 +0xa707 +// 0.042493 +0x2970 +// 0.214630 +0x32de +// -0.032465 +0xa828 +// -0.102868 +0xae95 +// 0.035817 +0x2896 +// 0.117706 +0x2f88 +// 0.141224 +0x3085 +// -0.119917 +0xafad +// -0.056459 +0xab3a +// -0.056270 +0xab34 +// -0.003654 +0x9b7c +// -0.011621 +0xa1f3 +// -0.062126 +0xabf4 +// 0.001416 +0x15cd +// -0.009418 +0xa0d2 +// 0.002636 +0x1966 +// -0.004080 +0x9c2e +// -0.020610 +0xa547 +// 0.003117 +0x1a62 +// 0.009878 +0x210f +// -0.003439 +0x9b0b +// -0.011303 +0xa1c9 +// -0.013561 +0xa2f1 +// 0.011515 +0x21e5 +// 0.005422 +0x1d8d +// -0.704930 +0xb9a4 +// -0.045771 +0xa9dc +// -0.145587 +0xb0a9 +// -0.778286 +0xba3a +// 0.017745 +0x248b +// -0.117985 +0xaf8d +// 0.033019 +0x283a +// -0.051118 +0xaa8b +// -0.258194 +0xb422 +// 0.039054 +0x2900 +// 0.123747 +0x2feb +// -0.043087 +0xa984 +// -0.141597 +0xb088 +// -0.169889 +0xb170 +// 0.144257 +0x309e +// 0.067918 +0x2c59 +// -0.585263 +0xb8af +// -0.038001 +0xa8dd +// -0.120872 +0xafbc +// -0.646166 +0xb92b +// 0.014733 +0x238b +// -0.097956 +0xae45 +// 0.027413 +0x2705 +// -0.042440 +0xa96f +// -0.214363 +0xb2dc +// 0.032424 +0x2826 +// 0.102740 +0x2e93 +// -0.035773 +0xa894 +// -0.117560 +0xaf86 +// -0.141049 +0xb083 +// 0.119768 +0x2faa +// 0.056389 +0x2b38 +// -0.547704 +0xb862 +// -0.035562 +0xa88d +// -0.113115 +0xaf3d +// -0.604699 +0xb8d6 +// 0.013787 +0x230f +// -0.091670 +0xadde +// 0.025654 +0x2691 +// -0.039717 +0xa915 +// -0.200606 +0xb26b +// 0.030343 +0x27c5 +// 0.096147 +0x2e27 +// -0.033477 +0xa849 +// -0.110015 +0xaf0a +// -0.131997 +0xb039 +// 0.112082 +0x2f2c +// 0.052770 +0x2ac1 +// -0.204493 +0xb28b +// -0.013278 +0xa2cc +// -0.042233 +0xa968 +// -0.225773 +0xb33a +// 0.005148 +0x1d45 +// -0.034226 +0xa862 +// 0.009578 +0x20e7 +// -0.014829 +0xa398 +// -0.074899 +0xaccb +// 0.011329 +0x21cd +// 0.035898 +0x2898 +// -0.012499 +0xa266 +// -0.041076 +0xa942 +// -0.049283 +0xaa4f +// 0.041847 +0x295b +// 0.019702 +0x250b +// -0.151138 +0xb0d6 +// -0.009813 +0xa106 +// -0.031214 +0xa7fe +// -0.166865 +0xb157 +// 0.003805 +0x1bcb +// -0.025296 +0xa67a +// 0.007079 +0x1f40 +// -0.010960 +0xa19d +// -0.055357 +0xab16 +// 0.008373 +0x2049 +// 0.026531 +0x26cb +// -0.009238 +0xa0bb +// -0.030359 +0xa7c6 +// -0.036424 +0xa8aa +// 0.030929 +0x27eb +// 0.014562 +0x2375 +// 0.476122 +0x379e +// 0.030914 +0x27ea +// 0.098332 +0x2e4b +// 0.525668 +0x3835 +// -0.011985 +0xa223 +// 0.079689 +0x2d1a +// -0.022301 +0xa5b6 +// 0.034526 +0x286b +// 0.174388 +0x3195 +// -0.026378 +0xa6c1 +// -0.083581 +0xad59 +// 0.029102 +0x2773 +// 0.095637 +0x2e1f +// 0.114746 +0x2f58 +// -0.097433 +0xae3c +// -0.045873 +0xa9df +// -0.182435 +0xb1d7 +// -0.011845 +0xa211 +// -0.037678 +0xa8d3 +// -0.201419 +0xb272 +// 0.004592 +0x1cb4 +// -0.030534 +0xa7d1 +// 0.008545 +0x2060 +// -0.013229 +0xa2c6 +// -0.066820 +0xac47 +// 0.010107 +0x212d +// 0.032026 +0x2819 +// -0.011151 +0xa1b6 +// -0.036645 +0xa8b1 +// -0.043967 +0xa9a1 +// 0.037333 +0x28c7 +// 0.017577 +0x2480 +// 0.374802 +0x35ff +// 0.024336 +0x263b +// 0.077407 +0x2cf4 +// 0.413804 +0x369f +// -0.009435 +0xa0d5 +// 0.062731 +0x2c04 +// -0.017555 +0xa47f +// 0.027179 +0x26f5 +// 0.137278 +0x3065 +// -0.020764 +0xa551 +// -0.065795 +0xac36 +// 0.022909 +0x25dd +// 0.075285 +0x2cd1 +// 0.090327 +0x2dc8 +// -0.076699 +0xace9 +// -0.036111 +0xa89f +// -0.292030 +0xb4ac +// -0.018961 +0xa4db +// -0.060312 +0xabb8 +// -0.322419 +0xb529 +// 0.007351 +0x1f87 +// -0.048877 +0xaa42 +// 0.013679 +0x2301 +// -0.021177 +0xa56c +// -0.106961 +0xaed8 +// 0.016179 +0x2424 +// 0.051264 +0x2a90 +// -0.017850 +0xa492 +// -0.058659 +0xab82 +// -0.070379 +0xac81 +// 0.059761 +0x2ba6 +// 0.028136 +0x2734 +// -0.033825 +0xa854 +// -0.002196 +0x987f +// -0.006986 +0x9f27 +// -0.037345 +0xa8c8 +// 0.000851 +0x12fa +// -0.005661 +0x9dcc +// 0.001584 +0x167d +// -0.002453 +0x9906 +// -0.012389 +0xa258 +// 0.001874 +0x17ad +// 0.005938 +0x1e15 +// -0.002067 +0x983c +// -0.006794 +0x9ef5 +// -0.008152 +0xa02c +// 0.006922 +0x1f17 +// 0.003259 +0x1aad +// 0.237589 +0x339a +// 0.015427 +0x23e6 +// 0.049068 +0x2a48 +// 0.262312 +0x3432 +// -0.005981 +0x9e20 +// 0.039765 +0x2917 +// -0.011129 +0xa1b3 +// 0.017229 +0x2469 +// 0.087021 +0x2d92 +// -0.013163 +0xa2bd +// -0.041707 +0xa957 +// 0.014522 +0x236f +// 0.047724 +0x2a1c +// 0.057259 +0x2b54 +// -0.048620 +0xaa39 +// -0.022891 +0xa5dc +// -0.463712 +0xb76b +// -0.030109 +0xa7b5 +// -0.095769 +0xae21 +// -0.511967 +0xb819 +// 0.011673 +0x21fa +// -0.077612 +0xacf8 +// 0.021720 +0x258f +// -0.033626 +0xa84e +// -0.169843 +0xb16f +// 0.025690 +0x2694 +// 0.081402 +0x2d36 +// -0.028343 +0xa742 +// -0.093144 +0xadf6 +// -0.111755 +0xaf27 +// 0.094894 +0x2e13 +// 0.044678 +0x29b8 +// -0.170875 +0xb178 +// -0.011095 +0xa1ae +// -0.035290 +0xa884 +// -0.188657 +0xb209 +// 0.004301 +0x1c68 +// -0.028600 +0xa752 +// 0.008004 +0x2019 +// -0.012391 +0xa258 +// -0.062586 +0xac01 +// 0.009467 +0x20d9 +// 0.029996 +0x27ae +// -0.010444 +0xa159 +// -0.034323 +0xa865 +// -0.041181 +0xa945 +// 0.034968 +0x287a +// 0.016463 +0x2437 +// 0.578002 +0x38a0 +// 0.037530 +0x28ce +// 0.119373 +0x2fa4 +// 0.638149 +0x391b +// -0.014550 +0xa373 +// 0.096741 +0x2e31 +// -0.027073 +0xa6ee +// 0.041914 +0x295d +// 0.211704 +0x32c6 +// -0.032022 +0xa819 +// -0.101465 +0xae7e +// 0.035329 +0x2886 +// 0.116101 +0x2f6e +// 0.139299 +0x3075 +// -0.118282 +0xaf92 +// -0.055689 +0xab21 +// -0.274172 +0xb463 +// -0.017802 +0xa48f +// -0.056624 +0xab3f +// -0.302702 +0xb4d8 +// 0.006902 +0x1f11 +// -0.045888 +0xa9e0 +// 0.012842 +0x2293 +// -0.019882 +0xa517 +// -0.100420 +0xae6d +// 0.015189 +0x23c7 +// 0.048129 +0x2a29 +// -0.016758 +0xa44a +// -0.055072 +0xab0d +// -0.066076 +0xac3b +// 0.056106 +0x2b2e +// 0.026416 +0x26c3 +// 0.905747 +0x3b3f +// 0.058810 +0x2b87 +// 0.187061 +0x31fc +// 1.000000 +0x3c00 +// -0.022800 +0xa5d6 +// 0.151595 +0x30da +// -0.042425 +0xa96e +// 0.065680 +0x2c34 +// 0.331746 +0x354f +// -0.050179 +0xaa6c +// -0.158999 +0xb117 +// 0.055362 +0x2b16 +// 0.181934 +0x31d2 +// 0.218286 +0x32fc +// -0.185352 +0xb1ee +// -0.087267 +0xad96 +// 0.772303 +0x3a2e +// 0.050145 +0x2a6b +// 0.159501 +0x311b +// 0.852670 +0x3ad2 +// -0.019441 +0xa4fa +// 0.129261 +0x3023 +// -0.036174 +0xa8a1 +// 0.056004 +0x2b2b +// 0.282870 +0x3487 +// -0.042786 +0xa97a +// -0.135574 +0xb057 +// 0.047205 +0x2a0b +// 0.155130 +0x30f7 +// 0.186125 +0x31f5 +// -0.158044 +0xb10f +// -0.074410 +0xacc3 +// 0.034783 +0x2874 +// 0.002258 +0x18a0 +// 0.007184 +0x1f5b +// 0.038403 +0x28ea +// -0.000876 +0x932c +// 0.005822 +0x1df6 +// -0.001629 +0x96ac +// 0.002522 +0x192a +// 0.012740 +0x2286 +// -0.001927 +0x97e5 +// -0.006106 +0x9e41 +// 0.002126 +0x185b +// 0.006987 +0x1f28 +// 0.008383 +0x204b +// -0.007118 +0x9f4a +// -0.003351 +0x9add +// 0.117536 +0x2f86 +// 0.249464 +0x33fc +// -0.139027 +0xb073 +// -0.117916 +0xaf8c +// 0.194961 +0x323d +// 0.137992 +0x306a +// -0.229509 +0xb358 +// 0.140429 +0x307e +// 0.033904 +0x2857 +// -0.280827 +0xb47e +// -0.101585 +0xae80 +// -0.139293 +0xb075 +// 0.064967 +0x2c28 +// 0.073838 +0x2cba +// 0.331915 +0x3550 +// 0.056383 +0x2b38 +// 0.359793 +0x35c2 +// -0.007314 +0x9f7d +// 0.170460 +0x3174 +// -0.038845 +0xa8f9 +// -0.201458 +0xb272 +// 0.172870 +0x3188 +// -0.035238 +0xa883 +// 0.023154 +0x25ed +// -0.120161 +0xafb1 +// -0.189558 +0xb211 +// 0.160589 +0x3124 +// 0.230598 +0x3361 +// 0.209334 +0x32b3 +// -0.137413 +0xb066 +// 0.138247 +0x306d +// -0.347255 +0xb58e +// 0.169380 +0x316c +// -0.159321 +0xb119 +// -0.100160 +0xae69 +// -0.033294 +0xa843 +// 0.057522 +0x2b5d +// 0.134481 +0x304e +// -0.023994 +0xa624 +// 0.035094 +0x287e +// 0.045938 +0x29e1 +// -0.047489 +0xaa14 +// -0.157637 +0xb10b +// -0.017248 +0xa46a +// 0.006976 +0x1f25 +// 0.052530 +0x2ab9 +// 0.282929 +0x3487 +// 0.038446 +0x28ec +// 0.078080 +0x2cff +// 0.117759 +0x2f89 +// 0.288346 +0x349d +// 0.113080 +0x2f3d +// 0.030573 +0x27d4 +// 0.015253 +0x23cf +// 0.030844 +0x27e5 +// 0.051806 +0x2aa2 +// -0.079255 +0xad13 +// -0.168833 +0xb167 +// -0.075085 +0xacce +// 0.167575 +0x315d +// 0.007047 +0x1f37 +// -0.236167 +0xb38f +// 0.373465 +0x35fa +// -0.121661 +0xafc9 +// -0.074629 +0xacc7 +// 0.217366 +0x32f5 +// 0.088752 +0x2dae +// -0.018422 +0xa4b7 +// 0.082410 +0x2d46 +// 0.053473 +0x2ad8 +// 0.034077 +0x285d +// -0.043400 +0xa98e +// -0.012950 +0xa2a1 +// -0.043510 +0xa992 +// -0.107745 +0xaee5 +// 0.001384 +0x15ab +// 0.022923 +0x25de +// -0.059595 +0xaba1 +// 0.191012 +0x321d +// -0.036682 +0xa8b2 +// -0.070732 +0xac87 +// 0.022568 +0x25c7 +// -0.037329 +0xa8c7 +// 0.012971 +0x22a4 +// 0.151152 +0x30d6 +// 0.026284 +0x26bb +// 0.179239 +0x31bc +// 0.043013 +0x2981 +// 0.006204 +0x1e5a +// 0.035310 +0x2885 +// -0.291595 +0xb4aa +// -0.036275 +0xa8a5 +// 0.020666 +0x254a +// 0.081658 +0x2d3a +// 0.129011 +0x3021 +// 0.148382 +0x30c0 +// 0.246673 +0x33e5 +// -0.100537 +0xae6f +// 0.006794 +0x1ef5 +// 0.055546 +0x2b1c +// -0.077514 +0xacf6 +// -0.061354 +0xabda +// -0.085024 +0xad71 +// 0.213717 +0x32d7 +// -0.060429 +0xabbc +// -0.232907 +0xb374 +// 0.129041 +0x3021 +// 0.063816 +0x2c16 +// 0.097867 +0x2e43 +// 0.043700 +0x2998 +// -0.110948 +0xaf1a +// -0.023994 +0xa624 +// 0.111268 +0x2f1f +// -0.146082 +0xb0ad +// -0.008749 +0xa07b +// 0.163987 +0x313f +// -0.001994 +0x9815 +// -0.236694 +0xb393 +// -0.170843 +0xb178 +// 0.183649 +0x31e0 +// 0.072922 +0x2cab +// -0.305155 +0xb4e2 +// 0.070792 +0x2c88 +// -0.095478 +0xae1c +// -0.075360 +0xacd3 +// 0.148047 +0x30bd +// -0.093912 +0xae03 +// 0.155446 +0x30f9 +// -0.205116 +0xb290 +// 0.148236 +0x30be +// 0.118028 +0x2f8e +// 0.053650 +0x2ade +// -0.071486 +0xac93 +// -0.144332 +0xb09e +// -0.145970 +0xb0ac +// -0.296686 +0xb4bf +// 0.176647 +0x31a7 +// -0.099274 +0xae5a +// 0.097574 +0x2e3f +// -0.172062 +0xb182 +// -0.142657 +0xb091 +// 0.086426 +0x2d88 +// -0.029809 +0xa7a2 +// -0.056540 +0xab3d +// 0.084450 +0x2d68 +// -0.094960 +0xae14 +// -0.055395 +0xab17 +// -0.000955 +0x93d3 +// 0.006531 +0x1eb0 +// 0.037696 +0x28d3 +// 0.241403 +0x33ba +// 0.051553 +0x2a99 +// -0.017979 +0xa49a +// -0.017172 +0xa465 +// -0.221860 +0xb319 +// 0.009627 +0x20ee +// 0.155861 +0x30fd +// 0.205002 +0x328f +// -0.078212 +0xad01 +// 0.062999 +0x2c08 +// 0.084496 +0x2d68 +// -0.129626 +0xb026 +// 0.070037 +0x2c7b +// 0.120204 +0x2fb1 +// -0.025496 +0xa687 +// -0.123832 +0xafed +// -0.100409 +0xae6d +// 0.153546 +0x30ea +// -0.037438 +0xa8cb +// -0.086497 +0xad89 +// 0.127503 +0x3015 +// 0.073025 +0x2cac +// -0.080742 +0xad2b +// -0.115558 +0xaf65 +// -0.009741 +0xa0fd +// 0.031454 +0x2807 +// 0.080692 +0x2d2a +// -0.137355 +0xb065 +// -0.039249 +0xa906 +// 0.075482 +0x2cd5 +// -0.008981 +0xa099 +// -0.082629 +0xad4a +// 0.112688 +0x2f36 +// 0.028565 +0x2750 +// 0.077184 +0x2cf1 +// -0.161658 +0xb12c +// -0.175381 +0xb19d +// -0.086399 +0xad88 +// 0.066592 +0x2c43 +// 0.286262 +0x3495 +// -0.079444 +0xad16 +// 0.113082 +0x2f3d +// -0.035655 +0xa890 +// 0.232817 +0x3373 +// -0.161873 +0xb12e +// -0.163717 +0xb13d +// 0.119338 +0x2fa3 +// 0.109345 +0x2f00 +// -0.101148 +0xae79 +// 0.159310 +0x3119 +// -0.107208 +0xaedc +// 0.075108 +0x2ccf +// 0.092975 +0x2df3 +// -0.010131 +0xa130 +// 0.069853 +0x2c78 +// -0.091761 +0xaddf +// -0.065577 +0xac32 +// 0.026469 +0x26c7 +// -0.008126 +0xa029 +// 0.102284 +0x2e8c +// -0.090781 +0xadcf +// 0.028166 +0x2736 +// 0.140149 +0x307c +// -0.111256 +0xaf1f +// -0.170808 +0xb177 +// 0.238437 +0x33a1 +// -0.012215 +0xa241 +// -0.163311 +0xb13a +// 0.044523 +0x29b3 +// -0.090634 +0xadcd +// -0.041947 +0xa95f +// 0.021479 +0x2580 +// -0.034325 +0xa865 +// 0.172577 +0x3186 +// -0.152287 +0xb0e0 +// 0.083506 +0x2d58 +// 0.167729 +0x315e +// 0.137618 +0x3067 +// 0.113192 +0x2f3f +// -0.138649 +0xb070 +// 0.048800 +0x2a3f +// 0.156913 +0x3105 +// -0.111259 +0xaf1f +// 0.068004 +0x2c5a +// 0.001542 +0x1651 +// 0.120771 +0x2fbb +// -0.121506 +0xafc7 +// -0.276762 +0xb46e +// 0.062214 +0x2bf7 +// 0.088668 +0x2dad +// -0.116122 +0xaf6f +// 0.039630 +0x2913 +// 0.038227 +0x28e5 +// -0.060004 +0xabae +// -0.011235 +0xa1c1 +// 0.103115 +0x2e99 +// 0.224714 +0x3331 +// -0.115731 +0xaf68 +// -0.066334 +0xac3f +// 0.261620 +0x3430 +// -0.088106 +0xada4 +// 0.094629 +0x2e0e +// 0.048606 +0x2a39 +// -0.087035 +0xad92 +// -0.026619 +0xa6d1 +// -0.067528 +0xac52 +// -0.035051 +0xa87d +// -0.188036 +0xb204 +// 0.005062 +0x1d2f +// 0.077099 +0x2cef +// 0.108740 +0x2ef6 +// 0.003207 +0x1a91 +// -0.058514 +0xab7d +// 0.008733 +0x2079 +// 0.049064 +0x2a48 +// 0.112726 +0x2f37 +// -0.100723 +0xae72 +// 0.014863 +0x239c +// -0.219507 +0xb306 +// -0.171981 +0xb181 +// 0.336836 +0x3564 +// 0.112064 +0x2f2c +// 0.177671 +0x31af +// -0.207967 +0xb2a8 +// -0.150081 +0xb0cd +// -0.121779 +0xafcb +// -0.050325 +0xaa71 +// 0.237248 +0x3398 +// -0.028703 +0xa759 +// -0.223639 +0xb328 +// 0.157676 +0x310c +// 0.003147 +0x1a72 +// -0.162616 +0xb134 +// -0.096611 +0xae2f +// 0.027498 +0x270a +// 0.188556 +0x3209 +// 0.289260 +0x34a1 +// -0.074401 +0xacc3 +// -0.025799 +0xa69b +// 0.091799 +0x2de0 +// -0.136758 +0xb060 +// -0.033389 +0xa846 +// 0.249877 +0x33ff +// 0.035724 +0x2893 +// 0.129753 +0x3027 +// 0.359952 +0x35c2 +// -0.164786 +0xb146 +// 0.084249 +0x2d64 +// -0.178561 +0xb1b7 +// 0.056250 +0x2b33 +// 0.072526 +0x2ca4 +// -0.073978 +0xacbc +// 0.008376 +0x204a +// 0.227613 +0x3349 +// 0.081306 +0x2d34 +// 0.106617 +0x2ed3 +// 0.066141 +0x2c3c +// 0.007815 +0x2000 +// -0.012304 +0xa24d +// -0.001407 +0x95c4 +// 0.243164 +0x33c8 +// 0.191618 +0x3222 +// -0.172359 +0xb184 +// -0.060308 +0xabb8 +// -0.064364 +0xac1f +// 0.140924 +0x3082 +// 0.242032 +0x33bf +// 0.034925 +0x2878 +// -0.209968 +0xb2b8 +// -0.028057 +0xa72f +// 0.107204 +0x2edc +// -0.070458 +0xac82 +// -0.391698 +0xb644 +// -0.292922 +0xb4b0 +// 0.009791 +0x2103 +// 0.250538 +0x3402 +// -0.261501 +0xb42f +// 0.105232 +0x2ebc +// -0.068221 +0xac5e +// 0.277601 +0x3471 +// 0.281927 +0x3483 +// -0.014869 +0xa39d +// 0.013280 +0x22cd +// -0.110623 +0xaf14 +// -0.123952 +0xafef +// -0.024252 +0xa635 +// 0.094201 +0x2e07 +// -0.511994 +0xb819 +// -0.044035 +0xa9a3 +// 0.135209 +0x3054 +// -0.010337 +0xa14b +// -0.061309 +0xabd9 +// -0.044104 +0xa9a5 +// 0.119528 +0x2fa6 +// -0.000139 +0x888b +// 0.209902 +0x32b8 +// 0.044605 +0x29b6 +// 0.115403 +0x2f63 +// -0.241444 +0xb3ba +// -0.202513 +0xb27b +// 0.116737 +0x2f79 +// 0.131478 +0x3035 +// 0.128684 +0x301e +// -0.248871 +0xb3f7 +// 0.011553 +0x21ea +// 0.045915 +0x29e1 +// -0.091040 +0xadd4 +// 0.018187 +0x24a8 +// 0.237147 +0x3397 +// 0.030664 +0x27da +// -0.046043 +0xa9e5 +// 0.067413 +0x2c50 +// -0.107362 +0xaedf +// 0.111225 +0x2f1e +// 0.102980 +0x2e97 +// 0.081736 +0x2d3b +// -0.106132 +0xaecb +// -0.007886 +0xa00a +// -0.162741 +0xb135 +// -0.106260 +0xaecd +// 0.282169 +0x3484 +// -0.027517 +0xa70b +// 0.214899 +0x32e0 +// 0.265792 +0x3441 +// -0.235549 +0xb38a +// -0.057909 +0xab6a +// -0.122730 +0xafdb +// 0.096296 +0x2e2a +// 0.145515 +0x30a8 +// 0.071964 +0x2c9b +// 0.076301 +0x2ce2 +// 0.352627 +0x35a4 +// 0.089283 +0x2db7 +// -0.028936 +0xa768 +// -0.193373 +0xb230 +// 0.331960 +0x3550 +// 0.090934 +0x2dd2 +// 0.096734 +0x2e31 +// -0.223492 +0xb327 +// -0.193045 +0xb22d +// -0.324506 +0xb531 +// 0.170571 +0x3175 +// 0.323954 +0x352f +// -0.167083 +0xb159 +// -0.114459 +0xaf53 +// -0.091025 +0xadd3 +// 0.038688 +0x28f4 +// 0.177184 +0x31ab +// 0.029753 +0x279e +// 0.031110 +0x27f7 +// 0.027706 +0x2718 +// 0.014871 +0x239d +// -0.267458 +0xb448 +// -0.341340 +0xb576 +// -0.058081 +0xab6f +// -0.023732 +0xa613 +// -0.199549 +0xb263 +// -0.082572 +0xad49 +// 0.372427 +0x35f5 +// -0.029976 +0xa7ac +// -0.069100 +0xac6c +// 0.010467 +0x215c +// -0.058656 +0xab82 +// -0.411197 +0xb694 +// 0.203414 +0x3282 +// -0.064455 +0xac20 +// 0.245810 +0x33de +// 0.043039 +0x2982 +// -0.216659 +0xb2ef +// -0.072259 +0xaca0 +// -0.526837 +0xb837 +// 0.111144 +0x2f1d +// -0.245614 +0xb3dc +// 0.089560 +0x2dbb +// -0.038568 +0xa8f0 +// -0.083630 +0xad5a +// 0.325415 +0x3535 +// 0.157792 +0x310d +// 0.356698 +0x35b5 +// 0.011619 +0x21f3 +// 0.137705 +0x3068 +// -0.121957 +0xafce +// 0.105129 +0x2eba +// -0.120399 +0xafb5 +// 0.107464 +0x2ee1 +// -0.184938 +0xb1eb +// 0.334005 +0x3558 +// 0.162346 +0x3132 +// -0.221706 +0xb318 +// -0.391716 +0xb644 +// 0.387223 +0x3632 +// 0.026834 +0x26df +// -0.031239 +0xa7ff +// -0.061443 +0xabdd +// 0.087784 +0x2d9e +// 0.071406 +0x2c92 +// 0.128853 +0x3020 +// -0.211409 +0xb2c4 +// -0.157733 +0xb10c +// 0.403106 +0x3673 +// -0.260811 +0xb42c +// 0.064702 +0x2c24 +// 0.180825 +0x31c9 +// 0.051299 +0x2a91 +// -0.250438 +0xb402 +// -0.198470 +0xb25a +// -0.410613 +0xb692 +// 0.009649 +0x20f1 +// 0.173236 +0x318b +// -0.160014 +0xb11f +// 0.239827 +0x33ad +// -0.056094 +0xab2e +// 0.119979 +0x2fae +// 0.168415 +0x3164 +// -0.153469 +0xb0e9 +// 0.354786 +0x35ad +// 0.242333 +0x33c1 +// -0.015451 +0xa3e9 +// -0.241024 +0xb3b6 +// 0.114350 +0x2f52 +// 0.565494 +0x3886 +// -0.318789 +0xb51a +// 0.269504 +0x3450 +// 0.123553 +0x2fe8 +// 0.088189 +0x2da5 +// 0.224317 +0x332e +// 0.243798 +0x33cd +// 0.011820 +0x220d +// 0.131262 +0x3033 +// -0.093577 +0xadfd +// 0.091142 +0x2dd5 +// 0.066119 +0x2c3b +// 0.313813 +0x3505 +// -0.155814 +0xb0fc +// -0.316053 +0xb50f +// 0.170984 +0x3179 +// -0.073187 +0xacaf +// 0.277778 +0x3472 +// -0.047303 +0xaa0e +// 0.380370 +0x3616 +// 0.013129 +0x22b9 +// -0.328519 +0xb542 +// -0.170239 +0xb173 +// -0.166505 +0xb154 +// 0.170633 +0x3176 +// 0.150100 +0x30ce +// 0.103998 +0x2ea8 +// 0.266004 +0x3442 +// 0.049393 +0x2a52 +// -0.031229 +0xa7ff +// 0.286962 +0x3497 +// -0.103335 +0xae9d +// -0.070772 +0xac88 +// 0.253624 +0x340f +// 0.199561 +0x3263 +// 0.104611 +0x2eb2 +// 0.371748 +0x35f3 +// 0.500508 +0x3801 +// -0.384243 +0xb626 +// -0.006115 +0x9e43 +// 0.156951 +0x3106 +// 0.314416 +0x3508 +// 0.055252 +0x2b13 +// 0.270556 +0x3454 +// -0.399051 +0xb663 +// -0.038002 +0xa8dd +// -0.011588 +0xa1ef +// 0.239818 +0x33ad +// 0.016883 +0x2452 +// -0.226135 +0xb33c +// 0.172602 +0x3186 +// 0.166240 +0x3152 +// 0.281027 +0x347f +// -0.243815 +0xb3cd +// -0.321652 +0xb525 +// 0.192761 +0x322b +// -0.418975 +0xb6b4 +// -0.084496 +0xad68 +// -0.140894 +0xb082 +// -0.310930 +0xb4fa +// 0.087489 +0x2d99 +// -0.048962 +0xaa44 +// 0.001622 +0x16a4 +// 0.214148 +0x32da +// -0.056742 +0xab43 +// -0.062327 +0xabfa +// 0.125148 +0x3001 +// -0.012588 +0xa272 +// 0.358556 +0x35bd +// -0.218171 +0xb2fb +// 0.080190 +0x2d22 +// -0.357513 +0xb5b8 +// -0.068947 +0xac6a +// 0.297341 +0x34c2 +// 0.115719 +0x2f68 +// -0.283655 +0xb48a +// -0.177734 +0xb1b0 +// -0.012193 +0xa23e +// 0.085510 +0x2d79 +// 0.077763 +0x2cfa +// 0.251761 +0x3407 +// 0.236265 +0x338f +// -0.000911 +0x9376 +// -0.031267 +0xa801 +// 0.177677 +0x31b0 +// 0.116887 +0x2f7b +// 0.001101 +0x1483 +// -0.194392 +0xb238 +// -0.123931 +0xafee +// -0.256085 +0xb419 +// -0.104551 +0xaeb1 +// 0.231695 +0x336a +// 0.380381 +0x3616 +// -0.052914 +0xaac6 +// 0.196462 +0x3249 +// -0.308481 +0xb4f0 +// 0.036496 +0x28ac +// 0.132462 +0x303d +// 0.025745 +0x2697 +// -0.161041 +0xb127 +// 0.380543 +0x3617 +// -0.274637 +0xb465 +// 0.173001 +0x3189 +// -0.273604 +0xb461 +// -0.312119 +0xb4fe +// -0.233874 +0xb37c +// 0.336289 +0x3561 +// 0.157511 +0x310a +// 0.171447 +0x317c +// 0.516104 +0x3821 +// 0.076310 +0x2ce2 +// 0.107553 +0x2ee2 +// -0.247201 +0xb3e9 +// -0.162391 +0xb132 +// 0.109267 +0x2efe +// -0.099968 +0xae66 +// -0.255652 +0xb417 +// 0.079879 +0x2d1d +// 0.001816 +0x1770 +// -0.389168 +0xb63a +// -0.086548 +0xad8a +// -0.028457 +0xa749 +// 0.346805 +0x358d +// -0.115323 +0xaf61 +// 0.245342 +0x33da +// 0.000978 +0x1401 +// -0.132847 +0xb040 +// -0.128275 +0xb01b +// -0.031466 +0xa807 +// -0.147110 +0xb0b5 +// -0.012362 +0xa254 +// -0.301706 +0xb4d4 +// 0.259612 +0x3427 +// -0.261177 +0xb42e +// -0.300292 +0xb4ce +// 0.303795 +0x34dc +// 0.270840 +0x3455 +// -0.184081 +0xb1e4 +// -0.405082 +0xb67b +// -0.345493 +0xb587 +// 0.010036 +0x2123 +// 0.228403 +0x334f +// -0.288916 +0xb49f +// -0.213231 +0xb2d3 +// -0.220109 +0xb30b +// -0.172014 +0xb181 +// 0.212425 +0x32cc +// -0.049038 +0xaa47 +// 0.164197 +0x3141 +// 0.193579 +0x3232 +// -0.051250 +0xaa8f +// 0.090992 +0x2dd3 +// -0.270545 +0xb454 +// 0.154619 +0x30f3 +// -0.001542 +0x9650 +// 0.015597 +0x23fc +// 0.059024 +0x2b8e +// -0.321425 +0xb525 +// -0.134982 +0xb052 +// -0.284916 +0xb48f +// 0.101841 +0x2e85 +// -0.466126 +0xb775 +// -0.246487 +0xb3e3 +// -0.172460 +0xb185 +// -0.091421 +0xadda +// -0.001726 +0x9712 +// -0.250864 +0xb404 +// -0.173556 +0xb18e +// 0.019791 +0x2511 +// 0.333249 +0x3555 +// 0.312440 +0x3500 +// -0.033694 +0xa850 +// -0.105603 +0xaec2 +// -0.183570 +0xb1e0 +// 0.085264 +0x2d75 +// -0.572429 +0xb894 +// -0.071269 +0xac90 +// -0.044286 +0xa9ab +// -0.007068 +0x9f3d +// 0.223571 +0x3327 +// 0.049262 +0x2a4e +// 0.066909 +0x2c48 +// 0.255549 +0x3417 +// 0.101527 +0x2e7f +// -0.120334 +0xafb4 +// -0.073459 +0xacb4 +// -0.216781 +0xb2f0 +// -0.015347 +0xa3dc +// -0.101494 +0xae7f +// 0.301141 +0x34d1 +// -0.032346 +0xa824 +// -0.075485 +0xacd5 +// 0.002386 +0x18e3 +// -0.142817 +0xb092 +// -0.226298 +0xb33e +// -0.071801 +0xac98 +// 0.252827 +0x340c +// 0.123199 +0x2fe2 +// -0.265708 +0xb440 +// -0.231708 +0xb36a +// 0.359569 +0x35c1 +// -0.398459 +0xb660 +// 0.180583 +0x31c7 +// 0.078182 +0x2d01 +// 0.288946 +0x34a0 +// -0.221240 +0xb314 +// -0.176953 +0xb1aa +// 0.226654 +0x3341 +// -0.215395 +0xb2e5 +// -0.128837 +0xb01f +// -0.285748 +0xb492 +// -0.021056 +0xa564 +// -0.000912 +0x9378 +// 0.398417 +0x3660 +// -0.098600 +0xae4f +// -0.072520 +0xaca4 +// -0.448177 +0xb72c +// -0.136452 +0xb05e +// -0.203780 +0xb285 +// 0.030226 +0x27bd +// 0.013857 +0x2318 +// -0.395978 +0xb656 +// 0.144011 +0x309c +// 0.167469 +0x315c +// -0.060620 +0xabc2 +// 0.139915 +0x307a +// -0.030341 +0xa7c4 +// -0.462355 +0xb766 +// -0.034222 +0xa861 +// 0.161929 +0x312f +// 0.130170 +0x302a +// 0.004767 +0x1ce2 +// 0.089723 +0x2dbe +// -0.023401 +0xa5fe +// 0.178485 +0x31b6 +// 0.106346 +0x2ece +// -0.107212 +0xaedd +// 0.082973 +0x2d4f +// -0.024595 +0xa64c +// 0.156651 +0x3103 +// 0.204887 +0x328e +// 0.113929 +0x2f4b +// 0.089498 +0x2dba +// -0.570868 +0xb891 +// 0.000414 +0xec7 +// -0.092206 +0xade7 +// -0.050001 +0xaa66 +// 0.091527 +0x2ddc +// -0.132242 +0xb03b +// 0.213090 +0x32d2 +// 0.317862 +0x3516 +// -0.130387 +0xb02c +// 0.038027 +0x28de +// 0.196521 +0x324a +// 0.078548 +0x2d07 +// 0.024838 +0x265c +// 0.103797 +0x2ea5 +// -0.148301 +0xb0bf +// 0.025090 +0x266c +// -0.009860 +0xa10c +// 0.241674 +0x33bc +// 0.045615 +0x29d7 +// 0.316373 +0x3510 +// 0.038419 +0x28eb +// 0.105614 +0x2ec2 +// 0.402169 +0x366f +// -0.000708 +0x91cd +// -0.203180 +0xb280 +// -0.435005 +0xb6f6 +// 0.080888 +0x2d2d +// -0.126525 +0xb00c +// -0.035756 +0xa894 +// -0.056274 +0xab34 +// -0.216975 +0xb2f1 +// -0.214247 +0xb2db +// -0.255911 +0xb418 +// 0.286884 +0x3497 +// -0.242841 +0xb3c5 +// 0.245825 +0x33de +// 0.268287 +0x344b +// -0.237584 +0xb39a +// -0.231369 +0xb367 +// -0.068916 +0xac69 +// 0.485550 +0x37c5 +// -0.251618 +0xb407 +// -0.192668 +0xb22a +// 0.098454 +0x2e4d +// 0.267278 +0x3447 +// -0.084550 +0xad69 +// 0.164737 +0x3146 +// 0.131762 +0x3037 +// -0.096289 +0xae2a +// 0.215714 +0x32e7 +// -0.335316 +0xb55d +// -0.086775 +0xad8e +// -0.323130 +0xb52c +// -0.066494 +0xac41 +// 0.145343 +0x30a7 +// -0.045516 +0xa9d3 +// 0.099314 +0x2e5b +// -0.162771 +0xb135 +// 0.210853 +0x32bf +// 0.052012 +0x2aa8 +// 0.025159 +0x2671 +// 0.216720 +0x32ef +// 0.159863 +0x311e +// -0.208946 +0xb2b0 +// 0.210367 +0x32bb +// -0.318148 +0xb517 +// -0.164516 +0xb144 +// 0.310512 +0x34f8 +// -0.110438 +0xaf11 +// 0.089857 +0x2dc0 +// -0.203343 +0xb282 +// 0.430814 +0x36e5 +// 0.162733 +0x3135 +// 0.096374 +0x2e2b +// -0.153673 +0xb0eb +// 0.223957 +0x332b +// -0.338020 +0xb569 +// 0.390320 +0x363f +// -0.090042 +0xadc3 +// 0.019563 +0x2502 +// -0.147969 +0xb0bc +// 0.140617 +0x3080 +// -0.226286 +0xb33e +// 0.033127 +0x283d +// -0.333583 +0xb556 +// -0.027969 +0xa729 +// -0.249230 +0xb3fa +// -0.187043 +0xb1fc +// 0.176644 +0x31a7 +// -0.107141 +0xaedb +// -0.076338 +0xace3 +// 0.193978 +0x3235 +// -0.373544 +0xb5fa +// -0.107285 +0xaede +// -0.045332 +0xa9cd +// -0.477096 +0xb7a2 +// -0.210785 +0xb2bf +// -0.201116 +0xb270 +// 0.190852 +0x321b +// -0.079213 +0xad12 +// 0.020367 +0x2537 +// -0.345829 +0xb589 +// 0.070038 +0x2c7c +// 0.097918 +0x2e44 +// -0.086947 +0xad91 +// 0.083931 +0x2d5f +// -0.653854 +0xb93b +// 0.078236 +0x2d02 +// 0.110662 +0x2f15 +// -0.130320 +0xb02c +// -0.061247 +0xabd7 +// -0.076714 +0xace9 +// 0.042480 +0x2970 +// -0.025729 +0xa696 +// 0.083600 +0x2d5a +// -0.238944 +0xb3a5 +// 0.016911 +0x2454 +// -0.244425 +0xb3d2 +// -0.118124 +0xaf8f +// -0.204239 +0xb289 +// -0.286680 +0xb496 +// 0.175399 +0x319d +// -0.037598 +0xa8d0 +// -0.076844 +0xaceb +// -0.014732 +0xa38b +// 0.119848 +0x2fac +// 0.075204 +0x2cd0 +// 0.264123 +0x343a +// -0.398780 +0xb661 +// 0.179159 +0x31bc +// -0.288857 +0xb49f +// 0.240223 +0x33b0 +// -0.003423 +0x9b03 +// -0.028418 +0xa746 +// 0.076538 +0x2ce6 +// -0.090618 +0xadcd +// -0.275157 +0xb467 +// 0.043179 +0x2987 +// -0.095398 +0xae1b +// 0.392660 +0x3648 +// 0.079394 +0x2d15 +// -0.149676 +0xb0ca +// -0.049024 +0xaa46 +// -0.174702 +0xb197 +// 0.094634 +0x2e0e +// 0.152788 +0x30e4 +// -0.165646 +0xb14d +// -0.017329 +0xa470 +// 0.117316 +0x2f82 +// 0.270004 +0x3452 +// -0.286321 +0xb495 +// 0.360854 +0x35c6 +// 0.056316 +0x2b35 +// 0.050885 +0x2a83 +// 0.061793 +0x2be9 +// 0.047273 +0x2a0d +// 0.076451 +0x2ce5 +// -0.190391 +0xb218 +// -0.000459 +0x8f86 +// -0.061532 +0xabe0 +// -0.434065 +0xb6f2 +// -0.550056 +0xb867 +// -0.277316 +0xb470 +// 0.054183 +0x2aef +// 0.087527 +0x2d9a +// 0.140773 +0x3081 +// 0.225046 +0x3334 +// 0.131933 +0x3039 +// -0.346319 +0xb58b +// 0.004816 +0x1cef +// -0.139191 +0xb074 +// 0.334568 +0x355a +// -0.076938 +0xaced +// -0.079207 +0xad12 +// 0.061586 +0x2be2 +// -0.099565 +0xae5f +// 0.038953 +0x28fc +// 0.076003 +0x2cdd +// 0.100428 +0x2e6d +// 0.106658 +0x2ed3 +// -0.169807 +0xb16f +// 0.420957 +0x36bc +// 0.302808 +0x34d8 +// -0.161319 +0xb12a +// -0.106485 +0xaed1 +// 0.333086 +0x3554 +// 0.061101 +0x2bd2 +// 0.081707 +0x2d3b +// 0.084433 +0x2d67 +// 0.045385 +0x29cf +// 0.463898 +0x376c +// -0.019526 +0xa500 +// 0.017060 +0x245e +// -0.137051 +0xb063 +// -0.381190 +0xb619 +// -0.356610 +0xb5b5 +// 0.239858 +0x33ad +// -0.204119 +0xb288 +// -0.167497 +0xb15c +// -0.091562 +0xaddc +// -0.267211 +0xb446 +// 0.154608 +0x30f3 +// 0.059353 +0x2b99 +// -0.087103 +0xad93 +// -0.135986 +0xb05a +// 0.051371 +0x2a93 +// 0.075924 +0x2cdc +// -0.371763 +0xb5f3 +// -0.113889 +0xaf4a +// -0.072408 +0xaca2 +// -0.105047 +0xaeb9 +// -0.070145 +0xac7d +// -0.340833 +0xb574 +// -0.011449 +0xa1dd +// 0.009595 +0x20ea +// -0.131062 +0xb032 +// -0.040210 +0xa926 +// 0.038899 +0x28fb +// -0.007571 +0x9fc1 +// -0.246115 +0xb3e0 +// 0.512757 +0x381a +// 0.336289 +0x3561 +// -0.224777 +0xb331 +// -0.332635 +0xb552 +// -0.008878 +0xa08c +// -0.109056 +0xaefb +// 0.045222 +0x29ca +// -0.109190 +0xaefd +// -0.298906 +0xb4c8 +// 0.114114 +0x2f4e +// -0.150378 +0xb0d0 +// -0.176174 +0xb1a3 +// 0.240248 +0x33b0 +// 0.103586 +0x2ea1 +// -0.173555 +0xb18e +// 0.037689 +0x28d3 +// -0.291969 +0xb4ac +// 0.323686 +0x352e +// -0.275271 +0xb468 +// 0.097434 +0x2e3c +// 0.252397 +0x340a +// -0.191377 +0xb220 +// -0.194711 +0xb23b +// 0.046195 +0x29ea +// 0.372035 +0x35f4 +// 0.216975 +0x32f1 +// -0.042772 +0xa97a +// -0.088852 +0xadb0 +// -0.085093 +0xad72 +// 0.123208 +0x2fe3 +// -0.263330 +0xb437 +// -0.234400 +0xb380 +// -0.158721 +0xb114 +// -0.141077 +0xb084 +// 0.266214 +0x3442 +// 0.234793 +0x3383 +// -0.004963 +0x9d15 +// -0.241522 +0xb3bb +// 0.215391 +0x32e4 +// 0.438811 +0x3705 +// -0.247244 +0xb3e9 +// -0.117176 +0xaf80 +// -0.345751 +0xb588 +// -0.033721 +0xa851 +// -0.028861 +0xa763 +// 0.049164 +0x2a4b +// -0.374182 +0xb5fd +// -0.475183 +0xb79a +// -0.114060 +0xaf4d +// 0.285829 +0x3493 +// 0.061365 +0x2bdb +// -0.174668 +0xb197 +// -0.149387 +0xb0c8 +// 0.089656 +0x2dbd +// -0.021798 +0xa595 +// -0.038535 +0xa8ef +// 0.181102 +0x31cc +// 0.179697 +0x31c0 +// 0.335163 +0x355d +// -0.120577 +0xafb8 +// 0.092868 +0x2df2 +// 0.254138 +0x3411 +// 0.176135 +0x31a3 +// 0.251123 +0x3405 +// -0.011414 +0xa1d8 +// 0.297374 +0x34c2 +// 0.241279 +0x33b9 +// -0.166432 +0xb153 +// 0.043193 +0x2987 +// 0.276057 +0x346b +// 0.163775 +0x313e +// 0.224115 +0x332c +// 0.005014 +0x1d22 +// -0.251615 +0xb407 +// 0.318554 +0x3519 +// -0.225401 +0xb336 +// 0.166410 +0x3153 +// -0.134862 +0xb051 +// 0.131543 +0x3036 +// -0.082544 +0xad48 +// -0.297928 +0xb4c4 +// -0.038457 +0xa8ec +// 0.250085 +0x3400 +// 0.013764 +0x230c +// -0.326353 +0xb539 +// 0.149156 +0x30c6 +// 0.179791 +0x31c1 +// -0.366194 +0xb5dc +// -0.063798 +0xac15 +// 0.448298 +0x372c +// -0.293082 +0xb4b0 +// -0.413013 +0xb69c +// 0.047942 +0x2a23 +// -0.217236 +0xb2f4 +// -0.291744 +0xb4ab +// 0.366189 +0x35dc +// 0.234574 +0x3382 +// 0.178509 +0x31b6 +// 0.059772 +0x2ba7 +// 0.053551 +0x2adb +// -0.246396 +0xb3e2 +// -0.169597 +0xb16d +// 0.099415 +0x2e5d +// 0.220273 +0x330c +// 0.092966 +0x2df3 +// 0.107464 +0x2ee1 +// -0.011941 +0xa21d +// -0.046888 +0xaa00 +// -0.126272 +0xb00a +// -0.261705 +0xb430 +// 0.093570 +0x2dfd +// 0.055748 +0x2b23 +// 0.012356 +0x2254 +// 0.156548 +0x3102 +// 0.069252 +0x2c6f +// 0.228073 +0x334c +// -0.115788 +0xaf69 +// -0.214117 +0xb2da +// 0.195411 +0x3241 +// -0.131707 +0xb037 +// 0.017860 +0x2492 +// -0.054565 +0xaafc +// 0.165054 +0x3148 +// -0.210963 +0xb2c0 +// 0.200404 +0x326a +// 0.513656 +0x381c +// 0.151654 +0x30da +// 0.091417 +0x2dda +// 0.093817 +0x2e01 +// -0.163659 +0xb13d +// -0.473273 +0xb793 +// 0.083155 +0x2d52 +// -0.317401 +0xb514 +// 0.030624 +0x27d7 +// 0.122063 +0x2fd0 +// 0.056549 +0x2b3d +// -0.046717 +0xa9fb +// 0.016961 +0x2458 +// -0.078953 +0xad0e +// -0.431118 +0xb6e6 +// -0.152640 +0xb0e2 +// -0.107828 +0xaee7 +// 0.001036 +0x143e +// -0.034462 +0xa869 +// -0.278029 +0xb473 +// -0.171102 +0xb17a +// -0.263277 +0xb436 +// 0.127561 +0x3015 +// 0.234899 +0x3384 +// -0.119886 +0xafac +// -0.352730 +0xb5a5 +// -0.110239 +0xaf0e +// -0.366306 +0xb5dc +// -0.069489 +0xac73 +// 0.251706 +0x3407 +// -0.072890 +0xacaa +// 0.314126 +0x3507 +// 0.138911 +0x3072 +// -0.095998 +0xae25 +// -0.172650 +0xb186 +// 0.012978 +0x22a5 +// -0.395068 +0xb652 +// 0.173590 +0x318e +// -0.308032 +0xb4ee +// 0.130941 +0x3031 +// 0.134141 +0x304b +// -0.139071 +0xb073 +// 0.305134 +0x34e2 +// 0.066052 +0x2c3a +// 0.219914 +0x330a +// 0.063469 +0x2c10 +// 0.550968 +0x3868 +// 0.309389 +0x34f3 +// -0.126898 +0xb010 +// 0.654015 +0x393b +// -0.051000 +0xaa87 +// 0.053087 +0x2acc +// 0.010004 +0x211f +// -0.537607 +0xb84d +// -0.285703 +0xb492 +// -0.331159 +0xb54c +// 0.134992 +0x3052 +// -0.422243 +0xb6c2 +// 0.320856 +0x3522 +// -0.464412 +0xb76e +// 0.017142 +0x2463 +// 0.099999 +0x2e66 +// -0.139317 +0xb075 +// -0.460819 +0xb760 +// 0.118334 +0x2f93 +// -0.457373 +0xb751 +// -0.321916 +0xb527 +// -0.096908 +0xae34 +// 0.090905 +0x2dd1 +// 0.720127 +0x39c3 +// 0.404378 +0x3678 +// -0.165858 +0xb14f +// 0.854811 +0x3ad7 +// -0.066658 +0xac44 +// 0.069386 +0x2c71 +// 0.013075 +0x22b2 +// -0.702663 +0xb99f +// -0.373420 +0xb5fa +// -0.432832 +0xb6ed +// 0.176437 +0x31a5 +// -0.551880 +0xb86a +// 0.419365 +0x36b6 +// -0.606995 +0xb8db +// 0.022405 +0x25bc +// 0.130701 +0x302f +// -0.182090 +0xb1d4 +// -0.602299 +0xb8d2 +// 0.154665 +0x30f3 +// -0.597797 +0xb8c8 +// -0.420751 +0xb6bb +// -0.126660 +0xb00e +// 0.118815 +0x2f9b +// -0.446344 +0xb724 +// -0.250639 +0xb403 +// 0.102801 +0x2e94 +// -0.529823 +0xb83d +// 0.041315 +0x294a +// -0.043007 +0xa981 +// -0.008104 +0xa026 +// 0.435520 +0x36f8 +// 0.231451 +0x3368 +// 0.268275 +0x344b +// -0.109358 +0xaf00 +// 0.342062 +0x3579 +// -0.259928 +0xb429 +// 0.376224 +0x3605 +// -0.013887 +0xa31c +// -0.081010 +0xad2f +// 0.112862 +0x2f39 +// 0.373313 +0x35f9 +// -0.095863 +0xae23 +// 0.370522 +0x35ee +// 0.260787 +0x342c +// 0.078506 +0x2d06 +// -0.073643 +0xacb7 +// -0.625982 +0xb902 +// -0.351512 +0xb5a0 +// 0.144175 +0x309d +// -0.743058 +0xb9f2 +// 0.057943 +0x2b6b +// -0.060315 +0xabb8 +// -0.011366 +0xa1d2 +// 0.610801 +0x38e3 +// 0.324601 +0x3532 +// 0.376246 +0x3605 +// -0.153370 +0xb0e8 +// 0.479730 +0x37ad +// -0.364540 +0xb5d5 +// 0.527640 +0x3839 +// -0.019476 +0xa4fc +// -0.113614 +0xaf45 +// 0.158285 +0x3111 +// 0.523558 +0x3830 +// -0.134445 +0xb04d +// 0.519644 +0x3828 +// 0.365744 +0x35da +// 0.110102 +0x2f0c +// -0.103282 +0xae9c +// 0.100521 +0x2e6f +// 0.056447 +0x2b3a +// -0.023152 +0xa5ed +// 0.119322 +0x2fa3 +// -0.009305 +0xa0c4 +// 0.009686 +0x20f6 +// 0.001825 +0x177a +// -0.098084 +0xae47 +// -0.052125 +0xaaac +// -0.060418 +0xabbc +// 0.024629 +0x264e +// -0.077036 +0xacee +// 0.058539 +0x2b7e +// -0.084730 +0xad6c +// 0.003128 +0x1a68 +// 0.018244 +0x24ac +// -0.025418 +0xa682 +// -0.084074 +0xad61 +// 0.021589 +0x2587 +// -0.083446 +0xad57 +// -0.058732 +0xab85 +// -0.017680 +0xa487 +// 0.016585 +0x243f +// 0.340516 +0x3573 +// 0.191213 +0x321e +// -0.078427 +0xad05 +// 0.404203 +0x3678 +// -0.031520 +0xa809 +// 0.032810 +0x2833 +// 0.006183 +0x1e55 +// -0.332258 +0xb551 +// -0.176574 +0xb1a6 +// -0.204667 +0xb28d +// 0.083429 +0x2d57 +// -0.260960 +0xb42d +// 0.198299 +0x3258 +// -0.287022 +0xb498 +// 0.010595 +0x216d +// 0.061803 +0x2be9 +// -0.086103 +0xad83 +// -0.284801 +0xb48f +// 0.073134 +0x2cae +// -0.282672 +0xb486 +// -0.198955 +0xb25e +// -0.059892 +0xabab +// 0.056182 +0x2b31 +// 0.071982 +0x2c9b +// 0.040421 +0x292d +// -0.016579 +0xa43f +// 0.085445 +0x2d78 +// -0.006663 +0x9ed3 +// 0.006936 +0x1f1a +// 0.001307 +0x155a +// -0.070236 +0xac7f +// -0.037326 +0xa8c7 +// -0.043265 +0xa98a +// 0.017636 +0x2484 +// -0.055164 +0xab10 +// 0.041919 +0x295e +// -0.060674 +0xabc4 +// 0.002240 +0x1896 +// 0.013065 +0x22b0 +// -0.018201 +0xa4a9 +// -0.060204 +0xabb5 +// 0.015460 +0x23ea +// -0.059754 +0xaba6 +// -0.042057 +0xa962 +// -0.012661 +0xa27b +// 0.011876 +0x2215 +// 0.272819 +0x345d +// 0.153198 +0x30e7 +// -0.062835 +0xac05 +// 0.323844 +0x352e +// -0.025253 +0xa677 +// 0.026287 +0x26bb +// 0.004953 +0x1d13 +// -0.266203 +0xb442 +// -0.141470 +0xb087 +// -0.163978 +0xb13f +// 0.066843 +0x2c47 +// -0.209079 +0xb2b1 +// 0.158876 +0x3116 +// -0.229959 +0xb35c +// 0.008488 +0x2059 +// 0.049516 +0x2a57 +// -0.068985 +0xac6a +// -0.228180 +0xb34d +// 0.058595 +0x2b80 +// -0.226474 +0xb33f +// -0.159401 +0xb11a +// -0.047985 +0xaa24 +// 0.045013 +0x29c3 +// 0.176213 +0x31a4 +// 0.098950 +0x2e55 +// -0.040585 +0xa932 +// 0.209170 +0x32b2 +// -0.016311 +0xa42d +// 0.016979 +0x2459 +// 0.003199 +0x1a8d +// -0.171939 +0xb181 +// -0.091375 +0xadd9 +// -0.105913 +0xaec7 +// 0.043174 +0x2987 +// -0.135043 +0xb052 +// 0.102617 +0x2e91 +// -0.148530 +0xb0c1 +// 0.005483 +0x1d9d +// 0.031982 +0x2818 +// -0.044557 +0xa9b4 +// -0.147381 +0xb0b7 +// 0.037846 +0x28d8 +// -0.146279 +0xb0ae +// -0.102956 +0xae97 +// -0.030993 +0xa7ef +// 0.029074 +0x2771 +// 0.697055 +0x3994 +// 0.391422 +0x3643 +// -0.160544 +0xb123 +// 0.827424 +0x3a9f +// -0.064522 +0xac21 +// 0.067163 +0x2c4c +// 0.012656 +0x227b +// -0.680150 +0xb971 +// -0.361456 +0xb5c9 +// -0.418964 +0xb6b4 +// 0.170784 +0x3177 +// -0.534198 +0xb846 +// 0.405929 +0x367f +// -0.587548 +0xb8b3 +// 0.021688 +0x258d +// 0.126513 +0x300c +// -0.176256 +0xb1a4 +// -0.583002 +0xb8aa +// 0.149710 +0x30ca +// -0.578644 +0xb8a1 +// -0.407270 +0xb684 +// -0.122602 +0xafd9 +// 0.115008 +0x2f5c +// -0.002386 +0x98e3 +// -0.001340 +0x957d +// 0.000549 +0x1080 +// -0.002832 +0x99cd +// 0.000221 +0xb3c +// -0.000230 +0x8b88 +// -0.000043 +0x82d7 +// 0.002328 +0x18c4 +// 0.001237 +0x1511 +// 0.001434 +0x15e0 +// -0.000585 +0x90ca +// 0.001828 +0x177d +// -0.001389 +0x95b1 +// 0.002011 +0x181e +// -0.000074 +0x84dd +// -0.000433 +0x8f18 +// 0.000603 +0x10f1 +// 0.001995 +0x1816 +// -0.000512 +0x9033 +// 0.001980 +0x180e +// 0.001394 +0x15b6 +// 0.000420 +0xee0 +// -0.000394 +0x8e73 +// 0.218311 +0x32fc +// 0.122590 +0x2fd9 +// -0.050281 +0xaa70 +// 0.259142 +0x3425 +// -0.020208 +0xa52c +// 0.021035 +0x2563 +// 0.003964 +0x1c0f +// -0.213017 +0xb2d1 +// -0.113205 +0xaf3f +// -0.131216 +0xb033 +// 0.053488 +0x2ad9 +// -0.167306 +0xb15b +// 0.127133 +0x3011 +// -0.184015 +0xb1e3 +// 0.006792 +0x1ef5 +// 0.039623 +0x2912 +// -0.055202 +0xab11 +// -0.182591 +0xb1d8 +// 0.046888 +0x2a00 +// -0.181226 +0xb1cd +// -0.127553 +0xb015 +// -0.038398 +0xa8ea +// 0.036020 +0x289c +// -0.842440 +0xbabd +// -0.473061 +0xb792 +// 0.194029 +0x3235 +// -1.000000 +0xbc00 +// 0.077980 +0x2cfe +// -0.081172 +0xad32 +// -0.015296 +0xa3d5 +// 0.822010 +0x3a93 +// 0.436845 +0x36fd +// 0.506348 +0x380d +// -0.206404 +0xb29b +// 0.645616 +0x392a +// -0.490594 +0xb7d9 +// 0.710093 +0x39ae +// -0.026211 +0xa6b6 +// -0.152900 +0xb0e5 +// 0.213018 +0x32d1 +// 0.704599 +0x39a3 +// -0.180935 +0xb1ca +// 0.699332 +0x3998 +// 0.492215 +0x37e0 +// 0.148174 +0x30be +// -0.138996 +0xb073 +// 0.348515 +0x3594 +// 0.195704 +0x3243 +// -0.080269 +0xad23 +// 0.413697 +0x369f +// -0.032260 +0xa821 +// 0.033580 +0x284c +// 0.006328 +0x1e7b +// -0.340063 +0xb571 +// -0.180722 +0xb1c8 +// -0.209475 +0xb2b4 +// 0.085389 +0x2d77 +// -0.267090 +0xb446 +// 0.202957 +0x327f +// -0.293764 +0xb4b3 +// 0.010843 +0x218d +// 0.063254 +0x2c0c +// -0.088125 +0xada4 +// -0.291491 +0xb4aa +// 0.074852 +0x2cca +// -0.289312 +0xb4a1 +// -0.203628 +0xb284 +// -0.061299 +0xabd9 +// 0.057502 +0x2b5c +// -0.737519 +0xb9e6 +// -0.414144 +0xb6a0 +// 0.169864 +0x3170 +// -0.875457 +0xbb01 +// 0.068268 +0x2c5e +// -0.071062 +0xac8c +// -0.013391 +0xa2db +// 0.719634 +0x39c2 +// 0.382439 +0x361e +// 0.443286 +0x3718 +// -0.180698 +0xb1c8 +// 0.565209 +0x3886 +// -0.429493 +0xb6df +// 0.621656 +0x38f9 +// -0.022947 +0xa5e0 +// -0.133858 +0xb049 +// 0.186488 +0x31f8 +// 0.616846 +0x38ef +// -0.158400 +0xb112 +// 0.612235 +0x38e6 +// 0.430913 +0x36e5 +// 0.129720 +0x3027 +// -0.121685 +0xafca +// -0.674629 +0xb966 +// -0.378829 +0xb610 +// 0.155379 +0x30f9 +// -0.800804 +0xba68 +// 0.062446 +0x2bfe +// -0.065003 +0xac29 +// -0.012249 +0xa245 +// 0.658268 +0x3944 +// 0.349827 +0x3599 +// 0.405485 +0x367d +// -0.165289 +0xb14a +// 0.517012 +0x3823 +// -0.392869 +0xb649 +// 0.568645 +0x388d +// -0.020990 +0xa560 +// -0.122443 +0xafd6 +// 0.170586 +0x3175 +// 0.564246 +0x3884 +// -0.144893 +0xb0a3 +// 0.560027 +0x387b +// 0.394167 +0x364f +// 0.118658 +0x2f98 +// -0.111308 +0xaf20 +// 0.238102 +0x339f +// 0.133703 +0x3047 +// -0.054839 +0xab05 +// 0.282633 +0x3486 +// -0.022040 +0xa5a4 +// 0.022942 +0x25e0 +// 0.004323 +0x1c6d +// -0.232327 +0xb36f +// -0.123467 +0xafe7 +// -0.143111 +0xb094 +// 0.058337 +0x2b78 +// -0.182473 +0xb1d7 +// 0.138658 +0x3070 +// -0.200696 +0xb26c +// 0.007408 +0x1f96 +// 0.043215 +0x2988 +// -0.060206 +0xabb5 +// -0.199143 +0xb25f +// 0.051138 +0x2a8c +// -0.197655 +0xb253 +// -0.139116 +0xb074 +// -0.041879 +0xa95c +// 0.039285 +0x2907 +// 0.088924 +0x2db1 +// 0.049934 +0x2a64 +// -0.020481 +0xa53e +// 0.105555 +0x2ec1 +// -0.008231 +0xa037 +// 0.008568 +0x2063 +// 0.001615 +0x169d +// -0.086767 +0xad8e +// -0.046111 +0xa9e7 +// -0.053448 +0xaad7 +// 0.021787 +0x2594 +// -0.068148 +0xac5d +// 0.051785 +0x2aa1 +// -0.074954 +0xaccc +// 0.002767 +0x19ab +// 0.016139 +0x2422 +// -0.022485 +0xa5c2 +// -0.074374 +0xacc3 +// 0.019099 +0x24e4 +// -0.073818 +0xacb9 +// -0.051956 +0xaaa6 +// -0.015640 +0xa401 +// 0.014672 +0x2383 +// -0.217558 +0xb2f6 +// -0.122167 +0xafd2 +// 0.050108 +0x2a6a +// -0.258248 +0xb422 +// 0.020138 +0x2528 +// -0.020962 +0xa55e +// -0.003950 +0x9c0b +// 0.212282 +0x32cb +// 0.112814 +0x2f38 +// 0.130763 +0x302f +// -0.053304 +0xaad3 +// 0.166729 +0x3156 +// -0.126695 +0xb00e +// 0.183380 +0x31de +// -0.006769 +0x9eee +// -0.039486 +0xa90e +// 0.055012 +0x2b0b +// 0.181961 +0x31d3 +// -0.046726 +0xa9fb +// 0.180601 +0x31c7 +// 0.127113 +0x3011 +// 0.038266 +0x28e6 +// -0.035895 +0xa898 +// -0.618023 +0xb8f2 +// -0.347043 +0xb58d +// 0.142342 +0x308e +// -0.733611 +0xb9de +// 0.057207 +0x2b53 +// -0.059548 +0xab9f +// -0.011221 +0xa1bf +// 0.603036 +0x38d3 +// 0.320475 +0x3521 +// 0.371463 +0x35f2 +// -0.151421 +0xb0d8 +// 0.473631 +0x3794 +// -0.359905 +0xb5c2 +// 0.520932 +0x382b +// -0.019229 +0xa4ec +// -0.112169 +0xaf2e +// 0.156273 +0x3100 +// 0.516902 +0x3823 +// -0.132736 +0xb03f +// 0.513038 +0x381b +// 0.361094 +0x35c7 +// 0.108702 +0x2ef5 +// -0.101969 +0xae87 +// 0.245968 +0x33df +// 0.138120 +0x306b +// -0.056651 +0xab40 +// 0.291971 +0x34ac +// -0.022768 +0xa5d4 +// 0.023700 +0x2611 +// 0.004466 +0x1c93 +// -0.240003 +0xb3ae +// -0.127546 +0xb015 +// -0.147839 +0xb0bb +// 0.060264 +0x2bb7 +// -0.188501 +0xb208 +// 0.143239 +0x3095 +// -0.207327 +0xb2a2 +// 0.007653 +0x1fd6 +// 0.044642 +0x29b7 +// -0.062195 +0xabf6 +// -0.205723 +0xb295 +// 0.052828 +0x2ac3 +// -0.204185 +0xb289 +// -0.143712 +0xb099 +// -0.043262 +0xa98a +// 0.040583 +0x2932 +// 0.749438 +0x39ff +// 0.420837 +0x36bc +// -0.172609 +0xb186 +// 0.889604 +0x3b1e +// -0.069371 +0xac71 +// 0.072211 +0x2c9f +// 0.013607 +0x22f8 +// -0.731263 +0xb9da +// -0.388619 +0xb638 +// -0.450449 +0xb735 +// 0.183618 +0x31e0 +// -0.574342 +0xb898 +// 0.436434 +0x36fc +// -0.631702 +0xb90e +// 0.023317 +0x25f8 +// 0.136021 +0x305a +// -0.189502 +0xb210 +// -0.626814 +0xb904 +// 0.160960 +0x3127 +// -0.622128 +0xb8fa +// -0.437876 +0xb702 +// -0.131816 +0xb038 +// 0.123651 +0x2fea +// -0.196668 +0xb24b +// -0.110436 +0xaf11 +// 0.045296 +0x29cc +// -0.233450 +0xb378 +// 0.018204 +0x24a9 +// -0.018950 +0xa4da +// -0.003571 +0x9b50 +// 0.191898 +0x3224 +// 0.101982 +0x2e87 +// 0.118207 +0x2f91 +// -0.048185 +0xaa2b +// 0.150719 +0x30d3 +// -0.114529 +0xaf54 +// 0.165771 +0x314e +// -0.006119 +0x9e44 +// -0.035695 +0xa892 +// 0.049729 +0x2a5e +// 0.164489 +0x3143 +// -0.042239 +0xa968 +// 0.163259 +0x3139 +// 0.114908 +0x2f5b +// 0.034591 +0x286d +// -0.032449 +0xa827 +// -0.148970 +0xb0c4 +// 0.071764 +0x2c98 +// 0.150606 +0x30d2 +// -0.122450 +0xafd6 +// 0.080928 +0x2d2e +// 0.234350 +0x3380 +// 0.043186 +0x2987 +// -0.115653 +0xaf67 +// -0.096154 +0xae27 +// -0.044104 +0xa9a5 +// -0.033136 +0xa83e +// -0.117076 +0xaf7e +// 0.147849 +0x30bb +// 0.199412 +0x3262 +// 0.023489 +0x2603 +// -0.005434 +0x9d91 +// -0.121356 +0xafc4 +// 0.004720 +0x1cd5 +// 0.052589 +0x2abb +// -0.032460 +0xa828 +// -0.177268 +0xb1ac +// 0.021386 +0x257a +// -0.029319 +0xa781 +// -0.200413 +0xb26a +// 0.181830 +0x31d2 +// 0.023266 +0x25f5 +// 0.105228 +0x2ebc +// -0.171229 +0xb17b +// 0.009225 +0x20b9 +// 0.097761 +0x2e42 +// 0.148227 +0x30be +// 0.021515 +0x2582 +// 0.167963 +0x3160 +// 0.047529 +0x2a15 +// -0.050362 +0xaa72 +// 0.269402 +0x344f +// -0.057470 +0xab5b +// -0.024383 +0xa63e +// 0.250704 +0x3403 +// 0.005484 +0x1d9e +// -0.292932 +0xb4b0 +// -0.263638 +0xb438 +// 0.087562 +0x2d9b +// 0.110875 +0x2f19 +// 0.240412 +0x33b1 +// -0.018907 +0xa4d7 +// 0.116813 +0x2f7a +// 0.177224 +0x31ac +// 0.150414 +0x30d0 +// -0.129029 +0xb021 +// -0.001777 +0x9747 +// 0.118587 +0x2f97 +// -0.247885 +0xb3ef +// -0.146438 +0xb0b0 +// 0.108449 +0x2ef1 +// 0.060709 +0x2bc5 +// -0.073760 +0xacb8 +// 0.012623 +0x2277 +// 0.127422 +0x3014 +// 0.217167 +0x32f3 +// 0.096123 +0x2e27 +// -0.088555 +0xadab +// -0.000284 +0x8ca8 +// -0.062335 +0xabfb +// -0.050531 +0xaa78 +// -0.130089 +0xb02a +// 0.022911 +0x25de +// -0.116982 +0xaf7d +// -0.028603 +0xa753 +// -0.248071 +0xb3f0 +// 0.081058 +0x2d30 +// 0.101646 +0x2e81 +// -0.058099 +0xab70 +// -0.018282 +0xa4ae +// -0.244756 +0xb3d5 +// -0.155659 +0xb0fb +// 0.142781 +0x3092 +// -0.361305 +0xb5c8 +// 0.126702 +0x300e +// -0.290513 +0xb4a6 +// 0.107900 +0x2ee8 +// -0.152033 +0xb0dd +// -0.097804 +0xae42 +// 0.064644 +0x2c23 +// 0.186183 +0x31f5 +// 0.033155 +0x283e +// 0.137818 +0x3069 +// 0.071976 +0x2c9b +// -0.008004 +0xa019 +// 0.174697 +0x3197 +// -0.116856 +0xaf7b +// -0.206293 +0xb29a +// -0.177919 +0xb1b2 +// 0.090925 +0x2dd2 +// 0.108489 +0x2ef1 +// -0.049528 +0xaa57 +// 0.201576 +0x3273 +// 0.028617 +0x2753 +// 0.100129 +0x2e69 +// 0.043439 +0x298f +// -0.237911 +0xb39d +// 0.010241 +0x213e +// 0.045053 +0x29c4 +// 0.022793 +0x25d6 +// -0.019299 +0xa4f1 +// 0.026688 +0x26d5 +// -0.025890 +0xa6a1 +// -0.013296 +0xa2cf +// -0.136424 +0xb05e +// 0.100054 +0x2e67 +// 0.098095 +0x2e47 +// 0.104465 +0x2eb0 +// -0.163526 +0xb13c +// -0.032440 +0xa827 +// -0.105812 +0xaec6 +// 0.102095 +0x2e89 +// -0.159855 +0xb11e +// -0.105878 +0xaec7 +// -0.016477 +0xa438 +// -0.058101 +0xab70 +// -0.058056 +0xab6e +// -0.094048 +0xae05 +// -0.075344 +0xacd2 +// 0.113170 +0x2f3e +// -0.113986 +0xaf4c +// -0.075836 +0xacda +// 0.044067 +0x29a4 +// -0.161514 +0xb12b +// 0.000118 +0x7b9 +// 0.023465 +0x2602 +// -0.038866 +0xa8fa +// 0.119462 +0x2fa5 +// 0.116199 +0x2f70 +// -0.005517 +0x9da6 +// -0.062829 +0xac05 +// 0.057850 +0x2b68 +// -0.054557 +0xaafc +// 0.019628 +0x2506 +// 0.068493 +0x2c62 +// -0.330944 +0xb54c +// 0.061782 +0x2be8 +// -0.082008 +0xad40 +// -0.050096 +0xaa6a +// 0.012492 +0x2265 +// 0.047866 +0x2a20 +// -0.167620 +0xb15d +// -0.120498 +0xafb6 +// -0.104346 +0xaeae +// -0.241627 +0xb3bb +// -0.110887 +0xaf19 +// -0.199454 +0xb262 +// 0.105022 +0x2eb9 +// 0.098753 +0x2e52 +// 0.028468 +0x274a +// -0.008453 +0xa054 +// -0.050839 +0xaa82 +// 0.131797 +0x3038 +// -0.195826 +0xb244 +// -0.022879 +0xa5db +// 0.115118 +0x2f5e +// 0.013776 +0x230e +// 0.248678 +0x33f5 +// -0.222140 +0xb31c +// 0.062612 +0x2c02 +// 0.095973 +0x2e24 +// 0.008132 +0x202a +// -0.030684 +0xa7db +// 0.251284 +0x3405 +// -0.005027 +0x9d26 +// -0.080392 +0xad25 +// 0.083243 +0x2d54 +// 0.050653 +0x2a7c +// -0.128444 +0xb01c +// -0.054259 +0xaaf2 +// -0.059672 +0xaba3 +// 0.015964 +0x2416 +// -0.039423 +0xa90c +// -0.135905 +0xb059 +// -0.334584 +0xb55a +// 0.137084 +0x3063 +// -0.088891 +0xadb0 +// -0.035827 +0xa896 +// 0.225413 +0x3337 +// 0.130472 +0x302d +// 0.042560 +0x2973 +// -0.038299 +0xa8e7 +// 0.123105 +0x2fe1 +// -0.042910 +0xa97e +// 0.080202 +0x2d22 +// 0.020102 +0x2525 +// 0.051512 +0x2a98 +// -0.044710 +0xa9b9 +// -0.137295 +0xb065 +// 0.037310 +0x28c7 +// -0.042412 +0xa96e +// -0.039257 +0xa906 +// -0.037931 +0xa8db +// 0.062436 +0x2bfe +// 0.041552 +0x2952 +// -0.032975 +0xa839 +// -0.101145 +0xae79 +// -0.080680 +0xad2a +// 0.103955 +0x2ea7 +// -0.056184 +0xab31 +// -0.067553 +0xac53 +// 0.034208 +0x2861 +// -0.018278 +0xa4ae +// 0.008966 +0x2097 +// 0.045028 +0x29c3 +// -0.054755 +0xab02 +// 0.167991 +0x3160 +// 0.115519 +0x2f65 +// -0.182566 +0xb1d8 +// 0.210006 +0x32b8 +// 0.228275 +0x334e +// -0.106056 +0xaeca +// 0.120517 +0x2fb7 +// 0.224681 +0x3331 +// 0.089771 +0x2dbf +// -0.058338 +0xab78 +// -0.238560 +0xb3a2 +// -0.098230 +0xae49 +// 0.002215 +0x1889 +// -0.076520 +0xace6 +// -0.075695 +0xacd8 +// 0.010907 +0x2196 +// 0.195470 +0x3241 +// -0.011852 +0xa212 +// 0.069830 +0x2c78 +// -0.005968 +0x9e1d +// 0.189293 +0x320f +// 0.126806 +0x300f +// 0.183073 +0x31dc +// -0.043543 +0xa993 +// 0.082572 +0x2d49 +// -0.059552 +0xab9f +// -0.118948 +0xaf9d +// -0.033417 +0xa847 +// -0.041042 +0xa941 +// 0.170283 +0x3173 +// -0.016281 +0xa42b +// 0.079296 +0x2d13 +// -0.013306 +0xa2d0 +// 0.091784 +0x2de0 +// 0.089100 +0x2db4 +// -0.080862 +0xad2d +// -0.067446 +0xac51 +// -0.187608 +0xb201 +// -0.009773 +0xa101 +// -0.072159 +0xac9e +// 0.036982 +0x28bc +// -0.030656 +0xa7d9 +// -0.064264 +0xac1d +// -0.223107 +0xb324 +// 0.007394 +0x1f92 +// -0.047039 +0xaa05 +// -0.032257 +0xa821 +// -0.051108 +0xaa8b +// 0.120173 +0x2fb1 +// 0.040377 +0x292b +// -0.054102 +0xaaed +// 0.088709 +0x2dad +// -0.118871 +0xaf9c +// 0.005364 +0x1d7e +// -0.012997 +0xa2a8 +// 0.068743 +0x2c66 +// 0.106397 +0x2ecf +// -0.015165 +0xa3c4 +// 0.118039 +0x2f8e +// 0.061754 +0x2be8 +// 0.044215 +0x29a9 +// -0.206553 +0xb29c +// 0.069997 +0x2c7b +// -0.067122 +0xac4c +// 0.117735 +0x2f89 +// -0.058250 +0xab75 +// -0.277671 +0xb471 +// -0.096155 +0xae27 +// -0.027194 +0xa6f6 +// -0.026058 +0xa6ac +// -0.146511 +0xb0b0 +// 0.107842 +0x2ee7 +// 0.088237 +0x2da6 +// 0.000361 +0xde9 +// -0.114684 +0xaf57 +// -0.086435 +0xad88 +// -0.163569 +0xb13c +// -0.174177 +0xb193 +// 0.097156 +0x2e38 +// -0.006339 +0x9e7e +// -0.014547 +0xa373 +// 0.185668 +0x31f1 +// 0.011603 +0x21f1 +// 0.063431 +0x2c0f +// 0.049977 +0x2a66 +// -0.039244 +0xa906 +// 0.000838 +0x12de +// 0.087310 +0x2d96 +// 0.026806 +0x26dd +// -0.040346 +0xa92a +// -0.049133 +0xaa4a +// 0.055109 +0x2b0e +// -0.040046 +0xa920 +// 0.091995 +0x2de3 +// 0.190044 +0x3215 +// 0.160597 +0x3124 +// -0.102786 +0xae94 +// -0.002832 +0x99cd +// -0.087042 +0xad92 +// 0.085041 +0x2d71 +// -0.097574 +0xae3f +// 0.066508 +0x2c42 +// 0.134083 +0x304a +// -0.014422 +0xa362 +// -0.042703 +0xa977 +// -0.104765 +0xaeb4 +// -0.048468 +0xaa34 +// 0.013495 +0x22e9 +// 0.014663 +0x2382 +// -0.202797 +0xb27d +// 0.112834 +0x2f39 +// 0.025770 +0x2699 +// -0.051906 +0xaaa5 +// 0.115785 +0x2f69 +// 0.205098 +0x3290 +// -0.053483 +0xaad9 +// -0.034118 +0xa85e +// 0.071414 +0x2c92 +// -0.005133 +0x9d42 +// -0.054916 +0xab07 +// -0.056892 +0xab48 +// 0.136419 +0x305e +// -0.074022 +0xacbd +// -0.037180 +0xa8c2 +// 0.134517 +0x304e +// 0.170952 +0x3178 +// 0.091292 +0x2dd8 +// 0.113428 +0x2f42 +// -0.067075 +0xac4b +// -0.299070 +0xb4c9 +// -0.157153 +0xb107 +// -0.060483 +0xabbe +// 0.006471 +0x1ea0 +// 0.180551 +0x31c7 +// -0.084614 +0xad6a +// 0.122222 +0x2fd2 +// 0.138305 +0x306d +// 0.130436 +0x302d +// 0.005020 +0x1d24 +// -0.024504 +0xa646 +// 0.000915 +0x137e +// -0.072406 +0xaca2 +// 0.092461 +0x2deb +// -0.178576 +0xb1b7 +// 0.208257 +0x32aa +// -0.075709 +0xacd8 +// -0.137076 +0xb063 +// 0.183495 +0x31df +// -0.111686 +0xaf26 +// 0.009156 +0x20b0 +// -0.072167 +0xac9e +// -0.134876 +0xb051 +// -0.073166 +0xacaf +// 0.333796 +0x3557 +// -0.134667 +0xb04f +// 0.099988 +0x2e66 +// -0.184676 +0xb1e9 +// 0.123236 +0x2fe3 +// 0.162234 +0x3131 +// 0.077034 +0x2cee +// -0.105189 +0xaebb +// 0.084753 +0x2d6d +// -0.096298 +0xae2a +// 0.023376 +0x25fc +// -0.053390 +0xaad5 +// 0.047697 +0x2a1b +// 0.213909 +0x32d8 +// 0.043360 +0x298d +// 0.120516 +0x2fb7 +// -0.032493 +0xa829 +// 0.156249 +0x3100 +// -0.097402 +0xae3c +// -0.052036 +0xaaa9 +// -0.076104 +0xacdf +// 0.044439 +0x29b0 +// -0.040784 +0xa938 +// -0.000710 +0x91d2 +// -0.008616 +0xa069 +// 0.090237 +0x2dc6 +// -0.076568 +0xace6 +// 0.150171 +0x30ce +// -0.071572 +0xac95 +// 0.200896 +0x326e +// 0.085490 +0x2d79 +// -0.078569 +0xad07 +// 0.299202 +0x34ca +// 0.051948 +0x2aa6 +// -0.014521 +0xa36f +// -0.016771 +0xa44b +// -0.053890 +0xaae6 +// -0.025732 +0xa696 +// 0.176681 +0x31a7 +// 0.153912 +0x30ed +// -0.036277 +0xa8a5 +// 0.113419 +0x2f42 +// -0.028997 +0xa76c +// -0.147214 +0xb0b6 +// -0.095025 +0xae15 +// 0.171556 +0x317d +// -0.020329 +0xa534 +// 0.161449 +0x312b +// -0.213212 +0xb2d3 +// -0.131373 +0xb034 +// -0.143022 +0xb094 +// -0.152466 +0xb0e1 +// -0.184296 +0xb1e6 +// -0.059911 +0xabab +// -0.012401 +0xa259 +// -0.082282 +0xad44 +// -0.034372 +0xa866 +// 0.060039 +0x2baf +// -0.030833 +0xa7e5 +// -0.047054 +0xaa06 +// -0.112657 +0xaf36 +// -0.130185 +0xb02a +// -0.013050 +0xa2ae +// -0.130783 +0xb02f +// 0.009983 +0x211d +// 0.018357 +0x24b3 +// 0.144248 +0x309e +// 0.078190 +0x2d01 +// 0.048229 +0x2a2c +// -0.075546 +0xacd6 +// -0.005763 +0x9de7 +// 0.012997 +0x22a8 +// 0.128691 +0x301e +// -0.054855 +0xab05 +// -0.122457 +0xafd6 +// 0.127134 +0x3011 +// 0.008028 +0x201c +// -0.006853 +0x9f04 +// -0.140746 +0xb081 +// 0.023727 +0x2613 +// -0.106554 +0xaed2 +// 0.081992 +0x2d3f +// -0.064378 +0xac1f +// 0.078647 +0x2d09 +// -0.123497 +0xafe7 +// -0.093265 +0xadf8 +// 0.185566 +0x31f0 +// -0.077098 +0xacef +// -0.008360 +0xa048 +// 0.089627 +0x2dbc +// 0.017343 +0x2471 +// 0.051114 +0x2a8b +// 0.091788 +0x2de0 +// -0.056141 +0xab30 +// 0.132067 +0x303a +// -0.114053 +0xaf4d +// 0.045120 +0x29c7 +// 0.077757 +0x2cfa +// 0.039891 +0x291b +// 0.061245 +0x2bd7 +// -0.023980 +0xa624 +// 0.066128 +0x2c3b +// -0.140375 +0xb07e +// -0.098987 +0xae56 +// -0.062861 +0xac06 +// 0.108321 +0x2eef +// 0.041609 +0x2953 +// 0.025255 +0x2677 +// 0.243441 +0x33ca +// -0.189314 +0xb20f +// 0.141579 +0x3088 +// 0.089238 +0x2db6 +// 0.025559 +0x268b +// 0.085833 +0x2d7e +// -0.147199 +0xb0b6 +// -0.345952 +0xb589 +// 0.054853 +0x2b05 +// 0.029561 +0x2791 +// 0.126990 +0x3010 +// -0.199007 +0xb25e +// 0.038329 +0x28e8 +// -0.091968 +0xade3 +// 0.089649 +0x2dbd +// 0.031054 +0x27f3 +// 0.142778 +0x3092 +// -0.162075 +0xb130 +// 0.141051 +0x3083 +// 0.047694 +0x2a1b +// -0.200373 +0xb269 +// 0.071856 +0x2c99 +// 0.018198 +0x24a9 +// 0.090292 +0x2dc7 +// -0.217716 +0xb2f8 +// -0.032200 +0xa81f +// 0.028801 +0x275f +// 0.013470 +0x22e6 +// -0.084765 +0xad6d +// -0.123890 +0xafee +// 0.011572 +0x21ed +// 0.050823 +0x2a81 +// -0.050482 +0xaa76 +// 0.130925 +0x3031 +// -0.105320 +0xaebe +// 0.131235 +0x3033 +// -0.004775 +0x9ce4 +// 0.084885 +0x2d6f +// -0.032486 +0xa829 +// -0.041349 +0xa94b +// -0.125592 +0xb005 +// -0.148121 +0xb0bd +// -0.045592 +0xa9d6 +// 0.009928 +0x2115 +// 0.092103 +0x2de5 +// -0.122840 +0xafdd +// 0.096039 +0x2e26 +// -0.112418 +0xaf32 +// 0.063955 +0x2c18 +// 0.103882 +0x2ea6 +// 0.022729 +0x25d2 +// 0.055681 +0x2b21 +// -0.138710 +0xb070 +// -0.100228 +0xae6a +// -0.093470 +0xadfb +// 0.125881 +0x3007 +// 0.025140 +0x2670 +// -0.081643 +0xad3a +// -0.276864 +0xb46e +// 0.140208 +0x307d +// 0.040913 +0x293d +// 0.042787 +0x297a +// -0.046637 +0xa9f8 +// -0.129015 +0xb021 +// 0.168241 +0x3162 +// -0.327054 +0xb53c +// 0.008231 +0x2037 +// -0.170825 +0xb177 +// 0.148811 +0x30c3 +// 0.058190 +0x2b73 +// -0.171096 +0xb17a +// 0.026289 +0x26bb +// -0.044128 +0xa9a6 +// -0.175971 +0xb1a2 +// 0.086079 +0x2d82 +// 0.153027 +0x30e6 +// -0.232026 +0xb36d +// -0.082844 +0xad4d +// 0.086394 +0x2d87 +// 0.275464 +0x3468 +// 0.007966 +0x2014 +// 0.035745 +0x2893 +// 0.220937 +0x3312 +// -0.019897 +0xa518 +// 0.001058 +0x1455 +// -0.139579 +0xb077 +// 0.169166 +0x316a +// -0.106578 +0xaed2 +// -0.024686 +0xa652 +// 0.142881 +0x3092 +// 0.123975 +0x2fef +// -0.413985 +0xb6a0 +// 0.150102 +0x30ce +// 0.107538 +0x2ee2 +// 0.128911 +0x3020 +// -0.229413 +0xb357 +// 0.043327 +0x298c +// -0.041456 +0xa94e +// 0.215175 +0x32e3 +// 0.268456 +0x344c +// -0.005634 +0x9dc5 +// -0.226400 +0xb33f +// -0.110160 +0xaf0d +// -0.031087 +0xa7f5 +// -0.058977 +0xab8d +// 0.300529 +0x34cf +// 0.015584 +0x23fb +// -0.170539 +0xb175 +// 0.034600 +0x286e +// -0.213675 +0xb2d6 +// 0.127077 +0x3011 +// -0.259406 +0xb427 +// 0.139814 +0x3079 +// 0.017345 +0x2471 +// -0.115567 +0xaf65 +// -0.193940 +0xb235 +// -0.107278 +0xaede +// -0.116587 +0xaf76 +// 0.039534 +0x290f +// 0.155457 +0x30fa +// 0.355445 +0x35b0 +// 0.486905 +0x37ca +// -0.026289 +0xa6bb +// -0.064259 +0xac1d +// 0.073730 +0x2cb8 +// -0.006029 +0x9e2c +// -0.099223 +0xae5a +// 0.132346 +0x303c +// -0.065050 +0xac2a +// -0.053920 +0xaae7 +// -0.407784 +0xb686 +// -0.190845 +0xb21b +// -0.043316 +0xa98b +// 0.422043 +0x36c1 +// -0.000791 +0x927a +// 0.036503 +0x28ac +// -0.086381 +0xad87 +// -0.221285 +0xb315 +// 0.099580 +0x2e60 +// 0.111628 +0x2f25 +// -0.185255 +0xb1ee +// 0.118237 +0x2f91 +// -0.080029 +0xad1f +// 0.217891 +0x32f9 +// -0.264150 +0xb43a +// 0.061714 +0x2be6 +// 0.098521 +0x2e4e +// -0.127249 +0xb012 +// 0.267787 +0x3449 +// -0.042672 +0xa976 +// 0.064491 +0x2c21 +// -0.333172 +0xb555 +// -0.148792 +0xb0c3 +// -0.227164 +0xb345 +// -0.032436 +0xa827 +// 0.093502 +0x2dfc +// -0.197590 +0xb253 +// -0.051366 +0xaa93 +// -0.012342 +0xa252 +// -0.475778 +0xb79d +// -0.029798 +0xa7a1 +// -0.132068 +0xb03a +// -0.069600 +0xac74 +// 0.077058 +0x2cef +// 0.016077 +0x241e +// 0.074977 +0x2ccc +// -0.278879 +0xb476 +// 0.297531 +0x34c3 +// 0.234011 +0x337d +// -0.278257 +0xb474 +// -0.142826 +0xb092 +// 0.166826 +0x3157 +// 0.028629 +0x2754 +// -0.135798 +0xb058 +// -0.350477 +0xb59c +// -0.375498 +0xb602 +// 0.006671 +0x1ed5 +// -0.014859 +0xa39c +// -0.243881 +0xb3ce +// 0.182766 +0x31d9 +// 0.142711 +0x3091 +// 0.229939 +0x335c +// -0.080029 +0xad1f +// -0.104474 +0xaeb0 +// 0.088284 +0x2da6 +// 0.218365 +0x32fd +// -0.172529 +0xb185 +// -0.136586 +0xb05f +// -0.086237 +0xad85 +// 0.117318 +0x2f82 +// 0.191630 +0x3222 +// -0.148125 +0xb0bd +// 0.017385 +0x2473 +// 0.029280 +0x277f +// -0.041078 +0xa942 +// 0.312312 +0x34ff +// -0.418837 +0xb6b4 +// -0.124997 +0xb000 +// -0.012718 +0xa283 +// -0.192732 +0xb22b +// -0.161660 +0xb12c +// 0.085790 +0x2d7e +// -0.031831 +0xa813 +// -0.286388 +0xb495 +// -0.179324 +0xb1bd +// 0.083551 +0x2d59 +// 0.024445 +0x2642 +// -0.194663 +0xb23b +// -0.048564 +0xaa37 +// 0.033113 +0x283d +// -0.175992 +0xb1a2 +// 0.257206 +0x341e +// 0.095165 +0x2e17 +// -0.064835 +0xac26 +// 0.203471 +0x3283 +// -0.175282 +0xb19c +// -0.106307 +0xaece +// -0.227214 +0xb345 +// 0.112532 +0x2f34 +// -0.088031 +0xada2 +// -0.086636 +0xad8b +// 0.404314 +0x3678 +// 0.144646 +0x30a1 +// 0.102103 +0x2e89 +// -0.250341 +0xb401 +// 0.064971 +0x2c28 +// -0.139022 +0xb073 +// -0.239176 +0xb3a7 +// -0.043521 +0xa992 +// -0.076452 +0xace5 +// 0.413204 +0x369c +// 0.096014 +0x2e25 +// -0.078434 +0xad05 +// -0.123553 +0xafe8 +// 0.187717 +0x3202 +// -0.025202 +0xa674 +// -0.114454 +0xaf53 +// 0.199864 +0x3265 +// -0.195719 +0xb243 +// 0.113643 +0x2f46 +// 0.216756 +0x32f0 +// 0.107256 +0x2edd +// 0.043420 +0x298f +// 0.216798 +0x32f0 +// 0.113044 +0x2f3c +// -0.136394 +0xb05d +// 0.255789 +0x3418 +// -0.130266 +0xb02b +// 0.128899 +0x3020 +// 0.113777 +0x2f48 +// 0.011595 +0x21f0 +// 0.194068 +0x3236 +// -0.107638 +0xaee4 +// 0.004008 +0x1c1b +// -0.282745 +0xb486 +// -0.060956 +0xabcd +// 0.205150 +0x3291 +// 0.001015 +0x1428 +// -0.120803 +0xafbb +// 0.146752 +0x30b2 +// 0.192342 +0x3228 +// 0.152677 +0x30e3 +// -0.011583 +0xa1ee +// -0.246676 +0xb3e5 +// 0.218964 +0x3302 +// -0.031821 +0xa813 +// -0.087717 +0xad9d +// 0.213045 +0x32d1 +// 0.062360 +0x2bfb +// -0.053130 +0xaacd +// -0.228471 +0xb350 +// 0.180265 +0x31c5 +// 0.216091 +0x32ea +// 0.002511 +0x1925 +// 0.118976 +0x2f9d +// 0.219728 +0x3308 +// -0.354085 +0xb5aa +// 0.245438 +0x33db +// -0.332870 +0xb553 +// -0.222650 +0xb320 +// 0.082915 +0x2d4e +// -0.116115 +0xaf6e +// 0.086374 +0x2d87 +// 0.267270 +0x3447 +// -0.123220 +0xafe3 +// 0.202769 +0x327d +// -0.155354 +0xb0f9 +// -0.121197 +0xafc2 +// -0.046727 +0xa9fb +// 0.092837 +0x2df1 +// -0.153971 +0xb0ed +// 0.266106 +0x3442 +// 0.196205 +0x3247 +// -0.179180 +0xb1bc +// -0.287219 +0xb498 +// -0.096043 +0xae26 +// -0.158277 +0xb111 +// 0.081603 +0x2d39 +// -0.215025 +0xb2e1 +// 0.194125 +0x3236 +// 0.119039 +0x2f9e +// -0.168900 +0xb168 +// -0.200524 +0xb26b +// -0.067713 +0xac55 +// 0.072725 +0x2ca8 +// 0.061155 +0x2bd4 +// -0.130005 +0xb029 +// -0.089041 +0xadb3 +// -0.232464 +0xb370 +// -0.017388 +0xa474 +// 0.268232 +0x344b +// 0.225303 +0x3336 +// 0.173148 +0x318a +// -0.119772 +0xafaa +// 0.028743 +0x275c +// -0.261257 +0xb42e +// 0.120427 +0x2fb5 +// 0.224616 +0x3330 +// -0.115537 +0xaf65 +// -0.133921 +0xb049 +// 0.268659 +0x344c +// 0.052324 +0x2ab3 +// -0.036648 +0xa8b1 +// 0.400854 +0x366a +// 0.099028 +0x2e56 +// -0.077467 +0xacf5 +// -0.091070 +0xadd4 +// 0.066512 +0x2c42 +// 0.004430 +0x1c89 +// 0.180842 +0x31c9 +// -0.136046 +0xb05a +// -0.202762 +0xb27d +// 0.080285 +0x2d23 +// 0.059786 +0x2ba7 +// -0.112235 +0xaf2f +// -0.077163 +0xacf0 +// 0.006759 +0x1eec +// 0.086365 +0x2d87 +// 0.143388 +0x3097 +// -0.091992 +0xade3 +// 0.103629 +0x2ea2 +// 0.210361 +0x32bb +// 0.083148 +0x2d52 +// -0.196924 +0xb24d +// 0.077321 +0x2cf3 +// -0.160329 +0xb121 +// 0.045958 +0x29e2 +// 0.448997 +0x372f +// -0.178767 +0xb1b8 +// -0.003452 +0x9b12 +// 0.381052 +0x3619 +// -0.186201 +0xb1f5 +// 0.119449 +0x2fa5 +// 0.120901 +0x2fbd +// 0.004814 +0x1cee +// -0.186016 +0xb1f4 +// 0.283646 +0x348a +// -0.062730 +0xac04 +// -0.016035 +0xa41b +// -0.111159 +0xaf1d +// -0.045118 +0xa9c6 +// -0.362654 +0xb5cd +// 0.146388 +0x30af +// -0.308931 +0xb4f1 +// -0.092230 +0xade7 +// 0.178277 +0x31b4 +// 0.145416 +0x30a7 +// 0.122305 +0x2fd4 +// 0.001038 +0x1440 +// -0.006636 +0x9ecc +// -0.278041 +0xb473 +// -0.114103 +0xaf4d +// 0.083228 +0x2d54 +// 0.094070 +0x2e05 +// -0.106104 +0xaeca +// -0.276592 +0xb46d +// 0.082888 +0x2d4e +// 0.114700 +0x2f57 +// -0.197138 +0xb24f +// 0.010954 +0x219c +// 0.593326 +0x38bf +// 0.078068 +0x2cff +// 0.058871 +0x2b89 +// -0.039327 +0xa909 +// -0.073305 +0xacb1 +// 0.027761 +0x271b +// -0.125256 +0xb002 +// -0.027438 +0xa706 +// 0.083654 +0x2d5b +// -0.270487 +0xb454 +// 0.124817 +0x2ffd +// 0.204684 +0x328d +// -0.040882 +0xa93c +// -0.178612 +0xb1b7 +// -0.036220 +0xa8a3 +// 0.046487 +0x29f3 +// 0.221380 +0x3316 +// 0.064595 +0x2c22 +// 0.093231 +0x2df8 +// -0.218072 +0xb2fa +// 0.287622 +0x349a +// -0.225404 +0xb337 +// 0.229359 +0x3357 +// 0.025717 +0x2695 +// -0.048043 +0xaa26 +// 0.110672 +0x2f15 +// -0.158654 +0xb114 +// -0.071185 +0xac8e +// 0.142741 +0x3091 +// 0.326036 +0x3537 +// 0.011120 +0x21b1 +// 0.044730 +0x29ba +// 0.045867 +0x29df +// -0.047546 +0xaa16 +// 0.177433 +0x31ae +// -0.304493 +0xb4df +// 0.044978 +0x29c2 +// -0.593961 +0xb8c0 +// -0.291359 +0xb4a9 +// -0.332443 +0xb552 +// 0.069243 +0x2c6e +// -0.149860 +0xb0cc +// -0.010534 +0xa165 +// 0.095272 +0x2e19 +// -0.145595 +0xb0a9 +// 0.024484 +0x2645 +// 0.288944 +0x34a0 +// 0.147063 +0x30b5 +// -0.053560 +0xaadb +// 0.017055 +0x245e +// 0.126752 +0x300e +// -0.027931 +0xa726 +// 0.010551 +0x2167 +// -0.116271 +0xaf71 +// -0.324618 +0xb532 +// -0.006349 +0x9e80 +// 0.282584 +0x3485 +// -0.332793 +0xb553 +// 0.001379 +0x15a6 +// 0.067878 +0x2c58 +// -0.221969 +0xb31a +// -0.214329 +0xb2dc +// 0.076314 +0x2ce2 +// -0.008050 +0xa01f +// -0.202564 +0xb27b +// -0.163491 +0xb13b +// -0.161448 +0xb12b +// 0.104416 +0x2eaf +// 0.049913 +0x2a64 +// -0.176722 +0xb1a8 +// 0.196914 +0x324d +// 0.130815 +0x3030 +// -0.003199 +0x9a8d +// -0.358875 +0xb5be +// 0.066064 +0x2c3a +// -0.040755 +0xa937 +// -0.160605 +0xb124 +// 0.125476 +0x3004 +// -0.111180 +0xaf1e +// 0.253820 +0x3410 +// 0.149685 +0x30ca +// -0.087317 +0xad97 +// 0.057459 +0x2b5b +// 0.108018 +0x2eea +// -0.087852 +0xad9f +// 0.023171 +0x25ef +// -0.167588 +0xb15d +// 0.208767 +0x32ae +// 0.043259 +0x2989 +// 0.048103 +0x2a28 +// 0.008998 +0x209b +// 0.344934 +0x3585 +// 0.166190 +0x3151 +// -0.291489 +0xb4aa +// 0.105419 +0x2ebf +// -0.180111 +0xb1c3 +// -0.077721 +0xacf9 +// -0.073336 +0xacb2 +// -0.038496 +0xa8ed +// -0.052485 +0xaab8 +// -0.044941 +0xa9c1 +// 0.399960 +0x3666 +// 0.143140 +0x3095 +// 0.112286 +0x2f30 +// 0.083667 +0x2d5b +// 0.195086 +0x323e +// 0.015141 +0x23c1 +// 0.407905 +0x3687 +// -0.076161 +0xace0 +// 0.177472 +0x31ae +// -0.266676 +0xb444 +// 0.105119 +0x2eba +// 0.099622 +0x2e60 +// 0.209108 +0x32b1 +// 0.151404 +0x30d8 +// 0.105413 +0x2ebf +// -0.030547 +0xa7d2 +// 0.180143 +0x31c4 +// 0.017872 +0x2493 +// 0.023336 +0x25f9 +// 0.086696 +0x2d8c +// -0.035016 +0xa87b +// 0.018232 +0x24ab +// 0.124457 +0x2ff7 +// -0.100410 +0xae6d +// -0.163282 +0xb13a +// 0.038114 +0x28e1 +// 0.033649 +0x284f +// 0.360634 +0x35c5 +// -0.278923 +0xb476 +// 0.227800 +0x334a +// 0.311623 +0x34fc +// 0.019692 +0x250b +// -0.108809 +0xaef7 +// 0.032436 +0x2827 +// 0.141827 +0x308a +// 0.034388 +0x2867 +// -0.311621 +0xb4fc +// 0.132507 +0x303e +// -0.112302 +0xaf30 +// -0.087546 +0xad9a +// -0.287121 +0xb498 +// 0.147738 +0x30ba +// 0.026904 +0x26e3 +// 0.097795 +0x2e42 +// -0.090108 +0xadc4 +// -0.216397 +0xb2ed +// 0.165647 +0x314d +// 0.020835 +0x2555 +// -0.001586 +0x967f +// -0.197178 +0xb24f +// 0.124302 +0x2ff5 +// 0.082661 +0x2d4a +// 0.120564 +0x2fb7 +// 0.049791 +0x2a60 +// -0.035263 +0xa883 +// -0.045551 +0xa9d5 +// 0.004124 +0x1c39 +// -0.084792 +0xad6d +// -0.161252 +0xb129 +// 0.315286 +0x350b +// -0.056998 +0xab4c +// -0.166437 +0xb153 +// -0.244741 +0xb3d5 +// 0.104696 +0x2eb3 +// 0.170118 +0x3172 +// 0.243033 +0x33c7 +// 0.247629 +0x33ed +// -0.192403 +0xb228 +// -0.239560 +0xb3aa +// 0.016345 +0x242f +// -0.102790 +0xae94 +// 0.178891 +0x31b9 +// -0.026239 +0xa6b8 +// -0.077136 +0xacf0 +// 0.166025 +0x3150 +// 0.037254 +0x28c5 +// 0.131885 +0x3038 +// -0.143746 +0xb09a +// -0.045013 +0xa9c3 +// -0.303104 +0xb4da +// 0.209005 +0x32b0 +// -0.357970 +0xb5ba +// -0.268798 +0xb44d +// 0.037769 +0x28d6 +// -0.004716 +0x9cd4 +// 0.174751 +0x3198 +// -0.291854 +0xb4ab +// 0.066365 +0x2c3f +// -0.115783 +0xaf69 +// -0.236474 +0xb391 +// 0.045300 +0x29cc +// -0.129474 +0xb025 +// -0.108613 +0xaef4 +// -0.202371 +0xb27a +// -0.148692 +0xb0c2 +// -0.157780 +0xb10d +// -0.331911 +0xb550 +// -0.245051 +0xb3d7 +// 0.067438 +0x2c51 +// 0.137813 +0x3069 +// -0.344558 +0xb583 +// -0.070984 +0xac8b +// 0.105946 +0x2ec8 +// -0.202579 +0xb27c +// 0.040758 +0x2938 +// -0.061391 +0xabdc +// 0.218456 +0x32fe +// 0.076309 +0x2ce2 +// 0.056769 +0x2b44 +// -0.463028 +0xb769 +// -0.103066 +0xae99 +// 0.022258 +0x25b3 +// 0.184747 +0x31e9 +// 0.289057 +0x34a0 +// -0.149725 +0xb0cb +// 0.161492 +0x312b +// 0.261404 +0x342f +// -0.277472 +0xb471 +// -0.241756 +0xb3bc +// 0.295989 +0x34bc +// -0.301751 +0xb4d4 +// 0.146504 +0x30b0 +// 0.132037 +0x303a +// 0.165323 +0x314a +// 0.239590 +0x33ab +// -0.070921 +0xac8a +// -0.195528 +0xb242 +// -0.003729 +0x9ba3 +// 0.046866 +0x2a00 +// -0.032460 +0xa828 +// 0.052387 +0x2ab5 +// -0.201627 +0xb274 +// 0.102545 +0x2e90 +// 0.109352 +0x2f00 +// -0.243711 +0xb3cc +// -0.010714 +0xa17c +// 0.346696 +0x358c +// 0.075837 +0x2cdb +// 0.186395 +0x31f7 +// -0.081718 +0xad3b +// -0.142490 +0xb08f +// -0.102389 +0xae8e +// -0.092056 +0xade4 +// -0.009073 +0xa0a5 +// 0.367983 +0x35e3 +// -0.248061 +0xb3f0 +// -0.149384 +0xb0c8 +// -0.285106 +0xb490 +// -0.482393 +0xb7b8 +// 0.031929 +0x2816 +// 0.262448 +0x3433 +// -0.252396 +0xb40a +// 0.184396 +0x31e7 +// 0.289703 +0x34a3 +// 0.026329 +0x26bd +// -0.069202 +0xac6e +// -0.018519 +0xa4be +// -0.282894 +0xb487 +// 0.194002 +0x3235 +// -0.341255 +0xb576 +// 0.436637 +0x36fc +// -0.105673 +0xaec3 +// -0.102383 +0xae8d +// 0.019075 +0x24e2 +// 0.047574 +0x2a17 +// 0.266493 +0x3444 +// 0.088085 +0x2da3 +// 0.146564 +0x30b1 +// -0.052570 +0xaabb +// -0.377785 +0xb60b +// 0.246307 +0x33e2 +// 0.068442 +0x2c61 +// -0.185433 +0xb1ef +// 0.275936 +0x346a +// 0.074666 +0x2cc7 +// -0.118949 +0xaf9d +// -0.175559 +0xb19e +// 0.039187 +0x2904 +// -0.391917 +0xb645 +// 0.204097 +0x3288 +// -0.119365 +0xafa4 +// -0.084347 +0xad66 +// -0.354433 +0xb5ac +// -0.197364 +0xb251 +// 0.266791 +0x3445 +// 0.157281 +0x3108 +// 0.267111 +0x3446 +// 0.008759 +0x207c +// 0.088578 +0x2dab +// -0.192838 +0xb22c +// -0.218261 +0xb2fc +// -0.128758 +0xb01f +// -0.401943 +0xb66e +// -0.165678 +0xb14d +// -0.245101 +0xb3d8 +// -0.083792 +0xad5d +// -0.181490 +0xb1cf +// -0.081682 +0xad3a +// 0.074391 +0x2cc3 +// -0.285149 +0xb490 +// -0.148844 +0xb0c3 +// 0.104615 +0x2eb2 +// 0.274963 +0x3466 +// -0.177553 +0xb1af +// 0.242713 +0x33c4 +// -0.013152 +0xa2bc +// -0.192751 +0xb22b +// -0.409145 +0xb68c +// 0.006917 +0x1f15 +// -0.158224 +0xb110 +// -0.196674 +0xb24b +// 0.379282 +0x3612 +// 0.331646 +0x354e +// -0.101018 +0xae77 +// -0.055719 +0xab22 +// 0.076072 +0x2cde +// -0.254176 +0xb411 +// -0.105159 +0xaebb +// -0.195507 +0xb242 +// -0.124318 +0xaff5 +// 0.207960 +0x32a8 +// -0.047530 +0xaa15 +// 0.024785 +0x2658 +// 0.104068 +0x2ea9 +// -0.195370 +0xb240 +// -0.158248 +0xb110 +// -0.038204 +0xa8e4 +// 0.382853 +0x3620 +// -0.122806 +0xafdc +// 0.214003 +0x32d9 +// 0.038209 +0x28e4 +// 0.014521 +0x236f +// -0.167987 +0xb160 +// 0.538716 +0x384f +// 0.061875 +0x2bec +// -0.111523 +0xaf23 +// -0.033014 +0xa83a +// -0.300748 +0xb4d0 +// 0.356328 +0x35b4 +// -0.327680 +0xb53e +// -0.094672 +0xae0f +// 0.162193 +0x3131 +// -0.097778 +0xae42 +// 0.084178 +0x2d63 +// -0.211205 +0xb2c2 +// -0.063033 +0xac09 +// -0.043521 +0xa992 +// 0.190825 +0x321b +// -0.369059 +0xb5e8 +// -0.039511 +0xa90f +// 0.316376 +0x3510 +// -0.128400 +0xb01c +// -0.074214 +0xacc0 +// 0.327872 +0x353f +// 0.096631 +0x2e2f +// 0.146727 +0x30b2 +// -0.070482 +0xac83 +// -0.007405 +0x9f95 +// 0.317004 +0x3512 +// 0.410328 +0x3691 +// 0.161609 +0x312c +// -0.074833 +0xacca +// 0.105209 +0x2ebc +// -0.132242 +0xb03b +// -0.019735 +0xa50d +// -0.401658 +0xb66d +// 0.137893 +0x306a +// 0.157498 +0x310a +// 0.233301 +0x3377 +// 0.145657 +0x30a9 +// 0.077292 +0x2cf2 +// -0.030202 +0xa7bb +// 0.199078 +0x325f +// 0.266842 +0x3445 +// 0.175322 +0x319c +// -0.153648 +0xb0eb +// 0.271079 +0x3456 +// -0.449528 +0xb731 +// -0.101325 +0xae7c +// -0.036480 +0xa8ab +// 0.218294 +0x32fc +// 0.010037 +0x2124 +// -0.254805 +0xb414 +// 0.252105 +0x3409 +// -0.340719 +0xb574 +// -0.312374 +0xb4ff +// 0.087052 +0x2d92 +// 0.203591 +0x3284 +// -0.029315 +0xa781 +// 0.023131 +0x25ec +// 0.020669 +0x254b +// -0.242043 +0xb3bf +// 0.053319 +0x2ad3 +// -0.229391 +0xb357 +// 0.089076 +0x2db3 +// 0.531613 +0x3841 +// 0.105215 +0x2ebc +// 0.149239 +0x30c7 +// 0.158814 +0x3115 +// 0.046273 +0x29ec +// -0.349653 +0xb598 +// 0.297035 +0x34c1 +// -0.034761 +0xa873 +// -0.088890 +0xadb0 +// 0.090350 +0x2dc8 +// 0.191713 +0x3223 +// -0.266692 +0xb444 +// 0.009024 +0x209f +// -0.021865 +0xa599 +// 0.018247 +0x24ac +// -0.407519 +0xb685 +// 0.075694 +0x2cd8 +// 0.161058 +0x3127 +// 0.113925 +0x2f4b +// -0.054833 +0xab05 +// -0.191982 +0xb225 +// 0.128859 +0x3020 +// 0.289445 +0x34a2 +// -0.176742 +0xb1a8 +// 0.001873 +0x17ac +// 0.103597 +0x2ea1 +// 0.305608 +0x34e4 +// 0.188228 +0x3206 +// -0.188313 +0xb207 +// 0.314940 +0x350a +// -0.218254 +0xb2fc +// 0.203825 +0x3286 +// -0.300571 +0xb4cf +// -0.015309 +0xa3d7 +// -0.121593 +0xafc8 +// 0.213363 +0x32d4 +// 0.183894 +0x31e2 +// 0.017240 +0x246a +// 0.360767 +0x35c6 +// -0.282824 +0xb486 +// 0.238755 +0x33a4 +// -0.165821 +0xb14e +// -0.243548 +0xb3cb +// -0.224890 +0xb332 +// -0.280666 +0xb47e +// 0.061708 +0x2be6 +// -0.065045 +0xac2a +// 0.092799 +0x2df0 +// 0.104868 +0x2eb6 +// 0.491948 +0x37df +// -0.087967 +0xada1 +// 0.058921 +0x2b8b +// -0.110928 +0xaf19 +// -0.052351 +0xaab3 +// -0.270537 +0xb454 +// -0.054950 +0xab09 +// -0.039952 +0xa91d +// 0.568871 +0x388d +// -0.131686 +0xb037 +// -0.236488 +0xb391 +// 0.053625 +0x2add +// 0.004540 +0x1ca6 +// -0.049203 +0xaa4c +// 0.088985 +0x2db2 +// 0.031085 +0x27f5 +// -0.040391 +0xa92c +// 0.307709 +0x34ec +// 0.249009 +0x33f8 +// -0.075827 +0xacda +// -0.208748 +0xb2ae +// -0.030389 +0xa7c8 +// -0.001101 +0x9482 +// 0.054658 +0x2aff +// 0.333483 +0x3556 +// 0.221245 +0x3314 +// 0.180284 +0x31c5 +// -0.144780 +0xb0a2 +// -0.071886 +0xac9a +// -0.033164 +0xa83f +// -0.198329 +0xb259 +// 0.088868 +0x2db0 +// 0.194591 +0x323a +// -0.256616 +0xb41b +// -0.020415 +0xa53a +// -0.236686 +0xb393 +// 0.418913 +0x36b4 +// 0.429777 +0x36e0 +// 0.000791 +0x127b +// -0.333937 +0xb558 +// 0.329517 +0x3546 +// 0.254600 +0x3413 +// 0.033425 +0x2847 +// 0.033555 +0x284c +// 0.342891 +0x357c +// 0.001275 +0x1539 +// -0.121966 +0xafce +// -0.299115 +0xb4c9 +// 0.125760 +0x3006 +// 0.049919 +0x2a64 +// -0.029696 +0xa79a +// -0.089460 +0xadba +// -0.491240 +0xb7dc +// 0.292232 +0x34ad +// -0.032839 +0xa834 +// -0.280363 +0xb47c +// -0.011513 +0xa1e5 +// 0.128084 +0x3019 +// 0.174673 +0x3197 +// 0.101300 +0x2e7c +// -0.004129 +0x9c3a +// -0.446738 +0xb726 +// -0.048846 +0xaa41 +// -0.240544 +0xb3b3 +// 0.173965 +0x3191 +// -0.001731 +0x9717 +// 0.267350 +0x3447 +// 0.203834 +0x3286 +// -0.130411 +0xb02c +// 0.158005 +0x310e +// 0.221675 +0x3318 +// 0.154804 +0x30f4 +// -0.364580 +0xb5d5 +// -0.298768 +0xb4c8 +// 0.073664 +0x2cb7 +// -0.071157 +0xac8e +// -0.273179 +0xb45f +// -0.311154 +0xb4fa +// -0.078843 +0xad0c +// 0.119695 +0x2fa9 +// 0.183453 +0x31df +// -0.009809 +0xa106 +// 0.141223 +0x3085 +// -0.058794 +0xab87 +// 0.183200 +0x31dd +// 0.065518 +0x2c31 +// 0.425348 +0x36ce +// -0.055448 +0xab19 +// 0.512720 +0x381a +// 0.061691 +0x2be6 +// -0.033988 +0xa85a +// -0.114744 +0xaf58 +// 0.144101 +0x309c +// 0.222743 +0x3321 +// 0.202934 +0x327e +// -0.280112 +0xb47b +// -0.132858 +0xb040 +// -0.187410 +0xb1ff +// 0.308227 +0x34ee +// 0.222907 +0x3322 +// -0.074058 +0xacbd +// 0.022147 +0x25ab +// -0.072496 +0xaca4 +// 0.202104 +0x3278 +// 0.130767 +0x302f +// -0.192644 +0xb22a +// -0.057971 +0xab6c +// 0.180730 +0x31c9 +// 0.242205 +0x33c0 +// -0.129956 +0xb029 +// -0.176421 +0xb1a5 +// -0.311340 +0xb4fb +// -0.071612 +0xac95 +// -0.079889 +0xad1d +// 0.079685 +0x2d1a +// -0.059105 +0xab91 +// -0.194508 +0xb239 +// 0.089962 +0x2dc2 +// -0.053536 +0xaada +// -0.277642 +0xb471 +// -0.351264 +0xb59f +// -0.011677 +0xa1fb +// -0.034149 +0xa85f +// -0.386596 +0xb62f +// -0.248887 +0xb3f7 +// -0.191356 +0xb220 +// 0.141223 +0x3085 +// 0.105691 +0x2ec4 +// -0.201283 +0xb271 +// 0.414922 +0x36a4 +// 0.032970 +0x2838 +// -0.144894 +0xb0a3 +// 0.259258 +0x3426 +// 0.007486 +0x1faa +// -0.218561 +0xb2fe +// -0.032379 +0xa825 +// 0.013147 +0x22bb +// 0.484169 +0x37bf +// 0.311792 +0x34fd +// -0.070703 +0xac86 +// 0.327900 +0x353f +// 0.247080 +0x33e8 +// 0.016527 +0x243b +// 0.219110 +0x3303 +// 0.264709 +0x343c +// -0.274832 +0xb466 +// -0.166783 +0xb156 +// -0.181232 +0xb1cd +// 0.039549 +0x2910 +// 0.030216 +0x27bc +// 0.070875 +0x2c89 +// -0.118281 +0xaf92 +// -0.283583 +0xb48a +// 0.602779 +0x38d2 +// -0.279589 +0xb479 +// -0.146620 +0xb0b1 +// 0.191039 +0x321d +// -0.143264 +0xb096 +// 0.332455 +0x3552 +// -0.041633 +0xa954 +// -0.233313 +0xb377 +// 0.152719 +0x30e3 +// 0.068508 +0x2c62 +// 0.136600 +0x305f +// -0.167398 +0xb15b +// 0.029953 +0x27ab +// -0.088620 +0xadac +// 0.006848 +0x1f03 +// -0.152969 +0xb0e5 +// 0.040343 +0x292a +// -0.074512 +0xacc5 +// 0.103237 +0x2e9b +// -0.419327 +0xb6b6 +// 0.109523 +0x2f02 +// 0.016307 +0x242d +// 0.021141 +0x2569 +// -0.176622 +0xb1a7 +// -0.073034 +0xacad +// 0.288393 +0x349d +// -0.298416 +0xb4c6 +// -0.211724 +0xb2c6 +// 0.049979 +0x2a66 +// -0.022867 +0xa5db +// -0.238833 +0xb3a5 +// 0.039943 +0x291d +// -0.181643 +0xb1d0 +// -0.198746 +0xb25c +// 0.063506 +0x2c10 +// -0.458802 +0xb757 +// 0.063900 +0x2c17 +// 0.169460 +0x316c +// 0.014980 +0x23ac +// 0.031762 +0x2811 +// 0.193957 +0x3235 +// -0.003116 +0x9a62 +// -0.259581 +0xb427 +// 0.440932 +0x370e +// 0.246088 +0x33e0 +// -0.060937 +0xabcd +// -0.256268 +0xb41a +// 0.223303 +0x3325 +// 0.087243 +0x2d95 +// -0.035926 +0xa899 +// 0.310637 +0x34f8 +// 0.144631 +0x30a1 +// 0.140745 +0x3081 +// 0.222851 +0x3322 +// -0.080295 +0xad24 +// -0.119876 +0xafac +// 0.139719 +0x3079 +// 0.001446 +0x15ec +// 0.229019 +0x3354 +// -0.124539 +0xaff8 +// 0.125575 +0x3005 +// -0.140433 +0xb07e +// 0.046057 +0x29e5 +// -0.159675 +0xb11c +// 0.354160 +0x35ab +// -0.408764 +0xb68a +// 0.181826 +0x31d2 +// 0.095425 +0x2e1b +// 0.427296 +0x36d6 +// 0.001962 +0x1805 +// 0.393936 +0x364e +// -0.222936 +0xb322 +// 0.052931 +0x2ac6 +// 0.098939 +0x2e55 +// 0.419519 +0x36b6 +// -0.015154 +0xa3c2 +// -0.100765 +0xae73 +// 0.058793 +0x2b87 +// -0.140113 +0xb07c +// 0.422417 +0x36c2 +// 0.328305 +0x3541 +// -0.057725 +0xab64 +// 0.263376 +0x3437 +// -0.044818 +0xa9bd +// 0.213686 +0x32d7 +// 0.116739 +0x2f79 +// 0.052981 +0x2ac8 +// -0.362581 +0xb5cd +// 0.005918 +0x1e0f +// 0.102619 +0x2e91 +// 0.081831 +0x2d3d +// -0.036040 +0xa89d +// 0.222624 +0x3320 +// 0.107189 +0x2edc +// -0.208012 +0xb2a8 +// -0.098497 +0xae4e +// 0.126441 +0x300c +// -0.126029 +0xb008 +// 0.572636 +0x3895 +// -0.026598 +0xa6cf +// -0.168176 +0xb162 +// 0.031709 +0x280f +// 0.063024 +0x2c09 +// 0.309177 +0x34f2 +// -0.115240 +0xaf60 +// -0.400347 +0xb668 +// 0.125815 +0x3007 +// -0.213008 +0xb2d1 +// -0.002971 +0x9a16 +// 0.165969 +0x3150 +// 0.099697 +0x2e61 +// 0.079570 +0x2d18 +// 0.022531 +0x25c5 +// 0.153424 +0x30e9 +// -0.306602 +0xb4e8 +// -0.085632 +0xad7b +// 0.340478 +0x3573 +// 0.275905 +0x346a +// 0.215672 +0x32e7 +// 0.007790 +0x1ffa +// 0.039899 +0x291b +// 0.081050 +0x2d30 +// -0.068876 +0xac68 +// 0.205238 +0x3291 +// -0.216145 +0xb2eb +// -0.106280 +0xaecd +// -0.022347 +0xa5b9 +// -0.235327 +0xb388 +// -0.157538 +0xb10b +// -0.253598 +0xb40f +// -0.175230 +0xb19b +// 0.044648 +0x29b7 +// 0.108143 +0x2eec +// -0.033127 +0xa83d +// -0.346502 +0xb58b +// -0.382482 +0xb61f +// -0.386272 +0xb62e +// -0.186923 +0xb1fb +// 2.000000 +0x4000 +// -0.994729 +0xbbf5 +// -0.994729 +0xbbf5 +// -0.994729 +0xbbf5 +// -0.994729 +0xbbf5 +// -0.994729 +0xbbf5 +// -0.994729 +0xbbf5 +// -0.994729 +0xbbf5 +// 0.205084 +0x3290 +// -0.102001 +0xae87 +// -0.102001 +0xae87 +// -0.102001 +0xae87 +// -0.102001 +0xae87 +// -0.102001 +0xae87 +// -0.994729 +0xbbf5 +// -0.102001 +0xae87 +// 0.021030 +0x2562 +// -0.010459 +0xa15b +// -0.010459 +0xa15b +// -0.010459 +0xa15b +// -0.010459 +0xa15b +// -0.994729 +0xbbf5 +// -0.102001 +0xae87 +// -0.010459 +0xa15b +// 0.002156 +0x186b +// -0.001073 +0x9465 +// -0.001073 +0x9465 +// -0.001073 +0x9465 +// -0.994729 +0xbbf5 +// -0.102001 +0xae87 +// -0.010459 +0xa15b +// -0.001073 +0x9465 +// 0.000221 +0xb3f +// -0.000110 +0x8735 +// -0.000110 +0x8735 +// -0.994729 +0xbbf5 +// -0.102001 +0xae87 +// -0.010459 +0xa15b +// -0.001073 +0x9465 +// -0.000110 +0x8735 +// 0.000023 +0x17c +// -0.000011 +0x80bd +// -0.994729 +0xbbf5 +// -0.102001 +0xae87 +// -0.010459 +0xa15b +// -0.001073 +0x9465 +// -0.000110 +0x8735 +// -0.000011 +0x80bd +// 0.000000 +0x0 +// 2.000000 +0x4000 +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// -0.929347 +0xbb6f +// 0.738413 +0x39e8 +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.343121 +0xb57d +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// 0.272627 +0x345d +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.126683 +0xb00e +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// 0.100656 +0x2e71 +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.046772 +0xa9fd +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// 0.037163 +0x28c2 +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.017269 +0xa46c +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// 0.013721 +0x2306 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.006376 +0x9e87 +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// 0.005066 +0x1d30 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.002354 +0x98d2 +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// 0.001870 +0x17a9 +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.000869 +0x931f +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// 0.000691 +0x11a8 +// -0.000321 +0x8d42 +// -0.000321 +0x8d42 +// -0.000321 +0x8d42 +// -0.000321 +0x8d42 +// -0.000321 +0x8d42 +// -0.000321 +0x8d42 +// -0.000321 +0x8d42 +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// 0.000255 +0xc2d +// -0.000118 +0x87c4 +// -0.000118 +0x87c4 +// -0.000118 +0x87c4 +// -0.000118 +0x87c4 +// -0.000118 +0x87c4 +// -0.000118 +0x87c4 +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// -0.000118 +0x87c4 +// 0.000094 +0x62b +// -0.000044 +0x82de +// -0.000044 +0x82de +// -0.000044 +0x82de +// -0.000044 +0x82de +// -0.000044 +0x82de +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// -0.000118 +0x87c4 +// -0.000044 +0x82de +// 0.000035 +0x247 +// -0.000016 +0x810f +// -0.000016 +0x810f +// -0.000016 +0x810f +// -0.000016 +0x810f +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// -0.000118 +0x87c4 +// -0.000044 +0x82de +// -0.000016 +0x810f +// 0.000013 +0xd7 +// -0.000006 +0x8064 +// -0.000006 +0x8064 +// -0.000006 +0x8064 +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// -0.000118 +0x87c4 +// -0.000044 +0x82de +// -0.000016 +0x810f +// -0.000006 +0x8064 +// 0.000005 +0x4f +// -0.000002 +0x8025 +// -0.000002 +0x8025 +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// -0.000118 +0x87c4 +// -0.000044 +0x82de +// -0.000016 +0x810f +// -0.000006 +0x8064 +// -0.000002 +0x8025 +// 0.000002 +0x1d +// -0.000001 +0x800e +// -0.929347 +0xbb6f +// -0.343121 +0xb57d +// -0.126683 +0xb00e +// -0.046772 +0xa9fd +// -0.017269 +0xa46c +// -0.006376 +0x9e87 +// -0.002354 +0x98d2 +// -0.000869 +0x931f +// -0.000321 +0x8d42 +// -0.000118 +0x87c4 +// -0.000044 +0x82de +// -0.000016 +0x810f +// -0.000006 +0x8064 +// -0.000002 +0x8025 +// -0.000001 +0x800e +// 0.000000 +0x0 +// 2.000000 +0x4000 +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// -0.866025 +0xbaee +// 1.000000 +0x3c00 +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.433013 +0xb6ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// 0.500000 +0x3800 +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.216506 +0xb2ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// 0.250000 +0x3400 +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.108253 +0xaeee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// 0.125000 +0x3000 +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.054127 +0xaaee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// 0.062500 +0x2c00 +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.027063 +0xa6ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// 0.031250 +0x2800 +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.013532 +0xa2ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// 0.015625 +0x2400 +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.006766 +0x9eee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// 0.007812 +0x2000 +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.003383 +0x9aee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// 0.003906 +0x1c00 +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.001691 +0x96ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// 0.001953 +0x1800 +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.000846 +0x92ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// 0.000977 +0x1400 +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.000423 +0x8eee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// 0.000488 +0x1000 +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.000211 +0x8aee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// 0.000244 +0xc00 +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.000106 +0x86ee +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// 0.000122 +0x800 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.000053 +0x8377 +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// 0.000061 +0x400 +// -0.000026 +0x81bb +// -0.000026 +0x81bb +// -0.000026 +0x81bb +// -0.000026 +0x81bb +// -0.000026 +0x81bb +// -0.000026 +0x81bb +// -0.000026 +0x81bb +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// 0.000031 +0x200 +// -0.000013 +0x80de +// -0.000013 +0x80de +// -0.000013 +0x80de +// -0.000013 +0x80de +// -0.000013 +0x80de +// -0.000013 +0x80de +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// -0.000013 +0x80de +// 0.000015 +0x100 +// -0.000007 +0x806f +// -0.000007 +0x806f +// -0.000007 +0x806f +// -0.000007 +0x806f +// -0.000007 +0x806f +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// -0.000013 +0x80de +// -0.000007 +0x806f +// 0.000008 +0x80 +// -0.000003 +0x8037 +// -0.000003 +0x8037 +// -0.000003 +0x8037 +// -0.000003 +0x8037 +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// -0.000013 +0x80de +// -0.000007 +0x806f +// -0.000003 +0x8037 +// 0.000004 +0x40 +// -0.000002 +0x801c +// -0.000002 +0x801c +// -0.000002 +0x801c +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// -0.000013 +0x80de +// -0.000007 +0x806f +// -0.000003 +0x8037 +// -0.000002 +0x801c +// 0.000002 +0x20 +// -0.000001 +0x800e +// -0.000001 +0x800e +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// -0.000013 +0x80de +// -0.000007 +0x806f +// -0.000003 +0x8037 +// -0.000002 +0x801c +// -0.000001 +0x800e +// 0.000001 +0x10 +// -0.000000 +0x8007 +// -0.866025 +0xbaee +// -0.433013 +0xb6ee +// -0.216506 +0xb2ee +// -0.108253 +0xaeee +// -0.054127 +0xaaee +// -0.027063 +0xa6ee +// -0.013532 +0xa2ee +// -0.006766 +0x9eee +// -0.003383 +0x9aee +// -0.001691 +0x96ee +// -0.000846 +0x92ee +// -0.000423 +0x8eee +// -0.000211 +0x8aee +// -0.000106 +0x86ee +// -0.000053 +0x8377 +// -0.000026 +0x81bb +// -0.000013 +0x80de +// -0.000007 +0x806f +// -0.000003 +0x8037 +// -0.000002 +0x801c +// -0.000001 +0x800e +// -0.000000 +0x8007 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/InputVectorHouseHolder1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/InputVectorHouseHolder1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..ddb4b17d031a9f8a61d4cf74021dac914eb3daa0 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/InputVectorHouseHolder1_f16.txt @@ -0,0 +1,62 @@ +H +30 +// -0.594486 +0xb8c2 +// 1.000000 +0x3c00 +// -0.064163 +0xac1b +// 0.130639 +0x302e +// -0.919507 +0xbb5b +// -0.090970 +0xadd2 +// -0.076884 +0xacec +// -0.660239 +0xb948 +// -1.000000 +0xbc00 +// -0.256503 +0xb41b +// 0.424322 +0x36ca +// 1.000000 +0x3c00 +// -0.126780 +0xb00f +// -0.333932 +0xb558 +// 0.835508 +0x3aaf +// 0.208306 +0x32aa +// 0.552445 +0x386b +// -0.390784 +0xb641 +// 0.284931 +0x348f +// -0.647822 +0xb92f +// 0.003365 +0x1ae4 +// -0.144245 +0xb09e +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefQ1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefQ1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..8a4b0860ccb864167936c1521b3aff03eb6bfb0b --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefQ1_f16.txt @@ -0,0 +1,17634 @@ +H +8816 +// -0.249327 +0xb3fa +// -0.547774 +0xb862 +// 0.268823 +0x344d +// -0.736017 +0xb9e3 +// -0.097844 +0xae43 +// 0.101477 +0x2e7f +// 0.062620 +0x2c02 +// -0.547774 +0xb862 +// 0.759826 +0x3a14 +// 0.117867 +0x2f8b +// -0.322710 +0xb52a +// -0.042900 +0xa97e +// 0.044493 +0x29b2 +// 0.027456 +0x2707 +// 0.268823 +0x344d +// 0.117867 +0x2f8b +// 0.942156 +0x3b8a +// 0.158372 +0x3111 +// 0.021054 +0x2564 +// -0.021835 +0xa597 +// -0.013474 +0xa2e6 +// -0.736017 +0xb9e3 +// -0.322710 +0xb52a +// 0.158372 +0x3111 +// 0.566389 +0x3888 +// -0.057643 +0xab61 +// 0.059783 +0x2ba7 +// 0.036892 +0x28b9 +// -0.097844 +0xae43 +// -0.042900 +0xa97e +// 0.021054 +0x2564 +// -0.057643 +0xab61 +// 0.992337 +0x3bf0 +// 0.007947 +0x2012 +// 0.004904 +0x1d06 +// 0.101477 +0x2e7f +// 0.044493 +0x29b2 +// -0.021835 +0xa597 +// 0.059783 +0x2ba7 +// 0.007947 +0x2012 +// 0.991757 +0x3bef +// -0.005086 +0x9d35 +// 0.062620 +0x2c02 +// 0.027456 +0x2707 +// -0.013474 +0xa2e6 +// 0.036892 +0x28b9 +// 0.004904 +0x1d06 +// -0.005086 +0x9d35 +// 0.996861 +0x3bfa +// -0.112908 +0xaf3a +// -0.409909 +0xb68f +// 0.065171 +0x2c2c +// 0.553697 +0x386e +// 0.238556 +0x33a2 +// -0.495415 +0xb7ed +// 0.453931 +0x3743 +// -0.331607 +0xb54e +// -0.675293 +0xb967 +// -0.137801 +0xb069 +// -0.158917 +0xb116 +// 0.233301 +0x3377 +// 0.578316 +0x38a0 +// 0.029903 +0x27a8 +// 0.064914 +0x2c28 +// -0.249276 +0xb3fa +// -0.150654 +0xb0d2 +// -0.777853 +0xba39 +// 0.028472 +0x274a +// -0.524017 +0xb831 +// 0.174617 +0x3196 +// -0.079528 +0xad17 +// 0.342677 +0x357c +// 0.183540 +0x31e0 +// -0.130634 +0xb02e +// 0.906920 +0x3b41 +// -0.000663 +0x916e +// -0.054683 +0xab00 +// -0.804783 +0xba70 +// 0.277114 +0x346f +// -0.464909 +0xb770 +// 0.040972 +0x293f +// -0.081894 +0xad3e +// -0.198824 +0xb25d +// -0.107125 +0xaedb +// -0.299034 +0xb4c9 +// -0.260835 +0xb42c +// 0.629068 +0x3908 +// -0.025451 +0xa684 +// -0.095398 +0xae1b +// -0.263300 +0xb436 +// -0.606417 +0xb8da +// -0.360073 +0xb5c3 +// 0.227071 +0x3344 +// 0.555440 +0x3872 +// -0.209087 +0xb2b1 +// -0.222573 +0xb31f +// 0.191476 +0x3221 +// 0.616728 +0x38ef +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.225877 +0xb33a +// 0.017386 +0x2473 +// 0.513074 +0x381b +// -0.292001 +0xb4ac +// -0.213829 +0xb2d8 +// 0.076228 +0x2ce1 +// -0.222057 +0xb31b +// 0.080886 +0x2d2d +// 0.284873 +0x348f +// 0.088627 +0x2dac +// 0.274127 +0x3463 +// -0.166091 +0xb151 +// -0.365478 +0xb5d9 +// -0.383896 +0xb624 +// -0.141750 +0xb089 +// 0.000000 +0x0 +// 0.017386 +0x2473 +// 0.999753 +0x3bff +// -0.007277 +0x9f74 +// 0.004141 +0x1c3e +// 0.003033 +0x1a36 +// -0.001081 +0x946e +// 0.003149 +0x1a73 +// -0.001147 +0x94b3 +// -0.004040 +0x9c23 +// -0.001257 +0x9526 +// -0.003888 +0x9bf6 +// 0.002356 +0x18d3 +// 0.005184 +0x1d4f +// 0.005445 +0x1d93 +// 0.002010 +0x181e +// 0.000000 +0x0 +// 0.513074 +0x381b +// -0.007277 +0x9f74 +// 0.785260 +0x3a48 +// 0.122213 +0x2fd2 +// 0.089495 +0x2dba +// -0.031904 +0xa815 +// 0.092939 +0x2df3 +// -0.033854 +0xa855 +// -0.119230 +0xafa1 +// -0.037094 +0xa8bf +// -0.114732 +0xaf58 +// 0.069515 +0x2c73 +// 0.152966 +0x30e5 +// 0.160674 +0x3124 +// 0.059328 +0x2b98 +// 0.000000 +0x0 +// -0.292001 +0xb4ac +// 0.004141 +0x1c3e +// 0.122213 +0x2fd2 +// 0.930446 +0x3b72 +// -0.050934 +0xaa85 +// 0.018157 +0x24a6 +// -0.052893 +0xaac5 +// 0.019267 +0x24ef +// 0.067856 +0x2c58 +// 0.021111 +0x2568 +// 0.065296 +0x2c2e +// -0.039562 +0xa910 +// -0.087056 +0xad92 +// -0.091443 +0xadda +// -0.033765 +0xa852 +// 0.000000 +0x0 +// -0.213829 +0xb2d8 +// 0.003033 +0x1a36 +// 0.089495 +0x2dba +// -0.050934 +0xaa85 +// 0.962702 +0x3bb4 +// 0.013296 +0x22cf +// -0.038733 +0xa8f5 +// 0.014109 +0x2339 +// 0.049690 +0x2a5c +// 0.015459 +0x23ea +// 0.047816 +0x2a1f +// -0.028971 +0xa76b +// -0.063750 +0xac14 +// -0.066963 +0xac49 +// -0.024725 +0xa654 +// 0.000000 +0x0 +// 0.076228 +0x2ce1 +// -0.001081 +0x946e +// -0.031904 +0xa815 +// 0.018157 +0x24a6 +// 0.013296 +0x22cf +// 0.995260 +0x3bf6 +// 0.013808 +0x2312 +// -0.005030 +0x9d27 +// -0.017714 +0xa489 +// -0.005511 +0x9da5 +// -0.017046 +0xa45d +// 0.010328 +0x214a +// 0.022726 +0x25d1 +// 0.023872 +0x261c +// 0.008814 +0x2083 +// 0.000000 +0x0 +// -0.222057 +0xb31b +// 0.003149 +0x1a73 +// 0.092939 +0x2df3 +// -0.052893 +0xaac5 +// -0.038733 +0xa8f5 +// 0.013808 +0x2312 +// 0.959776 +0x3bae +// 0.014652 +0x2380 +// 0.051602 +0x2a9b +// 0.016054 +0x241c +// 0.049656 +0x2a5b +// -0.030086 +0xa7b4 +// -0.066203 +0xac3d +// -0.069539 +0xac73 +// -0.025677 +0xa693 +// 0.000000 +0x0 +// 0.080886 +0x2d2d +// -0.001147 +0x94b3 +// -0.033854 +0xa855 +// 0.019267 +0x24ef +// 0.014109 +0x2339 +// -0.005030 +0x9d27 +// 0.014652 +0x2380 +// 0.994663 +0x3bf5 +// -0.018797 +0xa4d0 +// -0.005848 +0x9dfd +// -0.018088 +0xa4a1 +// 0.010959 +0x219c +// 0.024115 +0x262c +// 0.025330 +0x267c +// 0.009353 +0x20ca +// 0.000000 +0x0 +// 0.284873 +0x348f +// -0.004040 +0x9c23 +// -0.119230 +0xafa1 +// 0.067856 +0x2c58 +// 0.049690 +0x2a5c +// -0.017714 +0xa489 +// 0.051602 +0x2a9b +// -0.018797 +0xa4d0 +// 0.933800 +0x3b78 +// -0.020595 +0xa546 +// -0.063702 +0xac14 +// 0.038597 +0x28f1 +// 0.084931 +0x2d70 +// 0.089211 +0x2db6 +// 0.032940 +0x2837 +// 0.000000 +0x0 +// 0.088627 +0x2dac +// -0.001257 +0x9526 +// -0.037094 +0xa8bf +// 0.021111 +0x2568 +// 0.015459 +0x23ea +// -0.005511 +0x9da5 +// 0.016054 +0x241c +// -0.005848 +0x9dfd +// -0.020595 +0xa546 +// 0.993593 +0x3bf3 +// -0.019819 +0xa513 +// 0.012008 +0x2226 +// 0.026423 +0x26c4 +// 0.027754 +0x271b +// 0.010248 +0x213f +// 0.000000 +0x0 +// 0.274127 +0x3463 +// -0.003888 +0x9bf6 +// -0.114732 +0xaf58 +// 0.065296 +0x2c2e +// 0.047816 +0x2a1f +// -0.017046 +0xa45d +// 0.049656 +0x2a5b +// -0.018088 +0xa4a1 +// -0.063702 +0xac14 +// -0.019819 +0xa513 +// 0.938701 +0x3b82 +// 0.037141 +0x28c1 +// 0.081727 +0x2d3b +// 0.085846 +0x2d7e +// 0.031698 +0x280f +// 0.000000 +0x0 +// -0.166091 +0xb151 +// 0.002356 +0x18d3 +// 0.069515 +0x2c73 +// -0.039562 +0xa910 +// -0.028971 +0xa76b +// 0.010328 +0x214a +// -0.030086 +0xa7b4 +// 0.010959 +0x219c +// 0.038597 +0x28f1 +// 0.012008 +0x2226 +// 0.037141 +0x28c1 +// 0.977497 +0x3bd2 +// -0.049518 +0xaa57 +// -0.052013 +0xaaa8 +// -0.019205 +0xa4eb +// 0.000000 +0x0 +// -0.365478 +0xb5d9 +// 0.005184 +0x1d4f +// 0.152966 +0x30e5 +// -0.087056 +0xad92 +// -0.063750 +0xac14 +// 0.022726 +0x25d1 +// -0.066203 +0xac3d +// 0.024115 +0x262c +// 0.084931 +0x2d70 +// 0.026423 +0x26c4 +// 0.081727 +0x2d3b +// -0.049518 +0xaa57 +// 0.891038 +0x3b21 +// -0.114453 +0xaf53 +// -0.042261 +0xa969 +// 0.000000 +0x0 +// -0.383896 +0xb624 +// 0.005445 +0x1d93 +// 0.160674 +0x3124 +// -0.091443 +0xadda +// -0.066963 +0xac49 +// 0.023872 +0x261c +// -0.069539 +0xac73 +// 0.025330 +0x267c +// 0.089211 +0x2db6 +// 0.027754 +0x271b +// 0.085846 +0x2d7e +// -0.052013 +0xaaa8 +// -0.114453 +0xaf53 +// 0.879779 +0x3b0a +// -0.044391 +0xa9af +// 0.000000 +0x0 +// -0.141750 +0xb089 +// 0.002010 +0x181e +// 0.059328 +0x2b98 +// -0.033765 +0xa852 +// -0.024725 +0xa654 +// 0.008814 +0x2083 +// -0.025677 +0xa693 +// 0.009353 +0x20ca +// 0.032940 +0x2837 +// 0.010248 +0x213f +// 0.031698 +0x280f +// -0.019205 +0xa4eb +// -0.042261 +0xa969 +// -0.044391 +0xa9af +// 0.983609 +0x3bde +// -0.025235 +0xa676 +// 0.244621 +0x33d4 +// 0.064406 +0x2c1f +// 0.233728 +0x337b +// -0.323061 +0xb52b +// 0.404427 +0x3679 +// -0.097915 +0xae44 +// -0.153375 +0xb0e8 +// 0.243145 +0x33c8 +// -0.497950 +0xb7f8 +// 0.283122 +0x3488 +// -0.044275 +0xa9ab +// 0.225750 +0x3339 +// -0.155877 +0xb0fd +// 0.137448 +0x3066 +// -0.310421 +0xb4f7 +// 0.080873 +0x2d2d +// -0.092144 +0xade6 +// -0.136423 +0xb05e +// -0.501468 +0xb803 +// 0.190108 +0x3215 +// 0.186138 +0x31f5 +// -0.360942 +0xb5c6 +// 0.220999 +0x3312 +// 0.004157 +0x1c42 +// -0.339829 +0xb570 +// -0.143336 +0xb096 +// 0.288124 +0x349c +// -0.385714 +0xb62c +// -0.001419 +0x95d0 +// 0.095691 +0x2e20 +// -0.296620 +0xb4bf +// -0.378797 +0xb610 +// 0.168459 +0x3164 +// -0.180578 +0xb1c7 +// -0.095558 +0xae1e +// 0.117773 +0x2f8a +// -0.178570 +0xb1b7 +// -0.303671 +0xb4dc +// 0.391674 +0x3644 +// -0.373299 +0xb5f9 +// -0.030059 +0xa7b2 +// 0.085921 +0x2d80 +// -0.195844 +0xb244 +// 0.464144 +0x376d +// -0.150400 +0xb0d0 +// 0.266341 +0x3443 +// -0.005703 +0x9dd7 +// -0.272082 +0xb45a +// 0.329647 +0x3546 +// -0.269948 +0xb452 +// -0.221603 +0xb317 +// -0.279928 +0xb47b +// -0.238953 +0xb3a6 +// -0.284362 +0xb48d +// -0.418317 +0xb6b1 +// 0.046655 +0x29f9 +// 0.095848 +0x2e22 +// 0.186624 +0x31f9 +// 0.155609 +0x30fb +// -0.247700 +0xb3ed +// -0.277966 +0xb473 +// -0.193212 +0xb22f +// 0.240122 +0x33af +// 0.026117 +0x26b0 +// -0.009926 +0xa115 +// -0.318463 +0xb518 +// 0.128613 +0x301e +// -0.028971 +0xa76b +// 0.398008 +0x365e +// 0.169196 +0x316a +// 0.398862 +0x3662 +// 0.002499 +0x191e +// -0.146594 +0xb0b1 +// 0.170365 +0x3174 +// -0.101117 +0xae79 +// -0.273576 +0xb461 +// -0.151341 +0xb0d8 +// 0.021718 +0x258f +// 0.612639 +0x38e7 +// -0.302233 +0xb4d6 +// -0.279323 +0xb478 +// 0.101949 +0x2e86 +// -0.053796 +0xaae3 +// -0.413108 +0xb69c +// 0.182595 +0x31d8 +// 0.264300 +0x343b +// 0.244809 +0x33d5 +// -0.310748 +0xb4f9 +// 0.213782 +0x32d7 +// 0.071682 +0x2c96 +// 0.192814 +0x322c +// -0.076239 +0xace1 +// -0.306713 +0xb4e8 +// -0.297153 +0xb4c1 +// -0.332857 +0xb553 +// -0.116729 +0xaf78 +// 0.067841 +0x2c58 +// -0.312853 +0xb501 +// 0.093993 +0x2e04 +// -0.335547 +0xb55e +// 0.073047 +0x2cad +// -0.229280 +0xb356 +// 0.300314 +0x34ce +// 0.304123 +0x34de +// 0.242306 +0x33c1 +// -0.031379 +0xa804 +// 0.132880 +0x3041 +// 0.114073 +0x2f4d +// 0.628498 +0x3907 +// -0.177011 +0xb1aa +// -0.071937 +0xac9b +// -0.065506 +0xac31 +// 0.570603 +0x3891 +// 0.566606 +0x3888 +// -0.276029 +0xb46b +// 0.092294 +0x2de8 +// 0.006006 +0x1e26 +// 0.130927 +0x3031 +// 0.364954 +0x35d7 +// 0.256957 +0x341c +// 0.096215 +0x2e28 +// 0.078178 +0x2d01 +// 0.017709 +0x2489 +// -0.049629 +0xaa5a +// -0.016051 +0xa41c +// -0.155333 +0xb0f8 +// 0.073755 +0x2cb8 +// -0.151829 +0xb0dc +// -0.210138 +0xb2b9 +// -0.295008 +0xb4b8 +// -0.079863 +0xad1c +// 0.113060 +0x2f3c +// -0.346809 +0xb58d +// 0.314009 +0x3506 +// 0.170399 +0x3174 +// 0.659396 +0x3946 +// -0.043275 +0xa98a +// 0.019538 +0x2500 +// -0.018160 +0xa4a6 +// 0.088726 +0x2dae +// -0.317813 +0xb516 +// 0.075302 +0x2cd2 +// -0.163557 +0xb13c +// -0.259469 +0xb427 +// -0.028831 +0xa761 +// -0.043537 +0xa993 +// -0.138174 +0xb06c +// 0.305798 +0x34e5 +// 0.567487 +0x388a +// -0.045398 +0xa9d0 +// -0.252404 +0xb40a +// 0.178098 +0x31b3 +// 0.550864 +0x3868 +// 0.048860 +0x2a41 +// -0.062960 +0xac08 +// 0.038520 +0x28ee +// -0.062483 +0xabff +// 0.280798 +0x347e +// -0.061459 +0xabde +// 0.227090 +0x3344 +// -0.204750 +0xb28d +// 0.044735 +0x29ba +// -0.024797 +0xa659 +// 0.191067 +0x321d +// -0.135939 +0xb05a +// -0.112205 +0xaf2e +// 0.062390 +0x2bfc +// -0.032727 +0xa830 +// 0.118407 +0x2f94 +// 0.886308 +0x3b17 +// 0.071461 +0x2c93 +// -0.041602 +0xa953 +// 0.120101 +0x2fb0 +// -0.048896 +0xaa42 +// -0.090201 +0xadc6 +// 0.039542 +0x2910 +// 0.233737 +0x337b +// -0.133354 +0xb044 +// 0.228163 +0x334d +// 0.221155 +0x3314 +// 0.011104 +0x21af +// 0.216753 +0x32f0 +// -0.006376 +0x9e87 +// -0.109378 +0xaf00 +// 0.009772 +0x2101 +// -0.004934 +0x9d0d +// 0.835093 +0x3aae +// 0.216191 +0x32eb +// -0.043602 +0xa995 +// 0.129275 +0x3023 +// 0.055591 +0x2b1e +// 0.320252 +0x3520 +// -0.234474 +0xb381 +// 0.044539 +0x29b3 +// -0.545724 +0xb85e +// -0.243602 +0xb3cc +// 0.141104 +0x3084 +// -0.002915 +0x99f8 +// -0.073014 +0xacac +// 0.072670 +0x2ca7 +// -0.016587 +0xa43f +// -0.015273 +0xa3d2 +// 0.119868 +0x2fac +// 0.566897 +0x3889 +// -0.067657 +0xac54 +// -0.081573 +0xad38 +// 0.324513 +0x3531 +// -0.371476 +0xb5f2 +// 0.046826 +0x29fe +// -0.100359 +0xae6c +// -0.358602 +0xb5bd +// -0.006847 +0x9f03 +// -0.005703 +0x9dd7 +// 0.532591 +0x3843 +// -0.211660 +0xb2c6 +// -0.163198 +0xb139 +// -0.293720 +0xb4b3 +// 0.163496 +0x313b +// -0.056437 +0xab39 +// -0.033341 +0xa845 +// 0.479681 +0x37ad +// 0.136084 +0x305b +// 0.008190 +0x2031 +// 0.079756 +0x2d1b +// -0.069521 +0xac73 +// 0.213894 +0x32d8 +// -0.025203 +0xa674 +// -0.460723 +0xb75f +// -0.185849 +0xb1f2 +// -0.004605 +0x9cb7 +// 0.093264 +0x2df8 +// 0.034824 +0x2875 +// 0.170620 +0x3176 +// 0.022890 +0x25dc +// 0.118205 +0x2f91 +// -0.215475 +0xb2e5 +// 0.020426 +0x253b +// 0.766597 +0x3a22 +// 0.086934 +0x2d90 +// -0.524344 +0xb832 +// -0.427510 +0xb6d7 +// 0.417746 +0x36af +// 0.161280 +0x3129 +// 0.106241 +0x2ecd +// -0.016676 +0xa445 +// -0.273762 +0xb461 +// -0.036468 +0xa8ab +// 0.177657 +0x31af +// -0.237090 +0xb396 +// 0.001713 +0x1704 +// 0.220852 +0x3311 +// 0.024612 +0x264d +// 0.085134 +0x2d73 +// -0.054647 +0xaaff +// 0.326407 +0x3539 +// -0.330338 +0xb549 +// -0.246890 +0xb3e7 +// 0.111095 +0x2f1c +// -0.571441 +0xb892 +// 0.121853 +0x2fcc +// -0.253745 +0xb40f +// 0.022792 +0x25d6 +// 0.040162 +0x2924 +// 0.300466 +0x34cf +// -0.175541 +0xb19e +// -0.154604 +0xb0f3 +// -0.161898 +0xb12e +// -0.372022 +0xb5f4 +// -0.273084 +0xb45f +// -0.013339 +0xa2d4 +// -0.159081 +0xb117 +// 0.049746 +0x2a5e +// -0.200115 +0xb267 +// -0.027062 +0xa6ee +// 0.020825 +0x2555 +// -0.019134 +0xa4e6 +// 0.293108 +0x34b1 +// 0.197809 +0x3254 +// 0.274217 +0x3463 +// -0.229323 +0xb357 +// -0.220424 +0xb30e +// 0.451930 +0x373b +// -0.453237 +0xb740 +// -0.181417 +0xb1ce +// 0.192670 +0x322a +// -0.265368 +0xb43f +// -0.323136 +0xb52c +// 0.354119 +0x35aa +// 0.003631 +0x1b70 +// -0.160946 +0xb126 +// -0.279391 +0xb478 +// 0.042022 +0x2961 +// 0.101987 +0x2e87 +// 0.207745 +0x32a6 +// 0.006483 +0x1ea3 +// 0.120453 +0x2fb6 +// 0.133048 +0x3042 +// 0.220699 +0x3310 +// 0.635692 +0x3916 +// -0.415978 +0xb6a8 +// 0.209178 +0x32b2 +// -0.019836 +0xa514 +// -0.114222 +0xaf4f +// -0.308715 +0xb4f0 +// -0.159329 +0xb119 +// 0.232464 +0x3370 +// -0.105127 +0xaeba +// 0.167817 +0x315f +// -0.267297 +0xb447 +// 0.275975 +0x346a +// -0.002511 +0x9925 +// -0.439715 +0xb709 +// 0.196671 +0x324b +// 0.387648 +0x3634 +// 0.309342 +0x34f3 +// 0.311248 +0x34fb +// -0.238585 +0xb3a2 +// -0.076252 +0xace1 +// -0.028901 +0xa766 +// -0.362440 +0xb5cd +// -0.101354 +0xae7d +// -0.472971 +0xb791 +// -0.010645 +0xa173 +// -0.066626 +0xac44 +// 0.248038 +0x33f0 +// 0.250175 +0x3401 +// 0.110343 +0x2f10 +// 0.306690 +0x34e8 +// -0.133344 +0xb044 +// 0.134982 +0x3052 +// 0.094027 +0x2e05 +// 0.155247 +0x30f8 +// -0.073517 +0xacb4 +// -0.239683 +0xb3ab +// 0.517658 +0x3824 +// -0.287986 +0xb49c +// -0.308641 +0xb4f0 +// -0.223945 +0xb32b +// 0.107839 +0x2ee7 +// -0.396743 +0xb659 +// -0.034506 +0xa86b +// 0.063060 +0x2c09 +// -0.041224 +0xa947 +// 0.012163 +0x223a +// 0.688706 +0x3982 +// -0.129235 +0xb023 +// -0.113478 +0xaf43 +// -0.130253 +0xb02b +// 0.170286 +0x3173 +// 0.059100 +0x2b91 +// -0.205557 +0xb294 +// -0.352345 +0xb5a3 +// 0.051735 +0x2a9f +// -0.288042 +0xb49c +// -0.291297 +0xb4a9 +// 0.133113 +0x3042 +// 0.071479 +0x2c93 +// -0.431301 +0xb6e7 +// -0.105513 +0xaec1 +// -0.395246 +0xb653 +// -0.176048 +0xb1a2 +// -0.169896 +0xb170 +// 0.163314 +0x313a +// 0.075349 +0x2cd3 +// 0.456727 +0x374f +// -0.130359 +0xb02c +// -0.106557 +0xaed2 +// -0.025303 +0xa67a +// 0.197606 +0x3253 +// -0.029077 +0xa772 +// -0.019284 +0xa4f0 +// -0.001625 +0x96a7 +// -0.181903 +0xb1d2 +// -0.135221 +0xb054 +// 0.931314 +0x3b73 +// -0.012104 +0xa232 +// 0.126539 +0x300d +// -0.103418 +0xae9e +// 0.092724 +0x2def +// 0.035507 +0x288c +// 0.023529 +0x2606 +// 0.053622 +0x2add +// 0.015205 +0x23c9 +// 0.234465 +0x3381 +// -0.331231 +0xb54d +// 0.202432 +0x327a +// -0.279630 +0xb479 +// -0.137916 +0xb06a +// -0.046946 +0xaa02 +// -0.396668 +0xb659 +// 0.019200 +0x24ea +// 0.390341 +0x363f +// 0.111891 +0x2f29 +// 0.278577 +0x3475 +// -0.014358 +0xa35a +// 0.469294 +0x3782 +// 0.208975 +0x32b0 +// -0.174806 +0xb198 +// 0.006396 +0x1e8d +// -0.147745 +0xb0ba +// 0.141775 +0x3089 +// 0.271631 +0x3459 +// -0.116998 +0xaf7d +// 0.417980 +0x36b0 +// 0.670252 +0x395d +// -0.158615 +0xb113 +// 0.033136 +0x283e +// 0.066654 +0x2c44 +// 0.429013 +0x36dd +// -0.017369 +0xa472 +// -0.054784 +0xab03 +// -0.047553 +0xaa16 +// -0.155748 +0xb0fc +// -0.023462 +0xa602 +// 0.039106 +0x2901 +// -0.318045 +0xb517 +// 0.344622 +0x3584 +// -0.079248 +0xad12 +// 0.256129 +0x3419 +// 0.098417 +0x2e4c +// -0.240678 +0xb3b4 +// -0.339270 +0xb56e +// -0.106772 +0xaed5 +// 0.271024 +0x3456 +// 0.039377 +0x290a +// 0.594417 +0x38c1 +// -0.032542 +0xa82a +// -0.241335 +0xb3b9 +// 0.041956 +0x295f +// 0.144386 +0x309f +// -0.061959 +0xabee +// -0.246291 +0xb3e2 +// -0.430679 +0xb6e4 +// 0.348997 +0x3595 +// 0.499409 +0x37fe +// -0.025349 +0xa67d +// 0.159495 +0x311b +// -0.150120 +0xb0ce +// 0.108869 +0x2ef8 +// 0.127530 +0x3015 +// -0.277837 +0xb472 +// -0.128819 +0xb01f +// 0.411811 +0x3697 +// -0.149784 +0xb0cb +// 0.052323 +0x2ab3 +// -0.055361 +0xab16 +// -0.119583 +0xafa7 +// 0.047045 +0x2a06 +// -0.139414 +0xb076 +// -0.348722 +0xb594 +// 0.180790 +0x31c9 +// 0.591557 +0x38bc +// -0.074949 +0xaccc +// 0.197318 +0x3250 +// 0.014480 +0x236a +// 0.277435 +0x3470 +// 0.006578 +0x1ebc +// -0.112362 +0xaf31 +// -0.018829 +0xa4d2 +// 0.336034 +0x3560 +// 0.069946 +0x2c7a +// 0.157205 +0x3108 +// -0.443666 +0xb719 +// -0.232462 +0xb370 +// 0.233366 +0x3378 +// 0.426618 +0x36d3 +// -0.068667 +0xac65 +// 0.035525 +0x288c +// -0.067643 +0xac54 +// 0.446004 +0x3723 +// -0.014383 +0xa35d +// 0.195132 +0x323f +// -0.016551 +0xa43d +// -0.075525 +0xacd5 +// -0.081546 +0xad38 +// 0.067246 +0x2c4e +// 0.647340 +0x392e +// 0.096913 +0x2e34 +// 0.127089 +0x3011 +// -0.053478 +0xaad8 +// -0.214344 +0xb2dc +// -0.046018 +0xa9e4 +// -0.173233 +0xb18b +// -0.132303 +0xb03c +// 0.252289 +0x3409 +// -0.018190 +0xa4a8 +// 0.071464 +0x2c93 +// -0.094839 +0xae12 +// -0.166369 +0xb153 +// 0.178170 +0x31b4 +// 0.003446 +0x1b0f +// 0.090263 +0x2dc7 +// 0.010033 +0x2123 +// 0.866351 +0x3aee +// 0.072363 +0x2ca2 +// 0.175741 +0x31a0 +// -0.415261 +0xb6a5 +// -0.027322 +0xa6ff +// 0.112423 +0x2f32 +// 0.450032 +0x3733 +// -0.241437 +0xb3ba +// -0.108785 +0xaef6 +// 0.023381 +0x25fc +// -0.167729 +0xb15e +// 0.147660 +0x30ba +// 0.022140 +0x25ab +// -0.175241 +0xb19c +// -0.286365 +0xb495 +// 0.218177 +0x32fb +// 0.051912 +0x2aa5 +// 0.544655 +0x385b +// -0.046943 +0xaa02 +// 0.180021 +0x31c3 +// 0.322785 +0x352a +// -0.009370 +0xa0cc +// 0.205786 +0x3296 +// -0.024090 +0xa62b +// -0.371689 +0xb5f2 +// 0.443471 +0x3718 +// -0.256186 +0xb419 +// -0.485183 +0xb7c3 +// -0.233849 +0xb37c +// 0.042424 +0x296e +// 0.028458 +0x2749 +// -0.031012 +0xa7f0 +// 0.319659 +0x351d +// -0.147957 +0xb0bc +// 0.180021 +0x31c3 +// 0.969046 +0x3bc1 +// -0.055503 +0xab1b +// 0.001611 +0x1699 +// -0.035385 +0xa887 +// 0.004142 +0x1c3e +// 0.063912 +0x2c17 +// -0.076254 +0xace1 +// 0.044051 +0x29a3 +// 0.083427 +0x2d57 +// 0.040210 +0x2926 +// -0.007295 +0x9f78 +// -0.004893 +0x9d03 +// 0.005332 +0x1d76 +// -0.054965 +0xab09 +// 0.025441 +0x2683 +// 0.322785 +0x352a +// -0.055503 +0xab1b +// 0.900482 +0x3b34 +// 0.002889 +0x19eb +// -0.063446 +0xac10 +// 0.007427 +0x1f9b +// 0.114596 +0x2f56 +// -0.136727 +0xb060 +// 0.078985 +0x2d0e +// 0.149588 +0x30c9 +// 0.072098 +0x2c9d +// -0.013080 +0xa2b2 +// -0.008774 +0xa07e +// 0.009561 +0x20e5 +// -0.098555 +0xae4f +// 0.045617 +0x29d7 +// -0.009370 +0xa0cc +// 0.001611 +0x1699 +// 0.002889 +0x19eb +// 0.999916 +0x3c00 +// 0.001842 +0x178b +// -0.000216 +0x8b11 +// -0.003327 +0x9ad0 +// 0.003969 +0x1c10 +// -0.002293 +0x98b2 +// -0.004342 +0x9c72 +// -0.002093 +0x9849 +// 0.000380 +0xe39 +// 0.000255 +0xc2c +// -0.000278 +0x8c8c +// 0.002861 +0x19dc +// -0.001324 +0x956d +// 0.205786 +0x3296 +// -0.035385 +0xa887 +// -0.063446 +0xac10 +// 0.001842 +0x178b +// 0.959551 +0x3bad +// 0.004735 +0x1cd9 +// 0.073059 +0x2cad +// -0.087168 +0xad94 +// 0.050356 +0x2a72 +// 0.095367 +0x2e1a +// 0.045965 +0x29e2 +// -0.008339 +0xa045 +// -0.005594 +0x9dba +// 0.006096 +0x1e3e +// -0.062832 +0xac05 +// 0.029082 +0x2772 +// -0.024090 +0xa62b +// 0.004142 +0x1c3e +// 0.007427 +0x1f9b +// -0.000216 +0x8b11 +// 0.004735 +0x1cd9 +// 0.999446 +0x3bff +// -0.008553 +0xa061 +// 0.010204 +0x213a +// -0.005895 +0x9e09 +// -0.011164 +0xa1b7 +// -0.005381 +0x9d83 +// 0.000976 +0x13ff +// 0.000655 +0x115d +// -0.000714 +0x91d8 +// 0.007355 +0x1f88 +// -0.003405 +0x9af9 +// -0.371689 +0xb5f2 +// 0.063912 +0x2c17 +// 0.114596 +0x2f56 +// -0.003327 +0x9ad0 +// 0.073059 +0x2cad +// -0.008553 +0xa061 +// 0.868042 +0x3af2 +// 0.157442 +0x310a +// -0.090952 +0xadd2 +// -0.172251 +0xb183 +// -0.083022 +0xad50 +// 0.015062 +0x23b6 +// 0.010103 +0x212c +// -0.011010 +0xa1a3 +// 0.113486 +0x2f43 +// -0.052528 +0xaab9 +// 0.443471 +0x3718 +// -0.076254 +0xace1 +// -0.136727 +0xb060 +// 0.003969 +0x1c10 +// -0.087168 +0xad94 +// 0.010204 +0x213a +// 0.157442 +0x310a +// 0.812151 +0x3a7f +// 0.108517 +0x2ef2 +// 0.205517 +0x3294 +// 0.099055 +0x2e57 +// -0.017970 +0xa49a +// -0.012055 +0xa22c +// 0.013136 +0x22ba +// -0.135403 +0xb055 +// 0.062673 +0x2c03 +// -0.256186 +0xb419 +// 0.044051 +0x29a3 +// 0.078985 +0x2d0e +// -0.002293 +0x98b2 +// 0.050356 +0x2a72 +// -0.005895 +0x9e09 +// -0.090952 +0xadd2 +// 0.108517 +0x2ef2 +// 0.937312 +0x3b80 +// -0.118724 +0xaf99 +// -0.057223 +0xab53 +// 0.010381 +0x2151 +// 0.006964 +0x1f21 +// -0.007589 +0x9fc5 +// 0.078220 +0x2d02 +// -0.036205 +0xa8a2 +// -0.485183 +0xb7c3 +// 0.083427 +0x2d57 +// 0.149588 +0x30c9 +// -0.004342 +0x9c72 +// 0.095367 +0x2e1a +// -0.011164 +0xa1b7 +// -0.172251 +0xb183 +// 0.205517 +0x3294 +// -0.118724 +0xaf99 +// 0.775153 +0x3a34 +// -0.108372 +0xaef0 +// 0.019661 +0x2508 +// 0.013188 +0x22c1 +// -0.014372 +0xa35c +// 0.148139 +0x30be +// -0.068568 +0xac63 +// -0.233849 +0xb37c +// 0.040210 +0x2926 +// 0.072098 +0x2c9d +// -0.002093 +0x9849 +// 0.045965 +0x29e2 +// -0.005381 +0x9d83 +// -0.083022 +0xad50 +// 0.099055 +0x2e57 +// -0.057223 +0xab53 +// -0.108372 +0xaef0 +// 0.947767 +0x3b95 +// 0.009476 +0x20da +// 0.006357 +0x1e82 +// -0.006927 +0x9f18 +// 0.071400 +0x2c92 +// -0.033048 +0xa83b +// 0.042424 +0x296e +// -0.007295 +0x9f78 +// -0.013080 +0xa2b2 +// 0.000380 +0xe39 +// -0.008339 +0xa045 +// 0.000976 +0x13ff +// 0.015062 +0x23b6 +// -0.017970 +0xa49a +// 0.010381 +0x2151 +// 0.019661 +0x2508 +// 0.009476 +0x20da +// 0.998281 +0x3bfc +// -0.001153 +0x94b9 +// 0.001257 +0x1526 +// -0.012953 +0xa2a2 +// 0.005996 +0x1e24 +// 0.028458 +0x2749 +// -0.004893 +0x9d03 +// -0.008774 +0xa07e +// 0.000255 +0xc2c +// -0.005594 +0x9dba +// 0.000655 +0x115d +// 0.010103 +0x212c +// -0.012055 +0xa22c +// 0.006964 +0x1f21 +// 0.013188 +0x22c1 +// 0.006357 +0x1e82 +// -0.001153 +0x94b9 +// 0.999226 +0x3bfe +// 0.000843 +0x12e8 +// -0.008689 +0xa073 +// 0.004022 +0x1c1e +// -0.031012 +0xa7f0 +// 0.005332 +0x1d76 +// 0.009561 +0x20e5 +// -0.000278 +0x8c8c +// 0.006096 +0x1e3e +// -0.000714 +0x91d8 +// -0.011010 +0xa1a3 +// 0.013136 +0x22ba +// -0.007589 +0x9fc5 +// -0.014372 +0xa35c +// -0.006927 +0x9f18 +// 0.001257 +0x1526 +// 0.000843 +0x12e8 +// 0.999081 +0x3bfe +// 0.009469 +0x20d9 +// -0.004383 +0x9c7d +// 0.319659 +0x351d +// -0.054965 +0xab09 +// -0.098555 +0xae4f +// 0.002861 +0x19dc +// -0.062832 +0xac05 +// 0.007355 +0x1f88 +// 0.113486 +0x2f43 +// -0.135403 +0xb055 +// 0.078220 +0x2d02 +// 0.148139 +0x30be +// 0.071400 +0x2c92 +// -0.012953 +0xa2a2 +// -0.008689 +0xa073 +// 0.009469 +0x20d9 +// 0.902400 +0x3b38 +// 0.045175 +0x29c8 +// -0.147957 +0xb0bc +// 0.025441 +0x2683 +// 0.045617 +0x29d7 +// -0.001324 +0x956d +// 0.029082 +0x2772 +// -0.003405 +0x9af9 +// -0.052528 +0xaab9 +// 0.062673 +0x2c03 +// -0.036205 +0xa8a2 +// -0.068568 +0xac63 +// -0.033048 +0xa83b +// 0.005996 +0x1e24 +// 0.004022 +0x1c1e +// -0.004383 +0x9c7d +// 0.045175 +0x29c8 +// 0.979090 +0x3bd5 +// -0.034435 +0xa868 +// 0.426986 +0x36d5 +// -0.273404 +0xb460 +// 0.470173 +0x3786 +// -0.069678 +0xac76 +// -0.104213 +0xaeab +// 0.316063 +0x350f +// 0.280623 +0x347d +// -0.109004 +0xaefa +// -0.140942 +0xb083 +// -0.529229 +0xb83c +// -0.026098 +0xa6ae +// -0.007843 +0xa004 +// 0.059123 +0x2b91 +// -0.014408 +0xa361 +// 0.100245 +0x2e6a +// -0.311626 +0xb4fc +// -0.054900 +0xab07 +// -0.086652 +0xad8c +// -0.098873 +0xae54 +// 0.250093 +0x3400 +// 0.051085 +0x2a8a +// 0.439430 +0x3708 +// -0.199182 +0xb260 +// 0.095417 +0x2e1b +// 0.412694 +0x369a +// -0.013903 +0xa31e +// 0.221085 +0x3313 +// 0.216851 +0x32f0 +// 0.482460 +0x37b8 +// -0.249958 +0xb400 +// 0.117892 +0x2f8c +// 0.301568 +0x34d3 +// -0.075104 +0xaccf +// 0.068400 +0x2c61 +// 0.206202 +0x3299 +// 0.137679 +0x3068 +// -0.677475 +0xb96b +// 0.117851 +0x2f8b +// -0.067258 +0xac4e +// 0.002158 +0x186b +// 0.094132 +0x2e06 +// 0.114558 +0x2f55 +// -0.136024 +0xb05a +// 0.340932 +0x3574 +// 0.052252 +0x2ab0 +// 0.010416 +0x2155 +// -0.447564 +0xb729 +// 0.253252 +0x340d +// 0.418288 +0x36b1 +// -0.121880 +0xafcd +// -0.539142 +0xb850 +// 0.153343 +0x30e8 +// -0.046262 +0xa9ec +// 0.229262 +0x3356 +// -0.189933 +0xb214 +// -0.210863 +0xb2bf +// 0.120349 +0x2fb4 +// -0.135862 +0xb059 +// 0.209576 +0x32b5 +// -0.287442 +0xb499 +// -0.136037 +0xb05a +// 0.220791 +0x3311 +// -0.264339 +0xb43b +// 0.034176 +0x2860 +// 0.274904 +0x3466 +// -0.352627 +0xb5a4 +// -0.160316 +0xb121 +// -0.192574 +0xb22a +// 0.137954 +0x306a +// -0.155879 +0xb0fd +// 0.381116 +0x3619 +// -0.053629 +0xaadd +// 0.355145 +0x35af +// 0.302961 +0x34d9 +// -0.472827 +0xb791 +// 0.030499 +0x27cf +// 0.238041 +0x339e +// -0.124594 +0xaff9 +// -0.173426 +0xb18d +// -0.046558 +0xa9f6 +// 0.175492 +0x319e +// 0.237129 +0x3397 +// -0.130929 +0xb031 +// 0.158048 +0x310f +// -0.048344 +0xaa30 +// 0.153218 +0x30e7 +// 0.309035 +0x34f2 +// 0.559391 +0x387a +// -0.407255 +0xb684 +// 0.130306 +0x302b +// 0.039041 +0x28ff +// -0.302617 +0xb4d8 +// 0.215235 +0x32e3 +// -0.232123 +0xb36e +// -0.241463 +0xb3ba +// -0.226073 +0xb33c +// -0.209252 +0xb2b2 +// 0.000931 +0x13a1 +// -0.380260 +0xb616 +// -0.478383 +0xb7a7 +// -0.210912 +0xb2c0 +// 0.006772 +0x1eef +// -0.204389 +0xb28a +// -0.117029 +0xaf7d +// -0.207813 +0xb2a6 +// -0.411690 +0xb696 +// -0.245778 +0xb3dd +// -0.014881 +0xa39e +// 0.103486 +0x2ea0 +// -0.344641 +0xb584 +// -0.169895 +0xb170 +// -0.017230 +0xa469 +// -0.397087 +0xb65a +// -0.163225 +0xb139 +// -0.275081 +0xb467 +// 0.428484 +0x36db +// -0.050968 +0xaa86 +// -0.185054 +0xb1ec +// 0.588412 +0x38b5 +// -0.170245 +0xb173 +// -0.012815 +0xa290 +// -0.310714 +0xb4f9 +// 0.156733 +0x3104 +// 0.130377 +0x302c +// -0.038860 +0xa8f9 +// -0.022859 +0xa5da +// -0.061283 +0xabd8 +// 0.013506 +0x22ea +// 0.022540 +0x25c5 +// -0.474431 +0xb797 +// -0.028927 +0xa768 +// 0.085413 +0x2d77 +// 0.092570 +0x2ded +// -0.249897 +0xb3ff +// -0.270859 +0xb455 +// 0.661650 +0x394b +// 0.038049 +0x28df +// -0.278298 +0xb474 +// -0.050211 +0xaa6d +// 0.212489 +0x32cd +// -0.177557 +0xb1af +// 0.106211 +0x2ecc +// -0.120636 +0xafb8 +// -0.253177 +0xb40d +// 0.253744 +0x340f +// 0.420464 +0x36ba +// 0.066274 +0x2c3e +// 0.077357 +0x2cf3 +// -0.266278 +0xb443 +// -0.410762 +0xb692 +// 0.044714 +0x29b9 +// 0.115038 +0x2f5d +// 0.523975 +0x3831 +// -0.277551 +0xb471 +// 0.002484 +0x1916 +// -0.231204 +0xb366 +// -0.106468 +0xaed0 +// -0.106680 +0xaed4 +// 0.041532 +0x2951 +// -0.639114 +0xb91d +// 0.233236 +0x3377 +// -0.289188 +0xb4a1 +// 0.017510 +0x247c +// 0.254378 +0x3412 +// -0.254135 +0xb411 +// -0.200166 +0xb268 +// -0.142634 +0xb090 +// -0.230590 +0xb361 +// -0.299070 +0xb4c9 +// 0.314063 +0x3506 +// 0.043353 +0x298d +// 0.019684 +0x250a +// -0.122113 +0xafd1 +// -0.009583 +0xa0e8 +// -0.070526 +0xac83 +// 0.071063 +0x2c8c +// 0.044183 +0x29a8 +// -0.181293 +0xb1cd +// 0.059487 +0x2b9d +// -0.483845 +0xb7be +// -0.123967 +0xafef +// -0.228919 +0xb353 +// 0.135159 +0x3053 +// 0.034027 +0x285b +// 0.057858 +0x2b68 +// 0.130018 +0x3029 +// 0.753606 +0x3a07 +// 0.051473 +0x2a97 +// 0.109750 +0x2f06 +// -0.118271 +0xaf92 +// -0.135766 +0xb058 +// -0.062393 +0xabfc +// 0.399700 +0x3665 +// 0.368123 +0x35e4 +// -0.279125 +0xb477 +// -0.090065 +0xadc4 +// 0.119667 +0x2fa9 +// -0.006286 +0x9e70 +// 0.129572 +0x3025 +// 0.020851 +0x2556 +// -0.140912 +0xb082 +// -0.035744 +0xa893 +// 0.037857 +0x28d8 +// 0.732613 +0x39dc +// -0.108922 +0xaef9 +// 0.069206 +0x2c6e +// 0.085348 +0x2d76 +// 0.222844 +0x3322 +// 0.143239 +0x3095 +// 0.067794 +0x2c57 +// 0.054912 +0x2b07 +// 0.200646 +0x326c +// 0.096861 +0x2e33 +// -0.472001 +0xb78d +// -0.236628 +0xb392 +// -0.172110 +0xb182 +// -0.234255 +0xb37f +// -0.168308 +0xb163 +// -0.003591 +0x9b5b +// 0.018230 +0x24ab +// 0.684214 +0x3979 +// 0.111425 +0x2f22 +// -0.007574 +0x9fc1 +// -0.317848 +0xb516 +// -0.140669 +0xb080 +// 0.045064 +0x29c5 +// -0.092460 +0xadeb +// -0.234791 +0xb383 +// -0.177738 +0xb1b0 +// 0.101167 +0x2e7a +// 0.157445 +0x310a +// 0.146457 +0x30b0 +// 0.048445 +0x2a33 +// -0.021225 +0xa56f +// -0.038723 +0xa8f5 +// -0.063181 +0xac0b +// 0.273265 +0x345f +// 0.801502 +0x3a69 +// -0.006819 +0x9efb +// 0.243938 +0x33ce +// 0.070131 +0x2c7d +// -0.174577 +0xb196 +// -0.272595 +0xb45d +// -0.004975 +0x9d18 +// -0.492187 +0xb7e0 +// -0.042271 +0xa969 +// 0.026010 +0x26a9 +// 0.138645 +0x3070 +// -0.072606 +0xaca6 +// 0.115167 +0x2f5f +// -0.051769 +0xaaa0 +// -0.040499 +0xa92f +// 0.052782 +0x2ac2 +// -0.058308 +0xab77 +// 0.733342 +0x39de +// -0.251296 +0xb405 +// -0.455043 +0xb748 +// -0.244178 +0xb3d0 +// -0.227227 +0xb345 +// 0.020825 +0x2555 +// 0.021972 +0x25a0 +// -0.045324 +0xa9cd +// 0.012488 +0x2265 +// -0.588066 +0xb8b4 +// 0.017585 +0x2480 +// 0.076460 +0x2ce5 +// -0.379469 +0xb612 +// -0.208544 +0xb2ac +// -0.162913 +0xb137 +// -0.115365 +0xaf62 +// -0.189974 +0xb214 +// -0.530090 +0xb83e +// -0.248554 +0xb3f4 +// 0.145418 +0x30a7 +// 0.134538 +0x304e +// -0.065559 +0xac32 +// 0.114082 +0x2f4d +// -0.154394 +0xb0f1 +// -0.180939 +0xb1ca +// 0.213355 +0x32d4 +// 0.088871 +0x2db0 +// 0.188848 +0x320b +// -0.206162 +0xb299 +// 0.097262 +0x2e3a +// -0.023137 +0xa5ec +// 0.218636 +0x32ff +// 0.595574 +0x38c4 +// -0.027318 +0xa6fe +// 0.180446 +0x31c6 +// -0.162456 +0xb133 +// -0.005024 +0x9d25 +// 0.197828 +0x3255 +// 0.316099 +0x350f +// -0.435414 +0xb6f7 +// 0.161298 +0x3129 +// 0.052936 +0x2ac7 +// 0.456036 +0x374c +// 0.387822 +0x3635 +// 0.090385 +0x2dc9 +// 0.283721 +0x348a +// -0.263889 +0xb439 +// 0.026375 +0x26c1 +// -0.255816 +0xb418 +// 0.364958 +0x35d7 +// -0.419546 +0xb6b6 +// 0.312101 +0x34fe +// -0.100587 +0xae70 +// 0.111628 +0x2f25 +// -0.489856 +0xb7d6 +// -0.253445 +0xb40e +// -0.093322 +0xadf9 +// 0.094023 +0x2e04 +// -0.167127 +0xb159 +// 0.356428 +0x35b4 +// 0.084325 +0x2d66 +// 0.148586 +0x30c1 +// -0.237979 +0xb39e +// -0.089634 +0xadbd +// 0.015146 +0x23c1 +// 0.144489 +0x30a0 +// 0.280635 +0x347d +// 0.246729 +0x33e5 +// 0.259087 +0x3425 +// -0.569419 +0xb88e +// 0.093566 +0x2dfd +// -0.318815 +0xb51a +// -0.255165 +0xb415 +// -0.204502 +0xb28b +// 0.034051 +0x285c +// -0.013036 +0xa2ad +// -0.181064 +0xb1cb +// -0.123721 +0xafeb +// -0.201711 +0xb274 +// -0.372393 +0xb5f5 +// 0.044890 +0x29bf +// 0.024458 +0x2643 +// 0.035159 +0x2880 +// 0.188417 +0x3208 +// 0.379939 +0x3614 +// 0.097044 +0x2e36 +// -0.139898 +0xb07a +// -0.279610 +0xb479 +// -0.031310 +0xa802 +// -0.125401 +0xb003 +// -0.016048 +0xa41c +// -0.094744 +0xae10 +// -0.080818 +0xad2c +// -0.344780 +0xb584 +// 0.003052 +0x1a40 +// 0.690684 +0x3987 +// -0.287649 +0xb49a +// -0.072152 +0xac9e +// 0.284234 +0x348c +// -0.146328 +0xb0af +// -0.460614 +0xb75f +// 0.032968 +0x2838 +// 0.021385 +0x2579 +// -0.024645 +0xa64f +// -0.432159 +0xb6ea +// 0.239466 +0x33aa +// -0.136331 +0xb05d +// 0.329300 +0x3545 +// 0.083056 +0x2d51 +// -0.535335 +0xb848 +// -0.090676 +0xadce +// 0.068867 +0x2c68 +// -0.026455 +0xa6c6 +// -0.076928 +0xacec +// -0.097094 +0xae37 +// -0.273313 +0xb45f +// 0.017534 +0x247d +// -0.030118 +0xa7b6 +// -0.042497 +0xa971 +// -0.458455 +0xb756 +// -0.157629 +0xb10b +// -0.322975 +0xb52b +// -0.094725 +0xae10 +// -0.083487 +0xad58 +// 0.611049 +0x38e3 +// 0.007814 +0x2000 +// 0.374751 +0x35ff +// -0.044276 +0xa9ab +// 0.189233 +0x320e +// 0.124811 +0x2ffd +// 0.200921 +0x326e +// -0.302752 +0xb4d8 +// 0.384083 +0x3625 +// 0.055752 +0x2b23 +// -0.159982 +0xb11f +// 0.084754 +0x2d6d +// 0.305491 +0x34e3 +// -0.104900 +0xaeb7 +// -0.186590 +0xb1f9 +// 0.583508 +0x38ab +// -0.204008 +0xb287 +// -0.151008 +0xb0d5 +// 0.267898 +0x3449 +// -0.090943 +0xadd2 +// 0.211895 +0x32c8 +// -0.310189 +0xb4f7 +// 0.128223 +0x301a +// -0.234986 +0xb385 +// 0.135158 +0x3053 +// -0.273874 +0xb462 +// -0.110621 +0xaf14 +// 0.151179 +0x30d6 +// -0.134663 +0xb04f +// -0.049794 +0xaa60 +// -0.502846 +0xb806 +// 0.119728 +0x2faa +// 0.133765 +0x3048 +// 0.431583 +0x36e8 +// -0.332997 +0xb554 +// 0.186571 +0x31f8 +// -0.257101 +0xb41d +// 0.005839 +0x1dfb +// 0.187209 +0x31fe +// -0.480064 +0xb7ae +// -0.001045 +0x9447 +// 0.071767 +0x2c98 +// -0.528032 +0xb839 +// -0.202519 +0xb27b +// 0.044961 +0x29c1 +// 0.145638 +0x30a9 +// 0.186622 +0x31f9 +// -0.383575 +0xb623 +// -0.179861 +0xb1c1 +// -0.018292 +0xa4af +// -0.330598 +0xb54a +// -0.022198 +0xa5af +// 0.248619 +0x33f5 +// -0.006532 +0x9eb0 +// 0.059836 +0x2ba9 +// -0.014284 +0xa350 +// 0.376512 +0x3606 +// 0.532338 +0x3842 +// -0.027886 +0xa724 +// 0.233087 +0x3375 +// -0.639850 +0xb91e +// -0.154570 +0xb0f2 +// 0.144770 +0x30a2 +// -0.003169 +0x9a7e +// -0.028234 +0xa73a +// 0.114909 +0x2f5b +// -0.012432 +0xa25e +// -0.212426 +0xb2cc +// -0.048697 +0xaa3c +// 0.043417 +0x298f +// -0.207770 +0xb2a6 +// -0.045305 +0xa9cd +// 0.292337 +0x34ad +// 0.001564 +0x1668 +// 0.178407 +0x31b6 +// 0.268010 +0x344a +// 0.185760 +0x31f2 +// -0.036575 +0xa8ae +// 0.067101 +0x2c4b +// 0.016305 +0x242d +// 0.477077 +0x37a2 +// -0.380656 +0xb617 +// -0.554183 +0xb86f +// -0.035537 +0xa88c +// 0.205612 +0x3294 +// 0.179645 +0x31c0 +// 0.018152 +0x24a6 +// -0.045977 +0xa9e3 +// 0.013887 +0x231c +// 0.383992 +0x3625 +// 0.446477 +0x3725 +// -0.312925 +0xb502 +// 0.070195 +0x2c7e +// 0.067783 +0x2c57 +// -0.601848 +0xb8d1 +// -0.222969 +0xb323 +// -0.201822 +0xb275 +// 0.011489 +0x21e2 +// -0.167080 +0xb159 +// -0.073254 +0xacb0 +// 0.157396 +0x3109 +// 0.056136 +0x2b2f +// -0.445341 +0xb720 +// -0.360198 +0xb5c3 +// 0.301847 +0x34d4 +// -0.208298 +0xb2aa +// 0.115270 +0x2f61 +// -0.097450 +0xae3d +// -0.140702 +0xb081 +// 0.539210 +0x3850 +// 0.005929 +0x1e12 +// -0.044192 +0xa9a8 +// -0.074019 +0xacbd +// -0.127804 +0xb017 +// 0.172284 +0x3183 +// -0.165812 +0xb14e +// -0.346372 +0xb58b +// -0.583211 +0xb8aa +// 0.122901 +0x2fde +// 0.302474 +0x34d7 +// 0.108887 +0x2ef8 +// 0.224792 +0x3331 +// -0.232702 +0xb372 +// -0.158258 +0xb110 +// 0.269374 +0x344f +// 0.150156 +0x30ce +// -0.129233 +0xb023 +// -0.050974 +0xaa86 +// 0.110238 +0x2f0e +// -0.199196 +0xb260 +// 0.021740 +0x2591 +// -0.430018 +0xb6e1 +// -0.245066 +0xb3d8 +// -0.118610 +0xaf97 +// 0.243369 +0x33ca +// 0.243451 +0x33ca +// 0.309963 +0x34f6 +// -0.043028 +0xa982 +// 0.322956 +0x352b +// -0.011379 +0xa1d3 +// -0.230889 +0xb363 +// -0.190127 +0xb216 +// 0.324403 +0x3531 +// 0.156881 +0x3105 +// 0.010635 +0x2172 +// -0.135989 +0xb05a +// -0.159964 +0xb11e +// -0.024054 +0xa628 +// -0.093550 +0xadfd +// 0.232876 +0x3374 +// -0.054750 +0xab02 +// -0.120913 +0xafbd +// -0.355604 +0xb5b1 +// -0.193954 +0xb235 +// 0.329504 +0x3546 +// 0.218519 +0x32fe +// 0.243369 +0x33ca +// 0.947052 +0x3b94 +// -0.052966 +0xaac8 +// -0.067437 +0xac51 +// 0.009361 +0x20cb +// -0.070263 +0xac7f +// 0.002476 +0x1912 +// 0.050233 +0x2a6e +// 0.041365 +0x294b +// -0.070578 +0xac84 +// -0.034132 +0xa85e +// -0.002314 +0x98bd +// 0.029586 +0x2793 +// 0.034802 +0x2874 +// 0.005233 +0x1d5c +// 0.020353 +0x2536 +// -0.050665 +0xaa7c +// 0.011912 +0x2219 +// 0.026306 +0x26bc +// 0.077366 +0x2cf4 +// 0.042197 +0x2967 +// -0.071688 +0xac97 +// -0.047542 +0xaa16 +// 0.243451 +0x33ca +// -0.052966 +0xaac8 +// 0.947016 +0x3b93 +// -0.067459 +0xac51 +// 0.009364 +0x20cb +// -0.070287 +0xac80 +// 0.002476 +0x1912 +// 0.050250 +0x2a6f +// 0.041379 +0x294c +// -0.070602 +0xac85 +// -0.034143 +0xa85f +// -0.002315 +0x98bd +// 0.029596 +0x2794 +// 0.034814 +0x2875 +// 0.005235 +0x1d5c +// 0.020360 +0x2536 +// -0.050682 +0xaa7d +// 0.011916 +0x221a +// 0.026315 +0x26bd +// 0.077392 +0x2cf4 +// 0.042212 +0x2967 +// -0.071712 +0xac97 +// -0.047558 +0xaa16 +// 0.309963 +0x34f6 +// -0.067437 +0xac51 +// -0.067459 +0xac51 +// 0.914110 +0x3b50 +// 0.011923 +0x221b +// -0.089490 +0xadba +// 0.003153 +0x1a75 +// 0.063979 +0x2c18 +// 0.052684 +0x2abe +// -0.089891 +0xadc1 +// -0.043471 +0xa990 +// -0.002947 +0x9a09 +// 0.037682 +0x28d3 +// 0.044326 +0x29ac +// 0.006665 +0x1ed3 +// 0.025922 +0x26a3 +// -0.064529 +0xac21 +// 0.015171 +0x23c5 +// 0.033505 +0x284a +// 0.098537 +0x2e4e +// 0.053744 +0x2ae1 +// -0.091305 +0xadd8 +// -0.060551 +0xabc0 +// -0.043028 +0xa982 +// 0.009361 +0x20cb +// 0.009364 +0x20cb +// 0.011923 +0x221b +// 0.998345 +0x3bfd +// 0.012423 +0x225c +// -0.000438 +0x8f2c +// -0.008881 +0xa08c +// -0.007313 +0x9f7d +// 0.012478 +0x2264 +// 0.006034 +0x1e2e +// 0.000409 +0xeb4 +// -0.005231 +0x9d5b +// -0.006153 +0x9e4d +// -0.000925 +0x9394 +// -0.003598 +0x9b5f +// 0.008958 +0x2096 +// -0.002106 +0x9850 +// -0.004651 +0x9cc3 +// -0.013678 +0xa301 +// -0.007460 +0x9fa4 +// 0.012674 +0x227d +// 0.008405 +0x204e +// 0.322956 +0x352b +// -0.070263 +0xac7f +// -0.070287 +0xac80 +// -0.089490 +0xadba +// 0.012423 +0x225c +// 0.906759 +0x3b41 +// 0.003285 +0x1aba +// 0.066661 +0x2c44 +// 0.054892 +0x2b07 +// -0.093659 +0xadff +// -0.045294 +0xa9cc +// -0.003070 +0x9a4a +// 0.039262 +0x2907 +// 0.046184 +0x29e9 +// 0.006945 +0x1f1d +// 0.027009 +0x26ea +// -0.067234 +0xac4e +// 0.015807 +0x240c +// 0.034909 +0x2878 +// 0.102667 +0x2e92 +// 0.055997 +0x2b2b +// -0.095132 +0xae17 +// -0.063089 +0xac0a +// -0.011379 +0xa1d3 +// 0.002476 +0x1912 +// 0.002476 +0x1912 +// 0.003153 +0x1a75 +// -0.000438 +0x8f2c +// 0.003285 +0x1aba +// 0.999884 +0x3c00 +// -0.002349 +0x98cf +// -0.001934 +0x97ec +// 0.003300 +0x1ac2 +// 0.001596 +0x1689 +// 0.000108 +0x717 +// -0.001383 +0x95ab +// -0.001627 +0x96aa +// -0.000245 +0x8c02 +// -0.000952 +0x93cc +// 0.002369 +0x18da +// -0.000557 +0x9090 +// -0.001230 +0x950a +// -0.003617 +0x9b69 +// -0.001973 +0x980a +// 0.003352 +0x1add +// 0.002223 +0x188d +// -0.230889 +0xb363 +// 0.050233 +0x2a6e +// 0.050250 +0x2a6f +// 0.063979 +0x2c18 +// -0.008881 +0xa08c +// 0.066661 +0x2c44 +// -0.002349 +0x98cf +// 0.952343 +0x3b9e +// -0.039244 +0xa906 +// 0.066959 +0x2c49 +// 0.032381 +0x2825 +// 0.002195 +0x187f +// -0.028069 +0xa730 +// -0.033018 +0xa83a +// -0.004965 +0x9d16 +// -0.019309 +0xa4f1 +// 0.048067 +0x2a27 +// -0.011301 +0xa1c9 +// -0.024957 +0xa664 +// -0.073399 +0xacb3 +// -0.040034 +0xa920 +// 0.068012 +0x2c5a +// 0.045104 +0x29c6 +// -0.190127 +0xb216 +// 0.041365 +0x294b +// 0.041379 +0x294c +// 0.052684 +0x2abe +// -0.007313 +0x9f7d +// 0.054892 +0x2b07 +// -0.001934 +0x97ec +// -0.039244 +0xa906 +// 0.967685 +0x3bbe +// 0.055138 +0x2b0f +// 0.026665 +0x26d4 +// 0.001808 +0x1767 +// -0.023114 +0xa5eb +// -0.027189 +0xa6f6 +// -0.004088 +0x9c30 +// -0.015900 +0xa412 +// 0.039581 +0x2911 +// -0.009306 +0xa0c4 +// -0.020551 +0xa543 +// -0.060441 +0xabbd +// -0.032966 +0xa838 +// 0.056005 +0x2b2b +// 0.037141 +0x28c1 +// 0.324403 +0x3531 +// -0.070578 +0xac84 +// -0.070602 +0xac85 +// -0.089891 +0xadc1 +// 0.012478 +0x2264 +// -0.093659 +0xadff +// 0.003300 +0x1ac2 +// 0.066959 +0x2c49 +// 0.055138 +0x2b0f +// 0.905921 +0x3b3f +// -0.045496 +0xa9d3 +// -0.003084 +0x9a51 +// 0.039438 +0x290c +// 0.046390 +0x29f0 +// 0.006976 +0x1f25 +// 0.027130 +0x26f2 +// -0.067535 +0xac52 +// 0.015878 +0x2411 +// 0.035065 +0x287d +// 0.103127 +0x2e9a +// 0.056248 +0x2b33 +// -0.095558 +0xae1e +// -0.063372 +0xac0e +// 0.156881 +0x3105 +// -0.034132 +0xa85e +// -0.034143 +0xa85f +// -0.043471 +0xa990 +// 0.006034 +0x1e2e +// -0.045294 +0xa9cc +// 0.001596 +0x1689 +// 0.032381 +0x2825 +// 0.026665 +0x26d4 +// -0.045496 +0xa9d3 +// 0.977998 +0x3bd3 +// -0.001492 +0x961c +// 0.019072 +0x24e2 +// 0.022434 +0x25be +// 0.003374 +0x1ae9 +// 0.013120 +0x22b8 +// -0.032660 +0xa82e +// 0.007679 +0x1fdd +// 0.016958 +0x2457 +// 0.049872 +0x2a62 +// 0.027201 +0x26f7 +// -0.046212 +0xa9ea +// -0.030647 +0xa7d8 +// 0.010635 +0x2172 +// -0.002314 +0x98bd +// -0.002315 +0x98bd +// -0.002947 +0x9a09 +// 0.000409 +0xeb4 +// -0.003070 +0x9a4a +// 0.000108 +0x717 +// 0.002195 +0x187f +// 0.001808 +0x1767 +// -0.003084 +0x9a51 +// -0.001492 +0x961c +// 0.999899 +0x3c00 +// 0.001293 +0x154c +// 0.001521 +0x163b +// 0.000229 +0xb7e +// 0.000889 +0x1349 +// -0.002214 +0x9889 +// 0.000521 +0x1044 +// 0.001150 +0x14b5 +// 0.003381 +0x1aed +// 0.001844 +0x178e +// -0.003133 +0x9a6a +// -0.002078 +0x9841 +// -0.135989 +0xb05a +// 0.029586 +0x2793 +// 0.029596 +0x2794 +// 0.037682 +0x28d3 +// -0.005231 +0x9d5b +// 0.039262 +0x2907 +// -0.001383 +0x95ab +// -0.028069 +0xa730 +// -0.023114 +0xa5eb +// 0.039438 +0x290c +// 0.019072 +0x24e2 +// 0.001293 +0x154c +// 0.983468 +0x3bde +// -0.019447 +0xa4fa +// -0.002924 +0x99fd +// -0.011373 +0xa1d3 +// 0.028311 +0x273f +// -0.006656 +0x9ed1 +// -0.014699 +0xa387 +// -0.043231 +0xa989 +// -0.023579 +0xa609 +// 0.040058 +0x2921 +// 0.026565 +0x26cd +// -0.159964 +0xb11e +// 0.034802 +0x2874 +// 0.034814 +0x2875 +// 0.044326 +0x29ac +// -0.006153 +0x9e4d +// 0.046184 +0x29e9 +// -0.001627 +0x96aa +// -0.033018 +0xa83a +// -0.027189 +0xa6f6 +// 0.046390 +0x29f0 +// 0.022434 +0x25be +// 0.001521 +0x163b +// -0.019447 +0xa4fa +// 0.977125 +0x3bd1 +// -0.003440 +0x9b0b +// -0.013378 +0xa2d9 +// 0.033302 +0x2843 +// -0.007829 +0xa002 +// -0.017291 +0xa46d +// -0.050852 +0xaa82 +// -0.027736 +0xa71a +// 0.047120 +0x2a08 +// 0.031249 +0x2800 +// -0.024054 +0xa628 +// 0.005233 +0x1d5c +// 0.005235 +0x1d5c +// 0.006665 +0x1ed3 +// -0.000925 +0x9394 +// 0.006945 +0x1f1d +// -0.000245 +0x8c02 +// -0.004965 +0x9d16 +// -0.004088 +0x9c30 +// 0.006976 +0x1f25 +// 0.003374 +0x1ae9 +// 0.000229 +0xb7e +// -0.002924 +0x99fd +// -0.003440 +0x9b0b +// 0.999483 +0x3bff +// -0.002012 +0x981f +// 0.005008 +0x1d21 +// -0.001177 +0x94d3 +// -0.002600 +0x9953 +// -0.007647 +0x9fd5 +// -0.004171 +0x9c45 +// 0.007086 +0x1f41 +// 0.004699 +0x1cd0 +// -0.093550 +0xadfd +// 0.020353 +0x2536 +// 0.020360 +0x2536 +// 0.025922 +0x26a3 +// -0.003598 +0x9b5f +// 0.027009 +0x26ea +// -0.000952 +0x93cc +// -0.019309 +0xa4f1 +// -0.015900 +0xa412 +// 0.027130 +0x26f2 +// 0.013120 +0x22b8 +// 0.000889 +0x1349 +// -0.011373 +0xa1d3 +// -0.013378 +0xa2d9 +// -0.002012 +0x981f +// 0.992176 +0x3bf0 +// 0.019476 +0x24fc +// -0.004579 +0x9cb0 +// -0.010112 +0xa12d +// -0.029739 +0xa79d +// -0.016221 +0xa427 +// 0.027557 +0x270e +// 0.018275 +0x24ae +// 0.232876 +0x3374 +// -0.050665 +0xaa7c +// -0.050682 +0xaa7d +// -0.064529 +0xac21 +// 0.008958 +0x2096 +// -0.067234 +0xac4e +// 0.002369 +0x18da +// 0.048067 +0x2a27 +// 0.039581 +0x2911 +// -0.067535 +0xac52 +// -0.032660 +0xa82e +// -0.002214 +0x9889 +// 0.028311 +0x273f +// 0.033302 +0x2843 +// 0.005008 +0x1d21 +// 0.019476 +0x24fc +// 0.951519 +0x3b9d +// 0.011398 +0x21d6 +// 0.025172 +0x2672 +// 0.074031 +0x2cbd +// 0.040378 +0x292b +// -0.068597 +0xac64 +// -0.045492 +0xa9d3 +// -0.054750 +0xab02 +// 0.011912 +0x2219 +// 0.011916 +0x221a +// 0.015171 +0x23c5 +// -0.002106 +0x9850 +// 0.015807 +0x240c +// -0.000557 +0x9090 +// -0.011301 +0xa1c9 +// -0.009306 +0xa0c4 +// 0.015878 +0x2411 +// 0.007679 +0x1fdd +// 0.000521 +0x1044 +// -0.006656 +0x9ed1 +// -0.007829 +0xa002 +// -0.001177 +0x94d3 +// -0.004579 +0x9cb0 +// 0.011398 +0x21d6 +// 0.997320 +0x3bfb +// -0.005918 +0x9e0f +// -0.017405 +0xa475 +// -0.009493 +0xa0dc +// 0.016128 +0x2421 +// 0.010695 +0x217a +// -0.120913 +0xafbd +// 0.026306 +0x26bc +// 0.026315 +0x26bd +// 0.033505 +0x284a +// -0.004651 +0x9cc3 +// 0.034909 +0x2878 +// -0.001230 +0x950a +// -0.024957 +0xa664 +// -0.020551 +0xa543 +// 0.035065 +0x287d +// 0.016958 +0x2457 +// 0.001150 +0x14b5 +// -0.014699 +0xa387 +// -0.017291 +0xa46d +// -0.002600 +0x9953 +// -0.010112 +0xa12d +// 0.025172 +0x2672 +// -0.005918 +0x9e0f +// 0.986930 +0x3be5 +// -0.038438 +0xa8ec +// -0.020965 +0xa55e +// 0.035617 +0x288f +// 0.023620 +0x260c +// -0.355604 +0xb5b1 +// 0.077366 +0x2cf4 +// 0.077392 +0x2cf4 +// 0.098537 +0x2e4e +// -0.013678 +0xa301 +// 0.102667 +0x2e92 +// -0.003617 +0x9b69 +// -0.073399 +0xacb3 +// -0.060441 +0xabbd +// 0.103127 +0x2e9a +// 0.049872 +0x2a62 +// 0.003381 +0x1aed +// -0.043231 +0xa989 +// -0.050852 +0xaa82 +// -0.007647 +0x9fd5 +// -0.029739 +0xa79d +// 0.074031 +0x2cbd +// -0.017405 +0xa475 +// -0.038438 +0xa8ec +// 0.886954 +0x3b18 +// -0.061658 +0xabe4 +// 0.104749 +0x2eb4 +// 0.069467 +0x2c72 +// -0.193954 +0xb235 +// 0.042197 +0x2967 +// 0.042212 +0x2967 +// 0.053744 +0x2ae1 +// -0.007460 +0x9fa4 +// 0.055997 +0x2b2b +// -0.001973 +0x980a +// -0.040034 +0xa920 +// -0.032966 +0xa838 +// 0.056248 +0x2b33 +// 0.027201 +0x26f7 +// 0.001844 +0x178e +// -0.023579 +0xa609 +// -0.027736 +0xa71a +// -0.004171 +0x9c45 +// -0.016221 +0xa427 +// 0.040378 +0x292b +// -0.009493 +0xa0dc +// -0.020965 +0xa55e +// -0.061658 +0xabe4 +// 0.966371 +0x3bbb +// 0.057132 +0x2b50 +// 0.037889 +0x28da +// 0.329504 +0x3546 +// -0.071688 +0xac97 +// -0.071712 +0xac97 +// -0.091305 +0xadd8 +// 0.012674 +0x227d +// -0.095132 +0xae17 +// 0.003352 +0x1add +// 0.068012 +0x2c5a +// 0.056005 +0x2b2b +// -0.095558 +0xae1e +// -0.046212 +0xa9ea +// -0.003133 +0x9a6a +// 0.040058 +0x2921 +// 0.047120 +0x2a08 +// 0.007086 +0x1f41 +// 0.027557 +0x270e +// -0.068597 +0xac64 +// 0.016128 +0x2421 +// 0.035617 +0x288f +// 0.104749 +0x2eb4 +// 0.057132 +0x2b50 +// 0.902939 +0x3b39 +// -0.064368 +0xac1f +// 0.218519 +0x32fe +// -0.047542 +0xaa16 +// -0.047558 +0xaa16 +// -0.060551 +0xabc0 +// 0.008405 +0x204e +// -0.063089 +0xac0a +// 0.002223 +0x188d +// 0.045104 +0x29c6 +// 0.037141 +0x28c1 +// -0.063372 +0xac0e +// -0.030647 +0xa7d8 +// -0.002078 +0x9841 +// 0.026565 +0x26cd +// 0.031249 +0x2800 +// 0.004699 +0x1cd0 +// 0.018275 +0x24ae +// -0.045492 +0xa9d3 +// 0.010695 +0x217a +// 0.023620 +0x260c +// 0.069467 +0x2c72 +// 0.037889 +0x28da +// -0.064368 +0xac1f +// 0.957313 +0x3ba9 +// -0.025233 +0xa676 +// -0.101716 +0xae83 +// -0.177354 +0xb1ad +// -0.118754 +0xaf9a +// -0.163005 +0xb137 +// 0.108673 +0x2ef5 +// -0.274187 +0xb463 +// 0.158589 +0x3113 +// 0.179144 +0x31bc +// 0.308902 +0x34f1 +// -0.108810 +0xaef7 +// 0.117870 +0x2f8b +// 0.278372 +0x3474 +// 0.011211 +0x21bd +// 0.293104 +0x34b1 +// -0.025678 +0xa693 +// -0.110702 +0xaf16 +// 0.087031 +0x2d92 +// -0.288061 +0xb49c +// 0.317462 +0x3514 +// 0.134733 +0x3050 +// 0.091110 +0x2dd5 +// 0.507221 +0x380f +// -0.109997 +0xaf0a +// -0.161157 +0xb128 +// 0.163244 +0x3139 +// 0.173031 +0x3189 +// -0.100284 +0xae6b +// -0.209072 +0xb2b1 +// -0.325574 +0xb536 +// 0.237420 +0x3399 +// -0.158278 +0xb111 +// -0.149700 +0xb0ca +// 0.090559 +0x2dcc +// 0.266174 +0x3442 +// 0.111882 +0x2f29 +// -0.102149 +0xae8a +// -0.202840 +0xb27e +// 0.081881 +0x2d3e +// 0.065124 +0x2c2b +// 0.028224 +0x273a +// -0.023303 +0xa5f7 +// -0.308872 +0xb4f1 +// 0.471192 +0x378a +// -0.391908 +0xb645 +// 0.123685 +0x2fea +// 0.078818 +0x2d0b +// -0.249028 +0xb3f8 +// -0.104214 +0xaeab +// -0.085728 +0xad7d +// 0.273992 +0x3462 +// 0.095456 +0x2e1c +// 0.177095 +0x31ab +// 0.341456 +0x3577 +// 0.054017 +0x2aea +// -0.014374 +0xa35c +// -0.087739 +0xad9e +// -0.067802 +0xac57 +// -0.133023 +0xb042 +// -0.098723 +0xae51 +// 0.128821 +0x301f +// -0.298745 +0xb4c8 +// 0.029762 +0x279f +// 0.576230 +0x389c +// -0.249716 +0xb3fe +// -0.016931 +0xa456 +// 0.147452 +0x30b8 +// -0.132994 +0xb041 +// -0.312600 +0xb500 +// 0.042059 +0x2962 +// 0.044134 +0x29a6 +// 0.096914 +0x2e34 +// -0.010066 +0xa127 +// -0.235502 +0xb389 +// 0.001952 +0x17ff +// -0.268080 +0xb44a +// 0.406992 +0x3683 +// -0.508237 +0xb811 +// 0.150665 +0x30d2 +// -0.152594 +0xb0e2 +// -0.120671 +0xafb9 +// -0.063605 +0xac12 +// -0.229032 +0xb354 +// 0.344626 +0x3584 +// -0.066503 +0xac42 +// 0.187693 +0x3202 +// -0.122770 +0xafdb +// 0.080655 +0x2d29 +// -0.119743 +0xafaa +// -0.294636 +0xb4b7 +// 0.125574 +0x3005 +// -0.146796 +0xb0b3 +// 0.082593 +0x2d49 +// -0.147514 +0xb0b8 +// -0.161033 +0xb127 +// 0.175669 +0x319f +// -0.019543 +0xa501 +// -0.213230 +0xb2d3 +// -0.289268 +0xb4a1 +// -0.363796 +0xb5d2 +// 0.020695 +0x254c +// -0.217422 +0xb2f5 +// 0.289337 +0x34a1 +// -0.279492 +0xb479 +// 0.073987 +0x2cbc +// -0.021231 +0xa56f +// 0.313080 +0x3502 +// -0.165103 +0xb149 +// 0.255054 +0x3415 +// 0.240379 +0x33b1 +// 0.178833 +0x31b9 +// -0.084627 +0xad6b +// 0.196513 +0x324a +// 0.331857 +0x354f +// 0.035981 +0x289b +// 0.404472 +0x3679 +// -0.169388 +0xb16c +// 0.051289 +0x2a91 +// -0.169498 +0xb16d +// 0.063945 +0x2c18 +// -0.495044 +0xb7ec +// 0.176168 +0x31a3 +// -0.151729 +0xb0db +// -0.019545 +0xa501 +// 0.040810 +0x2939 +// -0.369860 +0xb5eb +// -0.030873 +0xa7e7 +// 0.042011 +0x2961 +// -0.384765 +0xb628 +// -0.031764 +0xa811 +// 0.113343 +0x2f41 +// -0.034182 +0xa860 +// 0.131469 +0x3035 +// 0.205816 +0x3296 +// 0.039657 +0x2913 +// -0.115450 +0xaf64 +// -0.142457 +0xb08f +// 0.271413 +0x3458 +// 0.281880 +0x3483 +// -0.070723 +0xac87 +// -0.334637 +0xb55b +// 0.250728 +0x3403 +// 0.146661 +0x30b1 +// 0.175051 +0x319a +// 0.017901 +0x2495 +// 0.022196 +0x25af +// -0.366830 +0xb5df +// -0.144673 +0xb0a1 +// -0.288377 +0xb49d +// -0.309214 +0xb4f3 +// -0.067493 +0xac52 +// 0.056099 +0x2b2e +// -0.116976 +0xaf7d +// 0.034824 +0x2875 +// -0.280749 +0xb47e +// -0.290462 +0xb4a6 +// -0.104856 +0xaeb6 +// 0.065452 +0x2c30 +// 0.372284 +0x35f5 +// 0.102450 +0x2e8f +// 0.057475 +0x2b5b +// 0.166862 +0x3157 +// 0.333081 +0x3554 +// 0.002202 +0x1883 +// 0.473099 +0x3792 +// -0.170067 +0xb171 +// -0.292311 +0xb4ad +// 0.212542 +0x32cd +// 0.530944 +0x383f +// 0.299631 +0x34cb +// -0.096652 +0xae30 +// 0.088838 +0x2db0 +// -0.112675 +0xaf36 +// 0.022055 +0x25a5 +// 0.079461 +0x2d16 +// -0.043260 +0xa98a +// 0.010353 +0x214d +// -0.032571 +0xa82b +// 0.085333 +0x2d76 +// 0.109810 +0x2f07 +// 0.125028 +0x3000 +// -0.011588 +0xa1ef +// 0.151257 +0x30d7 +// 0.091701 +0x2dde +// 0.384943 +0x3629 +// -0.076474 +0xace5 +// 0.101143 +0x2e79 +// -0.237376 +0xb399 +// 0.038125 +0x28e1 +// 0.152661 +0x30e3 +// -0.450021 +0xb733 +// 0.158393 +0x3112 +// 0.574242 +0x3898 +// -0.099820 +0xae63 +// -0.101262 +0xae7b +// -0.140739 +0xb081 +// -0.121695 +0xafca +// -0.039945 +0xa91d +// -0.056662 +0xab41 +// 0.034640 +0x286f +// -0.005179 +0x9d4e +// -0.268204 +0xb44b +// 0.073335 +0x2cb2 +// -0.160269 +0xb121 +// 0.024701 +0x2653 +// 0.013276 +0x22cc +// -0.180613 +0xb1c8 +// 0.283952 +0x348b +// -0.140745 +0xb081 +// 0.029306 +0x2781 +// 0.301187 +0x34d2 +// -0.079544 +0xad17 +// 0.056511 +0x2b3c +// 0.036213 +0x28a3 +// -0.137657 +0xb068 +// 0.023388 +0x25fd +// 0.811290 +0x3a7e +// 0.161084 +0x3128 +// -0.018643 +0xa4c6 +// -0.056824 +0xab46 +// 0.062424 +0x2bfe +// -0.137879 +0xb06a +// -0.005794 +0x9def +// 0.053014 +0x2ac9 +// 0.024922 +0x2661 +// 0.081863 +0x2d3d +// -0.141071 +0xb084 +// 0.119367 +0x2fa4 +// -0.042260 +0xa969 +// -0.144693 +0xb0a1 +// 0.119352 +0x2fa3 +// 0.149020 +0x30c5 +// -0.161898 +0xb12e +// -0.245618 +0xb3dc +// 0.461745 +0x3763 +// -0.249564 +0xb3fc +// -0.161343 +0xb12a +// 0.179177 +0x31bc +// -0.171384 +0xb17c +// 0.126012 +0x3008 +// 0.620372 +0x38f7 +// -0.060245 +0xabb6 +// -0.054351 +0xaaf5 +// -0.115697 +0xaf68 +// -0.045518 +0xa9d4 +// 0.057259 +0x2b54 +// -0.193817 +0xb234 +// -0.117184 +0xaf80 +// -0.077646 +0xacf8 +// 0.126651 +0x300e +// -0.085880 +0xad7f +// -0.059360 +0xab99 +// 0.060703 +0x2bc5 +// 0.364169 +0x35d4 +// 0.236946 +0x3395 +// -0.331760 +0xb54f +// 0.041228 +0x2947 +// -0.042106 +0xa964 +// 0.000488 +0xfff +// -0.108026 +0xaeea +// -0.097161 +0xae38 +// -0.075290 +0xacd2 +// -0.102177 +0xae8a +// -0.048117 +0xaa29 +// 0.758821 +0x3a12 +// -0.117458 +0xaf84 +// -0.000236 +0x8bbb +// 0.050319 +0x2a71 +// -0.094629 +0xae0e +// -0.007461 +0x9fa4 +// 0.065256 +0x2c2d +// 0.035762 +0x2894 +// 0.012576 +0x2270 +// -0.006612 +0x9ec5 +// 0.144654 +0x30a1 +// -0.174225 +0xb193 +// 0.236394 +0x3391 +// 0.058909 +0x2b8a +// 0.000676 +0x118a +// -0.055445 +0xab19 +// 0.087285 +0x2d96 +// 0.158037 +0x310f +// 0.108039 +0x2eea +// 0.044387 +0x29ae +// -0.069743 +0xac77 +// -0.061822 +0xabea +// 0.052278 +0x2ab1 +// -0.018476 +0xa4bb +// 0.899931 +0x3b33 +// 0.016998 +0x245a +// -0.052843 +0xaac4 +// -0.024590 +0xa64c +// 0.050206 +0x2a6d +// -0.012910 +0xa29c +// 0.042645 +0x2975 +// -0.100609 +0xae70 +// -0.070046 +0xac7c +// -0.025866 +0xa69f +// -0.214034 +0xb2d9 +// 0.125620 +0x3005 +// -0.149630 +0xb0ca +// -0.011675 +0xa1fa +// -0.261692 +0xb430 +// -0.019294 +0xa4f0 +// -0.331946 +0xb550 +// -0.036140 +0xa8a0 +// 0.107219 +0x2edd +// -0.144195 +0xb09d +// 0.019904 +0x2518 +// -0.110543 +0xaf13 +// -0.015290 +0xa3d4 +// -0.014257 +0xa34d +// 0.847825 +0x3ac8 +// 0.049851 +0x2a62 +// 0.000095 +0x640 +// 0.046689 +0x29fa +// 0.031536 +0x2809 +// 0.053174 +0x2ace +// -0.061704 +0xabe6 +// -0.045344 +0xa9ce +// -0.053261 +0xaad1 +// -0.003111 +0x9a5f +// 0.093826 +0x2e01 +// -0.056215 +0xab32 +// 0.336313 +0x3562 +// 0.299280 +0x34ca +// 0.372949 +0x35f8 +// 0.052918 +0x2ac6 +// 0.124896 +0x2ffe +// -0.053668 +0xaadf +// 0.067569 +0x2c53 +// -0.042958 +0xa980 +// 0.006440 +0x1e98 +// 0.166748 +0x3156 +// -0.011373 +0xa1d3 +// 0.091099 +0x2dd5 +// 0.680554 +0x3972 +// 0.158865 +0x3115 +// -0.120152 +0xafb1 +// -0.199279 +0xb260 +// 0.012105 +0x2233 +// -0.036717 +0xa8b3 +// 0.034203 +0x2861 +// -0.191471 +0xb221 +// 0.020935 +0x255c +// 0.010799 +0x2187 +// -0.083091 +0xad51 +// -0.282136 +0xb484 +// -0.076955 +0xaced +// -0.142040 +0xb08c +// 0.101615 +0x2e81 +// 0.075736 +0x2cd9 +// 0.070962 +0x2c8b +// 0.011082 +0x21ad +// -0.033686 +0xa850 +// 0.088554 +0x2dab +// -0.040649 +0xa934 +// -0.034600 +0xa86e +// -0.021444 +0xa57d +// 0.119018 +0x2f9e +// 0.870922 +0x3af8 +// 0.109021 +0x2efa +// 0.208879 +0x32af +// -0.026559 +0xa6cd +// -0.058874 +0xab89 +// 0.023629 +0x260d +// 0.023755 +0x2615 +// -0.142463 +0xb08f +// -0.042413 +0xa96e +// 0.176859 +0x31a9 +// -0.094184 +0xae07 +// 0.119113 +0x2fa0 +// 0.431320 +0x36e7 +// -0.004647 +0x9cc2 +// -0.077036 +0xacee +// 0.026090 +0x26ae +// 0.034554 +0x286c +// 0.082722 +0x2d4b +// -0.220901 +0xb312 +// 0.006825 +0x1efd +// -0.005706 +0x9dd8 +// 0.035976 +0x289b +// -0.128988 +0xb021 +// 0.074151 +0x2cbf +// 0.775462 +0x3a34 +// -0.114664 +0xaf57 +// -0.116364 +0xaf73 +// 0.166321 +0x3153 +// 0.011948 +0x221e +// -0.050187 +0xaa6d +// 0.111769 +0x2f27 +// 0.115208 +0x2f60 +// 0.341300 +0x3576 +// 0.422389 +0x36c2 +// 0.081003 +0x2d2f +// 0.191802 +0x3223 +// 0.203531 +0x3283 +// -0.363519 +0xb5d1 +// -0.105661 +0xaec3 +// -0.171610 +0xb17e +// 0.004242 +0x1c58 +// -0.130869 +0xb030 +// -0.078434 +0xad05 +// -0.020573 +0xa544 +// 0.115673 +0x2f67 +// -0.164934 +0xb147 +// 0.179673 +0x31c0 +// -0.190818 +0xb21b +// 0.520719 +0x382a +// 0.045556 +0x29d5 +// 0.083189 +0x2d53 +// -0.049646 +0xaa5b +// 0.098234 +0x2e49 +// 0.095066 +0x2e16 +// -0.273449 +0xb460 +// -0.075408 +0xacd3 +// -0.249802 +0xb3fe +// -0.028659 +0xa756 +// 0.221340 +0x3315 +// 0.189501 +0x3210 +// -0.057432 +0xab5a +// 0.189146 +0x320d +// 0.034810 +0x2875 +// 0.099127 +0x2e58 +// -0.091160 +0xadd6 +// 0.064812 +0x2c26 +// 0.027815 +0x271f +// 0.017749 +0x248b +// 0.018555 +0x24c0 +// -0.033010 +0xa83a +// -0.090778 +0xadcf +// 0.062540 +0x2c01 +// 0.820369 +0x3a90 +// 0.088744 +0x2dae +// 0.076006 +0x2cdd +// -0.067425 +0xac51 +// 0.053972 +0x2ae9 +// 0.201478 +0x3273 +// -0.330562 +0xb54a +// 0.269951 +0x3452 +// 0.011264 +0x21c4 +// -0.192764 +0xb22b +// 0.109015 +0x2efa +// -0.006536 +0x9eb1 +// 0.025029 +0x2668 +// -0.127673 +0xb016 +// -0.154211 +0xb0ef +// 0.206236 +0x3299 +// 0.065076 +0x2c2a +// -0.037291 +0xa8c6 +// 0.004980 +0x1d19 +// -0.087608 +0xad9b +// 0.017361 +0x2472 +// 0.156579 +0x3103 +// -0.052699 +0xaabf +// 0.124080 +0x2ff1 +// 0.740033 +0x39ec +// 0.067500 +0x2c52 +// -0.091974 +0xade3 +// -0.166815 +0xb157 +// 0.029465 +0x278b +// 0.423742 +0x36c8 +// 0.219037 +0x3302 +// -0.436338 +0xb6fb +// -0.095244 +0xae18 +// -0.034647 +0xa86f +// 0.244135 +0x33d0 +// 0.003545 +0x1b43 +// -0.047996 +0xaa25 +// 0.121444 +0x2fc6 +// -0.007145 +0x9f51 +// -0.042108 +0xa964 +// -0.034768 +0xa873 +// -0.055736 +0xab22 +// 0.168170 +0x3162 +// -0.009436 +0xa0d5 +// 0.105788 +0x2ec5 +// -0.059486 +0xab9d +// 0.109004 +0x2efa +// 0.029436 +0x2789 +// 0.637349 +0x3919 +// 0.142611 +0x3090 +// -0.075690 +0xacd8 +// -0.098119 +0xae48 +// -0.385066 +0xb629 +// 0.261827 +0x3430 +// -0.024529 +0xa648 +// 0.253351 +0x340e +// -0.063958 +0xac18 +// 0.113002 +0x2f3b +// 0.181615 +0x31d0 +// -0.021714 +0xa58f +// 0.030446 +0x27cb +// -0.007832 +0xa003 +// 0.249838 +0x33ff +// 0.036157 +0x28a1 +// -0.039556 +0xa910 +// -0.180415 +0xb1c6 +// 0.106053 +0x2eca +// -0.012891 +0xa29a +// -0.067511 +0xac52 +// -0.024217 +0xa633 +// -0.111332 +0xaf20 +// 0.048626 +0x2a39 +// 0.725466 +0x39ce +// 0.044642 +0x29b7 +// 0.323069 +0x352b +// -0.053249 +0xaad1 +// 0.042401 +0x296d +// -0.115775 +0xaf69 +// -0.075394 +0xacd3 +// 0.443999 +0x371b +// 0.256418 +0x341a +// 0.101364 +0x2e7d +// -0.099311 +0xae5b +// -0.149120 +0xb0c6 +// 0.272610 +0x345d +// 0.016407 +0x2433 +// -0.156970 +0xb106 +// 0.053510 +0x2ad9 +// -0.029785 +0xa7a0 +// -0.096007 +0xae25 +// 0.218951 +0x3302 +// 0.060572 +0x2bc1 +// 0.094069 +0x2e05 +// -0.276842 +0xb46e +// -0.090053 +0xadc3 +// -0.043579 +0xa994 +// 0.554387 +0x386f +// -0.090137 +0xadc5 +// 0.244504 +0x33d3 +// -0.119476 +0xafa5 +// 0.181408 +0x31ce +// 0.344752 +0x3584 +// -0.217047 +0xb2f2 +// -0.008289 +0xa03e +// 0.045253 +0x29cb +// 0.321360 +0x3524 +// 0.391818 +0x3645 +// -0.185861 +0xb1f3 +// 0.252605 +0x340b +// -0.048848 +0xaa41 +// -0.059652 +0xaba3 +// 0.143285 +0x3096 +// -0.418404 +0xb6b2 +// -0.168210 +0xb162 +// 0.019062 +0x24e1 +// -0.212793 +0xb2cf +// -0.008185 +0xa031 +// -0.277529 +0xb471 +// 0.083885 +0x2d5e +// -0.045620 +0xa9d7 +// 0.160930 +0x3126 +// -0.212302 +0xb2cb +// 0.168749 +0x3166 +// -0.467862 +0xb77c +// 0.214900 +0x32e0 +// 0.146029 +0x30ac +// -0.165459 +0xb14b +// -0.242220 +0xb3c0 +// 0.033297 +0x2843 +// 0.119030 +0x2f9e +// -0.144481 +0xb0a0 +// 0.274114 +0x3463 +// -0.298952 +0xb4c9 +// 0.266891 +0x3445 +// -0.165533 +0xb14c +// 0.183643 +0x31e0 +// 0.109800 +0x2f07 +// -0.028329 +0xa741 +// -0.008182 +0xa030 +// 0.038570 +0x28f0 +// -0.279592 +0xb479 +// 0.320121 +0x351f +// -0.004857 +0x9cf9 +// -0.074158 +0xacbf +// 0.165194 +0x3149 +// -0.233630 +0xb37a +// -0.359846 +0xb5c2 +// -0.269358 +0xb44f +// 0.003491 +0x1b26 +// -0.122548 +0xafd8 +// -0.372841 +0xb5f7 +// 0.213489 +0x32d5 +// -0.125867 +0xb007 +// -0.056093 +0xab2e +// 0.218637 +0x32ff +// 0.048163 +0x2a2a +// -0.123940 +0xafef +// 0.301794 +0x34d4 +// -0.034435 +0xa868 +// 0.099881 +0x2e64 +// -0.279717 +0xb47a +// -0.042157 +0xa965 +// 0.312528 +0x3500 +// 0.025444 +0x2684 +// -0.363279 +0xb5d0 +// -0.118079 +0xaf8f +// 0.130331 +0x302c +// -0.044561 +0xa9b4 +// 0.065272 +0x2c2d +// -0.106754 +0xaed5 +// 0.018300 +0x24af +// 0.421522 +0x36bf +// -0.054995 +0xab0a +// 0.354370 +0x35ac +// 0.103582 +0x2ea1 +// 0.255441 +0x3416 +// 0.194791 +0x323c +// 0.000275 +0xc81 +// 0.259607 +0x3427 +// 0.462743 +0x3767 +// 0.083888 +0x2d5e +// -0.191733 +0xb223 +// -0.026948 +0xa6e6 +// 0.117808 +0x2f8a +// -0.067529 +0xac52 +// 0.389253 +0x363a +// 0.114314 +0x2f51 +// -0.187128 +0xb1fd +// 0.027159 +0x26f4 +// 0.346756 +0x358c +// 0.178777 +0x31b9 +// 0.291495 +0x34aa +// -0.048764 +0xaa3e +// -0.349987 +0xb59a +// 0.168377 +0x3163 +// 0.007823 +0x2001 +// 0.054025 +0x2aea +// -0.043729 +0xa999 +// -0.100120 +0xae68 +// -0.026604 +0xa6cf +// 0.033459 +0x2848 +// -0.090369 +0xadc9 +// -0.142402 +0xb08f +// 0.116830 +0x2f7a +// -0.401847 +0xb66e +// 0.180720 +0x31c8 +// -0.072613 +0xaca6 +// -0.342020 +0xb579 +// -0.170360 +0xb174 +// 0.192473 +0x3229 +// 0.357179 +0x35b7 +// -0.201831 +0xb275 +// 0.120841 +0x2fbc +// 0.116582 +0x2f76 +// 0.206522 +0x329c +// -0.137569 +0xb067 +// 0.065402 +0x2c30 +// -0.256505 +0xb41b +// 0.126801 +0x300f +// -0.016281 +0xa42b +// 0.301272 +0x34d2 +// 0.248894 +0x33f7 +// -0.113530 +0xaf44 +// -0.461921 +0xb764 +// 0.032054 +0x281a +// -0.043233 +0xa989 +// -0.406768 +0xb682 +// -0.004743 +0x9cdb +// 0.419529 +0x36b6 +// -0.177557 +0xb1af +// -0.099120 +0xae58 +// 0.080010 +0x2d1f +// 0.048758 +0x2a3e +// -0.216569 +0xb2ee +// 0.058517 +0x2b7d +// -0.101394 +0xae7d +// 0.322048 +0x3527 +// 0.134326 +0x304c +// 0.427870 +0x36d9 +// 0.034844 +0x2876 +// 0.054274 +0x2af2 +// -0.231876 +0xb36c +// 0.043288 +0x298a +// -0.364227 +0xb5d4 +// 0.047469 +0x2a13 +// -0.244465 +0xb3d3 +// 0.008352 +0x2047 +// -0.179806 +0xb1c1 +// 0.098453 +0x2e4d +// 0.113695 +0x2f47 +// 0.137989 +0x306a +// 0.329110 +0x3544 +// -0.207112 +0xb2a1 +// 0.100757 +0x2e73 +// 0.427394 +0x36d7 +// -0.050093 +0xaa69 +// 0.092860 +0x2df1 +// 0.034508 +0x286b +// 0.092190 +0x2de6 +// -0.348992 +0xb595 +// -0.375560 +0xb602 +// -0.057627 +0xab60 +// -0.189919 +0xb214 +// -0.209900 +0xb2b7 +// -0.118786 +0xaf9a +// 0.668305 +0x3959 +// 0.088789 +0x2daf +// -0.057819 +0xab67 +// -0.150191 +0xb0ce +// 0.120049 +0x2faf +// -0.172954 +0xb189 +// -0.084726 +0xad6c +// -0.012276 +0xa249 +// 0.077970 +0x2cfd +// 0.189989 +0x3214 +// -0.196587 +0xb24a +// -0.046775 +0xa9fd +// 0.046217 +0x29ea +// -0.089129 +0xadb4 +// 0.034986 +0x287a +// -0.068687 +0xac65 +// 0.231725 +0x336a +// 0.011949 +0x221e +// 0.069192 +0x2c6e +// 0.395233 +0x3653 +// 0.020288 +0x2532 +// 0.267287 +0x3447 +// -0.238477 +0xb3a2 +// -0.043446 +0xa990 +// 0.706668 +0x39a7 +// -0.227357 +0xb347 +// 0.010175 +0x2136 +// -0.005096 +0x9d38 +// -0.066427 +0xac40 +// -0.053884 +0xaae6 +// 0.029630 +0x2796 +// 0.241207 +0x33b8 +// -0.013423 +0xa2df +// 0.003346 +0x1ada +// 0.168286 +0x3163 +// -0.040497 +0xa92f +// 0.036424 +0x28aa +// 0.067118 +0x2c4c +// 0.031522 +0x2809 +// 0.369664 +0x35ea +// -0.097263 +0xae3a +// -0.301137 +0xb4d1 +// 0.184996 +0x31eb +// -0.234032 +0xb37d +// 0.164273 +0x3142 +// 0.095412 +0x2e1b +// -0.219597 +0xb307 +// -0.129284 +0xb023 +// 0.682742 +0x3976 +// 0.042070 +0x2963 +// 0.028428 +0x2747 +// -0.042479 +0xa970 +// -0.158630 +0xb113 +// 0.044311 +0x29ac +// 0.204652 +0x328d +// -0.004951 +0x9d12 +// -0.058967 +0xab8c +// 0.100841 +0x2e74 +// -0.110625 +0xaf14 +// 0.078022 +0x2cfe +// -0.023548 +0xa607 +// -0.033251 +0xa842 +// -0.156845 +0xb105 +// -0.074534 +0xacc5 +// 0.059281 +0x2b97 +// 0.098974 +0x2e56 +// -0.060791 +0xabc8 +// -0.241473 +0xb3ba +// -0.278636 +0xb475 +// -0.077155 +0xacf0 +// 0.037671 +0x28d2 +// 0.113231 +0x2f3f +// 0.834779 +0x3aae +// 0.041232 +0x2947 +// -0.140727 +0xb081 +// -0.013761 +0xa30c +// -0.032472 +0xa828 +// -0.053486 +0xaad9 +// 0.164302 +0x3142 +// -0.110578 +0xaf14 +// -0.080784 +0xad2c +// 0.063536 +0x2c11 +// -0.100263 +0xae6b +// 0.116928 +0x2f7c +// -0.026907 +0xa6e3 +// 0.358685 +0x35bd +// 0.239992 +0x33ae +// 0.200657 +0x326c +// 0.030382 +0x27c7 +// 0.093920 +0x2e03 +// -0.292329 +0xb4ad +// 0.166274 +0x3152 +// 0.125649 +0x3005 +// -0.060060 +0xabb0 +// -0.072533 +0xaca4 +// 0.123864 +0x2fed +// 0.657770 +0x3943 +// 0.150922 +0x30d4 +// -0.006665 +0x9ed3 +// -0.178041 +0xb1b3 +// 0.156625 +0x3103 +// 0.070022 +0x2c7b +// 0.033181 +0x283f +// 0.114661 +0x2f57 +// -0.013028 +0xa2ac +// 0.176780 +0x31a8 +// -0.201591 +0xb273 +// 0.087841 +0x2d9f +// -0.058983 +0xab8d +// -0.305500 +0xb4e3 +// 0.104356 +0x2eae +// 0.137236 +0x3064 +// -0.100672 +0xae71 +// -0.115789 +0xaf69 +// -0.244449 +0xb3d3 +// -0.146169 +0xb0ad +// -0.013015 +0xa2aa +// 0.046168 +0x29e9 +// -0.170903 +0xb178 +// 0.108091 +0x2eeb +// 0.788273 +0x3a4e +// -0.020921 +0xa55b +// -0.046671 +0xa9f9 +// 0.008859 +0x2089 +// 0.139660 +0x3078 +// -0.094897 +0xae13 +// -0.063760 +0xac15 +// -0.018262 +0xa4ad +// -0.133223 +0xb043 +// 0.222262 +0x331d +// -0.038539 +0xa8ef +// 0.015531 +0x23f4 +// 0.022878 +0x25db +// -0.202823 +0xb27e +// 0.230133 +0x335d +// -0.284251 +0xb48c +// -0.254504 +0xb412 +// 0.221543 +0x3317 +// -0.197183 +0xb24f +// 0.092350 +0x2de9 +// -0.108591 +0xaef3 +// -0.057910 +0xab6a +// 0.006326 +0x1e7a +// -0.069645 +0xac75 +// 0.767961 +0x3a25 +// -0.013162 +0xa2bd +// -0.036453 +0xa8aa +// 0.042731 +0x2978 +// -0.088082 +0xada3 +// -0.073810 +0xacb9 +// -0.176762 +0xb1a8 +// 0.003578 +0x1b54 +// 0.029928 +0x27a9 +// -0.067733 +0xac56 +// 0.224474 +0x332f +// -0.217027 +0xb2f2 +// 0.277522 +0x3471 +// -0.069041 +0xac6b +// 0.193399 +0x3230 +// -0.317151 +0xb513 +// 0.117127 +0x2f7f +// 0.017287 +0x246d +// 0.016413 +0x2434 +// 0.040943 +0x293e +// 0.014332 +0x2357 +// -0.187293 +0xb1fe +// -0.003113 +0x9a60 +// 0.059148 +0x2b92 +// 0.766930 +0x3a23 +// 0.143500 +0x3098 +// 0.096467 +0x2e2d +// 0.017108 +0x2461 +// 0.054837 +0x2b05 +// -0.037813 +0xa8d7 +// 0.007000 +0x1f2b +// -0.022034 +0xa5a4 +// 0.068112 +0x2c5c +// -0.417643 +0xb6af +// 0.265240 +0x343e +// 0.226924 +0x3343 +// -0.124527 +0xaff8 +// -0.302958 +0xb4d9 +// 0.026146 +0x26b2 +// 0.158114 +0x310f +// 0.214205 +0x32db +// 0.182175 +0x31d4 +// 0.235876 +0x338c +// -0.009894 +0xa111 +// 0.080111 +0x2d21 +// 0.049200 +0x2a4c +// 0.005595 +0x1dbb +// 0.098919 +0x2e55 +// 0.547659 +0x3862 +// -0.093434 +0xadfb +// 0.082646 +0x2d4a +// -0.262108 +0xb432 +// -0.075326 +0xacd2 +// -0.015053 +0xa3b5 +// 0.145446 +0x30a7 +// -0.077752 +0xacfa +// -0.249363 +0xb3fb +// -0.062406 +0xabfd +// -0.185862 +0xb1f3 +// 0.057477 +0x2b5b +// 0.206490 +0x329c +// 0.333294 +0x3555 +// 0.392991 +0x364a +// -0.018355 +0xa4b3 +// 0.061065 +0x2bd1 +// -0.056561 +0xab3d +// 0.094974 +0x2e14 +// 0.178147 +0x31b3 +// 0.054703 +0x2b00 +// -0.058364 +0xab78 +// 0.113258 +0x2f40 +// -0.047579 +0xaa17 +// 0.676170 +0x3969 +// 0.144773 +0x30a2 +// 0.025023 +0x2668 +// -0.188316 +0xb207 +// -0.063379 +0xac0e +// 0.003832 +0x1bd9 +// -0.010649 +0xa174 +// 0.074327 +0x2cc2 +// 0.049762 +0x2a5f +// -0.121316 +0xafc4 +// -0.023158 +0xa5ee +// -0.199173 +0xb260 +// -0.224736 +0xb331 +// -0.272432 +0xb45c +// -0.092080 +0xade5 +// 0.011684 +0x21fb +// 0.014413 +0x2361 +// -0.102368 +0xae8d +// -0.033796 +0xa853 +// -0.063295 +0xac0d +// -0.022232 +0xa5b1 +// -0.005570 +0x9db4 +// 0.002930 +0x1a00 +// 0.216107 +0x32ea +// 0.846986 +0x3ac7 +// -0.043479 +0xa991 +// 0.140634 +0x3080 +// 0.012419 +0x225c +// -0.024315 +0xa639 +// -0.029408 +0xa787 +// -0.190619 +0xb21a +// 0.043146 +0x2986 +// 0.199322 +0x3261 +// -0.138302 +0xb06d +// -0.294309 +0xb4b5 +// -0.076132 +0xacdf +// 0.054918 +0x2b08 +// 0.095427 +0x2e1b +// 0.133434 +0x3045 +// 0.171289 +0x317b +// -0.048606 +0xaa39 +// 0.045471 +0x29d2 +// -0.022678 +0xa5ce +// 0.015482 +0x23ed +// 0.015957 +0x2416 +// -0.289509 +0xb4a2 +// 0.028631 +0x2754 +// 0.011060 +0x21aa +// 0.795770 +0x3a5e +// -0.039745 +0xa916 +// -0.023403 +0xa5fe +// 0.146806 +0x30b3 +// -0.064345 +0xac1e +// 0.011521 +0x21e6 +// -0.325372 +0xb535 +// 0.113674 +0x2f46 +// 0.177820 +0x31b1 +// -0.128332 +0xb01b +// -0.064267 +0xac1d +// 0.541342 +0x3855 +// -0.133106 +0xb042 +// 0.100169 +0x2e69 +// -0.081514 +0xad38 +// 0.011073 +0x21ab +// 0.066161 +0x2c3c +// -0.089295 +0xadb7 +// -0.168404 +0xb164 +// -0.095212 +0xae18 +// -0.038645 +0xa8f2 +// -0.136945 +0xb062 +// 0.078273 +0x2d02 +// -0.072817 +0xaca9 +// 0.613374 +0x38e8 +// -0.063084 +0xac0a +// 0.193448 +0x3231 +// -0.046994 +0xaa04 +// -0.292774 +0xb4af +// -0.250770 +0xb403 +// -0.001780 +0x974b +// 0.015444 +0x23e8 +// 0.185961 +0x31f3 +// -0.091851 +0xade1 +// -0.132116 +0xb03a +// -0.087279 +0xad96 +// 0.085446 +0x2d78 +// 0.142596 +0x3090 +// -0.131866 +0xb038 +// 0.142266 +0x308d +// -0.128677 +0xb01e +// 0.033223 +0x2841 +// -0.014060 +0xa333 +// -0.039680 +0xa914 +// 0.020376 +0x2537 +// -0.035331 +0xa886 +// -0.050855 +0xaa82 +// 0.023020 +0x25e5 +// 0.824457 +0x3a98 +// 0.117225 +0x2f81 +// -0.010866 +0xa190 +// 0.159260 +0x3119 +// 0.365520 +0x35d9 +// -0.435399 +0xb6f7 +// -0.224535 +0xb32f +// 0.190280 +0x3217 +// -0.102261 +0xae8b +// 0.097382 +0x2e3c +// 0.028101 +0x2732 +// 0.044348 +0x29ad +// -0.079922 +0xad1d +// 0.140946 +0x3083 +// -0.176869 +0xb1a9 +// 0.236350 +0x3390 +// 0.012867 +0x2297 +// 0.034490 +0x286a +// 0.119984 +0x2fae +// -0.001631 +0x96ae +// -0.032656 +0xa82e +// 0.130834 +0x3030 +// 0.195236 +0x323f +// 0.160933 +0x3126 +// 0.572292 +0x3894 +// 0.057186 +0x2b52 +// -0.049768 +0xaa5f +// -0.012519 +0xa269 +// -0.020478 +0xa53e +// -0.033952 +0xa859 +// -0.232424 +0xb370 +// 0.025894 +0x26a1 +// -0.003728 +0x9ba2 +// -0.026027 +0xa6aa +// 0.042938 +0x297f +// 0.019729 +0x250d +// -0.037410 +0xa8ca +// 0.070837 +0x2c89 +// -0.041587 +0xa953 +// -0.029983 +0xa7ad +// 0.047821 +0x2a1f +// -0.117069 +0xaf7e +// 0.022461 +0x25c0 +// -0.027601 +0xa711 +// -0.094961 +0xae14 +// -0.023800 +0xa618 +// -0.011481 +0xa1e1 +// 0.083813 +0x2d5d +// 0.946115 +0x3b92 +// -0.131105 +0xb032 +// 0.085153 +0x2d73 +// 0.236163 +0x338f +// -0.169456 +0xb16c +// -0.028306 +0xa73f +// -0.209625 +0xb2b5 +// 0.305127 +0x34e2 +// -0.037161 +0xa8c2 +// -0.381606 +0xb61b +// 0.009425 +0x20d3 +// -0.140075 +0xb07b +// -0.114962 +0xaf5c +// 0.086753 +0x2d8d +// -0.281612 +0xb481 +// 0.035146 +0x2880 +// -0.481629 +0xb7b5 +// 0.080506 +0x2d27 +// 0.139410 +0x3076 +// 0.116203 +0x2f70 +// 0.123495 +0x2fe7 +// 0.224465 +0x332f +// -0.372570 +0xb5f6 +// 0.096951 +0x2e34 +// 0.300106 +0x34cd +// -0.049472 +0xaa55 +// -0.098061 +0xae47 +// -0.046691 +0xa9fa +// 0.161878 +0x312e +// 0.205141 +0x3291 +// -0.004317 +0x9c6c +// -0.007136 +0x9f4f +// 0.173409 +0x318d +// -0.129578 +0xb026 +// -0.442111 +0xb713 +// -0.113629 +0xaf46 +// -0.406573 +0xb681 +// -0.149450 +0xb0c8 +// 0.036415 +0x28a9 +// -0.061177 +0xabd5 +// -0.188021 +0xb204 +// 0.312702 +0x3501 +// -0.170110 +0xb172 +// -0.372431 +0xb5f5 +// 0.039076 +0x2900 +// -0.191423 +0xb220 +// 0.201120 +0x3270 +// 0.158337 +0x3111 +// -0.441739 +0xb711 +// -0.065479 +0xac31 +// 0.338347 +0x356a +// -0.106674 +0xaed4 +// 0.039671 +0x2914 +// 0.110522 +0x2f13 +// -0.260455 +0xb42b +// 0.034379 +0x2867 +// -0.004254 +0x9c5b +// 0.021928 +0x259d +// 0.019169 +0x24e8 +// -0.325732 +0xb536 +// -0.097911 +0xae44 +// 0.225133 +0x3334 +// 0.122978 +0x2fdf +// 0.245835 +0x33de +// -0.320102 +0xb51f +// 0.311138 +0x34fa +// 0.116411 +0x2f73 +// 0.206356 +0x329a +// -0.257760 +0xb420 +// -0.046894 +0xaa01 +// 0.289314 +0x34a1 +// 0.383564 +0x3623 +// -0.280658 +0xb47e +// 0.138853 +0x3071 +// 0.051834 +0x2aa3 +// -0.243962 +0xb3cf +// -0.266533 +0xb444 +// 0.014017 +0x232d +// -0.200399 +0xb26a +// 0.116919 +0x2f7c +// -0.210434 +0xb2bc +// -0.152301 +0xb0e0 +// 0.029840 +0x27a4 +// -0.323749 +0xb52e +// 0.147285 +0x30b7 +// -0.127771 +0xb017 +// -0.111397 +0xaf21 +// -0.383130 +0xb621 +// 0.182052 +0x31d3 +// -0.114421 +0xaf53 +// -0.089648 +0xadbd +// 0.177658 +0x31af +// -0.166207 +0xb152 +// -0.271267 +0xb457 +// 0.153154 +0x30e7 +// -0.108726 +0xaef5 +// -0.353169 +0xb5a7 +// -0.318413 +0xb518 +// 0.142367 +0x308e +// -0.241516 +0xb3bb +// -0.045739 +0xa9db +// -0.084524 +0xad69 +// -0.183424 +0xb1df +// 0.253966 +0x3410 +// 0.099100 +0x2e58 +// -0.363518 +0xb5d1 +// -0.174293 +0xb194 +// -0.040627 +0xa933 +// -0.080609 +0xad29 +// 0.150807 +0x30d3 +// -0.294436 +0xb4b6 +// -0.253509 +0xb40e +// -0.224112 +0xb32c +// 0.270774 +0x3455 +// 0.016873 +0x2452 +// 0.031935 +0x2816 +// 0.102454 +0x2e8f +// 0.041825 +0x295b +// -0.074580 +0xacc6 +// -0.264217 +0xb43a +// -0.122448 +0xafd6 +// -0.229975 +0xb35c +// 0.176890 +0x31a9 +// 0.123548 +0x2fe8 +// 0.333674 +0x3557 +// 0.012635 +0x2278 +// 0.261645 +0x3430 +// 0.154045 +0x30ee +// 0.040969 +0x293e +// -0.225758 +0xb339 +// 0.577642 +0x389f +// 0.022361 +0x25b9 +// 0.032573 +0x282b +// 0.036682 +0x28b2 +// 0.020312 +0x2533 +// 0.004236 +0x1c56 +// -0.316844 +0xb512 +// -0.043067 +0xa983 +// 0.319939 +0x351e +// 0.302434 +0x34d7 +// -0.361660 +0xb5c9 +// -0.148280 +0xb0bf +// -0.138394 +0xb06e +// -0.295101 +0xb4b9 +// -0.221928 +0xb31a +// -0.186631 +0xb1f9 +// -0.131333 +0xb034 +// -0.291075 +0xb4a8 +// 0.265949 +0x3441 +// 0.336239 +0x3561 +// -0.180527 +0xb1c7 +// -0.004562 +0x9cac +// 0.036862 +0x28b8 +// -0.028455 +0xa749 +// 0.019210 +0x24eb +// -0.368959 +0xb5e7 +// 0.288102 +0x349c +// -0.073388 +0xacb2 +// -0.026806 +0xa6dd +// 0.131524 +0x3035 +// 0.043340 +0x298c +// 0.010287 +0x2144 +// -0.100918 +0xae75 +// -0.196827 +0xb24c +// -0.229898 +0xb35b +// 0.129938 +0x3028 +// -0.028561 +0xa750 +// 0.042710 +0x2978 +// -0.079348 +0xad14 +// 0.901993 +0x3b37 +// -0.091723 +0xaddf +// 0.032565 +0x282b +// 0.018176 +0x24a7 +// -0.040798 +0xa939 +// -0.069260 +0xac6f +// -0.020242 +0xa52f +// 0.012190 +0x223e +// -0.028026 +0xa72d +// 0.021857 +0x2598 +// 0.016942 +0x2456 +// 0.077200 +0x2cf1 +// 0.054526 +0x2afb +// 0.123732 +0x2feb +// -0.127208 +0xb012 +// -0.003599 +0x9b5f +// -0.349252 +0xb597 +// -0.062354 +0xabfb +// -0.175134 +0xb19b +// -0.095304 +0xae19 +// 0.139595 +0x3078 +// -0.060403 +0xabbb +// -0.391312 +0xb643 +// -0.145534 +0xb0a8 +// 0.575184 +0x389a +// 0.201710 +0x3274 +// -0.005705 +0x9dd8 +// -0.203636 +0xb284 +// 0.101735 +0x2e83 +// -0.104564 +0xaeb1 +// -0.028746 +0xa75c +// -0.212892 +0xb2d0 +// -0.112734 +0xaf37 +// 0.086756 +0x2d8d +// 0.199635 +0x3263 +// 0.150658 +0x30d2 +// 0.199243 +0x3260 +// -0.165978 +0xb150 +// -0.080305 +0xad24 +// -0.012454 +0xa260 +// 0.076055 +0x2cde +// 0.088206 +0x2da5 +// -0.077114 +0xacef +// -0.146611 +0xb0b1 +// 0.238120 +0x339f +// 0.251958 +0x3408 +// 0.051370 +0x2a93 +// 0.091253 +0x2dd7 +// 0.864576 +0x3aeb +// -0.125667 +0xb005 +// 0.054035 +0x2aeb +// -0.103708 +0xaea3 +// -0.025375 +0xa67f +// -0.064827 +0xac26 +// -0.002211 +0x9887 +// 0.085636 +0x2d7b +// -0.123239 +0xafe3 +// -0.088220 +0xada5 +// -0.115530 +0xaf65 +// 0.000394 +0xe76 +// 0.045024 +0x29c3 +// -0.014162 +0xa340 +// 0.148380 +0x30c0 +// -0.065143 +0xac2b +// -0.099759 +0xae62 +// -0.257983 +0xb421 +// 0.598729 +0x38ca +// 0.342416 +0x357b +// 0.232106 +0x336d +// 0.007558 +0x1fbd +// -0.080512 +0xad27 +// 0.000345 +0xda6 +// 0.481342 +0x37b4 +// -0.153329 +0xb0e8 +// -0.011622 +0xa1f3 +// -0.127370 +0xb013 +// -0.069115 +0xac6c +// -0.103047 +0xae98 +// -0.055936 +0xab29 +// -0.125641 +0xb005 +// 0.156739 +0x3104 +// -0.090685 +0xadce +// -0.034728 +0xa872 +// 0.008214 +0x2035 +// -0.145469 +0xb0a8 +// 0.009249 +0x20bc +// -0.145128 +0xb0a5 +// -0.104104 +0xaeaa +// -0.109879 +0xaf08 +// 0.241147 +0x33b7 +// -0.012442 +0xa25f +// -0.208284 +0xb2aa +// -0.054422 +0xaaf7 +// -0.167268 +0xb15a +// 0.106474 +0x2ed0 +// -0.115318 +0xaf61 +// 0.865716 +0x3aed +// 0.032392 +0x2825 +// -0.067213 +0xac4d +// -0.001882 +0x97b6 +// -0.087518 +0xad9a +// -0.119044 +0xaf9e +// 0.068705 +0x2c66 +// 0.101412 +0x2e7e +// 0.015352 +0x23dc +// 0.043389 +0x298e +// -0.055096 +0xab0d +// -0.040659 +0xa934 +// 0.119046 +0x2f9e +// -0.263622 +0xb438 +// -0.245580 +0xb3dc +// -0.146643 +0xb0b1 +// -0.262658 +0xb434 +// 0.313447 +0x3504 +// 0.100671 +0x2e71 +// -0.035582 +0xa88e +// 0.058063 +0x2b6f +// -0.142658 +0xb091 +// -0.213496 +0xb2d5 +// -0.007031 +0x9f33 +// 0.690106 +0x3985 +// -0.130188 +0xb02b +// -0.016920 +0xa455 +// -0.016873 +0xa452 +// 0.060883 +0x2bcb +// -0.167354 +0xb15b +// -0.059666 +0xaba3 +// -0.212027 +0xb2c9 +// 0.104161 +0x2eab +// -0.040349 +0xa92a +// -0.007286 +0x9f76 +// -0.020738 +0xa54f +// -0.014735 +0xa38b +// -0.291948 +0xb4ac +// -0.385110 +0xb629 +// 0.050722 +0x2a7e +// -0.170427 +0xb174 +// 0.115480 +0x2f64 +// -0.024100 +0xa62b +// -0.066077 +0xac3b +// -0.000563 +0x909e +// -0.220046 +0xb30b +// -0.073562 +0xacb5 +// -0.098649 +0xae50 +// 0.730172 +0x39d7 +// 0.169610 +0x316d +// -0.136490 +0xb05e +// 0.026715 +0x26d7 +// -0.198022 +0xb256 +// 0.145878 +0x30ab +// -0.070913 +0xac8a +// 0.004699 +0x1cd0 +// -0.073234 +0xacb0 +// -0.013218 +0xa2c5 +// -0.121081 +0xafc0 +// 0.058443 +0x2b7b +// 0.244517 +0x33d3 +// 0.088133 +0x2da4 +// 0.044024 +0x29a3 +// 0.440673 +0x370d +// -0.262537 +0xb433 +// -0.028199 +0xa738 +// -0.217388 +0xb2f5 +// 0.053675 +0x2adf +// -0.016384 +0xa432 +// -0.090109 +0xadc4 +// 0.091929 +0x2de2 +// 0.141624 +0x3088 +// 0.706184 +0x39a6 +// -0.040728 +0xa937 +// -0.102292 +0xae8c +// 0.115398 +0x2f63 +// -0.060958 +0xabcd +// 0.026796 +0x26dc +// 0.123786 +0x2fec +// 0.052865 +0x2ac4 +// -0.121632 +0xafc9 +// -0.284781 +0xb48e +// -0.015733 +0xa407 +// -0.011554 +0xa1ea +// -0.318001 +0xb517 +// 0.162160 +0x3130 +// -0.119675 +0xafa9 +// 0.008285 +0x203e +// -0.018386 +0xa4b5 +// -0.213046 +0xb2d1 +// 0.055369 +0x2b16 +// -0.210427 +0xb2bc +// -0.136377 +0xb05d +// 0.025183 +0x2672 +// -0.215742 +0xb2e7 +// 0.053283 +0x2ad2 +// 0.762402 +0x3a19 +// -0.059930 +0xabac +// 0.010581 +0x216b +// 0.111701 +0x2f26 +// -0.014209 +0xa346 +// 0.055821 +0x2b25 +// -0.119379 +0xafa4 +// -0.003493 +0x9b27 +// 0.240768 +0x33b4 +// -0.152465 +0xb0e1 +// 0.127308 +0x3013 +// -0.184117 +0xb1e4 +// 0.180228 +0x31c4 +// -0.111347 +0xaf20 +// -0.388053 +0xb635 +// 0.026809 +0x26dd +// -0.060824 +0xabc9 +// 0.106631 +0x2ed3 +// -0.035177 +0xa881 +// -0.106646 +0xaed3 +// 0.062952 +0x2c07 +// -0.002413 +0x98f1 +// -0.013996 +0xa32a +// -0.013944 +0xa324 +// 0.765578 +0x3a20 +// 0.188087 +0x3205 +// -0.050232 +0xaa6e +// -0.076088 +0xacdf +// -0.069117 +0xac6c +// 0.075039 +0x2ccd +// 0.015754 +0x2408 +// 0.025666 +0x2692 +// 0.377046 +0x3608 +// -0.512329 +0xb819 +// 0.052588 +0x2abb +// -0.185113 +0xb1ec +// 0.196280 +0x3248 +// 0.178806 +0x31b9 +// -0.108224 +0xaeed +// -0.048070 +0xaa27 +// -0.016934 +0xa456 +// 0.069370 +0x2c71 +// 0.066001 +0x2c39 +// -0.049573 +0xaa58 +// -0.011407 +0xa1d7 +// 0.018211 +0x24a9 +// 0.094885 +0x2e13 +// 0.258666 +0x3423 +// 0.517226 +0x3823 +// 0.216482 +0x32ed +// 0.140006 +0x307b +// 0.095407 +0x2e1b +// 0.036338 +0x28a7 +// -0.201113 +0xb270 +// 0.104070 +0x2ea9 +// 0.043323 +0x298c +// 0.381730 +0x361c +// -0.206520 +0xb29c +// -0.289726 +0xb4a3 +// 0.163158 +0x3139 +// -0.118319 +0xaf93 +// 0.109007 +0x2efa +// 0.072002 +0x2c9c +// -0.095016 +0xae15 +// -0.016450 +0xa436 +// 0.027864 +0x2722 +// -0.060096 +0xabb1 +// 0.025902 +0x26a1 +// -0.130924 +0xb031 +// 0.003586 +0x1b58 +// -0.092926 +0xadf3 +// 0.067730 +0x2c56 +// 0.736424 +0x39e4 +// -0.209231 +0xb2b2 +// -0.041393 +0xa94c +// 0.152848 +0x30e4 +// 0.037251 +0x28c5 +// 0.286265 +0x3495 +// -0.031601 +0xa80b +// 0.039492 +0x290e +// -0.363448 +0xb5d1 +// -0.087711 +0xad9d +// 0.218648 +0x32ff +// -0.051269 +0xaa90 +// 0.059373 +0x2b9a +// 0.046697 +0x29fa +// -0.078146 +0xad00 +// -0.223691 +0xb328 +// -0.038752 +0xa8f6 +// -0.139730 +0xb079 +// -0.095651 +0xae1f +// -0.057803 +0xab66 +// -0.008839 +0xa087 +// -0.076097 +0xacdf +// -0.115282 +0xaf61 +// -0.108218 +0xaeed +// 0.760151 +0x3a15 +// -0.040575 +0xa932 +// 0.133209 +0x3043 +// -0.042592 +0xa974 +// 0.315114 +0x350b +// 0.210804 +0x32bf +// 0.165628 +0x314d +// -0.025527 +0xa689 +// 0.142360 +0x308e +// -0.202686 +0xb27c +// 0.130636 +0x302e +// 0.120339 +0x2fb4 +// 0.233735 +0x337b +// -0.018684 +0xa4c8 +// 0.058286 +0x2b76 +// 0.099267 +0x2e5a +// 0.109928 +0x2f09 +// 0.081053 +0x2d30 +// 0.075316 +0x2cd2 +// 0.146957 +0x30b4 +// -0.005929 +0x9e12 +// -0.026413 +0xa6c3 +// -0.052015 +0xaaa8 +// -0.013527 +0xa2ed +// 0.765155 +0x3a1f +// 0.177085 +0x31ab +// 0.026232 +0x26b7 +// -0.304746 +0xb4e0 +// -0.334579 +0xb55a +// -0.114165 +0xaf4e +// 0.010885 +0x2193 +// 0.083671 +0x2d5b +// -0.086170 +0xad84 +// 0.216525 +0x32ee +// -0.044986 +0xa9c2 +// -0.040403 +0xa92c +// -0.039113 +0xa902 +// -0.175811 +0xb1a0 +// -0.052439 +0xaab6 +// -0.118753 +0xaf9a +// -0.162782 +0xb136 +// 0.101315 +0x2e7c +// -0.164339 +0xb142 +// 0.035738 +0x2893 +// 0.093726 +0x2e00 +// 0.062737 +0x2c04 +// -0.022648 +0xa5cc +// 0.090962 +0x2dd2 +// 0.754878 +0x3a0a +// 0.106689 +0x2ed4 +// -0.008490 +0xa059 +// 0.142415 +0x308f +// -0.167905 +0xb15f +// 0.142221 +0x308d +// 0.107657 +0x2ee4 +// 0.203051 +0x327f +// -0.153019 +0xb0e6 +// -0.090429 +0xadca +// -0.166421 +0xb153 +// 0.096721 +0x2e31 +// 0.061506 +0x2bdf +// -0.048503 +0xaa35 +// 0.091892 +0x2de2 +// 0.093818 +0x2e01 +// -0.106943 +0xaed8 +// 0.036894 +0x28b9 +// 0.018326 +0x24b1 +// -0.089841 +0xadc0 +// 0.134170 +0x304b +// 0.149536 +0x30c9 +// 0.089884 +0x2dc1 +// 0.019299 +0x24f1 +// 0.846382 +0x3ac5 +// -0.249058 +0xb3f8 +// 0.335063 +0x355c +// 0.023346 +0x25fa +// -0.260811 +0xb42c +// 0.025045 +0x2669 +// 0.313748 +0x3505 +// 0.260487 +0x342b +// 0.243770 +0x33cd +// 0.091015 +0x2dd3 +// 0.067268 +0x2c4e +// -0.211911 +0xb2c8 +// 0.081198 +0x2d32 +// -0.166816 +0xb157 +// 0.129976 +0x3029 +// 0.015055 +0x23b5 +// -0.105745 +0xaec5 +// 0.206388 +0x329b +// 0.076053 +0x2cde +// -0.257255 +0xb41e +// 0.122027 +0x2fcf +// -0.403127 +0xb673 +// -0.343734 +0xb580 +// -0.015481 +0xa3ed +// 0.335063 +0x355c +// 0.910119 +0x3b48 +// -0.006263 +0x9e6a +// 0.069963 +0x2c7a +// -0.006718 +0x9ee1 +// -0.084164 +0xad63 +// -0.069876 +0xac79 +// -0.065392 +0xac2f +// -0.024415 +0xa640 +// -0.018045 +0xa49f +// 0.056846 +0x2b47 +// -0.021781 +0xa593 +// 0.044749 +0x29ba +// -0.034866 +0xa876 +// -0.004038 +0x9c23 +// 0.028366 +0x2743 +// -0.055364 +0xab16 +// -0.020401 +0xa539 +// 0.069009 +0x2c6b +// -0.032734 +0xa831 +// 0.108140 +0x2eec +// 0.092207 +0x2de7 +// 0.004153 +0x1c41 +// 0.023346 +0x25fa +// -0.006263 +0x9e6a +// 0.999564 +0x3bff +// 0.004875 +0x1cfe +// -0.000468 +0x8fab +// -0.005864 +0x9e01 +// -0.004869 +0x9cfc +// -0.004556 +0x9caa +// -0.001701 +0x96f8 +// -0.001257 +0x9526 +// 0.003961 +0x1c0e +// -0.001518 +0x9637 +// 0.003118 +0x1a63 +// -0.002429 +0x98fa +// -0.000281 +0x8c9c +// 0.001976 +0x180c +// -0.003858 +0x9be7 +// -0.001422 +0x95d3 +// 0.004808 +0x1cec +// -0.002281 +0x98ac +// 0.007535 +0x1fb7 +// 0.006425 +0x1e94 +// 0.000289 +0xcbe +// -0.260811 +0xb42c +// 0.069963 +0x2c7a +// 0.004875 +0x1cfe +// 0.945541 +0x3b90 +// 0.005229 +0x1d5b +// 0.065513 +0x2c31 +// 0.054391 +0x2af6 +// 0.050901 +0x2a84 +// 0.019005 +0x24dd +// 0.014046 +0x2331 +// -0.044248 +0xa9aa +// 0.016955 +0x2457 +// -0.034832 +0xa875 +// 0.027140 +0x26f3 +// 0.003144 +0x1a70 +// -0.022080 +0xa5a7 +// 0.043095 +0x2984 +// 0.015880 +0x2411 +// -0.053717 +0xaae0 +// 0.025480 +0x2686 +// -0.084175 +0xad63 +// -0.071774 +0xac98 +// -0.003233 +0x9a9f +// 0.025045 +0x2669 +// -0.006718 +0x9ee1 +// -0.000468 +0x8fab +// 0.005229 +0x1d5b +// 0.999498 +0x3bff +// -0.006291 +0x9e71 +// -0.005223 +0x9d59 +// -0.004888 +0x9d01 +// -0.001825 +0x977a +// -0.001349 +0x9586 +// 0.004249 +0x1c5a +// -0.001628 +0x96ab +// 0.003345 +0x1ada +// -0.002606 +0x9956 +// -0.000302 +0x8cf2 +// 0.002120 +0x1858 +// -0.004138 +0x9c3d +// -0.001525 +0x963f +// 0.005158 +0x1d48 +// -0.002447 +0x9903 +// 0.008083 +0x2023 +// 0.006892 +0x1f0f +// 0.000310 +0xd16 +// 0.313748 +0x3505 +// -0.084164 +0xad63 +// -0.005864 +0x9e01 +// 0.065513 +0x2c31 +// -0.006291 +0x9e71 +// 0.921190 +0x3b5f +// -0.065431 +0xac30 +// -0.061232 +0xabd6 +// -0.022862 +0xa5da +// -0.016897 +0xa453 +// 0.053229 +0x2ad0 +// -0.020396 +0xa539 +// 0.041902 +0x295d +// -0.032648 +0xa82e +// -0.003782 +0x9bbf +// 0.026562 +0x26cd +// -0.051842 +0xaaa3 +// -0.019104 +0xa4e4 +// 0.064619 +0x2c23 +// -0.030652 +0xa7d9 +// 0.101261 +0x2e7b +// 0.086342 +0x2d87 +// 0.003889 +0x1bf7 +// 0.260487 +0x342b +// -0.069876 +0xac79 +// -0.004869 +0x9cfc +// 0.054391 +0x2af6 +// -0.005223 +0x9d59 +// -0.065431 +0xac30 +// 0.945676 +0x3b91 +// -0.050838 +0xaa82 +// -0.018981 +0xa4dc +// -0.014029 +0xa32f +// 0.044193 +0x29a8 +// -0.016934 +0xa456 +// 0.034789 +0x2874 +// -0.027106 +0xa6f0 +// -0.003140 +0x9a6e +// 0.022053 +0x25a5 +// -0.043042 +0xa982 +// -0.015861 +0xa40f +// 0.053650 +0x2ade +// -0.025448 +0xa684 +// 0.084071 +0x2d61 +// 0.071685 +0x2c96 +// 0.003229 +0x1a9d +// 0.243770 +0x33cd +// -0.065392 +0xac2f +// -0.004556 +0x9caa +// 0.050901 +0x2a84 +// -0.004888 +0x9d01 +// -0.061232 +0xabd6 +// -0.050838 +0xaa82 +// 0.952425 +0x3b9f +// -0.017763 +0xa48c +// -0.013128 +0xa2b9 +// 0.041357 +0x294b +// -0.015847 +0xa40f +// 0.032556 +0x282b +// -0.025367 +0xa67e +// -0.002938 +0x9a04 +// 0.020638 +0x2549 +// -0.040279 +0xa928 +// -0.014843 +0xa399 +// 0.050207 +0x2a6d +// -0.023815 +0xa619 +// 0.078676 +0x2d09 +// 0.067084 +0x2c4b +// 0.003021 +0x1a30 +// 0.091015 +0x2dd3 +// -0.024415 +0xa640 +// -0.001701 +0x96f8 +// 0.019005 +0x24dd +// -0.001825 +0x977a +// -0.022862 +0xa5da +// -0.018981 +0xa4dc +// -0.017763 +0xa48c +// 0.993368 +0x3bf2 +// -0.004902 +0x9d05 +// 0.015441 +0x23e8 +// -0.005917 +0x9e0f +// 0.012155 +0x2239 +// -0.009471 +0xa0d9 +// -0.001097 +0x947e +// 0.007705 +0x1fe4 +// -0.015039 +0xa3b3 +// -0.005542 +0x9dad +// 0.018745 +0x24cd +// -0.008892 +0xa08d +// 0.029375 +0x2785 +// 0.025047 +0x2669 +// 0.001128 +0x149f +// 0.067268 +0x2c4e +// -0.018045 +0xa49f +// -0.001257 +0x9526 +// 0.014046 +0x2331 +// -0.001349 +0x9586 +// -0.016897 +0xa453 +// -0.014029 +0xa32f +// -0.013128 +0xa2b9 +// -0.004902 +0x9d05 +// 0.996377 +0x3bf9 +// 0.011412 +0x21d8 +// -0.004373 +0x9c7a +// 0.008984 +0x209a +// -0.007000 +0x9f2b +// -0.000811 +0x92a4 +// 0.005695 +0x1dd5 +// -0.011115 +0xa1b1 +// -0.004096 +0x9c32 +// 0.013854 +0x2318 +// -0.006572 +0x9ebb +// 0.021710 +0x258f +// 0.018512 +0x24bd +// 0.000834 +0x12d4 +// -0.211911 +0xb2c8 +// 0.056846 +0x2b47 +// 0.003961 +0x1c0e +// -0.044248 +0xa9aa +// 0.004249 +0x1c5a +// 0.053229 +0x2ad0 +// 0.044193 +0x29a8 +// 0.041357 +0x294b +// 0.015441 +0x23e8 +// 0.011412 +0x21d8 +// 0.964048 +0x3bb6 +// 0.013776 +0x230e +// -0.028301 +0xa73f +// 0.022051 +0x25a5 +// 0.002554 +0x193b +// -0.017940 +0xa498 +// 0.035015 +0x287b +// 0.012903 +0x229b +// -0.043645 +0xa996 +// 0.020703 +0x254d +// -0.068393 +0xac61 +// -0.058317 +0xab77 +// -0.002626 +0x9961 +// 0.081198 +0x2d32 +// -0.021781 +0xa593 +// -0.001518 +0x9637 +// 0.016955 +0x2457 +// -0.001628 +0x96ab +// -0.020396 +0xa539 +// -0.016934 +0xa456 +// -0.015847 +0xa40f +// -0.005917 +0x9e0f +// -0.004373 +0x9c7a +// 0.013776 +0x230e +// 0.994722 +0x3bf5 +// 0.010844 +0x218d +// -0.008449 +0xa053 +// -0.000979 +0x9402 +// 0.006874 +0x1f0a +// -0.013417 +0xa2df +// -0.004944 +0x9d10 +// 0.016723 +0x2448 +// -0.007933 +0xa010 +// 0.026206 +0x26b5 +// 0.022345 +0x25b8 +// 0.001006 +0x141f +// -0.166816 +0xb157 +// 0.044749 +0x29ba +// 0.003118 +0x1a63 +// -0.034832 +0xa875 +// 0.003345 +0x1ada +// 0.041902 +0x295d +// 0.034789 +0x2874 +// 0.032556 +0x282b +// 0.012155 +0x2239 +// 0.008984 +0x209a +// -0.028301 +0xa73f +// 0.010844 +0x218d +// 0.977721 +0x3bd2 +// 0.017359 +0x2472 +// 0.002011 +0x181e +// -0.014123 +0xa33b +// 0.027564 +0x270e +// 0.010157 +0x2133 +// -0.034357 +0xa866 +// 0.016297 +0x242c +// -0.053839 +0xaae4 +// -0.045907 +0xa9e0 +// -0.002068 +0x983c +// 0.129976 +0x3029 +// -0.034866 +0xa876 +// -0.002429 +0x98fa +// 0.027140 +0x26f3 +// -0.002606 +0x9956 +// -0.032648 +0xa82e +// -0.027106 +0xa6f0 +// -0.025367 +0xa67e +// -0.009471 +0xa0d9 +// -0.007000 +0x9f2b +// 0.022051 +0x25a5 +// -0.008449 +0xa053 +// 0.017359 +0x2472 +// 0.986475 +0x3be4 +// -0.001567 +0x966b +// 0.011004 +0x21a2 +// -0.021477 +0xa57f +// -0.007914 +0xa00d +// 0.026770 +0x26da +// -0.012698 +0xa280 +// 0.041949 +0x295f +// 0.035769 +0x2894 +// 0.001611 +0x1699 +// 0.015055 +0x23b5 +// -0.004038 +0x9c23 +// -0.000281 +0x8c9c +// 0.003144 +0x1a70 +// -0.000302 +0x8cf2 +// -0.003782 +0x9bbf +// -0.003140 +0x9a6e +// -0.002938 +0x9a04 +// -0.001097 +0x947e +// -0.000811 +0x92a4 +// 0.002554 +0x193b +// -0.000979 +0x9402 +// 0.002011 +0x181e +// -0.001567 +0x966b +// 0.999819 +0x3c00 +// 0.001275 +0x1538 +// -0.002488 +0x9918 +// -0.000917 +0x9382 +// 0.003101 +0x1a5a +// -0.001471 +0x9606 +// 0.004859 +0x1cfa +// 0.004143 +0x1c3e +// 0.000187 +0xa1d +// -0.105745 +0xaec5 +// 0.028366 +0x2743 +// 0.001976 +0x180c +// -0.022080 +0xa5a7 +// 0.002120 +0x1858 +// 0.026562 +0x26cd +// 0.022053 +0x25a5 +// 0.020638 +0x2549 +// 0.007705 +0x1fe4 +// 0.005695 +0x1dd5 +// -0.017940 +0xa498 +// 0.006874 +0x1f0a +// -0.014123 +0xa33b +// 0.011004 +0x21a2 +// 0.001275 +0x1538 +// 0.991048 +0x3bee +// 0.017473 +0x2479 +// 0.006439 +0x1e98 +// -0.021779 +0xa593 +// 0.010331 +0x214a +// -0.034129 +0xa85e +// -0.029101 +0xa773 +// -0.001311 +0x955e +// 0.206388 +0x329b +// -0.055364 +0xab16 +// -0.003858 +0x9be7 +// 0.043095 +0x2984 +// -0.004138 +0x9c3d +// -0.051842 +0xaaa3 +// -0.043042 +0xa982 +// -0.040279 +0xa928 +// -0.015039 +0xa3b3 +// -0.011115 +0xa1b1 +// 0.035015 +0x287b +// -0.013417 +0xa2df +// 0.027564 +0x270e +// -0.021477 +0xa57f +// -0.002488 +0x9918 +// 0.017473 +0x2479 +// 0.965898 +0x3bba +// -0.012567 +0xa26f +// 0.042507 +0x2971 +// -0.020163 +0xa529 +// 0.066611 +0x2c43 +// 0.056797 +0x2b45 +// 0.002558 +0x193d +// 0.076053 +0x2cde +// -0.020401 +0xa539 +// -0.001422 +0x95d3 +// 0.015880 +0x2411 +// -0.001525 +0x963f +// -0.019104 +0xa4e4 +// -0.015861 +0xa40f +// -0.014843 +0xa399 +// -0.005542 +0x9dad +// -0.004096 +0x9c32 +// 0.012903 +0x229b +// -0.004944 +0x9d10 +// 0.010157 +0x2133 +// -0.007914 +0xa00d +// -0.000917 +0x9382 +// 0.006439 +0x1e98 +// -0.012567 +0xa26f +// 0.995369 +0x3bf7 +// 0.015664 +0x2403 +// -0.007430 +0x9f9c +// 0.024546 +0x2649 +// 0.020929 +0x255c +// 0.000943 +0x13b9 +// -0.257255 +0xb41e +// 0.069009 +0x2c6b +// 0.004808 +0x1cec +// -0.053717 +0xaae0 +// 0.005158 +0x1d48 +// 0.064619 +0x2c23 +// 0.053650 +0x2ade +// 0.050207 +0x2a6d +// 0.018745 +0x24cd +// 0.013854 +0x2318 +// -0.043645 +0xa996 +// 0.016723 +0x2448 +// -0.034357 +0xa866 +// 0.026770 +0x26da +// 0.003101 +0x1a5a +// -0.021779 +0xa593 +// 0.042507 +0x2971 +// 0.015664 +0x2403 +// 0.947016 +0x3b93 +// 0.025133 +0x266f +// -0.083028 +0xad50 +// -0.070795 +0xac88 +// -0.003188 +0x9a88 +// 0.122027 +0x2fcf +// -0.032734 +0xa831 +// -0.002281 +0x98ac +// 0.025480 +0x2686 +// -0.002447 +0x9903 +// -0.030652 +0xa7d9 +// -0.025448 +0xa684 +// -0.023815 +0xa619 +// -0.008892 +0xa08d +// -0.006572 +0x9ebb +// 0.020703 +0x254d +// -0.007933 +0xa010 +// 0.016297 +0x242c +// -0.012698 +0xa280 +// -0.001471 +0x9606 +// 0.010331 +0x214a +// -0.020163 +0xa529 +// -0.007430 +0x9f9c +// 0.025133 +0x266f +// 0.988078 +0x3be8 +// 0.039384 +0x290b +// 0.033581 +0x284c +// 0.001512 +0x1632 +// -0.403127 +0xb673 +// 0.108140 +0x2eec +// 0.007535 +0x1fb7 +// -0.084175 +0xad63 +// 0.008083 +0x2023 +// 0.101261 +0x2e7b +// 0.084071 +0x2d61 +// 0.078676 +0x2d09 +// 0.029375 +0x2785 +// 0.021710 +0x258f +// -0.068393 +0xac61 +// 0.026206 +0x26b5 +// -0.053839 +0xaae4 +// 0.041949 +0x295f +// 0.004859 +0x1cfa +// -0.034129 +0xa85e +// 0.066611 +0x2c43 +// 0.024546 +0x2649 +// -0.083028 +0xad50 +// 0.039384 +0x290b +// 0.869893 +0x3af6 +// -0.110938 +0xaf1a +// -0.004996 +0x9d1e +// -0.343734 +0xb580 +// 0.092207 +0x2de7 +// 0.006425 +0x1e94 +// -0.071774 +0xac98 +// 0.006892 +0x1f0f +// 0.086342 +0x2d87 +// 0.071685 +0x2c96 +// 0.067084 +0x2c4b +// 0.025047 +0x2669 +// 0.018512 +0x24bd +// -0.058317 +0xab77 +// 0.022345 +0x25b8 +// -0.045907 +0xa9e0 +// 0.035769 +0x2894 +// 0.004143 +0x1c3e +// -0.029101 +0xa773 +// 0.056797 +0x2b45 +// 0.020929 +0x255c +// -0.070795 +0xac88 +// 0.033581 +0x284c +// -0.110938 +0xaf1a +// 0.905406 +0x3b3e +// -0.004260 +0x9c5d +// -0.015481 +0xa3ed +// 0.004153 +0x1c41 +// 0.000289 +0xcbe +// -0.003233 +0x9a9f +// 0.000310 +0xd16 +// 0.003889 +0x1bf7 +// 0.003229 +0x1a9d +// 0.003021 +0x1a30 +// 0.001128 +0x149f +// 0.000834 +0x12d4 +// -0.002626 +0x9961 +// 0.001006 +0x141f +// -0.002068 +0x983c +// 0.001611 +0x1699 +// 0.000187 +0xa1d +// -0.001311 +0x955e +// 0.002558 +0x193d +// 0.000943 +0x13b9 +// -0.003188 +0x9a88 +// 0.001512 +0x1632 +// -0.004996 +0x9d1e +// -0.004260 +0x9c5d +// 0.999808 +0x3c00 +// -0.177249 +0xb1ac +// -0.405428 +0xb67d +// 0.231314 +0x3367 +// -0.203801 +0xb286 +// -0.239854 +0xb3ad +// -0.183977 +0xb1e3 +// 0.298785 +0x34c8 +// -0.161186 +0xb128 +// 0.142410 +0x308f +// 0.000106 +0x6f4 +// 0.001616 +0x169e +// -0.062920 +0xac07 +// -0.156115 +0xb0ff +// -0.208665 +0xb2ad +// 0.236727 +0x3393 +// 0.266122 +0x3442 +// -0.082770 +0xad4c +// -0.352500 +0xb5a4 +// -0.102077 +0xae88 +// 0.141743 +0x3089 +// -0.322694 +0xb52a +// 0.021975 +0x25a0 +// 0.131493 +0x3035 +// -0.542582 +0xb857 +// -0.251792 +0xb407 +// -0.315329 +0xb50c +// 0.281417 +0x3481 +// 0.013508 +0x22ea +// 0.160295 +0x3121 +// 0.041890 +0x295d +// 0.224113 +0x332c +// -0.036682 +0xa8b2 +// 0.075663 +0x2cd8 +// 0.071455 +0x2c93 +// 0.162205 +0x3131 +// -0.043741 +0xa999 +// 0.187096 +0x31fd +// 0.160387 +0x3122 +// -0.046477 +0xa9f3 +// 0.220827 +0x3311 +// -0.135285 +0xb054 +// 0.263267 +0x3436 +// -0.108542 +0xaef2 +// -0.028581 +0xa751 +// 0.362499 +0x35cd +// 0.045277 +0x29cc +// -0.255432 +0xb416 +// 0.081483 +0x2d37 +// 0.106317 +0x2ece +// -0.006188 +0x9e56 +// -0.260887 +0xb42d +// -0.190435 +0xb218 +// 0.121274 +0x2fc3 +// 0.067000 +0x2c4a +// 0.070764 +0x2c87 +// -0.042389 +0xa96d +// -0.095035 +0xae15 +// -0.026410 +0xa6c3 +// 0.385868 +0x362d +// 0.319740 +0x351e +// 0.003368 +0x1ae6 +// -0.069088 +0xac6c +// -0.246440 +0xb3e3 +// -0.305015 +0xb4e1 +// 0.280285 +0x347c +// 0.078394 +0x2d04 +// 0.308155 +0x34ee +// -0.362068 +0xb5cb +// -0.237231 +0xb397 +// -0.117747 +0xaf89 +// -0.207786 +0xb2a6 +// -0.437207 +0xb6ff +// 0.006876 +0x1f0b +// -0.358955 +0xb5be +// 0.046188 +0x29e9 +// 0.141723 +0x3089 +// -0.270952 +0xb456 +// -0.087199 +0xad95 +// 0.116310 +0x2f72 +// -0.184967 +0xb1eb +// -0.012362 +0xa254 +// 0.051255 +0x2a90 +// -0.237569 +0xb39a +// -0.295280 +0xb4b9 +// 0.200232 +0x3268 +// -0.135466 +0xb056 +// 0.258758 +0x3424 +// -0.101995 +0xae87 +// 0.000013 +0xda +// 0.404934 +0x367b +// -0.003067 +0x9a48 +// 0.160448 +0x3122 +// 0.112544 +0x2f34 +// -0.224746 +0xb331 +// -0.094509 +0xae0c +// 0.047829 +0x2a1f +// -0.201787 +0xb275 +// -0.099788 +0xae63 +// 0.065097 +0x2c2b +// 0.481465 +0x37b4 +// 0.306771 +0x34e9 +// -0.005838 +0x9dfa +// 0.123394 +0x2fe6 +// 0.260978 +0x342d +// -0.183747 +0xb1e1 +// 0.120660 +0x2fb9 +// -0.279627 +0xb479 +// -0.321447 +0xb525 +// -0.262124 +0xb432 +// -0.006916 +0x9f15 +// -0.387354 +0xb633 +// -0.073454 +0xacb3 +// -0.058829 +0xab88 +// -0.061148 +0xabd4 +// 0.012926 +0x229e +// 0.106667 +0x2ed4 +// 0.022386 +0x25bb +// 0.070834 +0x2c89 +// -0.104910 +0xaeb7 +// -0.285532 +0xb492 +// -0.259498 +0xb427 +// -0.145614 +0xb0a9 +// 0.062591 +0x2c01 +// -0.088726 +0xadae +// -0.310559 +0xb4f8 +// 0.298872 +0x34c8 +// -0.300131 +0xb4cd +// 0.031607 +0x280c +// -0.019819 +0xa513 +// 0.134312 +0x304c +// -0.077729 +0xacfa +// 0.135498 +0x3056 +// -0.140459 +0xb07f +// -0.171588 +0xb17e +// -0.139389 +0xb076 +// 0.412579 +0x369a +// 0.480876 +0x37b2 +// -0.022132 +0xa5aa +// -0.371992 +0xb5f4 +// -0.050055 +0xaa68 +// -0.060806 +0xabc8 +// -0.213030 +0xb2d1 +// 0.169642 +0x316e +// 0.136413 +0x305d +// -0.049070 +0xaa48 +// -0.145512 +0xb0a8 +// 0.426705 +0x36d4 +// -0.287127 +0xb498 +// -0.122873 +0xafdd +// -0.196207 +0xb247 +// 0.010337 +0x214b +// -0.027525 +0xa70c +// -0.000859 +0x930a +// 0.001431 +0x15dc +// 0.160293 +0x3121 +// 0.135337 +0x3055 +// -0.266287 +0xb443 +// -0.403875 +0xb676 +// -0.012214 +0xa241 +// -0.151503 +0xb0d9 +// -0.344895 +0xb585 +// -0.167796 +0xb15f +// 0.106679 +0x2ed4 +// -0.023536 +0xa606 +// -0.499086 +0xb7fc +// 0.219387 +0x3305 +// -0.006052 +0x9e33 +// 0.124224 +0x2ff3 +// 0.667152 +0x3956 +// -0.137466 +0xb066 +// 0.053759 +0x2ae2 +// -0.117896 +0xaf8c +// -0.119393 +0xafa4 +// 0.047329 +0x2a0f +// -0.216004 +0xb2ea +// -0.013685 +0xa302 +// 0.246354 +0x33e2 +// -0.009219 +0xa0b8 +// 0.080826 +0x2d2c +// 0.032675 +0x282f +// 0.079084 +0x2d10 +// 0.131776 +0x3038 +// -0.003063 +0x9a46 +// 0.105365 +0x2ebe +// 0.309323 +0x34f3 +// -0.041317 +0xa94a +// -0.130057 +0xb029 +// 0.002888 +0x19ea +// 0.303475 +0x34db +// -0.146752 +0xb0b2 +// 0.316662 +0x3511 +// -0.056492 +0xab3b +// 0.660100 +0x3948 +// 0.092552 +0x2dec +// 0.036884 +0x28b9 +// -0.020037 +0xa521 +// 0.112245 +0x2f2f +// 0.023596 +0x260a +// 0.041080 +0x2942 +// 0.048621 +0x2a39 +// 0.083417 +0x2d57 +// 0.025805 +0x269b +// 0.270647 +0x3455 +// 0.106184 +0x2ecc +// 0.236688 +0x3393 +// 0.207256 +0x32a2 +// 0.119154 +0x2fa0 +// -0.127354 +0xb013 +// 0.060547 +0x2bc0 +// 0.059187 +0x2b93 +// -0.052174 +0xaaae +// -0.032421 +0xa826 +// -0.267586 +0xb448 +// -0.330438 +0xb549 +// -0.028829 +0xa761 +// 0.132766 +0x3040 +// 0.833098 +0x3aaa +// 0.038597 +0x28f1 +// -0.134393 +0xb04d +// -0.002842 +0x99d2 +// -0.020436 +0xa53b +// 0.050192 +0x2a6d +// -0.014021 +0xa32e +// 0.057238 +0x2b54 +// -0.027701 +0xa717 +// -0.141576 +0xb088 +// -0.132423 +0xb03d +// 0.037865 +0x28d9 +// 0.032287 +0x2822 +// -0.112892 +0xaf3a +// -0.127423 +0xb014 +// 0.104997 +0x2eb8 +// -0.138162 +0xb06c +// -0.189373 +0xb20f +// 0.019854 +0x2515 +// 0.236773 +0x3394 +// 0.075511 +0x2cd5 +// -0.118362 +0xaf93 +// 0.022256 +0x25b3 +// 0.069501 +0x2c73 +// 0.873950 +0x3afe +// 0.019244 +0x24ed +// 0.054037 +0x2aeb +// -0.038782 +0xa8f7 +// -0.058243 +0xab75 +// 0.087185 +0x2d94 +// -0.102925 +0xae96 +// 0.017620 +0x2483 +// 0.036465 +0x28ab +// 0.067241 +0x2c4e +// -0.012340 +0xa251 +// -0.199524 +0xb263 +// -0.001006 +0x941f +// -0.121687 +0xafca +// 0.117676 +0x2f88 +// 0.028976 +0x276b +// -0.240541 +0xb3b3 +// 0.110583 +0x2f14 +// -0.328794 +0xb543 +// -0.145404 +0xb0a7 +// -0.172430 +0xb185 +// -0.018366 +0xa4b4 +// -0.113662 +0xaf46 +// 0.007231 +0x1f68 +// 0.816589 +0x3a88 +// 0.043575 +0x2994 +// -0.102482 +0xae8f +// 0.060909 +0x2bcc +// 0.100088 +0x2e68 +// 0.056526 +0x2b3c +// -0.010069 +0xa128 +// -0.055451 +0xab19 +// -0.048206 +0xaa2c +// 0.140470 +0x307f +// 0.077454 +0x2cf5 +// -0.027473 +0xa708 +// 0.053769 +0x2ae2 +// -0.272864 +0xb45e +// 0.286481 +0x3495 +// 0.017487 +0x247a +// -0.063510 +0xac11 +// 0.220155 +0x330c +// -0.047399 +0xaa11 +// 0.068444 +0x2c61 +// 0.023805 +0x2618 +// 0.057639 +0x2b61 +// 0.033224 +0x2841 +// 0.105249 +0x2ebc +// 0.799295 +0x3a65 +// -0.093600 +0xadfe +// -0.056296 +0xab35 +// -0.021256 +0xa571 +// 0.085520 +0x2d79 +// 0.149167 +0x30c6 +// -0.136224 +0xb05c +// -0.063797 +0xac15 +// -0.157737 +0xb10c +// 0.155573 +0x30fa +// 0.110647 +0x2f15 +// 0.012254 +0x2246 +// -0.125350 +0xb003 +// 0.154925 +0x30f5 +// -0.388772 +0xb638 +// 0.004656 +0x1cc4 +// 0.099145 +0x2e58 +// 0.083355 +0x2d56 +// -0.155466 +0xb0fa +// -0.097105 +0xae37 +// 0.084438 +0x2d67 +// -0.043925 +0xa99f +// 0.005267 +0x1d65 +// -0.113243 +0xaf3f +// 0.780882 +0x3a3f +// -0.096024 +0xae25 +// 0.132787 +0x3040 +// 0.037143 +0x28c1 +// 0.194207 +0x3237 +// -0.100853 +0xae74 +// 0.005165 +0x1d4a +// 0.039650 +0x2913 +// 0.138075 +0x306b +// 0.173557 +0x318e +// 0.229655 +0x3359 +// 0.003394 +0x1af3 +// -0.223205 +0xb324 +// -0.152552 +0xb0e2 +// -0.253881 +0xb410 +// 0.281193 +0x3480 +// -0.039866 +0xa91a +// 0.072950 +0x2cab +// 0.062519 +0x2c00 +// 0.070591 +0x2c85 +// -0.082799 +0xad4d +// 0.122411 +0x2fd6 +// 0.014109 +0x2339 +// 0.038594 +0x28f1 +// 0.784727 +0x3a47 +// -0.080670 +0xad2a +// -0.104670 +0xaeb3 +// 0.161327 +0x312a +// -0.060324 +0xabb9 +// -0.037684 +0xa8d3 +// 0.079182 +0x2d11 +// -0.143080 +0xb094 +// -0.014473 +0xa369 +// 0.175117 +0x319b +// 0.033442 +0x2848 +// -0.036020 +0xa89c +// 0.311154 +0x34fa +// -0.130604 +0xb02e +// 0.000661 +0x116b +// -0.229299 +0xb356 +// 0.211803 +0x32c7 +// 0.140321 +0x307e +// -0.081308 +0xad34 +// 0.059012 +0x2b8e +// 0.047998 +0x2a25 +// 0.004173 +0x1c46 +// 0.164777 +0x3146 +// -0.016180 +0xa424 +// 0.811167 +0x3a7d +// 0.005305 +0x1d6f +// -0.023560 +0xa608 +// -0.049916 +0xaa64 +// -0.102778 +0xae94 +// -0.045905 +0xa9e0 +// -0.055575 +0xab1d +// -0.138785 +0xb071 +// 0.052859 +0x2ac4 +// 0.266728 +0x3445 +// -0.029196 +0xa779 +// -0.035669 +0xa891 +// -0.385298 +0xb62a +// 0.026951 +0x26e6 +// 0.248807 +0x33f6 +// 0.074926 +0x2ccc +// 0.065882 +0x2c37 +// 0.058803 +0x2b87 +// -0.019222 +0xa4ec +// 0.086644 +0x2d8c +// -0.008920 +0xa091 +// 0.008288 +0x203e +// -0.108841 +0xaef7 +// -0.043333 +0xa98c +// 0.776173 +0x3a36 +// -0.054606 +0xaafd +// -0.087162 +0xad94 +// 0.124262 +0x2ff4 +// -0.062212 +0xabf7 +// -0.210738 +0xb2be +// 0.030733 +0x27de +// -0.267935 +0xb449 +// 0.137886 +0x306a +// 0.174819 +0x3198 +// 0.253876 +0x3410 +// -0.105802 +0xaec5 +// -0.406638 +0xb682 +// 0.213612 +0x32d6 +// 0.058236 +0x2b74 +// 0.020614 +0x2547 +// -0.074252 +0xacc1 +// 0.121472 +0x2fc6 +// -0.069779 +0xac77 +// -0.008442 +0xa053 +// 0.032252 +0x2821 +// 0.191520 +0x3221 +// 0.001709 +0x1700 +// -0.058164 +0xab72 +// 0.700069 +0x399a +// 0.004937 +0x1d0e +// 0.118025 +0x2f8e +// -0.132788 +0xb040 +// 0.013659 +0x22fe +// -0.001693 +0x96ef +// 0.038905 +0x28fb +// -0.099067 +0xae57 +// 0.226576 +0x3340 +// -0.242602 +0xb3c3 +// -0.376672 +0xb607 +// 0.107153 +0x2edc +// -0.309924 +0xb4f5 +// 0.052392 +0x2ab5 +// 0.208680 +0x32ae +// -0.047172 +0xaa0a +// 0.001562 +0x1666 +// 0.048572 +0x2a38 +// -0.206690 +0xb29d +// -0.140159 +0xb07c +// -0.178737 +0xb1b8 +// -0.056021 +0xab2c +// -0.000187 +0x8a20 +// 0.216394 +0x32ed +// 0.629872 +0x390a +// -0.170677 +0xb176 +// -0.079103 +0xad10 +// 0.036609 +0x28b0 +// 0.020980 +0x255f +// -0.122612 +0xafd9 +// -0.195829 +0xb244 +// -0.098335 +0xae4b +// -0.057923 +0xab6a +// 0.021892 +0x259b +// 0.042853 +0x297c +// -0.460119 +0xb75d +// 0.004383 +0x1c7d +// 0.165652 +0x314d +// -0.118095 +0xaf8f +// -0.025847 +0xa69e +// -0.052465 +0xaab7 +// 0.001528 +0x1642 +// 0.030274 +0x27c0 +// -0.012246 +0xa245 +// -0.042030 +0xa961 +// 0.102708 +0x2e93 +// 0.072863 +0x2caa +// -0.092084 +0xade5 +// 0.790814 +0x3a54 +// 0.043586 +0x2994 +// 0.014574 +0x2376 +// -0.141661 +0xb088 +// -0.161668 +0xb12c +// 0.012590 +0x2272 +// 0.575285 +0x389a +// 0.261663 +0x3430 +// 0.061017 +0x2bcf +// 0.391110 +0x3642 +// 0.073420 +0x2cb3 +// 0.033937 +0x2858 +// 0.109012 +0x2efa +// 0.081881 +0x2d3e +// 0.010257 +0x2140 +// 0.119196 +0x2fa1 +// -0.255232 +0xb415 +// -0.118950 +0xaf9d +// 0.057566 +0x2b5e +// 0.031641 +0x280d +// 0.006775 +0x1ef0 +// -0.001878 +0x97b1 +// -0.138917 +0xb072 +// 0.067673 +0x2c55 +// 0.508051 +0x3810 +// -0.049036 +0xaa47 +// 0.100480 +0x2e6e +// -0.142058 +0xb08c +// 0.588600 +0x38b5 +// -0.018600 +0xa4c3 +// -0.058295 +0xab76 +// -0.221662 +0xb318 +// 0.269287 +0x344f +// 0.094300 +0x2e09 +// -0.060646 +0xabc3 +// 0.212131 +0x32ca +// 0.033233 +0x2841 +// -0.145209 +0xb0a6 +// 0.038552 +0x28ef +// 0.043082 +0x2984 +// -0.011186 +0xa1ba +// -0.088804 +0xadaf +// 0.027398 +0x2704 +// -0.301775 +0xb4d4 +// -0.091765 +0xaddf +// -0.103453 +0xae9f +// 0.145169 +0x30a5 +// -0.208541 +0xb2ac +// 0.483423 +0x37bc +// -0.087517 +0xad9a +// -0.194060 +0xb236 +// 0.225934 +0x333b +// -0.071764 +0xac98 +// 0.060235 +0x2bb6 +// 0.003883 +0x1bf4 +// -0.081013 +0xad2f +// -0.318823 +0xb51a +// -0.022293 +0xa5b5 +// 0.205879 +0x3297 +// -0.147551 +0xb0b9 +// -0.032407 +0xa826 +// -0.103506 +0xaea0 +// 0.076625 +0x2ce7 +// 0.065655 +0x2c34 +// 0.055085 +0x2b0d +// -0.028121 +0xa733 +// -0.035530 +0xa88c +// -0.103893 +0xaea6 +// -0.066699 +0xac45 +// -0.080679 +0xad2a +// -0.038599 +0xa8f1 +// -0.200447 +0xb26a +// 0.799488 +0x3a65 +// -0.162741 +0xb135 +// 0.106260 +0x2ecd +// 0.282169 +0x3484 +// -0.027517 +0xa70b +// -0.214899 +0xb2e0 +// -0.265792 +0xb441 +// 0.235549 +0x338a +// 0.057909 +0x2b6a +// -0.122730 +0xafdb +// -0.096296 +0xae2a +// -0.145515 +0xb0a8 +// -0.071964 +0xac9b +// -0.076301 +0xace2 +// 0.352627 +0x35a4 +// -0.089283 +0xadb7 +// 0.028936 +0x2768 +// 0.144717 +0x30a2 +// 0.145910 +0x30ab +// -0.338349 +0xb56a +// -0.067868 +0xac58 +// -0.127745 +0xb016 +// 0.523967 +0x3831 +// 0.253651 +0x340f +// -0.193373 +0xb230 +// -0.331960 +0xb550 +// 0.090934 +0x2dd2 +// 0.096734 +0x2e31 +// 0.223492 +0x3327 +// 0.193045 +0x322d +// 0.324506 +0x3531 +// -0.170571 +0xb175 +// 0.323954 +0x352f +// 0.167083 +0x3159 +// 0.114459 +0x2f53 +// 0.091025 +0x2dd3 +// -0.038688 +0xa8f4 +// 0.177184 +0x31ab +// -0.029753 +0xa79e +// -0.031110 +0xa7f7 +// 0.403395 +0x3674 +// 0.202609 +0x327c +// -0.021282 +0xa573 +// -0.052854 +0xaac4 +// -0.137586 +0xb067 +// -0.322158 +0xb528 +// 0.307304 +0x34eb +// 0.027706 +0x2718 +// -0.014871 +0xa39d +// -0.267458 +0xb448 +// -0.341340 +0xb576 +// 0.058081 +0x2b6f +// 0.023732 +0x2613 +// 0.199549 +0x3263 +// 0.082572 +0x2d49 +// 0.372427 +0x35f5 +// 0.029976 +0x27ac +// 0.069100 +0x2c6c +// -0.010467 +0xa15c +// 0.058656 +0x2b82 +// -0.411197 +0xb694 +// -0.203414 +0xb282 +// 0.064455 +0x2c20 +// -0.026511 +0xa6c9 +// -0.073122 +0xacae +// -0.297443 +0xb4c2 +// 0.468328 +0x377e +// -0.052924 +0xaac6 +// 0.246348 +0x33e2 +// 0.143208 +0x3095 +// 0.245810 +0x33de +// -0.043039 +0xa982 +// -0.216659 +0xb2ef +// -0.072259 +0xaca0 +// 0.526837 +0x3837 +// -0.111144 +0xaf1d +// 0.245614 +0x33dc +// -0.089560 +0xadbb +// -0.038568 +0xa8f0 +// 0.083630 +0x2d5a +// -0.325415 +0xb535 +// -0.157792 +0xb10d +// -0.356698 +0xb5b5 +// 0.011619 +0x21f3 +// -0.137705 +0xb068 +// 0.121957 +0x2fce +// -0.098423 +0xae4d +// -0.217271 +0xb2f4 +// 0.020905 +0x255a +// -0.374657 +0xb5ff +// -0.122703 +0xafda +// 0.107979 +0x2ee9 +// -0.049104 +0xaa49 +// 0.105129 +0x2eba +// 0.120399 +0x2fb5 +// 0.107464 +0x2ee1 +// -0.184938 +0xb1eb +// -0.334005 +0xb558 +// -0.162346 +0xb132 +// 0.221706 +0x3318 +// 0.391716 +0x3644 +// 0.387223 +0x3632 +// -0.026834 +0xa6df +// 0.031239 +0x27ff +// 0.061443 +0x2bdd +// -0.087784 +0xad9e +// 0.071406 +0x2c92 +// -0.128853 +0xb020 +// 0.211409 +0x32c4 +// 0.123953 +0x2fef +// -0.078868 +0xad0c +// 0.478514 +0x37a8 +// -0.128417 +0xb01c +// -0.209313 +0xb2b3 +// -0.087080 +0xad93 +// -0.200575 +0xb26b +// -0.157733 +0xb10c +// -0.403106 +0xb673 +// -0.260811 +0xb42c +// 0.064702 +0x2c24 +// -0.180825 +0xb1c9 +// -0.051299 +0xaa91 +// 0.250438 +0x3402 +// 0.198470 +0x325a +// -0.410613 +0xb692 +// -0.009649 +0xa0f1 +// -0.173236 +0xb18b +// 0.160014 +0x311f +// -0.239827 +0xb3ad +// -0.056094 +0xab2e +// -0.119979 +0xafae +// -0.168415 +0xb164 +// 0.191936 +0x3224 +// 0.081141 +0x2d31 +// -0.045700 +0xa9d9 +// 0.241086 +0x33b7 +// -0.038005 +0xa8dd +// -0.077515 +0xacf6 +// -0.405163 +0xb67c +// -0.153469 +0xb0e9 +// -0.354786 +0xb5ad +// 0.242333 +0x33c1 +// -0.015451 +0xa3e9 +// 0.241024 +0x33b6 +// -0.114350 +0xaf52 +// -0.565494 +0xb886 +// 0.318789 +0x351a +// 0.269504 +0x3450 +// -0.123553 +0xafe8 +// -0.088189 +0xada5 +// -0.224317 +0xb32e +// -0.243798 +0xb3cd +// 0.011820 +0x220d +// -0.131262 +0xb033 +// 0.093577 +0x2dfd +// 0.018507 +0x24bd +// 0.177582 +0x31af +// -0.113951 +0xaf4b +// 0.049488 +0x2a56 +// 0.047017 +0x2a05 +// 0.020738 +0x254f +// -0.132374 +0xb03c +// 0.091142 +0x2dd5 +// -0.066119 +0xac3b +// 0.313813 +0x3505 +// -0.155814 +0xb0fc +// 0.316053 +0x350f +// -0.170984 +0xb179 +// 0.073187 +0x2caf +// -0.277778 +0xb472 +// -0.047303 +0xaa0e +// -0.380370 +0xb616 +// -0.013129 +0xa2b9 +// 0.328519 +0x3542 +// 0.170239 +0x3173 +// -0.166505 +0xb154 +// -0.170633 +0xb176 +// -0.150100 +0xb0ce +// 0.192416 +0x3228 +// 0.121663 +0x2fc9 +// 0.347357 +0x358f +// 0.081048 +0x2d30 +// 0.201511 +0x3273 +// 0.236192 +0x338f +// -0.118792 +0xaf9a +// 0.103998 +0x2ea8 +// -0.266004 +0xb442 +// 0.049393 +0x2a52 +// -0.031229 +0xa7ff +// -0.286962 +0xb497 +// 0.103335 +0x2e9d +// 0.070772 +0x2c88 +// -0.253624 +0xb40f +// 0.199561 +0x3263 +// -0.104611 +0xaeb2 +// -0.371748 +0xb5f3 +// -0.500508 +0xb801 +// 0.384243 +0x3626 +// -0.006115 +0x9e43 +// -0.156951 +0xb106 +// -0.314416 +0xb508 +// -0.050117 +0xaa6a +// -0.043910 +0xa99f +// 0.002137 +0x1861 +// -0.103068 +0xae99 +// -0.062900 +0xac07 +// -0.034610 +0xa86e +// -0.147607 +0xb0b9 +// 0.055252 +0x2b13 +// -0.270556 +0xb454 +// -0.399051 +0xb663 +// -0.038002 +0xa8dd +// 0.011588 +0x21ef +// -0.239818 +0xb3ad +// -0.016883 +0xa452 +// 0.226135 +0x333c +// 0.172602 +0x3186 +// -0.166240 +0xb152 +// -0.281027 +0xb47f +// 0.243815 +0x33cd +// 0.321652 +0x3525 +// 0.192761 +0x322b +// 0.418975 +0x36b4 +// 0.084496 +0x2d68 +// 0.025448 +0x2684 +// 0.001107 +0x1489 +// -0.002097 +0x984b +// -0.123366 +0xafe5 +// 0.279065 +0x3477 +// 0.047781 +0x2a1e +// 0.197010 +0x324e +// -0.140894 +0xb082 +// 0.310930 +0x34fa +// 0.087489 +0x2d99 +// -0.048962 +0xaa44 +// -0.001622 +0x96a4 +// -0.214148 +0xb2da +// 0.056742 +0x2b43 +// 0.062327 +0x2bfa +// 0.125148 +0x3001 +// 0.012588 +0x2272 +// -0.358556 +0xb5bd +// 0.218171 +0x32fb +// -0.080190 +0xad22 +// -0.357513 +0xb5b8 +// 0.068947 +0x2c6a +// -0.297341 +0xb4c2 +// -0.226105 +0xb33c +// 0.416892 +0x36ac +// -0.165832 +0xb14e +// -0.182133 +0xb1d4 +// -0.119965 +0xafad +// -0.314655 +0xb509 +// 0.045448 +0x29d1 +// 0.115719 +0x2f68 +// 0.283655 +0x348a +// -0.177734 +0xb1b0 +// -0.012193 +0xa23e +// -0.085510 +0xad79 +// -0.077763 +0xacfa +// -0.251761 +0xb407 +// -0.236265 +0xb38f +// -0.000911 +0x9376 +// 0.031267 +0x2801 +// -0.177677 +0xb1b0 +// -0.116887 +0xaf7b +// -0.001101 +0x9483 +// -0.194392 +0xb238 +// 0.123931 +0x2fee +// 0.256085 +0x3419 +// 0.720405 +0x39c3 +// 0.096491 +0x2e2d +// -0.133331 +0xb044 +// -0.041041 +0xa941 +// -0.041433 +0xa94e +// -0.032711 +0xa830 +// -0.162381 +0xb132 +// -0.104551 +0xaeb1 +// -0.231695 +0xb36a +// 0.380381 +0x3616 +// -0.052914 +0xaac6 +// -0.196462 +0xb249 +// 0.308481 +0x34f0 +// -0.036496 +0xa8ac +// -0.132462 +0xb03d +// 0.025745 +0x2697 +// 0.161041 +0x3127 +// -0.380543 +0xb617 +// 0.274637 +0x3465 +// -0.173001 +0xb189 +// -0.273604 +0xb461 +// 0.312119 +0x34fe +// 0.233874 +0x337c +// -0.047069 +0xaa06 +// -0.310933 +0xb4fa +// 0.031530 +0x2809 +// 0.002304 +0x18b8 +// -0.044500 +0xa9b2 +// 0.162355 +0x3132 +// 0.057343 +0x2b57 +// 0.336289 +0x3561 +// -0.157511 +0xb10a +// 0.171447 +0x317c +// 0.516104 +0x3821 +// -0.076310 +0xace2 +// -0.107553 +0xaee2 +// 0.247201 +0x33e9 +// 0.162391 +0x3132 +// 0.109267 +0x2efe +// 0.099968 +0x2e66 +// 0.255652 +0x3417 +// -0.079879 +0xad1d +// -0.001816 +0x9770 +// -0.389168 +0xb63a +// 0.086548 +0x2d8a +// 0.028457 +0x2749 +// 0.036044 +0x289d +// 0.103523 +0x2ea0 +// -0.175653 +0xb19f +// -0.230925 +0xb364 +// 0.273961 +0x3462 +// 0.166136 +0x3151 +// -0.095881 +0xae23 +// 0.346805 +0x358d +// 0.115323 +0x2f61 +// 0.245342 +0x33da +// 0.000978 +0x1401 +// 0.132847 +0x3040 +// 0.128275 +0x301b +// 0.031466 +0x2807 +// 0.147110 +0x30b5 +// -0.012362 +0xa254 +// 0.301706 +0x34d4 +// -0.259612 +0xb427 +// 0.261177 +0x342e +// 0.300292 +0x34ce +// 0.303795 +0x34dc +// -0.270840 +0xb455 +// 0.184081 +0x31e4 +// -0.024220 +0xa633 +// 0.025668 +0x2692 +// -0.300518 +0xb4cf +// 0.177931 +0x31b2 +// 0.148953 +0x30c4 +// -0.181157 +0xb1cc +// -0.234052 +0xb37d +// -0.405082 +0xb67b +// 0.345493 +0x3587 +// 0.010036 +0x2123 +// 0.228403 +0x334f +// 0.288916 +0x349f +// 0.213231 +0x32d3 +// 0.220109 +0x330b +// 0.172014 +0x3181 +// 0.212425 +0x32cc +// 0.049038 +0x2a47 +// -0.164197 +0xb141 +// -0.193579 +0xb232 +// 0.051250 +0x2a8f +// 0.090992 +0x2dd3 +// 0.270545 +0x3454 +// -0.154619 +0xb0f3 +// 0.077034 +0x2cee +// -0.072214 +0xac9f +// 0.125292 +0x3002 +// 0.177473 +0x31ae +// 0.186876 +0x31fb +// 0.208635 +0x32ad +// -0.317068 +0xb513 +// -0.001542 +0x9650 +// -0.015597 +0xa3fc +// 0.059024 +0x2b8e +// -0.321425 +0xb525 +// 0.134982 +0x3052 +// 0.284916 +0x348f +// -0.101841 +0xae85 +// 0.466126 +0x3775 +// -0.246487 +0xb3e3 +// 0.172460 +0x3185 +// 0.091421 +0x2dda +// 0.001726 +0x1712 +// 0.250864 +0x3404 +// -0.173556 +0xb18e +// -0.019791 +0xa511 +// -0.333249 +0xb555 +// 0.281274 +0x3480 +// -0.096575 +0xae2e +// -0.023182 +0xa5ef +// -0.370141 +0xb5ec +// -0.096063 +0xae26 +// 0.128792 +0x301f +// 0.103712 +0x2ea3 +// 0.312440 +0x3500 +// 0.033694 +0x2850 +// -0.105603 +0xaec2 +// -0.183570 +0xb1e0 +// -0.085264 +0xad75 +// 0.572429 +0x3894 +// 0.071269 +0x2c90 +// 0.044286 +0x29ab +// -0.007068 +0x9f3d +// -0.223571 +0xb327 +// -0.049262 +0xaa4e +// -0.066909 +0xac48 +// -0.255549 +0xb417 +// 0.101527 +0x2e7f +// 0.120334 +0x2fb4 +// 0.073459 +0x2cb4 +// -0.078091 +0xacff +// 0.558963 +0x3879 +// 0.081228 +0x2d33 +// -0.009567 +0xa0e6 +// 0.127323 +0x3013 +// 0.142666 +0x3091 +// 0.013850 +0x2317 +// -0.216781 +0xb2f0 +// 0.015347 +0x23dc +// -0.101494 +0xae7f +// 0.301141 +0x34d1 +// 0.032346 +0x2824 +// 0.075485 +0x2cd5 +// -0.002386 +0x98e3 +// 0.142817 +0x3092 +// -0.226298 +0xb33e +// 0.071801 +0x2c98 +// -0.252827 +0xb40c +// -0.123199 +0xafe2 +// 0.265708 +0x3440 +// -0.231708 +0xb36a +// -0.359569 +0xb5c1 +// 0.398459 +0x3660 +// -0.050000 +0xaa66 +// 0.219451 +0x3306 +// 0.344669 +0x3584 +// 0.033242 +0x2841 +// -0.004432 +0x9c8a +// 0.043391 +0x298e +// 0.323048 +0x352b +// 0.180583 +0x31c7 +// -0.078182 +0xad01 +// 0.288946 +0x34a0 +// -0.221240 +0xb314 +// 0.176953 +0x31aa +// -0.226654 +0xb341 +// 0.215395 +0x32e5 +// 0.128837 +0x301f +// -0.285748 +0xb492 +// 0.021056 +0x2564 +// 0.000912 +0x1378 +// -0.398417 +0xb660 +// 0.098600 +0x2e4f +// -0.072520 +0xaca4 +// 0.448177 +0x372c +// 0.136452 +0x305e +// -0.003904 +0x9bff +// 0.090624 +0x2dcd +// 0.083093 +0x2d51 +// 0.331730 +0x354f +// -0.135779 +0xb058 +// -0.237631 +0xb39b +// 0.088233 +0x2da6 +// -0.203780 +0xb285 +// -0.030226 +0xa7bd +// 0.013857 +0x2318 +// -0.395978 +0xb656 +// -0.144011 +0xb09c +// -0.167469 +0xb15c +// 0.060620 +0x2bc2 +// -0.139915 +0xb07a +// -0.030341 +0xa7c4 +// 0.462355 +0x3766 +// 0.034222 +0x2861 +// -0.161929 +0xb12f +// -0.130170 +0xb02a +// 0.004767 +0x1ce2 +// -0.089723 +0xadbe +// 0.023401 +0x25fe +// -0.009611 +0xa0ec +// 0.105080 +0x2eba +// 0.110134 +0x2f0c +// -0.107961 +0xaee9 +// 0.651861 +0x3937 +// -0.030501 +0xa7cf +// 0.010563 +0x2168 +// 0.178485 +0x31b6 +// -0.106346 +0xaece +// -0.107212 +0xaedd +// 0.082973 +0x2d4f +// 0.024595 +0x264c +// -0.156651 +0xb103 +// -0.204887 +0xb28e +// -0.113929 +0xaf4b +// 0.089498 +0x2dba +// 0.570868 +0x3891 +// -0.000414 +0x8ec7 +// 0.092206 +0x2de7 +// 0.050001 +0x2a66 +// 0.091527 +0x2ddc +// 0.132242 +0x303b +// -0.213090 +0xb2d2 +// -0.064498 +0xac21 +// 0.294137 +0x34b5 +// 0.271097 +0x3456 +// 0.152976 +0x30e5 +// -0.329447 +0xb545 +// 0.376125 +0x3605 +// -0.067825 +0xac57 +// 0.317862 +0x3516 +// 0.130387 +0x302c +// 0.038027 +0x28de +// 0.196521 +0x324a +// -0.078548 +0xad07 +// -0.024838 +0xa65c +// -0.103797 +0xaea5 +// 0.148301 +0x30bf +// 0.025090 +0x266c +// 0.009860 +0x210c +// -0.241674 +0xb3bc +// -0.045615 +0xa9d7 +// -0.316373 +0xb510 +// 0.038419 +0x28eb +// -0.105614 +0xaec2 +// -0.402169 +0xb66f +// 0.202699 +0x327d +// -0.227948 +0xb34b +// 0.172768 +0x3187 +// 0.297961 +0x34c4 +// 0.222220 +0x331c +// -0.089215 +0xadb6 +// 0.444579 +0x371d +// -0.000708 +0x91cd +// 0.203180 +0x3280 +// -0.435005 +0xb6f6 +// 0.080888 +0x2d2d +// 0.126525 +0x300c +// 0.035756 +0x2894 +// 0.056274 +0x2b34 +// 0.216975 +0x32f1 +// -0.214247 +0xb2db +// -0.255911 +0xb418 +// 0.286884 +0x3497 +// 0.242841 +0x33c5 +// 0.245825 +0x33de +// -0.268287 +0xb44b +// 0.237584 +0x339a +// 0.231369 +0x3367 +// 0.402228 +0x3670 +// -0.156777 +0xb104 +// -0.072053 +0xac9d +// -0.019960 +0xa51c +// 0.036291 +0x28a5 +// 0.082995 +0x2d50 +// 0.014113 +0x233a +// -0.068916 +0xac69 +// -0.485550 +0xb7c5 +// -0.251618 +0xb407 +// -0.192668 +0xb22a +// -0.098454 +0xae4d +// -0.267278 +0xb447 +// 0.084550 +0x2d69 +// -0.164737 +0xb146 +// 0.131762 +0x3037 +// -0.096289 +0xae2a +// 0.215714 +0x32e7 +// 0.335316 +0x355d +// -0.086775 +0xad8e +// 0.323130 +0x352c +// 0.066494 +0x2c41 +// -0.145343 +0xb0a7 +// -0.062328 +0xabfa +// -0.285360 +0xb491 +// -0.287517 +0xb49a +// -0.020689 +0xa54c +// 0.037381 +0x28c9 +// 0.057612 +0x2b60 +// -0.217774 +0xb2f8 +// -0.045516 +0xa9d3 +// -0.099314 +0xae5b +// -0.162771 +0xb135 +// 0.210853 +0x32bf +// -0.052012 +0xaaa8 +// -0.025159 +0xa671 +// -0.216720 +0xb2ef +// -0.159863 +0xb11e +// -0.208946 +0xb2b0 +// 0.210367 +0x32bb +// -0.318148 +0xb517 +// 0.164516 +0x3144 +// 0.310512 +0x34f8 +// 0.110438 +0x2f11 +// -0.089857 +0xadc0 +// 0.203343 +0x3282 +// -0.065179 +0xac2c +// 0.310309 +0x34f7 +// -0.318912 +0xb51a +// -0.201822 +0xb275 +// 0.464629 +0x376f +// 0.055793 +0x2b24 +// 0.071039 +0x2c8c +// 0.430814 +0x36e5 +// -0.162733 +0xb135 +// 0.096374 +0x2e2b +// -0.153673 +0xb0eb +// -0.223957 +0xb32b +// 0.338020 +0x3569 +// -0.390320 +0xb63f +// 0.090042 +0x2dc3 +// 0.019563 +0x2502 +// -0.147969 +0xb0bc +// 0.140617 +0x3080 +// 0.226286 +0x333e +// 0.033127 +0x283d +// 0.333583 +0x3556 +// 0.027969 +0x2729 +// 0.249230 +0x33fa +// 0.068140 +0x2c5c +// 0.017811 +0x248f +// 0.239943 +0x33ae +// 0.159135 +0x3118 +// 0.062755 +0x2c04 +// -0.177320 +0xb1ad +// 0.195896 +0x3245 +// -0.187043 +0xb1fc +// -0.176644 +0xb1a7 +// -0.107141 +0xaedb +// -0.076338 +0xace3 +// -0.193978 +0xb235 +// 0.373544 +0x35fa +// 0.107285 +0x2ede +// 0.045332 +0x29cd +// -0.477096 +0xb7a2 +// -0.210785 +0xb2bf +// -0.201116 +0xb270 +// -0.190852 +0xb21b +// -0.079213 +0xad12 +// -0.020367 +0xa537 +// 0.345829 +0x3589 +// -0.070038 +0xac7c +// -0.257779 +0xb420 +// -0.045743 +0xa9db +// -0.207232 +0xb2a2 +// -0.022521 +0xa5c4 +// -0.153304 +0xb0e8 +// -0.329223 +0xb544 +// 0.042152 +0x2965 +// 0.097918 +0x2e44 +// 0.086947 +0x2d91 +// 0.083931 +0x2d5f +// -0.653854 +0xb93b +// -0.078236 +0xad02 +// -0.110662 +0xaf15 +// 0.130320 +0x302c +// 0.061247 +0x2bd7 +// -0.076714 +0xace9 +// 0.042480 +0x2970 +// -0.025729 +0xa696 +// -0.083600 +0xad5a +// -0.238944 +0xb3a5 +// -0.016911 +0xa454 +// 0.244425 +0x33d2 +// 0.118124 +0x2f8f +// 0.157270 +0x3108 +// 0.369365 +0x35e9 +// -0.208360 +0xb2ab +// -0.007086 +0x9f42 +// 0.104129 +0x2eaa +// 0.358124 +0x35bb +// 0.137983 +0x306a +// -0.204239 +0xb289 +// 0.286680 +0x3496 +// 0.175399 +0x319d +// -0.037598 +0xa8d0 +// 0.076844 +0x2ceb +// 0.014732 +0x238b +// -0.119848 +0xafac +// -0.075204 +0xacd0 +// 0.264123 +0x343a +// -0.398780 +0xb661 +// 0.179159 +0x31bc +// 0.288857 +0x349f +// 0.240223 +0x33b0 +// 0.003423 +0x1b03 +// 0.028418 +0x2746 +// -0.076538 +0xace6 +// -0.379324 +0xb612 +// 0.277110 +0x346f +// -0.288146 +0xb49c +// -0.012141 +0xa237 +// -0.231032 +0xb365 +// -0.002885 +0x99e8 +// 0.227677 +0x3349 +// -0.090618 +0xadcd +// 0.275157 +0x3467 +// 0.043179 +0x2987 +// -0.095398 +0xae1b +// -0.392660 +0xb648 +// -0.079394 +0xad15 +// 0.149676 +0x30ca +// 0.049024 +0x2a46 +// -0.174702 +0xb197 +// 0.094634 +0x2e0e +// 0.152788 +0x30e4 +// 0.165646 +0x314d +// -0.017329 +0xa470 +// -0.117316 +0xaf82 +// -0.270004 +0xb452 +// 0.286321 +0x3495 +// -0.239717 +0xb3ac +// 0.041250 +0x2948 +// -0.042972 +0xa980 +// 0.428997 +0x36dd +// 0.111806 +0x2f28 +// -0.148060 +0xb0bd +// -0.425609 +0xb6cf +// 0.360854 +0x35c6 +// -0.056316 +0xab35 +// 0.050885 +0x2a83 +// 0.061793 +0x2be9 +// -0.047273 +0xaa0d +// -0.076451 +0xace5 +// 0.190391 +0x3218 +// 0.000459 +0xf86 +// -0.061532 +0xabe0 +// -0.434065 +0xb6f2 +// -0.550056 +0xb867 +// 0.277316 +0x3470 +// 0.054183 +0x2aef +// -0.087527 +0xad9a +// -0.140773 +0xb081 +// -0.225046 +0xb334 +// 0.184879 +0x31eb +// 0.167772 +0x315e +// 0.026003 +0x26a8 +// 0.111135 +0x2f1d +// -0.149755 +0xb0cb +// 0.078802 +0x2d0b +// -0.243231 +0xb3c9 +// 0.131933 +0x3039 +// 0.346319 +0x358b +// 0.004816 +0x1cef +// -0.139191 +0xb074 +// -0.334568 +0xb55a +// 0.076938 +0x2ced +// 0.079207 +0x2d12 +// -0.061586 +0xabe2 +// -0.099565 +0xae5f +// 0.038953 +0x28fc +// 0.076003 +0x2cdd +// -0.100428 +0xae6d +// 0.106658 +0x2ed3 +// 0.169807 +0x316f +// -0.420957 +0xb6bc +// -0.302808 +0xb4d8 +// 0.286273 +0x3495 +// -0.251536 +0xb406 +// -0.311768 +0xb4fd +// -0.270241 +0xb453 +// -0.038661 +0xa8f3 +// -0.141339 +0xb086 +// 0.204974 +0x328f +// -0.161319 +0xb12a +// 0.106485 +0x2ed1 +// 0.333086 +0x3554 +// 0.061101 +0x2bd2 +// -0.081707 +0xad3b +// -0.084433 +0xad67 +// -0.045385 +0xa9cf +// -0.463898 +0xb76c +// -0.019526 +0xa500 +// 0.017060 +0x245e +// -0.137051 +0xb063 +// 0.381190 +0x3619 +// -0.356610 +0xb5b5 +// -0.239858 +0xb3ad +// 0.204119 +0x3288 +// 0.167497 +0x315c +// 0.244294 +0x33d1 +// -0.211838 +0xb2c7 +// 0.016186 +0x2425 +// -0.094125 +0xae06 +// 0.066364 +0x2c3f +// -0.230489 +0xb360 +// 0.162795 +0x3136 +// -0.091562 +0xaddc +// 0.267211 +0x3446 +// 0.154608 +0x30f3 +// 0.059353 +0x2b99 +// 0.087103 +0x2d93 +// 0.135986 +0x305a +// -0.051371 +0xaa93 +// -0.075924 +0xacdc +// -0.371763 +0xb5f3 +// -0.113889 +0xaf4a +// -0.072408 +0xaca2 +// 0.105047 +0x2eb9 +// -0.070145 +0xac7d +// 0.340833 +0x3574 +// 0.011449 +0x21dd +// -0.009595 +0xa0ea +// -0.218484 +0xb2fe +// -0.349663 +0xb598 +// 0.175715 +0x319f +// -0.024251 +0xa635 +// 0.060174 +0x2bb4 +// 0.601858 +0x38d1 +// -0.047136 +0xaa09 +// -0.131062 +0xb032 +// 0.040210 +0x2926 +// 0.038899 +0x28fb +// -0.007571 +0x9fc1 +// 0.246115 +0x33e0 +// -0.512757 +0xb81a +// -0.336289 +0xb561 +// 0.224777 +0x3331 +// -0.332635 +0xb552 +// -0.008878 +0xa08c +// -0.109056 +0xaefb +// -0.045222 +0xa9ca +// -0.109190 +0xaefd +// 0.298906 +0x34c8 +// -0.114114 +0xaf4e +// 0.150378 +0x30d0 +// 0.151235 +0x30d7 +// 0.015910 +0x2413 +// -0.118955 +0xaf9d +// 0.149884 +0x30cc +// -0.348452 +0xb593 +// -0.211660 +0xb2c6 +// 0.070729 +0x2c87 +// -0.176174 +0xb1a3 +// -0.240248 +0xb3b0 +// 0.103586 +0x2ea1 +// -0.173555 +0xb18e +// -0.037689 +0xa8d3 +// 0.291969 +0x34ac +// -0.323686 +0xb52e +// 0.275271 +0x3468 +// 0.097434 +0x2e3c +// 0.252397 +0x340a +// -0.191377 +0xb220 +// 0.194711 +0x323b +// 0.046195 +0x29ea +// -0.372035 +0xb5f4 +// -0.216975 +0xb2f1 +// 0.042772 +0x297a +// 0.048192 +0x2a2b +// -0.236135 +0xb38e +// -0.237592 +0xb39a +// 0.041632 +0x2954 +// -0.279674 +0xb47a +// 0.265735 +0x3440 +// -0.029913 +0xa7a8 +// -0.088852 +0xadb0 +// 0.085093 +0x2d72 +// 0.123208 +0x2fe3 +// -0.263330 +0xb437 +// 0.234400 +0x3380 +// 0.158721 +0x3114 +// 0.141077 +0x3084 +// -0.266214 +0xb442 +// 0.234793 +0x3383 +// -0.004963 +0x9d15 +// -0.241522 +0xb3bb +// -0.215391 +0xb2e4 +// 0.438811 +0x3705 +// 0.247244 +0x33e9 +// 0.117176 +0x2f80 +// 0.345751 +0x3588 +// 0.180559 +0x31c7 +// -0.205516 +0xb294 +// -0.094552 +0xae0d +// 0.111934 +0x2f2a +// -0.081227 +0xad33 +// -0.115073 +0xaf5d +// -0.257777 +0xb420 +// -0.033721 +0xa851 +// 0.028861 +0x2763 +// 0.049164 +0x2a4b +// -0.374182 +0xb5fd +// 0.475183 +0x379a +// 0.114060 +0x2f4d +// -0.285829 +0xb493 +// -0.061365 +0xabdb +// -0.174668 +0xb197 +// -0.149387 +0xb0c8 +// 0.089656 +0x2dbd +// 0.021798 +0x2595 +// -0.038535 +0xa8ef +// -0.181102 +0xb1cc +// -0.179697 +0xb1c0 +// -0.335163 +0xb55d +// -0.012404 +0xa25a +// -0.009831 +0xa109 +// 0.045832 +0x29de +// 0.003321 +0x1acd +// 0.420570 +0x36bb +// -0.237348 +0xb398 +// -0.235598 +0xb38a +// -0.120577 +0xafb8 +// -0.092868 +0xadf2 +// 0.254138 +0x3411 +// 0.176135 +0x31a3 +// -0.251123 +0xb405 +// 0.011414 +0x21d8 +// -0.297374 +0xb4c2 +// -0.241279 +0xb3b9 +// -0.166432 +0xb153 +// 0.043193 +0x2987 +// 0.276057 +0x346b +// -0.163775 +0xb13e +// 0.224115 +0x332c +// -0.005014 +0x9d22 +// 0.251615 +0x3407 +// -0.318554 +0xb519 +// 0.344433 +0x3583 +// 0.224367 +0x332e +// -0.043163 +0xa986 +// 0.200605 +0x326b +// -0.102633 +0xae92 +// 0.169555 +0x316d +// -0.270905 +0xb456 +// -0.225401 +0xb336 +// -0.166410 +0xb153 +// -0.134862 +0xb051 +// 0.131543 +0x3036 +// 0.082544 +0x2d48 +// 0.297928 +0x34c4 +// 0.038457 +0x28ec +// -0.250085 +0xb400 +// 0.013764 +0x230c +// -0.326353 +0xb539 +// 0.149156 +0x30c6 +// -0.179791 +0xb1c1 +// -0.366194 +0xb5dc +// 0.063798 +0x2c15 +// -0.448298 +0xb72c +// 0.293082 +0x34b0 +// 0.214866 +0x32e0 +// 0.246960 +0x33e7 +// -0.081101 +0xad31 +// -0.017980 +0xa49a +// -0.081129 +0xad31 +// 0.133583 +0x3046 +// -0.040331 +0xa92a +// -0.413013 +0xb69c +// -0.047942 +0xaa23 +// -0.217236 +0xb2f4 +// -0.291744 +0xb4ab +// -0.366189 +0xb5dc +// -0.234574 +0xb382 +// -0.178509 +0xb1b6 +// -0.059772 +0xaba7 +// 0.053551 +0x2adb +// -0.246396 +0xb3e2 +// -0.169597 +0xb16d +// -0.099415 +0xae5d +// 0.220273 +0x330c +// -0.092966 +0xadf3 +// -0.107464 +0xaee1 +// 0.011941 +0x221d +// 0.018061 +0x24a0 +// -0.013323 +0xa2d2 +// 0.511253 +0x3817 +// -0.160730 +0xb125 +// 0.024773 +0x2658 +// 0.038384 +0x28ea +// 0.096818 +0x2e32 +// -0.046888 +0xaa00 +// 0.126272 +0x300a +// -0.261705 +0xb430 +// 0.093570 +0x2dfd +// -0.055748 +0xab23 +// -0.012356 +0xa254 +// -0.156548 +0xb102 +// -0.069252 +0xac6f +// 0.228073 +0x334c +// -0.115788 +0xaf69 +// -0.214117 +0xb2da +// -0.195411 +0xb241 +// -0.131707 +0xb037 +// -0.017860 +0xa492 +// 0.054565 +0x2afc +// -0.165054 +0xb148 +// 0.034438 +0x2868 +// -0.189613 +0xb211 +// -0.190084 +0xb215 +// 0.654693 +0x393d +// 0.265184 +0x343e +// 0.083878 +0x2d5e +// 0.308957 +0x34f1 +// -0.210963 +0xb2c0 +// -0.200404 +0xb26a +// 0.513656 +0x381c +// 0.151654 +0x30da +// -0.091417 +0xadda +// -0.093817 +0xae01 +// 0.163659 +0x313d +// 0.473273 +0x3793 +// 0.083155 +0x2d52 +// -0.317401 +0xb514 +// 0.030624 +0x27d7 +// -0.122063 +0xafd0 +// 0.056549 +0x2b3d +// 0.046717 +0x29fb +// -0.016961 +0xa458 +// 0.078953 +0x2d0e +// 0.129510 +0x3025 +// -0.124572 +0xaff9 +// -0.129023 +0xb021 +// -0.055863 +0xab27 +// 0.413998 +0x36a0 +// -0.012154 +0xa239 +// 0.039546 +0x2910 +// -0.431118 +0xb6e6 +// 0.152640 +0x30e2 +// -0.107828 +0xaee7 +// 0.001036 +0x143e +// 0.034462 +0x2869 +// 0.278029 +0x3473 +// 0.171102 +0x317a +// 0.263277 +0x3436 +// 0.127561 +0x3015 +// 0.234899 +0x3384 +// -0.119886 +0xafac +// 0.352730 +0x35a5 +// -0.110239 +0xaf0e +// 0.366306 +0x35dc +// 0.069489 +0x2c73 +// -0.251706 +0xb407 +// 0.260348 +0x342a +// 0.244588 +0x33d4 +// 0.163388 +0x313a +// 0.078910 +0x2d0d +// 0.035476 +0x288a +// -0.118625 +0xaf98 +// -0.038944 +0xa8fc +// -0.072890 +0xacaa +// -0.314126 +0xb507 +// 0.138911 +0x3072 +// -0.095998 +0xae25 +// 0.172650 +0x3186 +// -0.012978 +0xa2a5 +// 0.395068 +0x3652 +// -0.173590 +0xb18e +// -0.308032 +0xb4ee +// 0.130941 +0x3031 +// 0.134141 +0x304b +// 0.139071 +0x3073 +// 0.305134 +0x34e2 +// -0.066052 +0xac3a +// -0.219914 +0xb30a +// -0.063469 +0xac10 +// 0.023160 +0x25ee +// 0.025729 +0x2696 +// 0.147248 +0x30b6 +// 0.335316 +0x355d +// -0.038496 +0xa8ed +// 0.028437 +0x2748 +// 0.463120 +0x3769 +// -0.242352 +0xb3c1 +// -0.316759 +0xb511 +// 0.196331 +0x3248 +// 0.275348 +0x3468 +// -0.044216 +0xa9a9 +// -0.149782 +0xb0cb +// -0.031662 +0xa80e +// -0.120004 +0xafae +// -0.077510 +0xacf6 +// -0.306611 +0xb4e8 +// 0.001049 +0x144c +// -0.096028 +0xae25 +// 0.370560 +0x35ee +// -0.153300 +0xb0e8 +// 0.324410 +0x3531 +// 0.296746 +0x34bf +// -0.104733 +0xaeb4 +// -0.039115 +0xa902 +// 0.095697 +0x2e20 +// 0.271847 +0x3459 +// -0.108193 +0xaeed +// -0.329652 +0xb546 +// 0.086507 +0x2d89 +// -0.316759 +0xb511 +// 0.919237 +0x3b5b +// 0.050058 +0x2a68 +// 0.070205 +0x2c7e +// -0.011274 +0xa1c6 +// -0.038189 +0xa8e3 +// -0.008073 +0xa022 +// -0.030597 +0xa7d5 +// -0.019763 +0xa50f +// -0.078176 +0xad01 +// 0.000268 +0xc62 +// -0.024484 +0xa645 +// 0.094481 +0x2e0c +// -0.039086 +0xa901 +// 0.082714 +0x2d4b +// 0.075661 +0x2cd8 +// -0.026703 +0xa6d6 +// -0.009973 +0xa11b +// 0.024399 +0x263f +// 0.069312 +0x2c70 +// -0.027586 +0xa710 +// -0.084051 +0xad61 +// 0.022057 +0x25a5 +// 0.196331 +0x3248 +// 0.050058 +0x2a68 +// 0.968973 +0x3bc0 +// -0.043514 +0xa992 +// 0.006988 +0x1f28 +// 0.023670 +0x260f +// 0.005004 +0x1d20 +// 0.018964 +0x24db +// 0.012249 +0x2246 +// 0.048454 +0x2a34 +// -0.000166 +0x896f +// 0.015175 +0x23c5 +// -0.058560 +0xab7f +// 0.024226 +0x2634 +// -0.051267 +0xaa90 +// -0.046895 +0xaa01 +// 0.016551 +0x243d +// 0.006181 +0x1e54 +// -0.015123 +0xa3be +// -0.042961 +0xa980 +// 0.017098 +0x2461 +// 0.052096 +0x2aab +// -0.013671 +0xa300 +// 0.275348 +0x3468 +// 0.070205 +0x2c7e +// -0.043514 +0xa992 +// 0.938973 +0x3b83 +// 0.009800 +0x2104 +// 0.033197 +0x2840 +// 0.007017 +0x1f30 +// 0.026597 +0x26cf +// 0.017179 +0x2466 +// 0.067955 +0x2c59 +// -0.000233 +0x8b9f +// 0.021283 +0x2573 +// -0.082129 +0xad42 +// 0.033977 +0x2859 +// -0.071900 +0xac9a +// -0.065769 +0xac36 +// 0.023212 +0x25f1 +// 0.008669 +0x2070 +// -0.021210 +0xa56e +// -0.060251 +0xabb6 +// 0.023979 +0x2624 +// 0.073062 +0x2cad +// -0.019173 +0xa4e9 +// -0.044216 +0xa9a9 +// -0.011274 +0xa1c6 +// 0.006988 +0x1f28 +// 0.009800 +0x2104 +// 0.998426 +0x3bfd +// -0.005331 +0x9d75 +// -0.001127 +0x949e +// -0.004271 +0x9c60 +// -0.002759 +0x99a6 +// -0.010912 +0xa196 +// 0.000037 +0x273 +// -0.003418 +0x9b00 +// 0.013188 +0x22c1 +// -0.005456 +0x9d96 +// 0.011546 +0x21e9 +// 0.010561 +0x2168 +// -0.003727 +0x9ba2 +// -0.001392 +0x95b4 +// 0.003406 +0x1afa +// 0.009675 +0x20f4 +// -0.003851 +0x9be3 +// -0.011732 +0xa202 +// 0.003079 +0x1a4e +// -0.149782 +0xb0cb +// -0.038189 +0xa8e3 +// 0.023670 +0x260f +// 0.033197 +0x2840 +// -0.005331 +0x9d75 +// 0.981942 +0x3bdb +// -0.003817 +0x9bd1 +// -0.014468 +0xa368 +// -0.009345 +0xa0c9 +// -0.036966 +0xa8bb +// 0.000127 +0x825 +// -0.011577 +0xa1ed +// 0.044676 +0x29b8 +// -0.018482 +0xa4bb +// 0.039112 +0x2902 +// 0.035777 +0x2894 +// -0.012627 +0xa277 +// -0.004716 +0x9cd4 +// 0.011537 +0x21e8 +// 0.032775 +0x2832 +// -0.013044 +0xa2ae +// -0.039744 +0xa916 +// 0.010430 +0x2157 +// -0.031662 +0xa80e +// -0.008073 +0xa022 +// 0.005004 +0x1d20 +// 0.007017 +0x1f30 +// -0.001127 +0x949e +// -0.003817 +0x9bd1 +// 0.999193 +0x3bfe +// -0.003058 +0x9a43 +// -0.001975 +0x980c +// -0.007814 +0xa000 +// 0.000027 +0x1c1 +// -0.002447 +0x9903 +// 0.009444 +0x20d6 +// -0.003907 +0x9c00 +// 0.008268 +0x203c +// 0.007563 +0x1fbf +// -0.002669 +0x9977 +// -0.000997 +0x9415 +// 0.002439 +0x18ff +// 0.006928 +0x1f18 +// -0.002757 +0x99a6 +// -0.008401 +0xa04d +// 0.002205 +0x1884 +// -0.120004 +0xafae +// -0.030597 +0xa7d5 +// 0.018964 +0x24db +// 0.026597 +0x26cf +// -0.004271 +0x9c60 +// -0.014468 +0xa368 +// -0.003058 +0x9a43 +// 0.988408 +0x3be8 +// -0.007487 +0x9fab +// -0.029617 +0xa795 +// 0.000101 +0x6a5 +// -0.009276 +0xa0c0 +// 0.035794 +0x2895 +// -0.014808 +0xa395 +// 0.031336 +0x2803 +// 0.028664 +0x2757 +// -0.010117 +0xa12e +// -0.003778 +0x9bbd +// 0.009244 +0x20bc +// 0.026259 +0x26b9 +// -0.010451 +0xa15a +// -0.031842 +0xa813 +// 0.008356 +0x2047 +// -0.077510 +0xacf6 +// -0.019763 +0xa50f +// 0.012249 +0x2246 +// 0.017179 +0x2466 +// -0.002759 +0x99a6 +// -0.009345 +0xa0c9 +// -0.001975 +0x980c +// -0.007487 +0x9fab +// 0.995164 +0x3bf6 +// -0.019129 +0xa4e6 +// 0.000065 +0x44a +// -0.005991 +0x9e23 +// 0.023119 +0x25eb +// -0.009564 +0xa0e6 +// 0.020240 +0x252e +// 0.018514 +0x24bd +// -0.006534 +0x9eb1 +// -0.002440 +0x98ff +// 0.005970 +0x1e1d +// 0.016960 +0x2458 +// -0.006750 +0x9eea +// -0.020567 +0xa544 +// 0.005397 +0x1d87 +// -0.306611 +0xb4e8 +// -0.078176 +0xad01 +// 0.048454 +0x2a34 +// 0.067955 +0x2c59 +// -0.010912 +0xa196 +// -0.036966 +0xa8bb +// -0.007814 +0xa000 +// -0.029617 +0xa795 +// -0.019129 +0xa4e6 +// 0.924329 +0x3b65 +// 0.000259 +0xc3e +// -0.023699 +0xa611 +// 0.091454 +0x2dda +// -0.037834 +0xa8d8 +// 0.080064 +0x2d20 +// 0.073237 +0x2cb0 +// -0.025848 +0xa69e +// -0.009653 +0xa0f1 +// 0.023618 +0x260c +// 0.067092 +0x2c4b +// -0.026702 +0xa6d6 +// -0.081358 +0xad35 +// 0.021350 +0x2577 +// 0.001049 +0x144c +// 0.000268 +0xc62 +// -0.000166 +0x896f +// -0.000233 +0x8b9f +// 0.000037 +0x273 +// 0.000127 +0x825 +// 0.000027 +0x1c1 +// 0.000101 +0x6a5 +// 0.000065 +0x44a +// 0.000259 +0xc3e +// 0.999999 +0x3c00 +// 0.000081 +0x551 +// -0.000313 +0x8d21 +// 0.000129 +0x83e +// -0.000274 +0x8c7d +// -0.000251 +0x8c1b +// 0.000088 +0x5cc +// 0.000033 +0x22a +// -0.000081 +0x854c +// -0.000230 +0x8b86 +// 0.000091 +0x5fd +// 0.000278 +0xc90 +// -0.000073 +0x84ca +// -0.096028 +0xae25 +// -0.024484 +0xa645 +// 0.015175 +0x23c5 +// 0.021283 +0x2573 +// -0.003418 +0x9b00 +// -0.011577 +0xa1ed +// -0.002447 +0x9903 +// -0.009276 +0xa0c0 +// -0.005991 +0x9e23 +// -0.023699 +0xa611 +// 0.000081 +0x551 +// 0.992578 +0x3bf1 +// 0.028642 +0x2755 +// -0.011849 +0xa211 +// 0.025075 +0x266b +// 0.022937 +0x25df +// -0.008095 +0xa025 +// -0.003023 +0x9a31 +// 0.007397 +0x1f93 +// 0.021012 +0x2561 +// -0.008363 +0xa048 +// -0.025480 +0xa686 +// 0.006687 +0x1ed9 +// 0.370560 +0x35ee +// 0.094481 +0x2e0c +// -0.058560 +0xab7f +// -0.082129 +0xad42 +// 0.013188 +0x22c1 +// 0.044676 +0x29b8 +// 0.009444 +0x20d6 +// 0.035794 +0x2895 +// 0.023119 +0x25eb +// 0.091454 +0x2dda +// -0.000313 +0x8d21 +// 0.028642 +0x2755 +// 0.889472 +0x3b1e +// 0.045725 +0x29da +// -0.096763 +0xae31 +// -0.088511 +0xadaa +// 0.031239 +0x27ff +// 0.011667 +0x21f9 +// -0.028544 +0xa74f +// -0.081085 +0xad30 +// 0.032271 +0x2821 +// 0.098326 +0x2e4b +// -0.025803 +0xa69b +// -0.153300 +0xb0e8 +// -0.039086 +0xa901 +// 0.024226 +0x2634 +// 0.033977 +0x2859 +// -0.005456 +0x9d96 +// -0.018482 +0xa4bb +// -0.003907 +0x9c00 +// -0.014808 +0xa395 +// -0.009564 +0xa0e6 +// -0.037834 +0xa8d8 +// 0.000129 +0x83e +// -0.011849 +0xa211 +// 0.045725 +0x29da +// 0.981084 +0x3bd9 +// 0.040030 +0x2920 +// 0.036617 +0x28b0 +// -0.012923 +0xa29e +// -0.004827 +0x9cf1 +// 0.011808 +0x220c +// 0.033545 +0x284b +// -0.013350 +0xa2d6 +// -0.040677 +0xa935 +// 0.010675 +0x2177 +// 0.324410 +0x3531 +// 0.082714 +0x2d4b +// -0.051267 +0xaa90 +// -0.071900 +0xac9a +// 0.011546 +0x21e9 +// 0.039112 +0x2902 +// 0.008268 +0x203c +// 0.031336 +0x2803 +// 0.020240 +0x252e +// 0.080064 +0x2d20 +// -0.000274 +0x8c7d +// 0.025075 +0x266b +// -0.096763 +0xae31 +// 0.040030 +0x2920 +// 0.915288 +0x3b53 +// -0.077488 +0xacf6 +// 0.027348 +0x2700 +// 0.010214 +0x213b +// -0.024989 +0xa666 +// -0.070986 +0xac8b +// 0.028252 +0x273c +// 0.086081 +0x2d82 +// -0.022589 +0xa5c8 +// 0.296746 +0x34bf +// 0.075661 +0x2cd8 +// -0.046895 +0xaa01 +// -0.065769 +0xac36 +// 0.010561 +0x2168 +// 0.035777 +0x2894 +// 0.007563 +0x1fbf +// 0.028664 +0x2757 +// 0.018514 +0x24bd +// 0.073237 +0x2cb0 +// -0.000251 +0x8c1b +// 0.022937 +0x25df +// -0.088511 +0xadaa +// 0.036617 +0x28b0 +// -0.077488 +0xacf6 +// 0.929120 +0x3b6f +// 0.025016 +0x2667 +// 0.009343 +0x20c9 +// -0.022858 +0xa5da +// -0.064933 +0xac28 +// 0.025843 +0x269e +// 0.078740 +0x2d0a +// -0.020663 +0xa54a +// -0.104733 +0xaeb4 +// -0.026703 +0xa6d6 +// 0.016551 +0x243d +// 0.023212 +0x25f1 +// -0.003727 +0x9ba2 +// -0.012627 +0xa277 +// -0.002669 +0x9977 +// -0.010117 +0xa12e +// -0.006534 +0x9eb1 +// -0.025848 +0xa69e +// 0.000088 +0x5cc +// -0.008095 +0xa025 +// 0.031239 +0x27ff +// -0.012923 +0xa29e +// 0.027348 +0x2700 +// 0.025016 +0x2667 +// 0.991171 +0x3bee +// -0.003297 +0x9ac1 +// 0.008067 +0x2021 +// 0.022917 +0x25de +// -0.009121 +0xa0ab +// -0.027790 +0xa71d +// 0.007293 +0x1f78 +// -0.039115 +0xa902 +// -0.009973 +0xa11b +// 0.006181 +0x1e54 +// 0.008669 +0x2070 +// -0.001392 +0x95b4 +// -0.004716 +0x9cd4 +// -0.000997 +0x9415 +// -0.003778 +0x9bbd +// -0.002440 +0x98ff +// -0.009653 +0xa0f1 +// 0.000033 +0x22a +// -0.003023 +0x9a31 +// 0.011667 +0x21f9 +// -0.004827 +0x9cf1 +// 0.010214 +0x213b +// 0.009343 +0x20c9 +// -0.003297 +0x9ac1 +// 0.998769 +0x3bfd +// 0.003013 +0x1a2c +// 0.008559 +0x2062 +// -0.003406 +0x9afa +// -0.010379 +0xa150 +// 0.002724 +0x1994 +// 0.095697 +0x2e20 +// 0.024399 +0x263f +// -0.015123 +0xa3be +// -0.021210 +0xa56e +// 0.003406 +0x1afa +// 0.011537 +0x21e8 +// 0.002439 +0x18ff +// 0.009244 +0x20bc +// 0.005970 +0x1e1d +// 0.023618 +0x260c +// -0.000081 +0x854c +// 0.007397 +0x1f93 +// -0.028544 +0xa74f +// 0.011808 +0x220c +// -0.024989 +0xa666 +// -0.022858 +0xa5da +// 0.008067 +0x2021 +// 0.003013 +0x1a2c +// 0.992629 +0x3bf1 +// -0.020940 +0xa55c +// 0.008334 +0x2044 +// 0.025393 +0x2680 +// -0.006664 +0x9ed3 +// 0.271847 +0x3459 +// 0.069312 +0x2c70 +// -0.042961 +0xa980 +// -0.060251 +0xabb6 +// 0.009675 +0x20f4 +// 0.032775 +0x2832 +// 0.006928 +0x1f18 +// 0.026259 +0x26b9 +// 0.016960 +0x2458 +// 0.067092 +0x2c4b +// -0.000230 +0x8b86 +// 0.021012 +0x2561 +// -0.081085 +0xad30 +// 0.033545 +0x284b +// -0.070986 +0xac8b +// -0.064933 +0xac28 +// 0.022917 +0x25de +// 0.008559 +0x2062 +// -0.020940 +0xa55c +// 0.940515 +0x3b86 +// 0.023674 +0x2610 +// 0.072133 +0x2c9e +// -0.018929 +0xa4d9 +// -0.108193 +0xaeed +// -0.027586 +0xa710 +// 0.017098 +0x2461 +// 0.023979 +0x2624 +// -0.003851 +0x9be3 +// -0.013044 +0xa2ae +// -0.002757 +0x99a6 +// -0.010451 +0xa15a +// -0.006750 +0x9eea +// -0.026702 +0xa6d6 +// 0.000091 +0x5fd +// -0.008363 +0xa048 +// 0.032271 +0x2821 +// -0.013350 +0xa2d6 +// 0.028252 +0x273c +// 0.025843 +0x269e +// -0.009121 +0xa0ab +// -0.003406 +0x9afa +// 0.008334 +0x2044 +// 0.023674 +0x2610 +// 0.990578 +0x3bed +// -0.028708 +0xa759 +// 0.007534 +0x1fb7 +// -0.329652 +0xb546 +// -0.084051 +0xad61 +// 0.052096 +0x2aab +// 0.073062 +0x2cad +// -0.011732 +0xa202 +// -0.039744 +0xa916 +// -0.008401 +0xa04d +// -0.031842 +0xa813 +// -0.020567 +0xa544 +// -0.081358 +0xad35 +// 0.000278 +0xc90 +// -0.025480 +0xa686 +// 0.098326 +0x2e4b +// -0.040677 +0xa935 +// 0.086081 +0x2d82 +// 0.078740 +0x2d0a +// -0.027790 +0xa71d +// -0.010379 +0xa150 +// 0.025393 +0x2680 +// 0.072133 +0x2c9e +// -0.028708 +0xa759 +// 0.912528 +0x3b4d +// 0.022954 +0x25e0 +// 0.086507 +0x2d89 +// 0.022057 +0x25a5 +// -0.013671 +0xa300 +// -0.019173 +0xa4e9 +// 0.003079 +0x1a4e +// 0.010430 +0x2157 +// 0.002205 +0x1884 +// 0.008356 +0x2047 +// 0.005397 +0x1d87 +// 0.021350 +0x2577 +// -0.000073 +0x84ca +// 0.006687 +0x1ed9 +// -0.025803 +0xa69b +// 0.010675 +0x2177 +// -0.022589 +0xa5c8 +// -0.020663 +0xa54a +// 0.007293 +0x1f78 +// 0.002724 +0x1994 +// -0.006664 +0x9ed3 +// -0.018929 +0xa4d9 +// 0.007534 +0x1fb7 +// 0.022954 +0x25e0 +// 0.993976 +0x3bf4 +// -0.205709 +0xb295 +// -0.072338 +0xaca1 +// -0.311479 +0xb4fc +// 0.164666 +0x3145 +// -0.053924 +0xaae7 +// 0.324855 +0x3533 +// -0.083513 +0xad58 +// 0.026567 +0x26cd +// -0.009793 +0xa104 +// 0.278273 +0x3474 +// 0.180992 +0x31cb +// -0.377195 +0xb609 +// -0.385117 +0xb629 +// -0.195781 +0xb244 +// -0.226684 +0xb341 +// 0.254567 +0x3413 +// 0.266175 +0x3442 +// -0.074266 +0xacc1 +// -0.233088 +0xb375 +// -0.077215 +0xacf1 +// 0.008054 +0x2020 +// 0.099131 +0x2e58 +// 0.101235 +0x2e7b +// -0.276745 +0xb46e +// -0.228157 +0xb34d +// 0.022764 +0x25d4 +// -0.456793 +0xb74f +// 0.329540 +0x3546 +// 0.105866 +0x2ec7 +// 0.437852 +0x3701 +// -0.271732 +0xb459 +// 0.126779 +0x300f +// -0.141947 +0xb08b +// -0.082825 +0xad4d +// -0.166244 +0xb152 +// 0.010930 +0x2199 +// 0.106934 +0x2ed8 +// -0.303748 +0xb4dc +// 0.062979 +0x2c08 +// -0.089376 +0xadb8 +// 0.002957 +0x1a0e +// 0.053044 +0x2aca +// -0.134574 +0xb04e +// -0.245660 +0xb3dc +// 0.053167 +0x2ace +// -0.078888 +0xad0d +// 0.161304 +0x3129 +// -0.301493 +0xb4d3 +// -0.199023 +0xb25e +// 0.344876 +0x3585 +// 0.187788 +0x3202 +// 0.065615 +0x2c33 +// -0.120568 +0xafb7 +// -0.088857 +0xadb0 +// -0.173673 +0xb18f +// 0.318882 +0x351a +// -0.409864 +0xb68f +// 0.125242 +0x3002 +// 0.175524 +0x319e +// -0.041745 +0xa958 +// -0.330407 +0xb549 +// -0.250652 +0xb403 +// 0.049886 +0x2a63 +// -0.108822 +0xaef7 +// 0.186268 +0x31f6 +// -0.016012 +0xa419 +// -0.172449 +0xb185 +// 0.007174 +0x1f59 +// -0.251773 +0xb407 +// -0.342555 +0xb57b +// -0.061479 +0xabdf +// -0.217342 +0xb2f4 +// -0.036348 +0xa8a7 +// 0.080621 +0x2d29 +// -0.613854 +0xb8e9 +// -0.157020 +0xb106 +// 0.232476 +0x3370 +// -0.063123 +0xac0a +// -0.107989 +0xaee9 +// -0.036277 +0xa8a5 +// 0.057658 +0x2b61 +// -0.195326 +0xb240 +// 0.215839 +0x32e8 +// -0.117991 +0xaf8d +// -0.122525 +0xafd7 +// 0.259586 +0x3427 +// 0.147485 +0x30b8 +// -0.190182 +0xb216 +// -0.173474 +0xb18d +// -0.040409 +0xa92c +// -0.232757 +0xb373 +// -0.152096 +0xb0de +// -0.245683 +0xb3dd +// -0.094398 +0xae0b +// -0.213516 +0xb2d5 +// -0.043118 +0xa985 +// -0.344171 +0xb582 +// 0.024492 +0x2645 +// 0.196683 +0x324b +// 0.162106 +0x3130 +// -0.100619 +0xae71 +// -0.240617 +0xb3b3 +// -0.109070 +0xaefb +// 0.044411 +0x29af +// 0.228241 +0x334e +// -0.117092 +0xaf7e +// 0.079326 +0x2d14 +// 0.065766 +0x2c36 +// 0.197348 +0x3251 +// -0.606046 +0xb8d9 +// 0.135049 +0x3052 +// 0.191985 +0x3225 +// -0.121685 +0xafca +// -0.233098 +0xb376 +// 0.102354 +0x2e8d +// 0.140981 +0x3083 +// 0.219363 +0x3305 +// 0.152407 +0x30e1 +// 0.223964 +0x332b +// 0.042065 +0x2962 +// -0.159283 +0xb119 +// 0.070648 +0x2c85 +// -0.011583 +0xa1ee +// 0.173723 +0x318f +// 0.170056 +0x3171 +// -0.009208 +0xa0b7 +// -0.132112 +0xb03a +// 0.152054 +0x30de +// 0.284131 +0x348c +// 0.127191 +0x3012 +// 0.463811 +0x376c +// 0.120508 +0x2fb6 +// -0.120921 +0xafbd +// -0.190215 +0xb216 +// 0.101105 +0x2e79 +// -0.517110 +0xb823 +// 0.005108 +0x1d3b +// -0.267558 +0xb448 +// 0.094580 +0x2e0e +// 0.490354 +0x37d8 +// -0.321904 +0xb527 +// 0.129389 +0x3024 +// 0.118162 +0x2f90 +// -0.017166 +0xa465 +// 0.698087 +0x3996 +// 0.118547 +0x2f96 +// -0.110430 +0xaf11 +// 0.161912 +0x312e +// -0.038299 +0xa8e7 +// 0.106515 +0x2ed1 +// -0.060692 +0xabc5 +// -0.040687 +0xa935 +// 0.012195 +0x223e +// -0.150804 +0xb0d3 +// 0.061978 +0x2bef +// 0.103619 +0x2ea2 +// -0.024952 +0xa663 +// -0.011397 +0xa1d6 +// 0.135096 +0x3053 +// -0.017670 +0xa486 +// -0.035511 +0xa88c +// 0.343393 +0x357f +// 0.277764 +0x3472 +// -0.225218 +0xb335 +// -0.406291 +0xb680 +// 0.020967 +0x255e +// 0.209014 +0x32b0 +// -0.256494 +0xb41b +// 0.000976 +0x13fe +// -0.155447 +0xb0f9 +// -0.204577 +0xb28c +// -0.092051 +0xade4 +// 0.031212 +0x27fe +// 0.012423 +0x225c +// -0.161349 +0xb12a +// -0.244367 +0xb3d2 +// 0.115671 +0x2f67 +// 0.105527 +0x2ec1 +// 0.223950 +0x332b +// -0.113263 +0xaf40 +// 0.253775 +0x340f +// -0.180991 +0xb1cb +// -0.349259 +0xb597 +// -0.105882 +0xaec7 +// 0.058769 +0x2b86 +// 0.047969 +0x2a24 +// -0.283288 +0xb488 +// -0.029874 +0xa7a6 +// -0.066378 +0xac40 +// 0.053352 +0x2ad4 +// -0.086342 +0xad87 +// 0.071253 +0x2c8f +// 0.917163 +0x3b56 +// 0.023229 +0x25f2 +// -0.091656 +0xadde +// 0.093831 +0x2e01 +// 0.026132 +0x26b1 +// -0.023846 +0xa61b +// -0.038572 +0xa8f0 +// -0.146946 +0xb0b4 +// 0.029864 +0x27a5 +// -0.021711 +0xa58f +// 0.056205 +0x2b32 +// -0.010716 +0xa17d +// 0.052862 +0x2ac4 +// -0.045008 +0xa9c3 +// -0.024376 +0xa63e +// 0.012380 +0x2257 +// -0.071351 +0xac91 +// 0.147984 +0x30bc +// -0.510335 +0xb815 +// -0.295640 +0xb4bb +// -0.097832 +0xae43 +// 0.047303 +0x2a0e +// 0.034057 +0x285c +// -0.026626 +0xa6d1 +// 0.752674 +0x3a05 +// -0.000147 +0x88d0 +// 0.075965 +0x2cdd +// 0.014591 +0x2378 +// 0.047137 +0x2a09 +// 0.034993 +0x287b +// -0.058558 +0xab7f +// 0.052453 +0x2ab7 +// -0.033552 +0xa84b +// -0.001765 +0x973a +// 0.004734 +0x1cd9 +// 0.019221 +0x24ec +// -0.164260 +0xb142 +// 0.026531 +0x26cb +// 0.261389 +0x342f +// -0.242515 +0xb3c3 +// -0.287368 +0xb499 +// -0.002400 +0x98ea +// 0.028919 +0x2767 +// -0.103928 +0xaea7 +// 0.060460 +0x2bbd +// -0.053372 +0xaad5 +// -0.028746 +0xa75c +// 0.004241 +0x1c58 +// 0.820239 +0x3a90 +// 0.093749 +0x2e00 +// 0.158682 +0x3114 +// 0.056480 +0x2b3b +// -0.078284 +0xad03 +// -0.095184 +0xae17 +// -0.035230 +0xa882 +// -0.059815 +0xaba8 +// 0.111066 +0x2f1c +// 0.007954 +0x2013 +// -0.121126 +0xafc1 +// -0.028811 +0xa760 +// -0.115893 +0xaf6b +// -0.308083 +0xb4ee +// 0.045203 +0x29c9 +// 0.066260 +0x2c3e +// 0.092058 +0x2de4 +// 0.032222 +0x2820 +// 0.132360 +0x303c +// -0.020756 +0xa550 +// -0.274368 +0xb464 +// 0.027201 +0x26f7 +// 0.048755 +0x2a3e +// 0.105302 +0x2ebd +// 0.817277 +0x3a8a +// -0.119307 +0xafa3 +// -0.094122 +0xae06 +// -0.080297 +0xad24 +// 0.227589 +0x3348 +// 0.068962 +0x2c6a +// 0.029392 +0x2786 +// -0.128495 +0xb01d +// 0.057179 +0x2b52 +// -0.077076 +0xacef +// 0.007368 +0x1f8b +// 0.032115 +0x281c +// -0.383428 +0xb623 +// 0.217891 +0x32f9 +// -0.049399 +0xaa53 +// -0.019941 +0xa51b +// 0.208220 +0x32aa +// 0.120841 +0x2fbc +// -0.178356 +0xb1b5 +// 0.093981 +0x2e04 +// -0.023284 +0xa5f6 +// 0.132470 +0x303d +// 0.120462 +0x2fb6 +// -0.088428 +0xada9 +// 0.762100 +0x3a19 +// -0.058262 +0xab75 +// -0.042443 +0xa96f +// -0.002035 +0x982b +// 0.083431 +0x2d57 +// 0.141498 +0x3087 +// -0.131161 +0xb032 +// -0.083745 +0xad5c +// 0.145858 +0x30ab +// 0.049905 +0x2a63 +// 0.051817 +0x2aa2 +// -0.055712 +0xab22 +// 0.085603 +0x2d7b +// -0.156941 +0xb106 +// 0.025449 +0x2684 +// -0.156608 +0xb103 +// 0.374859 +0x35ff +// -0.083823 +0xad5d +// -0.083939 +0xad5f +// -0.091121 +0xadd5 +// -0.029286 +0xa77f +// -0.012037 +0xa22a +// 0.033119 +0x283d +// -0.031451 +0xa807 +// 0.857643 +0x3adc +// -0.048799 +0xaa3f +// -0.093440 +0xadfb +// 0.017221 +0x2469 +// -0.012684 +0xa27f +// 0.042096 +0x2963 +// 0.036466 +0x28ab +// 0.123721 +0x2feb +// -0.046911 +0xaa01 +// 0.077781 +0x2cfa +// -0.071676 +0xac96 +// -0.164474 +0xb143 +// -0.385816 +0xb62c +// -0.115355 +0xaf62 +// 0.229539 +0x3358 +// 0.106076 +0x2eca +// -0.082917 +0xad4f +// -0.275007 +0xb466 +// -0.064598 +0xac22 +// 0.065035 +0x2c2a +// -0.100414 +0xae6d +// -0.025260 +0xa677 +// -0.044568 +0xa9b4 +// -0.040261 +0xa927 +// 0.777398 +0x3a38 +// -0.027375 +0xa702 +// 0.054364 +0x2af5 +// 0.092939 +0x2df3 +// -0.024930 +0xa662 +// -0.008352 +0xa047 +// -0.084892 +0xad6f +// -0.050736 +0xaa7f +// -0.096501 +0xae2d +// 0.168774 +0x3167 +// -0.243156 +0xb3c8 +// -0.178074 +0xb1b3 +// -0.124339 +0xaff5 +// 0.187110 +0x31fd +// 0.046483 +0x29f3 +// 0.024435 +0x2641 +// 0.510915 +0x3816 +// -0.037352 +0xa8c8 +// 0.020357 +0x2536 +// -0.113042 +0xaf3c +// 0.206774 +0x329e +// 0.037335 +0x28c7 +// 0.100867 +0x2e75 +// 0.033916 +0x2857 +// 0.587212 +0x38b3 +// -0.118064 +0xaf8e +// 0.033353 +0x2845 +// 0.181593 +0x31d0 +// -0.200529 +0xb26b +// 0.233759 +0x337b +// 0.093034 +0x2df4 +// -0.000135 +0x886c +// 0.224024 +0x332b +// -0.159299 +0xb119 +// 0.304941 +0x34e1 +// -0.045092 +0xa9c6 +// 0.151993 +0x30dd +// 0.129107 +0x3022 +// 0.113219 +0x2f3f +// 0.040855 +0x293b +// 0.054497 +0x2afa +// -0.103849 +0xaea5 +// 0.033051 +0x283b +// 0.053804 +0x2ae3 +// 0.038578 +0x28f0 +// 0.036345 +0x28a7 +// 0.072296 +0x2ca0 +// -0.089840 +0xadc0 +// 0.842329 +0x3abd +// 0.076010 +0x2cdd +// 0.079375 +0x2d14 +// -0.044110 +0xa9a5 +// 0.100993 +0x2e77 +// 0.065381 +0x2c2f +// 0.057374 +0x2b58 +// -0.098832 +0xae53 +// -0.290062 +0xb4a4 +// -0.077697 +0xacf9 +// 0.183397 +0x31de +// -0.510261 +0xb815 +// 0.023931 +0x2620 +// 0.224985 +0x3333 +// -0.002233 +0x9893 +// 0.017539 +0x247d +// -0.056677 +0xab41 +// -0.071564 +0xac95 +// -0.047844 +0xaa20 +// 0.164531 +0x3144 +// -0.038433 +0xa8eb +// 0.000859 +0x130a +// 0.114187 +0x2f4f +// 0.025628 +0x2690 +// 0.675805 +0x3968 +// 0.098035 +0x2e46 +// 0.091721 +0x2ddf +// -0.161867 +0xb12e +// -0.018234 +0xa4ab +// 0.020471 +0x253e +// -0.210536 +0xb2bd +// 0.321379 +0x3524 +// -0.008680 +0xa072 +// 0.011447 +0x21dc +// 0.064335 +0x2c1e +// -0.115000 +0xaf5c +// -0.160611 +0xb124 +// -0.125943 +0xb008 +// -0.007169 +0x9f57 +// 0.088849 +0x2db0 +// 0.088499 +0x2daa +// -0.102296 +0xae8c +// -0.132623 +0xb03e +// -0.032412 +0xa826 +// -0.022903 +0xa5dd +// 0.160910 +0x3126 +// 0.120783 +0x2fbb +// 0.080077 +0x2d20 +// 0.834207 +0x3aac +// 0.037472 +0x28cc +// -0.044563 +0xa9b4 +// -0.034877 +0xa877 +// -0.018878 +0xa4d5 +// -0.169098 +0xb169 +// -0.164004 +0xb140 +// 0.037061 +0x28be +// -0.003682 +0x9b8b +// 0.287321 +0x3499 +// -0.033538 +0xa84b +// 0.034285 +0x2863 +// 0.246404 +0x33e3 +// 0.051995 +0x2aa8 +// 0.097182 +0x2e38 +// 0.041252 +0x2948 +// -0.035101 +0xa87e +// -0.092959 +0xadf3 +// 0.068051 +0x2c5b +// -0.005263 +0x9d64 +// -0.066238 +0xac3d +// -0.039280 +0xa907 +// 0.072663 +0x2ca7 +// -0.010289 +0xa145 +// 0.857436 +0x3adc +// 0.077897 +0x2cfc +// 0.128738 +0x301f +// 0.004240 +0x1c58 +// 0.107372 +0x2edf +// -0.080907 +0xad2e +// -0.095040 +0xae15 +// 0.039515 +0x290f +// -0.063595 +0xac12 +// -0.289042 +0xb4a0 +// 0.062384 +0x2bfc +// -0.525526 +0xb834 +// 0.032842 +0x2834 +// -0.012429 +0xa25d +// -0.079398 +0xad15 +// -0.111944 +0xaf2a +// 0.124497 +0x2ff8 +// 0.018956 +0x24da +// -0.119077 +0xaf9f +// 0.316904 +0x3512 +// 0.079645 +0x2d19 +// -0.069820 +0xac78 +// -0.081700 +0xad3b +// 0.174344 +0x3194 +// 0.606057 +0x38d9 +// -0.114137 +0xaf4e +// -0.156577 +0xb103 +// 0.052928 +0x2ac6 +// 0.131377 +0x3034 +// -0.243673 +0xb3cc +// -0.266858 +0xb445 +// -0.240868 +0xb3b5 +// -0.186578 +0xb1f8 +// -0.103148 +0xae9a +// -0.068410 +0xac61 +// -0.088916 +0xadb1 +// -0.071511 +0xac94 +// -0.092969 +0xadf3 +// 0.079384 +0x2d15 +// 0.041376 +0x294c +// 0.011975 +0x2222 +// -0.042681 +0xa977 +// -0.031479 +0xa807 +// 0.127361 +0x3013 +// -0.047929 +0xaa23 +// -0.022944 +0xa5e0 +// 0.057853 +0x2b68 +// -0.076949 +0xaced +// 0.821462 +0x3a92 +// -0.073858 +0xacba +// 0.181219 +0x31cd +// -0.025937 +0xa6a4 +// -0.163740 +0xb13d +// 0.043791 +0x299b +// 0.174987 +0x3199 +// -0.270125 +0xb452 +// -0.017374 +0xa473 +// -0.164425 +0xb143 +// 0.011332 +0x21cd +// 0.071264 +0x2c90 +// -0.093071 +0xadf5 +// 0.001749 +0x172a +// 0.077945 +0x2cfd +// 0.072198 +0x2c9f +// -0.064629 +0xac23 +// 0.069519 +0x2c73 +// 0.013465 +0x22e5 +// 0.027422 +0x2705 +// -0.020467 +0xa53d +// 0.034204 +0x2861 +// -0.187370 +0xb1ff +// -0.020694 +0xa54c +// 0.857091 +0x3adb +// -0.290960 +0xb4a8 +// -0.196134 +0xb247 +// 0.013381 +0x22da +// -0.037232 +0xa8c4 +// -0.019622 +0xa506 +// -0.168265 +0xb162 +// 0.161800 +0x312d +// -0.396446 +0xb658 +// -0.202819 +0xb27d +// 0.189133 +0x320d +// 0.174788 +0x3198 +// -0.043988 +0xa9a1 +// 0.140475 +0x307f +// 0.143248 +0x3095 +// 0.145964 +0x30ac +// -0.196996 +0xb24e +// 0.164786 +0x3146 +// -0.416934 +0xb6ac +// 0.407139 +0x3684 +// 0.155129 +0x30f7 +// 0.162472 +0x3133 +// -0.087436 +0xad99 +// 0.169251 +0x316b +// 0.037565 +0x28cf +// -0.258906 +0xb424 +// -0.090948 +0xadd2 +// -0.055136 +0xab0f +// -0.149165 +0xb0c6 +// 0.177673 +0x31af +// -0.085558 +0xad7a +// 0.105703 +0x2ec4 +// -0.110252 +0xaf0e +// -0.148953 +0xb0c4 +// -0.515061 +0xb81f +// 0.120801 +0x2fbb +// -0.004155 +0x9c41 +// 0.222281 +0x331d +// -0.008934 +0xa093 +// 0.302702 +0x34d8 +// 0.057721 +0x2b63 +// -0.108738 +0xaef6 +// 0.341107 +0x3575 +// -0.172063 +0xb182 +// 0.320969 +0x3523 +// 0.345509 +0x3587 +// -0.095200 +0xae18 +// -0.061980 +0xabef +// -0.363609 +0xb5d1 +// -0.067482 +0xac52 +// -0.315255 +0xb50b +// 0.160717 +0x3125 +// -0.315861 +0xb50e +// 0.038412 +0x28eb +// -0.261180 +0xb42e +// -0.378613 +0xb60f +// -0.100714 +0xae72 +// 0.012023 +0x2228 +// 0.382216 +0x361e +// -0.023041 +0xa5e6 +// -0.122503 +0xafd7 +// -0.044061 +0xa9a4 +// 0.078332 +0x2d03 +// -0.187133 +0xb1fd +// 0.239134 +0x33a7 +// -0.247300 +0xb3ea +// -0.279633 +0xb479 +// -0.022751 +0xa5d3 +// -0.025570 +0xa68c +// 0.093023 +0x2df4 +// 0.139084 +0x3073 +// 0.091411 +0x2dda +// -0.052012 +0xaaa8 +// -0.486688 +0xb7c9 +// -0.128088 +0xb019 +// -0.201661 +0xb274 +// 0.359549 +0x35c1 +// 0.056500 +0x2b3b +// 0.094362 +0x2e0a +// 0.192207 +0x3227 +// -0.333731 +0xb557 +// -0.132535 +0xb03e +// -0.182197 +0xb1d5 +// -0.123617 +0xafe9 +// 0.015331 +0x23da +// -0.287016 +0xb498 +// 0.286791 +0x3497 +// 0.082435 +0x2d47 +// 0.093768 +0x2e00 +// -0.132567 +0xb03e +// -0.028278 +0xa73d +// -0.165471 +0xb14c +// -0.306131 +0xb4e6 +// 0.067775 +0x2c56 +// 0.403009 +0x3673 +// -0.097555 +0xae3e +// -0.201627 +0xb274 +// -0.013664 +0xa2ff +// 0.085458 +0x2d78 +// -0.272470 +0xb45c +// -0.130858 +0xb030 +// -0.097182 +0xae38 +// 0.444191 +0x371b +// -0.017282 +0xa46d +// 0.173505 +0x318d +// -0.004189 +0x9c4a +// 0.118238 +0x2f91 +// 0.359141 +0x35bf +// 0.391483 +0x3644 +// 0.280838 +0x347e +// 0.049372 +0x2a52 +// -0.118983 +0xaf9d +// -0.064163 +0xac1b +// 0.026000 +0x26a8 +// -0.089622 +0xadbc +// 0.205636 +0x3295 +// -0.142712 +0xb091 +// 0.402302 +0x3670 +// -0.388995 +0xb639 +// 0.041381 +0x294c +// -0.033318 +0xa844 +// -0.512957 +0xb81b +// 0.133767 +0x3048 +// 0.113010 +0x2f3c +// -0.201277 +0xb271 +// -0.019317 +0xa4f2 +// -0.114423 +0xaf53 +// -0.089557 +0xadbb +// 0.138214 +0x306c +// 0.106760 +0x2ed5 +// -0.151510 +0xb0d9 +// 0.067300 +0x2c4f +// -0.108215 +0xaeed +// -0.006572 +0x9ebb +// -0.096154 +0xae27 +// 0.287059 +0x3498 +// 0.003194 +0x1a8b +// 0.382418 +0x361e +// 0.014782 +0x2392 +// -0.440161 +0xb70b +// 0.104120 +0x2eaa +// 0.021263 +0x2571 +// -0.301963 +0xb4d5 +// -0.106555 +0xaed2 +// 0.149984 +0x30cd +// -0.098754 +0xae52 +// -0.257042 +0xb41d +// 0.244503 +0x33d3 +// -0.037557 +0xa8cf +// 0.011031 +0x21a6 +// 0.201693 +0x3274 +// -0.047259 +0xaa0d +// 0.034353 +0x2866 +// -0.317390 +0xb514 +// 0.268394 +0x344b +// -0.107145 +0xaedb +// -0.155931 +0xb0fd +// 0.060299 +0x2bb8 +// 0.162973 +0x3137 +// -0.348066 +0xb592 +// -0.028691 +0xa758 +// -0.357726 +0xb5b9 +// -0.092513 +0xadec +// 0.093659 +0x2dff +// 0.555578 +0x3872 +// 0.233205 +0x3376 +// 0.049465 +0x2a55 +// -0.178478 +0xb1b6 +// 0.098615 +0x2e50 +// -0.386016 +0xb62d +// 0.091886 +0x2de1 +// 0.069268 +0x2c6f +// -0.334498 +0xb55a +// -0.208234 +0xb2aa +// -0.063480 +0xac10 +// -0.022959 +0xa5e1 +// -0.022497 +0xa5c2 +// 0.119430 +0x2fa5 +// 0.030196 +0x27bb +// -0.143250 +0xb096 +// -0.381460 +0xb61a +// -0.139242 +0xb075 +// 0.146403 +0x30af +// 0.169123 +0x3169 +// -0.048949 +0xaa44 +// 0.045631 +0x29d7 +// -0.253168 +0xb40d +// 0.084479 +0x2d68 +// -0.216777 +0xb2f0 +// 0.402063 +0x366f +// -0.042810 +0xa97b +// 0.067984 +0x2c5a +// 0.208945 +0x32b0 +// -0.046797 +0xa9fd +// -0.217280 +0xb2f4 +// 0.081583 +0x2d39 +// -0.240019 +0xb3ae +// -0.011646 +0xa1f6 +// -0.097844 +0xae43 +// -0.002481 +0x9915 +// 0.342467 +0x357b +// 0.504314 +0x3809 +// -0.175640 +0xb19f +// -0.106411 +0xaecf +// 0.237289 +0x3398 +// -0.227945 +0xb34b +// 0.120990 +0x2fbe +// 0.088625 +0x2dac +// -0.033441 +0xa848 +// 0.100918 +0x2e75 +// 0.305035 +0x34e1 +// 0.119778 +0x2faa +// -0.116836 +0xaf7a +// -0.309630 +0xb4f4 +// 0.204917 +0x328f +// 0.221088 +0x3313 +// 0.228642 +0x3351 +// -0.045476 +0xa9d2 +// 0.125727 +0x3006 +// 0.425318 +0x36ce +// 0.232096 +0x336d +// -0.283223 +0xb488 +// -0.079146 +0xad11 +// 0.290721 +0x34a7 +// 0.163143 +0x3138 +// 0.144751 +0x30a2 +// 0.256087 +0x3419 +// 0.054777 +0x2b03 +// 0.257420 +0x341e +// -0.147286 +0xb0b7 +// 0.029815 +0x27a2 +// -0.049106 +0xaa49 +// -0.115352 +0xaf62 +// -0.228869 +0xb353 +// 0.292857 +0x34b0 +// 0.193645 +0x3232 +// -0.253916 +0xb410 +// -0.303304 +0xb4da +// -0.207073 +0xb2a0 +// 0.154073 +0x30ee +// -0.094178 +0xae07 +// -0.320325 +0xb520 +// -0.157965 +0xb10e +// 0.173153 +0x318a +// 0.176620 +0x31a7 +// -0.129568 +0xb025 +// 0.045532 +0x29d4 +// 0.214888 +0x32e0 +// 0.303719 +0x34dc +// 0.140485 +0x307f +// 0.002998 +0x1a24 +// -0.111191 +0xaf1e +// -0.444296 +0xb71c +// -0.034003 +0xa85a +// 0.236774 +0x3394 +// -0.181938 +0xb1d2 +// -0.208427 +0xb2ab +// 0.023325 +0x25f9 +// -0.342488 +0xb57b +// -0.045687 +0xa9d9 +// 0.302012 +0x34d5 +// -0.116871 +0xaf7b +// 0.371339 +0x35f1 +// -0.109216 +0xaefd +// -0.147856 +0xb0bb +// 0.157258 +0x3108 +// -0.171793 +0xb17f +// 0.178312 +0x31b5 +// 0.003363 +0x1ae3 +// 0.114473 +0x2f54 +// -0.055080 +0xab0d +// -0.191739 +0xb223 +// -0.220808 +0xb311 +// 0.172618 +0x3186 +// -0.135286 +0xb054 +// -0.141757 +0xb089 +// 0.463694 +0x376b +// -0.117949 +0xaf8c +// 0.079824 +0x2d1c +// 0.031823 +0x2813 +// 0.110674 +0x2f15 +// 0.157620 +0x310b +// -0.048067 +0xaa27 +// 0.111363 +0x2f21 +// 0.263203 +0x3436 +// -0.056992 +0xab4c +// 0.220835 +0x3311 +// 0.157785 +0x310d +// 0.058912 +0x2b8a +// -0.305844 +0xb4e5 +// 0.389712 +0x363c +// -0.527814 +0xb839 +// 0.014105 +0x2339 +// 0.132139 +0x303a +// -0.125796 +0xb007 +// 0.030496 +0x27cf +// -0.424488 +0xb6cb +// -0.018769 +0xa4ce +// -0.087827 +0xad9f +// 0.174833 +0x3198 +// -0.065924 +0xac38 +// 0.012401 +0x2259 +// -0.140797 +0xb081 +// -0.077850 +0xacfb +// -0.441847 +0xb712 +// 0.017034 +0x245c +// -0.323120 +0xb52c +// -0.005720 +0x9ddb +// -0.056703 +0xab42 +// -0.224216 +0xb32d +// 0.116461 +0x2f74 +// -0.036121 +0xa8a0 +// 0.240459 +0x33b2 +// -0.186147 +0xb1f5 +// -0.267325 +0xb447 +// -0.183441 +0xb1df +// 0.395904 +0x3656 +// -0.219136 +0xb303 +// -0.343452 +0xb57f +// -0.180827 +0xb1c9 +// 0.214495 +0x32dd +// -0.041774 +0xa959 +// 0.023366 +0x25fb +// 0.623534 +0x38fd +// -0.029777 +0xa79f +// 0.052444 +0x2ab6 +// 0.055949 +0x2b29 +// -0.150908 +0xb0d4 +// -0.096716 +0xae31 +// -0.094838 +0xae12 +// -0.186942 +0xb1fb +// -0.266810 +0xb445 +// 0.225605 +0x3338 +// 0.076655 +0x2ce8 +// -0.143770 +0xb09a +// 0.071651 +0x2c96 +// -0.194515 +0xb239 +// -0.363561 +0xb5d1 +// 0.246112 +0x33e0 +// -0.149290 +0xb0c7 +// -0.191500 +0xb221 +// 0.198191 +0x3258 +// 0.042028 +0x2961 +// -0.162090 +0xb130 +// -0.063229 +0xac0c +// -0.117233 +0xaf81 +// 0.027026 +0x26eb +// 0.059858 +0x2ba9 +// 0.159054 +0x3117 +// -0.175216 +0xb19b +// -0.055821 +0xab25 +// 0.242110 +0x33bf +// 0.358471 +0x35bc +// 0.048111 +0x2a29 +// -0.120810 +0xafbb +// -0.045462 +0xa9d2 +// -0.033355 +0xa845 +// -0.141806 +0xb08a +// 0.698862 +0x3997 +// 0.353287 +0x35a7 +// -0.046918 +0xaa01 +// 0.071497 +0x2c93 +// -0.087475 +0xad99 +// 0.121587 +0x2fc8 +// -0.106315 +0xaece +// -0.133372 +0xb045 +// -0.133905 +0xb049 +// -0.133001 +0xb042 +// 0.039697 +0x2915 +// 0.303655 +0x34dc +// -0.144159 +0xb09d +// -0.114196 +0xaf4f +// 0.035291 +0x2884 +// 0.148723 +0x30c2 +// -0.066301 +0xac3e +// 0.016247 +0x2429 +// -0.240241 +0xb3b0 +// 0.374894 +0x3600 +// 0.150496 +0x30d1 +// 0.295611 +0x34bb +// 0.227530 +0x3348 +// 0.181696 +0x31d0 +// 0.279346 +0x3478 +// -0.027339 +0xa700 +// -0.147601 +0xb0b9 +// 0.229320 +0x3357 +// 0.112933 +0x2f3a +// -0.074323 +0xacc2 +// -0.046007 +0xa9e4 +// 0.033713 +0x2851 +// 0.445770 +0x3722 +// -0.281906 +0xb483 +// -0.185719 +0xb1f1 +// -0.252918 +0xb40c +// 0.114279 +0x2f50 +// -0.082879 +0xad4e +// -0.419897 +0xb6b8 +// -0.002262 +0x98a2 +// -0.017238 +0xa46a +// -0.050776 +0xaa80 +// -0.000843 +0x92e8 +// 0.199305 +0x3261 +// 0.205707 +0x3295 +// -0.375810 +0xb603 +// -0.164264 +0xb142 +// 0.060256 +0x2bb6 +// -0.117397 +0xaf83 +// 0.152280 +0x30df +// 0.067085 +0x2c4b +// 0.567016 +0x3889 +// 0.061066 +0x2bd1 +// 0.130981 +0x3031 +// 0.048581 +0x2a38 +// 0.195131 +0x323f +// 0.155671 +0x30fb +// 0.174651 +0x3197 +// 0.364253 +0x35d4 +// 0.223093 +0x3324 +// -0.106166 +0xaecb +// -0.114385 +0xaf52 +// -0.135482 +0xb056 +// -0.076157 +0xace0 +// -0.227384 +0xb347 +// -0.065009 +0xac29 +// -0.585587 +0xb8af +// 0.149467 +0x30c8 +// -0.021033 +0xa562 +// -0.178208 +0xb1b4 +// 0.201915 +0x3276 +// 0.117694 +0x2f88 +// -0.071564 +0xac94 +// 0.101781 +0x2e84 +// 0.100472 +0x2e6e +// 0.303401 +0x34db +// -0.190833 +0xb21b +// -0.212039 +0xb2c9 +// 0.112322 +0x2f30 +// 0.137516 +0x3067 +// 0.110780 +0x2f17 +// 0.047523 +0x2a15 +// 0.244732 +0x33d5 +// 0.071395 +0x2c92 +// -0.007986 +0xa017 +// 0.203506 +0x3283 +// 0.003898 +0x1bfb +// -0.034359 +0xa866 +// -0.370591 +0xb5ee +// -0.015668 +0xa403 +// -0.183879 +0xb1e2 +// 0.360869 +0x35c6 +// -0.124642 +0xaffa +// 0.197326 +0x3250 +// -0.221189 +0xb314 +// -0.265669 +0xb440 +// 0.239391 +0x33a9 +// 0.179266 +0x31bd +// -0.119959 +0xafad +// 0.539504 +0x3851 +// 0.039452 +0x290d +// -0.066903 +0xac48 +// -0.035694 +0xa892 +// 0.139254 +0x3075 +// 0.147613 +0x30b9 +// -0.082234 +0xad43 +// -0.320836 +0xb522 +// 0.264307 +0x343b +// 0.077036 +0x2cee +// 0.019658 +0x2508 +// -0.161665 +0xb12c +// 0.135808 +0x3059 +// -0.188683 +0xb20a +// 0.155217 +0x30f8 +// -0.198268 +0xb258 +// -0.109670 +0xaf05 +// 0.120249 +0x2fb2 +// -0.190008 +0xb215 +// 0.126838 +0x300f +// -0.187890 +0xb203 +// 0.031961 +0x2817 +// -0.048156 +0xaa2a +// 0.177390 +0x31ad +// 0.658129 +0x3944 +// -0.217539 +0xb2f6 +// -0.010587 +0xa16c +// -0.059900 +0xabab +// 0.191844 +0x3224 +// -0.271808 +0xb459 +// 0.145789 +0x30aa +// 0.182581 +0x31d8 +// 0.404535 +0x3679 +// 0.318886 +0x351a +// -0.335136 +0xb55d +// -0.005273 +0x9d66 +// -0.018942 +0xa4d9 +// -0.095716 +0xae20 +// 0.011798 +0x220a +// 0.028515 +0x274d +// -0.433037 +0xb6ee +// -0.235301 +0xb388 +// -0.009887 +0xa110 +// 0.176168 +0x31a3 +// 0.170735 +0x3177 +// 0.149922 +0x30cc +// -0.115082 +0xaf5d +// -0.016461 +0xa437 +// 0.185917 +0x31f3 +// 0.263168 +0x3436 +// 0.039692 +0x2915 +// 0.009621 +0x20ed +// 0.230303 +0x335f +// -0.350612 +0xb59c +// 0.170860 +0x3178 +// -0.079484 +0xad16 +// -0.362721 +0xb5ce +// 0.089445 +0x2db9 +// 0.259519 +0x3427 +// 0.165821 +0x314e +// -0.236116 +0xb38e +// 0.028100 +0x2732 +// 0.206415 +0x329b +// -0.085979 +0xad81 +// -0.216760 +0xb2f0 +// -0.289116 +0xb4a0 +// -0.154536 +0xb0f2 +// -0.016459 +0xa437 +// 0.141510 +0x3087 +// 0.071218 +0x2c8f +// -0.055876 +0xab27 +// 0.201256 +0x3271 +// 0.471647 +0x378c +// -0.218456 +0xb2fe +// -0.076309 +0xace2 +// -0.056769 +0xab44 +// -0.463028 +0xb769 +// 0.103066 +0x2e99 +// 0.022258 +0x25b3 +// -0.184747 +0xb1e9 +// -0.289057 +0xb4a0 +// 0.149725 +0x30cb +// -0.161492 +0xb12b +// -0.261404 +0xb42f +// 0.277472 +0x3471 +// -0.241756 +0xb3bc +// -0.295989 +0xb4bc +// 0.301751 +0x34d4 +// 0.146504 +0x30b0 +// 0.132037 +0x303a +// 0.165323 +0x314a +// -0.239590 +0xb3ab +// -0.070921 +0xac8a +// 0.195528 +0x3242 +// 0.003729 +0x1ba3 +// -0.046866 +0xaa00 +// 0.032460 +0x2828 +// -0.052387 +0xaab5 +// 0.201627 +0x3274 +// 0.102545 +0x2e90 +// -0.109352 +0xaf00 +// -0.243711 +0xb3cc +// 0.010714 +0x217c +// -0.346696 +0xb58c +// -0.075837 +0xacdb +// -0.186395 +0xb1f7 +// 0.081718 +0x2d3b +// 0.142490 +0x308f +// -0.102389 +0xae8e +// 0.092056 +0x2de4 +// 0.009073 +0x20a5 +// 0.367983 +0x35e3 +// -0.248061 +0xb3f0 +// -0.149384 +0xb0c8 +// 0.285106 +0x3490 +// -0.482393 +0xb7b8 +// -0.031929 +0xa816 +// -0.262448 +0xb433 +// 0.252396 +0x340a +// -0.184396 +0xb1e7 +// -0.289703 +0xb4a3 +// -0.026329 +0xa6bd +// -0.069202 +0xac6e +// 0.018519 +0x24be +// -0.282894 +0xb487 +// -0.194002 +0xb235 +// 0.341255 +0x3576 +// -0.436637 +0xb6fc +// 0.105673 +0x2ec3 +// 0.102383 +0x2e8d +// -0.019075 +0xa4e2 +// 0.047574 +0x2a17 +// -0.266493 +0xb444 +// -0.088085 +0xada3 +// 0.146564 +0x30b1 +// -0.052570 +0xaabb +// -0.377785 +0xb60b +// -0.246307 +0xb3e2 +// 0.068442 +0x2c61 +// 0.185433 +0x31ef +// -0.275936 +0xb46a +// -0.074666 +0xacc7 +// 0.118949 +0x2f9d +// 0.175559 +0x319e +// -0.039187 +0xa904 +// -0.391917 +0xb645 +// -0.204097 +0xb288 +// -0.119365 +0xafa4 +// 0.084347 +0x2d66 +// 0.354433 +0x35ac +// 0.197364 +0x3251 +// -0.266791 +0xb445 +// -0.157281 +0xb108 +// -0.267111 +0xb446 +// 0.008759 +0x207c +// -0.088578 +0xadab +// 0.192838 +0x322c +// -0.218261 +0xb2fc +// -0.128758 +0xb01f +// -0.401943 +0xb66e +// 0.165678 +0x314d +// -0.245101 +0xb3d8 +// 0.083792 +0x2d5d +// 0.181490 +0x31cf +// 0.081682 +0x2d3a +// -0.074391 +0xacc3 +// 0.285149 +0x3490 +// 0.148844 +0x30c3 +// 0.104615 +0x2eb2 +// -0.274963 +0xb466 +// -0.177553 +0xb1af +// -0.242713 +0xb3c4 +// 0.013152 +0x22bc +// 0.192751 +0x322b +// 0.409145 +0x368c +// -0.006917 +0x9f15 +// 0.158224 +0x3110 +// -0.196674 +0xb24b +// -0.379282 +0xb612 +// -0.331646 +0xb54e +// -0.101018 +0xae77 +// -0.055719 +0xab22 +// 0.076072 +0x2cde +// 0.254176 +0x3411 +// -0.105159 +0xaebb +// 0.195507 +0x3242 +// 0.124318 +0x2ff5 +// -0.207960 +0xb2a8 +// 0.047530 +0x2a15 +// -0.024785 +0xa658 +// -0.104068 +0xaea9 +// -0.195370 +0xb240 +// 0.158248 +0x3110 +// -0.038204 +0xa8e4 +// -0.382853 +0xb620 +// 0.122806 +0x2fdc +// -0.214003 +0xb2d9 +// -0.038209 +0xa8e4 +// -0.014521 +0xa36f +// 0.167987 +0x3160 +// 0.538716 +0x384f +// -0.061875 +0xabec +// 0.111523 +0x2f23 +// -0.033014 +0xa83a +// -0.300748 +0xb4d0 +// 0.356328 +0x35b4 +// 0.327680 +0x353e +// -0.094672 +0xae0f +// -0.162193 +0xb131 +// 0.097778 +0x2e42 +// -0.084178 +0xad63 +// 0.211205 +0x32c2 +// 0.063033 +0x2c09 +// 0.043521 +0x2992 +// 0.190825 +0x321b +// 0.369059 +0x35e8 +// -0.039511 +0xa90f +// -0.316376 +0xb510 +// 0.128400 +0x301c +// 0.074214 +0x2cc0 +// -0.327872 +0xb53f +// -0.096631 +0xae2f +// -0.146727 +0xb0b2 +// -0.070482 +0xac83 +// 0.007405 +0x1f95 +// -0.317004 +0xb512 +// 0.410328 +0x3691 +// 0.161609 +0x312c +// -0.074833 +0xacca +// -0.105209 +0xaebc +// -0.132242 +0xb03b +// 0.019735 +0x250d +// 0.401658 +0x366d +// -0.137893 +0xb06a +// -0.157498 +0xb10a +// -0.233301 +0xb377 +// -0.145657 +0xb0a9 +// 0.077292 +0x2cf2 +// 0.030202 +0x27bb +// 0.199078 +0x325f +// -0.266842 +0xb445 +// -0.175322 +0xb19c +// 0.153648 +0x30eb +// -0.271079 +0xb456 +// 0.449528 +0x3731 +// 0.101325 +0x2e7c +// -0.036480 +0xa8ab +// -0.218294 +0xb2fc +// -0.010037 +0xa124 +// -0.254805 +0xb414 +// 0.252105 +0x3409 +// -0.340719 +0xb574 +// 0.312374 +0x34ff +// 0.087052 +0x2d92 +// -0.203591 +0xb284 +// 0.029315 +0x2781 +// -0.023131 +0xa5ec +// -0.020669 +0xa54b +// 0.242043 +0x33bf +// -0.053319 +0xaad3 +// -0.229391 +0xb357 +// -0.089076 +0xadb3 +// 0.531613 +0x3841 +// -0.105215 +0xaebc +// -0.149239 +0xb0c7 +// -0.158814 +0xb115 +// -0.046273 +0xa9ec +// 0.349653 +0x3598 +// -0.297035 +0xb4c1 +// -0.034761 +0xa873 +// 0.088890 +0x2db0 +// -0.090350 +0xadc8 +// 0.191713 +0x3223 +// -0.266692 +0xb444 +// 0.009024 +0x209f +// 0.021865 +0x2599 +// 0.018247 +0x24ac +// 0.407519 +0x3685 +// -0.075694 +0xacd8 +// -0.161058 +0xb127 +// -0.113925 +0xaf4b +// 0.054833 +0x2b05 +// 0.191982 +0x3225 +// 0.128859 +0x3020 +// -0.289445 +0xb4a2 +// -0.176742 +0xb1a8 +// -0.001873 +0x97ac +// -0.103597 +0xaea1 +// -0.305608 +0xb4e4 +// -0.188228 +0xb206 +// 0.188313 +0x3207 +// -0.314940 +0xb50a +// -0.218254 +0xb2fc +// -0.203825 +0xb286 +// 0.300571 +0x34cf +// -0.015309 +0xa3d7 +// -0.121593 +0xafc8 +// 0.213363 +0x32d4 +// -0.183894 +0xb1e2 +// 0.017240 +0x246a +// -0.360767 +0xb5c6 +// 0.282824 +0x3486 +// -0.238755 +0xb3a4 +// 0.165821 +0x314e +// 0.243548 +0x33cb +// 0.224890 +0x3332 +// -0.280666 +0xb47e +// -0.061708 +0xabe6 +// -0.065045 +0xac2a +// -0.092799 +0xadf0 +// -0.104868 +0xaeb6 +// -0.491948 +0xb7df +// 0.087967 +0x2da1 +// -0.058921 +0xab8b +// 0.110928 +0x2f19 +// -0.052351 +0xaab3 +// 0.270537 +0x3454 +// 0.054950 +0x2b09 +// -0.039952 +0xa91d +// 0.568871 +0x388d +// -0.131686 +0xb037 +// 0.236488 +0x3391 +// 0.053625 +0x2add +// -0.004540 +0x9ca6 +// 0.049203 +0x2a4c +// -0.088985 +0xadb2 +// -0.031085 +0xa7f5 +// 0.040391 +0x292c +// -0.307709 +0xb4ec +// 0.249009 +0x33f8 +// 0.075827 +0x2cda +// -0.208748 +0xb2ae +// 0.030389 +0x27c8 +// 0.001101 +0x1482 +// -0.054658 +0xaaff +// -0.333483 +0xb556 +// -0.221245 +0xb314 +// -0.180284 +0xb1c5 +// -0.144780 +0xb0a2 +// 0.071886 +0x2c9a +// 0.033164 +0x283f +// -0.198329 +0xb259 +// 0.088868 +0x2db0 +// 0.194591 +0x323a +// 0.256616 +0x341b +// -0.020415 +0xa53a +// 0.236686 +0x3393 +// -0.418913 +0xb6b4 +// -0.429777 +0xb6e0 +// -0.000791 +0x927b +// 0.333937 +0x3558 +// -0.329517 +0xb546 +// 0.254600 +0x3413 +// -0.033425 +0xa847 +// 0.033555 +0x284c +// -0.342891 +0xb57c +// -0.001275 +0x9539 +// 0.121966 +0x2fce +// 0.299115 +0x34c9 +// -0.125760 +0xb006 +// -0.049919 +0xaa64 +// -0.029696 +0xa79a +// 0.089460 +0x2dba +// 0.491240 +0x37dc +// 0.292232 +0x34ad +// -0.032839 +0xa834 +// -0.280363 +0xb47c +// 0.011513 +0x21e5 +// 0.128084 +0x3019 +// -0.174673 +0xb197 +// -0.101300 +0xae7c +// 0.004129 +0x1c3a +// 0.446738 +0x3726 +// 0.048846 +0x2a41 +// 0.240544 +0x33b3 +// 0.173965 +0x3191 +// 0.001731 +0x1717 +// 0.267350 +0x3447 +// -0.203834 +0xb286 +// 0.130411 +0x302c +// -0.158005 +0xb10e +// -0.221675 +0xb318 +// -0.154804 +0xb0f4 +// 0.364580 +0x35d5 +// -0.298768 +0xb4c8 +// -0.073664 +0xacb7 +// 0.071157 +0x2c8e +// -0.273179 +0xb45f +// -0.311154 +0xb4fa +// -0.078843 +0xad0c +// -0.119695 +0xafa9 +// 0.183453 +0x31df +// 0.009809 +0x2106 +// -0.141223 +0xb085 +// 0.058794 +0x2b87 +// -0.183200 +0xb1dd +// -0.065518 +0xac31 +// -0.425348 +0xb6ce +// -0.055448 +0xab19 +// -0.512720 +0xb81a +// 0.061691 +0x2be6 +// 0.033988 +0x285a +// 0.114744 +0x2f58 +// -0.144101 +0xb09c +// -0.222743 +0xb321 +// -0.202934 +0xb27e +// 0.280112 +0x347b +// -0.132858 +0xb040 +// 0.187410 +0x31ff +// -0.308227 +0xb4ee +// 0.222907 +0x3322 +// -0.074058 +0xacbd +// 0.022147 +0x25ab +// 0.072496 +0x2ca4 +// 0.202104 +0x3278 +// -0.130767 +0xb02f +// 0.192644 +0x322a +// 0.057971 +0x2b6c +// -0.180730 +0xb1c9 +// -0.242205 +0xb3c0 +// 0.129956 +0x3029 +// -0.176421 +0xb1a5 +// 0.311340 +0x34fb +// -0.071612 +0xac95 +// 0.079889 +0x2d1d +// -0.079685 +0xad1a +// 0.059105 +0x2b91 +// 0.194508 +0x3239 +// -0.089962 +0xadc2 +// 0.053536 +0x2ada +// -0.277642 +0xb471 +// 0.351264 +0x359f +// 0.011677 +0x21fb +// -0.034149 +0xa85f +// -0.386596 +0xb62f +// -0.248887 +0xb3f7 +// 0.191356 +0x3220 +// 0.141223 +0x3085 +// -0.105691 +0xaec4 +// 0.201283 +0x3271 +// -0.414922 +0xb6a4 +// -0.032970 +0xa838 +// 0.144894 +0x30a3 +// -0.259258 +0xb426 +// 0.007486 +0x1faa +// 0.218561 +0x32fe +// -0.032379 +0xa825 +// -0.013147 +0xa2bb +// -0.484169 +0xb7bf +// -0.311792 +0xb4fd +// 0.070703 +0x2c86 +// -0.327900 +0xb53f +// -0.247080 +0xb3e8 +// 0.016527 +0x243b +// -0.219110 +0xb303 +// -0.264709 +0xb43c +// -0.274832 +0xb466 +// -0.166783 +0xb156 +// -0.181232 +0xb1cd +// -0.039549 +0xa910 +// 0.030216 +0x27bc +// -0.070875 +0xac89 +// 0.118281 +0x2f92 +// 0.283583 +0x348a +// -0.602779 +0xb8d2 +// 0.279589 +0x3479 +// 0.146620 +0x30b1 +// 0.191039 +0x321d +// 0.143264 +0x3096 +// 0.332455 +0x3552 +// 0.041633 +0x2954 +// 0.233313 +0x3377 +// -0.152719 +0xb0e3 +// -0.068508 +0xac62 +// -0.136600 +0xb05f +// 0.167398 +0x315b +// 0.029953 +0x27ab +// 0.088620 +0x2dac +// -0.006848 +0x9f03 +// -0.152969 +0xb0e5 +// 0.040343 +0x292a +// -0.074512 +0xacc5 +// -0.103237 +0xae9b +// -0.419327 +0xb6b6 +// -0.109523 +0xaf02 +// -0.016307 +0xa42d +// -0.021141 +0xa569 +// 0.176622 +0x31a7 +// 0.073034 +0x2cad +// -0.288393 +0xb49d +// -0.298416 +0xb4c6 +// 0.211724 +0x32c6 +// 0.049979 +0x2a66 +// 0.022867 +0x25db +// 0.238833 +0x33a5 +// -0.039943 +0xa91d +// 0.181643 +0x31d0 +// 0.198746 +0x325c +// -0.063506 +0xac10 +// -0.458802 +0xb757 +// -0.063900 +0xac17 +// -0.169460 +0xb16c +// 0.014980 +0x23ac +// 0.031762 +0x2811 +// 0.193957 +0x3235 +// 0.003116 +0x1a62 +// -0.259581 +0xb427 +// -0.440932 +0xb70e +// -0.246088 +0xb3e0 +// 0.060937 +0x2bcd +// 0.256268 +0x341a +// -0.223303 +0xb325 +// -0.087243 +0xad95 +// -0.035926 +0xa899 +// -0.310637 +0xb4f8 +// 0.144631 +0x30a1 +// -0.140745 +0xb081 +// -0.222851 +0xb322 +// 0.080295 +0x2d24 +// 0.119876 +0x2fac +// -0.139719 +0xb079 +// -0.001446 +0x95ec +// 0.229019 +0x3354 +// 0.124539 +0x2ff8 +// -0.125575 +0xb005 +// -0.140433 +0xb07e +// 0.046057 +0x29e5 +// -0.159675 +0xb11c +// -0.354160 +0xb5ab +// -0.408764 +0xb68a +// -0.181826 +0xb1d2 +// -0.095425 +0xae1b +// -0.427296 +0xb6d6 +// -0.001962 +0x9805 +// -0.393936 +0xb64e +// 0.222936 +0x3322 +// 0.052931 +0x2ac6 +// -0.098939 +0xae55 +// 0.419519 +0x36b6 +// 0.015154 +0x23c2 +// 0.100765 +0x2e73 +// -0.058793 +0xab87 +// 0.140113 +0x307c +// -0.422417 +0xb6c2 +// -0.328305 +0xb541 +// -0.057725 +0xab64 +// -0.263376 +0xb437 +// 0.044818 +0x29bd +// 0.213686 +0x32d7 +// 0.116739 +0x2f79 +// 0.052981 +0x2ac8 +// 0.362581 +0x35cd +// 0.005918 +0x1e0f +// -0.102619 +0xae91 +// -0.081831 +0xad3d +// 0.036040 +0x289d +// -0.222624 +0xb320 +// -0.107189 +0xaedc +// 0.208012 +0x32a8 +// -0.098497 +0xae4e +// -0.126441 +0xb00c +// -0.126029 +0xb008 +// -0.572636 +0xb895 +// 0.026598 +0x26cf +// 0.168176 +0x3162 +// -0.031709 +0xa80f +// -0.063024 +0xac09 +// -0.309177 +0xb4f2 +// -0.115240 +0xaf60 +// 0.400347 +0x3668 +// -0.125815 +0xb007 +// -0.213008 +0xb2d1 +// -0.002971 +0x9a16 +// 0.165969 +0x3150 +// -0.099697 +0xae61 +// 0.079570 +0x2d18 +// -0.022531 +0xa5c5 +// -0.153424 +0xb0e9 +// 0.306602 +0x34e8 +// 0.085632 +0x2d7b +// -0.340478 +0xb573 +// -0.275905 +0xb46a +// 0.215672 +0x32e7 +// -0.007790 +0x9ffa +// 0.039899 +0x291b +// -0.081050 +0xad30 +// 0.068876 +0x2c68 +// -0.205238 +0xb291 +// 0.216145 +0x32eb +// 0.106280 +0x2ecd +// 0.022347 +0x25b9 +// -0.235327 +0xb388 +// 0.157538 +0x310b +// 0.253598 +0x340f +// -0.175230 +0xb19b +// 0.044648 +0x29b7 +// 0.108143 +0x2eec +// 0.033127 +0x283d +// -0.346502 +0xb58b +// 0.382482 +0x361f +// 0.386272 +0x362e +// 0.186923 +0x31fb +// -0.634460 +0xb913 +// -0.733883 +0xb9df +// 0.241797 +0x33bd +// -0.010130 +0xa130 +// -0.010130 +0xa130 +// -0.010130 +0xa130 +// -0.010130 +0xa130 +// 0.315558 +0x350d +// 0.040642 +0x2934 +// 0.944725 +0x3b8f +// -0.039577 +0xa911 +// -0.039577 +0xa911 +// -0.039577 +0xa911 +// -0.039577 +0xa911 +// 0.315558 +0x350d +// -0.303237 +0xb4da +// -0.166392 +0xb153 +// -0.441810 +0xb712 +// -0.441810 +0xb712 +// -0.441810 +0xb712 +// -0.441810 +0xb712 +// 0.315558 +0x350d +// -0.303237 +0xb4da +// -0.073044 +0xacad +// 0.865255 +0x3aec +// -0.134745 +0xb050 +// -0.134745 +0xb050 +// -0.134745 +0xb050 +// 0.315558 +0x350d +// -0.303237 +0xb4da +// -0.073044 +0xacad +// -0.134745 +0xb050 +// 0.865255 +0x3aec +// -0.134745 +0xb050 +// -0.134745 +0xb050 +// 0.315558 +0x350d +// -0.303237 +0xb4da +// -0.073044 +0xacad +// -0.134745 +0xb050 +// -0.134745 +0xb050 +// 0.865255 +0x3aec +// -0.134745 +0xb050 +// 0.315558 +0x350d +// -0.303237 +0xb4da +// -0.073044 +0xacad +// -0.134745 +0xb050 +// -0.134745 +0xb050 +// -0.134745 +0xb050 +// 0.865255 +0x3aec +// -0.485710 +0xb7c5 +// 0.685822 +0x397d +// 0.490950 +0x37db +// 0.217549 +0x32f6 +// 0.070088 +0x2c7c +// -0.020580 +0xa545 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// -0.001954 +0x9800 +// 0.225697 +0x3339 +// -0.500602 +0xb801 +// 0.757061 +0x3a0e +// 0.335467 +0x355e +// 0.108078 +0x2eeb +// -0.031736 +0xa810 +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// -0.003013 +0x9a2c +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// -0.386779 +0xb630 +// 0.836684 +0x3ab2 +// 0.269556 +0x3450 +// -0.079152 +0xad11 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// -0.007514 +0x9fb2 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.360954 +0xb5c6 +// 0.853029 +0x3ad3 +// -0.250481 +0xb402 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// -0.023779 +0xa616 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.370624 +0xb5ee +// -0.850296 +0xbacd +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// -0.080721 +0xad2b +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.380273 +0x3616 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// -0.278704 +0xb476 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.061047 +0xabd0 +// 0.225697 +0x3339 +// 0.141180 +0x3085 +// 0.052790 +0x2ac2 +// -0.028585 +0xa751 +// -0.064473 +0xac20 +// 0.078710 +0x2d0a +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// -0.061047 +0xabd0 +// 0.938953 +0x3b83 +// -0.441726 +0xb711 +// 0.663657 +0x394f +// 0.490416 +0x37d9 +// 0.308760 +0x34f1 +// 0.152962 +0x30e5 +// 0.065864 +0x2c37 +// 0.026881 +0x26e2 +// 0.010781 +0x2185 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.001210 +0x14f5 +// 0.191273 +0x321f +// -0.587757 +0xb8b4 +// 0.638605 +0x391c +// 0.402058 +0x366f +// 0.199183 +0x3260 +// 0.085766 +0x2d7d +// 0.035004 +0x287b +// 0.014039 +0x2330 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.001576 +0x1674 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// -0.545567 +0xb85d +// 0.710143 +0x39ae +// 0.351811 +0x35a1 +// 0.151486 +0x30d9 +// 0.061827 +0x2bea +// 0.024797 +0x2659 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.002783 +0x19b3 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// -0.488156 +0xb7cf +// 0.763373 +0x3a1b +// 0.328700 +0x3542 +// 0.134155 +0x304b +// 0.053805 +0x2ae3 +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.006038 +0x1e2f +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.465595 +0xb773 +// 0.782452 +0x3a42 +// 0.319348 +0x351c +// 0.128080 +0x3019 +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.014374 +0x235c +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.461908 +0xb764 +// 0.786231 +0x3a4a +// 0.315332 +0x350c +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.035389 +0x2888 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.463684 +0xb76b +// 0.785118 +0x3a48 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.088113 +0x2da4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.466991 +0xb779 +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.220185 +0x330c +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 +// -0.091044 +0xadd4 +// 0.191273 +0x321f +// 0.100972 +0x2e76 +// 0.051977 +0x2aa7 +// 0.004685 +0x1ccc +// -0.027529 +0xa70c +// -0.043199 +0xa988 +// -0.050675 +0xaa7d +// -0.055285 +0xab14 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// -0.091044 +0xadd4 +// 0.908956 +0x3b46 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefR1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefR1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..8323c5a916502857ff68635a74835cee8433cef1 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefR1_f16.txt @@ -0,0 +1,12538 @@ +H +6268 +// -0.779000 +0xba3b +// 1.358664 +0x3d6f +// -0.402256 +0xb670 +// 0.561578 +0x387e +// 0.935550 +0x3b7c +// -0.073757 +0xacb8 +// 0.209975 +0x32b8 +// 0.438455 +0x3704 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.215174 +0xb2e3 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.589131 +0x38b7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.078317 +0x2d03 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.081225 +0xad33 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.050123 +0xaa6a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.297964 +0x34c4 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.058328 +0xab77 +// 0.175891 +0x31a1 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.071460 +0x2c93 +// -0.239493 +0xb3aa +// -0.126189 +0xb00a +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.723135 +0x39c9 +// -0.369270 +0xb5e9 +// 0.509375 +0x3813 +// 0.096117 +0x2e27 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.268696 +0x344d +// 0.097024 +0x2e36 +// -0.560053 +0xb87b +// 0.395939 +0x3656 +// 0.415099 +0x36a4 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// 0.323543 +0x352d +// -0.231589 +0xb369 +// -0.444911 +0xb71e +// 0.576626 +0x389d +// 0.613916 +0x38e9 +// 0.165252 +0x314a +// -1.000000 +0xbc00 +// 0.000112 +0x759 +// -0.144180 +0xb09d +// -0.140794 +0xb081 +// -0.017404 +0xa475 +// -0.074455 +0xacc4 +// -0.238971 +0xb3a6 +// -0.003118 +0x9a63 +// 0.000000 +0x0 +// -1.175931 +0xbcb4 +// -1.148311 +0xbc98 +// -0.141943 +0xb08b +// -0.607250 +0xb8dc +// -1.949037 +0xbfcc +// -0.025430 +0xa683 +// 0.000000 +0x0 +// -0.014183 +0xa343 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.418536 +0xb6b2 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.238198 +0x339f +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.174429 +0x3195 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.062182 +0xabf6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.181141 +0x31cc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.065982 +0xac39 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.232383 +0xb370 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.072297 +0xaca1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.223617 +0xb328 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.135487 +0x3056 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.298136 +0x34c5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.313160 +0x3503 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.115632 +0x2f67 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.078883 +0xad0c +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.369474 +0x35e9 +// -0.072777 +0xaca8 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.265385 +0x343f +// -0.246752 +0xb3e5 +// 0.263153 +0x3436 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.025474 +0xa685 +// 0.003443 +0x1b0d +// 0.260616 +0x342b +// -0.143273 +0xb096 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.294794 +0x34b7 +// 0.327573 +0x353e +// -0.103784 +0xaea4 +// -0.009662 +0xa0f2 +// 0.306909 +0x34e9 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.113856 +0x2f49 +// -0.037274 +0xa8c5 +// 0.267792 +0x3449 +// -0.079888 +0xad1d +// 0.332290 +0x3551 +// 0.042708 +0x2977 +// 1.000000 +0x3c00 +// 0.063893 +0x2c17 +// -0.517291 +0xb823 +// -0.407394 +0xb685 +// 0.467610 +0x377b +// -0.354513 +0xb5ac +// -0.191667 +0xb222 +// -0.069641 +0xac75 +// 0.148091 +0x30bd +// 0.229636 +0x3359 +// 0.226029 +0x333c +// -0.033818 +0xa854 +// -0.052360 +0xaab4 +// 0.312110 +0x34fe +// -0.304081 +0xb4de +// 0.253082 +0x340d +// 0.084579 +0x2d6a +// 0.040141 +0x2923 +// 0.109801 +0x2f07 +// -0.341857 +0xb578 +// -0.540153 +0xb852 +// -0.234043 +0xb37d +// -0.221500 +0xb317 +// 0.140343 +0x307e +// -0.063788 +0xac15 +// -0.060131 +0xabb2 +// -0.087400 +0xad98 +// 0.058668 +0x2b82 +// 0.093842 +0x2e02 +// -0.038568 +0xa8f0 +// -0.226660 +0xb341 +// 0.132331 +0x303c +// -0.116236 +0xaf70 +// -0.165395 +0xb14b +// -0.142702 +0xb091 +// -0.171966 +0xb181 +// -0.312369 +0xb4ff +// 0.147330 +0x30b7 +// -0.069203 +0xac6e +// 0.309558 +0x34f4 +// 0.250156 +0x3401 +// -0.138649 +0xb070 +// -0.061422 +0xabdd +// 0.362333 +0x35cc +// 0.038969 +0x28fd +// 0.097680 +0x2e40 +// 0.299668 +0x34cb +// -0.127966 +0xb018 +// 0.007190 +0x1f5d +// -0.570306 +0xb890 +// -0.077793 +0xacfb +// 0.047063 +0x2a06 +// -0.185419 +0xb1ef +// 0.018233 +0x24ab +// 0.390990 +0x3641 +// 0.336406 +0x3562 +// 0.184429 +0x31e7 +// 0.511438 +0x3817 +// 0.515096 +0x381f +// -0.372723 +0xb5f7 +// -0.155789 +0xb0fc +// -0.216370 +0xb2ed +// 0.325933 +0x3537 +// 0.194841 +0x323c +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.037393 +0xa8c9 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.266187 +0xb442 +// 0.051340 +0x2a92 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.232057 +0x336d +// 0.084373 +0x2d66 +// -0.184584 +0xb1e8 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.272442 +0x345c +// 0.028190 +0x2737 +// 0.444694 +0x371d +// -0.320239 +0xb520 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.216476 +0x32ed +// 0.211019 +0x32c1 +// 0.215148 +0x32e2 +// -0.308414 +0xb4ef +// 0.358643 +0x35bd +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.264854 +0x343d +// -0.096850 +0xae33 +// 0.282857 +0x3487 +// 0.017066 +0x245e +// -0.069707 +0xac76 +// -0.150761 +0xb0d3 +// 1.000000 +0x3c00 +// 0.019020 +0x24de +// -0.167282 +0xb15a +// 0.030988 +0x27ef +// -0.004623 +0x9cbc +// 0.007381 +0x1f8f +// 0.111219 +0x2f1e +// 0.072554 +0x2ca5 +// -0.176244 +0xb1a4 +// 0.309873 +0x34f5 +// -0.202717 +0xb27d +// 0.444478 +0x371d +// 0.152692 +0x30e3 +// 0.090792 +0x2dd0 +// 0.393275 +0x364b +// 0.111059 +0x2f1c +// -0.139905 +0xb07a +// -0.226587 +0xb340 +// 0.143878 +0x309b +// -0.366645 +0xb5de +// -0.718241 +0xb9bf +// 0.039598 +0x2912 +// 0.239071 +0x33a6 +// -0.333772 +0xb557 +// 0.100384 +0x2e6d +// -0.414285 +0xb6a1 +// -0.111637 +0xaf25 +// 0.131081 +0x3032 +// 0.100845 +0x2e74 +// 0.185134 +0x31ed +// 0.318330 +0x3518 +// -0.297047 +0xb4c1 +// -0.453569 +0xb742 +// -0.045431 +0xa9d1 +// -0.023996 +0xa625 +// 0.009882 +0x210f +// -0.035363 +0xa887 +// 0.122499 +0x2fd7 +// 0.302590 +0x34d7 +// -0.276783 +0xb46e +// -0.570186 +0xb890 +// 0.048914 +0x2a43 +// -0.225933 +0xb33b +// 0.174739 +0x3197 +// -0.228642 +0xb351 +// -0.355661 +0xb5b1 +// 0.116334 +0x2f72 +// -0.018144 +0xa4a5 +// -0.066354 +0xac3f +// -0.360285 +0xb5c4 +// 0.040199 +0x2925 +// 0.169033 +0x3169 +// 0.041242 +0x2947 +// 0.125818 +0x3007 +// 0.145197 +0x30a5 +// -0.175235 +0xb19c +// 0.093368 +0x2dfa +// -0.132103 +0xb03a +// 0.370345 +0x35ed +// 0.003683 +0x1b8b +// -0.036806 +0xa8b6 +// -0.440256 +0xb70b +// 0.241287 +0x33b9 +// 0.039082 +0x2901 +// -1.394970 +0xbd94 +// -0.780329 +0xba3e +// 2.061079 +0x401f +// 1.009663 +0x3c0a +// 0.648223 +0x3930 +// 0.256768 +0x341c +// 0.328775 +0x3543 +// 0.033283 +0x2843 +// -1.884612 +0xbf8a +// 0.218332 +0x32fd +// 0.017512 +0x247c +// 0.372350 +0x35f5 +// 0.396942 +0x365a +// 0.187926 +0x3203 +// 0.409418 +0x368d +// 0.375447 +0x3602 +// -0.171949 +0xb181 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.308312 +0xb4ef +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.008950 +0x2095 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.196559 +0xb24a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.023010 +0x25e4 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.355023 +0x35ae +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.423587 +0xb6c7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.244699 +0x33d5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.463428 +0x376a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.223364 +0x3326 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.040522 +0xa930 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.027182 +0xa6f5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.029621 +0x2795 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.305326 +0xb4e3 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.141323 +0x3086 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.717198 +0x39bd +// 0.349208 +0x3596 +// 0.025250 +0x2677 +// 0.384789 +0x3628 +// 0.047896 +0x2a21 +// -0.096798 +0xae32 +// -0.044807 +0xa9bc +// 0.274469 +0x3464 +// 0.040210 +0x2926 +// 0.069936 +0x2c7a +// -0.021424 +0xa57c +// -0.153957 +0xb0ed +// 0.007407 +0x1f96 +// -0.118928 +0xaf9d +// 0.189936 +0x3214 +// -0.212208 +0xb2ca +// 0.301253 +0x34d2 +// -0.641652 +0xb922 +// -0.034572 +0xa86d +// 0.302655 +0x34d8 +// -0.426795 +0xb6d4 +// 0.223035 +0x3323 +// 0.106484 +0x2ed1 +// 0.311511 +0x34fc +// -0.024069 +0xa629 +// -0.014959 +0xa3a9 +// 0.002165 +0x186f +// 0.083049 +0x2d51 +// -0.212303 +0xb2cb +// -0.034915 +0xa878 +// 0.292685 +0x34af +// -0.124700 +0xaffb +// -0.291529 +0xb4aa +// -0.041718 +0xa957 +// -0.471254 +0xb78a +// 0.004302 +0x1c68 +// 0.138808 +0x3071 +// 0.283337 +0x3489 +// 0.360212 +0x35c3 +// 0.161636 +0x312c +// -0.281889 +0xb483 +// 0.113291 +0x2f40 +// 0.279667 +0x347a +// -0.285754 +0xb492 +// 0.450050 +0x3733 +// 0.200664 +0x326c +// 0.093627 +0x2dfe +// 0.136870 +0x3061 +// -0.244822 +0xb3d6 +// -0.441748 +0xb711 +// 0.188544 +0x3209 +// -0.537469 +0xb84d +// -0.071028 +0xac8c +// 0.169606 +0x316d +// 0.003285 +0x1aba +// 0.240898 +0x33b5 +// 0.554248 +0x386f +// 0.394992 +0x3652 +// -0.033618 +0xa84e +// -0.086174 +0xad84 +// 0.137555 +0x3067 +// -0.024811 +0xa65a +// 0.107252 +0x2edd +// -0.341275 +0xb576 +// -0.033039 +0xa83b +// -0.244194 +0xb3d0 +// 0.358589 +0x35bd +// 0.202754 +0x327d +// -0.545936 +0xb85e +// -0.218852 +0xb301 +// -0.298820 +0xb4c8 +// -0.085018 +0xad71 +// 0.178664 +0x31b8 +// -0.109407 +0xaf01 +// 0.362064 +0x35cb +// -0.560180 +0xb87b +// 0.097692 +0x2e41 +// -0.019247 +0xa4ed +// -0.102506 +0xae8f +// 0.219847 +0x3309 +// 0.045008 +0x29c3 +// -0.132041 +0xb03a +// -0.246042 +0xb3e0 +// 0.063936 +0x2c18 +// -0.175001 +0xb19a +// -0.261806 +0xb430 +// 0.369797 +0x35eb +// -0.562726 +0xb880 +// 0.162326 +0x3132 +// -0.071997 +0xac9c +// 0.053276 +0x2ad2 +// -0.104456 +0xaeaf +// -0.063514 +0xac11 +// 0.181205 +0x31cc +// 0.605575 +0x38d8 +// -0.170803 +0xb177 +// 0.218547 +0x32fe +// 0.255649 +0x3417 +// -0.061078 +0xabd1 +// 0.251819 +0x3407 +// 0.477130 +0x37a2 +// 0.403384 +0x3674 +// 0.157427 +0x310a +// -0.164475 +0xb143 +// -0.298933 +0xb4c8 +// 0.498546 +0x37fa +// 0.227021 +0x3344 +// -0.259482 +0xb427 +// -0.540453 +0xb853 +// 0.033478 +0x2849 +// -0.326387 +0xb539 +// -0.302735 +0xb4d8 +// 0.016656 +0x2444 +// 0.341520 +0x3577 +// 0.155421 +0x30f9 +// 0.158535 +0x3113 +// -0.229431 +0xb357 +// -0.092205 +0xade7 +// 0.369500 +0x35e9 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.013057 +0xa2af +// -0.023756 +0xa615 +// 0.472674 +0x3790 +// 0.116762 +0x2f79 +// -0.002504 +0x9921 +// -0.363230 +0xb5d0 +// 0.274069 +0x3463 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.244749 +0x33d5 +// -0.126097 +0xb009 +// -0.481311 +0xb7b3 +// -0.051009 +0xaa87 +// -0.165613 +0xb14d +// 0.437107 +0x36fe +// 0.356279 +0x35b3 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.617839 +0x38f1 +// 0.025832 +0x269d +// 0.118794 +0x2f9a +// 0.192300 +0x3227 +// -0.188711 +0xb20a +// 0.047025 +0x2a05 +// 0.466914 +0x3778 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.068697 +0xac66 +// -0.062116 +0xabf3 +// 0.198066 +0x3257 +// -0.006807 +0x9ef8 +// 0.405710 +0x367e +// 0.124967 +0x2fff +// 0.130711 +0x302f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.060316 +0x2bb8 +// -0.315958 +0xb50e +// -0.378907 +0xb610 +// 0.161452 +0x312b +// -0.009104 +0xa0a9 +// 0.111057 +0x2f1c +// -0.066366 +0xac3f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.215426 +0xb2e5 +// -0.198747 +0xb25c +// -0.007953 +0xa012 +// -0.069705 +0xac76 +// -0.210091 +0xb2b9 +// -0.151510 +0xb0d9 +// 0.270846 +0x3455 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.307267 +0x34eb +// 0.229709 +0x335a +// -0.128580 +0xb01d +// 0.087146 +0x2d94 +// 0.228599 +0x3351 +// 0.307828 +0x34ed +// 0.069899 +0x2c79 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.235817 +0xb38c +// -0.144333 +0xb09e +// 0.236948 +0x3395 +// 0.172866 +0x3188 +// 0.043243 +0x2989 +// 0.324643 +0x3532 +// 0.074547 +0x2cc5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.423633 +0x36c7 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.021832 +0x2597 +// -0.180322 +0xb1c5 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.291664 +0xb4ab +// 0.523086 +0x382f +// -0.099535 +0xae5f +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.115472 +0xaf64 +// -0.216039 +0xb2ea +// -0.244817 +0xb3d6 +// -0.228200 +0xb34d +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.019546 +0xa501 +// -0.024877 +0xa65e +// -0.170677 +0xb176 +// -0.302568 +0xb4d7 +// -0.120099 +0xafb0 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.057662 +0x2b61 +// -0.294068 +0xb4b5 +// 0.053105 +0x2acc +// 0.297516 +0x34c3 +// 0.034655 +0x2870 +// -0.147622 +0xb0b9 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.061479 +0x2bdf +// 0.065466 +0x2c31 +// 0.246881 +0x33e6 +// -0.004780 +0x9ce5 +// 0.047466 +0x2a13 +// 0.114341 +0x2f51 +// 0.247867 +0x33ef +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.099746 +0xae62 +// -0.147314 +0xb0b7 +// 0.261135 +0x342e +// -0.299634 +0xb4cb +// -0.034206 +0xa861 +// 0.309327 +0x34f3 +// -0.238892 +0xb3a5 +// -0.131560 +0xb036 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.247894 +0x33ef +// -0.228291 +0xb34e +// 0.105771 +0x2ec5 +// -0.186824 +0xb1fa +// 0.188766 +0x320a +// 0.194707 +0x323b +// -0.323375 +0xb52d +// 0.283793 +0x348a +// -0.436249 +0xb6fb +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.004666 +0x9cc7 +// -0.175307 +0xb19c +// 0.393416 +0x364b +// -0.017147 +0xa464 +// 0.007042 +0x1f36 +// 0.532133 +0x3842 +// -0.214004 +0xb2d9 +// 0.116985 +0x2f7d +// -0.385004 +0xb629 +// 0.088756 +0x2dae +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.005220 +0x1d59 +// -0.058925 +0xab8b +// -0.001488 +0x9618 +// -0.304928 +0xb4e1 +// -0.388123 +0xb636 +// 0.116305 +0x2f72 +// -0.006657 +0x9ed1 +// 0.716483 +0x39bb +// -0.040057 +0xa921 +// -0.160777 +0xb125 +// -0.379107 +0xb611 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.034698 +0xa871 +// 0.211747 +0x32c7 +// 0.095727 +0x2e20 +// -0.180454 +0xb1c6 +// -0.021354 +0xa577 +// -0.029178 +0xa778 +// -0.264196 +0xb43a +// -0.076225 +0xace1 +// 0.130202 +0x302b +// 0.004047 +0x1c25 +// 0.015306 +0x23d6 +// -0.334000 +0xb558 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.143567 +0xb098 +// 0.044685 +0x29b8 +// 0.082853 +0x2d4d +// 0.025316 +0x267b +// -0.247399 +0xb3eb +// -0.369097 +0xb5e8 +// 0.569868 +0x388f +// -0.264494 +0xb43b +// 0.498917 +0x37fc +// 0.227202 +0x3345 +// 0.626400 +0x3903 +// -0.006797 +0x9ef6 +// -0.232793 +0xb373 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.044862 +0xa9be +// 0.441147 +0x370f +// 0.432400 +0x36eb +// -0.133911 +0xb049 +// 0.153973 +0x30ed +// 0.127119 +0x3011 +// -0.264104 +0xb43a +// 0.189877 +0x3213 +// -0.421977 +0xb6c0 +// 0.247343 +0x33ea +// 0.032171 +0x281e +// 0.138076 +0x306b +// 0.412839 +0x369b +// -0.539374 +0xb851 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.466086 +0x3775 +// -0.317291 +0xb514 +// -0.445262 +0xb720 +// -0.238830 +0xb3a4 +// -0.210377 +0xb2bb +// 0.133671 +0x3047 +// 0.475057 +0x379a +// -0.436764 +0xb6fd +// -0.123948 +0xafef +// 0.007209 +0x1f62 +// -0.063233 +0xac0c +// -0.290834 +0xb4a7 +// -0.258009 +0xb421 +// 0.183824 +0x31e2 +// 0.779901 +0x3a3d +// -1.000000 +0xbc00 +// -2.812119 +0xc1a0 +// 1.295043 +0x3d2e +// 1.613747 +0x3e74 +// 1.195844 +0x3cc9 +// -0.816034 +0xba87 +// 0.375166 +0x3601 +// 1.343589 +0x3d60 +// -0.217564 +0xb2f6 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.217637 +0xb2f7 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.277097 +0xb46f +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.038465 +0x28ec +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.288712 +0xb49f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.010172 +0x2135 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.206407 +0x329b +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.169967 +0x3170 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.290005 +0xb4a4 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.140247 +0xb07d +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.009507 +0xa0de +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.121570 +0x2fc8 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.143002 +0x3093 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.021504 +0x2581 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.083631 +0x2d5a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.208183 +0xb2a9 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.048945 +0x2a44 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.108092 +0x2eeb +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.317898 +0x3516 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.173388 +0x318c +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.294566 +0xb4b7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.195348 +0xb240 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.107289 +0x2ede +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.076878 +0xacec +// 0.223299 +0x3325 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.041024 +0xa940 +// -0.034741 +0xa872 +// -0.082837 +0xad4d +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.080560 +0xad28 +// 0.135370 +0x3055 +// 0.172626 +0x3186 +// -0.161300 +0xb129 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.394517 +0xb650 +// 0.182150 +0x31d4 +// 0.044781 +0x29bb +// 0.239348 +0x33a9 +// -0.050007 +0xaa67 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.274942 +0xb466 +// 0.085799 +0x2d7e +// 0.344429 +0x3583 +// -0.244267 +0xb3d1 +// 0.037692 +0x28d3 +// -0.126743 +0xb00e +// -1.000000 +0xbc00 +// -0.162755 +0xb135 +// -0.275182 +0xb467 +// -0.020280 +0xa531 +// -0.492389 +0xb7e1 +// 0.292111 +0x34ac +// 0.187530 +0x3200 +// -0.026934 +0xa6e5 +// -0.375469 +0xb602 +// 0.099688 +0x2e61 +// -0.014140 +0xa33d +// 0.296546 +0x34bf +// -0.049684 +0xaa5c +// -0.142751 +0xb091 +// 0.380872 +0x3618 +// -0.276963 +0xb46e +// 0.146853 +0x30b3 +// 0.040208 +0x2926 +// -0.241716 +0xb3bc +// 0.160476 +0x3123 +// -0.103103 +0xae99 +// -0.002102 +0x984e +// -0.116415 +0xaf73 +// -0.119260 +0xafa2 +// 0.138800 +0x3071 +// 0.214129 +0x32da +// -0.399380 +0xb664 +// 0.256010 +0x3419 +// 0.335776 +0x355f +// -0.355206 +0xb5af +// -0.174585 +0xb196 +// 0.313267 +0x3503 +// -0.072751 +0xaca8 +// 0.197454 +0x3252 +// 0.005063 +0x1d2f +// 0.243118 +0x33c8 +// -0.230576 +0xb361 +// -0.030825 +0xa7e4 +// 0.029864 +0x27a5 +// 0.071613 +0x2c95 +// -0.049455 +0xaa55 +// -0.112503 +0xaf33 +// -0.042860 +0xa97c +// -0.122528 +0xafd7 +// 0.140921 +0x3082 +// 0.051005 +0x2a87 +// 0.289737 +0x34a3 +// -0.020268 +0xa530 +// 0.211441 +0x32c4 +// 0.001386 +0x15ad +// -0.091517 +0xaddb +// 0.056965 +0x2b4b +// -0.267316 +0xb447 +// -0.236702 +0xb393 +// -0.348291 +0xb593 +// -0.034714 +0xa872 +// 0.004980 +0x1d19 +// -0.010533 +0xa165 +// 0.073169 +0x2caf +// 0.256649 +0x341b +// 0.055705 +0x2b21 +// 0.178357 +0x31b5 +// -0.079990 +0xad1f +// -0.112476 +0xaf33 +// 0.041369 +0x294c +// -0.157416 +0xb10a +// 0.050196 +0x2a6d +// -0.157008 +0xb106 +// -0.340221 +0xb572 +// 0.082113 +0x2d41 +// 0.262274 +0x3432 +// -0.112372 +0xaf31 +// -0.286783 +0xb497 +// -0.392501 +0xb648 +// -0.066113 +0xac3b +// -0.221560 +0xb317 +// -0.118167 +0xaf90 +// 0.411338 +0x3695 +// 0.266718 +0x3444 +// 0.041972 +0x295f +// 0.181390 +0x31ce +// -0.019561 +0xa502 +// -0.192814 +0xb22c +// -0.072531 +0xaca4 +// 0.064884 +0x2c27 +// -0.196519 +0xb24a +// 0.304762 +0x34e0 +// -0.154976 +0xb0f6 +// 0.088077 +0x2da3 +// 0.123588 +0x2fe9 +// -0.171133 +0xb17a +// -0.139377 +0xb076 +// -0.028740 +0xa75b +// -0.365851 +0xb5db +// -0.242221 +0xb3c0 +// 0.396959 +0x365a +// -0.023214 +0xa5f1 +// 0.058926 +0x2b8b +// -0.238133 +0xb39f +// 0.095704 +0x2e20 +// 0.326306 +0x3539 +// -0.189309 +0xb20f +// 0.097661 +0x2e40 +// -0.335238 +0xb55d +// 0.028807 +0x2760 +// -0.158915 +0xb116 +// -0.315117 +0xb50b +// 0.074160 +0x2cbf +// 0.023308 +0x25f8 +// 0.160619 +0x3124 +// 0.082768 +0x2d4c +// -0.353259 +0xb5a7 +// -0.276749 +0xb46e +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.147623 +0xb0b9 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.068026 +0x2c5b +// -0.126305 +0xb00b +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.119555 +0xafa7 +// 0.013033 +0x22ac +// -0.040631 +0xa933 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.318085 +0xb517 +// -0.218117 +0xb2fb +// -0.237440 +0xb399 +// 0.172215 +0x3183 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.110849 +0xaf18 +// -0.122159 +0xafd1 +// -0.175510 +0xb19e +// 0.224712 +0x3331 +// -0.064198 +0xac1c +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.093010 +0x2df4 +// -0.254468 +0xb412 +// -0.152428 +0xb0e1 +// -0.212941 +0xb2d0 +// -0.032428 +0xa827 +// -0.144699 +0xb0a1 +// 1.000000 +0x3c00 +// -0.084567 +0xad6a +// 0.279130 +0x3477 +// 0.354640 +0x35ad +// -0.212074 +0xb2c9 +// 0.106543 +0x2ed2 +// 0.144612 +0x30a1 +// 0.032460 +0x2828 +// -0.212565 +0xb2cd +// -0.054346 +0xaaf5 +// -0.043109 +0xa985 +// -0.356867 +0xb5b6 +// -0.090340 +0xadc8 +// -0.279142 +0xb477 +// 0.197800 +0x3254 +// -0.339098 +0xb56d +// 0.012202 +0x223f +// 0.284723 +0x348e +// -0.340772 +0xb574 +// 0.024803 +0x2659 +// -0.158396 +0xb112 +// -0.100796 +0xae73 +// 0.143876 +0x309b +// 0.093276 +0x2df8 +// -0.051703 +0xaa9e +// -0.083790 +0xad5d +// 0.115658 +0x2f67 +// 0.143753 +0x309a +// 0.216637 +0x32ef +// -0.329028 +0xb544 +// -0.272435 +0xb45c +// -0.167864 +0xb15f +// 0.092937 +0x2df3 +// -0.185355 +0xb1ee +// 0.261671 +0x3430 +// -0.050798 +0xaa81 +// 0.054106 +0x2aed +// 0.270980 +0x3456 +// -0.057917 +0xab6a +// -0.202573 +0xb27b +// 0.157495 +0x310a +// 0.046817 +0x29fe +// 0.165633 +0x314d +// -0.014247 +0xa34b +// -0.022412 +0xa5bd +// 0.166724 +0x3156 +// -0.268233 +0xb44b +// 0.174118 +0x3192 +// 0.123018 +0x2fe0 +// -0.172733 +0xb187 +// -0.205913 +0xb297 +// 0.141710 +0x3089 +// -0.191896 +0xb224 +// 0.046770 +0x29fd +// -0.139682 +0xb078 +// 0.283358 +0x3489 +// -0.062567 +0xac01 +// 0.383111 +0x3621 +// -0.145866 +0xb0ab +// -0.244309 +0xb3d1 +// 0.330905 +0x354b +// 0.379201 +0x3611 +// 0.015721 +0x2406 +// -0.108847 +0xaef7 +// 0.228745 +0x3352 +// 0.100608 +0x2e70 +// 0.144009 +0x309c +// -0.111223 +0xaf1e +// -0.114468 +0xaf53 +// -0.310672 +0xb4f9 +// -0.345017 +0xb585 +// -0.068181 +0xac5d +// -0.056480 +0xab3b +// 0.100236 +0x2e6a +// -0.006555 +0x9eb6 +// 0.107347 +0x2edf +// 0.178821 +0x31b9 +// 0.214941 +0x32e1 +// 0.174858 +0x3198 +// -0.000334 +0x8d79 +// -0.182576 +0xb1d8 +// 0.226401 +0x333f +// 0.329252 +0x3545 +// 0.106064 +0x2eca +// -0.040242 +0xa927 +// -0.010568 +0xa169 +// 0.274431 +0x3464 +// -0.058804 +0xab87 +// -0.251318 +0xb405 +// 0.160923 +0x3126 +// 0.005071 +0x1d31 +// -0.441087 +0xb70f +// 0.268566 +0x344c +// 0.269031 +0x344e +// 0.008576 +0x2064 +// -0.081205 +0xad32 +// -0.022198 +0xa5af +// 0.023021 +0x25e5 +// 0.070916 +0x2c8a +// -0.146092 +0xb0ad +// -0.341130 +0xb575 +// 0.332642 +0x3553 +// 0.187983 +0x3204 +// -0.326737 +0xb53a +// 0.118465 +0x2f95 +// -0.053578 +0xaadc +// 0.045653 +0x29d8 +// 0.020133 +0x2527 +// 0.014975 +0x23ab +// 0.024570 +0x264a +// 0.200321 +0x3269 +// -0.007811 +0xa000 +// -0.011806 +0xa20b +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.265321 +0xb43f +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.139985 +0xb07b +// 0.418568 +0x36b2 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.255780 +0xb418 +// -0.394734 +0xb651 +// 0.230175 +0x335e +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.239825 +0x33ad +// -0.129258 +0xb023 +// 0.167000 +0x3158 +// 0.375103 +0x3600 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.090578 +0xadcc +// -0.048242 +0xaa2d +// 0.053947 +0x2ae8 +// 0.296531 +0x34bf +// 0.114921 +0x2f5b +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.267379 +0xb447 +// 0.330021 +0x3548 +// 0.072181 +0x2c9f +// 0.175097 +0x319a +// 0.278263 +0x3474 +// 0.305697 +0x34e4 +// -1.000000 +0xbc00 +// 0.089221 +0x2db6 +// 0.199074 +0x325f +// 0.239702 +0x33ac +// -0.077003 +0xacee +// 0.002677 +0x197b +// -0.021470 +0xa57f +// 0.141031 +0x3083 +// 0.308770 +0x34f1 +// 0.086326 +0x2d86 +// 0.240760 +0x33b4 +// 0.117480 +0x2f85 +// -0.121528 +0xafc7 +// -0.056141 +0xab30 +// 0.458063 +0x3754 +// 0.011011 +0x21a3 +// -0.073151 +0xacaf +// -0.081580 +0xad39 +// 0.052016 +0x2aa8 +// 0.119117 +0x2fa0 +// -0.184339 +0xb1e6 +// -0.317842 +0xb516 +// -0.131181 +0xb033 +// 0.052560 +0x2aba +// 0.065761 +0x2c35 +// 0.292204 +0x34ad +// -0.421985 +0xb6c0 +// -0.418991 +0xb6b4 +// -0.290969 +0xb4a8 +// -0.008177 +0xa030 +// 0.140651 +0x3080 +// 0.095513 +0x2e1d +// 0.129256 +0x3023 +// -0.164820 +0xb146 +// -0.040985 +0xa93f +// 0.208745 +0x32ae +// -0.105248 +0xaebc +// 0.247994 +0x33f0 +// 0.208279 +0x32aa +// 0.210652 +0x32be +// 0.226362 +0x333e +// -0.201938 +0xb276 +// -0.216671 +0xb2ef +// 0.018335 +0x24b2 +// 0.015870 +0x2410 +// 0.290601 +0x34a6 +// 0.472766 +0x3790 +// -0.023353 +0xa5fa +// 0.032760 +0x2831 +// -0.130116 +0xb02a +// 0.107046 +0x2eda +// -0.048037 +0xaa26 +// -0.213774 +0xb2d7 +// -0.173526 +0xb18e +// -0.032129 +0xa81d +// -0.355988 +0xb5b2 +// 0.181863 +0x31d2 +// 0.251772 +0x3407 +// 0.036199 +0x28a2 +// 0.068525 +0x2c63 +// 0.289855 +0x34a3 +// -0.101303 +0xae7c +// -0.023115 +0xa5eb +// 0.039986 +0x291e +// -0.212861 +0xb2d0 +// 0.130822 +0x3030 +// -0.179057 +0xb1bb +// 0.141884 +0x308a +// -0.077390 +0xacf4 +// 0.106962 +0x2ed8 +// 0.298663 +0x34c7 +// -0.022691 +0xa5cf +// -0.369058 +0xb5e8 +// 0.511040 +0x3817 +// 0.161924 +0x312e +// 0.047714 +0x2a1b +// -0.244853 +0xb3d6 +// -0.235528 +0xb389 +// -0.092007 +0xade3 +// -0.049818 +0xaa60 +// -0.394747 +0xb651 +// 0.085463 +0x2d78 +// 0.278096 +0x3473 +// -0.053896 +0xaae6 +// -0.056727 +0xab43 +// -0.253084 +0xb40d +// 0.009787 +0x2103 +// -0.097884 +0xae44 +// 0.362931 +0x35cf +// 0.126397 +0x300b +// -0.167866 +0xb15f +// -0.164665 +0xb145 +// -0.278589 +0xb475 +// -0.228387 +0xb34f +// -0.219472 +0xb306 +// 0.015849 +0x240f +// -0.097907 +0xae44 +// 0.169766 +0x316f +// -0.168401 +0xb164 +// 0.269423 +0x3450 +// 0.348163 +0x3592 +// 0.162605 +0x3134 +// -0.030387 +0xa7c7 +// -0.053512 +0xaad9 +// 0.052847 +0x2ac4 +// -0.047637 +0xaa19 +// 0.007506 +0x1fb0 +// -0.138064 +0xb06b +// 0.171546 +0x317d +// -0.068779 +0xac67 +// -0.128521 +0xb01d +// -0.213722 +0xb2d7 +// 0.133524 +0x3046 +// -2.246803 +0xc07e +// -0.145884 +0xb0ab +// -0.464024 +0xb76d +// -2.480608 +0xc0f6 +// 0.056558 +0x2b3d +// -0.376049 +0xb604 +// 0.105239 +0x2ebc +// -0.162927 +0xb137 +// -0.822932 +0xba95 +// 0.124475 +0x2ff7 +// 0.394415 +0x3650 +// -0.137331 +0xb065 +// -0.451308 +0xb739 +// -0.541481 +0xb855 +// 0.459785 +0x375b +// 0.216474 +0x32ed +// -0.268252 +0xb44b +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.018691 +0xa4c9 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.208806 +0x32af +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.020051 +0xa522 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.251188 +0xb405 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.208547 +0xb2ac +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.195163 +0xb23f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.072867 +0xacaa +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.053855 +0xaae5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.169657 +0x316e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.065007 +0xac29 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.133553 +0x3046 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.104059 +0xaea9 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.012053 +0xa22c +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.084660 +0x2d6b +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.165235 +0xb14a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.060888 +0xabcb +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.205959 +0x3297 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.097696 +0xae41 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.322745 +0x352a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.275195 +0x3467 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.012394 +0x2259 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.663113 +0xb94e +// 0.375130 +0x3601 +// 0.097935 +0x2e45 +// 0.046837 +0x29ff +// 0.172599 +0x3186 +// -0.213080 +0xb2d2 +// 0.094110 +0x2e06 +// -0.246304 +0xb3e2 +// 0.070513 +0x2c83 +// 0.314999 +0x350a +// -0.061018 +0xabcf +// -0.161769 +0xb12d +// -0.258284 +0xb422 +// -0.102171 +0xae8a +// -0.150045 +0xb0cd +// 0.171189 +0x317a +// 0.460889 +0x3760 +// -0.779313 +0xba3c +// -0.071774 +0xac98 +// 0.201173 +0x3270 +// -0.118771 +0xaf9a +// -0.151203 +0xb0d7 +// 0.100288 +0x2e6b +// -0.115975 +0xaf6c +// 0.149090 +0x30c5 +// 0.342622 +0x357b +// -0.049766 +0xaa5f +// 0.020917 +0x255b +// -0.323490 +0xb52d +// 0.014225 +0x2349 +// -0.047600 +0xaa18 +// 0.192164 +0x3226 +// 0.216974 +0x32f1 +// -0.159118 +0xb117 +// -0.651783 +0xb937 +// -0.371330 +0xb5f1 +// 0.211248 +0x32c3 +// 0.261767 +0x3430 +// -0.227820 +0xb34a +// 0.148546 +0x30c1 +// 0.036681 +0x28b2 +// 0.255548 +0x3417 +// 0.019238 +0x24ed +// -0.258440 +0xb423 +// 0.030135 +0x27b7 +// 0.193677 +0x3233 +// -0.141299 +0xb086 +// 0.240792 +0x33b5 +// 0.100019 +0x2e67 +// 0.157038 +0x3106 +// 0.389791 +0x363d +// -0.283810 +0xb48a +// -0.236584 +0xb392 +// 0.411901 +0x3697 +// 0.127094 +0x3011 +// -0.488190 +0xb7d0 +// -0.009542 +0xa0e3 +// 0.435154 +0x36f6 +// 0.089595 +0x2dbc +// 0.133719 +0x3047 +// 0.110233 +0x2f0e +// -0.144807 +0xb0a2 +// 0.083477 +0x2d58 +// -0.428822 +0xb6dc +// -0.095599 +0xae1e +// 0.247438 +0x33eb +// -0.031660 +0xa80d +// 0.057427 +0x2b5a +// -0.334870 +0xb55c +// -0.205178 +0xb291 +// -0.161192 +0xb128 +// -0.238378 +0xb3a1 +// 0.137342 +0x3065 +// -0.182246 +0xb1d5 +// 0.391157 +0x3642 +// -0.162265 +0xb131 +// 0.064097 +0x2c1a +// 0.330009 +0x3548 +// -0.626211 +0xb902 +// -0.162458 +0xb133 +// -0.090607 +0xadcc +// 0.013474 +0x22e6 +// -0.096416 +0xae2c +// 0.111244 +0x2f1f +// 0.237649 +0x339b +// -0.071226 +0xac8f +// -0.246185 +0xb3e1 +// 0.363080 +0x35cf +// -0.269234 +0xb44f +// 0.227092 +0x3344 +// 0.505229 +0x380b +// 0.251355 +0x3406 +// -0.125064 +0xb001 +// -0.543836 +0xb85a +// -0.218977 +0xb302 +// -0.025482 +0xa686 +// 0.315984 +0x350e +// -0.073294 +0xacb1 +// 0.163028 +0x3138 +// 0.128117 +0x301a +// -0.258031 +0xb421 +// -0.138692 +0xb070 +// -0.594150 +0xb8c1 +// -0.249276 +0xb3fa +// 0.267174 +0x3446 +// -0.195608 +0xb242 +// 0.227601 +0x3349 +// -0.217983 +0xb2fa +// -0.348429 +0xb593 +// -0.112842 +0xaf39 +// 0.486077 +0x37c7 +// -0.074007 +0xacbd +// 0.142532 +0x3090 +// -0.154437 +0xb0f1 +// 0.120344 +0x2fb4 +// 0.396185 +0x3657 +// -0.326604 +0xb53a +// 0.013336 +0x22d4 +// -0.048718 +0xaa3c +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.262751 +0xb434 +// 0.138829 +0x3071 +// 0.010585 +0x216b +// 0.097033 +0x2e36 +// -0.202744 +0xb27d +// 0.217172 +0x32f3 +// -0.389429 +0xb63b +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.108180 +0x2eec +// -0.098040 +0xae46 +// 0.007125 +0x1f4c +// -0.005585 +0x9db8 +// -0.004391 +0x9c7f +// 0.178078 +0x31b3 +// 0.295829 +0x34bc +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.108238 +0x2eed +// -0.139802 +0xb079 +// 0.219768 +0x3308 +// 0.127430 +0x3014 +// -0.112820 +0xaf38 +// -0.227823 +0xb34a +// 0.013258 +0x22ca +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.103366 +0x2e9e +// -0.149852 +0xb0cc +// 0.057530 +0x2b5d +// 0.157837 +0x310d +// -0.167958 +0xb160 +// 0.246262 +0x33e1 +// 0.132473 +0x303d +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.045673 +0xa9d9 +// 0.273614 +0x3461 +// -0.408003 +0xb687 +// 0.051073 +0x2a8a +// 0.137500 +0x3066 +// -0.096623 +0xae2f +// 0.022813 +0x25d7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.010409 +0xa154 +// 0.121670 +0x2fc9 +// -0.206398 +0xb29b +// 0.389222 +0x363a +// -0.046016 +0xa9e4 +// -0.006999 +0x9f2b +// -0.058091 +0xab70 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.195078 +0xb23e +// 0.071081 +0x2c8d +// 0.146477 +0x30b0 +// 0.218088 +0x32fb +// 0.177121 +0x31ab +// -0.208881 +0xb2af +// 0.048711 +0x2a3c +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.148751 +0xb0c3 +// 0.025228 +0x2675 +// -0.008934 +0xa093 +// -0.254483 +0xb412 +// 0.194771 +0x323c +// -0.015918 +0xa413 +// 0.153120 +0x30e6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.044900 +0xa9bf +// -0.233371 +0xb378 +// 0.116001 +0x2f6d +// -0.029385 +0xa786 +// 0.283816 +0x348b +// -0.114469 +0xaf53 +// -0.162459 +0xb133 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.227594 +0x3348 +// -0.216125 +0xb2ea +// -0.030645 +0xa7d8 +// -0.359303 +0xb5c0 +// 0.105250 +0x2ebc +// 0.215883 +0x32e9 +// -0.160750 +0xb125 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.033048 +0xa83b +// 0.105608 +0x2ec2 +// -0.275745 +0xb469 +// 0.244928 +0x33d6 +// 0.306024 +0x34e5 +// -0.067137 +0xac4c +// 0.301066 +0x34d1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.104151 +0x2eaa +// 0.144237 +0x309e +// 0.060897 +0x2bcb +// 0.090475 +0x2dca +// -0.052916 +0xaac6 +// -0.013830 +0xa315 +// 0.417784 +0x36af +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.137327 +0x3065 +// -0.064104 +0xac1a +// -0.510847 +0xb816 +// -0.339927 +0xb570 +// 0.072374 +0x2ca2 +// -0.328738 +0xb543 +// -0.023008 +0xa5e4 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.120670 +0x2fb9 +// -0.598650 +0xb8ca +// 0.295849 +0x34bc +// -0.151504 +0xb0d9 +// 0.084350 +0x2d66 +// -0.396688 +0xb659 +// 0.055348 +0x2b16 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.164842 +0x3146 +// -0.274915 +0xb466 +// 0.223431 +0x3326 +// -0.163749 +0xb13d +// -0.059270 +0xab96 +// -0.033499 +0xa84a +// 0.329952 +0x3547 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.166308 +0x3152 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.023828 +0xa61a +// 0.009143 +0x20ae +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.211406 +0xb2c4 +// 0.015245 +0x23ce +// 0.125029 +0x3000 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.090415 +0xadc9 +// -0.096328 +0xae2a +// -0.108803 +0xaef7 +// 0.207358 +0x32a3 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.135656 +0x3057 +// 0.309359 +0x34f3 +// 0.247953 +0x33ef +// -0.117794 +0xaf8a +// 0.132979 +0x3041 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.131989 +0x3039 +// 0.273268 +0x345f +// -0.153087 +0xb0e6 +// 0.088740 +0x2dae +// -0.115782 +0xaf69 +// 0.128667 +0x301e +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.078386 +0xad04 +// 0.042819 +0x297b +// -0.264877 +0xb43d +// 0.244168 +0x33d0 +// -0.131259 +0xb033 +// 0.157187 +0x3108 +// -0.052629 +0xaabd +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.089443 +0xadb9 +// 0.190052 +0x3215 +// -0.052545 +0xaaba +// 0.068448 +0x2c61 +// 0.271030 +0x3456 +// -0.074142 +0xacbf +// 0.017197 +0x2467 +// 0.263642 +0x3438 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.047519 +0xaa15 +// 0.196725 +0x324c +// 0.312655 +0x3501 +// -0.046276 +0xa9ec +// 0.030716 +0x27dd +// 0.281028 +0x347f +// 0.086399 +0x2d88 +// -0.119985 +0xafae +// -0.133734 +0xb048 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.121174 +0x2fc1 +// -0.220841 +0xb311 +// -0.049968 +0xaa65 +// 0.038958 +0x28fd +// -0.046346 +0xa9ef +// 0.116689 +0x2f78 +// -0.056174 +0xab31 +// -0.039278 +0xa907 +// -0.337538 +0xb567 +// -0.024977 +0xa665 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.099523 +0xae5f +// -0.218008 +0xb2fa +// 0.111057 +0x2f1c +// -0.043635 +0xa996 +// 0.024949 +0x2663 +// 0.053451 +0x2ad7 +// 0.113460 +0x2f43 +// 0.296787 +0x34c0 +// 0.069976 +0x2c7a +// -0.166359 +0xb153 +// 0.163815 +0x313e +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.089917 +0x2dc1 +// 0.178752 +0x31b8 +// -0.275262 +0xb467 +// 0.157167 +0x3108 +// 0.199625 +0x3263 +// -0.316135 +0xb50f +// 0.070843 +0x2c89 +// 0.108837 +0x2ef7 +// 0.242158 +0x33c0 +// -0.153018 +0xb0e6 +// 0.264447 +0x343b +// -0.393095 +0xb64a +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.289221 +0xb4a1 +// 0.093935 +0x2e03 +// -0.197380 +0xb251 +// -0.415669 +0xb6a7 +// -0.030271 +0xa7c0 +// 0.254897 +0x3414 +// -0.258094 +0xb421 +// -0.216568 +0xb2ee +// -0.369282 +0xb5e9 +// 0.038082 +0x28e0 +// 0.001883 +0x17b7 +// 0.381774 +0x361c +// -0.041264 +0xa948 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.298265 +0xb4c6 +// -0.108931 +0xaef9 +// -0.265076 +0xb43e +// 0.084007 +0x2d60 +// -0.049850 +0xaa61 +// -0.079486 +0xad16 +// -0.110518 +0xaf13 +// -0.215518 +0xb2e6 +// -0.147541 +0xb0b9 +// -0.144666 +0xb0a1 +// 0.243489 +0x33cb +// -0.217015 +0xb2f2 +// -0.341224 +0xb576 +// -0.217384 +0xb2f5 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.348385 +0x3593 +// -0.228561 +0xb350 +// 0.062015 +0x2bf0 +// -0.272402 +0xb45c +// -0.385902 +0xb62d +// -0.240317 +0xb3b1 +// -0.226602 +0xb340 +// -0.315589 +0xb50d +// -0.426559 +0xb6d3 +// 0.051707 +0x2a9e +// 0.247802 +0x33ee +// 0.315253 +0x350b +// -0.049639 +0xaa5b +// 0.005957 +0x1e1a +// 0.016315 +0x242d +// -1.000000 +0xbc00 +// 0.001326 +0x156e +// 0.011661 +0x21f8 +// -0.046099 +0xa9e7 +// 0.326384 +0x3539 +// 0.013510 +0x22eb +// -0.311422 +0xb4fc +// 0.097737 +0x2e41 +// -0.430490 +0xb6e3 +// 0.314246 +0x3507 +// 0.008176 +0x2030 +// -0.236473 +0xb391 +// -0.409576 +0xb68e +// -0.267535 +0xb448 +// 0.323793 +0x352e +// -0.244230 +0xb3d1 +// 0.041570 +0x2952 +// -0.268710 +0xb44d +// -0.046122 +0xa9e7 +// 0.022005 +0x25a2 +// 0.172410 +0x3184 +// 0.150209 +0x30cf +// -0.511258 +0xb817 +// -0.062152 +0xabf5 +// -0.094605 +0xae0e +// 0.343511 +0x357f +// 0.249112 +0x33f9 +// -0.054735 +0xab02 +// -0.161274 +0xb129 +// 0.449024 +0x372f +// -0.102853 +0xae95 +// 0.183251 +0x31dd +// 0.182467 +0x31d7 +// 0.186439 +0x31f7 +// 0.003308 +0x1ac6 +// 0.122308 +0x2fd4 +// -0.335548 +0xb55e +// -0.157289 +0xb109 +// -0.040664 +0xa934 +// -0.034993 +0xa87b +// -0.152056 +0xb0de +// 0.173212 +0x318b +// -0.030607 +0xa7d6 +// 0.182786 +0x31d9 +// -0.001543 +0x9652 +// -0.092863 +0xadf1 +// 0.131124 +0x3032 +// 0.273542 +0x3460 +// -0.396176 +0xb657 +// -0.155308 +0xb0f8 +// 0.045700 +0x29da +// -0.262270 +0xb432 +// 0.308737 +0x34f1 +// 0.000321 +0xd42 +// 0.201981 +0x3277 +// -0.117487 +0xaf85 +// -0.179147 +0xb1bc +// -0.032867 +0xa835 +// 0.077492 +0x2cf6 +// -0.132763 +0xb040 +// 0.336479 +0x3562 +// -0.256823 +0xb41c +// 0.280733 +0x347e +// -0.379268 +0xb611 +// -0.229436 +0xb358 +// 0.175258 +0x319c +// 0.036194 +0x28a2 +// 0.029488 +0x278d +// 0.371075 +0x35f0 +// 0.205572 +0x3294 +// 0.036380 +0x28a8 +// 0.089265 +0x2db7 +// 0.204884 +0x328e +// 0.134127 +0x304b +// -0.452816 +0xb73f +// -0.045844 +0xa9de +// 0.003504 +0x1b2d +// -0.125066 +0xb001 +// -0.032823 +0xa834 +// -0.296033 +0xb4bd +// -0.153154 +0xb0e7 +// -0.153503 +0xb0e9 +// 0.066710 +0x2c45 +// 0.052995 +0x2ac9 +// -0.086968 +0xad91 +// -0.008873 +0xa08b +// 0.210066 +0x32b9 +// 0.115175 +0x2f5f +// 0.155317 +0x30f8 +// -0.072191 +0xac9f +// -0.514214 +0xb81d +// 0.161556 +0x312b +// -0.038169 +0xa8e3 +// -0.218625 +0xb2ff +// -0.281571 +0xb481 +// -0.395609 +0xb654 +// -0.147032 +0xb0b4 +// -0.273373 +0xb460 +// -0.118133 +0xaf8f +// -0.095440 +0xae1c +// -0.162275 +0xb131 +// 0.017873 +0x2493 +// 0.085597 +0x2d7a +// -0.027692 +0xa717 +// -0.108661 +0xaef4 +// -0.122439 +0xafd6 +// 0.025448 +0x2684 +// 0.234413 +0x3380 +// 0.135545 +0x3056 +// 0.264708 +0x343c +// -0.160614 +0xb124 +// 0.374537 +0x35fe +// 0.537733 +0x384d +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.068867 +0x2c68 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.045483 +0x29d2 +// 0.072392 +0x2ca2 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.430509 +0xb6e3 +// 0.050190 +0x2a6d +// 0.070789 +0x2c88 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.186910 +0x31fb +// 0.143124 +0x3094 +// -0.005227 +0x9d5a +// 0.055066 +0x2b0c +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.097849 +0xae43 +// -0.071240 +0xac8f +// -0.022694 +0xa5cf +// 0.582469 +0x38a9 +// -0.015834 +0xa40e +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.204094 +0x3288 +// -0.163524 +0xb13c +// -0.202260 +0xb279 +// 0.037096 +0x28c0 +// -0.024578 +0xa64b +// 0.031703 +0x280f +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.090554 +0x2dcc +// -0.171224 +0xb17b +// -0.039592 +0xa911 +// 0.113727 +0x2f47 +// 0.340273 +0x3572 +// 0.226280 +0x333e +// -0.066091 +0xac3b +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.360599 +0xb5c5 +// -0.011304 +0xa1ca +// 0.096264 +0x2e29 +// -0.059929 +0xabac +// 0.006424 +0x1e94 +// 0.034740 +0x2872 +// -0.172066 +0xb182 +// -0.070979 +0xac8b +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.131839 +0xb038 +// -0.248813 +0xb3f6 +// 0.095557 +0x2e1e +// 0.176972 +0x31aa +// 0.260832 +0x342c +// 0.112606 +0x2f35 +// -0.107949 +0xaee9 +// 0.113500 +0x2f44 +// -0.084686 +0xad6b +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.161205 +0x3129 +// -0.049169 +0xaa4b +// -0.348122 +0xb592 +// -0.102644 +0xae92 +// 0.118340 +0x2f93 +// 0.085316 +0x2d76 +// 0.178491 +0x31b6 +// 0.487613 +0x37cd +// 0.071791 +0x2c98 +// -0.133730 +0xb048 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.091497 +0x2ddb +// -0.165798 +0xb14e +// -0.139900 +0xb07a +// -0.044528 +0xa9b3 +// -0.036535 +0xa8ad +// -0.087984 +0xada2 +// 0.048601 +0x2a39 +// 0.128481 +0x301d +// 0.379184 +0x3611 +// -0.147317 +0xb0b7 +// 0.000149 +0x8e4 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.130969 +0x3031 +// -0.009069 +0xa0a5 +// -0.083289 +0xad55 +// 0.001344 +0x1582 +// -0.188172 +0xb206 +// 0.336086 +0x3561 +// 0.394743 +0x3651 +// -0.265859 +0xb441 +// 0.453637 +0x3742 +// -0.369750 +0xb5ea +// -0.073591 +0xacb6 +// 0.220195 +0x330c +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.176050 +0x31a2 +// 0.184068 +0x31e4 +// -0.196079 +0xb246 +// 0.095920 +0x2e24 +// 0.029020 +0x276e +// -0.215421 +0xb2e5 +// 0.248008 +0x33f0 +// -0.245056 +0xb3d8 +// -0.016062 +0xa41d +// -0.487559 +0xb7cd +// 0.203334 +0x3282 +// -0.050899 +0xaa84 +// -0.090825 +0xadd0 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.088789 +0x2daf +// -0.044716 +0xa9b9 +// -0.134808 +0xb050 +// 0.221872 +0x331a +// -0.207135 +0xb2a1 +// -0.105481 +0xaec0 +// -0.212016 +0xb2c9 +// 0.386422 +0x362f +// -0.172902 +0xb188 +// 0.119279 +0x2fa2 +// 0.471538 +0x378b +// 0.433318 +0x36ef +// -0.550698 +0xb868 +// -0.182669 +0xb1d8 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.033697 +0x2850 +// -0.014681 +0xa384 +// -0.053746 +0xaae1 +// 0.327155 +0x353c +// -0.434938 +0xb6f6 +// -0.116766 +0xaf79 +// 0.084136 +0x2d62 +// 0.124088 +0x2ff1 +// 0.368056 +0x35e4 +// -0.145640 +0xb0a9 +// 0.041984 +0x2960 +// 0.429608 +0x36e0 +// 0.129287 +0x3023 +// 0.345644 +0x3588 +// -0.165093 +0xb148 +// -1.000000 +0xbc00 +// 0.120492 +0x2fb6 +// 0.078257 +0x2d02 +// -0.287415 +0xb499 +// -0.218367 +0xb2fd +// 0.257532 +0x341f +// -0.005374 +0x9d81 +// 0.411883 +0x3697 +// 0.175780 +0x31a0 +// 0.221907 +0x331a +// -0.339737 +0xb570 +// -0.256157 +0xb419 +// 0.217652 +0x32f7 +// -0.183408 +0xb1de +// -0.043592 +0xa994 +// -0.056486 +0xab3b +// 0.132483 +0x303d +// 0.225241 +0x3335 +// 0.141493 +0x3087 +// 0.004896 +0x1d03 +// -0.124748 +0xaffc +// -0.041403 +0xa94d +// -0.292147 +0xb4ad +// -0.065744 +0xac35 +// 0.264162 +0x343a +// -0.001035 +0x943e +// 0.282744 +0x3486 +// 0.063801 +0x2c15 +// 0.392261 +0x3647 +// 0.396460 +0x3658 +// 0.252266 +0x3409 +// -0.095976 +0xae24 +// -0.209283 +0xb2b2 +// 0.412721 +0x369b +// 0.087892 +0x2da0 +// 0.016166 +0x2423 +// 0.276802 +0x346e +// 0.304711 +0x34e0 +// 0.333158 +0x3555 +// 0.218688 +0x32ff +// 0.130036 +0x3029 +// -0.226320 +0xb33e +// 0.155366 +0x30f9 +// 0.300536 +0x34cf +// 0.225520 +0x3337 +// -0.268094 +0xb44a +// 0.079186 +0x2d11 +// 0.368075 +0x35e4 +// 0.083547 +0x2d59 +// 0.046855 +0x29ff +// -0.077858 +0xacfc +// 0.229455 +0x3358 +// -0.020911 +0xa55a +// 0.051858 +0x2aa3 +// 0.034215 +0x2861 +// 0.108558 +0x2ef3 +// 0.031006 +0x27f0 +// -0.272389 +0xb45c +// 0.283664 +0x348a +// 0.209486 +0x32b4 +// 0.161604 +0x312c +// 0.123064 +0x2fe0 +// 0.164357 +0x3142 +// -0.237399 +0xb399 +// 0.074393 +0x2cc3 +// 0.210813 +0x32bf +// 0.162207 +0x3131 +// -0.569078 +0xb88d +// -0.260384 +0xb42b +// 0.143230 +0x3095 +// 0.015902 +0x2412 +// 0.087961 +0x2da1 +// -0.419307 +0xb6b5 +// -0.031243 +0xa800 +// 0.104199 +0x2eab +// 0.053159 +0x2ace +// -0.076888 +0xacec +// -0.219219 +0xb304 +// -0.190794 +0xb21b +// 0.444660 +0x371d +// -0.242301 +0xb3c1 +// 0.430813 +0x36e5 +// -0.043418 +0xa98f +// -0.062074 +0xabf2 +// 0.025492 +0x2687 +// 0.019863 +0x2516 +// -0.174932 +0xb199 +// -0.175692 +0xb19f +// -0.101117 +0xae79 +// -0.252584 +0xb40b +// -0.185151 +0xb1ed +// 0.231539 +0x3369 +// -0.362141 +0xb5cb +// 0.102728 +0x2e93 +// -0.523937 +0xb831 +// 0.462498 +0x3766 +// 0.460495 +0x375e +// 0.072838 +0x2ca9 +// 0.219351 +0x3305 +// -0.194525 +0xb23a +// 0.013617 +0x22f9 +// -0.150288 +0xb0cf +// -0.071233 +0xac8f +// -0.323063 +0xb52b +// 0.235440 +0x3389 +// 0.337973 +0x3568 +// -0.263708 +0xb438 +// -0.058069 +0xab6f +// 0.081949 +0x2d3f +// -0.327350 +0xb53d +// -0.075604 +0xacd7 +// 0.329371 +0x3545 +// 0.130728 +0x302f +// -2.273420 +0xc08c +// -1.276610 +0xbd1b +// 0.523610 +0x3830 +// -2.698615 +0xc166 +// 0.210437 +0x32bc +// -0.219051 +0xb302 +// -0.041277 +0xa949 +// 2.218287 +0x4070 +// 1.178877 +0x3cb7 +// 1.366438 +0x3d77 +// -0.557006 +0xb875 +// 1.742269 +0x3ef8 +// -1.323923 +0xbd4c +// 1.916268 +0x3faa +// -0.070733 +0xac87 +// -0.412619 +0xb69a +// 0.574854 +0x3899 +// 1.901442 +0x3f9b +// -0.488273 +0xb7d0 +// 1.887227 +0x3f8d +// 1.328298 +0x3d50 +// 0.399864 +0x3666 +// -0.375096 +0xb600 +// 0.254967 +0x3414 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.158032 +0xb10f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.221634 +0xb318 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.035591 +0x288e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.120563 +0x2fb7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.025486 +0x2686 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.096594 +0x2e2f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.062390 +0x2bfc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.246798 +0x33e6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000845 +0x92eb +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.077295 +0x2cf2 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.298273 +0xb4c6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.123395 +0x2fe6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.261125 +0xb42e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.238858 +0xb3a5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.084302 +0x2d65 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.031484 +0x2808 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.077029 +0xacee +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.218817 +0xb301 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.087087 +0x2d93 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.265345 +0x343f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.069632 +0xac75 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.724180 +0x39cb +// -0.119641 +0xafa8 +// 0.027304 +0x26fd +// 0.068923 +0x2c69 +// 0.067032 +0x2c4a +// -0.126014 +0xb008 +// -0.097334 +0xae3b +// -0.102893 +0xae96 +// 0.237983 +0x339e +// 0.124926 +0x2fff +// 0.138192 +0x306c +// 0.068750 +0x2c66 +// -0.152578 +0xb0e2 +// -0.014903 +0xa3a1 +// 0.069028 +0x2c6b +// -0.348366 +0xb593 +// -0.030408 +0xa7c9 +// -0.278331 +0xb474 +// 0.126546 +0x300d +// -0.180376 +0xb1c6 +// 0.076649 +0x2ce8 +// -0.073340 +0xacb2 +// 0.177295 +0x31ac +// 0.229529 +0x3358 +// -0.651832 +0xb937 +// -0.180941 +0xb1ca +// 0.021645 +0x258b +// -0.118744 +0xaf99 +// -0.036342 +0xa8a7 +// 0.271514 +0x3458 +// -0.142798 +0xb092 +// -0.058431 +0xab7b +// -0.312942 +0xb502 +// -0.193799 +0xb234 +// -0.146671 +0xb0b2 +// -0.376119 +0xb605 +// -0.035514 +0xa88c +// 0.014262 +0x234d +// 0.098678 +0x2e51 +// 0.083151 +0x2d52 +// 0.063756 +0x2c15 +// 0.112146 +0x2f2d +// -0.116296 +0xaf71 +// -0.062418 +0xabfd +// 0.266158 +0x3442 +// 0.086445 +0x2d88 +// -0.133783 +0xb048 +// 0.256836 +0x341c +// -0.459531 +0xb75a +// 0.198229 +0x3258 +// -0.176212 +0xb1a4 +// -0.048095 +0xaa28 +// -0.017454 +0xa478 +// 0.166115 +0x3151 +// 0.417398 +0x36ae +// -0.165540 +0xb14c +// 0.254347 +0x3412 +// 0.053184 +0x2acf +// 0.082303 +0x2d44 +// -0.308087 +0xb4ee +// -0.200712 +0xb26c +// -0.030597 +0xa7d5 +// 0.242287 +0x33c1 +// 0.306366 +0x34e7 +// -0.113270 +0xaf40 +// 0.188586 +0x3209 +// 0.125912 +0x3007 +// -0.149836 +0xb0cb +// 0.192229 +0x3227 +// 0.284111 +0x348c +// 0.033781 +0x2853 +// 0.104380 +0x2eae +// -0.273050 +0xb45e +// 0.027589 +0x2710 +// 0.222323 +0x331d +// -0.378660 +0xb60f +// -0.331775 +0xb54f +// 0.213376 +0x32d4 +// -0.278792 +0xb476 +// -0.185606 +0xb1f0 +// 0.046794 +0x29fd +// -0.059843 +0xaba9 +// 0.343986 +0x3581 +// 0.091662 +0x2dde +// -0.162973 +0xb137 +// 0.142349 +0x308e +// 0.400645 +0x3669 +// -0.012801 +0xa28e +// -0.149646 +0xb0ca +// -0.086597 +0xad8b +// -0.299951 +0xb4cd +// -0.065012 +0xac29 +// 0.203767 +0x3285 +// 0.065748 +0x2c35 +// 0.123523 +0x2fe8 +// 0.094066 +0x2e05 +// -0.495105 +0xb7ec +// 0.053168 +0x2ace +// -0.226909 +0xb343 +// -0.023386 +0xa5fd +// 0.128060 +0x3019 +// 0.120575 +0x2fb7 +// -0.351629 +0xb5a0 +// -0.229764 +0xb35a +// 0.296211 +0x34bd +// -0.010570 +0xa169 +// 0.097363 +0x2e3b +// 0.245338 +0x33da +// 0.156624 +0x3103 +// -0.238778 +0xb3a4 +// -0.057882 +0xab69 +// -0.293786 +0xb4b3 +// 0.372364 +0x35f5 +// 0.056965 +0x2b4b +// 0.148354 +0x30bf +// -0.116928 +0xaf7c +// -0.174078 +0xb192 +// -0.104668 +0xaeb3 +// -0.186783 +0xb1fa +// -0.086557 +0xad8a +// 0.483528 +0x37bd +// 0.271396 +0x3458 +// -0.144524 +0xb0a0 +// 0.188452 +0x3208 +// -0.129908 +0xb028 +// 0.235965 +0x338d +// -0.337990 +0xb568 +// 0.423037 +0x36c5 +// 0.152381 +0x30e0 +// -0.096022 +0xae25 +// -0.110014 +0xaf0a +// -0.173970 +0xb191 +// -0.125754 +0xb006 +// 0.089387 +0x2db9 +// -0.019619 +0xa506 +// -0.290161 +0xb4a5 +// 0.134740 +0x3050 +// 0.262763 +0x3434 +// -0.078444 +0xad05 +// -0.400048 +0xb667 +// 0.243995 +0x33cf +// 0.157490 +0x310a +// -0.157419 +0xb10a +// -0.089635 +0xadbd +// 0.001693 +0x16ef +// -0.012240 +0xa244 +// 0.027069 +0x26ee +// -0.004995 +0x9d1d +// 0.011352 +0x21d0 +// 0.018124 +0x24a4 +// -0.008199 +0xa033 +// 0.022173 +0x25ad +// 0.006097 +0x1e3e +// 0.009178 +0x20b3 +// 0.011480 +0x21e1 +// -0.023685 +0xa610 +// -0.053316 +0xaad3 +// 0.010125 +0x212f +// -0.004491 +0x9c99 +// 0.030956 +0x27ed +// -0.016508 +0xa43a +// -0.284806 +0xb48f +// -0.212258 +0xb2cb +// 0.232368 +0x3370 +// 0.518030 +0x3825 +// -0.013047 +0xa2ae +// -0.530269 +0xb83e +// 0.000000 +0x0 +// 0.146454 +0x30b0 +// -0.323876 +0xb52f +// 0.059768 +0x2ba6 +// -0.135824 +0xb059 +// -0.216855 +0xb2f0 +// 0.098094 +0x2e47 +// -0.265299 +0xb43f +// -0.072955 +0xacab +// -0.109814 +0xaf07 +// -0.137361 +0xb065 +// 0.283383 +0x3489 +// 0.637920 +0x391a +// -0.121140 +0xafc1 +// 0.053734 +0x2ae1 +// -0.370385 +0xb5ed +// 0.197512 +0x3252 +// -0.048743 +0xaa3d +// -0.036682 +0xa8b2 +// 0.233230 +0x3377 +// 0.138813 +0x3071 +// 0.064381 +0x2c1f +// -0.117637 +0xaf87 +// 0.000000 +0x0 +// -0.019549 +0xa501 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.010268 +0xa142 +// 0.059505 +0x2b9e +// -0.110030 +0xaf0b +// 0.380030 +0x3615 +// 0.243587 +0x33cb +// -0.149213 +0xb0c6 +// 0.000000 +0x0 +// 0.066827 +0x2c47 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.216793 +0xb2f0 +// 0.213112 +0x32d2 +// 0.296451 +0x34be +// 0.006911 +0x1f14 +// 0.060876 +0x2bcb +// 0.053176 +0x2ace +// 0.000000 +0x0 +// -0.004062 +0x9c29 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.255520 +0x3417 +// -0.052567 +0xaabb +// -0.119221 +0xafa1 +// -0.074126 +0xacbe +// -0.058633 +0xab81 +// -0.008480 +0xa057 +// 0.000000 +0x0 +// 0.231975 +0x336c +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.318011 +0x3517 +// -0.198832 +0xb25d +// -0.054072 +0xaaec +// 0.128748 +0x301f +// -0.210130 +0xb2b9 +// -0.100132 +0xae69 +// 0.000000 +0x0 +// -0.027025 +0xa6eb +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.046207 +0x29ea +// -0.073414 +0xacb3 +// 0.107224 +0x2edd +// 0.063893 +0x2c17 +// 0.104598 +0x2eb2 +// -0.319772 +0xb51e +// 0.000000 +0x0 +// 0.116099 +0x2f6e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.059447 +0x2b9c +// 0.132205 +0x303b +// 0.300230 +0x34ce +// 0.186094 +0x31f4 +// -0.106095 +0xaeca +// -0.151052 +0xb0d5 +// 0.000000 +0x0 +// 0.225459 +0x3337 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.139979 +0xb07b +// 0.209056 +0x32b1 +// 0.190829 +0x321b +// 0.082424 +0x2d46 +// -0.061291 +0xabd8 +// -0.101734 +0xae83 +// 0.000000 +0x0 +// -0.484101 +0xb7bf +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.185803 +0xb1f2 +// 0.142577 +0x3090 +// -0.184701 +0xb1e9 +// -0.131711 +0xb037 +// -0.087470 +0xad99 +// -0.088920 +0xadb1 +// 0.000000 +0x0 +// -0.109024 +0xaefa +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.081970 +0x2d3f +// 0.234519 +0x3381 +// 0.058716 +0x2b84 +// -0.229779 +0xb35a +// 0.417936 +0x36b0 +// 0.149881 +0x30cc +// 0.000000 +0x0 +// -0.043929 +0xa99f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.174616 +0x3196 +// -0.275688 +0xb469 +// -0.056680 +0xab41 +// 0.112401 +0x2f32 +// -0.119982 +0xafae +// 0.060838 +0x2bca +// 0.000000 +0x0 +// 0.184859 +0x31ea +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.140248 +0x307d +// 0.126993 +0x3010 +// -0.054372 +0xaaf6 +// -0.056252 +0xab33 +// -0.189723 +0xb212 +// 0.093524 +0x2dfc +// 0.000000 +0x0 +// -0.273905 +0xb462 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.089053 +0xadb3 +// 0.072096 +0x2c9d +// 0.102438 +0x2e8e +// -0.035098 +0xa87e +// 0.072719 +0x2ca7 +// 0.241230 +0x33b8 +// 0.000000 +0x0 +// 0.431971 +0x36e9 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.043897 +0xa99e +// -0.105816 +0xaec6 +// 0.195566 +0x3242 +// 0.365446 +0x35d9 +// 0.183748 +0x31e1 +// -0.057708 +0xab63 +// 0.000000 +0x0 +// 0.178559 +0x31b7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.150301 +0xb0cf +// 0.030382 +0x27c7 +// 0.168724 +0x3166 +// -0.000204 +0x8ab1 +// -0.102506 +0xae8f +// 0.192422 +0x3228 +// 0.000000 +0x0 +// 0.114389 +0x2f52 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.951554 +0x3b9d +// 0.085040 +0x2d71 +// 0.021261 +0x2571 +// -0.135588 +0xb057 +// 0.049756 +0x2a5e +// 0.099667 +0x2e61 +// -0.038042 +0xa8df +// 0.153206 +0x30e7 +// -0.061751 +0xabe7 +// -0.006372 +0x9e87 +// 0.043394 +0x298e +// 0.063705 +0x2c14 +// 0.084689 +0x2d6c +// -0.010795 +0xa187 +// 0.002097 +0x184c +// -0.021115 +0xa568 +// 0.039520 +0x290f +// 0.053424 +0x2ad7 +// -0.041349 +0xa94b +// -0.070031 +0xac7b +// 0.039179 +0x2904 +// 0.025687 +0x2693 +// 0.019755 +0x250f +// -0.029098 +0xa773 +// -0.841012 +0xbaba +// -0.188085 +0xb205 +// -0.167922 +0xb160 +// 0.048966 +0x2a45 +// 0.005372 +0x1d80 +// 0.041914 +0x295d +// 0.190247 +0x3217 +// -0.065215 +0xac2c +// -0.134153 +0xb04b +// 0.027826 +0x2720 +// 0.054821 +0x2b04 +// 0.133231 +0x3043 +// 0.032621 +0x282d +// -0.062588 +0xac01 +// 0.251879 +0x3408 +// -0.165470 +0xb14c +// -0.084607 +0xad6a +// -0.121394 +0xafc5 +// -0.095234 +0xae18 +// 0.122837 +0x2fdd +// 0.031779 +0x2811 +// 0.045823 +0x29de +// 0.048010 +0x2a25 +// 0.280080 +0x347b +// 0.762983 +0x3a1b +// -0.058749 +0xab85 +// 0.027083 +0x26ef +// -0.195460 +0xb241 +// -0.010933 +0xa199 +// 0.081000 +0x2d2f +// -0.069290 +0xac6f +// -0.001116 +0x9492 +// 0.109333 +0x2eff +// 0.095002 +0x2e15 +// -0.140695 +0xb081 +// 0.050306 +0x2a70 +// -0.219458 +0xb306 +// 0.284171 +0x348c +// -0.134319 +0xb04c +// -0.169138 +0xb16a +// 0.195337 +0x3240 +// 0.071095 +0x2c8d +// 0.241768 +0x33bd +// 0.185475 +0x31ef +// -0.095137 +0xae17 +// -0.107737 +0xaee5 +// -0.055575 +0xab1d +// 0.053323 +0x2ad3 +// 0.773866 +0x3a31 +// 0.210251 +0x32ba +// -0.048229 +0xaa2c +// -0.194554 +0xb23a +// 0.164455 +0x3143 +// -0.047474 +0xaa14 +// -0.013925 +0xa321 +// 0.151506 +0x30d9 +// 0.208283 +0x32aa +// 0.347189 +0x358e +// 0.115432 +0x2f63 +// -0.035513 +0xa88c +// -0.108145 +0xaeec +// -0.065896 +0xac38 +// -0.018662 +0xa4c7 +// -0.044332 +0xa9ad +// -0.141577 +0xb088 +// 0.200124 +0x3267 +// -0.041032 +0xa941 +// -0.075270 +0xacd1 +// -0.052499 +0xaab8 +// -0.310539 +0xb4f8 +// 0.119850 +0x2fac +// 0.125416 +0x3003 +// 0.769045 +0x3a27 +// -0.251630 +0xb407 +// 0.087953 +0x2da1 +// 0.111793 +0x2f28 +// -0.284971 +0xb48f +// -0.043293 +0xa98b +// -0.247897 +0xb3ef +// -0.119467 +0xafa5 +// -0.320710 +0xb522 +// 0.071194 +0x2c8e +// 0.132745 +0x303f +// 0.003408 +0x1afb +// 0.050802 +0x2a81 +// 0.085221 +0x2d74 +// -0.082148 +0xad42 +// 0.021890 +0x259b +// -0.100015 +0xae67 +// -0.115643 +0xaf67 +// -0.014408 +0xa360 +// 0.110547 +0x2f13 +// -0.335268 +0xb55d +// 0.403578 +0x3675 +// -0.099328 +0xae5b +// 0.167178 +0x315a +// 0.612604 +0x38e7 +// -0.093373 +0xadfa +// -0.080927 +0xad2e +// -0.134555 +0xb04e +// 0.008526 +0x205e +// -0.081369 +0xad35 +// 0.089604 +0x2dbc +// -0.285274 +0xb490 +// 0.399682 +0x3665 +// 0.027053 +0x26ed +// 0.006746 +0x1ee8 +// -0.227437 +0xb347 +// -0.233913 +0xb37c +// 0.062298 +0x2bf9 +// -0.063723 +0xac14 +// 0.007212 +0x1f63 +// -0.292664 +0xb4af +// -0.366917 +0xb5df +// 0.340957 +0x3575 +// -0.135214 +0xb054 +// -0.004273 +0x9c60 +// 0.201727 +0x3275 +// 0.083523 +0x2d58 +// -0.186906 +0xb1fb +// 0.891903 +0x3b23 +// 0.018063 +0x24a0 +// -0.032748 +0xa831 +// 0.123714 +0x2feb +// 0.048339 +0x2a30 +// 0.111022 +0x2f1b +// 0.119860 +0x2fac +// 0.133642 +0x3047 +// -0.011968 +0xa221 +// -0.262228 +0xb432 +// 0.028064 +0x272f +// -0.019766 +0xa50f +// 0.102207 +0x2e8b +// -0.075465 +0xacd4 +// 0.203325 +0x3282 +// -0.010359 +0xa14e +// -0.115071 +0xaf5d +// 0.071662 +0x2c96 +// -0.085176 +0xad74 +// -0.524479 +0xb832 +// -0.050703 +0xaa7d +// -0.128720 +0xb01e +// 0.240110 +0x33af +// -0.037386 +0xa8c9 +// 0.641880 +0x3923 +// 0.383435 +0x3623 +// 0.016327 +0x242e +// -0.105957 +0xaec8 +// -0.245913 +0xb3df +// 0.062023 +0x2bf0 +// 0.007857 +0x2006 +// 0.004062 +0x1c29 +// -0.180368 +0xb1c6 +// -0.168204 +0xb162 +// -0.164547 +0xb144 +// 0.185889 +0x31f3 +// 0.446638 +0x3725 +// -0.079140 +0xad11 +// -0.184846 +0xb1ea +// -0.052002 +0xaaa8 +// -0.035347 +0xa886 +// 0.205676 +0x3295 +// -0.099331 +0xae5b +// 0.159750 +0x311d +// -0.446407 +0xb724 +// 0.000901 +0x1362 +// 0.098402 +0x2e4c +// -0.067184 +0xac4d +// -0.521204 +0xb82b +// 0.288243 +0x349d +// 0.171670 +0x317e +// -0.277964 +0xb473 +// 0.230843 +0x3363 +// -0.184646 +0xb1e9 +// -0.054281 +0xaaf3 +// -0.109892 +0xaf08 +// -0.173520 +0xb18d +// -0.458074 +0xb754 +// 0.166936 +0x3158 +// -0.088468 +0xada9 +// -0.384076 +0xb625 +// 0.046277 +0x29ec +// 0.104076 +0x2ea9 +// 0.025904 +0x26a2 +// -0.083819 +0xad5d +// -0.284915 +0xb48f +// -0.021114 +0xa568 +// 0.069386 +0x2c71 +// 0.304901 +0x34e1 +// -0.162237 +0xb131 +// -0.041533 +0xa951 +// -0.170001 +0xb171 +// -0.814200 +0xba83 +// 0.065700 +0x2c34 +// -0.108038 +0xaeea +// -0.086417 +0xad88 +// -0.029836 +0xa7a3 +// -0.025516 +0xa688 +// -0.320289 +0xb520 +// 0.109386 +0x2f00 +// -0.214519 +0xb2dd +// 0.265102 +0x343e +// -0.220778 +0xb311 +// -0.057549 +0xab5e +// 0.169933 +0x3170 +// -0.017323 +0xa46f +// 0.038039 +0x28de +// 0.085316 +0x2d76 +// 0.212563 +0x32cd +// -0.245173 +0xb3d8 +// -0.119289 +0xafa2 +// 0.156127 +0x30ff +// 0.244970 +0x33d7 +// 0.115980 +0x2f6c +// -0.170837 +0xb177 +// -0.071895 +0xac9a +// 0.715615 +0x39ba +// -0.407320 +0xb684 +// -0.258456 +0xb423 +// 0.159319 +0x3119 +// 0.231127 +0x3365 +// -0.070910 +0xac8a +// -0.068410 +0xac61 +// 0.059614 +0x2ba1 +// -0.211251 +0xb2c3 +// 0.054042 +0x2aeb +// 0.262622 +0x3434 +// -0.111177 +0xaf1e +// 0.185049 +0x31ec +// -0.183409 +0xb1de +// 0.172315 +0x3184 +// 0.182561 +0x31d8 +// -0.054492 +0xaafa +// 0.342683 +0x357c +// 0.088655 +0x2dad +// -0.388714 +0xb638 +// 0.107744 +0x2ee5 +// -0.499849 +0xb7ff +// 0.228854 +0x3353 +// -0.029268 +0xa77e +// -0.602272 +0xb8d1 +// 0.249651 +0x33fd +// 0.102350 +0x2e8d +// -0.275887 +0xb46a +// 0.215646 +0x32e7 +// 0.194949 +0x323d +// 0.312035 +0x34fe +// 0.067358 +0x2c50 +// -0.183875 +0xb1e2 +// -0.015618 +0xa3ff +// -0.006560 +0x9eb8 +// -0.517538 +0xb824 +// 0.091366 +0x2dd9 +// -0.077292 +0xacf2 +// -0.022633 +0xa5cb +// -0.069686 +0xac76 +// -0.133136 +0xb043 +// 0.010787 +0x2186 +// -0.059337 +0xab98 +// -0.179905 +0xb1c2 +// 0.051103 +0x2a8b +// -0.236665 +0xb393 +// -0.048284 +0xaa2e +// -0.229215 +0xb356 +// -0.251251 +0xb405 +// -0.450673 +0xb736 +// -0.577337 +0xb89e +// -0.330110 +0xb548 +// -0.344370 +0xb583 +// 0.126332 +0x300b +// -0.303935 +0xb4dd +// -0.113077 +0xaf3d +// 0.092870 +0x2df2 +// -0.185463 +0xb1ef +// -0.093495 +0xadfc +// 0.051066 +0x2a89 +// -0.017726 +0xa48a +// 0.137218 +0x3064 +// 0.024421 +0x2640 +// 0.438472 +0x3704 +// 0.003066 +0x1a47 +// 0.169218 +0x316a +// -0.064068 +0xac1a +// 0.004800 +0x1cea +// 0.326142 +0x3538 +// -0.056294 +0xab35 +// 0.352103 +0x35a2 +// -0.184942 +0xb1eb +// 0.638534 +0x391c +// -0.498494 +0xb7fa +// -0.146424 +0xb0b0 +// -0.038218 +0xa8e4 +// 0.145652 +0x30a9 +// -0.121194 +0xafc2 +// 0.107564 +0x2ee2 +// -0.303930 +0xb4dd +// 0.231996 +0x336d +// 0.356665 +0x35b5 +// -0.483000 +0xb7ba +// 0.098457 +0x2e4d +// -0.065042 +0xac2a +// -0.016331 +0xa42e +// 0.126390 +0x300b +// 0.183088 +0x31dc +// -0.012263 +0xa247 +// 0.285778 +0x3493 +// 0.281888 +0x3483 +// -0.251068 +0xb404 +// -0.304741 +0xb4e0 +// 0.037249 +0x28c5 +// -0.175875 +0xb1a1 +// 0.156719 +0x3104 +// 0.344723 +0x3584 +// -0.134266 +0xb04c +// -0.590887 +0xb8ba +// 0.332323 +0x3551 +// -0.008557 +0xa062 +// 0.016188 +0x2425 +// -0.153972 +0xb0ed +// 0.553160 +0x386d +// -0.271152 +0xb457 +// -0.020935 +0xa55c +// -0.044086 +0xa9a5 +// -0.148972 +0xb0c4 +// 0.150767 +0x30d3 +// 0.009356 +0x20ca +// -0.163713 +0xb13d +// -0.288074 +0xb49c +// -0.023503 +0xa604 +// 0.105241 +0x2ebc +// 0.152274 +0x30df +// 0.104696 +0x2eb3 +// 0.081100 +0x2d31 +// -0.515014 +0xb81f +// -0.532559 +0xb843 +// 0.515282 +0x381f +// 0.108138 +0x2eec +// -0.308225 +0xb4ee +// 0.417896 +0x36b0 +// 0.615200 +0x38ec +// -0.280497 +0xb47d +// -0.002249 +0x989b +// -0.357922 +0xb5ba +// 0.365244 +0x35d8 +// -0.235217 +0xb387 +// 0.150476 +0x30d1 +// 0.093427 +0x2dfb +// -0.042497 +0xa971 +// -0.132416 +0xb03d +// 0.059980 +0x2bad +// -0.018867 +0xa4d4 +// 0.223966 +0x332b +// -0.334595 +0xb55a +// -0.235153 +0xb386 +// -0.453251 +0xb741 +// -0.145946 +0xb0ac +// -0.242258 +0xb3c1 +// -0.351888 +0xb5a1 +// 0.098889 +0x2e54 +// 0.073980 +0x2cbc +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.143861 +0x309b +// 0.177685 +0x31b0 +// -0.123178 +0xafe2 +// 0.070507 +0x2c83 +// 0.332619 +0x3552 +// 0.077833 +0x2cfb +// -0.047021 +0xaa05 +// 0.026247 +0x26b8 +// -0.050615 +0xaa7b +// -0.035029 +0xa87c +// -0.327456 +0xb53d +// 0.392258 +0x3647 +// 0.042197 +0x2967 +// 0.150425 +0x30d0 +// 0.078035 +0x2cff +// -0.044024 +0xa9a3 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.135288 +0xb054 +// -0.267053 +0xb446 +// -0.192489 +0xb229 +// 0.124175 +0x2ff2 +// 0.093066 +0x2df5 +// 0.130338 +0x302c +// 0.085293 +0x2d75 +// 0.215259 +0x32e3 +// 0.164101 +0x3140 +// 0.593128 +0x38bf +// -0.048666 +0xaa3b +// 0.244177 +0x33d0 +// 0.135088 +0x3053 +// -0.343818 +0xb580 +// -0.106723 +0xaed5 +// 0.656621 +0x3941 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.085812 +0xad7e +// -0.024270 +0xa637 +// -0.233690 +0xb37a +// 0.001853 +0x1797 +// -0.032386 +0xa825 +// -0.086835 +0xad8f +// -0.025843 +0xa69e +// 0.067040 +0x2c4a +// 0.402100 +0x366f +// 0.017633 +0x2484 +// 0.200230 +0x3268 +// -0.465884 +0xb774 +// 0.175703 +0x319f +// -0.210881 +0xb2c0 +// 0.265423 +0x343f +// 0.553736 +0x386e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.107868 +0xaee7 +// -0.099996 +0xae66 +// 0.086161 +0x2d84 +// 0.206247 +0x329a +// -0.244160 +0xb3d0 +// -0.144556 +0xb0a0 +// 0.094849 +0x2e12 +// 0.095906 +0x2e23 +// -0.050151 +0xaa6b +// 0.115317 +0x2f61 +// -0.088969 +0xadb2 +// 0.269610 +0x3450 +// -0.021747 +0xa591 +// -0.257048 +0xb41d +// 0.090860 +0x2dd1 +// -0.059740 +0xaba6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.046399 +0x29f0 +// -0.158898 +0xb116 +// 0.275057 +0x3467 +// -0.149175 +0xb0c6 +// -0.076312 +0xace2 +// -0.389909 +0xb63d +// -0.318296 +0xb518 +// 0.077875 +0x2cfc +// -0.133376 +0xb045 +// 0.080639 +0x2d29 +// 0.352176 +0x35a3 +// 0.069559 +0x2c74 +// 0.004251 +0x1c5a +// 0.243792 +0x33cd +// 0.224460 +0x332f +// -0.304829 +0xb4e1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.030746 +0xa7df +// -0.002839 +0x99d1 +// -0.221007 +0xb312 +// 0.282632 +0x3486 +// -0.240938 +0xb3b6 +// 0.045660 +0x29d8 +// 0.457753 +0x3753 +// 0.003479 +0x1b20 +// -0.002112 +0x9853 +// -0.266064 +0xb442 +// 0.002913 +0x19f7 +// -0.237815 +0xb39c +// -0.201033 +0xb26f +// 0.057629 +0x2b60 +// 0.054181 +0x2aef +// 0.046987 +0x2a04 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.026640 +0xa6d2 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.151336 +0x30d8 +// 0.263799 +0x3439 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.097623 +0xae3f +// -0.159433 +0xb11a +// 0.011979 +0x2222 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.061053 +0x2bd1 +// -0.274851 +0xb466 +// -0.193654 +0xb232 +// -0.107728 +0xaee5 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.039008 +0xa8fe +// 0.026329 +0x26be +// 0.104202 +0x2eab +// 0.150034 +0x30cd +// -0.145826 +0xb0ab +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.173339 +0xb18c +// -0.047235 +0xaa0c +// -0.040292 +0xa928 +// -0.080074 +0xad20 +// -0.275903 +0xb46a +// 0.148240 +0x30be +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.129260 +0x3023 +// 0.211906 +0x32c8 +// 0.168818 +0x3167 +// -0.085695 +0xad7c +// -0.012139 +0xa237 +// -0.260736 +0xb42c +// 0.237706 +0x339b +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.016963 +0x2458 +// -0.230778 +0xb363 +// 0.005767 +0x1de8 +// 0.141013 +0x3083 +// 0.064638 +0x2c23 +// -0.503017 +0xb806 +// 0.224328 +0x332e +// 0.241772 +0x33bd +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.093500 +0x2dfc +// -0.058769 +0xab86 +// -0.195278 +0xb240 +// -0.121604 +0xafc8 +// 0.244848 +0x33d6 +// 0.175250 +0x319c +// -0.093928 +0xae03 +// -0.016143 +0xa422 +// 0.263713 +0x3438 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.136091 +0xb05b +// -0.221129 +0xb313 +// -0.244193 +0xb3d0 +// 0.231521 +0x3369 +// 0.011098 +0x21af +// 0.127407 +0x3014 +// 0.086370 +0x2d87 +// 0.160196 +0x3120 +// 0.480953 +0x37b2 +// -0.116832 +0xaf7a +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.025512 +0x2688 +// -0.040153 +0xa924 +// 0.278578 +0x3475 +// -0.190396 +0xb218 +// -0.015082 +0xa3b9 +// 0.185550 +0x31f0 +// -0.124762 +0xaffc +// 0.071621 +0x2c95 +// -0.103394 +0xae9e +// 0.349996 +0x359a +// 0.281920 +0x3483 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000649 +0x1151 +// -0.316750 +0xb511 +// 0.248563 +0x33f4 +// -0.203291 +0xb281 +// 0.088865 +0x2db0 +// -0.007490 +0x9fac +// 0.195759 +0x3244 +// 0.180307 +0x31c5 +// -0.132489 +0xb03d +// -0.146624 +0xb0b1 +// 0.139610 +0x3078 +// 0.117136 +0x2f7f +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.366643 +0xb5de +// -0.019791 +0xa511 +// -0.208953 +0xb2b0 +// -0.000839 +0x92e0 +// -0.032938 +0xa837 +// -0.208006 +0xb2a8 +// 0.296338 +0x34be +// -0.083283 +0xad55 +// 0.189949 +0x3214 +// 0.126269 +0x300a +// 0.182717 +0x31d9 +// -0.504077 +0xb808 +// 0.184682 +0x31e9 +// -1.000000 +0xbc00 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.150354 +0x30d0 +// 0.051255 +0x2a90 +// 0.398934 +0x3662 +// -0.013141 +0xa2ba +// 0.405265 +0x367c +// -0.273114 +0xb45f +// -0.086724 +0xad8d +// 0.011213 +0x21be +// 0.045516 +0x29d3 +// 0.321391 +0x3524 +// 0.254903 +0x3414 +// -0.310017 +0xb4f6 +// -0.175847 +0xb1a1 +// -0.446880 +0xb726 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.148327 +0x30bf +// 0.218970 +0x3302 +// -0.088328 +0xada7 +// 0.091053 +0x2dd4 +// -0.257201 +0xb41d +// 0.102841 +0x2e95 +// -0.046119 +0xa9e7 +// -0.065214 +0xac2c +// -0.041153 +0xa945 +// -0.279686 +0xb47a +// -0.033829 +0xa854 +// 0.097499 +0x2e3d +// 0.370180 +0x35ec +// -0.101490 +0xae7f +// 0.281976 +0x3483 +// 1.000000 +0x3c00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.027059 +0x26ed +// -0.139374 +0xb076 +// 0.214690 +0x32df +// -0.026370 +0xa6c0 +// -0.142147 +0xb08c +// 0.064715 +0x2c24 +// -0.015793 +0xa40b +// 0.540729 +0x3853 +// 0.207631 +0x32a5 +// -0.099570 +0xae5f +// 0.531457 +0x3840 +// 0.333458 +0x3556 +// 0.064767 +0x2c25 +// 0.268335 +0x344b +// 0.310824 +0x34f9 +// -0.074401 +0xacc3 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// 0.494707 +0x37ea +// -0.300961 +0xb4d1 +// -0.219454 +0xb306 +// -0.310884 +0xb4f9 +// -0.000967 +0x93ec +// -0.147261 +0xb0b6 +// -0.042277 +0xa969 +// -0.411141 +0xb694 +// 0.170815 +0x3177 +// 0.147171 +0x30b6 +// -0.083637 +0xad5a +// -0.142578 +0xb090 +// -0.229531 +0xb358 +// -0.139637 +0xb078 +// -0.026993 +0xa6e9 +// 0.273324 +0x3460 +// 0.126397 +0x300b +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// -0.144955 +0xb0a3 +// -0.058774 +0xab86 +// 0.266094 +0x3442 +// 0.248956 +0x33f7 +// -0.199476 +0xb262 +// -0.073151 +0xacaf +// 0.042583 +0x2973 +// 0.006974 +0x1f24 +// -0.031458 +0xa807 +// -0.202356 +0xb27a +// -0.182756 +0xb1d9 +// -0.048413 +0xaa32 +// 0.611249 +0x38e4 +// 0.170510 +0x3175 +// 0.475028 +0x379a +// 0.086033 +0x2d82 +// -0.614828 +0xb8eb +// -0.020632 +0xa548 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.000000 +0x8000 +// -0.210322 +0xb2bb +// 0.226999 +0x3344 +// 0.135081 +0x3053 +// 0.105937 +0x2ec8 +// 0.185757 +0x31f2 +// -0.298696 +0xb4c7 +// 0.179632 +0x31c0 +// 0.276405 +0x346c +// -0.016706 +0xa447 +// -0.139743 +0xb079 +// 0.248965 +0x33f8 +// 0.013591 +0x22f5 +// -0.393278 +0xb64b +// -0.179671 +0xb1c0 +// -0.306965 +0xb4e9 +// 0.042052 +0x2962 +// 0.490109 +0x37d7 +// -0.478945 +0xb7aa +// -0.114594 +0xaf56 +// 1.000000 +0x3c00 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0x8000 +// 0.001610 +0x1698 +// 0.373488 +0x35fa +// -0.138518 +0xb06f +// -0.011817 +0xa20d +// 0.043310 +0x298b +// -0.476949 +0xb7a2 +// 0.146265 +0x30ae +// -0.266721 +0xb444 +// 0.115305 +0x2f61 +// -0.167700 +0xb15e +// 0.258879 +0x3424 +// 0.296687 +0x34bf +// -0.349269 +0xb597 +// 0.366935 +0x35df +// -0.367334 +0xb5e1 +// -0.156422 +0xb101 +// 0.139404 +0x3076 +// -0.186327 +0xb1f6 +// -0.414552 +0xb6a2 +// -0.029339 +0xa783 +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// 0.000000 +0x0 +// 0.182710 +0x31d9 +// 0.088434 +0x2da9 +// -0.187466 +0xb200 +// 0.018400 +0x24b6 +// 0.095030 +0x2e15 +// 0.115037 +0x2f5d +// 0.368011 +0x35e3 +// -0.127563 +0xb015 +// -0.027050 +0xa6ed +// -0.074096 +0xacbe +// -0.107110 +0xaedb +// 0.331730 +0x354f +// -0.022996 +0xa5e3 +// -0.362847 +0xb5ce +// -0.039928 +0xa91c +// 0.476983 +0x37a2 +// 0.031882 +0x2815 +// -0.224205 +0xb32d +// 0.021799 +0x2595 +// -0.122057 +0xafd0 +// 0.105351 +0x2ebe +// -1.000000 +0xbc00 +// -0.000000 +0x8000 +// -0.070279 +0xac7f +// 0.327991 +0x353f +// 0.322766 +0x352a +// -0.113143 +0xaf3e +// -0.000362 +0x8ded +// -0.170450 +0xb174 +// 0.077906 +0x2cfc +// -0.033692 +0xa850 +// 0.030617 +0x27d7 +// -0.146605 +0xb0b1 +// -0.031923 +0xa816 +// -0.000915 +0x9380 +// 0.202333 +0x327a +// -0.080764 +0xad2b +// -0.243961 +0xb3cf +// 0.374623 +0x35fe +// -0.003585 +0x9b57 +// -0.502047 +0xb804 +// -0.321480 +0xb525 +// 0.516539 +0x3822 +// -0.126034 +0xb008 +// -0.384156 +0xb626 +// -1.000000 +0xbc00 +// -3.152287 +0xc24e +// 0.534895 +0x3847 +// 0.592362 +0x38bd +// 0.595293 +0x38c3 +// 0.595290 +0x38c3 +// 0.595258 +0x38c3 +// 0.595251 +0x38c3 +// -0.193065 +0xb22e +// 0.893003 +0x3b25 +// 0.732179 +0x39dc +// 0.729362 +0x39d6 +// 0.729365 +0x39d6 +// 0.729396 +0x39d6 +// 0.729403 +0x39d6 +// -0.193065 +0xb22e +// 0.404093 +0x3677 +// -0.337329 +0xb566 +// -0.335068 +0xb55c +// -0.335067 +0xb55c +// -0.335060 +0xb55c +// -0.335058 +0xb55c +// -0.193065 +0xb22e +// 0.404093 +0x3677 +// 0.280848 +0x347e +// 0.021034 +0x2562 +// 0.017806 +0x248f +// 0.017819 +0x2490 +// 0.017823 +0x2490 +// -0.193065 +0xb22e +// 0.404093 +0x3677 +// 0.280848 +0x347e +// 0.000000 +0x0 +// 0.019100 +0x24e4 +// 0.018782 +0x24cf +// 0.018785 +0x24cf +// -0.193065 +0xb22e +// 0.404093 +0x3677 +// 0.280848 +0x347e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.018915 +0x24d8 +// 0.018884 +0x24d6 +// -0.193065 +0xb22e +// 0.404093 +0x3677 +// 0.280848 +0x347e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.018895 +0x24d6 +// -4.117681 +0xc41e +// -0.466128 +0xb775 +// 0.063789 +0x2c15 +// 0.241402 +0x33ba +// 0.300320 +0x34ce +// 0.319614 +0x351d +// 0.325830 +0x3537 +// 0.327789 +0x353f +// 0.328389 +0x3541 +// 0.328565 +0x3542 +// 0.328613 +0x3542 +// 0.328624 +0x3542 +// 0.328626 +0x3542 +// 0.328626 +0x3542 +// 0.328626 +0x3542 +// 0.328626 +0x3542 +// -0.151912 +0xb0dc +// -1.685205 +0xbebe +// -0.659616 +0xb947 +// -0.548514 +0xb863 +// -0.511659 +0xb818 +// -0.499590 +0xb7fe +// -0.495702 +0xb7ee +// -0.494476 +0xb7e9 +// -0.494101 +0xb7e8 +// -0.493991 +0xb7e7 +// -0.493961 +0xb7e7 +// -0.493954 +0xb7e7 +// -0.493952 +0xb7e7 +// -0.493953 +0xb7e7 +// -0.493953 +0xb7e7 +// -0.493953 +0xb7e7 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.908412 +0xbb44 +// -0.691344 +0xb988 +// -0.677564 +0xb96c +// -0.673051 +0xb962 +// -0.671597 +0xb95f +// -0.671139 +0xb95e +// -0.670999 +0xb95e +// -0.670957 +0xb95e +// -0.670946 +0xb95e +// -0.670943 +0xb95e +// -0.670943 +0xb95e +// -0.670943 +0xb95e +// -0.670943 +0xb95e +// -0.670943 +0xb95e +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.443566 +0xb719 +// -0.402027 +0xb66f +// -0.404471 +0xb679 +// -0.405258 +0xb67c +// -0.405507 +0xb67d +// -0.405583 +0xb67d +// -0.405605 +0xb67d +// -0.405611 +0xb67d +// -0.405612 +0xb67d +// -0.405613 +0xb67d +// -0.405613 +0xb67d +// -0.405613 +0xb67d +// -0.405612 +0xb67d +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.177792 +0xb1b0 +// -0.166640 +0xb155 +// -0.168416 +0xb164 +// -0.168975 +0xb168 +// -0.169147 +0xb16a +// -0.169197 +0xb16a +// -0.169211 +0xb16a +// -0.169214 +0xb16a +// -0.169215 +0xb16a +// -0.169214 +0xb16a +// -0.169214 +0xb16a +// -0.169214 +0xb16a +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.066641 +0x2c44 +// 0.062748 +0x2c04 +// 0.063432 +0x2c0f +// 0.063641 +0x2c13 +// 0.063702 +0x2c14 +// 0.063719 +0x2c14 +// 0.063723 +0x2c14 +// 0.063724 +0x2c14 +// 0.063724 +0x2c14 +// 0.063724 +0x2c14 +// 0.063723 +0x2c14 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.014134 +0x233d +// 0.006184 +0x1e55 +// 0.006022 +0x1e2b +// 0.005975 +0x1e1e +// 0.005962 +0x1e1b +// 0.005959 +0x1e1a +// 0.005958 +0x1e1a +// 0.005958 +0x1e1a +// 0.005958 +0x1e1a +// 0.005958 +0x1e1a +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.010409 +0x2154 +// 0.007507 +0x1fb0 +// 0.007460 +0x1fa3 +// 0.007447 +0x1fa0 +// 0.007443 +0x1f9f +// 0.007443 +0x1f9f +// 0.007443 +0x1f9f +// 0.007443 +0x1f9f +// 0.007443 +0x1f9f +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.009067 +0x20a4 +// 0.008008 +0x201a +// 0.007995 +0x2018 +// 0.007992 +0x2017 +// 0.007991 +0x2017 +// 0.007991 +0x2017 +// 0.007991 +0x2017 +// 0.007991 +0x2017 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008584 +0x2065 +// 0.008197 +0x2032 +// 0.008194 +0x2032 +// 0.008194 +0x2032 +// 0.008194 +0x2032 +// 0.008194 +0x2032 +// 0.008194 +0x2032 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008410 +0x204e +// 0.008269 +0x203c +// 0.008268 +0x203c +// 0.008268 +0x203c +// 0.008268 +0x203c +// 0.008268 +0x203c +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008347 +0x2046 +// 0.008296 +0x203f +// 0.008296 +0x203f +// 0.008296 +0x203f +// 0.008296 +0x203f +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008325 +0x2043 +// 0.008306 +0x2041 +// 0.008306 +0x2041 +// 0.008306 +0x2041 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008317 +0x2042 +// 0.008310 +0x2041 +// 0.008310 +0x2041 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008314 +0x2042 +// 0.008311 +0x2041 +// -0.151912 +0xb0dc +// -0.175710 +0xb19f +// -0.234547 +0xb381 +// -0.276248 +0xb46c +// -0.300115 +0xb4cd +// 0.311634 +0x34fc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.008312 +0x2041 +// -4.527693 +0xc487 +// -1.165477 +0xbca9 +// -0.432878 +0xb6ed +// -0.087283 +0xad96 +// 0.075161 +0x2ccf +// 0.151206 +0x30d7 +// 0.186641 +0x31f9 +// 0.203064 +0x327f +// 0.210628 +0x32bd +// 0.214087 +0x32da +// 0.215655 +0x32e7 +// 0.216358 +0x32ec +// 0.216669 +0x32ef +// 0.216804 +0x32f0 +// 0.216861 +0x32f1 +// 0.216885 +0x32f1 +// 0.216894 +0x32f1 +// 0.216898 +0x32f1 +// 0.216899 +0x32f1 +// 0.216899 +0x32f1 +// 0.216899 +0x32f1 +// 0.216899 +0x32f1 +// 0.216899 +0x32f1 +// -0.132669 +0xb03f +// -2.080664 +0xc029 +// -0.706972 +0xb9a8 +// -0.524536 +0xb832 +// -0.438782 +0xb705 +// -0.398638 +0xb661 +// -0.379933 +0xb614 +// -0.371263 +0xb5f1 +// -0.367270 +0xb5e0 +// -0.365444 +0xb5d9 +// -0.364616 +0xb5d5 +// -0.364245 +0xb5d4 +// -0.364081 +0xb5d3 +// -0.364010 +0xb5d3 +// -0.363979 +0xb5d3 +// -0.363967 +0xb5d3 +// -0.363962 +0xb5d3 +// -0.363960 +0xb5d3 +// -0.363960 +0xb5d3 +// -0.363960 +0xb5d3 +// -0.363960 +0xb5d3 +// -0.363960 +0xb5d3 +// -0.363960 +0xb5d3 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -1.199086 +0xbccc +// -0.677030 +0xb96b +// -0.632888 +0xb910 +// -0.612223 +0xb8e6 +// -0.602594 +0xb8d2 +// -0.598131 +0xb8c9 +// -0.596076 +0xb8c5 +// -0.595136 +0xb8c3 +// -0.594710 +0xb8c2 +// -0.594519 +0xb8c2 +// -0.594434 +0xb8c1 +// -0.594398 +0xb8c1 +// -0.594382 +0xb8c1 +// -0.594376 +0xb8c1 +// -0.594373 +0xb8c1 +// -0.594372 +0xb8c1 +// -0.594372 +0xb8c1 +// -0.594372 +0xb8c1 +// -0.594372 +0xb8c1 +// -0.594372 +0xb8c1 +// -0.594372 +0xb8c1 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.726915 +0xb9d1 +// -0.546375 +0xb85f +// -0.544512 +0xb85b +// -0.543644 +0xb859 +// -0.543242 +0xb859 +// -0.543057 +0xb858 +// -0.542972 +0xb858 +// -0.542934 +0xb858 +// -0.542917 +0xb858 +// -0.542909 +0xb858 +// -0.542906 +0xb858 +// -0.542904 +0xb858 +// -0.542904 +0xb858 +// -0.542903 +0xb858 +// -0.542903 +0xb858 +// -0.542903 +0xb858 +// -0.542903 +0xb858 +// -0.542903 +0xb858 +// -0.542903 +0xb858 +// -0.542903 +0xb858 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.408903 +0xb68b +// -0.341379 +0xb576 +// -0.346479 +0xb58b +// -0.348842 +0xb595 +// -0.349931 +0xb599 +// -0.350429 +0xb59b +// -0.350654 +0xb59c +// -0.350756 +0xb59d +// -0.350800 +0xb59d +// -0.350820 +0xb59d +// -0.350828 +0xb59d +// -0.350831 +0xb59d +// -0.350833 +0xb59d +// -0.350833 +0xb59d +// -0.350833 +0xb59d +// -0.350834 +0xb59d +// -0.350834 +0xb59d +// -0.350833 +0xb59d +// -0.350833 +0xb59d +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.213904 +0xb2d8 +// -0.184406 +0xb1e7 +// -0.188115 +0xb205 +// -0.189823 +0xb213 +// -0.190604 +0xb219 +// -0.190959 +0xb21c +// -0.191117 +0xb21e +// -0.191188 +0xb21e +// -0.191218 +0xb21e +// -0.191231 +0xb21f +// -0.191236 +0xb21f +// -0.191239 +0xb21f +// -0.191239 +0xb21f +// -0.191240 +0xb21f +// -0.191240 +0xb21f +// -0.191240 +0xb21f +// -0.191240 +0xb21f +// -0.191240 +0xb21f +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.108428 +0xaef0 +// -0.094284 +0xae09 +// -0.096288 +0xae2a +// -0.097204 +0xae39 +// -0.097619 +0xae3f +// -0.097806 +0xae42 +// -0.097888 +0xae44 +// -0.097924 +0xae44 +// -0.097939 +0xae45 +// -0.097945 +0xae45 +// -0.097948 +0xae45 +// -0.097949 +0xae45 +// -0.097949 +0xae45 +// -0.097949 +0xae45 +// -0.097949 +0xae45 +// -0.097949 +0xae45 +// -0.097949 +0xae45 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.054386 +0xaaf6 +// -0.047354 +0xaa10 +// -0.048353 +0xaa30 +// -0.048806 +0xaa3f +// -0.049010 +0xaa46 +// -0.049099 +0xaa49 +// -0.049139 +0xaa4a +// -0.049155 +0xaa4b +// -0.049162 +0xaa4b +// -0.049165 +0xaa4b +// -0.049166 +0xaa4b +// -0.049166 +0xaa4b +// -0.049166 +0xaa4b +// -0.049166 +0xaa4b +// -0.049166 +0xaa4b +// -0.049166 +0xaa4b +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.004009 +0x1c1b +// -0.008833 +0xa086 +// -0.009579 +0xa0e8 +// -0.009913 +0xa113 +// -0.010062 +0xa127 +// -0.010126 +0xa12f +// -0.010153 +0xa133 +// -0.010165 +0xa134 +// -0.010169 +0xa135 +// -0.010171 +0xa135 +// -0.010171 +0xa135 +// -0.010171 +0xa135 +// -0.010171 +0xa135 +// -0.010171 +0xa135 +// -0.010171 +0xa135 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// -0.001544 +0x9653 +// -0.007887 +0xa00a +// -0.008222 +0xa036 +// -0.008370 +0xa049 +// -0.008434 +0xa052 +// -0.008462 +0xa055 +// -0.008473 +0xa057 +// -0.008478 +0xa057 +// -0.008479 +0xa057 +// -0.008480 +0xa057 +// -0.008480 +0xa057 +// -0.008480 +0xa057 +// -0.008480 +0xa057 +// -0.008480 +0xa057 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.004243 +0x9c58 +// -0.007376 +0x9f8e +// -0.007524 +0x9fb4 +// -0.007589 +0x9fc5 +// -0.007616 +0x9fcd +// -0.007627 +0x9fcf +// -0.007632 +0x9fd1 +// -0.007633 +0x9fd1 +// -0.007634 +0x9fd1 +// -0.007634 +0x9fd1 +// -0.007634 +0x9fd1 +// -0.007634 +0x9fd1 +// -0.007634 +0x9fd1 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.005554 +0x9db0 +// -0.007101 +0x9f46 +// -0.007166 +0x9f56 +// -0.007193 +0x9f5e +// -0.007205 +0x9f61 +// -0.007209 +0x9f62 +// -0.007211 +0x9f62 +// -0.007211 +0x9f62 +// -0.007211 +0x9f62 +// -0.007211 +0x9f62 +// -0.007211 +0x9f62 +// -0.007211 +0x9f62 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006190 +0x9e57 +// -0.006954 +0x9f1f +// -0.006982 +0x9f26 +// -0.006993 +0x9f29 +// -0.006998 +0x9f2a +// -0.006999 +0x9f2b +// -0.007000 +0x9f2b +// -0.007000 +0x9f2b +// -0.007000 +0x9f2b +// -0.007000 +0x9f2b +// -0.007000 +0x9f2b +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006499 +0x9ea8 +// -0.006876 +0x9f0b +// -0.006887 +0x9f0d +// -0.006892 +0x9f0f +// -0.006893 +0x9f0f +// -0.006894 +0x9f0f +// -0.006894 +0x9f0f +// -0.006894 +0x9f0f +// -0.006894 +0x9f0f +// -0.006894 +0x9f0f +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006648 +0x9ecf +// -0.006835 +0x9f00 +// -0.006839 +0x9f01 +// -0.006841 +0x9f01 +// -0.006841 +0x9f01 +// -0.006841 +0x9f01 +// -0.006841 +0x9f01 +// -0.006841 +0x9f01 +// -0.006841 +0x9f01 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006721 +0x9ee2 +// -0.006813 +0x9efa +// -0.006814 +0x9efa +// -0.006815 +0x9efa +// -0.006815 +0x9efa +// -0.006815 +0x9efa +// -0.006815 +0x9efa +// -0.006815 +0x9efa +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006756 +0x9eeb +// -0.006801 +0x9ef7 +// -0.006801 +0x9ef7 +// -0.006802 +0x9ef7 +// -0.006802 +0x9ef7 +// -0.006802 +0x9ef7 +// -0.006801 +0x9ef7 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006772 +0x9eef +// -0.006795 +0x9ef5 +// -0.006795 +0x9ef5 +// -0.006795 +0x9ef5 +// -0.006795 +0x9ef5 +// -0.006795 +0x9ef5 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006781 +0x9ef2 +// -0.006792 +0x9ef4 +// -0.006792 +0x9ef4 +// -0.006792 +0x9ef4 +// -0.006792 +0x9ef4 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006785 +0x9ef3 +// -0.006790 +0x9ef4 +// -0.006790 +0x9ef4 +// -0.006790 +0x9ef4 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006786 +0x9ef3 +// -0.006789 +0x9ef4 +// -0.006789 +0x9ef4 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006787 +0x9ef3 +// -0.006789 +0x9ef4 +// -0.132669 +0xb03f +// -0.126037 +0xb008 +// -0.147813 +0xb0bb +// -0.173543 +0xb18e +// -0.190951 +0xb21c +// -0.202152 +0xb278 +// -0.211325 +0xb2c3 +// -0.220464 +0xb30e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.006788 +0x9ef3 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefTau1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefTau1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..332956d20a7e239b5c9e880a86602f26f010c63c --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefTau1_f16.txt @@ -0,0 +1,628 @@ +H +313 +// 1.249327 +0x3cff +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.112908 +0x3c74 +// 1.553155 +0x3e36 +// 1.119200 +0x3c7a +// 1.334665 +0x3d57 +// 1.290990 +0x3d2a +// 1.946836 +0x3fca +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.225877 +0x3ce7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.025235 +0x3c1a +// 1.072847 +0x3c4b +// 1.213933 +0x3cdb +// 1.345698 +0x3d62 +// 1.134086 +0x3c89 +// 1.183278 +0x3cbc +// 1.256702 +0x3d07 +// 1.330338 +0x3d52 +// 1.209347 +0x3cd6 +// 1.130198 +0x3c85 +// 1.052117 +0x3c35 +// 1.083331 +0x3c55 +// 1.195678 +0x3cc8 +// 1.467501 +0x3ddf +// 1.046943 +0x3c30 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.034435 +0x3c23 +// 1.183531 +0x3cbc +// 1.011484 +0x3c0c +// 1.593110 +0x3e5f +// 1.221814 +0x3ce3 +// 1.144500 +0x3c94 +// 1.203457 +0x3cd0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.251296 +0x3d01 +// 1.055783 +0x3c39 +// 1.112250 +0x3c73 +// 1.283453 +0x3d22 +// 1.498130 +0x3dfe +// 1.222296 +0x3ce4 +// 1.020981 +0x3c15 +// 1.037633 +0x3c27 +// 1.111454 +0x3c72 +// 1.744296 +0x3efa +// 1.297549 +0x3d31 +// 1.645750 +0x3e95 +// 1.548950 +0x3e32 +// 1.509758 +0x3e0a +// 1.243592 +0x3cf9 +// 0.000000 +0x0 +// 1.118610 +0x3c79 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.025233 +0x3c1a +// 1.150244 +0x3c9a +// 1.158549 +0x3ca2 +// 1.019778 +0x3c14 +// 1.105581 +0x3c6c +// 1.431515 +0x3dba +// 1.141336 +0x3c91 +// 1.090137 +0x3c5c +// 1.176208 +0x3cb4 +// 1.206416 +0x3cd3 +// 1.096703 +0x3c63 +// 1.251746 +0x3d02 +// 1.345664 +0x3d62 +// 1.296734 +0x3d30 +// 1.131105 +0x3c86 +// 1.026879 +0x3c1c +// 1.017602 +0x3c12 +// 1.021917 +0x3c16 +// 1.317120 +0x3d45 +// 1.206884 +0x3cd4 +// 1.122974 +0x3c7e +// 1.249058 +0x3cff +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.177249 +0x3cb6 +// 1.064934 +0x3c42 +// 1.011010 +0x3c0b +// 1.069788 +0x3c47 +// 1.245278 +0x3cfb +// 1.253867 +0x3d04 +// 1.163562 +0x3ca7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.162741 +0x3ca7 +// 1.349632 +0x3d66 +// 1.261137 +0x3d0b +// 1.036746 +0x3c26 +// 1.420652 +0x3daf +// 1.096017 +0x3c62 +// 1.649897 +0x3e99 +// 1.172529 +0x3cb1 +// 1.098015 +0x3c64 +// 1.237672 +0x3cf3 +// 1.417870 +0x3dac +// 1.127663 +0x3c83 +// 1.248526 +0x3cfe +// 1.465338 +0x3ddd +// 1.178838 +0x3cb7 +// 1.266745 +0x3d11 +// 1.000708 +0x3c01 +// 1.499542 +0x3e00 +// 1.126939 +0x3c82 +// 1.124582 +0x3c80 +// 1.193708 +0x3cc6 +// 1.334483 +0x3d57 +// 1.158908 +0x3ca3 +// 1.037520 +0x3c26 +// 1.063167 +0x3c41 +// 1.072902 +0x3c4b +// 1.303294 +0x3d37 +// 1.083780 +0x3c56 +// 1.128771 +0x3c84 +// 1.275276 +0x3d1a +// 1.141808 +0x3c91 +// 1.468730 +0x3de0 +// 1.242352 +0x3cf8 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.205709 +0x3cd3 +// 1.211553 +0x3cd9 +// 1.264903 +0x3d0f +// 1.117981 +0x3c79 +// 1.374149 +0x3d7f +// 1.238362 +0x3cf4 +// 0.000000 +0x0 +// 1.167780 +0x3cac +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.290960 +0x3d2a +// 1.264613 +0x3d0f +// 1.042760 +0x3c2c +// 1.477949 +0x3de9 +// 1.066859 +0x3c44 +// 1.344601 +0x3d61 +// 1.180526 +0x3cb9 +// 1.578600 +0x3e50 +// 1.159727 +0x3ca4 +// 1.107806 +0x3c6e +// 1.252143 +0x3d02 +// 1.129687 +0x3c85 +// 1.350558 +0x3d67 +// 1.145381 +0x3c95 +// 1.403709 +0x3d9d +// 1.084667 +0x3c57 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.218456 +0x3ce0 +// 1.054420 +0x3c38 +// 1.070527 +0x3c48 +// 1.422463 +0x3db1 +// 1.327318 +0x3d4f +// 1.029304 +0x3c1e +// 1.357337 +0x3d6e +// 1.136523 +0x3c8c +// 1.372240 +0x3d7d +// 1.331326 +0x3d53 +// 1.202783 +0x3cd0 +// 1.172641 +0x3cb1 +// 1.025277 +0x3c1a +// 1.222731 +0x3ce4 +// 1.181491 +0x3cba +// 1.349769 +0x3d66 +// 1.208709 +0x3cd6 +// 1.276445 +0x3d1b +// 1.551820 +0x3e35 +// 1.559367 +0x3e3d +// 1.947451 +0x3fca +// 1.742805 +0x3ef9 +// 0.000000 +0x0 +// 1.634460 +0x3e8a +// 1.101045 +0x3c67 +// 1.520331 +0x3e15 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.485710 +0x3df1 +// 1.396417 +0x3d96 +// 1.166070 +0x3caa +// 1.043973 +0x3c2d +// 1.004642 +0x3c05 +// 1.014632 +0x3c0f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.441726 +0x3dc4 +// 1.499710 +0x3e00 +// 1.391816 +0x3d91 +// 1.272080 +0x3d17 +// 1.207494 +0x3cd4 +// 1.180141 +0x3cb8 +// 1.166498 +0x3caa +// 1.156696 +0x3ca0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefValueHouseholder1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefValueHouseholder1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..a1f3430b0e6cad5e03675ed121e5174199907003 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefValueHouseholder1_f16.txt @@ -0,0 +1,12 @@ +H +5 +// 1.510231 +0x3e0a +// 1.081673 +0x3c54 +// 1.592491 +0x3e5f +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefVectorHouseholder1_f16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefVectorHouseholder1_f16.txt new file mode 100644 index 0000000000000000000000000000000000000000..14ca1c6be5a482027b44af9de312ce690090b6c1 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF16/RefVectorHouseholder1_f16.txt @@ -0,0 +1,62 @@ +H +30 +// 1.000000 +0x3c00 +// -0.568305 +0xb88c +// 0.036464 +0x28ab +// 1.000000 +0x3c00 +// -0.531454 +0xb840 +// -0.052578 +0xaabb +// -0.044437 +0xa9b0 +// -0.381603 +0xb61b +// -0.577977 +0xb8a0 +// -0.148253 +0xb0be +// 0.245248 +0x33d9 +// 1.000000 +0x3c00 +// -0.047169 +0xaa0a +// -0.124241 +0xaff4 +// 0.310853 +0x34f9 +// 0.077501 +0x2cf6 +// 0.205539 +0x3294 +// -0.145392 +0xb0a7 +// 0.106009 +0x2ec9 +// -0.241024 +0xb3b6 +// 0.001252 +0x1521 +// -0.053667 +0xaadf +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/DimsHouseholder1_s16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/DimsHouseholder1_s16.txt new file mode 100644 index 0000000000000000000000000000000000000000..3cac51d106b83245619535012119233c2eaba182 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/DimsHouseholder1_s16.txt @@ -0,0 +1,12 @@ +H +5 +// 3 +0x0003 +// 8 +0x0008 +// 11 +0x000B +// 4 +0x0004 +// 4 +0x0004 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/DimsQR1_s16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/DimsQR1_s16.txt new file mode 100644 index 0000000000000000000000000000000000000000..b028c528dea0d0622bb60393a5de8cd274e3939c --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/DimsQR1_s16.txt @@ -0,0 +1,140 @@ +H +69 +// 3 +0x0003 +// 3 +0x0003 +// 1 +0x0001 +// 3 +0x0003 +// 3 +0x0003 +// 3 +0x0003 +// 8 +0x0008 +// 3 +0x0003 +// 1 +0x0001 +// 8 +0x0008 +// 3 +0x0003 +// 3 +0x0003 +// 8 +0x0008 +// 3 +0x0003 +// 8 +0x0008 +// 8 +0x0008 +// 8 +0x0008 +// 1 +0x0001 +// 8 +0x0008 +// 8 +0x0008 +// 3 +0x0003 +// 8 +0x0008 +// 8 +0x0008 +// 8 +0x0008 +// 11 +0x000B +// 3 +0x0003 +// 1 +0x0001 +// 11 +0x000B +// 3 +0x0003 +// 3 +0x0003 +// 11 +0x000B +// 3 +0x0003 +// 8 +0x0008 +// 11 +0x000B +// 3 +0x0003 +// 11 +0x000B +// 11 +0x000B +// 8 +0x0008 +// 1 +0x0001 +// 11 +0x000B +// 8 +0x0008 +// 3 +0x0003 +// 11 +0x000B +// 8 +0x0008 +// 8 +0x0008 +// 11 +0x000B +// 8 +0x0008 +// 11 +0x000B +// 11 +0x000B +// 11 +0x000B +// 1 +0x0001 +// 11 +0x000B +// 11 +0x000B +// 3 +0x0003 +// 11 +0x000B +// 11 +0x000B +// 8 +0x0008 +// 11 +0x000B +// 11 +0x000B +// 11 +0x000B +// 3 +0x0003 +// 3 +0x0003 +// 3 +0x0003 +// 8 +0x0008 +// 8 +0x0008 +// 8 +0x0008 +// 11 +0x000B +// 11 +0x000B +// 11 +0x000B diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/InputMatrixQR1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/InputMatrixQR1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..7949693df592ee7a1d550f4558de5e6d2e207150 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/InputMatrixQR1_f32.txt @@ -0,0 +1,2890 @@ +W +1444 +// -0.823950 +0xbf52ee65 +// 1.000000 +0x3f800000 +// 0.524874 +0x3f065e27 +// -0.107083 +0xbddb4e51 +// 0.129963 +0x3e051501 +// 0.068214 +0x3d8bb3e1 +// 0.264435 +0x3e8763fb +// -0.320935 +0xbea451a2 +// -0.168451 +0xbe2c7e54 +// -0.861959 +0xbf5ca955 +// -0.450422 +0xbee69dc2 +// -0.232695 +0xbe6e477a +// 0.479011 +0x3ef540f6 +// -0.573220 +0xbf12be94 +// -0.664806 +0xbf2a30b3 +// 0.166058 +0x3e2a0b1e +// -0.684498 +0xbf2f3b49 +// 0.709850 +0x3f35b8b8 +// 0.318401 +0x3ea30565 +// 0.605801 +0x3f1b15c9 +// 1.000000 +0x3f800000 +// -0.243299 +0xbe79236b +// -0.462910 +0xbeed0299 +// -0.764129 +0xbf439dfb +// 0.289227 +0x3e94158b +// 0.550294 +0x3f0ce015 +// 0.908374 +0x3f688b38 +// 0.005314 +0x3bae1efe +// 0.010110 +0x3c25a50f +// 0.016689 +0x3c88b727 +// -0.277224 +0xbe8df053 +// -0.527457 +0xbf070774 +// -0.870677 +0xbf5ee4b8 +// -0.143015 +0xbe1272a3 +// -0.272107 +0xbe8b5192 +// -0.449168 +0xbee5f964 +// -0.005112 +0xbba77fbc +// -0.009726 +0xbc1f5853 +// -0.016054 +0xbc838414 +// 0.164236 +0x3e282d6f +// 0.312481 +0x3e9ffd91 +// 0.515815 +0x3f040c76 +// 0.495681 +0x3efdc9e4 +// 0.032213 +0x3d03f1cb +// 0.300830 +0x3e9a0671 +// 0.471082 +0x3ef131b8 +// -0.007242 +0xbbed4fcf +// 0.062712 +0x3d806f17 +// 0.412160 +0x3ed30696 +// 0.648044 +0x3f25e630 +// -0.343673 +0xbeaff5f5 +// -0.255618 +0xbe82e05a +// -0.291210 +0xbe951976 +// -0.088988 +0xbdb63f66 +// -0.218594 +0xbe5fd719 +// 0.084328 +0x3dacb444 +// 0.247306 +0x3e7d3dd5 +// -0.309693 +0xbe9e9016 +// 0.555371 +0x3f0e2cc5 +// 0.624737 +0x3f1feec8 +// -0.075835 +0xbd9b4f61 +// 0.143438 +0x3e12e170 +// 0.214852 +0x3e5c0210 +// -0.384346 +0xbec4c8f6 +// 0.397522 +0x3ecb8806 +// -0.530961 +0xbf07ed13 +// 0.353075 +0x3eb4c632 +// 0.328380 +0x3ea8215f +// -0.674179 +0xbf2c96f7 +// -0.378729 +0xbec1e8cb +// 0.087183 +0x3db28cd8 +// -0.066641 +0xbd887b51 +// -0.457908 +0xbeea72f8 +// -0.094807 +0xbdc229f2 +// -0.260071 +0xbe852816 +// 0.337275 +0x3eacaf5e +// -0.845104 +0xbf5858ba +// -0.015195 +0xbc78f678 +// 0.505457 +0x3f01659f +// 0.186755 +0x3e3f3ca1 +// 0.392974 +0x3ec933eb +// 0.344041 +0x3eb02627 +// 0.066955 +0x3d891fcd +// -0.365569 +0xbebb2bce +// 0.081848 +0x3da7a009 +// 0.339918 +0x3eae09ae +// 0.426878 +0x3eda8fb2 +// -0.167086 +0xbe2b188a +// -0.080454 +0xbda4c539 +// 0.053671 +0x3d5bd623 +// -0.131949 +0xbe071db0 +// 0.149256 +0x3e18d6ab +// 0.089988 +0x3db84b7e +// 0.005723 +0x3bbb890e +// -0.093148 +0xbdbec46f +// 0.188982 +0x3e418464 +// 0.101843 +0x3dd0932d +// -0.076042 +0xbd9bbba8 +// -0.477875 +0xbef4ac07 +// 0.540556 +0x3f0a61dd +// 0.325905 +0x3ea6dd02 +// 0.020727 +0x3ca9cc1b +// -0.337351 +0xbeacb93a +// 0.684427 +0x3f2f369a +// 0.368841 +0x3ebcd8c7 +// -0.275396 +0xbe8d00c3 +// -0.381309 +0xbec33aeb +// 0.431324 +0x3edcd670 +// 0.260048 +0x3e852504 +// 0.016539 +0x3c877c56 +// -0.269181 +0xbe89d214 +// 0.546122 +0x3f0bcea8 +// 0.294308 +0x3e96af8f +// -0.219746 +0xbe610519 +// 0.155849 +0x3e1f96d1 +// -0.176291 +0xbe348591 +// -0.106287 +0xbdd9acf9 +// -0.006760 +0xbbdd80cb +// 0.110020 +0x3de15208 +// -0.223211 +0xbe64917f +// -0.120290 +0xbdf65a7c +// 0.089815 +0x3db7f0c4 +// 0.698212 +0x3f32be03 +// -0.789793 +0xbf4a2fe5 +// -0.476172 +0xbef3ccd0 +// -0.030284 +0xbcf8163a +// 0.492895 +0x3efc5cc0 +// -1.000000 +0xbf800000 +// -0.538905 +0xbf09f5b5 +// 0.402375 +0x3ece0421 +// 0.366750 +0x3ebbc6b4 +// -0.414855 +0xbed467ee +// -0.250119 +0xbe800fa2 +// -0.015907 +0xbc825013 +// 0.258903 +0x3e848efe +// -0.525271 +0xbf067827 +// -0.283071 +0xbe90eeba +// 0.211356 +0x3e586db6 +// -0.088043 +0xbdb44fdc +// 0.099591 +0x3dcbf673 +// 0.060044 +0x3d75f0ec +// 0.003819 +0x3b7a43f9 +// -0.062153 +0xbd7e941c +// 0.126098 +0x3e011fc5 +// 0.067955 +0x3d8b2bdf +// -0.050739 +0xbd4fd34b +// -0.610103 +0xbf1c2fb8 +// 0.690128 +0x3f30ac37 +// 0.416083 +0x3ed508d2 +// 0.026462 +0x3cd8c7c0 +// -0.430696 +0xbedc8427 +// 0.873808 +0x3f5fb1e3 +// 0.470900 +0x3ef119cc +// -0.351599 +0xbeb404c0 +// -0.132022 +0xbe0730ac +// -0.134966 +0xbe0a3498 +// 0.499890 +0x3efff1a3 +// -0.227969 +0xbe6970aa +// 0.026462 +0x3cd8c7d3 +// -0.302372 +0xbe9ad076 +// 0.098376 +0x3dc9793d +// -0.057021 +0xbd698edc +// -0.000003 +0xb662d0ca +// 0.277476 +0x3e8e1146 +// -0.221676 +0xbe62ff08 +// -0.044020 +0xbd344eb3 +// -0.030427 +0xbcf9416b +// 0.211813 +0x3e58e56b +// 0.031554 +0x3d013e70 +// -0.174643 +0xbe32d581 +// -0.142307 +0xbe11b905 +// -0.143136 +0xbe129238 +// 0.398596 +0x3ecc14d5 +// -0.155102 +0xbe1ed320 +// 0.011087 +0x3c35a83f +// -0.326125 +0xbea6f9d4 +// 0.077783 +0x3d9f4c73 +// -0.020406 +0xbca72b61 +// -0.216556 +0xbe5dc0ce +// 0.235285 +0x3e70ee81 +// 0.069856 +0x3d8f10a9 +// -0.192999 +0xbe45a18f +// -0.054505 +0xbd5f4043 +// -0.152901 +0xbe1c9207 +// 0.133870 +0x3e091536 +// -0.262525 +0xbe86699d +// 0.073775 +0x3d971731 +// -0.370749 +0xbebdd2c8 +// 0.121613 +0x3df91017 +// 0.168901 +0x3e2cf470 +// 0.039662 +0x3d2274d4 +// -0.170988 +0xbe2f176a +// -0.096533 +0xbdc5b31f +// 0.298999 +0x3e99165a +// 0.240426 +0x3e763258 +// -0.158022 +0xbe21d09b +// 0.361763 +0x3eb938fb +// -0.145248 +0xbe14bbf0 +// 0.113979 +0x3de96da3 +// 0.256022 +0x3e831551 +// -0.029329 +0xbcf04385 +// 0.066122 +0x3d876acf +// -0.139107 +0xbe0e7214 +// 0.340779 +0x3eae7a92 +// 0.153471 +0x3e1d2763 +// -0.325123 +0xbea6768b +// -0.023512 +0xbcc09c4c +// 0.050283 +0x3d4df569 +// 0.161178 +0x3e250be1 +// -0.367949 +0xbebc63e0 +// -0.386613 +0xbec5f216 +// 0.010984 +0x3c33f774 +// -0.331079 +0xbea98323 +// 0.235030 +0x3e70ab96 +// -0.149618 +0xbe19355c +// -0.596473 +0xbf18b272 +// 0.031146 +0x3cff2677 +// 0.029351 +0x3cf07150 +// -0.687249 +0xbf2fef90 +// 0.065085 +0x3d854b6c +// -0.285541 +0xbe92326b +// 0.363362 +0x3eba0a94 +// -0.290903 +0xbe94f132 +// -0.060806 +0xbd79101b +// -0.038848 +0xbd1f1ede +// -0.469101 +0xbef02e0a +// -0.396454 +0xbecafbf9 +// -0.524486 +0xbf0644b1 +// 0.117116 +0x3defda63 +// -0.188523 +0xbe410c29 +// 0.546033 +0x3f0bc8c9 +// -0.146139 +0xbe15a58c +// 0.441234 +0x3ee1e960 +// -0.065475 +0xbd8617a6 +// 0.386611 +0x3ec5f1e8 +// -0.172838 +0xbe30fc90 +// 0.141088 +0x3e107965 +// -0.316029 +0xbea1ce90 +// -0.172811 +0xbe30f575 +// -0.012839 +0xbc525a69 +// 0.057816 +0x3d6cd0c3 +// -0.817011 +0xbf5127a3 +// 0.336664 +0x3eac5f2a +// -0.465707 +0xbeee7120 +// -0.779453 +0xbf478a39 +// 0.190533 +0x3e431b23 +// -0.031808 +0xbd0248d7 +// 0.087826 +0x3db3de56 +// 0.115018 +0x3deb8e99 +// 0.063014 +0x3d810db3 +// 0.252723 +0x3e8164ed +// -0.060655 +0xbd787110 +// 0.163850 +0x3e27c855 +// 0.614456 +0x3f1d4cf7 +// 0.431383 +0x3edcde4c +// -0.442986 +0xbee2cf00 +// -0.333977 +0xbeaaff10 +// -0.184880 +0xbe3d5146 +// -0.114506 +0xbdea81fa +// -0.264818 +0xbe879639 +// 0.120472 +0x3df6ba08 +// 0.067435 +0x3d8a1b1d +// 0.248843 +0x3e7ed0cf +// 0.764356 +0x3f43acdd +// -0.490879 +0xbefb5477 +// -0.102826 +0xbdd2965b +// 0.163319 +0x3e273d21 +// 0.031909 +0x3d02b308 +// 0.326527 +0x3ea72e8f +// 0.554647 +0x3f0dfd51 +// -0.137272 +0xbe0c910f +// 0.380307 +0x3ec2b78d +// 0.627833 +0x3f20b9a2 +// -0.020136 +0xbca4f393 +// -0.063630 +0xbd825067 +// -0.631741 +0xbf21b9cb +// 0.359607 +0x3eb81e72 +// 0.080709 +0x3da54abf +// -0.565235 +0xbf10b338 +// -0.204835 +0xbe51c056 +// -0.201384 +0xbe4e3786 +// 0.242940 +0x3e78c540 +// 0.246325 +0x3e7c3c8d +// 0.291255 +0x3e951f6b +// 0.493690 +0x3efcc4e5 +// -0.147355 +0xbe16e457 +// -0.174234 +0xbe326a4d +// -0.295333 +0xbe9735e7 +// 0.498946 +0x3eff75ea +// 0.589956 +0x3f17075f +// 1.000000 +0x3f800000 +// 0.285909 +0x3e9262b6 +// 0.338060 +0x3ead163f +// 0.573026 +0x3f12b1d7 +// -0.110063 +0xbde16884 +// -0.130138 +0xbe054305 +// -0.220590 +0xbe61e25c +// -0.128603 +0xbe03b063 +// -0.152060 +0xbe1bb5a8 +// -0.257748 +0xbe83f792 +// 0.440437 +0x3ee180fa +// 0.520775 +0x3f05517c +// 0.882734 +0x3f61fadf +// -0.127402 +0xbe0275cb +// -0.150641 +0xbe1a41ae +// -0.255343 +0xbe82bc50 +// 0.372221 +0x3ebe93c1 +// 0.440116 +0x3ee156d4 +// 0.746014 +0x3f3efac4 +// -0.354292 +0xbeb565d1 +// -0.418917 +0xbed67c41 +// -0.710081 +0xbf35c7df +// -0.443125 +0xbee2e158 +// -0.523953 +0xbf0621cd +// -0.888122 +0xbf635bfb +// -0.456008 +0xbee979e0 +// -0.734801 +0xbf3c1beb +// -0.149722 +0xbe1950ae +// 0.425487 +0x3ed9d95e +// 0.135231 +0x3e0a7a00 +// -0.299541 +0xbe995d6b +// -0.313802 +0xbea0aa9b +// 0.063761 +0x3d8294fb +// -0.230142 +0xbe6baa75 +// -0.057092 +0xbd69d9a0 +// 0.251776 +0x3e80e8c5 +// -0.528797 +0xbf075f40 +// 0.219710 +0x3e60fbb7 +// -0.208784 +0xbe55cb92 +// -0.255094 +0xbe829ba4 +// -0.268793 +0xbe899f34 +// 0.112968 +0x3de75b89 +// 0.180778 +0x3e391df2 +// 0.296258 +0x3e97af22 +// -0.492227 +0xbefc0532 +// -0.171442 +0xbe2f8e9b +// 0.081935 +0x3da7cdbc +// -0.152064 +0xbe1bb69c +// 0.159314 +0x3e232342 +// -0.020094 +0xbca49bdc +// 0.030275 +0x3cf8043c +// -0.608951 +0xbf1be431 +// -0.483230 +0xbef769e3 +// 0.198390 +0x3e4b26ce +// -0.107163 +0xbddb784b +// 0.245699 +0x3e7b9879 +// -0.110837 +0xbde2fe48 +// 0.142950 +0x3e12618d +// -0.048598 +0xbd470e64 +// -0.508183 +0xbf021842 +// 0.287286 +0x3e93171c +// 0.361191 +0x3eb8ee02 +// -0.131891 +0xbe070e6d +// 0.117244 +0x3df01d65 +// -0.115718 +0xbdecfd59 +// 0.113413 +0x3de8451c +// -0.110825 +0xbde2f7fb +// 0.349172 +0x3eb2c6b5 +// 0.506521 +0x3f01ab59 +// 0.084308 +0x3daca9ee +// -0.088388 +0xbdb504ec +// -0.120713 +0xbdf73835 +// 0.246918 +0x3e7cd831 +// 0.064277 +0x3d83a38a +// 0.498472 +0x3eff37b5 +// 0.027839 +0x3ce40fa3 +// -0.587970 +0xbf16852e +// 0.218336 +0x3e5f935d +// 0.081223 +0x3da65850 +// 0.188699 +0x3e413a4e +// 0.089538 +0x3db75f86 +// 0.787661 +0x3f49a420 +// 0.121433 +0x3df8b1be +// -0.359894 +0xbeb84416 +// -0.064701 +0xbd848217 +// -0.473449 +0xbef267df +// 0.005472 +0x3bb350a6 +// 0.011693 +0x3c3f94f0 +// 0.315766 +0x3ea1ac20 +// -0.081499 +0xbda6e918 +// -0.437330 +0xbedfe9c0 +// -0.263413 +0xbe86de1f +// 0.327291 +0x3ea792af +// -0.146219 +0xbe15ba78 +// -0.553203 +0xbf0d9eb0 +// -0.272837 +0xbe8bb141 +// 0.067488 +0x3d8a370b +// 0.087929 +0x3db413ed +// -0.056681 +0xbd682acc +// -0.024421 +0xbcc80f64 +// 0.200450 +0x3e4d42e2 +// -0.616012 +0xbf1db2f0 +// 0.111033 +0x3de36546 +// 0.223923 +0x3e654c33 +// -0.215804 +0xbe5cfbac +// -0.821209 +0xbf523ac7 +// 0.436258 +0x3edf5d3a +// 0.165383 +0x3e295a2e +// 0.403883 +0x3ecec9b8 +// 0.428034 +0x3edb274a +// 0.420712 +0x3ed76792 +// -0.050202 +0xbd4da0cf +// 0.355635 +0x3eb615cd +// -0.393654 +0xbec98d0c +// 0.122848 +0x3dfb977d +// -0.158773 +0xbe229543 +// -0.031302 +0xbd00368e +// 0.260391 +0x3e8551f4 +// 0.009761 +0x3c1fea9f +// -0.128256 +0xbe035570 +// 0.158213 +0x3e22029e +// 0.034815 +0x3d0e99b4 +// -0.111549 +0xbde473de +// 0.114839 +0x3deb307e +// 0.155979 +0x3e1fb8d5 +// 0.295253 +0x3e972b58 +// -0.074821 +0xbd993ba8 +// 0.094116 +0x3dc0bfbf +// 0.037990 +0x3d1b9b15 +// 0.004592 +0x3b967561 +// 0.063500 +0x3d820c48 +// 0.049780 +0x3d4be61e +// 0.085590 +0x3daf49a3 +// 0.162013 +0x3e25e6c5 +// -0.041056 +0xbd282a91 +// 0.051644 +0x3d538885 +// 0.020846 +0x3caac531 +// 0.002520 +0x3b251f12 +// 0.034844 +0x3d0eb8c4 +// 0.027316 +0x3cdfc50f +// -0.020751 +0xbca9fdab +// -0.039279 +0xbd20e369 +// 0.009954 +0x3c2315b0 +// -0.012521 +0xbc4d242b +// -0.005054 +0xbba59c2b +// -0.000611 +0xba2021bf +// -0.008448 +0xbc0a68b8 +// -0.006623 +0xbbd9020d +// 0.133296 +0x3e087ed1 +// 0.252317 +0x3e812fb8 +// -0.063940 +0xbd82f334 +// 0.080430 +0x3da4b839 +// 0.032465 +0x3d04fa4d +// 0.003924 +0x3b809437 +// 0.054266 +0x3d5e45e5 +// 0.042541 +0x3d2e3f83 +// -0.024698 +0xbcca528c +// -0.046750 +0xbd3f7d15 +// 0.011847 +0x3c421a4e +// -0.014902 +0xbc742886 +// -0.006015 +0xbbc51bbe +// -0.000727 +0xba3e9696 +// -0.010055 +0xbc24bbdf +// -0.007882 +0xbc012419 +// -0.053564 +0xbd5b65c8 +// -0.101391 +0xbdcfa641 +// 0.025694 +0x3cd27bf4 +// -0.032320 +0xbd0461d1 +// -0.013046 +0xbc55be54 +// -0.001577 +0xbaceac4d +// -0.021806 +0xbcb2a2ff +// -0.017095 +0xbc8c0a3a +// 0.034199 +0x3d0c13ba +// 0.064735 +0x3d849388 +// -0.016405 +0xbc8662dd +// 0.020635 +0x3ca90abb +// 0.008329 +0x3c087795 +// 0.001007 +0x3a83f3f3 +// 0.013922 +0x3c641b06 +// 0.010914 +0x3c32d207 +// 0.157111 +0x3e20e1a8 +// 0.297396 +0x3e984445 +// -0.075364 +0xbd9a586b +// 0.094799 +0x3dc225f2 +// 0.038265 +0x3d1cbc41 +// 0.004625 +0x3b978cfc +// 0.063961 +0x3d82fdf5 +// 0.050141 +0x3d4d6109 +// -0.528288 +0xbf073dea +// -1.000000 +0xbf800000 +// 0.253413 +0x3e81bf57 +// -0.318763 +0xbea334f7 +// -0.128668 +0xbe03c1ab +// -0.015552 +0xbc7ecbd9 +// -0.215070 +0xbe5c3b54 +// -0.168601 +0xbe2ca5da +// -0.081109 +0xbda61c4b +// -0.153531 +0xbe1d373a +// 0.038907 +0x3d1f5cab +// -0.048940 +0xbd487562 +// -0.019755 +0xbca1d465 +// -0.002388 +0xbb1c79fc +// -0.033020 +0xbd073fe5 +// -0.025886 +0xbcd40deb +// 0.212093 +0x3e592eef +// 0.401472 +0x3ecd8dc2 +// -0.101738 +0xbdd05c22 +// 0.127975 +0x3e030bc9 +// 0.051657 +0x3d539617 +// 0.006244 +0x3bcc9654 +// 0.086345 +0x3db0d576 +// 0.067689 +0x3d8aa06a +// 0.172284 +0x3e306b40 +// 0.151190 +0x3e1ad1a4 +// 0.273395 +0x3e8bfa74 +// 0.151994 +0x3e1ba46e +// -0.161766 +0xbe25a613 +// 0.317456 +0x3ea28997 +// 0.444242 +0x3ee373b9 +// -0.355784 +0xbeb6294b +// 0.164795 +0x3e28bfe5 +// 0.213447 +0x3e5a91ea +// -0.414555 +0xbed44086 +// -0.088018 +0xbdb442f2 +// -0.116535 +0xbdeeaa1b +// -0.088524 +0xbdb54be8 +// 0.191391 +0x3e43fc1f +// 0.047968 +0x3d447a30 +// -0.018530 +0xbc97cb57 +// 0.305088 +0x3e9c3472 +// 0.023701 +0x3cc2288a +// -0.073116 +0xbd95bdc5 +// 0.098765 +0x3dca458b +// 0.128974 +0x3e0411d9 +// -0.127764 +0xbe02d4a1 +// -0.038344 +0xbd1d0ef8 +// -0.050474 +0xbd4ebe54 +// 0.030918 +0x3cfd47a4 +// -0.139963 +0xbe0f526f +// -0.081084 +0xbda60fa1 +// 0.068622 +0x3d8c897d +// -0.099746 +0xbdcc4789 +// -0.171630 +0xbe2fbfc3 +// 0.128864 +0x3e03f4f0 +// -0.098475 +0xbdc9ad35 +// 0.469812 +0x3ef08b2d +// 0.204370 +0x3e51466c +// -0.098655 +0xbdca0bd7 +// 0.225184 +0x3e6696b0 +// 0.267850 +0x3e892394 +// -0.307777 +0xbe9d94f9 +// -0.087439 +0xbdb31302 +// -0.080947 +0xbda5c780 +// -0.135413 +0xbe0aa993 +// 0.290939 +0x3e94f5f7 +// 0.078360 +0x3da07b4f +// 0.046712 +0x3d3f54ac +// 0.085352 +0x3daecd3e +// -0.057327 +0xbd6ad031 +// -0.070648 +0xbd90afba +// 0.160197 +0x3e240aa6 +// 0.169674 +0x3e2dbf07 +// -0.305317 +0xbe9c5274 +// -0.045435 +0xbd3a1a81 +// -0.126000 +0xbe01061b +// -0.040682 +0xbd26a23c +// 0.228180 +0x3e69a7ee +// -0.005533 +0xbbb54e96 +// 0.066746 +0x3d88b25c +// -0.047391 +0xbd421cad +// -0.362292 +0xbeb97e56 +// -0.067448 +0xbd8a2242 +// -0.075885 +0xbd9b6987 +// -0.210826 +0xbe57e2bd +// 0.056603 +0x3d67d8b4 +// 0.152750 +0x3e1c6a78 +// -0.148606 +0xbe182c2e +// 0.111887 +0x3de5253f +// -0.069384 +0xbd8e18f8 +// -0.133229 +0xbe086d4e +// 0.197066 +0x3e49cbb1 +// -0.072303 +0xbd941385 +// -0.403707 +0xbeceb2ad +// 0.174713 +0x3e32e804 +// 0.072220 +0x3d93e829 +// 0.164547 +0x3e287ee3 +// -0.042816 +0xbd2f6009 +// -0.010203 +0xbc27293d +// -0.036933 +0xbd174742 +// 0.076233 +0x3d9c1fc9 +// 0.106222 +0x3dd98af5 +// -0.070745 +0xbd90e280 +// 0.105745 +0x3dd890f7 +// 0.563779 +0x3f1053d7 +// -0.215018 +0xbe5c2d99 +// -0.138168 +0xbe0d7c03 +// 0.033884 +0x3d0ac9a3 +// 0.147708 +0x3e1740a8 +// 0.010425 +0x3c2acc3b +// -0.059469 +0xbd7395ff +// -0.161391 +0xbe2543c7 +// -0.308376 +0xbe9de379 +// -0.683266 +0xbf2eea8a +// -0.299778 +0xbe997c77 +// 0.115416 +0x3dec5f2e +// -0.262560 +0xbe866e41 +// -0.480194 +0xbef5dbf1 +// -0.011494 +0xbc3c4fbb +// 0.262069 +0x3e862def +// -0.013193 +0xbc5827ee +// 0.112712 +0x3de6d54d +// 0.249081 +0x3e7f0f09 +// -0.262518 +0xbe8668ca +// 0.088437 +0x3db51eb8 +// -0.454482 +0xbee8b1e3 +// -0.699533 +0xbf331493 +// -0.308452 +0xbe9ded63 +// -0.309267 +0xbe9e584c +// 0.585461 +0x3f15e0c8 +// -0.277796 +0xbe8e3b39 +// 0.214671 +0x3e5bd2c1 +// -0.081410 +0xbda6ba1a +// -0.177220 +0xbe357911 +// 0.090801 +0x3db9f619 +// -0.070572 +0xbd9087e2 +// -0.234143 +0xbe6fc340 +// 0.156049 +0x3e1fcb42 +// -0.096205 +0xbdc50729 +// -0.747575 +0xbf3f610e +// -0.226851 +0xbe684bad +// -0.012501 +0xbc4cd145 +// 0.149593 +0x3e192ece +// 0.303600 +0x3e9b7183 +// 0.039048 +0x3d1ff0df +// -0.255144 +0xbe82a230 +// 0.133267 +0x3e087714 +// -0.106071 +0xbdd93bbd +// 0.443987 +0x3ee3523b +// -0.000282 +0xb99410a8 +// 0.330918 +0x3ea96e0d +// -0.398374 +0xbecbf7ba +// 0.262943 +0x3e86a084 +// 0.023811 +0x3cc30e5d +// -0.096020 +0xbdc4a636 +// 0.250755 +0x3e806305 +// 0.449550 +0x3ee62b6a +// -0.144966 +0xbe1471f7 +// -0.184183 +0xbe3c9a57 +// 0.154280 +0x3e1dfb7a +// 0.136692 +0x3e0bf913 +// -0.029598 +0xbcf277c5 +// -0.314682 +0xbea11e05 +// -0.186232 +0xbe3eb386 +// 0.215779 +0x3e5cf536 +// -0.070117 +0xbd8f99bb +// 0.306177 +0x3e9cc340 +// 0.038343 +0x3d1d0dd8 +// -0.358593 +0xbeb7997f +// 0.096095 +0x3dc4cd7c +// -0.308585 +0xbe9dfed8 +// -0.148461 +0xbe180630 +// 0.601576 +0x3f1a00dd +// -0.192979 +0xbe459c41 +// 0.000927 +0x3a72ea59 +// -0.481425 +0xbef67d56 +// 0.605693 +0x3f1b0eb3 +// -0.072144 +0xbd93c008 +// -0.130016 +0xbe0522e8 +// -0.387430 +0xbec65d34 +// -0.014860 +0xbc737842 +// -0.142472 +0xbe11e413 +// 0.000480 +0x39fbc52f +// 0.133320 +0x3e088527 +// 0.186082 +0x3e3e8c50 +// 0.229317 +0x3e6ad204 +// 0.352463 +0x3eb47618 +// 0.132493 +0x3e07ac51 +// -0.117330 +0xbdf04a7c +// -0.666253 +0xbf2a8f95 +// 0.477331 +0x3ef464ac +// 0.528637 +0x3f0754c9 +// 0.367195 +0x3ebc0108 +// 0.140573 +0x3e0ff271 +// -0.631904 +0xbf21c470 +// 0.119596 +0x3df4ee82 +// -0.208547 +0xbe558d41 +// -0.062711 +0xbd806e8e +// -0.121981 +0xbdf9d118 +// -0.268312 +0xbe896035 +// -0.088881 +0xbdb6076d +// 0.382488 +0x3ec3d57d +// 0.407807 +0x3ed0cc05 +// -0.173423 +0xbe3195bf +// -0.168294 +0xbe2c5548 +// -0.250923 +0xbe8078f0 +// 0.036223 +0x3d145eb2 +// 0.420306 +0x3ed73251 +// 0.096308 +0x3dc53d1c +// 0.666691 +0x3f2aac44 +// 0.250965 +0x3e807e76 +// 0.051155 +0x3d518775 +// -0.038835 +0xbd1f1165 +// -0.064753 +0xbd849d4f +// -0.362303 +0xbeb97fcb +// -0.365473 +0xbebb1f4e +// -0.095942 +0xbdc47d2f +// 0.117973 +0x3df19b95 +// 0.242041 +0x3e77d994 +// -0.257917 +0xbe840dbd +// 0.377061 +0x3ec10e24 +// -0.268309 +0xbe895fc5 +// 0.020825 +0x3caa986e +// -0.050550 +0xbd4f0d33 +// 0.410423 +0x3ed222e8 +// -0.117188 +0xbdf0006a +// -0.108248 +0xbdddb0f0 +// 0.374914 +0x3ebff4c8 +// 0.272113 +0x3e8b5256 +// -0.296468 +0xbe97ca9e +// -0.577561 +0xbf13db0e +// 0.161193 +0x3e250fc1 +// -0.288796 +0xbe93dd05 +// 0.194620 +0x3e474a6e +// -0.560995 +0xbf0f9d5a +// -0.093068 +0xbdbe9a2f +// -0.280023 +0xbe8f5f29 +// -0.577764 +0xbf13e85c +// 0.102653 +0x3dd23b8d +// 0.318794 +0x3ea338fb +// 0.483766 +0x3ef7b02b +// 0.311510 +0x3e9f7e47 +// -0.117492 +0xbdf09fb7 +// -0.077106 +0xbd9de9b2 +// 0.172661 +0x3e30cdf3 +// 0.252296 +0x3e812cf3 +// 0.478872 +0x3ef52eb4 +// 0.114153 +0x3de9c920 +// 0.066526 +0x3d883ef2 +// -0.229467 +0xbe6af981 +// 0.355981 +0x3eb64333 +// -0.042536 +0xbd2e3ab3 +// -0.674585 +0xbf2cb19c +// 0.141176 +0x3e109078 +// -0.173547 +0xbe31b633 +// -0.354144 +0xbeb5525e +// 0.050167 +0x3d4d7c4e +// 0.218941 +0x3e603220 +// 0.054318 +0x3d5e7c3a +// 0.778830 +0x3f476168 +// -0.220323 +0xbe619c55 +// -0.059405 +0xbd73531e +// 0.355819 +0x3eb62dea +// 0.154899 +0x3e1e9ddb +// -0.064624 +0xbd84596f +// 0.026022 +0x3cd52c9f +// -0.260148 +0xbe853227 +// 0.099860 +0x3dcc836d +// -0.185875 +0xbe3e55fb +// 0.061003 +0x3d79ddf7 +// -0.171766 +0xbe2fe370 +// 0.404669 +0x3ecf30c5 +// -0.647725 +0xbf25d14b +// -0.047932 +0xbd4453e4 +// 0.233732 +0x3e6f5791 +// 0.353829 +0x3eb5290d +// 0.327351 +0x3ea79a81 +// 0.112879 +0x3de72d52 +// 0.031155 +0x3cff3846 +// -0.401763 +0xbecdb3d9 +// -0.238903 +0xbe74a314 +// 0.378278 +0x3ec1adb3 +// -0.346278 +0xbeb14b56 +// -0.045456 +0xbd3a3031 +// -0.020225 +0xbca5af8a +// 0.579288 +0x3f144c37 +// -0.326126 +0xbea6f9f3 +// -0.558931 +0xbf0f1613 +// -0.289434 +0xbe9430ba +// -0.315287 +0xbea16d59 +// 0.425360 +0x3ed9c8c5 +// 0.608059 +0x3f1ba9bf +// -0.711050 +0xbf360759 +// -0.000921 +0xba7151d6 +// 0.580635 +0x3f14a487 +// -0.378739 +0xbec1ea0c +// -0.040557 +0xbd261ea2 +// -0.102549 +0xbdd20539 +// 0.786064 +0x3f493b7f +// 0.407052 +0x3ed06923 +// 0.443411 +0x3ee306cc +// -0.598214 +0xbf19248f +// -0.855157 +0xbf5aeb8d +// 1.000000 +0x3f800000 +// 0.001295 +0x3aa9b14c +// -0.816589 +0xbf510bfe +// 0.532647 +0x3f085b95 +// 0.057038 +0x3d69a041 +// 0.144222 +0x3e13aef1 +// -0.697342 +0xbf328506 +// -0.361109 +0xbeb8e341 +// -0.393364 +0xbec96705 +// 0.530695 +0x3f07db9a +// 0.758637 +0x3f423601 +// -0.887132 +0xbf631b0e +// -0.001149 +0xba968a26 +// 0.724422 +0x3f3973bb +// -0.472528 +0xbef1ef3d +// -0.050600 +0xbd4f41ca +// -0.127944 +0xbe0303bc +// 0.074430 +0x3d986edb +// 0.038543 +0x3d1ddede +// 0.041985 +0x3d2bf8d7 +// -0.056643 +0xbd6802b4 +// -0.080972 +0xbda5d4d9 +// 0.094687 +0x3dc1eb5a +// 0.000123 +0x39008aac +// -0.077321 +0xbd9e5a3b +// 0.050435 +0x3d4e94cf +// 0.005401 +0x3bb0f899 +// 0.013656 +0x3c5fbd53 +// -0.506201 +0xbf019661 +// -0.262129 +0xbe8635c4 +// -0.285543 +0xbe9232b3 +// 0.385231 +0x3ec53d09 +// 0.550694 +0x3f0cfa4e +// -0.643969 +0xbf24db26 +// -0.000834 +0xba5a8db1 +// 0.525858 +0x3f069ea3 +// -0.343008 +0xbeaf9ecc +// -0.036730 +0xbd1672a8 +// -0.092875 +0xbdbe34fe +// -0.285394 +0xbe921f24 +// -0.147787 +0xbe175584 +// -0.160988 +0xbe24da05 +// 0.217192 +0x3e5e6781 +// 0.310479 +0x3e9ef71d +// -0.363067 +0xbeb9e3e7 +// -0.000470 +0xb9f67063 +// 0.296477 +0x3e97cbc5 +// -0.193387 +0xbe460726 +// -0.020708 +0xbca9a4cb +// -0.052362 +0xbd5679cb +// 0.118269 +0x3df23725 +// 0.061244 +0x3d7adb0b +// 0.066715 +0x3d88a1a3 +// -0.090006 +0xbdb854f6 +// -0.128665 +0xbe03c0b1 +// 0.150458 +0x3e1a1189 +// 0.000195 +0x394c408e +// -0.122862 +0xbdfb9f11 +// 0.080141 +0x3da420dd +// 0.008582 +0x3c0c9a67 +// 0.021699 +0x3cb1c2b5 +// 0.005702 +0x3bbad8f1 +// 0.002953 +0x3b418339 +// 0.003217 +0x3b52cc36 +// -0.004339 +0xbb8e320b +// -0.006203 +0xbbcb4550 +// 0.007254 +0x3bedb333 +// 0.000009 +0x371d8fec +// -0.005924 +0xbbc21a70 +// 0.003864 +0x3b7d3878 +// 0.000414 +0x39d8ece5 +// 0.001046 +0x3a892056 +// 0.333591 +0x3eaacc69 +// 0.172745 +0x3e30e422 +// 0.188175 +0x3e40b10b +// -0.253871 +0xbe81fb5a +// -0.362912 +0xbeb9cfa7 +// 0.424381 +0x3ed9487c +// 0.000549 +0x3a100756 +// -0.346545 +0xbeb16e5c +// 0.226046 +0x3e67787b +// 0.024206 +0x3cc64afd +// 0.061205 +0x3d7ab237 +// 0.204688 +0x3e5199aa +// 0.105995 +0x3dd913b9 +// 0.115462 +0x3dec778d +// -0.155772 +0xbe1f82cd +// -0.222679 +0xbe640603 +// 0.260396 +0x3e855297 +// 0.000337 +0x39b0bfb7 +// -0.212636 +0xbe59bd59 +// 0.138699 +0x3e0e0725 +// 0.014852 +0x3c735742 +// 0.037555 +0x3d19d311 +// 0.235387 +0x3e71095d +// 0.121892 +0x3df9a27f +// 0.132780 +0x3e07f768 +// -0.179136 +0xbe376f4c +// -0.256077 +0xbe831c8a +// 0.299450 +0x3e995193 +// 0.000388 +0x39cb4212 +// -0.244528 +0xbe7a6590 +// 0.159502 +0x3e23545f +// 0.017080 +0x3c8beb39 +// 0.043187 +0x3d30e53b +// -0.284064 +0xbe9170e1 +// -0.632773 +0xbf21fd65 +// -0.034629 +0xbd0dd6c9 +// 0.022888 +0x3cbb7fbf +// 0.137790 +0x3e0d18d4 +// -0.039979 +0xbd23c0b0 +// -0.101209 +0xbdcf4675 +// 0.095652 +0x3dc3e518 +// 0.067467 +0x3d8a2c3c +// 0.284641 +0x3e91bc66 +// -0.030772 +0xbcfc153b +// 0.212753 +0x3e59dc08 +// 0.010373 +0x3c29f4d9 +// 0.226286 +0x3e67b76d +// 0.094108 +0x3dc0bbb6 +// -0.125990 +0xbe010365 +// -0.179325 +0xbe37a10e +// -0.004169 +0xbb88992d +// -0.102688 +0xbdd24e1b +// -0.079281 +0xbda25df4 +// 0.046456 +0x3d3e484f +// 0.056361 +0x3d66db42 +// 0.280464 +0x3e8f98ef +// -0.130391 +0xbe05851c +// 0.363669 +0x3eba32d3 +// 0.147475 +0x3e1703a7 +// -0.182523 +0xbe3ae757 +// -0.313763 +0xbea0a593 +// -0.032771 +0xbd063aaa +// -0.142984 +0xbe126a52 +// -0.115127 +0xbdebc7ec +// 0.142603 +0x3e1206a2 +// 0.082260 +0x3da8781f +// 0.199574 +0x3e4c5d1a +// -0.069211 +0xbd8dbe8d +// 0.224249 +0x3e65a16c +// 0.186911 +0x3e3f6590 +// -0.055270 +0xbd626276 +// -0.115814 +0xbded3010 +// -0.000235 +0xb976813a +// -0.116146 +0xbdedde13 +// -0.067270 +0xbd89c50a +// 0.083010 +0x3daa0160 +// 0.075627 +0x3d9ae219 +// -0.058379 +0xbd6f1ead +// -0.256269 +0xbe8335b8 +// -0.000135 +0xb90dba2a +// 0.206240 +0x3e5330a6 +// 0.165653 +0x3e29a100 +// 0.123993 +0x3dfdf01f +// -0.005412 +0xbbb154ba +// -0.020025 +0xbca40c0f +// 0.031814 +0x3d024f39 +// 0.118918 +0x3df38b5b +// 0.039458 +0x3d219f20 +// 0.052389 +0x3d5695d1 +// -0.209885 +0xbe56ec1d +// 0.147836 +0x3e17625d +// 0.073090 +0x3d95b00d +// -0.042364 +0xbd2d85e0 +// -0.141243 +0xbe10a204 +// -0.037908 +0xbd1b4526 +// -0.039320 +0xbd210e82 +// -0.032859 +0xbd069748 +// 0.130494 +0x3e05a02d +// 0.028917 +0x3cece3be +// 0.178033 +0x3e364e32 +// 0.227944 +0x3e696a09 +// -0.017957 +0xbc931ada +// 0.431232 +0x3edcca77 +// 0.244924 +0x3e7acd68 +// 0.396497 +0x3ecb01a6 +// 0.122257 +0x3dfa61a0 +// -0.145120 +0xbe149a3d +// 0.008238 +0x3c06f715 +// -0.108258 +0xbdddb656 +// 0.118251 +0x3df22da4 +// 0.146795 +0x3e16517e +// 0.038081 +0x3d1bfaf7 +// 0.080769 +0x3da56a1b +// 0.280669 +0x3e8fb3e3 +// 0.101649 +0x3dd02d8a +// 0.136782 +0x3e0c107e +// 0.050890 +0x3d5071cf +// -0.109477 +0xbde0358b +// -0.019192 +0xbc9d381f +// 0.001336 +0x3aaf0fe8 +// 0.084506 +0x3dad118a +// 0.013803 +0x3c6225e1 +// -0.305693 +0xbe9c83c1 +// 0.084354 +0x3dacc1e9 +// 0.305464 +0x3e9c65c6 +// 0.166064 +0x3e2a0c9f +// 0.099563 +0x3dcbe7e3 +// -0.004112 +0xbb86c072 +// -0.068366 +0xbd8c0368 +// 0.009850 +0x3c216034 +// 0.161056 +0x3e24ebee +// 0.074088 +0x3d97bb7a +// 0.090540 +0x3db96d13 +// 0.044424 +0x3d35f599 +// 0.022496 +0x3cb849bc +// 0.233854 +0x3e6f7759 +// 0.118853 +0x3df3693f +// 0.166477 +0x3e2a790e +// 0.049273 +0x3d49d24b +// -0.078114 +0xbd9ffa6f +// -0.000639 +0xba2761f4 +// -0.014851 +0xbc7351dc +// 0.064716 +0x3d8489d8 +// 0.179949 +0x3e384480 +// 0.127315 +0x3e025edd +// 0.178890 +0x3e372f11 +// -0.088261 +0xbdb4c1f8 +// -0.217592 +0xbe5ed07b +// -0.252183 +0xbe811e13 +// -0.013331 +0xbc5a6999 +// -0.053492 +0xbd5b1a0d +// -0.080690 +0xbda5408a +// -0.018735 +0xbc9979a6 +// 0.009265 +0x3c17ce3e +// 0.121902 +0x3df9a7cd +// -0.613485 +0xbf1d0d5f +// -0.245924 +0xbe7bd390 +// -0.168339 +0xbe2c610b +// 0.113941 +0x3de959ae +// -0.077402 +0xbd9e8532 +// -0.198417 +0xbe4b2db7 +// -0.427382 +0xbedad1c3 +// 0.216522 +0x3e5db7e0 +// -0.282987 +0xbe90e3a7 +// -0.193232 +0xbe45deb3 +// 0.166168 +0x3e2a2806 +// 0.034239 +0x3d0c3e5c +// -0.491978 +0xbefbe49a +// 0.133411 +0x3e089cc8 +// -0.063591 +0xbd823bf7 +// 0.494430 +0x3efd25f6 +// 0.319530 +0x3ea39972 +// 0.029022 +0x3cedc030 +// -0.313282 +0xbea0668d +// -0.168373 +0xbe2c69e4 +// -0.294157 +0xbe969bbc +// -0.256935 +0xbe838d08 +// -0.200702 +0xbe4d84b9 +// 0.204412 +0x3e515173 +// 0.230354 +0x3e6be209 +// -0.431023 +0xbedcaf0f +// -0.088719 +0xbdb5b257 +// 0.549138 +0x3f0c9452 +// 0.070686 +0x3d90c3aa +// 0.169184 +0x3e2d3e7b +// -0.232825 +0xbe6e69be +// -0.323209 +0xbea57baf +// -0.382902 +0xbec40bbe +// -0.003594 +0xbb6b9088 +// 0.408544 +0x3ed12cb7 +// 0.353861 +0x3eb52d4f +// 0.272804 +0x3e8bacf5 +// 0.469616 +0x3ef07189 +// -0.223415 +0xbe64c6e2 +// -0.069013 +0xbd8d56b1 +// 0.177304 +0x3e358f37 +// 0.104759 +0x3dd68bfe +// -0.255651 +0xbe82e4a0 +// 0.321555 +0x3ea4a2e1 +// 0.136453 +0x3e0bba6e +// -0.223518 +0xbe64e1f6 +// 0.467632 +0x3eef6d6b +// -0.103056 +0xbdd30ef3 +// -0.236952 +0xbe72a3aa +// -0.052106 +0xbd556d6a +// -0.188624 +0xbe412693 +// 0.301714 +0x3e9a7a3f +// 0.520093 +0x3f0524d5 +// -0.243597 +0xbe797194 +// -0.170462 +0xbe2e8d84 +// 0.265094 +0x3e87ba71 +// -0.254640 +0xbe82602f +// -0.133766 +0xbe08f9fe +// -0.514029 +0xbf039768 +// 0.322415 +0x3ea513a1 +// -0.267049 +0xbe88baa8 +// 0.041770 +0x3d2b16cb +// 0.140008 +0x3e0f5e51 +// -0.013133 +0xbc572afb +// 0.240459 +0x3e763ae2 +// 0.125276 +0x3e00486e +// 0.025048 +0x3ccd3086 +// 0.261133 +0x3e85b331 +// 0.024084 +0x3cc54cb6 +// 0.146780 +0x3e164d89 +// -0.260942 +0xbe859a38 +// 0.221147 +0x3e62743f +// 0.064301 +0x3d83b05a +// -0.420840 +0xbed7784b +// -0.006191 +0xbbcadf73 +// 0.085652 +0x3daf6a5a +// 0.117989 +0x3df1a46b +// 0.126467 +0x3e018097 +// -0.005639 +0xbbb8c7fa +// -0.331372 +0xbea9a98b +// 0.218928 +0x3e602ec6 +// -0.004941 +0xbba1ebc2 +// -0.203422 +0xbe504df8 +// 0.537035 +0x3f097b28 +// 0.192945 +0x3e459351 +// -0.146808 +0xbe1654ce +// -0.527968 +0xbf0728e1 +// 0.201679 +0x3e4e84ec +// 0.133093 +0x3e084968 +// -0.137269 +0xbe0c9059 +// 0.112320 +0x3de607de +// 0.293887 +0x3e967850 +// 0.098640 +0x3dca03ee +// 0.095330 +0x3dc33c55 +// 0.092637 +0x3dbdb8a6 +// -0.165380 +0xbe295968 +// 0.138188 +0x3e0d810c +// -0.138602 +0xbe0ded93 +// -0.042582 +0xbd2e6aa6 +// -0.121293 +0xbdf8688d +// 0.003392 +0x3b5e5329 +// 0.121460 +0x3df8c011 +// 0.230487 +0x3e6c04b9 +// 0.297237 +0x3e982f73 +// -0.044613 +0xbd36bc89 +// -0.278545 +0xbe8e9d6d +// -0.282582 +0xbe90ae8f +// -0.028530 +0xbce9b799 +// 0.134856 +0x3e0a17a3 +// -0.225269 +0xbe66acd8 +// -0.030033 +0xbcf6073e +// -0.292591 +0xbe95ce73 +// -0.095236 +0xbdc30b2c +// 0.440442 +0x3ee1819f +// 0.069059 +0x3d8d6ef5 +// 0.486852 +0x3ef944b5 +// 0.132731 +0x3e07ea83 +// 0.482040 +0x3ef6cded +// 0.126947 +0x3e01fe55 +// 0.351185 +0x3eb3ce90 +// 0.402246 +0x3ecdf333 +// 0.189344 +0x3e41e365 +// -0.106590 +0xbdda4c1c +// -0.500109 +0xbf000728 +// 0.358224 +0x3eb7691f +// 0.392808 +0x3ec91e29 +// -0.241954 +0xbe77c2c8 +// 0.041791 +0x3d2b2cc0 +// 0.309590 +0x3e9e8293 +// 0.182269 +0x3e3aa4cd +// -0.262483 +0xbe86642d +// -0.066661 +0xbd88859c +// -0.225919 +0xbe67574f +// 0.546870 +0x3f0bffa4 +// -0.207123 +0xbe54181b +// 0.146343 +0x3e15daed +// -0.516805 +0xbf044d51 +// -0.470484 +0xbef0e34b +// -0.103315 +0xbdd396d7 +// 0.192662 +0x3e454936 +// -0.163226 +0xbe27249e +// -0.135117 +0xbe0a5c23 +// 0.340167 +0x3eae2a67 +// -0.290123 +0xbe948af4 +// -0.265341 +0xbe87dabe +// -0.149719 +0xbe194ffc +// 0.274488 +0x3e8c89bc +// -0.350411 +0xbeb36907 +// 0.124020 +0x3dfdfe17 +// -0.273744 +0xbe8c282b +// -0.595081 +0xbf185737 +// 0.180770 +0x3e391bb3 +// -0.179015 +0xbe374fd6 +// 0.002195 +0x3b0fd937 +// 0.191033 +0x3e439e07 +// 0.048566 +0x3d46ed4d +// -0.175986 +0xbe3435cb +// -0.455713 +0xbee9532c +// -0.169139 +0xbe2d32bb +// 0.005194 +0x3baa3288 +// 0.553396 +0x3f0dab5f +// -0.240560 +0xbe765545 +// 0.070264 +0x3d8fe6a3 +// -0.569921 +0xbf11e653 +// 0.039956 +0x3d23a8e2 +// -0.574824 +0xbf1327a6 +// 0.241157 +0x3e76f1bc +// -0.047751 +0xbd43969d +// 0.168684 +0x3e2cbb6e +// 0.358646 +0x3eb7a06d +// 0.398171 +0x3ecbdd0e +// 0.218729 +0x3e5ffa8d +// -0.005235 +0xbbab8d83 +// -0.435104 +0xbedec5f1 +// -0.233962 +0xbe6f93b8 +// 0.361632 +0x3eb927d4 +// -0.227955 +0xbe696cee +// 0.166461 +0x3e2a74dc +// -0.432892 +0xbedda409 +// -0.588830 +0xbf16bd91 +// -0.028142 +0xbce68a09 +// 0.228306 +0x3e69c8fa +// -0.152381 +0xbe1c09a3 +// 0.155227 +0x3e1ef3d0 +// 0.159386 +0x3e233614 +// 0.360276 +0x3eb8760f +// -0.485954 +0xbef8cf07 +// -0.523481 +0xbf0602d5 +// -0.494427 +0xbefd257d +// -0.206236 +0xbe532f9b +// -0.041565 +0xbd2a4007 +// -0.060393 +0xbd775e74 +// -0.138266 +0xbe0d957b +// 0.164970 +0x3e28edc7 +// 0.255558 +0x3e82d87a +// 0.292406 +0x3e95b630 +// -0.017521 +0xbc8f8822 +// 0.268462 +0x3e8973da +// -0.282189 +0xbe907b1a +// -0.156615 +0xbe205fb7 +// 0.373897 +0x3ebf6f5e +// -0.399398 +0xbecc7df2 +// 0.291598 +0x3e954c50 +// -0.537574 +0xbf099e74 +// -0.262775 +0xbe868a63 +// -0.047474 +0xbd42743c +// -0.135893 +0xbe0b276e +// -0.246303 +0xbe7c36dd +// 0.048471 +0x3d4689cf +// 0.043831 +0x3d33881b +// -0.265494 +0xbe87eed0 +// -0.320965 +0xbea45589 +// 0.005448 +0x3bb28598 +// 0.007473 +0x3bf4e1d3 +// -0.339804 +0xbeadfad4 +// 0.315384 +0x3ea17a02 +// -0.315645 +0xbea19c48 +// -0.549533 +0xbf0cae38 +// 0.453415 +0x3ee82607 +// 0.495519 +0x3efdb4b1 +// -0.186517 +0xbe3efe67 +// -0.021342 +0xbcaed5bf +// 0.422258 +0x3ed83233 +// 0.159256 +0x3e2313ed +// -0.237969 +0xbe73ae05 +// -0.052169 +0xbd55aeb3 +// 0.560207 +0x3f0f69bc +// 0.217092 +0x3e5e4d4e +// 0.208021 +0x3e550391 +// 0.227965 +0x3e696f9d +// -0.171899 +0xbe30064d +// -0.140309 +0xbe0fad2e +// 0.437051 +0x3edfc522 +// -0.016600 +0xbc87fcb5 +// 0.073673 +0x3d96e1db +// 0.390434 +0x3ec7e6f6 +// -0.260269 +0xbe8541f0 +// 0.160529 +0x3e2461cf +// -0.465401 +0xbeee4905 +// 0.488440 +0x3efa14cc +// 0.230060 +0x3e6b94e5 +// 2.000000 +0x40000000 +// -0.999988 +0xbf7fff35 +// -0.999988 +0xbf7fff35 +// -0.999988 +0xbf7fff35 +// 0.009843 +0x3c214518 +// -0.004922 +0xbba14498 +// -0.999988 +0xbf7fff35 +// -0.004922 +0xbba14498 +// 0.000000 +0x0 +// 2.000000 +0x40000000 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// -0.990666 +0xbf7d9c45 +// 0.272627 +0x3e8b95c2 +// -0.135041 +0xbe0a4836 +// -0.135041 +0xbe0a4836 +// -0.135041 +0xbe0a4836 +// -0.135041 +0xbe0a4836 +// -0.135041 +0xbe0a4836 +// -0.135041 +0xbe0a4836 +// -0.990666 +0xbf7d9c45 +// -0.135041 +0xbe0a4836 +// 0.037163 +0x3d1837f0 +// -0.018408 +0xbc96cc34 +// -0.018408 +0xbc96cc34 +// -0.018408 +0xbc96cc34 +// -0.018408 +0xbc96cc34 +// -0.018408 +0xbc96cc34 +// -0.990666 +0xbf7d9c45 +// -0.135041 +0xbe0a4836 +// -0.018408 +0xbc96cc34 +// 0.005066 +0x3ba5fed7 +// -0.002509 +0xbb24722e +// -0.002509 +0xbb24722e +// -0.002509 +0xbb24722e +// -0.002509 +0xbb24722e +// -0.990666 +0xbf7d9c45 +// -0.135041 +0xbe0a4836 +// -0.018408 +0xbc96cc34 +// -0.002509 +0xbb24722e +// 0.000691 +0x3a3504f3 +// -0.000342 +0xb9b35464 +// -0.000342 +0xb9b35464 +// -0.000342 +0xb9b35464 +// -0.990666 +0xbf7d9c45 +// -0.135041 +0xbe0a4836 +// -0.018408 +0xbc96cc34 +// -0.002509 +0xbb24722e +// -0.000342 +0xb9b35464 +// 0.000094 +0x38c5672a +// -0.000047 +0xb8438f75 +// -0.000047 +0xb8438f75 +// -0.990666 +0xbf7d9c45 +// -0.135041 +0xbe0a4836 +// -0.018408 +0xbc96cc34 +// -0.002509 +0xbb24722e +// -0.000342 +0xb9b35464 +// -0.000047 +0xb8438f75 +// 0.000013 +0x375744fd +// -0.000006 +0xb6d54296 +// -0.990666 +0xbf7d9c45 +// -0.135041 +0xbe0a4836 +// -0.018408 +0xbc96cc34 +// -0.002509 +0xbb24722e +// -0.000342 +0xb9b35464 +// -0.000047 +0xb8438f75 +// -0.000006 +0xb6d54296 +// 0.000000 +0x0 +// 2.000000 +0x40000000 +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// -0.972060 +0xbf78d8ec +// 0.469465 +0x3ef05dc7 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.228174 +0xbe69a685 +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// 0.110199 +0x3de1aff7 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.053560 +0xbd5b61b3 +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// 0.025867 +0x3cd3e7a4 +// -0.012572 +0xbc4dfbf5 +// -0.012572 +0xbc4dfbf5 +// -0.012572 +0xbc4dfbf5 +// -0.012572 +0xbc4dfbf5 +// -0.012572 +0xbc4dfbf5 +// -0.012572 +0xbc4dfbf5 +// -0.012572 +0xbc4dfbf5 +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// 0.006072 +0x3bc6f6c9 +// -0.002951 +0xbb4167aa +// -0.002951 +0xbb4167aa +// -0.002951 +0xbb4167aa +// -0.002951 +0xbb4167aa +// -0.002951 +0xbb4167aa +// -0.002951 +0xbb4167aa +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// -0.002951 +0xbb4167aa +// 0.001425 +0x3abad03e +// -0.000693 +0xba359808 +// -0.000693 +0xba359808 +// -0.000693 +0xba359808 +// -0.000693 +0xba359808 +// -0.000693 +0xba359808 +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// -0.002951 +0xbb4167aa +// -0.000693 +0xba359808 +// 0.000335 +0x39af67a9 +// -0.000163 +0xb92a810d +// -0.000163 +0xb92a810d +// -0.000163 +0xb92a810d +// -0.000163 +0xb92a810d +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// -0.002951 +0xbb4167aa +// -0.000693 +0xba359808 +// -0.000163 +0xb92a810d +// 0.000079 +0x38a4b16f +// -0.000038 +0xb8201771 +// -0.000038 +0xb8201771 +// -0.000038 +0xb8201771 +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// -0.002951 +0xbb4167aa +// -0.000693 +0xba359808 +// -0.000163 +0xb92a810d +// -0.000038 +0xb8201771 +// 0.000018 +0x379aa2ad +// -0.000009 +0xb716509f +// -0.000009 +0xb716509f +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// -0.002951 +0xbb4167aa +// -0.000693 +0xba359808 +// -0.000163 +0xb92a810d +// -0.000038 +0xb8201771 +// -0.000009 +0xb716509f +// 0.000004 +0x36913127 +// -0.000002 +0xb60d22a5 +// -0.972060 +0xbf78d8ec +// -0.228174 +0xbe69a685 +// -0.053560 +0xbd5b61b3 +// -0.012572 +0xbc4dfbf5 +// -0.002951 +0xbb4167aa +// -0.000693 +0xba359808 +// -0.000163 +0xb92a810d +// -0.000038 +0xb8201771 +// -0.000009 +0xb716509f +// -0.000002 +0xb60d22a5 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/InputVectorHouseHolder1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/InputVectorHouseHolder1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..aef7354bf9d2fc4228141c19fa41c263f2f6af4a --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/InputVectorHouseHolder1_f32.txt @@ -0,0 +1,62 @@ +W +30 +// 0.169095 +0x3e2d272e +// 1.000000 +0x3f800000 +// -0.245425 +0xbe7b50cf +// 0.878361 +0x3f60dc3d +// -0.226072 +0xbe677f61 +// -0.235404 +0xbe710db4 +// 0.657524 +0x3f28537b +// -0.165269 +0xbe293c3e +// -0.160314 +0xbe242966 +// -0.654146 +0xbf277624 +// 1.000000 +0x3f800000 +// -0.029512 +0xbcf1c2bf +// -0.552271 +0xbf0d61a7 +// -0.765585 +0xbf43fd65 +// 0.458211 +0x3eea9a9b +// -0.159167 +0xbe22fc92 +// 0.319820 +0x3ea3bf7d +// 0.363710 +0x3eba3836 +// -1.000000 +0xbf800000 +// -0.016260 +0xbc853483 +// -0.101712 +0xbdd04e56 +// 0.392709 +0x3ec9111c +// 1.000000 +0x3f800000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbf800000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefQ1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefQ1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..5e09b6f0fb0bf7c6c3e08aba0520e34a2492ec82 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefQ1_f32.txt @@ -0,0 +1,4098 @@ +W +2048 +// -0.944958 +0xbf71e8bf +// -0.122809 +0xbdfb8388 +// 0.303270 +0x3e9b463e +// -0.122809 +0xbdfb8388 +// 0.992246 +0x3f7e03cd +// 0.019149 +0x3c9cdede +// 0.303270 +0x3e9b463e +// 0.019149 +0x3c9cdede +// 0.952712 +0x3f73e4f2 +// -0.861959 +0xbf5ca955 +// -0.450422 +0xbee69dc2 +// -0.232695 +0xbe6e477a +// 0.479011 +0x3ef540f6 +// -0.573220 +0xbf12be94 +// -0.664806 +0xbf2a30b3 +// 0.166058 +0x3e2a0b1e +// -0.684498 +0xbf2f3b49 +// 0.709850 +0x3f35b8b8 +// -0.524469 +0xbf064397 +// 0.400762 +0x3ecd30ae +// -0.476414 +0xbef3ec8a +// -0.008753 +0xbc0f67ee +// 0.456643 +0x3ee9cd23 +// 0.235575 +0x3e713a84 +// 0.008420 +0x3c09f3b7 +// -0.270529 +0xbe8a82c6 +// 0.400762 +0x3ecd30ae +// 0.894645 +0x3f650777 +// 0.125243 +0x3e003fa1 +// 0.002301 +0x3b16cc42 +// -0.120045 +0xbdf5da49 +// -0.061929 +0xbd7da9ac +// -0.002213 +0xbb111013 +// 0.071118 +0x3d91a682 +// -0.476414 +0xbef3ec8a +// 0.125243 +0x3e003fa1 +// 0.851115 +0x3f59e2af +// -0.002735 +0xbb334399 +// 0.142706 +0x3e122196 +// 0.073620 +0x3d96c5fe +// 0.002631 +0x3b2c7245 +// -0.084543 +0xbdad2519 +// -0.008753 +0xbc0f67ee +// 0.002301 +0x3b16cc42 +// -0.002735 +0xbb334399 +// 0.999950 +0x3f7ffcb5 +// 0.002622 +0x3b2bd322 +// 0.001353 +0x3ab1487e +// 0.000048 +0x384ac44b +// -0.001553 +0xbacb9691 +// 0.456643 +0x3ee9cd23 +// -0.120045 +0xbdf5da49 +// 0.142706 +0x3e122196 +// 0.002622 +0x3b2bd322 +// 0.863216 +0x3f5cfbb8 +// -0.070565 +0xbd908434 +// -0.002522 +0xbb254a3b +// 0.081035 +0x3da5f5a4 +// 0.235575 +0x3e713a84 +// -0.061929 +0xbd7da9ac +// 0.073620 +0x3d96c5fe +// 0.001353 +0x3ab1487e +// -0.070565 +0xbd908434 +// 0.963597 +0x3f76ae48 +// -0.001301 +0xbaaa8a72 +// 0.041805 +0x3d2b3b4c +// 0.008420 +0x3c09f3b7 +// -0.002213 +0xbb111013 +// 0.002631 +0x3b2c7245 +// 0.000048 +0x384ac44b +// -0.002522 +0xbb254a3b +// -0.001301 +0xbaaa8a72 +// 0.999953 +0x3f7ffcf4 +// 0.001494 +0x3ac3d86a +// -0.270529 +0xbe8a82c6 +// 0.071118 +0x3d91a682 +// -0.084543 +0xbdad2519 +// -0.001553 +0xbacb9691 +// 0.081035 +0x3da5f5a4 +// 0.041805 +0x3d2b3b4c +// 0.001494 +0x3ac3d86a +// 0.951993 +0x3f73b5c8 +// -0.495681 +0xbefdc9e4 +// 0.032213 +0x3d03f1cb +// 0.300830 +0x3e9a0671 +// 0.417285 +0x3ed5a651 +// -0.030668 +0xbcfb3bf2 +// -0.444504 +0xbee39613 +// -0.156377 +0xbe20215a +// 0.515421 +0x3f03f2a4 +// -0.471082 +0xbef131b8 +// -0.007242 +0xbbed4fcf +// 0.062712 +0x3d806f17 +// -0.167535 +0xbe2b8e3a +// 0.213214 +0x3e5a54ac +// 0.732577 +0x3f3b8a2e +// 0.200457 +0x3e4d44b1 +// 0.351732 +0x3eb41644 +// -0.412160 +0xbed30696 +// 0.648044 +0x3f25e630 +// -0.343673 +0xbeaff5f5 +// 0.274233 +0x3e8c6851 +// 0.139999 +0x3e0f5bfa +// -0.001355 +0xbab18a3f +// 0.025565 +0x3cd16df1 +// -0.443388 +0xbee303d0 +// 0.255618 +0x3e82e05a +// -0.291210 +0xbe951976 +// -0.088988 +0xbdb63f66 +// 0.844164 +0x3f581b2a +// 0.073527 +0x3d969574 +// 0.334228 +0x3eab1fff +// 0.101305 +0x3dcf78dc +// -0.044115 +0xbd34b268 +// 0.218594 +0x3e5fd719 +// 0.084328 +0x3dacb444 +// 0.247306 +0x3e7d3dd5 +// -0.029124 +0xbcee95da +// 0.927458 +0x3f6d6ddb +// -0.144861 +0xbe145689 +// -0.043970 +0xbd3419fe +// 0.001103 +0x3a9085dd +// 0.309693 +0x3e9e9016 +// 0.555371 +0x3f0e2cc5 +// 0.624737 +0x3f1feec8 +// 0.091977 +0x3dbc5ead +// -0.250235 +0xbe801ed1 +// 0.300325 +0x3e99c43c +// -0.209916 +0xbe56f41b +// 0.004450 +0x3b91d1cc +// 0.075835 +0x3d9b4f61 +// 0.143438 +0x3e12e170 +// 0.214852 +0x3e5c0210 +// 0.025928 +0x3cd46612 +// -0.075196 +0xbd9a008a +// -0.206231 +0xbe532e52 +// 0.937162 +0x3f6fe9d4 +// 0.019577 +0x3ca05f02 +// 0.384346 +0x3ec4c8f6 +// 0.397522 +0x3ecb8806 +// -0.530961 +0xbf07ed13 +// 0.002802 +0x3b37a573 +// 0.011991 +0x3c4475c0 +// -0.018016 +0xbc93966f +// 0.013300 +0x3c59e6e4 +// 0.641624 +0x3f24417b +// -0.353075 +0xbeb4c632 +// -0.328380 +0xbea8215f +// -0.674179 +0xbf2c96f7 +// 0.182425 +0x3e3acdaf +// -0.045969 +0xbd3c4a56 +// -0.483588 +0xbef798db +// 0.132117 +0x3e07499a +// 0.162124 +0x3e2603c2 +// 0.378729 +0x3ec1e8cb +// -0.087183 +0xbdb28cd8 +// -0.066641 +0xbd887b51 +// 0.868187 +0x3f5e417e +// 0.054827 +0x3d609232 +// 0.120066 +0x3df5e4e8 +// -0.270586 +0xbe8a8a49 +// -0.011628 +0xbc3e848d +// 0.457908 +0x3eea72f8 +// 0.094807 +0x3dc229f2 +// -0.260071 +0xbe852816 +// -0.096898 +0xbdc6728d +// 0.674838 +0x3f2cc228 +// -0.034285 +0xbd0c6ed2 +// 0.489025 +0x3efa6176 +// -0.092621 +0xbdbdb014 +// -0.337275 +0xbeacaf5e +// 0.845104 +0x3f5858ba +// -0.015195 +0xbc78f678 +// 0.321253 +0x3ea47b38 +// -0.023200 +0xbcbe0d58 +// -0.114898 +0xbdeb4f81 +// 0.233904 +0x3e6f8477 +// 0.012646 +0x3c4f302b +// -0.505457 +0xbf01659f +// -0.186755 +0xbe3f3ca1 +// 0.392974 +0x3ec933eb +// 0.139355 +0x3e0eb30d +// 0.692869 +0x3f315fdc +// -0.093756 +0xbdc00337 +// -0.201575 +0xbe4e69ca +// 0.079355 +0x3da28506 +// -0.344041 +0xbeb02627 +// -0.066955 +0xbd891fcd +// -0.365569 +0xbebb2bce +// 0.027111 +0x3cde18d8 +// 0.075448 +0x3d9a846f +// 0.850921 +0x3f59d5f5 +// 0.108383 +0x3dddf7eb +// 0.035659 +0x3d120ede +// -0.081848 +0xbda7a009 +// -0.339918 +0xbeae09ae +// 0.426878 +0x3eda8fb2 +// 0.277875 +0x3e8e45a8 +// -0.229624 +0xbe6b2274 +// 0.038110 +0x3d1c18f9 +// 0.750375 +0x3f401899 +// 0.032792 +0x3d0650fa +// 0.167086 +0x3e2b188a +// 0.080454 +0x3da4c539 +// 0.053671 +0x3d5bd623 +// -0.054870 +0xbd60bf26 +// 0.021214 +0x3cadc978 +// 0.055143 +0x3d61de25 +// 0.005415 +0x3bb1721f +// 0.977854 +0x3f7a54a0 +// -0.110829 +0xbde2fa60 +// -0.401385 +0xbecd825e +// -0.320276 +0xbea3fb2f +// 0.130903 +0x3e060b81 +// 0.586455 +0x3f1621e3 +// 0.308047 +0x3e9db867 +// -0.073951 +0xbd977369 +// -0.512449 +0xbf032fd7 +// -0.401385 +0xbecd825e +// 0.854964 +0x3f5adeed +// -0.115728 +0xbded02c5 +// 0.047300 +0x3d41be0b +// 0.211909 +0x3e58fe8f +// 0.111309 +0x3de3f62f +// -0.026721 +0xbcdae667 +// -0.185167 +0xbe3d9c87 +// -0.320276 +0xbea3fb2f +// -0.115728 +0xbded02c5 +// 0.907658 +0x3f685c41 +// 0.037742 +0x3d1a9792 +// 0.169087 +0x3e2d253d +// 0.088817 +0x3db5e584 +// -0.021322 +0xbcaeaa81 +// -0.147750 +0xbe174bc1 +// 0.130903 +0x3e060b81 +// 0.047300 +0x3d41be0b +// 0.037742 +0x3d1a9792 +// 0.984574 +0x3f7c0d0a +// -0.069109 +0xbd8d8944 +// -0.036301 +0xbd14b08f +// 0.008715 +0x3c0ec778 +// 0.060388 +0x3d7759d7 +// 0.586455 +0x3f1621e3 +// 0.211909 +0x3e58fe8f +// 0.169087 +0x3e2d253d +// -0.069109 +0xbd8d8944 +// 0.690385 +0x3f30bd19 +// -0.162632 +0xbe2688e2 +// 0.039042 +0x3d1fea32 +// 0.270544 +0x3e8a84b6 +// 0.308047 +0x3e9db867 +// 0.111309 +0x3de3f62f +// 0.088817 +0x3db5e584 +// -0.036301 +0xbd14b08f +// -0.162632 +0xbe2688e2 +// 0.914574 +0x3f6a218c +// 0.020507 +0x3ca7ff49 +// 0.142109 +0x3e1184f5 +// -0.073951 +0xbd977369 +// -0.026721 +0xbcdae667 +// -0.021322 +0xbcaeaa81 +// 0.008715 +0x3c0ec778 +// 0.039042 +0x3d1fea32 +// 0.020507 +0x3ca7ff49 +// 0.995077 +0x3f7ebd5d +// -0.034115 +0xbd0bbc20 +// -0.512449 +0xbf032fd7 +// -0.185167 +0xbe3d9c87 +// -0.147750 +0xbe174bc1 +// 0.060388 +0x3d7759d7 +// 0.270544 +0x3e8a84b6 +// 0.142109 +0x3e1184f5 +// -0.034115 +0xbd0bbc20 +// 0.763597 +0x3f437b13 +// -0.234617 +0xbe703f50 +// 0.300240 +0x3e99b900 +// -0.545321 +0xbf0b9a2b +// -0.333437 +0xbeaab845 +// 0.023423 +0x3cbfe0f7 +// 0.287186 +0x3e9309fc +// -0.203019 +0xbe4fe428 +// -0.567464 +0xbf11454d +// -0.000006 +0xb6c989ac +// -0.440626 +0xbee199c8 +// 0.105854 +0x3dd8ca33 +// -0.336907 +0xbeac7f0a +// 0.580074 +0x3f147fb4 +// 0.135251 +0x3e0a7f2b +// -0.550555 +0xbf0cf131 +// 0.152472 +0x3e1c21b4 +// -0.252895 +0xbe817b82 +// 0.319906 +0x3ea3cac7 +// -0.412705 +0xbed34e1f +// -0.097062 +0xbdc6c831 +// -0.036601 +0xbd15eb43 +// -0.495996 +0xbefdf33d +// -0.277384 +0xbe8e053c +// 0.574163 +0x3f12fc5b +// -0.384843 +0xbec50a1f +// -0.232704 +0xbe6e4a03 +// -0.235198 +0xbe70d7de +// 0.813552 +0x3f5044f7 +// 0.143042 +0x3e1279a9 +// 0.083240 +0x3daa7981 +// -0.211255 +0xbe58533d +// -0.092415 +0xbdbd43e8 +// 0.131106 +0x3e064088 +// 0.540736 +0x3f0a6dac +// 0.078481 +0x3da0bada +// 0.173679 +0x3e31d8fc +// 0.763884 +0x3f438dee +// -0.058328 +0xbd6ee95f +// 0.256741 +0x3e837392 +// -0.035421 +0xbd111526 +// 0.427263 +0x3edac247 +// 0.094478 +0x3dc17db5 +// -0.356421 +0xbeb67cca +// 0.124874 +0x3dffbde3 +// -0.062058 +0xbd7e3037 +// 0.662415 +0x3f29940f +// 0.007619 +0x3bf9a5f1 +// 0.472427 +0x3ef1e1ee +// -0.247208 +0xbe7d2420 +// -0.450628 +0xbee6b8c3 +// -0.406212 +0xbecffafa +// -0.209483 +0xbe568298 +// 0.226692 +0x3e6821f1 +// -0.033001 +0xbd072bf3 +// 0.676858 +0x3f2d4691 +// 0.127735 +0x3e02cd11 +// -0.687052 +0xbf2fe2a3 +// 0.234149 +0x3e6fc4cc +// 0.409356 +0x3ed19725 +// -0.119935 +0xbdf5a04a +// -0.049046 +0xbd48e417 +// 0.450561 +0x3ee6afe7 +// 0.099955 +0x3dccb55e +// 0.275273 +0x3e8cf09d +// -0.687249 +0xbf2fef90 +// 0.065085 +0x3d854b6c +// 0.285541 +0x3e92326b +// -0.363362 +0xbeba0a94 +// 0.290903 +0x3e94f132 +// 0.060806 +0x3d79101b +// 0.038848 +0x3d1f1ede +// -0.469101 +0xbef02e0a +// -0.396454 +0xbecafbf9 +// -0.524486 +0xbf0644b1 +// -0.117116 +0xbdefda63 +// 0.188523 +0x3e410c29 +// -0.546033 +0xbf0bc8c9 +// 0.146139 +0x3e15a58c +// -0.441234 +0xbee1e960 +// -0.065475 +0xbd8617a6 +// 0.386611 +0x3ec5f1e8 +// -0.172838 +0xbe30fc90 +// -0.141088 +0xbe107965 +// 0.316029 +0x3ea1ce90 +// 0.172811 +0x3e30f575 +// 0.012839 +0x3c525a69 +// -0.057816 +0xbd6cd0c3 +// -0.817011 +0xbf5127a3 +// 0.336664 +0x3eac5f2a +// -0.465707 +0xbeee7120 +// 0.779453 +0x3f478a39 +// -0.190533 +0xbe431b23 +// 0.031808 +0x3d0248d7 +// -0.087826 +0xbdb3de56 +// -0.115018 +0xbdeb8e99 +// 0.063014 +0x3d810db3 +// 0.252723 +0x3e8164ed +// -0.060655 +0xbd787110 +// -0.163850 +0xbe27c855 +// -0.614456 +0xbf1d4cf7 +// -0.431383 +0xbedcde4c +// 0.442986 +0x3ee2cf00 +// 0.333977 +0x3eaaff10 +// -0.184880 +0xbe3d5146 +// -0.114506 +0xbdea81fa +// -0.264818 +0xbe879639 +// -0.120472 +0xbdf6ba08 +// -0.067435 +0xbd8a1b1d +// -0.248843 +0xbe7ed0cf +// -0.764356 +0xbf43acdd +// 0.490879 +0x3efb5477 +// -0.102826 +0xbdd2965b +// 0.163319 +0x3e273d21 +// 0.031909 +0x3d02b308 +// -0.326527 +0xbea72e8f +// -0.554647 +0xbf0dfd51 +// 0.137272 +0x3e0c910f +// -0.380307 +0xbec2b78d +// -0.627833 +0xbf20b9a2 +// -0.020136 +0xbca4f393 +// -0.063630 +0xbd825067 +// -0.631741 +0xbf21b9cb +// -0.359607 +0xbeb81e72 +// -0.080709 +0xbda54abf +// 0.565235 +0x3f10b338 +// 0.204835 +0x3e51c056 +// 0.201384 +0x3e4e3786 +// 0.242940 +0x3e78c540 +// -0.233551 +0xbe6f27e8 +// 0.139714 +0x3e0f1120 +// -0.473072 +0xbef23677 +// -0.271082 +0xbe8acb53 +// 0.104355 +0x3dd5b809 +// 0.121933 +0x3df9b837 +// -0.417597 +0xbed5cf3b +// 0.120796 +0x3df763a8 +// -0.352918 +0xbeb4b1af +// 0.335919 +0x3eabfd9d +// 0.420146 +0x3ed71d52 +// 0.139714 +0x3e0f1120 +// 0.984176 +0x3f7bf2f2 +// 0.053581 +0x3d5b778d +// 0.030703 +0x3cfb8549 +// -0.011819 +0xbc41a621 +// -0.013810 +0xbc6244d5 +// 0.047298 +0x3d41bb25 +// -0.013681 +0xbc60284c +// 0.039972 +0x3d23b9b6 +// -0.038047 +0xbd1bd6df +// -0.047586 +0xbd42e9dc +// -0.473072 +0xbef23677 +// 0.053581 +0x3d5b778d +// 0.818575 +0x3f518e22 +// -0.103961 +0xbdd4e9a4 +// 0.040021 +0x3d23ec96 +// 0.046762 +0x3d3f8978 +// -0.160150 +0xbe23fe60 +// 0.046326 +0x3d3dbfe8 +// -0.135346 +0xbe0a9807 +// 0.128826 +0x3e03eb14 +// 0.161128 +0x3e24fea0 +// -0.271082 +0xbe8acb53 +// 0.030703 +0x3cfb8549 +// -0.103961 +0xbdd4e9a4 +// 0.940427 +0x3f70bfdb +// 0.022933 +0x3cbbdd9b +// 0.026796 +0x3cdb82eb +// -0.091770 +0xbdbbf1fe +// 0.026546 +0x3cd97686 +// -0.077557 +0xbd9ed5f7 +// 0.073821 +0x3d972f6b +// 0.092330 +0x3dbd17ac +// 0.104355 +0x3dd5b809 +// -0.011819 +0xbc41a621 +// 0.040021 +0x3d23ec96 +// 0.022933 +0x3cbbdd9b +// 0.991172 +0x3f7dbd70 +// -0.010315 +0xbc29012e +// 0.035328 +0x3d10b393 +// -0.010219 +0xbc276d72 +// 0.029856 +0x3cf49454 +// -0.028418 +0xbce8cc83 +// -0.035543 +0xbd1195ae +// 0.121933 +0x3df9b837 +// -0.013810 +0xbc6244d5 +// 0.046762 +0x3d3f8978 +// 0.026796 +0x3cdb82eb +// -0.010315 +0xbc29012e +// 0.987947 +0x3f7cea1b +// 0.041278 +0x3d291386 +// -0.011940 +0xbc43a168 +// 0.034885 +0x3d0ee3a6 +// -0.033205 +0xbd0801bc +// -0.041530 +0xbd2a1bb7 +// -0.417597 +0xbed5cf3b +// 0.047298 +0x3d41bb25 +// -0.160150 +0xbe23fe60 +// -0.091770 +0xbdbbf1fe +// 0.035328 +0x3d10b393 +// 0.041278 +0x3d291386 +// 0.858630 +0x3f5bcf2e +// 0.040893 +0x3d277f9d +// -0.119474 +0xbdf4aedf +// 0.113720 +0x3de8e5c6 +// 0.142233 +0x3e11a57b +// 0.120796 +0x3df763a8 +// -0.013681 +0xbc60284c +// 0.046326 +0x3d3dbfe8 +// 0.026546 +0x3cd97686 +// -0.010219 +0xbc276d72 +// -0.011940 +0xbc43a168 +// 0.040893 +0x3d277f9d +// 0.988171 +0x3f7cf8c8 +// 0.034560 +0x3d0d8e4d +// -0.032895 +0xbd06bcd4 +// -0.041143 +0xbd288558 +// -0.352918 +0xbeb4b1af +// 0.039972 +0x3d23b9b6 +// -0.135346 +0xbe0a9807 +// -0.077557 +0xbd9ed5f7 +// 0.029856 +0x3cf49454 +// 0.034885 +0x3d0ee3a6 +// -0.119474 +0xbdf4aedf +// 0.034560 +0x3d0d8e4d +// 0.899030 +0x3f6626da +// 0.096106 +0x3dc4d363 +// 0.120203 +0x3df62d34 +// 0.335919 +0x3eabfd9d +// -0.038047 +0xbd1bd6df +// 0.128826 +0x3e03eb14 +// 0.073821 +0x3d972f6b +// -0.028418 +0xbce8cc83 +// -0.033205 +0xbd0801bc +// 0.113720 +0x3de8e5c6 +// -0.032895 +0xbd06bcd4 +// 0.096106 +0x3dc4d363 +// 0.908523 +0x3f6894f3 +// -0.114414 +0xbdea51b1 +// 0.420146 +0x3ed71d52 +// -0.047586 +0xbd42e9dc +// 0.161128 +0x3e24fea0 +// 0.092330 +0x3dbd17ac +// -0.035543 +0xbd1195ae +// -0.041530 +0xbd2a1bb7 +// 0.142233 +0x3e11a57b +// -0.041143 +0xbd288558 +// 0.120203 +0x3df62d34 +// -0.114414 +0xbdea51b1 +// 0.856899 +0x3f5b5dbc +// -0.456008 +0xbee979e0 +// -0.734801 +0xbf3c1beb +// -0.149722 +0xbe1950ae +// 0.208461 +0x3e5576cc +// -0.134240 +0xbe09764c +// 0.006047 +0x3bc62486 +// -0.393380 +0xbec9692b +// -0.113451 +0xbde858f7 +// -0.013133 +0xbc572de3 +// -0.019532 +0xbca00242 +// 0.004615 +0x3b9735e9 +// 0.425487 +0x3ed9d95e +// 0.135231 +0x3e0a7a00 +// -0.299541 +0xbe995d6b +// -0.053189 +0xbd59dcdf +// -0.358899 +0xbeb7c18f +// 0.304509 +0x3e9be8ab +// -0.525813 +0xbf069bb2 +// -0.065588 +0xbd8652e9 +// -0.231984 +0xbe6d8d44 +// 0.359661 +0x3eb82587 +// -0.150438 +0xbe1a0c62 +// -0.313802 +0xbea0aa9b +// 0.063761 +0x3d8294fb +// -0.230142 +0xbe6baa75 +// -0.568819 +0xbf119e26 +// -0.123039 +0xbdfbfbd4 +// 0.067636 +0x3d8a84a4 +// 0.049242 +0x3d49b21f +// 0.208263 +0x3e554302 +// -0.574043 +0xbf12f47d +// -0.275159 +0xbe8ce19b +// 0.224037 +0x3e6569fb +// -0.057092 +0xbd69d9a0 +// 0.251776 +0x3e80e8c5 +// -0.528797 +0xbf075f40 +// 0.710751 +0x3f35f3ce +// 0.013272 +0x3c597131 +// -0.016948 +0xbc8ad6ba +// 0.152176 +0x3e1bd418 +// 0.123715 +0x3dfd5e34 +// -0.238291 +0xbe74027b +// -0.188374 +0xbe40e521 +// 0.131764 +0x3e06ed26 +// 0.219710 +0x3e60fbb7 +// -0.208784 +0xbe55cb92 +// -0.255094 +0xbe829ba4 +// -0.114116 +0xbde9b57a +// 0.877935 +0x3f60c051 +// 0.107734 +0x3ddca36c +// -0.130085 +0xbe0534f2 +// 0.017354 +0x3c8e29b1 +// -0.153850 +0xbe1d8afa +// 0.080269 +0x3da46426 +// -0.018151 +0xbc94b1b6 +// -0.268793 +0xbe899f34 +// 0.112968 +0x3de75b89 +// 0.180778 +0x3e391df2 +// 0.099127 +0x3dcb035b +// 0.084861 +0x3dadcb7c +// 0.917387 +0x3f6ad9e3 +// 0.074732 +0x3d990d13 +// -0.019862 +0xbca2b550 +// 0.115084 +0x3debb144 +// -0.064922 +0xbd84f5da +// 0.015573 +0x3c7f23d3 +// 0.296258 +0x3e97af22 +// -0.492227 +0xbefc0532 +// -0.171442 +0xbe2f8e9b +// -0.036772 +0xbd169e73 +// -0.209062 +0xbe561475 +// 0.180623 +0x3e38f534 +// 0.699114 +0x3f32f926 +// -0.035980 +0xbd135f45 +// -0.136457 +0xbe0bbb56 +// 0.214732 +0x3e5be2a2 +// -0.089899 +0xbdb81d08 +// 0.081935 +0x3da7cdbc +// -0.152064 +0xbe1bb69c +// 0.159314 +0x3e232342 +// 0.092152 +0x3dbcba2a +// -0.034304 +0xbd0c82d0 +// 0.032877 +0x3d06a98d +// -0.093034 +0xbdbe8888 +// 0.953130 +0x3f74004e +// 0.062254 +0x3d7efe20 +// 0.097689 +0x3dc8114e +// -0.059181 +0xbd7267ea +// -0.020094 +0xbca49bdc +// 0.030275 +0x3cf8043c +// -0.608951 +0xbf1be431 +// -0.296484 +0xbe97ccc9 +// -0.072947 +0xbd956501 +// 0.051813 +0x3d543a19 +// 0.019624 +0x3ca0c1a2 +// 0.105898 +0x3dd8e14b +// 0.705873 +0x3f34b413 +// -0.110312 +0xbde1eb63 +// 0.099626 +0x3dcc08c8 +// -0.483230 +0xbef769e3 +// 0.198390 +0x3e4b26ce +// -0.107163 +0xbddb784b +// -0.029588 +0xbcf26260 +// 0.091064 +0x3dba7ff8 +// -0.103269 +0xbdd37ed7 +// 0.132300 +0x3e07798a +// 0.035973 +0x3d135835 +// -0.004535 +0xbb949d2b +// 0.817564 +0x3f514be0 +// 0.092656 +0x3dbdc242 +// 0.245699 +0x3e7b9879 +// -0.110837 +0xbde2fe48 +// 0.142950 +0x3e12618d +// 0.059335 +0x3d73093c +// -0.037261 +0xbd189f50 +// 0.045991 +0x3d3c60a4 +// -0.073340 +0xbd963336 +// -0.034545 +0xbd0d7e90 +// 0.044896 +0x3d37e534 +// 0.110338 +0x3de1f909 +// 0.937617 +0x3f7007af +// -0.048598 +0xbd470e64 +// -0.508183 +0xbf021842 +// 0.287286 +0x3e93171c +// 0.512142 +0x3f031bb5 +// -0.194837 +0xbe47836e +// 0.343169 +0x3eafb3cc +// -0.254069 +0xbe821548 +// -0.031092 +0xbcfeb44e +// -0.130889 +0xbe0607d4 +// -0.296564 +0xbe97d74b +// 0.261229 +0x3e85bfc0 +// 0.361191 +0x3eb8ee02 +// -0.131891 +0xbe070e6d +// 0.117244 +0x3df01d65 +// 0.151013 +0x3e1aa314 +// -0.019558 +0xbca03878 +// 0.343972 +0x3eb01d1b +// 0.590656 +0x3f173539 +// -0.026365 +0xbcd7facd +// -0.369439 +0xbebd2725 +// 0.340389 +0x3eae4783 +// -0.308182 +0xbe9dca01 +// -0.115718 +0xbdecfd59 +// 0.113413 +0x3de8451c +// -0.110825 +0xbde2f7fb +// 0.249824 +0x3e7fd1fa +// 0.199559 +0x3e4c591b +// 0.100688 +0x3dce3551 +// -0.089897 +0xbdb81be6 +// 0.840419 +0x3f5725ba +// -0.061388 +0xbd7b7273 +// -0.142780 +0xbe1234fb +// -0.332490 +0xbeaa3c32 +// 0.349172 +0x3eb2c6b5 +// 0.506521 +0x3f01ab59 +// 0.084308 +0x3daca9ee +// 0.695083 +0x3f31f0f0 +// 0.042860 +0x3d2f8dd3 +// -0.259522 +0xbe84e00c +// -0.045969 +0xbd3c49f0 +// -0.157577 +0xbe215bf7 +// 0.171871 +0x3e2ffeff +// 0.054013 +0x3d5d3c82 +// 0.051751 +0x3d53f92f +// -0.088388 +0xbdb504ec +// -0.120713 +0xbdf73835 +// 0.246918 +0x3e7cd831 +// 0.018292 +0x3c95d9b1 +// 0.938911 +0x3f705c71 +// 0.033356 +0x3d089fde +// 0.007926 +0x3c01dde3 +// -0.162793 +0xbe26b31c +// -0.016774 +0xbc896aa9 +// 0.004100 +0x3b865cdd +// 0.082369 +0x3da8b0e6 +// 0.064277 +0x3d83a38a +// 0.498472 +0x3eff37b5 +// 0.027839 +0x3ce40fa3 +// -0.174438 +0xbe329fe4 +// 0.019823 +0x3ca263fe +// 0.800183 +0x3f4cd8c5 +// -0.164708 +0xbe28a94c +// -0.077254 +0xbd9e3777 +// 0.167337 +0x3e2b5a58 +// -0.058289 +0xbd6ec099 +// 0.104924 +0x3dd6e270 +// -0.587970 +0xbf16852e +// 0.218336 +0x3e5f935d +// 0.081223 +0x3da65850 +// 0.160365 +0x3e2436ba +// -0.076512 +0xbd9cb26d +// 0.014070 +0x3c668406 +// 0.663775 +0x3f29ed2a +// -0.005711 +0xbbbb1fdb +// 0.086542 +0x3db13d07 +// -0.257791 +0xbe83fd27 +// 0.231688 +0x3e6d3fb5 +// 0.188699 +0x3e413a4e +// 0.089538 +0x3db75f86 +// 0.787661 +0x3f49a420 +// -0.269182 +0xbe89d233 +// -0.123028 +0xbdfbf5fb +// -0.153495 +0xbe1d2dd8 +// 0.043903 +0x3d33d388 +// 0.373868 +0x3ebf6baf +// 0.098762 +0x3dca439b +// 0.113309 +0x3de80eae +// 0.245994 +0x3e7be5e1 +// 0.121433 +0x3df8b1be +// -0.359894 +0xbeb84416 +// -0.064701 +0xbd848217 +// 0.066901 +0x3d89038d +// 0.013753 +0x3c61530b +// 0.119434 +0x3df499ac +// 0.190936 +0x3e4384d5 +// 0.067536 +0x3d8a504f +// 0.873244 +0x3f5f8cea +// 0.103523 +0x3dd403d1 +// -0.135369 +0xbe0a9e0e +// -0.473449 +0xbef267df +// 0.005472 +0x3bb350a6 +// 0.011693 +0x3c3f94f0 +// 0.189127 +0x3e41aa97 +// -0.057489 +0xbd6b799b +// 0.080586 +0x3da50a33 +// -0.204912 +0xbe51d468 +// 0.052219 +0x3d55e36a +// 0.008260 +0x3c0756fc +// 0.817654 +0x3f5151ca +// 0.129495 +0x3e049a6e +// 0.315766 +0x3ea1ac20 +// -0.081499 +0xbda6e918 +// -0.437330 +0xbedfe9c0 +// -0.013044 +0xbc55b478 +// 0.116470 +0x3dee87dd +// 0.022513 +0x3cb86d3c +// 0.167983 +0x3e2c03a7 +// 0.296032 +0x3e979184 +// -0.070176 +0xbd8fb896 +// 0.104384 +0x3dd5c767 +// 0.745973 +0x3f3ef814 +// -0.263413 +0xbe86de1f +// 0.327291 +0x3ea792af +// -0.146219 +0xbe15ba78 +// 0.559891 +0x3f0f54fe +// 0.110084 +0x3de173f3 +// 0.356437 +0x3eb67eee +// 0.085124 +0x3dae555f +// 0.556314 +0x3f0e6a97 +// -0.046831 +0xbd3fd1ba +// 0.123694 +0x3dfd5340 +// 0.123474 +0x3dfce011 +// -0.553203 +0xbf0d9eb0 +// -0.272837 +0xbe8bb141 +// 0.067488 +0x3d8a370b +// -0.324579 +0xbea62f43 +// 0.027772 +0x3ce382de +// 0.374017 +0x3ebf7f18 +// 0.576898 +0x3f13af8e +// -0.066494 +0xbd882e01 +// -0.136301 +0xbe0b926c +// -0.094744 +0xbdc2090b +// -0.064611 +0xbd84528a +// 0.087929 +0x3db413ed +// -0.056681 +0xbd682acc +// -0.024421 +0xbcc80f64 +// -0.017156 +0xbc8c8ace +// -0.869929 +0xbf5eb3af +// 0.359658 +0x3eb82513 +// -0.043378 +0xbd31ad61 +// 0.007546 +0x3bf7472a +// 0.272527 +0x3e8b889f +// 0.133234 +0x3e086e8f +// 0.089853 +0x3db80504 +// 0.200450 +0x3e4d42e2 +// -0.616012 +0xbf1db2f0 +// 0.111033 +0x3de36546 +// 0.683019 +0x3f2eda56 +// 0.003835 +0x3b7b5be4 +// 0.017306 +0x3c8dc599 +// 0.203161 +0x3e500955 +// -0.213611 +0xbe5abce4 +// -0.047987 +0xbd448de9 +// -0.083905 +0xbdabd627 +// -0.070321 +0xbd9004af +// 0.223923 +0x3e654c33 +// -0.215804 +0xbe5cfbac +// -0.821209 +0xbf523ac7 +// -0.133278 +0xbe087a02 +// 0.262563 +0x3e866eab +// 0.276050 +0x3e8d566f +// 0.003210 +0x3b525ef8 +// -0.088567 +0xbdb562ba +// 0.221308 +0x3e629ea1 +// 0.082236 +0x3da86b86 +// 0.049005 +0x3d48b972 +// 0.436258 +0x3edf5d3a +// 0.165383 +0x3e295a2e +// 0.403883 +0x3ecec9b8 +// -0.094283 +0xbdc11786 +// 0.280943 +0x3e8fd7c1 +// 0.695480 +0x3f320af6 +// -0.117068 +0xbdefc170 +// -0.150757 +0xbe1a601e +// -0.060483 +0xbd77bcd9 +// -0.066578 +0xbd885a3c +// -0.056322 +0xbd66b163 +// 0.428034 +0x3edb274a +// 0.420712 +0x3ed76792 +// -0.050202 +0xbd4da0cf +// 0.025903 +0x3cd431d5 +// -0.071458 +0xbd92589f +// -0.184162 +0xbe3c94f7 +// 0.766150 +0x3f44226a +// -0.069469 +0xbd8e45a9 +// 0.072538 +0x3d948efa +// 0.021048 +0x3cac6ca5 +// 0.007633 +0x3bfa1f54 +// 0.355635 +0x3eb615cd +// -0.393654 +0xbec98d0c +// 0.122848 +0x3dfb977d +// -0.280744 +0xbe8fbdb6 +// 0.009246 +0x3c177de8 +// -0.073548 +0xbd96a028 +// 0.093542 +0x3dbf92d1 +// 0.774604 +0x3f464c74 +// -0.025547 +0xbcd1472c +// -0.074046 +0xbd97a549 +// -0.065265 +0xbd85a99c +// -0.158773 +0xbe229543 +// -0.031302 +0xbd00368e +// 0.260391 +0x3e8551f4 +// 0.031928 +0x3d02c677 +// 0.238700 +0x3e746dc9 +// -0.043477 +0xbd3214c4 +// 0.051503 +0x3d52f4cc +// 0.039978 +0x3d23bfcd +// 0.916878 +0x3f6ab88b +// -0.030189 +0xbcf74fd9 +// -0.017105 +0xbc8c1ff5 +// 0.009761 +0x3c1fea9f +// -0.128256 +0xbe035570 +// 0.158213 +0x3e22029e +// -0.059874 +0xbd753edf +// 0.118087 +0x3df1d7ad +// -0.036544 +0xbd15aeea +// 0.054309 +0x3d5e733b +// -0.039350 +0xbd212d74 +// -0.048037 +0xbd44c1ee +// 0.965450 +0x3f7727bd +// -0.025682 +0xbcd263d7 +// 0.034815 +0x3d0e99b4 +// -0.111549 +0xbde473de +// 0.114839 +0x3deb307e +// -0.060138 +0xbd7652f9 +// 0.079600 +0x3da30564 +// -0.031058 +0xbcfe6e0f +// 0.041640 +0x3d2a8eff +// -0.043020 +0xbd3035eb +// -0.033645 +0xbd09cfa1 +// -0.028382 +0xbce880b4 +// 0.978119 +0x3f7a6606 +// -0.243646 +0xbe797e5c +// -0.133695 +0xbe08e769 +// 0.032414 +0x3d04c45d +// -0.208215 +0xbe553663 +// 0.038579 +0x3d1e04cf +// 0.083669 +0x3dab5ada +// -0.053420 +0xbd5acea6 +// -0.245415 +0xbe7b4e02 +// 0.825212 +0x3f53411f +// 0.126696 +0x3e01bc83 +// -0.331300 +0xbea9a021 +// -0.133695 +0xbe08e769 +// 0.985627 +0x3f7c5214 +// 0.003485 +0x3b645d6e +// -0.022384 +0xbcb75e03 +// 0.004147 +0x3b87e646 +// 0.008995 +0x3c135e6c +// -0.005743 +0xbbbc2dca +// -0.026383 +0xbcd8209d +// 0.088713 +0x3db5aeea +// 0.013620 +0x3c5f26ee +// -0.035616 +0xbd11e1ac +// 0.032414 +0x3d04c45d +// 0.003485 +0x3b645d6e +// 0.999155 +0x3f7fc8a2 +// 0.005427 +0x3bb1d38b +// -0.001006 +0xba83cb00 +// -0.002181 +0xbb0eea6d +// 0.001392 +0x3ab67e19 +// 0.006396 +0x3bd198b9 +// -0.021508 +0xbcb03179 +// -0.003302 +0xbb5868b3 +// 0.008635 +0x3c0d792e +// -0.208215 +0xbe553663 +// -0.022384 +0xbcb75e03 +// 0.005427 +0x3bb1d38b +// 0.965140 +0x3f771369 +// 0.006459 +0x3bd3a5ee +// 0.014008 +0x3c6582a7 +// -0.008944 +0xbc12889f +// -0.041088 +0xbd284c0a +// 0.138160 +0x3e0d79c1 +// 0.021212 +0x3cadc461 +// -0.055467 +0xbd6331ad +// 0.038579 +0x3d1e04cf +// 0.004147 +0x3b87e646 +// -0.001006 +0xba83cb00 +// 0.006459 +0x3bd3a5ee +// 0.998803 +0x3f7fb192 +// -0.002595 +0xbb2a1903 +// 0.001657 +0x3ad933af +// 0.007613 +0x3bf97602 +// -0.025599 +0xbcd1b458 +// -0.003930 +0xbb80c8d7 +// 0.010277 +0x3c286189 +// 0.083669 +0x3dab5ada +// 0.008995 +0x3c135e6c +// -0.002181 +0xbb0eea6d +// 0.014008 +0x3c6582a7 +// -0.002595 +0xbb2a1903 +// 0.994371 +0x3f7e8f18 +// 0.003594 +0x3b6b8865 +// 0.016511 +0x3c8741d8 +// -0.055518 +0xbd636712 +// -0.008524 +0xbc0ba745 +// 0.022289 +0x3cb69775 +// -0.053420 +0xbd5acea6 +// -0.005743 +0xbbbc2dca +// 0.001392 +0x3ab67e19 +// -0.008944 +0xbc12889f +// 0.001657 +0x3ad933af +// 0.003594 +0x3b6b8865 +// 0.997705 +0x3f7f699f +// -0.010542 +0xbc2cb695 +// 0.035446 +0x3d11301e +// 0.005442 +0x3bb253aa +// -0.014231 +0xbc6927dc +// -0.245415 +0xbe7b4e02 +// -0.026383 +0xbcd8209d +// 0.006396 +0x3bd198b9 +// -0.041088 +0xbd284c0a +// 0.007613 +0x3bf97602 +// 0.016511 +0x3c8741d8 +// -0.010542 +0xbc2cb695 +// 0.951571 +0x3f739a2a +// 0.162843 +0x3e26c05f +// 0.025001 +0x3ccccfe7 +// -0.065377 +0xbd85e462 +// 0.825212 +0x3f53411f +// 0.088713 +0x3db5aeea +// -0.021508 +0xbcb03179 +// 0.138160 +0x3e0d79c1 +// -0.025599 +0xbcd1b458 +// -0.055518 +0xbd636712 +// 0.035446 +0x3d11301e +// 0.162843 +0x3e26c05f +// 0.452436 +0x3ee7a5b8 +// -0.084068 +0xbdac2bd9 +// 0.219832 +0x3e611b8a +// 0.126696 +0x3e01bc83 +// 0.013620 +0x3c5f26ee +// -0.003302 +0xbb5868b3 +// 0.021212 +0x3cadc461 +// -0.003930 +0xbb80c8d7 +// -0.008524 +0xbc0ba745 +// 0.005442 +0x3bb253aa +// 0.025001 +0x3ccccfe7 +// -0.084068 +0xbdac2bd9 +// 0.987093 +0x3f7cb220 +// 0.033751 +0x3d0a3e74 +// -0.331300 +0xbea9a021 +// -0.035616 +0xbd11e1ac +// 0.008635 +0x3c0d792e +// -0.055467 +0xbd6331ad +// 0.010277 +0x3c286189 +// 0.022289 +0x3cb69775 +// -0.014231 +0xbc6927dc +// -0.065377 +0xbd85e462 +// 0.219832 +0x3e611b8a +// 0.033751 +0x3d0a3e74 +// 0.911744 +0x3f69680a +// -0.453098 +0xbee7fc70 +// -0.041003 +0xbd27f324 +// -0.627924 +0xbf20bfa1 +// 0.268053 +0x3e893e4d +// 0.081941 +0x3da7d096 +// -0.035055 +0xbd0f964e +// -0.174584 +0xbe32c60f +// 0.142927 +0x3e125b62 +// 0.477498 +0x3ef47a99 +// -0.166421 +0xbe2a6a58 +// -0.111036 +0xbde366ab +// -0.433401 +0xbedde6ad +// -0.120107 +0xbdf5fa94 +// 0.332275 +0x3eaa1ff6 +// -0.118309 +0xbdf24bc9 +// -0.168021 +0xbe2c0db4 +// 0.317592 +0x3ea29b5e +// -0.361436 +0xbeb90e1d +// -0.240072 +0xbe75d567 +// -0.111841 +0xbde50d02 +// -0.155182 +0xbe1ee808 +// -0.565136 +0xbf10acc4 +// 0.048732 +0x3d479af7 +// -0.373227 +0xbebf17a6 +// -0.042884 +0xbd2fa731 +// 0.087755 +0x3db3b8b3 +// -0.684848 +0xbf2f5239 +// -0.219429 +0xbe60b1ff +// 0.246367 +0x3e7c47c1 +// 0.449021 +0x3ee5e60f +// -0.110500 +0xbde24db0 +// -0.065005 +0xbd852199 +// -0.229930 +0xbe6b72c2 +// 0.132745 +0x3e07ee56 +// -0.076374 +0xbd9c6a19 +// 0.258717 +0x3e847692 +// 0.939536 +0x3f70856b +// 0.060118 +0x3d763e89 +// 0.070728 +0x3d90d9e1 +// -0.052021 +0xbd551465 +// -0.106089 +0xbdd9455c +// -0.060884 +0xbd796130 +// 0.012181 +0x3c47937e +// -0.021228 +0xbcade632 +// 0.258984 +0x3e84997f +// -0.630225 +0xbf215666 +// -0.206128 +0xbe53131e +// -0.080341 +0xbda489d5 +// 0.567518 +0x3f1148d7 +// 0.030006 +0x3cf5cef4 +// 0.024874 +0x3ccbc3de +// 0.085312 +0x3daeb7ef +// -0.235657 +0xbe714ff2 +// -0.048447 +0xbd466fde +// -0.313124 +0xbea051c9 +// 0.212886 +0x3e59fec7 +// 0.094918 +0x3dc2646c +// -0.281228 +0xbe8ffd2e +// 0.020442 +0x3ca774f0 +// -0.161577 +0xbe257481 +// 0.890145 +0x3f63e08a +// 0.142704 +0x3e1220e5 +// 0.148682 +0x3e183ffa +// -0.051828 +0xbd54493f +// 0.023518 +0x3cc0a9bb +// 0.044585 +0x3d369e8a +// -0.421309 +0xbed7b5cf +// -0.072313 +0xbd941906 +// 0.191395 +0x3e43fd04 +// 0.021308 +0x3cae8eea +// 0.185044 +0x3e3d7c1d +// 0.100027 +0x3dccdade +// 0.836426 +0x3f562003 +// -0.126936 +0xbe01fb6c +// 0.126948 +0x3e01fe9c +// -0.044292 +0xbd356bf5 +// -0.046242 +0xbd3d6872 +// -0.175539 +0xbe33c0a0 +// 0.108641 +0x3dde7efa +// 0.420275 +0x3ed72e52 +// -0.019878 +0xbca2d783 +// 0.303099 +0x3e9b2fd4 +// 0.109063 +0x3ddf5c51 +// -0.142327 +0xbe11be2e +// 0.802755 +0x3f4d8160 +// 0.087527 +0x3db34160 +// 0.006185 +0x3bcaaafa +// 0.064964 +0x3d850c0f +// 0.390826 +0x3ec81a4f +// -0.249373 +0xbe7f5b98 +// 0.282492 +0x3e90a2d5 +// -0.117570 +0xbdf0c8c5 +// -0.071514 +0xbd9275d2 +// 0.084257 +0x3dac8f1d +// -0.023388 +0xbcbf986b +// -0.101116 +0xbdcf15b1 +// 0.811751 +0x3f4fceeb +// 0.019713 +0x3ca17d73 +// -0.095553 +0xbdc3b18b +// -0.189935 +0xbe427e55 +// -0.136078 +0xbe0b5814 +// -0.055672 +0xbd6408b4 +// 0.016256 +0x3c852adb +// -0.029369 +0xbcf09761 +// 0.024791 +0x3ccb1602 +// -0.049606 +0xbd4b2f71 +// 0.000793 +0x3a4ffd4a +// 0.032174 +0x3d03c902 +// 0.964811 +0x3f76fdde +// -0.078800 +0xbda161f6 +// -0.278104 +0xbe8e63ad +// -0.578647 +0xbf14223d +// 0.093746 +0x3dbffe20 +// -0.043741 +0xbd3329d7 +// -0.110238 +0xbde1c4a5 +// 0.147928 +0x3e177a88 +// -0.177835 +0xbe361a7f +// -0.094470 +0xbdc179af +// -0.039982 +0xbd23c3fc +// -0.087743 +0xbdb3b2da +// 0.702311 +0x3f33caa7 +// -0.161391 +0xbe2543c7 +// -0.308376 +0xbe9de379 +// 0.683266 +0x3f2eea8a +// -0.299778 +0xbe997c77 +// 0.115416 +0x3dec5f2e +// 0.262560 +0x3e866e41 +// -0.480194 +0xbef5dbf1 +// 0.011494 +0x3c3c4fbb +// -0.083498 +0xbdab0141 +// -0.018931 +0xbc9b149a +// 0.042784 +0x3d2f3ecc +// 0.262069 +0x3e862def +// -0.013193 +0xbc5827ee +// -0.112712 +0xbde6d54d +// 0.249081 +0x3e7f0f09 +// -0.262518 +0xbe8668ca +// -0.088437 +0xbdb51eb8 +// -0.454482 +0xbee8b1e3 +// 0.699533 +0x3f331493 +// -0.150066 +0xbe19aaee +// -0.247470 +0xbe7d68a8 +// -0.001581 +0xbacf3872 +// -0.308452 +0xbe9ded63 +// -0.309267 +0xbe9e584c +// -0.585461 +0xbf15e0c8 +// -0.277796 +0xbe8e3b39 +// 0.214671 +0x3e5bd2c1 +// 0.081410 +0x3da6ba1a +// -0.177220 +0xbe357911 +// -0.090801 +0xbdb9f619 +// -0.248448 +0xbe7e6907 +// -0.362536 +0xbeb99e57 +// 0.322109 +0x3ea4eb87 +// -0.070572 +0xbd9087e2 +// -0.234143 +0xbe6fc340 +// -0.156049 +0xbe1fcb42 +// -0.096205 +0xbdc50729 +// -0.747575 +0xbf3f610e +// 0.226851 +0x3e684bad +// -0.012501 +0xbc4cd145 +// -0.149593 +0xbe192ece +// -0.315152 +0xbea15b96 +// 0.415435 +0x3ed4b3ea +// -0.042653 +0xbd2eb4e7 +// 0.303600 +0x3e9b7183 +// 0.039048 +0x3d1ff0df +// 0.255144 +0x3e82a230 +// 0.133267 +0x3e087714 +// -0.106071 +0xbdd93bbd +// -0.443987 +0xbee3523b +// -0.000282 +0xb99410a8 +// -0.330918 +0xbea96e0d +// -0.383487 +0xbec45873 +// -0.097582 +0xbdc7d916 +// 0.590743 +0x3f173aec +// -0.398374 +0xbecbf7ba +// 0.262943 +0x3e86a084 +// -0.023811 +0xbcc30e5d +// -0.096020 +0xbdc4a636 +// 0.250755 +0x3e806305 +// -0.449550 +0xbee62b6a +// -0.144966 +0xbe1471f7 +// 0.184183 +0x3e3c9a57 +// -0.459209 +0xbeeb1d77 +// 0.439541 +0x3ee10b8f +// -0.195935 +0xbe48a318 +// 0.154280 +0x3e1dfb7a +// 0.136692 +0x3e0bf913 +// 0.029598 +0x3cf277c5 +// -0.314682 +0xbea11e05 +// -0.186232 +0xbe3eb386 +// -0.215779 +0xbe5cf536 +// -0.070117 +0xbd8f99bb +// -0.306177 +0xbe9cc340 +// -0.205829 +0xbe52c4e9 +// -0.507418 +0xbf01e62a +// -0.614711 +0xbf1d5daf +// 0.038343 +0x3d1d0dd8 +// -0.358593 +0xbeb7997f +// -0.096095 +0xbdc4cd7c +// -0.308585 +0xbe9dfed8 +// -0.148461 +0xbe180630 +// -0.601576 +0xbf1a00dd +// -0.192979 +0xbe459c41 +// -0.000927 +0xba72ea59 +// 0.558309 +0x3f0eed57 +// 0.178421 +0x3e36b420 +// 0.027624 +0x3ce24ae3 +// -0.481425 +0xbef67d56 +// 0.605693 +0x3f1b0eb3 +// 0.072144 +0x3d93c008 +// -0.130016 +0xbe0522e8 +// -0.387430 +0xbec65d34 +// 0.014860 +0x3c737842 +// -0.142472 +0xbe11e413 +// -0.000480 +0xb9fbc52f +// 0.279353 +0x3e8f075b +// -0.211139 +0xbe5834ed +// 0.293288 +0x3e9629e2 +// 0.133320 +0x3e088527 +// 0.186082 +0x3e3e8c50 +// -0.229317 +0xbe6ad204 +// 0.352463 +0x3eb47618 +// 0.132493 +0x3e07ac51 +// 0.117330 +0x3df04a7c +// -0.666253 +0xbf2a8f95 +// -0.477331 +0xbef464ac +// 0.137149 +0x3e0c70c7 +// 0.199722 +0x3e4c840a +// -0.094999 +0xbdc28ebe +// 0.528637 +0x3f0754c9 +// 0.367195 +0x3ebc0108 +// -0.140573 +0xbe0ff271 +// -0.631904 +0xbf21c470 +// 0.119596 +0x3df4ee82 +// 0.208547 +0x3e558d41 +// -0.062711 +0xbd806e8e +// 0.121981 +0x3df9d118 +// -0.024559 +0xbcc92fb6 +// 0.240596 +0x3e765ec9 +// 0.177625 +0x3e35e34a +// -0.268312 +0xbe896035 +// 0.088881 +0x3db6076d +// -0.382488 +0xbec3d57d +// 0.407807 +0x3ed0cc05 +// -0.173423 +0xbe3195bf +// 0.168294 +0x3e2c5548 +// 0.250923 +0x3e8078f0 +// -0.036223 +0xbd145eb2 +// 0.351869 +0x3eb4281c +// 0.584712 +0x3f15afaf +// 0.138322 +0x3e0da467 +// 0.420306 +0x3ed73251 +// -0.096308 +0xbdc53d1c +// -0.666691 +0xbf2aac44 +// 0.250965 +0x3e807e76 +// 0.051155 +0x3d518775 +// 0.038835 +0x3d1f1165 +// 0.064753 +0x3d849d4f +// 0.362303 +0x3eb97fcb +// -0.137671 +0xbe0cf9b6 +// -0.356441 +0xbeb67f72 +// 0.144991 +0x3e14788c +// -0.365473 +0xbebb1f4e +// 0.095942 +0x3dc47d2f +// -0.117973 +0xbdf19b95 +// 0.242041 +0x3e77d994 +// -0.257917 +0xbe840dbd +// -0.377061 +0xbec10e24 +// 0.268309 +0x3e895fc5 +// -0.020825 +0xbcaa986e +// -0.013628 +0xbc5f4865 +// -0.359812 +0xbeb83939 +// -0.611517 +0xbf1c8c66 +// -0.050550 +0xbd4f0d33 +// -0.410423 +0xbed222e8 +// 0.117188 +0x3df0006a +// -0.108248 +0xbdddb0f0 +// 0.374914 +0x3ebff4c8 +// -0.272113 +0xbe8b5256 +// 0.296468 +0x3e97ca9e +// 0.577561 +0x3f13db0e +// -0.042153 +0xbd2ca862 +// 0.359814 +0x3eb83985 +// -0.190338 +0xbe42e7db +// 0.161193 +0x3e250fc1 +// 0.288796 +0x3e93dd05 +// -0.194620 +0xbe474a6e +// -0.560995 +0xbf0f9d5a +// -0.093068 +0xbdbe9a2f +// 0.280023 +0x3e8f5f29 +// 0.577764 +0x3f13e85c +// -0.102653 +0xbdd23b8d +// -0.245464 +0xbe7b5aee +// 0.121310 +0x3df8718b +// -0.177847 +0xbe361d97 +// 0.318794 +0x3ea338fb +// -0.483766 +0xbef7b02b +// -0.311510 +0xbe9f7e47 +// -0.117492 +0xbdf09fb7 +// -0.077106 +0xbd9de9b2 +// -0.172661 +0xbe30cdf3 +// -0.252296 +0xbe812cf3 +// -0.478872 +0xbef52eb4 +// 0.009538 +0x3c1c44a5 +// 0.286939 +0x3e92e9a3 +// -0.377285 +0xbec12b8f +// 0.114153 +0x3de9c920 +// -0.066526 +0xbd883ef2 +// 0.229467 +0x3e6af981 +// 0.355981 +0x3eb64333 +// -0.042536 +0xbd2e3ab3 +// 0.674585 +0x3f2cb19c +// -0.141176 +0xbe109078 +// 0.173547 +0x3e31b633 +// -0.223943 +0xbe655160 +// 0.079482 +0x3da2c7b3 +// -0.489667 +0xbefab59f +// -0.354144 +0xbeb5525e +// -0.050167 +0xbd4d7c4e +// -0.218941 +0xbe603220 +// 0.054318 +0x3d5e7c3a +// 0.778830 +0x3f476168 +// 0.220323 +0x3e619c55 +// 0.059405 +0x3d73531e +// -0.355819 +0xbeb62dea +// -0.045204 +0xbd392818 +// -0.175938 +0xbe34290c +// -0.054106 +0xbd5d9dc5 +// 0.154899 +0x3e1e9ddb +// 0.064624 +0x3d84596f +// -0.026022 +0xbcd52c9f +// -0.260148 +0xbe853227 +// 0.099860 +0x3dcc836d +// 0.185875 +0x3e3e55fb +// -0.061003 +0xbd79ddf7 +// 0.171766 +0x3e2fe370 +// 0.843710 +0x3f57fd64 +// -0.205858 +0xbe52cc4f +// -0.267405 +0xbe88e940 +// 0.404669 +0x3ecf30c5 +// 0.647725 +0x3f25d14b +// 0.047932 +0x3d4453e4 +// 0.233732 +0x3e6f5791 +// 0.353829 +0x3eb5290d +// -0.327351 +0xbea79a81 +// -0.112879 +0xbde72d52 +// -0.031155 +0xbcff3846 +// -0.023307 +0xbcbeedf6 +// 0.264454 +0x3e876683 +// -0.207900 +0xbe54e3d1 +// -0.401763 +0xbecdb3d9 +// 0.238903 +0x3e74a314 +// -0.378278 +0xbec1adb3 +// -0.346278 +0xbeb14b56 +// -0.045456 +0xbd3a3031 +// 0.020225 +0x3ca5af8a +// -0.579288 +0xbf144c37 +// 0.326126 +0x3ea6f9f3 +// -0.174198 +0xbe3260f0 +// 0.159676 +0x3e23821e +// -0.135129 +0xbe0a5f3b +// -0.396972 +0xbecb3fe6 +// 0.558290 +0x3f0eec18 +// -0.495277 +0xbefd94e9 +// 0.052863 +0x3d5886c7 +// -0.359521 +0xbeb81331 +// -0.202697 +0xbe4f8fb4 +// 0.083999 +0x3dac07a1 +// 0.004050 +0x3b84b49e +// 0.236928 +0x3e729d31 +// 0.145376 +0x3e14dd89 +// 0.167180 +0x3e2b314b +// 0.558290 +0x3f0eec18 +// 0.776883 +0x3f46e1d3 +// 0.197934 +0x3e4aaf2d +// -0.021126 +0xbcad110b +// 0.143680 +0x3e1320e8 +// 0.081006 +0x3da5e69f +// -0.033570 +0xbd098042 +// -0.001618 +0xbad423ac +// -0.094687 +0xbdc1eb01 +// -0.058099 +0xbd6df8d6 +// -0.066812 +0xbd88d4f1 +// -0.495277 +0xbefd94e9 +// 0.197934 +0x3e4aaf2d +// 0.824407 +0x3f530c50 +// 0.018742 +0x3c998867 +// -0.127463 +0xbe0285bb +// -0.071863 +0xbd932d07 +// 0.029781 +0x3cf3f685 +// 0.001436 +0x3abc320d +// 0.083999 +0x3dac07e0 +// 0.051541 +0x3d531ccc +// 0.059271 +0x3d72c68f +// 0.052863 +0x3d5886c7 +// -0.021126 +0xbcad110b +// 0.018742 +0x3c998867 +// 0.998000 +0x3f7f7ce7 +// 0.013605 +0x3c5ee624 +// 0.007670 +0x3bfb56c6 +// -0.003179 +0xbb505036 +// -0.000153 +0xb920b1ec +// -0.008966 +0xbc12e473 +// -0.005501 +0xbbb44361 +// -0.006326 +0xbbcf4cab +// -0.359521 +0xbeb81331 +// 0.143680 +0x3e1320e8 +// -0.127463 +0xbe0285bb +// 0.013605 +0x3c5ee624 +// 0.907474 +0x3f68503e +// -0.052166 +0xbd55ab85 +// 0.021618 +0x3cb117bf +// 0.001042 +0x3a889c74 +// 0.060975 +0x3d79c11b +// 0.037414 +0x3d193f20 +// 0.043025 +0x3d303b1a +// -0.202697 +0xbe4f8fb4 +// 0.081006 +0x3da5e69f +// -0.071863 +0xbd932d07 +// 0.007670 +0x3bfb56c6 +// -0.052166 +0xbd55ab85 +// 0.970589 +0x3f78788a +// 0.012188 +0x3c47b031 +// 0.000588 +0x3a1a0aa2 +// 0.034378 +0x3d0ccf76 +// 0.021094 +0x3cacccad +// 0.024257 +0x3cc6b765 +// 0.083999 +0x3dac07a1 +// -0.033570 +0xbd098042 +// 0.029781 +0x3cf3f685 +// -0.003179 +0xbb505036 +// 0.021618 +0x3cb117bf +// 0.012188 +0x3c47b031 +// 0.994949 +0x3f7eb4fe +// -0.000244 +0xb97f57fa +// -0.014246 +0xbc69694d +// -0.008741 +0xbc0f37fd +// -0.010052 +0xbc24b2f0 +// 0.004050 +0x3b84b49e +// -0.001618 +0xbad423ac +// 0.001436 +0x3abc320d +// -0.000153 +0xb920b1ec +// 0.001042 +0x3a889c74 +// 0.000588 +0x3a1a0aa2 +// -0.000244 +0xb97f57fa +// 0.999988 +0x3f7fff3b +// -0.000687 +0xba340e4e +// -0.000421 +0xb9dcf5f3 +// -0.000485 +0xb9fe19d6 +// 0.236928 +0x3e729d31 +// -0.094687 +0xbdc1eb01 +// 0.083999 +0x3dac07e0 +// -0.008966 +0xbc12e473 +// 0.060975 +0x3d79c11b +// 0.034378 +0x3d0ccf76 +// -0.014246 +0xbc69694d +// -0.000687 +0xba340e4e +// 0.959817 +0x3f75b68e +// -0.024656 +0xbcc9fb4f +// -0.028354 +0xbce8467d +// 0.145376 +0x3e14dd89 +// -0.058099 +0xbd6df8d6 +// 0.051541 +0x3d531ccc +// -0.005501 +0xbbb44361 +// 0.037414 +0x3d193f20 +// 0.021094 +0x3cacccad +// -0.008741 +0xbc0f37fd +// -0.000421 +0xb9dcf5f3 +// -0.024656 +0xbcc9fb4f +// 0.984871 +0x3f7c2088 +// -0.017398 +0xbc8e858d +// 0.167180 +0x3e2b314b +// -0.066812 +0xbd88d4f1 +// 0.059271 +0x3d72c68f +// -0.006326 +0xbbcf4cab +// 0.043025 +0x3d303b1a +// 0.024257 +0x3cc6b765 +// -0.010052 +0xbc24b2f0 +// -0.000485 +0xb9fe19d6 +// -0.028354 +0xbce8467d +// -0.017398 +0xbc8e858d +// 0.979993 +0x3f7ae0d2 +// -0.483895 +0xbef7c10d +// -0.611831 +0xbf1ca0f0 +// 0.028666 +0x3cead591 +// 0.050355 +0x3d4e4156 +// -0.284991 +0xbe91ea51 +// -0.176311 +0xbe348afd +// 0.335420 +0x3eabbc34 +// 0.127126 +0x3e022d6f +// -0.290500 +0xbe94bc6b +// 0.099974 +0x3dccbf30 +// 0.229768 +0x3e6b483b +// 0.362419 +0x3eb98ef6 +// -0.152646 +0xbe1c4f43 +// -0.144908 +0xbe1462a6 +// -0.411982 +0xbed2ef43 +// -0.296541 +0xbe97d437 +// -0.290300 +0xbe94a23d +// -0.297450 +0xbe984b5c +// -0.323754 +0xbea5c30b +// -0.488205 +0xbef9f5fd +// -0.223014 +0xbe645dc8 +// -0.032275 +0xbd043314 +// 0.477761 +0x3ef49d1b +// -0.391082 +0xbec83bdf +// -0.249203 +0xbe7f2f05 +// -0.164581 +0xbe288808 +// 0.227414 +0x3e68df20 +// -0.148689 +0xbe18420b +// 0.453158 +0x3ee8044b +// 0.153972 +0x3e1daad6 +// 0.196308 +0x3e4904df +// 0.199301 +0x3e4c1577 +// -0.385315 +0xbec54811 +// 0.339968 +0x3eae1048 +// -0.247223 +0xbe7d27f8 +// -0.015454 +0xbc7d31d0 +// 0.868671 +0x3f5e6141 +// -0.051860 +0xbd546ac7 +// -0.057290 +0xbd6aa928 +// -0.158944 +0xbe22c235 +// -0.125139 +0xbe002489 +// -0.109504 +0xbde0438c +// -0.090758 +0xbdb9df46 +// -0.036756 +0xbd168d4c +// -0.099447 +0xbdcbaaa6 +// -0.292085 +0xbe958c2f +// 0.276351 +0x3e8d7de4 +// -0.081913 +0xbda7c214 +// 0.833353 +0x3f5556a6 +// -0.062067 +0xbd7e39fb +// -0.187395 +0xbe3fe498 +// -0.131531 +0xbe06b022 +// -0.218111 +0xbe5f588d +// -0.113692 +0xbde8d728 +// 0.102328 +0x3dd19138 +// 0.089243 +0x3db6c506 +// -0.317549 +0xbea295ce +// -0.094150 +0xbdc0d18e +// -0.110299 +0xbde1e49a +// -0.068471 +0xbd8c3a8d +// 0.917324 +0x3f6ad5c0 +// -0.048132 +0xbd4525b2 +// -0.072055 +0xbd939163 +// -0.118134 +0xbdf1f06e +// -0.045087 +0xbd38ad27 +// -0.022345 +0xbcb70c05 +// 0.303273 +0x3e9b469d +// 0.161219 +0x3e25169c +// 0.656465 +0x3f280e18 +// -0.017160 +0xbc8c934f +// -0.099896 +0xbdcc9619 +// 0.075990 +0x3d9ba0b9 +// 0.569247 +0x3f11ba2c +// -0.200744 +0xbe4d8fba +// -0.123764 +0xbdfd77c4 +// -0.194501 +0xbe472b35 +// 0.132481 +0x3e07a910 +// 0.250061 +0x3e800803 +// -0.064570 +0xbd843d3a +// 0.304510 +0x3e9be8b7 +// -0.068882 +0xbd8d1237 +// -0.082732 +0xbda96f99 +// 0.002030 +0x3b050ed3 +// -0.267173 +0xbe88cad6 +// 0.850033 +0x3f599bcc +// -0.121738 +0xbdf951a2 +// -0.131629 +0xbe06c9bc +// 0.053815 +0x3d5c6ca0 +// 0.023513 +0x3cc09e37 +// -0.413644 +0xbed3c930 +// 0.310022 +0x3e9ebb45 +// -0.140443 +0xbe0fd05d +// -0.205347 +0xbe52469b +// -0.089028 +0xbdb65492 +// -0.274059 +0xbe8c516b +// -0.195868 +0xbe489184 +// 0.715608 +0x3f373210 +// -0.163055 +0xbe26f7fb +// 0.101292 +0x3dcf7208 +// 0.154232 +0x3e1def0c +// -0.012235 +0xbc4874ef +// 0.310172 +0x3e9eceeb +// -0.037276 +0xbd18aea5 +// -0.073797 +0xbd972303 +// 0.013883 +0x3c6376c9 +// -0.227000 +0xbe6872b8 +// -0.119467 +0xbdf4aadb +// -0.099271 +0xbdcb4e9b +// 0.890450 +0x3f63f482 +// 0.065353 +0x3d85d7b2 +// 0.306537 +0x3e9cf272 +// 0.027109 +0x3cde1340 +// -0.338543 +0xbead558c +// -0.032086 +0xbd036c42 +// 0.113286 +0x3de8029f +// -0.004011 +0xbb836e00 +// 0.094379 +0x3dc149bb +// 0.040885 +0x3d27768b +// 0.114557 +0x3dea9cb2 +// 0.052051 +0x3d553361 +// 0.866255 +0x3f5dc2e3 +// -0.170629 +0xbe2eb969 +// 0.837138 +0x3f564eb1 +// -0.207696 +0xbe54ae30 +// 0.102304 +0x3dd184d0 +// -0.013437 +0xbc5c25f0 +// -0.089953 +0xbdb8390a +// 0.286540 +0x3e92b558 +// -0.106983 +0xbddb19eb +// 0.128361 +0x3e037130 +// -0.175783 +0xbe34007d +// 0.259389 +0x3e84ceb0 +// -0.232590 +0xbe6e2bf8 +// -0.028791 +0xbcebda65 +// -0.499638 +0xbeffd08a +// -0.266664 +0xbe88882c +// -0.005324 +0xbbae718d +// -0.499913 +0xbefff48d +// -0.467680 +0xbeef73be +// -0.093572 +0xbdbfa2c4 +// -0.341230 +0xbeaeb5b8 +// -0.174546 +0xbe32bc1d +// 0.000001 +0x35922cd5 +// 0.359638 +0x3eb82284 +// 0.243101 +0x3e78ef6e +// 0.084040 +0x3dac1d42 +// -0.297514 +0xbe9853b6 +// -0.443867 +0xbee34287 +// 0.175394 +0x3e339a62 +// -0.483604 +0xbef79ae2 +// -0.378117 +0xbec1988f +// 0.255705 +0x3e82ebd1 +// 0.204413 +0x3e515196 +// 0.064727 +0x3d848fab +// 0.535957 +0x3f093478 +// -0.034862 +0xbd0ecb72 +// 0.247242 +0x3e7d2d1a +// -0.399684 +0xbecca36f +// 0.344504 +0x3eb062c5 +// -0.355363 +0xbeb5f233 +// 0.283311 +0x3e910e1e +// -0.248168 +0xbe7e1fd7 +// -0.077896 +0xbd9f882e +// -0.272044 +0xbe8b496a +// 0.154156 +0x3e1ddaf8 +// -0.450088 +0xbee671f5 +// -0.150055 +0xbe19a7fd +// -0.062151 +0xbd7e9205 +// -0.622927 +0xbf1f7825 +// -0.063956 +0xbd82fb74 +// 0.349651 +0x3eb3057f +// 0.352945 +0x3eb4b525 +// -0.220619 +0xbe61ea13 +// -0.124157 +0xbdfe4623 +// 0.169937 +0x3e2e03dd +// 0.197789 +0x3e4a894e +// 0.238599 +0x3e745358 +// -0.373947 +0xbebf760b +// -0.439640 +0xbee11887 +// 0.139410 +0x3e0ec17a +// -0.423528 +0xbed8d89e +// -0.163499 +0xbe276c34 +// 0.275716 +0x3e8d2a95 +// 0.096376 +0x3dc560e9 +// 0.247940 +0x3e7de3f6 +// -0.004716 +0xbb9a89f6 +// 0.487446 +0x3ef99288 +// -0.175352 +0xbe338f81 +// -0.020676 +0xbca961b2 +// 0.409737 +0x3ed1c90d +// 0.036703 +0x3d1655e2 +// 0.094476 +0x3dc17cdc +// 0.073720 +0x3d96fa52 +// -0.367950 +0xbebc63ec +// 0.249185 +0x3e7f2a6e +// -0.097676 +0xbdc80a84 +// -0.162631 +0xbe2688de +// 0.742807 +0x3f3e2898 +// -0.165152 +0xbe291dba +// -0.157736 +0xbe218589 +// 0.070339 +0x3d900e1a +// 0.454982 +0x3ee8f366 +// 0.194510 +0x3e472db2 +// -0.159218 +0xbe230a0f +// -0.007027 +0xbbe643e8 +// -0.726416 +0xbf39f663 +// -0.059665 +0xbd7462f2 +// 0.324617 +0x3ea63438 +// 0.189836 +0x3e426455 +// -0.282295 +0xbe9088ec +// -0.157965 +0xbe21c185 +// -0.036519 +0xbd159568 +// -0.147731 +0xbe1746b3 +// 0.325442 +0x3ea6a058 +// -0.107540 +0xbddc3dfa +// -0.146681 +0xbe163371 +// -0.049783 +0xbd4be9b4 +// 0.833624 +0x3f55685f +// -0.179460 +0xbe37c460 +// -0.059944 +0xbd7587bd +// 0.059603 +0x3d74228a +// 0.158599 +0x3e2267dd +// -0.021829 +0xbcb2d346 +// -0.175277 +0xbe337bba +// 0.238998 +0x3e74bbf5 +// -0.330631 +0xbea94887 +// 0.006926 +0x3be2f794 +// 0.353275 +0x3eb4e07c +// 0.083377 +0x3daac15c +// 0.793404 +0x3f4b1c8d +// 0.111195 +0x3de3ba60 +// 0.315314 +0x3ea170d0 +// 0.017011 +0x3c8b5a66 +// -0.516957 +0xbf045749 +// 0.042273 +0x3d2d26d7 +// 0.539288 +0x3f0a0eca +// 0.533193 +0x3f087f58 +// -0.165664 +0xbe29a3cf +// -0.014916 +0xbc746035 +// -0.061336 +0xbd7b3ba4 +// 0.020467 +0x3ca7a960 +// 0.155826 +0x3e1f90e5 +// -0.402246 +0xbecdf333 +// 0.189344 +0x3e41e365 +// -0.106590 +0xbdda4c1c +// -0.500109 +0xbf000728 +// -0.358224 +0xbeb7691f +// -0.392808 +0xbec91e29 +// -0.241954 +0xbe77c2c8 +// -0.041791 +0xbd2b2cc0 +// 0.309590 +0x3e9e8293 +// -0.182269 +0xbe3aa4cd +// 0.262483 +0x3e86642d +// 0.066661 +0x3d88859c +// -0.225919 +0xbe67574f +// 0.546870 +0x3f0bffa4 +// -0.207123 +0xbe54181b +// -0.146343 +0xbe15daed +// 0.516805 +0x3f044d51 +// -0.470484 +0xbef0e34b +// 0.103315 +0x3dd396d7 +// 0.192662 +0x3e454936 +// 0.163226 +0x3e27249e +// 0.135117 +0x3e0a5c23 +// -0.340167 +0xbeae2a67 +// -0.290123 +0xbe948af4 +// -0.265341 +0xbe87dabe +// -0.149719 +0xbe194ffc +// -0.274488 +0xbe8c89bc +// 0.350411 +0x3eb36907 +// 0.124020 +0x3dfdfe17 +// 0.273744 +0x3e8c282b +// -0.595081 +0xbf185737 +// -0.180770 +0xbe391bb3 +// 0.179015 +0x3e374fd6 +// -0.002195 +0xbb0fd937 +// 0.191033 +0x3e439e07 +// 0.048566 +0x3d46ed4d +// -0.175986 +0xbe3435cb +// 0.455713 +0x3ee9532c +// 0.169139 +0x3e2d32bb +// 0.005194 +0x3baa3288 +// -0.553396 +0xbf0dab5f +// -0.240560 +0xbe765545 +// -0.070264 +0xbd8fe6a3 +// 0.569921 +0x3f11e653 +// -0.039956 +0xbd23a8e2 +// -0.574824 +0xbf1327a6 +// 0.241157 +0x3e76f1bc +// -0.047751 +0xbd43969d +// -0.168684 +0xbe2cbb6e +// -0.358646 +0xbeb7a06d +// 0.398171 +0x3ecbdd0e +// -0.218729 +0xbe5ffa8d +// -0.005235 +0xbbab8d83 +// 0.435104 +0x3edec5f1 +// 0.233962 +0x3e6f93b8 +// -0.361632 +0xbeb927d4 +// -0.227955 +0xbe696cee +// 0.166461 +0x3e2a74dc +// -0.432892 +0xbedda409 +// 0.588830 +0x3f16bd91 +// 0.028142 +0x3ce68a09 +// 0.228306 +0x3e69c8fa +// 0.152381 +0x3e1c09a3 +// 0.155227 +0x3e1ef3d0 +// -0.159386 +0xbe233614 +// -0.360276 +0xbeb8760f +// 0.485954 +0x3ef8cf07 +// -0.523481 +0xbf0602d5 +// -0.494427 +0xbefd257d +// -0.206236 +0xbe532f9b +// 0.041565 +0x3d2a4007 +// 0.060393 +0x3d775e74 +// -0.138266 +0xbe0d957b +// -0.164970 +0xbe28edc7 +// 0.255558 +0x3e82d87a +// -0.292406 +0xbe95b630 +// 0.017521 +0x3c8f8822 +// -0.268462 +0xbe8973da +// -0.282189 +0xbe907b1a +// -0.156615 +0xbe205fb7 +// 0.373897 +0x3ebf6f5e +// 0.399398 +0x3ecc7df2 +// -0.291598 +0xbe954c50 +// -0.537574 +0xbf099e74 +// 0.262775 +0x3e868a63 +// -0.047474 +0xbd42743c +// 0.135893 +0x3e0b276e +// 0.246303 +0x3e7c36dd +// -0.048471 +0xbd4689cf +// 0.043831 +0x3d33881b +// -0.265494 +0xbe87eed0 +// -0.320965 +0xbea45589 +// -0.005448 +0xbbb28598 +// -0.007473 +0xbbf4e1d3 +// -0.339804 +0xbeadfad4 +// -0.315384 +0xbea17a02 +// -0.315645 +0xbea19c48 +// 0.549533 +0x3f0cae38 +// -0.453415 +0xbee82607 +// -0.495519 +0xbefdb4b1 +// -0.186517 +0xbe3efe67 +// -0.021342 +0xbcaed5bf +// 0.422258 +0x3ed83233 +// -0.159256 +0xbe2313ed +// 0.237969 +0x3e73ae05 +// -0.052169 +0xbd55aeb3 +// -0.560207 +0xbf0f69bc +// 0.217092 +0x3e5e4d4e +// -0.208021 +0xbe550391 +// -0.227965 +0xbe696f9d +// 0.171899 +0x3e30064d +// -0.140309 +0xbe0fad2e +// 0.437051 +0x3edfc522 +// -0.016600 +0xbc87fcb5 +// -0.073673 +0xbd96e1db +// -0.390434 +0xbec7e6f6 +// -0.260269 +0xbe8541f0 +// -0.160529 +0xbe2461cf +// -0.465401 +0xbeee4905 +// -0.488440 +0xbefa14cc +// -0.230060 +0xbe6b94e5 +// -0.816500 +0xbf510623 +// -0.577250 +0xbf13c6ad +// -0.010490 +0xbc2bdf22 +// 0.408245 +0x3ed1057d +// -0.564409 +0xbf107d22 +// -0.717480 +0xbf37accb +// 0.408245 +0x3ed1057d +// -0.590105 +0xbf171123 +// 0.696500 +0x3f324dce +// -0.606620 +0xbf1b4b70 +// 0.734435 +0x3f3c03f2 +// -0.302194 +0xbe9ab931 +// 0.035813 +0x3d12b112 +// 0.003638 +0x3b6e7023 +// 0.000362 +0x39bdeee4 +// 0.000035 +0x3812d571 +// -0.000003 +0xb64f67c3 +// 0.300479 +0x3e99d85a +// -0.142597 +0xbe12050a +// -0.936447 +0xbf6fbb04 +// 0.110980 +0x3de3493d +// 0.011274 +0x3c38b835 +// 0.001123 +0x3a93247b +// 0.000108 +0x38e38197 +// -0.000010 +0xb720ada6 +// 0.300479 +0x3e99d85a +// 0.270885 +0x3e8ab164 +// 0.162378 +0x3e264686 +// 0.895328 +0x3f653430 +// 0.090956 +0x3dba4736 +// 0.009057 +0x3c146251 +// 0.000875 +0x3a656d04 +// -0.000077 +0xb8a208b9 +// 0.300479 +0x3e99d85a +// 0.270885 +0x3e8ab164 +// 0.032797 +0x3d06565d +// -0.277647 +0xbe8e27c1 +// 0.866405 +0x3f5dccbc +// 0.086269 +0x3db0adf8 +// 0.008337 +0x3c089670 +// -0.000736 +0xba40eeb9 +// 0.300479 +0x3e99d85a +// 0.270885 +0x3e8ab164 +// 0.032797 +0x3d06565d +// -0.164090 +0xbe28071a +// -0.326529 +0xbea72ec5 +// 0.833768 +0x3f5571d8 +// 0.080571 +0x3da50294 +// -0.007113 +0xbbe91468 +// 0.300479 +0x3e99d85a +// 0.270885 +0x3e8ab164 +// 0.032797 +0x3d06565d +// -0.164090 +0xbe28071a +// -0.211587 +0xbe58aa59 +// -0.388668 +0xbec6ff6f +// 0.779593 +0x3f479361 +// -0.068824 +0xbd8cf3bf +// 0.300479 +0x3e99d85a +// 0.270885 +0x3e8ab164 +// 0.032797 +0x3d06565d +// -0.164090 +0xbe28071a +// -0.211587 +0xbe58aa59 +// -0.270409 +0xbe8a730d +// -0.496890 +0xbefe685d +// -0.665990 +0xbf2a7e57 +// 0.300479 +0x3e99d85a +// 0.270885 +0x3e8ab164 +// 0.032797 +0x3d06565d +// -0.164090 +0xbe28071a +// -0.211587 +0xbe58aa59 +// -0.270409 +0xbe8a730d +// -0.372524 +0xbebebb68 +// 0.742744 +0x3f3e247c +// -0.545362 +0xbf0b9cd9 +// 0.716108 +0x3f3752df +// -0.423055 +0xbed89ab4 +// 0.102114 +0x3dd1212d +// 0.018829 +0x3c9a3f68 +// 0.003353 +0x3b5bbf4d +// 0.000592 +0x3a1b3927 +// 0.000104 +0x38d974e4 +// 0.000018 +0x37961c62 +// 0.000003 +0x3648de89 +// -0.000000 +0xb4f57bd9 +// 0.265062 +0x3e87b63f +// -0.345706 +0xbeb10068 +// -0.874155 +0xbf5fc897 +// 0.210997 +0x3e580fa4 +// 0.038906 +0x3d1f5c33 +// 0.006928 +0x3be307db +// 0.001224 +0x3aa05e39 +// 0.000214 +0x3960aa03 +// 0.000037 +0x381b1613 +// 0.000006 +0x36cf86e9 +// -0.000001 +0xb57d9ec7 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// 0.225263 +0x3e66ab37 +// 0.899841 +0x3f665bfc +// 0.165924 +0x3e29e7f5 +// 0.029548 +0x3cf20e0a +// 0.005218 +0x3baafb0f +// 0.000914 +0x3a6f881a +// 0.000158 +0x3925596e +// 0.000026 +0x37dd42ad +// -0.000004 +0xb68733b6 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.284877 +0xbe91db72 +// 0.883963 +0x3f624b62 +// 0.157416 +0x3e2131a7 +// 0.027799 +0x3ce3b9c8 +// 0.004868 +0x3b9f837f +// 0.000840 +0x3a5c39b5 +// 0.000141 +0x3913589d +// -0.000021 +0xb7b412a2 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.314833 +0xbea131bb +// 0.870007 +0x3f5eb8c3 +// 0.153637 +0x3e1d5308 +// 0.026904 +0x3cdc666a +// 0.004643 +0x3b98248b +// 0.000777 +0x3a4b9695 +// -0.000119 +0xb8f8ce7e +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.122537 +0xbdfaf47d +// -0.337329 +0xbeacb664 +// 0.853551 +0x3f5a8255 +// 0.149470 +0x3e190eca +// 0.025795 +0x3cd34ff8 +// 0.004315 +0x3b8d61f9 +// -0.000659 +0xba2cc8ea +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.122537 +0xbdfaf47d +// -0.143934 +0xbe13637c +// -0.364597 +0xbebaac70 +// 0.831001 +0x3f54bc7f +// 0.143411 +0x3e12da3a +// 0.023988 +0x3cc48251 +// -0.003664 +0xbb7027b6 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.122537 +0xbdfaf47d +// -0.143934 +0xbe13637c +// -0.168903 +0xbe2cf4fb +// -0.402599 +0xbece217c +// 0.797390 +0x3f4c21bb +// 0.133377 +0x3e089410 +// -0.020375 +0xbca6e9d5 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.122537 +0xbdfaf47d +// -0.143934 +0xbe13637c +// -0.168903 +0xbe2cf4fb +// -0.203520 +0xbe50677f +// -0.460300 +0xbeebac73 +// 0.741613 +0x3f3dda58 +// -0.113291 +0xbde80545 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.122537 +0xbdfaf47d +// -0.143934 +0xbe13637c +// -0.168903 +0xbe2cf4fb +// -0.203520 +0xbe50677f +// -0.255968 +0xbe830e3f +// -0.558899 +0xbf0f1408 +// -0.629931 +0xbf214321 +// 0.265062 +0x3e87b63f +// 0.202121 +0x3e4ef8d0 +// -0.027692 +0xbce2daf7 +// -0.087980 +0xbdb42f0e +// -0.122537 +0xbdfaf47d +// -0.143934 +0xbe13637c +// -0.168903 +0xbe2cf4fb +// -0.203520 +0xbe50677f +// -0.255968 +0xbe830e3f +// -0.345337 +0xbeb0d000 +// 0.768065 +0x3f449fe5 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefR1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefR1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..2a1341aacb067d100b69dbb49278a63a79f80223 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefR1_f32.txt @@ -0,0 +1,2890 @@ +W +1444 +// 0.871944 +0x3f5f37b8 +// -1.058248 +0xbf8774b0 +// -0.555447 +0xbf0e31cb +// 0.063142 +0x3d8150da +// -0.000000 +0xa3c80000 +// -0.000000 +0xa3700000 +// -0.155926 +0xbe1fab2d +// 0.000000 +0x0 +// 0.000000 +0x24000000 +// 1.000000 +0x3f800000 +// 0.000000 +0x25a80000 +// 0.000000 +0x26200000 +// -0.257262 +0xbe83b7d8 +// 1.000000 +0x3f800000 +// 0.000000 +0x0 +// -0.089185 +0xbdb6a669 +// 0.429027 +0x3edba97e +// 1.000000 +0x3f800000 +// -0.607091 +0xbf1b6a57 +// -1.155076 +0xbf93d985 +// -1.906691 +0xbff40e73 +// -0.262886 +0xbe869909 +// 0.000000 +0x23c00000 +// 0.000000 +0x24e00000 +// 0.312511 +0x3ea00181 +// 0.000000 +0x0 +// -0.000000 +0xa4900000 +// 0.005742 +0x3bbc2392 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.299543 +0xbe995da2 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.154529 +0xbe1e3ce0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.005523 +0xbbb4fbd5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.177458 +0x3e35b783 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbf800000 +// -0.000000 +0xa6000000 +// -0.000000 +0xa5200000 +// 0.314962 +0x3ea142af +// 1.000000 +0x3f800000 +// 0.000000 +0x24800000 +// 0.275567 +0x3e8d170f +// -0.628243 +0xbf20d487 +// 1.000000 +0x3f800000 +// -0.170904 +0xbe2f0178 +// 0.280822 +0x3e8fc7d9 +// 0.019754 +0x3ca1d2ea +// -0.146150 +0xbe15a862 +// -0.087514 +0xbdb33ac5 +// -0.199398 +0xbe4c2ef0 +// -0.207058 +0xbe540712 +// -0.552435 +0xbf0d6c5e +// -0.462658 +0xbeece18a +// -0.050703 +0xbd4fad97 +// -0.142592 +0xbe1203a3 +// -0.155897 +0xbe1fa374 +// -0.256970 +0xbe83919f +// -0.398864 +0xbecc37f7 +// 0.322414 +0x3ea51363 +// -1.000000 +0xbf800000 +// -0.000000 +0xa4f40000 +// 0.000000 +0x24a80000 +// -0.279903 +0xbe8f4f67 +// -1.000000 +0xbf800000 +// 0.000000 +0x24e10000 +// -0.338421 +0xbead4579 +// 0.013844 +0x3c62d390 +// 1.000000 +0x3f800000 +// 0.249266 +0x3e7f3f94 +// -0.786159 +0xbf4941b7 +// 0.032255 +0x3d041d62 +// 0.373562 +0x3ebf437b +// 0.054351 +0x3d5e9ec7 +// -0.443661 +0xbee32781 +// 0.254266 +0x3e822f2c +// -0.014028 +0xbc65d69d +// 0.133179 +0x3e086014 +// 0.060491 +0x3d77c4ee +// 0.271440 +0x3e8afa25 +// -0.361671 +0xbeb92ced +// -0.123486 +0xbdfce63d +// -0.033843 +0xbd0a9ece +// 0.025744 +0x3cd2e589 +// 1.190564 +0x3f986469 +// -1.346726 +0xbfac6180 +// -0.811950 +0xbf4fdbfa +// -0.051639 +0xbd53839d +// 0.840466 +0x3f5728c8 +// -1.705162 +0xbfda42c0 +// -0.918921 +0xbf6b3e6a +// 0.686115 +0x3f2fa53c +// 0.361338 +0x3eb9015a +// 0.000000 +0x25000000 +// 0.000000 +0x25100000 +// 0.000000 +0x22400000 +// -0.000000 +0xa4800000 +// 0.000000 +0x25400000 +// 0.000000 +0x24e00000 +// -0.000000 +0xa4a00000 +// 0.288321 +0x3e939edb +// 0.000000 +0x0 +// 0.000000 +0x24800000 +// 0.000000 +0x22000000 +// -0.000000 +0xa4000000 +// 0.000000 +0x25000000 +// 0.000000 +0x24a00000 +// -0.000000 +0xa4400000 +// -0.117843 +0xbdf15797 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa1a00000 +// 0.000000 +0x0 +// -0.000000 +0xa3c00000 +// -0.000000 +0xa3c00000 +// 0.000000 +0x23400000 +// -0.527943 +0xbf072747 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x24e00000 +// -0.000000 +0xa5600000 +// -0.000000 +0xa5000000 +// 0.000000 +0x24800000 +// -0.277313 +0xbe8dfbfc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa4e00000 +// -0.000000 +0xa4a00000 +// 0.000000 +0x24200000 +// 0.066572 +0x3d885721 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa3200000 +// 0.461321 +0x3eec3242 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa4800000 +// 0.562712 +0x3f100dea +// -0.230600 +0xbe6c226e +// 0.115073 +0x3debab80 +// 0.045965 +0x3d3c457f +// 0.174470 +0x3e32a82f +// 0.696607 +0x3f3254db +// -0.180701 +0xbe3909cb +// 0.257817 +0x3e84008f +// 0.000005 +0x36a33d3b +// -0.629727 +0xbf2135c3 +// 0.312280 +0x3e9fe32b +// 0.225395 +0x3e66cdda +// 0.045360 +0x3d39cb4f +// -0.483456 +0xbef78793 +// -0.110944 +0xbde336da +// 0.455002 +0x3ee8f602 +// 0.204837 +0x3e51c0d9 +// -0.179371 +0xbe37acea +// -0.794265 +0xbf4b54f8 +// 0.522366 +0x3f05b9c5 +// -0.098615 +0xbdc9f6e8 +// -0.011400 +0xbc3ac66b +// -0.163739 +0xbe27ab1b +// 0.244154 +0x3e7a0397 +// 0.311710 +0x3e9f9882 +// 0.226493 +0x3e67edc2 +// 0.069572 +0x3d8e7ba0 +// 0.000000 +0x24600000 +// 0.000000 +0x22800000 +// 0.000000 +0x241b8000 +// -0.000000 +0xa4380000 +// 0.000000 +0x24b80000 +// -0.106191 +0xbdd97ad5 +// -0.397479 +0xbecb8251 +// -0.048868 +0xbd482953 +// 0.000000 +0x0 +// 0.000000 +0x22400000 +// -0.000000 +0xa47ec000 +// 0.000000 +0x22400000 +// -0.000000 +0xa3e00000 +// -0.346070 +0xbeb1300f +// -0.137705 +0xbe0d0295 +// 0.413851 +0x3ed3e439 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x24860000 +// -0.000000 +0xa3800000 +// 0.000000 +0x23c00000 +// 0.200231 +0x3e4d0946 +// 0.354530 +0x3eb584ef +// 0.260957 +0x3e859c2c +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa3c00000 +// -0.000000 +0xa3000000 +// 0.556490 +0x3f0e7624 +// -0.046555 +0xbd3eb0b6 +// -0.559861 +0xbf0f530a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x24400000 +// 1.000000 +0x3f800000 +// -0.000000 +0xa5840000 +// 0.000000 +0x25de0000 +// -0.000000 +0xa5b58000 +// 0.000000 +0x25400000 +// 0.000000 +0x25dc0000 +// -0.000000 +0xa55c0000 +// 0.000000 +0x25a60000 +// 0.234970 +0x3e709c16 +// 1.000000 +0x3f800000 +// -0.000000 +0xa5e00000 +// 0.000000 +0x25500000 +// 0.000000 +0x25000000 +// -0.000000 +0xa5600000 +// -0.000000 +0xa5800000 +// -0.000000 +0xa5800000 +// -0.229137 +0xbe6aa2e4 +// 0.102563 +0x3dd20cc7 +// -1.000000 +0xbf800000 +// -0.000000 +0xa4000000 +// -0.000000 +0xa5400000 +// -0.000000 +0xa4e00000 +// 0.000000 +0x23800000 +// 0.000000 +0x25300000 +// -0.199534 +0xbe4c52a3 +// 0.294016 +0x3e96894f +// -0.842748 +0xbf57be5a +// -1.000000 +0xbf800000 +// 0.000000 +0x24c00000 +// 0.000000 +0x25480000 +// -0.000000 +0xa4400000 +// 0.000000 +0x26040000 +// -0.149784 +0xbe196102 +// 0.033061 +0x3d076a85 +// 0.108814 +0x3dded9a7 +// 0.597919 +0x3f191130 +// -1.000000 +0xbf800000 +// -0.000000 +0xa5a00000 +// -0.000000 +0xa4800000 +// -0.000000 +0xa5800000 +// 0.067865 +0x3d8afcfa +// 0.174853 +0x3e330cad +// 0.101859 +0x3dd09b39 +// 0.095225 +0x3dc3053e +// 0.141144 +0x3e108812 +// -1.000000 +0xbf800000 +// 0.000000 +0x25a00000 +// -0.000000 +0xa5400000 +// -0.096796 +0xbdc63d07 +// -0.024815 +0xbccb4805 +// 0.287158 +0x3e93065b +// 0.548040 +0x3f0c4c53 +// 0.131007 +0x3e0626ab +// 0.207521 +0x3e548083 +// -1.000000 +0xbf800000 +// 0.000000 +0x25000000 +// 0.037712 +0x3d1a7822 +// 0.411875 +0x3ed2e13a +// 0.278684 +0x3e8eafb9 +// 0.202258 +0x3e4f1cae +// -0.359712 +0xbeb82c2c +// -0.187727 +0xbe403b92 +// -0.334281 +0xbeab26f1 +// 1.000000 +0x3f800000 +// -1.054695 +0xbf870040 +// -1.247076 +0xbf9fa02c +// -2.113844 +0xc0074939 +// -0.113261 +0xbde7f5a2 +// -0.000000 +0xa3c00000 +// 0.000000 +0x23c00000 +// 0.383504 +0x3ec45aa8 +// 0.000000 +0x0 +// 0.000000 +0x25800000 +// 0.219758 +0x3e610836 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.084597 +0xbdad414b +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.098847 +0xbdca708e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.338532 +0x3ead5419 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.097925 +0xbdc88cf2 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.286099 +0x3e927ba0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.272319 +0xbe8b6d66 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.340599 +0xbeae62ef +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.000000 +0x3f800000 +// -0.000000 +0xa5b00000 +// -0.000000 +0xa3000000 +// -0.292228 +0xbe959eed +// 1.000000 +0x3f800000 +// -0.000000 +0xa50c0000 +// 0.215522 +0x3e5cb1c7 +// -0.205768 +0xbe52b4e4 +// 1.000000 +0x3f800000 +// 0.039212 +0x3d209c46 +// -0.259925 +0xbe8514e1 +// 0.482578 +0x3ef71483 +// -0.150899 +0xbe1a8548 +// 0.296124 +0x3e979d88 +// 0.138768 +0x3e0e1939 +// 0.184609 +0x3e3d0a3f +// -0.230309 +0xbe6bd63f +// -0.101973 +0xbdd0d76a +// -0.203473 +0xbe505b2e +// 0.594479 +0x3f182fc6 +// -0.001714 +0xbae0a699 +// -0.056274 +0xbd667f8e +// 0.179170 +0x3e377865 +// -0.167438 +0xbe2b74c2 +// 0.013801 +0x3c621c1b +// -0.037440 +0xbd195a74 +// 0.488554 +0x3efa23c3 +// 0.331887 +0x3ea9ed0f +// -0.409691 +0xbed1c308 +// 0.156180 +0x3e1fedba +// -0.168748 +0xbe2ccc59 +// 0.217539 +0x3e5ec287 +// -0.151646 +0xbe1b490c +// 1.000000 +0x3f800000 +// -0.000000 +0xa4400000 +// -0.000000 +0xa5f00000 +// -0.344451 +0xbeb05bec +// 1.000000 +0x3f800000 +// 0.000000 +0x24a00000 +// 0.110355 +0x3de2019a +// -0.129688 +0xbe04ccd8 +// 1.000000 +0x3f800000 +// -0.332990 +0xbeaa7da1 +// -0.258086 +0xbe8423cd +// -0.211549 +0xbe58a06d +// 0.084292 +0x3daca13b +// 0.059587 +0x3d741204 +// -0.188265 +0xbe40c8a6 +// -0.061298 +0xbd7b1370 +// -0.357570 +0xbeb7137a +// -0.110146 +0xbde193fb +// 0.560720 +0x3f0f8b58 +// -0.385087 +0xbec52a20 +// -0.003043 +0xbb477540 +// -0.179954 +0xbe3845c5 +// 0.001463 +0x3abfb824 +// -0.752849 +0xbf40bab9 +// -0.115805 +0xbded2b20 +// 0.320402 +0x3ea40bb8 +// 0.090358 +0x3db90d8c +// 0.451507 +0x3ee72bdd +// -0.179749 +0xbe381013 +// 0.071025 +0x3d917584 +// -0.301132 +0xbe9a2dfa +// 0.179450 +0x3e37c1b6 +// 0.349592 +0x3eb2fdb0 +// 1.000000 +0x3f800000 +// 0.000000 +0x24be0000 +// -0.000000 +0xa5980000 +// 0.437864 +0x3ee02fa5 +// 1.000000 +0x3f800000 +// -0.000000 +0xa5820000 +// -0.069596 +0xbd8e8865 +// 0.023941 +0x3cc41eec +// 1.000000 +0x3f800000 +// -0.158658 +0xbe227734 +// 0.398324 +0x3ecbf116 +// -0.034160 +0xbd0bebdf +// -0.177237 +0xbe357d98 +// 0.111426 +0x3de4336f +// 0.830433 +0x3f549743 +// -0.345301 +0xbeb0cb51 +// -0.196588 +0xbe494e55 +// -0.365452 +0xbebb1c91 +// -0.338792 +0xbead761f +// -0.375382 +0xbec03212 +// 0.048541 +0x3d46d28c +// -0.281487 +0xbe901f21 +// 0.212920 +0x3e5a07bd +// -0.051734 +0xbd53e770 +// 0.125669 +0x3e00af81 +// 0.051148 +0x3d518034 +// -0.262145 +0xbe8637d4 +// -0.007726 +0xbbfd2661 +// 0.088781 +0x3db5d2ed +// -0.140119 +0xbe0f7b4c +// -0.027556 +0xbce1bd02 +// 0.072401 +0x3d9446f6 +// -0.097604 +0xbdc7e46a +// -0.640185 +0xbf23e327 +// -1.211809 +0xbf9b1c90 +// 0.307088 +0x3e9d3aa7 +// -0.386280 +0xbec5c68e +// -0.155922 +0xbe1fa9ec +// -0.018845 +0xbc9a61da +// -0.260624 +0xbe85707e +// -0.204313 +0xbe51375d +// 0.107503 +0x3ddc2a5a +// 0.000000 +0x24800000 +// -0.000000 +0xa1000000 +// -0.000000 +0xa2000000 +// 0.000000 +0x22d80000 +// 0.000000 +0x20c00000 +// 0.000000 +0x23080000 +// 0.000000 +0x23400000 +// -0.026064 +0xbcd58339 +// 0.000000 +0x0 +// 0.000000 +0x22600000 +// -0.000000 +0xa2000000 +// -0.000000 +0xa1400000 +// -0.000000 +0x9fa00000 +// -0.000000 +0xa2100000 +// -0.000000 +0xa1d00000 +// 0.167423 +0x3e2b7101 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x23e80000 +// 0.000000 +0x23980000 +// -0.000000 +0x9f800000 +// 0.000000 +0x23900000 +// 0.000000 +0x23200000 +// -0.031021 +0xbcfe1f2d +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa2180000 +// -0.000000 +0x9f000000 +// -0.000000 +0xa1900000 +// -0.000000 +0xa1b00000 +// -0.067277 +0xbd89c8c7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa0400000 +// -0.000000 +0xa2800000 +// -0.000000 +0xa1c00000 +// 0.042954 +0x3d2ff0ab +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x22300000 +// 0.000000 +0x21b00000 +// 0.197335 +0x3e4a1229 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x22a00000 +// -0.663543 +0xbf29ddf1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.101874 +0xbdd0a385 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.266394 +0x3e8864ca +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.380236 +0xbec2ae4d +// -0.256675 +0xbe836add +// 0.386276 +0x3ec5c604 +// -0.034640 +0xbd0de31a +// 0.347004 +0x3eb1aa7b +// -0.054556 +0xbd5f7652 +// -0.692081 +0xbf312c34 +// 0.191743 +0x3e44585a +// 0.298260 +0x3e98b57f +// -0.850945 +0xbf59d784 +// 0.069508 +0x3d8e5a0e +// 0.217955 +0x3e5f2f85 +// -0.221813 +0xbe6322da +// -0.301383 +0xbe9a4eea +// 0.277954 +0x3e8e4fec +// 0.079161 +0x3da21f4a +// -0.033536 +0xbd095d8a +// 0.338126 +0x3ead1ee4 +// -0.718664 +0xbf37fa58 +// -0.231295 +0xbe6cd8a6 +// 0.021714 +0x3cb1e18e +// -0.446517 +0xbee49dea +// -0.226236 +0xbe67aa69 +// 0.423076 +0x3ed89d63 +// -0.091353 +0xbdbb1761 +// 0.072319 +0x3d941bba +// -0.132122 +0xbe074ae4 +// -0.000000 +0xa3d10000 +// -0.000000 +0xa35b4800 +// 0.000000 +0x23d44000 +// 0.000000 +0x239c8000 +// 0.000000 +0x247ce000 +// -0.178229 +0xbe36818e +// 0.575454 +0x3f1350f7 +// 0.497753 +0x3efed980 +// 0.000000 +0x0 +// 0.000000 +0x23cc8000 +// 0.000000 +0x24090000 +// -0.000000 +0xa3938000 +// 0.000000 +0x248b0000 +// -0.146505 +0xbe160562 +// -0.080253 +0xbda45be4 +// 0.267442 +0x3e88ee23 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa456c000 +// 0.000000 +0x24206000 +// -0.000000 +0xa3ce8000 +// 0.289938 +0x3e9472d1 +// 0.054541 +0x3d5f668c +// -0.278406 +0xbe8e8b2c +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa49a4000 +// 0.000000 +0x24950000 +// 0.120804 +0x3df767e5 +// -0.102533 +0xbdd1fcd3 +// -0.443203 +0xbee2eb7d +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x248b0000 +// -0.268960 +0xbe89b52c +// 0.235045 +0x3e70afaa +// 0.006868 +0x3be110f9 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.130710 +0x3e05d8f5 +// 0.117990 +0x3df1a4d4 +// 0.028153 +0x3ce6a136 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.191387 +0x3e43fafc +// 0.515219 +0x3f03e56c +// 0.043372 +0x3d31a658 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.000000 +0x3f800000 +// -0.000000 +0xa5600000 +// -0.000000 +0xa4a00000 +// 0.000000 +0x24800000 +// 0.000000 +0x25100000 +// 0.000000 +0x24800000 +// -0.000000 +0xa58c0000 +// -0.000000 +0xa5980000 +// -0.225651 +0xbe671113 +// 1.000000 +0x3f800000 +// -0.000000 +0xa5000000 +// 0.000000 +0x25a00000 +// 0.000000 +0x25080000 +// -0.000000 +0xa4c00000 +// 0.000000 +0x25300000 +// 0.000000 +0x25400000 +// 0.265588 +0x3e87fb2a +// 0.209984 +0x3e570618 +// -1.000000 +0xbf800000 +// -0.000000 +0xa4c00000 +// 0.000000 +0x24100000 +// -0.000000 +0xa4200000 +// -0.000000 +0xa5000000 +// -0.000000 +0xa5a40000 +// 0.060765 +0x3d78e47a +// 0.198937 +0x3e4bb62d +// 0.115912 +0x3ded6314 +// 1.000000 +0x3f800000 +// 0.000000 +0x24e00000 +// -0.000000 +0xa4c00000 +// -0.000000 +0xa5a00000 +// 0.000000 +0x0 +// -0.261411 +0xbe85d7a7 +// 0.038387 +0x3d1d3bdf +// -0.243386 +0xbe793a31 +// 0.008806 +0x3c104802 +// 1.000000 +0x3f800000 +// 0.000000 +0x25500000 +// -0.000000 +0xa5400000 +// 0.000000 +0x26100000 +// 0.343015 +0x3eaf9fa2 +// -0.340532 +0xbeae5a3d +// 0.137449 +0x3e0cbf79 +// -0.093006 +0xbdbe79af +// -0.030091 +0xbcf681f7 +// -1.000000 +0xbf800000 +// 0.000000 +0x25300000 +// -0.000000 +0xa4280000 +// -0.132840 +0xbe08074c +// -0.088409 +0xbdb50fdd +// -0.069851 +0xbd8f0df1 +// 0.326649 +0x3ea73e8b +// -0.064259 +0xbd8399f8 +// 0.179002 +0x3e374c3d +// 1.000000 +0x3f800000 +// 0.000000 +0x25b00000 +// -0.033015 +0xbd073ab0 +// 0.340581 +0x3eae60a8 +// 0.049368 +0x3d4a368a +// 0.339203 +0x3eadac11 +// -0.172939 +0xbe3116f2 +// 0.467170 +0x3eef30db +// -0.003291 +0xbb57a685 +// -1.000000 +0xbf800000 +// 0.414524 +0x3ed43c89 +// -0.677445 +0xbf2d6d02 +// 0.103059 +0x3dd3105a +// -0.130222 +0xbe055902 +// 0.712738 +0x3f3675fc +// -0.114922 +0xbdeb5c06 +// 0.228621 +0x3e6a1b9b +// -0.615502 +0xbf1d9183 +// -0.114794 +0xbdeb18f8 +// -0.139163 +0xbe0e80b1 +// 0.081724 +0x3da75eaa +// -0.333681 +0xbeaad82c +// 0.150869 +0x3e1a7d85 +// -0.174741 +0xbe32ef53 +// 0.655320 +0x3f27c30e +// 0.093436 +0x3dbf5b5d +// -0.455176 +0xbee90cd4 +// -0.209489 +0xbe56843b +// -0.100877 +0xbdce986f +// 0.694013 +0x3f31aad7 +// -0.653731 +0xbf275aef +// 0.044240 +0x3d353539 +// 0.441152 +0x3ee1dea3 +// -0.189098 +0xbe41a2fb +// 1.000000 +0x3f800000 +// -0.000000 +0xa5a00000 +// -0.000000 +0xa5400000 +// -0.000000 +0xa4c00000 +// 0.000000 +0x24d00000 +// -0.000000 +0xa5180000 +// 0.000000 +0x24000000 +// -0.000000 +0xa4000000 +// -0.331390 +0xbea9abee +// -1.000000 +0xbf800000 +// -0.000000 +0xa4200000 +// -0.000000 +0xa4a00000 +// 0.000000 +0x258a8000 +// -0.000000 +0xa5520000 +// 0.000000 +0x25b00000 +// -0.000000 +0xa5200000 +// 0.288157 +0x3e938955 +// -0.065923 +0xbd870297 +// -1.000000 +0xbf800000 +// 0.000000 +0x24000000 +// 0.000000 +0x253a8000 +// -0.000000 +0xa5b00000 +// -0.000000 +0xa4800000 +// 0.000000 +0x25800000 +// 0.039856 +0x3d233fec +// 0.388024 +0x3ec6ab1c +// -0.415361 +0xbed4aa29 +// 1.000000 +0x3f800000 +// -0.000000 +0xa6020000 +// -0.000000 +0xa5000000 +// -0.000000 +0xa5a00000 +// 0.000000 +0x25000000 +// -0.127092 +0xbe022487 +// -0.281287 +0xbe9004d1 +// 0.439990 +0x3ee14658 +// 0.384934 +0x3ec51612 +// 1.000000 +0x3f800000 +// 0.000000 +0x22e00000 +// -0.000000 +0xa3a00000 +// 0.000000 +0x24be0000 +// -0.251353 +0xbe80b158 +// 0.432510 +0x3edd7203 +// 0.060824 +0x3d792283 +// 0.157676 +0x3e2175c7 +// 0.133562 +0x3e08c48e +// -1.000000 +0xbf800000 +// 0.000000 +0x25e00000 +// 0.000000 +0x24400000 +// -0.090004 +0xbdb85402 +// 0.054859 +0x3d60b3f0 +// -0.225052 +0xbe667428 +// -0.334365 +0xbeab31d9 +// 0.004509 +0x3b93c1ce +// -0.364204 +0xbeba7903 +// -1.000000 +0xbf800000 +// -0.000000 +0xa5500000 +// 0.279225 +0x3e8ef689 +// 0.070286 +0x3d8ff24a +// 0.053179 +0x3d59d204 +// 0.078106 +0x3d9ff5de +// -0.715487 +0xbf372a2f +// -0.627093 +0xbf208926 +// -0.021063 +0xbcac8d4d +// -1.000000 +0xbf800000 +// -0.122130 +0xbdfa1f54 +// -0.070749 +0xbd90e4d6 +// 0.121569 +0x3df8f946 +// 0.166052 +0x3e2a099a +// -0.047485 +0xbd427fae +// -0.325852 +0xbea6d615 +// 0.177951 +0x3e3638d6 +// 0.064018 +0x3d831bbf +// -0.319061 +0xbea35bf8 +// -0.633717 +0xbf223b49 +// 0.544236 +0x3f0b5315 +// -0.434732 +0xbede9528 +// -0.471414 +0xbef15d2b +// -0.113657 +0xbde8c53a +// -0.224907 +0xbe664df7 +// -0.108463 +0xbdde21d2 +// 0.316770 +0x3ea22fa1 +// -0.197542 +0xbe4a4876 +// 0.390408 +0x3ec7e381 +// 0.377666 +0x3ec15d71 +// 0.020062 +0x3ca45825 +// -0.275504 +0xbe8d0edd +// 0.844718 +0x3f583f78 +// -0.000475 +0xb9f9383e +// 1.407985 +0x3fb438dc +// 0.729105 +0x3f3aa6a3 +// 0.794231 +0x3f4b52b9 +// -1.071511 +0xbf892748 +// -1.531743 +0xbfc41026 +// 1.791184 +0x3fe54582 +// 0.002319 +0x3b17f9ac +// -1.462661 +0xbfbb387d +// 0.954069 +0x3f743de5 +// 0.102165 +0x3dd13bc9 +// 0.258328 +0x3e844397 +// -0.399643 +0xbecc9e01 +// 0.000000 +0x248c0000 +// 0.000000 +0x24180000 +// -0.000000 +0xa4e40000 +// -0.000000 +0xa5600000 +// 0.000000 +0x25380000 +// 0.000000 +0x208a0000 +// -0.000000 +0xa5680000 +// 0.000000 +0x25080000 +// 0.000000 +0x23580000 +// 0.000000 +0x23dc0000 +// 0.354536 +0x3eb585bb +// 0.000000 +0x0 +// 0.000000 +0x23400000 +// 0.000000 +0x248c0000 +// -0.000000 +0xa3a00000 +// -0.000000 +0xa3c00000 +// -0.000000 +0x9f900000 +// 0.000000 +0x24a00000 +// 0.000000 +0x23f00000 +// 0.000000 +0x22600000 +// -0.000000 +0xa3840000 +// -0.037841 +0xbd1aff3c +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa3480000 +// -0.000000 +0xa33c0000 +// 0.000000 +0x23960000 +// 0.000000 +0x1e680000 +// -0.000000 +0xa3280000 +// 0.000000 +0x23b20000 +// 0.000000 +0x20f00000 +// 0.000000 +0x22340000 +// 0.257358 +0x3e83c462 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x25160000 +// -0.000000 +0xa5500000 +// -0.000000 +0xa0800000 +// 0.000000 +0x24e80000 +// -0.000000 +0xa4e80000 +// -0.000000 +0xa3480000 +// -0.000000 +0xa3de0000 +// 0.145097 +0x3e149458 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa3b80000 +// -0.000000 +0x9fd40000 +// 0.000000 +0x24da0000 +// -0.000000 +0xa1c00000 +// -0.000000 +0xa2100000 +// -0.000000 +0xa2a00000 +// -0.060129 +0xbd764a21 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x1f040000 +// -0.000000 +0xa3880000 +// 0.000000 +0x23540000 +// 0.000000 +0x21d00000 +// 0.000000 +0x22a40000 +// -0.002899 +0xbb3dfd83 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x21860000 +// 0.000000 +0x21100000 +// 0.000000 +0x1fe40000 +// 0.000000 +0x1ec00000 +// -0.169601 +0xbe2dabdf +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa2000000 +// -0.000000 +0xa2dc0000 +// 0.000000 +0x23140000 +// -0.104065 +0xbdd52035 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x20c00000 +// 0.000000 +0x22cc0000 +// -0.119673 +0xbdf51745 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa3000000 +// 0.587037 +0x3f164816 +// 0.348226 +0x3eb24abe +// 0.436999 +0x3edfbe4b +// 0.360206 +0x3eb86cec +// -0.183351 +0xbe3bc03f +// -0.154694 +0xbe1e67fe +// 0.082101 +0x3da824ab +// -0.294256 +0xbe96a8c7 +// -0.172251 +0xbe3062a8 +// -0.061473 +0xbd7bcb10 +// 0.170542 +0x3e2ea2af +// -0.244235 +0xbe7a18b5 +// 0.758817 +0x3f4241dc +// -0.296353 +0xbe97bb8f +// -0.295909 +0xbe978158 +// -0.058080 +0xbd6de5ad +// 0.216841 +0x3e5e0bae +// 0.106212 +0x3dd985cb +// 0.071577 +0x3d929735 +// 0.029934 +0x3cf537f1 +// -0.418193 +0xbed61d60 +// -0.078930 +0xbda1a61c +// -0.321964 +0xbea4d881 +// 0.451640 +0x3ee73d51 +// -0.156458 +0xbe203696 +// 0.563164 +0x3f102b84 +// 0.472063 +0x3ef1b24b +// 0.622200 +0x3f1f487b +// 0.122221 +0x3dfa4f26 +// -0.102700 +0xbdd25493 +// 0.084774 +0x3dad9dc7 +// -0.033809 +0xbd0a7aea +// 0.120730 +0x3df74170 +// -0.229105 +0xbe6a9a8c +// 0.297522 +0x3e9854cd +// -0.027294 +0xbcdf97df +// -0.000000 +0xa57fc000 +// -0.000000 +0xa5608000 +// -0.000000 +0xa5678000 +// -0.000000 +0xa3e00000 +// 0.000000 +0x244c0000 +// -0.000000 +0xa3bdc000 +// -0.000000 +0xa43a6000 +// -0.000000 +0xa489e000 +// 0.067017 +0x3d89405a +// 0.192832 +0x3e4575bc +// -0.255604 +0xbe82de97 +// 0.000000 +0x0 +// 0.000000 +0x23000000 +// 0.000000 +0x23400000 +// -0.000000 +0xa2200000 +// 0.000000 +0x22d00000 +// 0.000000 +0x22000000 +// 0.000000 +0x243c0000 +// 0.000000 +0x21800000 +// -0.060141 +0xbd765675 +// 0.272139 +0x3e8b55c1 +// 0.046613 +0x3d3eeda5 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa4820000 +// -0.000000 +0xa3600000 +// 0.000000 +0x23080000 +// -0.000000 +0xa2820000 +// 0.000000 +0x2401c000 +// -0.000000 +0xa2080000 +// -0.204376 +0xbe51480e +// -0.027783 +0xbce398ad +// -0.559139 +0xbf0f23c1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x24820000 +// -0.000000 +0xa4680000 +// 0.000000 +0x22a00000 +// -0.000000 +0xa4780000 +// 0.000000 +0x24880000 +// -0.168517 +0xbe2c8fa8 +// 0.128774 +0x3e03dd57 +// -0.277747 +0xbe8e34d1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa4660000 +// 0.000000 +0x22600000 +// -0.000000 +0xa3d50000 +// 0.000000 +0x23480000 +// -0.015845 +0xbc81ce43 +// 0.325126 +0x3ea676ed +// -0.301704 +0xbe9a78f4 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa2800000 +// 0.000000 +0x24e78000 +// -0.000000 +0xa2a00000 +// -0.103937 +0xbdd4dd25 +// 0.058235 +0x3d6e884e +// -0.272723 +0xbe8ba258 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa3220000 +// 0.000000 +0x24240000 +// -0.206576 +0xbe5388b0 +// 0.076248 +0x3d9c27f3 +// 0.273507 +0x3e8c0921 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa4d00000 +// -0.714427 +0xbf36e4b1 +// -0.055105 +0xbd61b636 +// 0.390549 +0x3ec7f616 +// 0.023807 +0x3cc3067f +// -0.081957 +0xbda7d925 +// 0.359791 +0x3eb83696 +// 0.115780 +0x3ded1dde +// 0.048601 +0x3d47119e +// 0.313168 +0x3ea0579a +// -0.152711 +0xbe1c6041 +// 0.245220 +0x3e7b1b00 +// 0.198688 +0x3e4b74c9 +// -0.744068 +0xbf3e7b40 +// -0.014761 +0xbc71d975 +// -0.069578 +0xbd8e7ebd +// 0.150662 +0x3e1a4724 +// -0.163072 +0xbe26fc5e +// 0.087326 +0x3db2d801 +// -0.468931 +0xbef017bc +// 0.095370 +0x3dc3518d +// -0.366344 +0xbebb9181 +// -0.145555 +0xbe150c42 +// -0.307218 +0xbe9d4bad +// -0.418606 +0xbed65394 +// 0.803714 +0x3f4dc02b +// 0.133940 +0x3e092776 +// 0.103813 +0x3dd49bd6 +// -0.402384 +0xbece0536 +// -0.184769 +0xbe3d340e +// 0.054704 +0x3d6011b8 +// -0.306540 +0xbe9cf2d8 +// 0.039771 +0x3d22e73c +// -0.175312 +0xbe33850f +// -0.457837 +0xbeea698f +// -0.291528 +0xbe95431f +// -0.015810 +0xbc8183fb +// -0.764505 +0xbf43b69a +// 0.080149 +0x3da4252d +// -0.184094 +0xbe3c8308 +// -0.254477 +0xbe824acb +// 0.365863 +0x3ebb525f +// -0.017256 +0xbc8d5bd7 +// -0.359534 +0xbeb814e2 +// 0.216889 +0x3e5e1840 +// 0.384484 +0x3ec4db16 +// 0.394874 +0x3eca2cdd +// -0.169594 +0xbe2da9ef +// 0.425918 +0x3eda11ec +// 0.953108 +0x3f73fee7 +// 0.192944 +0x3e45932a +// 0.060930 +0x3d799158 +// 0.090501 +0x3db9589f +// 0.042522 +0x3d2e2b84 +// 0.193905 +0x3e468efe +// 0.055201 +0x3d621a56 +// -0.203821 +0xbe50b689 +// 0.170126 +0x3e2e357e +// 0.344808 +0x3eb08aa4 +// -0.237248 +0xbe72f117 +// 0.151063 +0x3e1ab044 +// -0.648731 +0xbf261342 +// 0.372039 +0x3ebe7bf3 +// 0.060215 +0x3d76a41f +// 0.492898 +0x3efc5d2a +// 0.300739 +0x3e99fa7e +// 0.322049 +0x3ea4e39f +// 0.149793 +0x3e19635a +// 0.122225 +0x3dfa514c +// -0.424082 +0xbed92139 +// 0.074401 +0x3d985fc0 +// 0.092755 +0x3dbdf690 +// -0.067371 +0xbd89f9b1 +// -0.802061 +0xbf4d53d7 +// -0.309768 +0xbe9e99dd +// 0.417999 +0x3ed603ff +// 0.281687 +0x3e903952 +// 0.081681 +0x3da74859 +// 0.141080 +0x3e10774c +// 0.230805 +0x3e6c581f +// -0.175339 +0xbe338c2a +// -0.304355 +0xbe9bd471 +// -0.171696 +0xbe2fd128 +// 0.054217 +0x3d5e131b +// -0.029670 +0xbcf30eb1 +// -0.400037 +0xbeccd19d +// -0.498704 +0xbeff5615 +// 0.078308 +0x3da05fc4 +// 0.764940 +0x3f43d31c +// 0.241148 +0x3e76ef73 +// 0.301090 +0x3e9a287e +// -0.129371 +0xbe0479de +// 0.094243 +0x3dc10286 +// -0.188469 +0xbe40fe0e +// -0.190196 +0xbe42c2c5 +// -0.005710 +0xbbbb18cc +// 0.005842 +0x3bbf7202 +// -0.000000 +0xa49e4000 +// -0.000000 +0xa3db7000 +// -0.000000 +0xa4bb4000 +// -0.050916 +0xbd508cd9 +// -0.168370 +0xbe2c6945 +// 0.093527 +0x3dbf8b0b +// 0.126344 +0x3e016066 +// -0.186808 +0xbe3f4a79 +// 0.146692 +0x3e163670 +// 0.058149 +0x3d6e2e13 +// -0.194767 +0xbe4770fa +// 0.000000 +0x0 +// -0.000000 +0xa3ea0000 +// -0.000000 +0xa5db0000 +// -0.269354 +0xbe89e8c9 +// -0.202906 +0xbe4fc6b7 +// 0.568352 +0x3f117f89 +// -0.160199 +0xbe240b44 +// -0.661604 +0xbf295ee6 +// -0.663247 +0xbf29ca8c +// -0.492479 +0xbefc2638 +// -0.139131 +0xbe0e7855 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xa5200000 +// -1.000000 +0xbf800000 +// -0.000000 +0xa5aa0000 +// 0.000000 +0x25700000 +// 0.000000 +0x259b4000 +// 0.000000 +0x24b40000 +// -0.000000 +0xa5b00000 +// -0.000000 +0xa5600000 +// -0.000000 +0xa4200000 +// -0.000000 +0xa5100000 +// -0.000000 +0xa5c00000 +// 0.000000 +0x25000000 +// -0.047539 +0xbd42b80a +// 1.000000 +0x3f800000 +// -0.000000 +0xa4d00000 +// 0.000000 +0x24f80000 +// -0.000000 +0xa5940000 +// 0.000000 +0x24c00000 +// 0.000000 +0x24a00000 +// 0.000000 +0x24a80000 +// -0.000000 +0xa4900000 +// 0.000000 +0x24600000 +// -0.000000 +0xa56c0000 +// 0.242587 +0x3e7868d6 +// 0.276153 +0x3e8d63e2 +// 1.000000 +0x3f800000 +// 0.000000 +0x23800000 +// 0.000000 +0x25200000 +// -0.000000 +0xa5c00000 +// -0.000000 +0xa5900000 +// 0.000000 +0x25300000 +// 0.000000 +0x25d00000 +// 0.000000 +0x24c00000 +// -0.000000 +0xa4800000 +// 0.001565 +0x3acd2b2e +// -0.156737 +0xbe207fae +// -0.096216 +0xbdc50cb8 +// 1.000000 +0x3f800000 +// 0.000000 +0x24aa0000 +// -0.000000 +0xa5b60000 +// 0.000000 +0x24980000 +// 0.000000 +0x25c38000 +// -0.000000 +0xa5200000 +// 0.000000 +0x24900000 +// 0.000000 +0x25830000 +// 0.028494 +0x3ce96cd2 +// 0.476794 +0x3ef41e53 +// 0.010175 +0x3c26b593 +// -0.063105 +0xbd813d12 +// -1.000000 +0xbf800000 +// 0.000000 +0x25000000 +// -0.000000 +0xa5b20000 +// 0.000000 +0x255e0000 +// 0.000000 +0x25200000 +// -0.000000 +0xa5000000 +// -0.000000 +0xa5080000 +// 0.257895 +0x3e840aca +// 0.227448 +0x3e68e81c +// -0.050910 +0xbd50869b +// 0.206623 +0x3e539504 +// -0.593612 +0xbf17f6f4 +// -1.000000 +0xbf800000 +// -0.000000 +0xa5e00000 +// -0.000000 +0xa5000000 +// 0.000000 +0x24000000 +// -0.000000 +0xa5000000 +// 0.000000 +0x25f00000 +// -0.346554 +0xbeb16f92 +// 0.376248 +0x3ec0a38f +// 0.529275 +0x3f077e95 +// 0.257778 +0x3e83fb81 +// 0.050518 +0x3d4eec25 +// 0.343754 +0x3eb0008f +// 1.000000 +0x3f800000 +// -0.000000 +0xa5b60000 +// -0.000000 +0xa5e00000 +// 0.000000 +0x24800000 +// 0.000000 +0x25300000 +// 0.191451 +0x3e440bd7 +// 0.261677 +0x3e85fa86 +// 0.200119 +0x3e4cebe4 +// -0.432939 +0xbeddaa35 +// -0.683651 +0xbf2f03ba +// 0.497255 +0x3efe9832 +// 0.274086 +0x3e8c54f9 +// -1.000000 +0xbf800000 +// -0.000000 +0xa50c0000 +// 0.000000 +0x254c8000 +// -0.000000 +0xa4e20000 +// 0.034567 +0x3d0d9600 +// -0.030640 +0xbcfb0004 +// 0.176523 +0x3e34c273 +// 0.262415 +0x3e865b43 +// 0.078207 +0x3da02aed +// 0.044874 +0x3d37cd90 +// 0.316913 +0x3ea24262 +// 0.105377 +0x3dd7cfde +// 1.000000 +0x3f800000 +// -0.000000 +0xa5a00000 +// -0.000000 +0xa4c00000 +// 0.353375 +0x3eb4ed9d +// 0.208253 +0x3e55404a +// 0.069475 +0x3d8e48d0 +// -0.533623 +0xbf089b8c +// -0.222025 +0xbe635a69 +// -0.200129 +0xbe4cee89 +// -0.259367 +0xbe84cbc8 +// 0.800480 +0x3f4cec40 +// -0.355023 +0xbeb5c58f +// -1.000000 +0xbf800000 +// 0.000000 +0x25e00000 +// -0.122588 +0xbdfb0f9a +// 0.096225 +0x3dc51184 +// -0.267690 +0xbe890eaf +// 0.038264 +0x3d1cbaf2 +// 0.148135 +0x3e17b0b9 +// 0.241993 +0x3e77ccfc +// 0.295125 +0x3e971ab0 +// -0.005493 +0xbbb400b8 +// 0.638828 +0x3f238a39 +// 0.716277 +0x3f375df6 +// -1.000000 +0xbf800000 +// -2.449480 +0xc01cc447 +// 0.818499 +0x3f51892a +// 0.814481 +0x3f5081d0 +// -0.224743 +0xbe6622f0 +// 0.574592 +0x3f131875 +// 0.580021 +0x3f147c42 +// -0.224743 +0xbe6622f0 +// 0.424898 +0x3ed98c43 +// 0.014021 +0x3c65b90a +// -3.296958 +0xc053015b +// 0.439414 +0x3ee0fae8 +// 0.543891 +0x3f0b3c74 +// 0.553356 +0x3f0da8b6 +// 0.553995 +0x3f0dd296 +// 0.553993 +0x3f0dd27a +// 0.553981 +0x3f0dd1ab +// 0.553977 +0x3f0dd16a +// -0.187025 +0xbe3f8398 +// -0.985939 +0xbf7c6680 +// -0.723189 +0xbf3922e4 +// -0.714656 +0xbf36f3b8 +// -0.714080 +0xbf36cdf9 +// -0.714082 +0xbf36ce12 +// -0.714093 +0xbf36cecc +// -0.714096 +0xbf36cf07 +// -0.187025 +0xbe3f8398 +// -0.406115 +0xbecfee4c +// 0.428848 +0x3edb91f8 +// 0.422680 +0x3ed86989 +// 0.422750 +0x3ed872ad +// 0.422750 +0x3ed872a7 +// 0.422748 +0x3ed87279 +// 0.422748 +0x3ed8726b +// -0.187025 +0xbe3f8398 +// -0.406115 +0xbecfee4c +// 0.329104 +0x3ea88054 +// -0.066707 +0xbd889d72 +// -0.066195 +0xbd879163 +// -0.066194 +0xbd8790e8 +// -0.066188 +0xbd878d60 +// -0.066186 +0xbd878c46 +// -0.187025 +0xbe3f8398 +// -0.406115 +0xbecfee4c +// 0.329104 +0x3ea88054 +// 0.274908 +0x3e8cc0c4 +// -0.008984 +0xbc132f9e +// -0.008864 +0xbc1138e0 +// -0.008855 +0xbc111476 +// -0.008852 +0xbc110913 +// -0.187025 +0xbe3f8398 +// -0.406115 +0xbecfee4c +// 0.329104 +0x3ea88054 +// 0.274908 +0x3e8cc0c4 +// 0.296000 +0x3e978d44 +// -0.001190 +0xba9c0155 +// -0.001162 +0xba985e8a +// -0.001159 +0xba97ea1e +// -0.187025 +0xbe3f8398 +// -0.406115 +0xbecfee4c +// 0.329104 +0x3ea88054 +// 0.274908 +0x3e8cc0c4 +// 0.296000 +0x3e978d44 +// 0.323699 +0x3ea5bbd5 +// -0.000154 +0xb921c50b +// -0.000147 +0xb91a416c +// -0.187025 +0xbe3f8398 +// -0.406115 +0xbecfee4c +// 0.329104 +0x3ea88054 +// 0.274908 +0x3e8cc0c4 +// 0.296000 +0x3e978d44 +// 0.323699 +0x3ea5bbd5 +// 0.363524 +0x3eba1fdc +// 0.000017 +0x3792ca59 +// -3.667289 +0xc06ab4db +// 0.110239 +0x3de1c4c5 +// 0.385280 +0x3ec5436a +// 0.438977 +0x3ee0c193 +// 0.449031 +0x3ee5e767 +// 0.450793 +0x3ee6ce47 +// 0.451065 +0x3ee6f20d +// 0.451097 +0x3ee6f621 +// 0.451096 +0x3ee6f612 +// 0.451094 +0x3ee6f5d1 +// 0.451093 +0x3ee6f5ab +// -0.171521 +0xbe2fa33f +// -1.273467 +0xbfa300f5 +// -0.681550 +0xbf2e7a12 +// -0.640604 +0xbf23fea0 +// -0.632937 +0xbf22082d +// -0.631594 +0xbf21b026 +// -0.631386 +0xbf21a283 +// -0.631362 +0xbf21a0f5 +// -0.631363 +0xbf21a0fb +// -0.631364 +0xbf21a113 +// -0.631365 +0xbf21a122 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.647384 +0x3f25baf4 +// 0.600350 +0x3f19b090 +// 0.599300 +0x3f196bb9 +// 0.599116 +0x3f195faa +// 0.599087 +0x3f195dcb +// 0.599084 +0x3f195d95 +// 0.599084 +0x3f195d96 +// 0.599084 +0x3f195d99 +// 0.599085 +0x3f195d9b +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// -0.195227 +0xbe47e988 +// -0.190995 +0xbe43944b +// -0.191580 +0xbe442d8f +// -0.191671 +0xbe44454f +// -0.191681 +0xbe444803 +// -0.191681 +0xbe4447f9 +// -0.191680 +0xbe4447cf +// -0.191680 +0xbe4447b5 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// -0.046923 +0xbd4031ea +// -0.046002 +0xbd3c6c66 +// -0.046128 +0xbd3cf0b6 +// -0.046142 +0xbd3cffc8 +// -0.046142 +0xbd3cff91 +// -0.046141 +0xbd3cfea2 +// -0.046141 +0xbd3cfe14 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// 0.224145 +0x3e658656 +// -0.010952 +0xbc336eb0 +// -0.010690 +0xbc2f2655 +// -0.010707 +0xbc2f6d23 +// -0.010707 +0xbc2f6c20 +// -0.010706 +0xbc2f67bf +// -0.010705 +0xbc2f6522 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// 0.224145 +0x3e658656 +// 0.236471 +0x3e722562 +// -0.002541 +0xbb267ee1 +// -0.002463 +0xbb216af1 +// -0.002463 +0xbb21662f +// -0.002462 +0xbb2151a3 +// -0.002461 +0xbb214560 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// 0.224145 +0x3e658656 +// 0.236471 +0x3e722562 +// 0.251224 +0x3e80a075 +// -0.000586 +0xba19ab4d +// -0.000563 +0xba137d3f +// -0.000561 +0xba131a38 +// -0.000560 +0xba12df1f +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// 0.224145 +0x3e658656 +// 0.236471 +0x3e722562 +// 0.251224 +0x3e80a075 +// 0.269666 +0x3e8a119b +// -0.000134 +0xb90c9361 +// -0.000127 +0xb904c2a9 +// -0.000126 +0xb9039958 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// 0.224145 +0x3e658656 +// 0.236471 +0x3e722562 +// 0.251224 +0x3e80a075 +// 0.269666 +0x3e8a119b +// 0.293846 +0x3e9672f0 +// -0.000030 +0xb7fc9270 +// -0.000027 +0xb7e48477 +// -0.171521 +0xbe2fa33f +// -0.265724 +0xbe880d0a +// 0.320167 +0x3ea3ecfc +// 0.212459 +0x3e598ed2 +// 0.224145 +0x3e658656 +// 0.236471 +0x3e722562 +// 0.251224 +0x3e80a075 +// 0.269666 +0x3e8a119b +// 0.293846 +0x3e9672f0 +// 0.327956 +0x3ea7e9e0 +// 0.000006 +0x36be1d39 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefTau1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefTau1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..696d54372bd8fb28e6e71c0a3eb5da7461896ba4 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefTau1_f32.txt @@ -0,0 +1,300 @@ +W +149 +// 1.944958 +0x3ff8f45f +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.861959 +0x3fee54aa +// 1.689097 +0x3fd83455 +// 0.000000 +0x0 +// 1.524469 +0x3fc321cb +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.495681 +0x3fbf7279 +// 1.017388 +0x3f8239c6 +// 1.446700 +0x3fb92d77 +// 1.353075 +0x3fad318d +// 1.179097 +0x3f96eca7 +// 1.484692 +0x3fbe0a66 +// 1.110829 +0x3f8e2fa6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.234617 +0x3f9e07ea +// 1.440628 +0x3fb8667e +// 1.282016 +0x3fa41917 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.687249 +0x3fd7f7c8 +// 1.539779 +0x3fc51779 +// 1.056767 +0x3f874424 +// 1.171077 +0x3f95e5d8 +// 1.714564 +0x3fdb76d7 +// 1.854760 +0x3fed68c6 +// 1.798975 +0x3fe644d1 +// 0.000000 +0x0 +// 1.233551 +0x3f9de4fd +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.456008 +0x3fba5e78 +// 1.079499 +0x3f8a2d02 +// 1.268513 +0x3fa25ea3 +// 1.048598 +0x3f863873 +// 1.306935 +0x3fa749a7 +// 1.114489 +0x3f8ea797 +// 1.263413 +0x3fa1b788 +// 1.416146 +0x3fb54442 +// 1.037746 +0x3f84d4de +// 1.243646 +0x3f9f2fcc +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.453098 +0x3fb9ff1c +// 1.107877 +0x3f8dceec +// 1.239619 +0x3f9eabd7 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.161391 +0x3f94a879 +// 1.082779 +0x3f8a987c +// 1.775636 +0x3fe3480c +// 1.086696 +0x3f8b18dc +// 1.003480 +0x3f807209 +// 1.543225 +0x3fc58862 +// 1.193077 +0x3f98b6c0 +// 1.405155 +0x3fb3dc1d +// 1.268312 +0x3fa2580d +// 1.066854 +0x3f888ea9 +// 1.060062 +0x3f87b01c +// 1.212024 +0x3f9b2398 +// 1.139816 +0x3f91e57a +// 1.162189 +0x3f94c29d +// 1.113435 +0x3f8e850c +// 1.968770 +0x3ffc00a8 +// 1.396972 +0x3fb2cffa +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.483895 +0x3fbdf043 +// 1.302077 +0x3fa6aa71 +// 1.177689 +0x3f96be86 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.170629 +0x3f95d72d +// 1.195120 +0x3f98f9af +// 1.171645 +0x3f95f875 +// 1.442618 +0x3fb8a7b2 +// 1.274664 +0x3fa3282f +// 1.328844 +0x3faa178d +// 1.604068 +0x3fcd521a +// 1.891565 +0x3ff21ecb +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.402246 +0x3fb37ccd +// 1.216918 +0x3f9bc3f6 +// 1.389103 +0x3fb1ce24 +// 1.207991 +0x3f9a9f75 +// 1.052820 +0x3f86c2cb +// 1.364205 +0x3fae9e46 +// 1.503842 +0x3fc07de4 +// 1.210725 +0x3f9af90b +// 1.303660 +0x3fa6de55 +// 1.321830 +0x3fa931bd +// 0.000000 +0x0 +// 1.816500 +0x3fe88311 +// 1.694142 +0x3fd8d9a6 +// 0.000000 +0x0 +// 1.606620 +0x3fcda5b8 +// 1.005239 +0x3f80abae +// 1.297398 +0x3fa61120 +// 1.535747 +0x3fc4935a +// 1.583723 +0x3fcab76d +// 1.653492 +0x3fd3a59d +// 1.766550 +0x3fe21e54 +// 0.000000 +0x0 +// 1.545362 +0x3fc5ce6c +// 1.222879 +0x3f9c8748 +// 1.098866 +0x3f8ca7a8 +// 1.519790 +0x3fc28879 +// 1.536751 +0x3fc4b446 +// 1.562998 +0x3fc81053 +// 1.596865 +0x3fcc660f +// 1.641822 +0x3fd2273c +// 1.705480 +0x3fda4d2a +// 1.805779 +0x3fe723c4 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefValueHouseholder1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefValueHouseholder1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..b449012c4607e98b9e7cfe1a1a6967285816fcfa --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefValueHouseholder1_f32.txt @@ -0,0 +1,12 @@ +W +5 +// 1.162051 +0x3f94be13 +// 1.525738 +0x3fc34b64 +// 1.018566 +0x3f826060 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefVectorHouseholder1_f32.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefVectorHouseholder1_f32.txt new file mode 100644 index 0000000000000000000000000000000000000000..00fe8e414bdec24402ac0f8d6a166d2cbeec7291 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF32/RefVectorHouseholder1_f32.txt @@ -0,0 +1,62 @@ +W +30 +// 1.000000 +0x3f800000 +// 0.824699 +0x3f531f7c +// -0.202402 +0xbe4f4284 +// 1.000000 +0x3f800000 +// -0.088688 +0xbdb5a1df +// -0.092349 +0xbdbd2141 +// 0.257946 +0x3e841173 +// -0.064835 +0xbd84c813 +// -0.062891 +0xbd80cd01 +// -0.256621 +0xbe8363ca +// 0.392299 +0x3ec8db5b +// 1.000000 +0x3f800000 +// 0.341105 +0x3eaea544 +// 0.472856 +0x3ef21a27 +// -0.283009 +0xbe90e693 +// 0.098308 +0x3dc9557e +// -0.197534 +0xbe4a4645 +// -0.224642 +0xbe66087d +// 0.617640 +0x3f1e1da1 +// 0.010043 +0x3c248ba7 +// 0.062821 +0x3d80a875 +// -0.242552 +0xbe785fa8 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/DimsHouseholder1_s16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/DimsHouseholder1_s16.txt new file mode 100644 index 0000000000000000000000000000000000000000..3cac51d106b83245619535012119233c2eaba182 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/DimsHouseholder1_s16.txt @@ -0,0 +1,12 @@ +H +5 +// 3 +0x0003 +// 8 +0x0008 +// 11 +0x000B +// 4 +0x0004 +// 4 +0x0004 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/DimsQR1_s16.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/DimsQR1_s16.txt new file mode 100644 index 0000000000000000000000000000000000000000..44a757d1ca34700ea3d1962dda2c087c1ad4338e --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/DimsQR1_s16.txt @@ -0,0 +1,140 @@ +H +69 +// 2 +0x0002 +// 2 +0x0002 +// 1 +0x0001 +// 2 +0x0002 +// 2 +0x0002 +// 2 +0x0002 +// 4 +0x0004 +// 2 +0x0002 +// 1 +0x0001 +// 4 +0x0004 +// 2 +0x0002 +// 2 +0x0002 +// 4 +0x0004 +// 2 +0x0002 +// 4 +0x0004 +// 4 +0x0004 +// 4 +0x0004 +// 1 +0x0001 +// 4 +0x0004 +// 4 +0x0004 +// 2 +0x0002 +// 4 +0x0004 +// 4 +0x0004 +// 4 +0x0004 +// 5 +0x0005 +// 2 +0x0002 +// 1 +0x0001 +// 5 +0x0005 +// 2 +0x0002 +// 2 +0x0002 +// 5 +0x0005 +// 2 +0x0002 +// 4 +0x0004 +// 5 +0x0005 +// 2 +0x0002 +// 5 +0x0005 +// 5 +0x0005 +// 4 +0x0004 +// 1 +0x0001 +// 5 +0x0005 +// 4 +0x0004 +// 2 +0x0002 +// 5 +0x0005 +// 4 +0x0004 +// 4 +0x0004 +// 5 +0x0005 +// 4 +0x0004 +// 5 +0x0005 +// 5 +0x0005 +// 5 +0x0005 +// 1 +0x0001 +// 5 +0x0005 +// 5 +0x0005 +// 2 +0x0002 +// 5 +0x0005 +// 5 +0x0005 +// 4 +0x0004 +// 5 +0x0005 +// 5 +0x0005 +// 5 +0x0005 +// 2 +0x0002 +// 2 +0x0002 +// 2 +0x0002 +// 4 +0x0004 +// 4 +0x0004 +// 4 +0x0004 +// 5 +0x0005 +// 5 +0x0005 +// 5 +0x0005 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/InputMatrixQR1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/InputMatrixQR1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..95d377e80dfce0874963dacaa0a29e1bb8ed32d6 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/InputMatrixQR1_f64.txt @@ -0,0 +1,692 @@ +D +345 +// 0.250016 +0x3fd00044d5b0ba2f +// 0.212702 +0x3fcb39cddf21d4dd +// 1.000000 +0x3ff0000000000000 +// 0.850750 +0x3feb3958bfd08492 +// -0.214389 +0xbfcb71185888e174 +// -0.976748 +0xbfef4185d362888c +// 0.976748 +0x3fef4185d362888b +// -0.214389 +0xbfcb71185888e174 +// -0.426688 +0xbfdb4edb61b66054 +// 0.232817 +0x3fcdccf47761087c +// -0.111167 +0xbfbc756b8433f2c0 +// 0.060657 +0x3faf0e678f44c3a5 +// 0.430923 +0x3fdb943d9dc2b849 +// -0.235128 +0xbfce18abf7cb7c7c +// -1.000000 +0xbff0000000000000 +// 0.545638 +0x3fe175dde6eaecaf +// 0.268599 +0x3fd130b91db8f687 +// -0.701589 +0xbfe6736ac57e1063 +// -0.250150 +0xbfd002753bd0db23 +// 0.264655 +0x3fd0f01a0cc00ef4 +// 0.906956 +0x3fed05c8ea5e7843 +// 0.400732 +0x3fd9a599c3028b22 +// -0.206664 +0xbfca73fa94fef6c6 +// 0.526445 +0x3fe0d8a3167e7df2 +// 0.425830 +0x3fdb40cdae5c77b2 +// -0.308670 +0xbfd3c13db9b175ec +// -0.746396 +0xbfe7e278e8d17da2 +// 0.108771 +0x3fbbd868f69793b8 +// 0.287220 +0x3fd261d1f50dd9e1 +// -0.468616 +0xbfddfdcf8a0cc5d8 +// -0.423163 +0xbfdb1518f2e6ab4f +// -0.820543 +0xbfea41e3462efe2d +// -0.018204 +0xbf92a41787596f0b +// 0.079725 +0x3fb468d9c219870d +// -0.080603 +0xbfb4a2605c6ba7a5 +// -0.221562 +0xbfcc5c2180236bd6 +// 0.082163 +0x3fb5089c4a2f2651 +// -0.359832 +0xbfd7077b958e7ee1 +// 0.363793 +0x3fd7486468fa3c35 +// 1.000000 +0x3ff0000000000000 +// -0.030922 +0xbf9fa9e49095231f +// 0.135421 +0x3fc15579a7e23d01 +// -0.136912 +0xbfc18654fc914a4b +// -0.376345 +0xbfd8160adee6af13 +// 0.004511 +0x3f727a07a71f08b5 +// -0.019756 +0xbf943acc43f41c4d +// 0.019973 +0x3f9473d110c60f37 +// 0.054902 +0x3fac1c238c0678cd +// 0.149389 +0x3fc31f29e844e67e +// -0.413379 +0xbfda74cc98fdd29a +// 0.438122 +0x3fdc0a31a8a1719c +// -0.587539 +0xbfe2cd1dfd40af8d +// 0.147304 +0x3fc2dadc1d9e77b4 +// -0.162536 +0xbfc4cdf8558f22e4 +// 0.362029 +0x3fd72b7d98d740a1 +// -0.014669 +0xbf8e0ada1d260510 +// 0.144501 +0x3fc27f01a5b42a51 +// -0.195592 +0xbfc90924e45b4368 +// 0.365462 +0x3fd763bb9f95048d +// -0.097680 +0xbfb90188411c6f24 +// -0.257564 +0xbfd07bef59c58fa7 +// -0.042469 +0xbfa5be7d3a2290ac +// -0.539739 +0xbfe1458b2848c300 +// -0.727014 +0xbfe743b2e5fdf50a +// 0.182166 +0x3fc751343aee5809 +// -0.740023 +0xbfe7ae43e17e032b +// -0.155547 +0xbfc3e8f87f616ced +// -0.628480 +0xbfe41c826449b90a +// 0.920555 +0x3fed7530b4acda8c +// 0.159151 +0x3fc45f1309fb510a +// -0.319563 +0xbfd473b985f3d27e +// 0.158517 +0x3fc44a4d0e899642 +// 0.327117 +0x3fd4ef7cc64722bb +// 0.178152 +0x3fc6cdacfcc9772d +// 0.867513 +0x3febc2ab2d0c2692 +// -0.329662 +0xbfd5192edef06f11 +// 0.111300 +0x3fbc7e29646d93e4 +// -0.628728 +0xbfe41e8ae72c032d +// 0.348002 +0x3fd645a888873059 +// 0.686446 +0x3fe5f75d32017dcf +// -0.557757 +0xbfe1d92537ddfc31 +// -0.272380 +0xbfd16eae83ec6708 +// 0.697303 +0x3fe6504ea0ba6bc2 +// 0.340528 +0x3fd5cb3507063041 +// 1.000000 +0x3ff0000000000000 +// 0.488350 +0x3fdf411f2abf8272 +// 0.148513 +0x3fc3027af9dc8d63 +// 0.072526 +0x3fb29116afa558b9 +// -0.493267 +0xbfdf91af126f68a3 +// -0.240887 +0xbfced56044c71d8c +// 0.222148 +0x3fcc6f5492d4083c +// 0.263245 +0x3fd0d90306bd8c22 +// 0.121930 +0x3fbf36cac67ac643 +// -0.250848 +0xbfd00de3f234f190 +// -0.655434 +0xbfe4f95192ff0676 +// -0.391136 +0xbfd90860f2297360 +// 0.646114 +0x3fe4acf802feab31 +// -0.050890 +0xbfaa0e45d70fe288 +// 0.297868 +0x3fd310468fdc9175 +// -0.843919 +0xbfeb01630a4b4e21 +// -0.601424 +0xbfe33eddf1e874d6 +// 0.679449 +0x3fe5be0bb2383a63 +// 0.156037 +0x3fc3f904f5393377 +// -0.210120 +0xbfcae533315c638f +// 0.484968 +0x3fdf09b763e0057e +// 0.027975 +0x3f9ca58d26546870 +// -0.087510 +0xbfb6670e1265d0cf +// 0.000539 +0x3f41acdc78345dc0 +// -0.609171 +0xbfe37e545ad683ca +// -0.702436 +0xbfe67a5a879f8e32 +// 0.327677 +0x3fd4f8a8f6ca6af5 +// 0.713038 +0x3fe6d134c3042a5e +// 0.283161 +0x3fd21f4da5b10b93 +// 0.059462 +0x3fae71d2d8a03c84 +// 0.869545 +0x3febd3502f540181 +// -0.359248 +0xbfd6fdeb5e626de8 +// -0.237163 +0xbfce5b5d091c6a90 +// -0.282465 +0xbfd213e76f3bc2e4 +// 0.009636 +0x3f83bbd9bd000f60 +// -0.528390 +0xbfe0e891a93a4e8f +// 0.078299 +0x3fb40b6bab58522c +// -1.000000 +0xbff0000000000000 +// 0.368155 +0x3fd78fd9328e3fcc +// -0.898222 +0xbfecbe3c8cfb52eb +// -0.041885 +0xbfa571ff4584551d +// 0.534939 +0x3fe11e390a4b7084 +// -0.196940 +0xbfc935587c94b256 +// 0.480494 +0x3fdec06b7f898149 +// 0.075356 +0x3fb34a807e7b6b04 +// -0.962404 +0xbfeecc0463059712 +// 0.354314 +0x3fd6ad13e2ebf2a2 +// -0.864453 +0xbfeba99976e7824c +// 0.036874 +0x3fa2e12e6cc3ae6b +// -0.470940 +0xbfde23e11673daa0 +// 0.173379 +0x3fc63146b0ec061e +// -0.423009 +0xbfdb1293042a6990 +// 0.046339 +0x3fa7b9c565d01896 +// -0.591822 +0xbfe2f033da65fab4 +// 0.217882 +0x3fcbe38e6ef8cb34 +// -0.531587 +0xbfe102c368cad262 +// 0.183731 +0x3fc7847bc7fa1079 +// -0.000070 +0xbf1266ec18334e00 +// -0.039796 +0xbfa46033262f49ae +// 0.122956 +0x3fbf7a0ee3945c14 +// -0.228769 +0xbfcd484ed14982ec +// 0.139539 +0x3fc1dc6d84863ff9 +// 0.293633 +0x3fd2cae3ebe6054c +// 0.345958 +0x3fd6242e832b31b8 +// -0.136106 +0xbfc16be7f9205bac +// -0.026821 +0xbf9b76d9feb5fc54 +// -0.017554 +0xbf91f9b05e6ce5fa +// -0.187253 +0xbfc7f7e918f8f863 +// -0.249664 +0xbfcff4fc6f97ce92 +// 0.224359 +0x3fccb7c8409bb2ee +// 0.446603 +0x3fdc9526d00c2155 +// 0.635488 +0x3fe455eade77cd35 +// 0.794040 +0x3fe968c682ae1abf +// -0.014196 +0xbf8d130a59bd9ae0 +// -0.196308 +0xbfc9209cc24a945c +// 0.481669 +0x3fded3a83835b4e4 +// 0.003134 +0x3f69abf2b8ee5a90 +// 0.834454 +0x3feab3d8b0ea882e +// 0.237527 +0x3fce674afc6f7bb8 +// 0.192392 +0x3fc8a04de8a16987 +// 0.434313 +0x3fdbcbc9d7e922c3 +// -0.364001 +0xbfd74bc9b8795e96 +// -0.274604 +0xbfd1931de7c428ac +// 0.066012 +0x3fb0e62839e552c0 +// -0.245202 +0xbfcf62c524c0d759 +// -0.255966 +0xbfd061bfc22a7d54 +// 0.163259 +0x3fc4e5abe25b14a4 +// 0.920702 +0x3fed76645f3933c7 +// -0.853573 +0xbfeb5078ae25e667 +// -0.052039 +0xbfaaa4cecc3588c4 +// -0.336240 +0xbfd584f576379263 +// -0.180879 +0xbfc72707240c70c9 +// -0.150503 +0xbfc343ae085c1416 +// -0.320879 +0xbfd48948e41942e2 +// 0.853500 +0x3feb4fdf5514d11e +// -0.279675 +0xbfd1e632a94ff059 +// 0.484502 +0x3fdf02150530a206 +// -0.743822 +0xbfe7cd63d15e44fa +// -0.015745 +0xbf901f68c434e95c +// -0.332158 +0xbfd5421253c528e9 +// -0.181448 +0xbfc739aef86fffb8 +// -0.182770 +0xbfc764fe612e7c38 +// 0.445519 +0x3fdc836239d310e7 +// 0.654523 +0x3fe4f1d981dc0b6e +// 0.248116 +0x3fcfc2437982dca1 +// -0.135676 +0xbfc15dd4c432862e +// 0.738235 +0x3fe79f9f09ff8761 +// 0.045222 +0x3fa7274a94989636 +// 0.706551 +0x3fe69c1151af48ff +// 0.606729 +0x3fe36a53209d7bbc +// 0.149498 +0x3fc322be65a8f27b +// -0.017157 +0xbf9191a4c789e71c +// 0.414196 +0x3fda822f85333bee +// -0.163695 +0xbfc4f3f20251f068 +// -0.483657 +0xbfdef43db14f308f +// 0.677445 +0x3fe5ada18b09b18a +// -0.748598 +0xbfe7f484c8b04d37 +// 0.626885 +0x3fe40f722dfd6a61 +// -1.000000 +0xbff0000000000000 +// -0.017943 +0xbf925f8795be6148 +// 0.272157 +0x3fd16b07489ba5b4 +// 0.148030 +0x3fc2f2a3fd95f831 +// -0.123962 +0xbfbfbbf8a67452d0 +// 0.197743 +0x3fc94fa1190cefc0 +// 0.003548 +0x3f6d10b48575459c +// -0.053817 +0xbfab8deb35a84eb0 +// -0.576875 +0xbfe275c2132e1481 +// 0.483082 +0x3fdeead0a7a83c94 +// -0.770606 +0xbfe8a8cebcf6fcc9 +// -0.013827 +0xbf8c5123d731a108 +// 0.209726 +0x3fcad84fc9181803 +// -0.021537 +0xbf960dc6835a325f +// 0.018035 +0x3f9277d75e045ee6 +// -0.028770 +0xbf9d75cb41379be1 +// -0.000516 +0xbf40ea34dae61f46 +// 0.007830 +0x3f80091c8ee46775 +// -0.328680 +0xbfd50919c04fd41c +// 0.275241 +0x3fd19d8c89ac736e +// -0.439061 +0xbfdc1993a7eebcc9 +// -0.007878 +0xbf8022460c360838 +// 0.119494 +0x3fbe9724b895c1db +// -0.030320 +0xbf9f0c55100f50f4 +// -0.018907 +0xbf935c684066e396 +// -0.287561 +0xbfd26764977a3bda +// -0.359597 +0xbfd703a14fa21427 +// 0.237996 +0x3fce76a833649644 +// 0.097007 +0x3fb8d56fda1c2815 +// -0.158978 +0xbfc4596305ba3562 +// -0.269891 +0xbfd145e431b3a069 +// -0.373878 +0xbfd7ed9f1a9f8966 +// 0.205847 +0x3fca5930bb23d55b +// 0.396396 +0x3fd95e8bd938d218 +// -0.405368 +0xbfd9f18b66c0b21d +// 0.221461 +0x3fcc58d85fe73640 +// 0.168776 +0x3fc59a73e9aa7d0c +// -0.235397 +0xbfce2180eb0a66ab +// -0.510394 +0xbfe05525f8a2a4c4 +// 0.586704 +0x3fe2c648369f893a +// 0.065951 +0x3fb0e222bec017f9 +// 0.232475 +0x3fcdc1bbc8e9f1a1 +// 0.017681 +0x3f921af46d253636 +// 0.075713 +0x3fb361eba4484db6 +// -0.027114 +0xbf9bc3ac931afbb6 +// 0.315084 +0x3fd42a56b0b0a180 +// 0.381695 +0x3fd86db100d16adf +// -0.266711 +0xbfd111ca1f93ea7f +// 0.278020 +0x3fd1cb1658e92303 +// -0.047845 +0xbfa87f31fdc9e220 +// 0.202172 +0x3fc9e0c4e043a96c +// 0.157952 +0x3fc437c3873a888f +// -0.618639 +0xbfe3cbe34b2e94fe +// 0.069693 +0x3fb1d75f6f33a88a +// 0.176804 +0x3fc6a182b51bb9ba +// -0.110985 +0xbfbc6986895c1884 +// -0.631154 +0xbfe4326929520728 +// 0.464905 +0x3fddc0ffc770136a +// -0.695187 +0xbfe63ef7f4195a2b +// -0.186976 +0xbfc7eed4180cd9d2 +// 0.174651 +0x3fc65af2b25c2f92 +// 0.439160 +0x3fdc1b334974a91a +// 0.314596 +0x3fd422574960aefe +// 0.245793 +0x3fcf76282806c368 +// 0.332566 +0x3fd548c3ada31bf7 +// -0.699646 +0xbfe6637f22651590 +// 0.528825 +0x3fe0ec21fe6aeff9 +// 0.177720 +0x3fc6bf87515029d8 +// -0.082860 +0xbfb5364d4552748c +// 0.876913 +0x3fec0fab88418044 +// 0.457229 +0x3fdd433ec4210dea +// 0.107987 +0x3fbba502b602e784 +// 0.007337 +0x3f7e0daa3c6faf40 +// 0.331222 +0x3fd532bdc899a6de +// -0.757324 +0xbfe83bfed1cd63e8 +// -0.136602 +0xbfc17c2cda68620c +// 0.274833 +0x3fd196df0433a740 +// -0.471762 +0xbfde3158fcfc40ae +// -0.369781 +0xbfd7aa7d1912dd9f +// 0.246506 +0x3fcf8d7f1ce92234 +// -0.400848 +0xbfd9a77cc57785b5 +// -0.328543 +0xbfd506d8a7d81892 +// -0.730669 +0xbfe761a4fb83b023 +// 0.558074 +0x3fe1dbbd6ac978f7 +// 0.034487 +0x3fa1a84626ef2a48 +// 0.415475 +0x3fda97251cdb48f6 +// -0.692573 +0xbfe6298f1d91b786 +// -0.187316 +0xbfc7f9f75c8457e1 +// -0.646154 +0xbfe4ad4b471e5b99 +// -0.556382 +0xbfe1cde1df70631c +// 0.341263 +0x3fd5d74065bc5c2e +// -0.376476 +0xbfd8182d67377a61 +// 0.121365 +0x3fbf11cde191d140 +// -0.156821 +0xbfc412b519f37514 +// 0.234404 +0x3fce00f6f823714a +// 0.729096 +0x3fe754c14c88a4e4 +// 0.441741 +0x3fdc457a170c5530 +// -0.440166 +0xbfdc2bad5c89c699 +// 2.000000 +0x4000000000000000 +// -1.000000 +0xbfefffffdffffff0 +// -1.000000 +0xbfefffffdffffff0 +// 0.000000 +0x0 +// 2.000000 +0x4000000000000000 +// -0.999827 +0xbfeffe95ee193d85 +// -0.999827 +0xbfeffe95ee193d85 +// -0.999827 +0xbfeffe95ee193d85 +// -0.999827 +0xbfeffe95ee193d85 +// 0.037163 +0x3fa306fe0a31b715 +// -0.018578 +0xbf930626c072f6e8 +// -0.018578 +0xbf930626c072f6e8 +// -0.999827 +0xbfeffe95ee193d85 +// -0.018578 +0xbf930626c072f6e8 +// 0.000691 +0x3f46a09e667f3bcc +// -0.000345 +0xbf369f9e60d6d42f +// -0.999827 +0xbfeffe95ee193d85 +// -0.018578 +0xbf930626c072f6e8 +// -0.000345 +0xbf369f9e60d6d42f +// 0.000000 +0x0 +// 2.000000 +0x4000000000000000 +// -0.999149 +0xbfeff9085a9c0401 +// -0.999149 +0xbfeff9085a9c0401 +// -0.999149 +0xbfeff9085a9c0401 +// -0.999149 +0xbfeff9085a9c0401 +// -0.999149 +0xbfeff9085a9c0401 +// 0.082469 +0x3fb51cb453b9536b +// -0.041200 +0xbfa5181b8f3bc18e +// -0.041200 +0xbfa5181b8f3bc18e +// -0.041200 +0xbfa5181b8f3bc18e +// -0.999149 +0xbfeff9085a9c0401 +// -0.041200 +0xbfa5181b8f3bc18e +// 0.003401 +0x3f6bdb8cdadbe11d +// -0.001699 +0xbf5bd57c19d085ad +// -0.001699 +0xbf5bd57c19d085ad +// -0.999149 +0xbfeff9085a9c0401 +// -0.041200 +0xbfa5181b8f3bc18e +// -0.001699 +0xbf5bd57c19d085ad +// 0.000140 +0x3f22611186bae671 +// -0.000070 +0xbf125d1117346c0a +// -0.999149 +0xbfeff9085a9c0401 +// -0.041200 +0xbfa5181b8f3bc18e +// -0.001699 +0xbf5bd57c19d085ad +// -0.000070 +0xbf125d1117346c0a +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/InputVectorHouseHolder1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/InputVectorHouseHolder1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..a67213379812de26a05aabd86d9d4040cc3179a8 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/InputVectorHouseHolder1_f64.txt @@ -0,0 +1,62 @@ +D +30 +// 0.093817 +0x3fb804660a9cfb12 +// -1.000000 +0xbff0000000000000 +// -0.154496 +0xbfc3c68a6dae4cfb +// 0.239123 +0x3fce9b9334f51744 +// 0.336311 +0x3fd5861e28238833 +// 0.020124 +0x3f949b5378206fa2 +// 0.277812 +0x3fd1c7acf3bdda77 +// -0.669498 +0xbfe56c87ae5d1138 +// 0.729965 +0x3fe75bdefe0928a6 +// 1.000000 +0x3ff0000000000000 +// -0.495025 +0xbfdfae7d66ac0dac +// -0.051969 +0xbfaa9bab4ebe8c25 +// 0.016906 +0x3f914fe512037b93 +// -0.207615 +0xbfca93242b18cf34 +// -0.839682 +0xbfeadeadc6650466 +// -0.227335 +0xbfcd194c4b06eafe +// 0.954023 +0x3fee875acf83280b +// 1.000000 +0x3ff0000000000000 +// -0.257931 +0xbfd081f023dc0ef9 +// 0.272904 +0x3fd17742615ac209 +// 0.585691 +0x3fe2bdfbde05c94b +// 0.220540 +0x3fcc3aab276063cf +// 1.000000 +0x3ff0000000000000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbff0000000000000 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefQ1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefQ1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..3731aa6438ea464d3db99afc5a8539984ae78948 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefQ1_f64.txt @@ -0,0 +1,900 @@ +D +449 +// -0.242551 +0xbfcf0be5fc7f2c88 +// -0.970139 +0xbfef0b606d8700f4 +// -0.970139 +0xbfef0b606d8700f4 +// 0.242551 +0x3fcf0be5fc7f2c8c +// -0.214389 +0xbfcb71185888e178 +// 0.976748 +0x3fef4185d362888d +// 0.976748 +0x3fef4185d362888d +// 0.214389 +0x3fcb71185888e170 +// -0.363206 +0xbfd73ec39e565f04 +// -0.094627 +0xbfb839809ae74977 +// 0.366811 +0x3fd779d3348cdfc7 +// -0.851221 +0xbfeb3d33c992ca3c +// -0.094627 +0xbfb839809ae74977 +// 0.993431 +0x3fefca30a802f0ba +// 0.025462 +0x3f9a12c946e8ded6 +// -0.059088 +0xbfae40c1ce2f6df1 +// 0.366811 +0x3fd779d3348cdfc7 +// 0.025462 +0x3f9a12c946e8ded6 +// 0.901299 +0x3fecd7709f700c4e +// 0.229046 +0x3fcd51616658cb85 +// -0.851221 +0xbfeb3d33c992ca3c +// -0.059088 +0xbfae40c1ce2f6df1 +// 0.229046 +0x3fcd51616658cb85 +// 0.468476 +0x3fddfb810f7064f6 +// -0.268599 +0xbfd130b91db8f688 +// 0.701589 +0x3fe6736ac57e1066 +// -0.545296 +0xbfe173116f7dde0a +// 0.371859 +0x3fd7cc8b36d64670 +// 0.250150 +0x3fd002753bd0db23 +// -0.264655 +0xbfd0f01a0cc00ef5 +// -0.794793 +0xbfe96ef16df1ff9c +// -0.485476 +0xbfdf120b049c3722 +// -0.906956 +0xbfed05c8ea5e7843 +// -0.400732 +0xbfd9a599c3028b24 +// -0.112718 +0xbfbcdb1756f1d8e8 +// -0.064332 +0xbfb078177b8870c0 +// 0.206664 +0x3fca73fa94fef6c6 +// -0.526445 +0xbfe0d8a3167e7df4 +// -0.241352 +0xbfcee49f5427c6b4 +// 0.788603 +0x3fe93c3c6fe7d094 +// -0.425830 +0xbfdb40cdae5c77b0 +// -0.308670 +0xbfd3c13db9b175f0 +// -0.694528 +0xbfe63992e5eb90a2 +// -0.490940 +0xbfdf6b91535ad68c +// 0.746396 +0x3fe7e278e8d17da2 +// 0.108771 +0x3fbbd868f69793d4 +// -0.042865 +0xbfa5f26f43426e80 +// -0.655153 +0xbfe4f702f0b86c99 +// -0.287220 +0xbfd261d1f50dd9e1 +// -0.468616 +0xbfddfdcf8a0cc5db +// 0.703188 +0x3fe680852a2a886a +// -0.451031 +0xbfdcddb172677ace +// 0.423163 +0x3fdb1518f2e6ab4f +// -0.820543 +0xbfea41e3462efe2c +// -0.146011 +0xbfc2b07f3a7567f2 +// 0.355420 +0x3fd6bf3342a01dd2 +// -0.202787 +0xbfc9f4eb12c214d0 +// 0.915261 +0x3fed49d27bab28ec +// -0.344454 +0xbfd60b8a908a7213 +// 0.050250 +0x3fa9ba594d49161a +// 0.915261 +0x3fed49d27bab28ec +// 0.303531 +0x3fd36d0db1ba1818 +// 0.262113 +0x3fd0c674f2d95dbf +// -0.038238 +0xbfa393e30e234ace +// -0.344454 +0xbfd60b8a908a7213 +// 0.262113 +0x3fd0c674f2d95dbf +// 0.901355 +0x3fecd7e689a5efb6 +// 0.014391 +0x3f8d78cd3a947c0f +// 0.050250 +0x3fa9ba594d49161a +// -0.038238 +0xbfa393e30e234ace +// 0.014391 +0x3f8d78cd3a947c0f +// 0.997901 +0x3fefeecd622d8971 +// -0.412375 +0xbfda645837c0ee60 +// 0.748531 +0x3fe7f3f7d2b9ccad +// -0.394971 +0xbfd94732756dea88 +// -0.337115 +0xbfd5934a7990322c +// -0.406621 +0xbfda06122fc17455 +// 0.118560 +0x3fbe59fac745d593 +// -0.117426 +0xbfbe0fa92accb947 +// 0.898228 +0x3fecbe496173aa37 +// -0.398883 +0xbfd9874b53a3a2a2 +// 0.207685 +0x3fca956ceb3d2df7 +// 0.888440 +0x3fec6e19758345a6 +// -0.091837 +0xbfb782a4e501e708 +// 0.710985 +0x3fe6c0636ff93d03 +// 0.618475 +0x3fe3ca8bfc0e9117 +// 0.202198 +0x3fc9e19d0242e96b +// 0.266656 +0x3fd110e33d4503c8 +// -0.182166 +0xbfc751343aee5810 +// 0.740023 +0x3fe7ae43e17e032c +// 0.155547 +0x3fc3e8f87f616cf6 +// -0.628480 +0xbfe41c826449b90c +// -0.920555 +0xbfed7530b4acda8d +// -0.159151 +0xbfc45f1309fb510b +// 0.319563 +0x3fd473b985f3d283 +// 0.158517 +0x3fc44a4d0e899648 +// -0.327117 +0xbfd4ef7cc64722bc +// -0.178152 +0xbfc6cdacfcc9772d +// -0.867513 +0xbfebc2ab2d0c2695 +// -0.329662 +0xbfd5192edef06f12 +// -0.111300 +0xbfbc7e29646d93e5 +// 0.628728 +0x3fe41e8ae72c032e +// -0.348002 +0xbfd645a888873058 +// 0.686446 +0x3fe5f75d32017dce +// -0.388354 +0xbfd8daca9dd67df8 +// 0.485517 +0x3fdf12b5597d1401 +// 0.696278 +0x3fe647e8f32ad7e0 +// 0.103406 +0x3fba78d8de23becb +// -0.343451 +0xbfd5fb196937526a +// 0.485517 +0x3fdf12b5597d1401 +// 0.830211 +0x3fea911791530d10 +// -0.243493 +0xbfcf2ac8ff1832ad +// -0.036162 +0xbfa283d1ca805802 +// 0.120107 +0x3fbebf5719d31d2d +// 0.696278 +0x3fe647e8f32ad7e0 +// -0.243493 +0xbfcf2ac8ff1832ad +// 0.650807 +0x3fe4d369b578356b +// -0.051860 +0xbfaa8d5bdb88e91d +// 0.172245 +0x3fc60c2186f64dc5 +// 0.103406 +0x3fba78d8de23becb +// -0.036162 +0xbfa283d1ca805802 +// -0.051860 +0xbfaa8d5bdb88e91d +// 0.992298 +0x3fefc0e80a569f51 +// 0.025581 +0x3f9a31d2c941b39e +// -0.343451 +0xbfd5fb196937526a +// 0.120107 +0x3fbebf5719d31d2d +// 0.172245 +0x3fc60c2186f64dc5 +// 0.025581 +0x3f9a31d2c941b39e +// 0.915037 +0x3fed47fbfdc95d30 +// -0.222148 +0xbfcc6f5492d40840 +// 0.263245 +0x3fd0d90306bd8c23 +// 0.730822 +0x3fe762e40c9fe594 +// -0.588792 +0xbfe2d76312bf8400 +// -0.023993 +0xbf9891961ed42038 +// -0.121930 +0xbfbf36cac67ac642 +// -0.250848 +0xbfd00de3f234f18e +// -0.177047 +0xbfc6a978a9bec18c +// -0.248802 +0xbfcfd8c18e6ac800 +// -0.910473 +0xbfed22975c7deb16 +// 0.655434 +0x3fe4f95192ff0676 +// -0.391136 +0xbfd90860f2297360 +// 0.559140 +0x3fe1e47979c4964c +// 0.278569 +0x3fd1d4120901a8b4 +// -0.164864 +0xbfc51a407a0edef0 +// -0.646114 +0xbfe4acf802feab32 +// -0.050890 +0xbfaa0e45d70fe290 +// 0.349165 +0x3fd658ba0a7ce075 +// 0.660437 +0x3fe5224dbdd82ba5 +// -0.147825 +0xbfc2ebef77d9fe05 +// -0.297868 +0xbfd310468fdc9175 +// -0.843919 +0xbfeb01630a4b4e22 +// 0.000389 +0x3f397b927b1e1600 +// -0.278644 +0xbfd1d54facfdf2d6 +// 0.348471 +0x3fd64d578d9eb72c +// -0.601424 +0xbfe33eddf1e874d6 +// 0.679449 +0x3fe5be0bb2383a66 +// 0.378019 +0x3fd83177acf37967 +// -0.070768 +0xbfb21ddd9929e750 +// -0.169503 +0xbfc5b24934964406 +// 0.156037 +0x3fc3f904f5393378 +// -0.210120 +0xbfcae533315c6395 +// 0.196904 +0x3fc93423d89dc554 +// -0.029694 +0xbf9e680a2e9a6b61 +// -0.944378 +0xbfee3857c9b0c88d +// 0.484968 +0x3fdf09b763e00580 +// 0.027975 +0x3f9ca58d26546858 +// 0.837763 +0x3feacef44ba5e97a +// 0.028907 +0x3f9d99e5f27c1574 +// 0.247671 +0x3fcfb3af5178c63a +// -0.087510 +0xbfb6670e1265d0d0 +// 0.000539 +0x3f41acdc78345ec0 +// 0.028133 +0x3f9ccef0bf071824 +// 0.994963 +0x3fefd6bba7d803ee +// -0.039998 +0xbfa47a8e8e33f7d4 +// -0.609171 +0xbfe37e545ad683cb +// -0.702436 +0xbfe67a5a879f8e32 +// 0.340135 +0x3fd5c4c75cd7c455 +// -0.057655 +0xbfad84eccc498326 +// 0.128368 +0x3fc06e5fe57079a7 +// -0.327677 +0xbfd4f8a8f6ca6af4 +// 0.713038 +0x3fe6d134c3042a5e +// -0.116210 +0xbfbdbff44f8aa93c +// 0.378572 +0x3fd83a874862d3ad +// 0.476847 +0x3fde84a901a52f64 +// -0.283161 +0xbfd21f4da5b10b92 +// 0.059462 +0x3fae71d2d8a03c86 +// -0.851028 +0xbfeb3b9ea5c69cc7 +// -0.074355 +0xbfb308e869c04431 +// -0.431865 +0xbfdba3ad2eb06299 +// -0.869545 +0xbfebd3502f540180 +// -0.359248 +0xbfd6fdeb5e626de5 +// 0.299077 +0x3fd3241284a056ba +// 0.130657 +0x3fc0b95dce1840df +// -0.091182 +0xbfb757b299039c20 +// 0.237163 +0x3fce5b5d091c6a8f +// -0.282465 +0xbfd213e76f3bc2e4 +// -0.096525 +0xbfb8b5e4fd99d0c6 +// 0.910360 +0x3fed21ab69f5ff71 +// -0.160918 +0xbfc498f6b1f3f302 +// -0.009636 +0xbf83bbd9bd000f5f +// -0.528390 +0xbfe0e891a93a4e8f +// -0.404330 +0xbfd9e08b645825f9 +// -0.072991 +0xbfb2af8f46edf413 +// 0.742900 +0x3fe7c5d6d2518b44 +// -0.599284 +0xbfe32d55949e7c8e +// 0.320581 +0x3fd484644c36afcf +// -0.576754 +0xbfe274c3ddea5415 +// -0.282227 +0xbfd21000b52577de +// -0.354669 +0xbfd6b2e6712c47d7 +// 0.320581 +0x3fd484644c36afcf +// 0.935739 +0x3fedf192844bce2d +// 0.115612 +0x3fbd98bad2e546f4 +// 0.056573 +0x3facf7252e081da5 +// 0.071094 +0x3fb2333d338e1837 +// -0.576754 +0xbfe274c3ddea5415 +// 0.115612 +0x3fbd98bad2e546f4 +// 0.792004 +0x3fe95818c8957bbe +// -0.101780 +0xbfba0e4296d9eb43 +// -0.127905 +0xbfc05f3280cc59ba +// -0.282227 +0xbfd21000b52577de +// 0.056573 +0x3facf7252e081da5 +// -0.101780 +0xbfba0e4296d9eb43 +// 0.950195 +0x3fee67ffe200faa5 +// -0.062589 +0xbfb005d0644abf95 +// -0.354669 +0xbfd6b2e6712c47d7 +// 0.071094 +0x3fb2333d338e1837 +// -0.127905 +0xbfc05f3280cc59ba +// -0.062589 +0xbfb005d0644abf95 +// 0.921346 +0x3fed7baa65bc37fe +// -0.205745 +0xbfca55dd6e915038 +// -0.090154 +0xbfb71455befa9024 +// 0.191213 +0x3fc879a8fedf8a59 +// 0.087760 +0x3fb67768654a2fc2 +// -0.951460 +0xbfee725d3a57cca3 +// 0.256181 +0x3fd065431dd3567b +// -0.460528 +0xbfdd7949bca10dcd +// 0.125138 +0x3fc00489720ca165 +// -0.838177 +0xbfead257aaf5cd94 +// -0.063922 +0xbfb05d3430c8a718 +// 0.152414 +0x3fc3824c2058292d +// 0.177161 +0x3fc6ad349d736372 +// 0.957259 +0x3feea1de4cf2eaab +// 0.080716 +0x3fb4a9d488c28c4e +// 0.150078 +0x3fc335c48f3b0c0e +// 0.279579 +0x3fd1e49ee94e8511 +// -0.798626 +0xbfe98e58ed289adf +// 0.047473 +0x3fa84e5bb5738f4c +// 0.525749 +0x3fe0d2f03693a686 +// 0.073250 +0x3fb2c07ed3a2bf5c +// -0.889183 +0xbfec742f706484e6 +// -0.332560 +0xbfd548aaad9cef02 +// 0.170819 +0x3fc5dd618e09691d +// -0.082649 +0xbfb52879b6bd8956 +// 0.250495 +0x3fd0081d61438a93 +// -0.003134 +0xbf69abf2b8ee5a00 +// 0.834454 +0x3feab3d8b0ea882f +// -0.237527 +0xbfce674afc6f7bb6 +// -0.192392 +0xbfc8a04de8a16997 +// 0.458523 +0x3fdd586efc90bfcb +// -0.434313 +0xbfdbcbc9d7e922c5 +// -0.364001 +0xbfd74bc9b8795e98 +// 0.274604 +0x3fd1931de7c428ab +// -0.066012 +0xbfb0e62839e552b2 +// 0.774022 +0x3fe8c4ca3487377b +// 0.245202 +0x3fcf62c524c0d75b +// -0.255966 +0xbfd061bfc22a7d54 +// -0.163259 +0xbfc4e5abe25b14a8 +// -0.920702 +0xbfed76645f3933c6 +// -0.003389 +0xbf6bc3515532aec0 +// 0.853573 +0x3feb5078ae25e669 +// -0.052039 +0xbfaaa4cecc3588b8 +// 0.336240 +0x3fd584f576379264 +// 0.180879 +0x3fc72707240c70d2 +// 0.350614 +0x3fd67076a103a34f +// 0.150503 +0x3fc343ae085c1417 +// -0.320879 +0xbfd48948e41942e2 +// -0.853500 +0xbfeb4fdf5514d11e +// 0.279675 +0x3fd1e632a94ff05c +// 0.260202 +0x3fd0a724b16c2003 +// -0.484502 +0xbfdf02150530a204 +// -0.743822 +0xbfe7cd63d15e44fa +// 0.015745 +0x3f901f68c434e940 +// 0.332158 +0x3fd5421253c528e8 +// -0.318449 +0xbfd46178ebd94272 +// 0.181448 +0x3fc739aef86fffb5 +// -0.182770 +0xbfc764fe612e7c38 +// -0.445519 +0xbfdc836239d310e9 +// -0.654523 +0xbfe4f1d981dc0b70 +// -0.553882 +0xbfe1b965edc3b066 +// -0.248116 +0xbfcfc2437982dc9d +// -0.135676 +0xbfc15dd4c432862e +// -0.738235 +0xbfe79f9f09ff8761 +// -0.045222 +0xbfa7274a94989641 +// 0.610733 +0x3fe38b1f873619ec +// -0.706551 +0xbfe69c1151af48fc +// 0.606729 +0x3fe36a53209d7bbf +// -0.149498 +0xbfc322be65a8f27f +// 0.017157 +0x3f9191a4c789e6e0 +// -0.331694 +0xbfd53a7b6665c0df +// -0.414196 +0xbfda822f85333beb +// -0.163695 +0xbfc4f3f20251f064 +// 0.483657 +0x3fdef43db14f3092 +// -0.677445 +0xbfe5ada18b09b18e +// 0.329832 +0x3fd51bf9b2042e6f +// -0.739921 +0xbfe7ad6f8eb0b87c +// 0.146314 +0x3fc2ba6a8604abe7 +// -0.570188 +0xbfe23efb2d018070 +// -0.021287 +0xbf95cc559daefe8a +// -0.324871 +0xbfd4caae5cfc56c5 +// 0.146314 +0x3fc2ba6a8604abe7 +// 0.987696 +0x3fef9b34e6adf229 +// 0.047948 +0x3fa88cb2259d383b +// 0.001790 +0x3f5d54359ef26ce1 +// 0.027319 +0x3f9bf98afd3b5ff6 +// -0.570188 +0xbfe23efb2d018070 +// 0.047948 +0x3fa88cb2259d383b +// 0.813144 +0x3fea0546dbb80c60 +// -0.006976 +0xbf7c92e8074b5531 +// -0.106463 +0xbfbb412a3a9e3ba5 +// -0.021287 +0xbf95cc559daefe8a +// 0.001790 +0x3f5d54359ef26ce1 +// -0.006976 +0xbf7c92e8074b5531 +// 0.999740 +0x3feffdddd0468aaf +// -0.003975 +0xbf7047bea47b9f46 +// -0.324871 +0xbfd4caae5cfc56c5 +// 0.027319 +0x3f9bf98afd3b5ff6 +// -0.106463 +0xbfbb412a3a9e3ba5 +// -0.003975 +0xbf7047bea47b9f46 +// 0.939342 +0x3fee0f15fc042f43 +// -0.046041 +0xbfa792aed0060740 +// -0.517494 +0xbfe08f4f78e0d517 +// 0.604294 +0x3fe3565fad1ac7d5 +// -0.510048 +0xbfe0524fcd98b257 +// 0.323667 +0x3fd4b6f7b8dbdde6 +// 0.147303 +0x3fc2dad031e48fc7 +// -0.517673 +0xbfe090c69e44503c +// -0.079412 +0xbfb4545bfb66df23 +// 0.705783 +0x3fe695c709ddb2c3 +// 0.453740 +0x3fdd0a14d73f7db5 +// 0.601918 +0x3fe342e97a0f893f +// 0.303463 +0x3fd36bef439a5708 +// 0.652254 +0x3fe4df43fac33899 +// 0.291229 +0x3fd2a37dab24fc56 +// -0.188031 +0xbfc811636c142772 +// -0.775022 +0xbfe8ccfb0fa6b70e +// 0.250542 +0x3fd008e366ec6804 +// 0.445462 +0x3fdc8271819e6ee1 +// 0.369418 +0x3fd7a489b46b2b7b +// 0.040790 +0x3fa4e272eae2f5d0 +// 0.114968 +0x3fbd6e90db583e56 +// 0.556196 +0x3fe1cc5ae02afdb5 +// -0.068201 +0xbfb175a0af6e9483 +// -0.142960 +0xbfc24c8245f64ab0 +// 0.807676 +0x3fe9d87a5100f384 +// -0.349520 +0xbfd65e891dfb18b4 +// 0.113267 +0x3fbcff138ead1a76 +// -0.438004 +0xbfdc0842d2ca1048 +// -0.448642 +0xbfdcb68afa82dda6 +// -0.686935 +0xbfe5fb5eabc91520 +// -0.087616 +0xbfb66dfb09a28e9a +// -0.168662 +0xbfc596b3fd21745a +// 0.138392 +0x3fc1b6d227353ab3 +// 0.779519 +0x3fe8f1d24fac9363 +// -0.580581 +0xbfe2941e875ba56a +// 0.873970 +0x3febf79075438ae2 +// 0.036800 +0x3fa2d76a9e47a693 +// 0.163935 +0x3fc4fbd177c4124f +// -0.220288 +0xbfcc3262e0e82b14 +// -0.399275 +0xbfd98db87bde54e1 +// -0.309005 +0xbfd3c6bc9ea0e0f1 +// -0.291123 +0xbfd2a1c23f5e6477 +// 0.810550 +0x3fe9f005f343e8b8 +// -0.366785 +0xbfd779677e5cdd9e +// -0.168052 +0xbfc582b72c09202b +// 0.104169 +0x3fbaaad50ecf992a +// -0.934140 +0xbfede478fa0cf868 +// -0.324245 +0xbfd4c06c5b794f87 +// -0.089514 +0xbfb6ea5ef4d476da +// 0.058177 +0x3fadc9513b2f341a +// -0.331222 +0xbfd532bdc899a6e0 +// 0.757324 +0x3fe83bfed1cd63e9 +// 0.136602 +0x3fc17c2cda686208 +// 0.274833 +0x3fd196df0433a73c +// 0.471762 +0x3fde3158fcfc40b1 +// 0.369781 +0x3fd7aa7d1912dd9f +// -0.246506 +0xbfcf8d7f1ce92238 +// 0.400848 +0x3fd9a77cc57785b9 +// -0.328543 +0xbfd506d8a7d81893 +// 0.730669 +0x3fe761a4fb83b027 +// -0.558074 +0xbfe1dbbd6ac978f7 +// -0.034487 +0xbfa1a84626ef2a40 +// -0.415475 +0xbfda97251cdb48f2 +// -0.692573 +0xbfe6298f1d91b787 +// 0.187316 +0x3fc7f9f75c8457e7 +// 0.646154 +0x3fe4ad4b471e5b99 +// 0.556382 +0x3fe1cde1df70631e +// -0.341263 +0xbfd5d74065bc5c34 +// -0.376476 +0xbfd8182d67377a58 +// -0.121365 +0xbfbf11cde191d15a +// 0.156821 +0x3fc412b519f37514 +// -0.234404 +0xbfce00f6f823714b +// -0.729096 +0xbfe754c14c88a4e5 +// 0.441741 +0x3fdc457a170c5532 +// 0.440166 +0x3fdc2bad5c89c690 +// -0.894427 +0xbfec9f25cb795bd0 +// 0.447214 +0x3fdc9f25aeda35f4 +// 0.447214 +0x3fdc9f25aeda35f4 +// 0.894427 +0x3fec9f25cb795bd0 +// -0.755985 +0xbfe83107341a21fe +// -0.653012 +0xbfe4e5798664311a +// 0.045407 +0x3fa73fa299c7b87c +// -0.000543 +0xbf41cc3387f96400 +// 0.377927 +0x3fd82ff57bf0255a +// -0.378774 +0xbfd83dd51e8ad83d +// 0.844748 +0x3feb082d05e0ee49 +// -0.010104 +0xbf84b1a7df9804cc +// 0.377927 +0x3fd82ff57bf0255a +// -0.463738 +0xbfddade171a8fb03 +// -0.385416 +0xbfd8aaa904e6c046 +// -0.702547 +0xbfe67b4442e0923f +// 0.377927 +0x3fd82ff57bf0255a +// -0.463738 +0xbfddade171a8fb02 +// -0.368501 +0xbfd795869a48bfe7 +// 0.711565 +0x3fe6c52463e6844b +// -0.707408 +0xbfe6a31526055000 +// -0.699129 +0xbfe65f44bef1c2d6 +// 0.103842 +0x3fba9566126f4c66 +// 0.003060 +0x3f6911ce0fd8e5c0 +// -0.000082 +0xbf156e4f6114e000 +// 0.353403 +0x3fd69e27624351b0 +// -0.222573 +0xbfcc7d43745a4f8a +// 0.908213 +0x3fed1014b3c1398b +// 0.026765 +0x3f9b6856e7c76277 +// -0.000715 +0xbf476df8d1b948c0 +// 0.353403 +0x3fd69e27624351b0 +// -0.392292 +0xbfd91b508004d7fe +// -0.257511 +0xbfd07b0fc369e6e8 +// 0.808971 +0x3fe9e3175b03e1dc +// -0.021611 +0xbf9621385798fa47 +// 0.353403 +0x3fd69e27624351b0 +// -0.392292 +0xbfd91b508004d7fd +// -0.221420 +0xbfcc57811a940c5a +// -0.433688 +0xbfdbc18d1ddef8e0 +// -0.695773 +0xbfe643c681da26c9 +// 0.353403 +0x3fd69e27624351b0 +// -0.392292 +0xbfd91b508004d7fd +// -0.221420 +0xbfcc57811a940c54 +// -0.395922 +0xbfd956c9f43d4a5c +// 0.717936 +0x3fe6f954931c7508 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefR1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefR1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..6cd6d1aa101a152c05559b2f05d1867e665b175e --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefR1_f64.txt @@ -0,0 +1,692 @@ +D +345 +// -1.030780 +0xbff07e1393312ff6 +// -0.876937 +0xbfec0fdda943030b +// 0.780764 +0x3fe8fc04bb8a02d4 +// 0.000000 +0x3c98000000000000 +// 1.000000 +0x3ff0000000000000 +// 0.000000 +0x3c98000000000000 +// -0.804313 +0xbfe9bcedf2dd6650 +// -1.000000 +0xbff0000000000000 +// 1.174783 +0x3ff2cbe9551fc84a +// -0.641006 +0xbfe4831fb47e5b67 +// 0.069415 +0x3fb1c534696bdee4 +// 0.000000 +0x0 +// -0.269079 +0xbfd13898d1fdb00b +// 0.000000 +0x0 +// 0.624426 +0x3fe3fb4bf7d0d83f +// 0.000000 +0x0 +// -1.000000 +0xbff0000000000001 +// -0.000000 +0xbc94000000000000 +// -0.197186 +0xbfc93d64acfcfdbd +// -1.000000 +0xbfeffffffffffffe +// 0.714927 +0x3fe6e0af969300dd +// 0.801127 +0x3fe9a2d42b940e2e +// -0.162908 +0xbfc4da280548d972 +// 0.365930 +0x3fd76b64c76f66d3 +// -1.000000 +0xbff0000000000001 +// -0.000000 +0xbcc0000000000000 +// -0.523481 +0xbfe0c05bee7cbbee +// 1.000000 +0x3feffffffffffffe +// 0.201441 +0x3fc9c8d057694e2b +// 0.386050 +0x3fd8b509f792ebf0 +// -0.296783 +0xbfd2fe7f955dbbb7 +// 0.866395 +0x3febb98209cf8234 +// 0.089770 +0x3fb6fb238d6d3613 +// -0.393146 +0xbfd9294f47078aed +// 0.397475 +0x3fd9703a8de43cc2 +// 1.092584 +0x3ff17b3947d96dc5 +// -0.760951 +0xbfe859b556c68252 +// 0.000000 +0x3c52800000000000 +// 0.000000 +0x3c68800000000000 +// 0.000000 +0x3c79800000000000 +// 0.286380 +0x3fd2540df3671960 +// 0.000000 +0x0 +// 0.000000 +0x3c6ae00000000000 +// 0.000000 +0x3c65400000000000 +// -0.041778 +0xbfa563e837455cbd +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xbc60000000000000 +// -0.362264 +0xbfd72f563b5a0626 +// 0.284381 +0x3fd2334aa55d26c5 +// -0.857402 +0xbfeb6fd66af6c76c +// -0.229682 +0xbfcd663c748a53f2 +// 0.287899 +0x3fd26cededa09b90 +// -0.395585 +0xbfd95142a53b44f7 +// 0.112956 +0x3fbceab636e18f5a +// -0.911457 +0xbfed2aa786ab5910 +// 0.282420 +0x3fd2132afed4e4d9 +// 0.003387 +0x3f6bbe78fa5d1cd3 +// 0.000000 +0x3c60400000000000 +// -0.000000 +0xbca2400000000000 +// -0.503397 +0xbfe01bd3bc54e0b5 +// -0.907326 +0xbfed08d193c02bf6 +// 0.000000 +0x0 +// -0.000000 +0xbc70000000000000 +// -1.000000 +0xbfefffffffffffff +// 0.000000 +0x3ca0000000000000 +// -0.000000 +0xbcaa000000000000 +// 0.000000 +0x3cae000000000000 +// 0.778703 +0x3fe8eb21b09fbfa9 +// -1.000000 +0xbff0000000000001 +// 0.000000 +0x3cac000000000000 +// 0.000000 +0x3c90000000000000 +// 0.276710 +0x3fd1b59e315d8ca6 +// 0.220653 +0x3fcc3e5cb5e9158b +// -1.000000 +0xbfeffffffffffffd +// 0.000000 +0x0 +// 0.094149 +0x3fb81a2b3ac81efb +// -0.322146 +0xbfd49e0be4172d62 +// 0.152850 +0x3fc39092ea075bea +// 1.000000 +0x3ff0000000000000 +// 1.436208 +0x3ff6fab508d9279e +// 0.701372 +0x3fe671a301de4bbb +// -0.349707 +0xbfd66198c448a5bb +// -0.000000 +0xbc91000000000000 +// -0.501513 +0xbfe00c65c1595ef0 +// 0.000000 +0x0 +// -0.074481 +0xbfb31135bb78560b +// 0.000000 +0x0 +// 0.247380 +0x3fcfaa251adc060f +// 0.000000 +0x0 +// -1.000000 +0xbff0000000000000 +// -0.000000 +0xbc90000000000000 +// 0.099767 +0x3fb98a5202b34f5a +// 1.000000 +0x3ff0000000000001 +// -0.536297 +0xbfe12958ed2d74d2 +// 0.195722 +0x3fc90d6a95364a17 +// 0.528671 +0x3fe0eae020138ff2 +// 0.148821 +0x3fc30c8d9e1be4a2 +// 0.243725 +0x3fcf3264c47f8c42 +// 0.711041 +0x3fe6c0da1113bb0f +// 1.000000 +0x3ff0000000000000 +// 0.000000 +0x3cb8000000000000 +// -0.097436 +0xbfb8f1971bffec97 +// 1.000000 +0x3feffffffffffffd +// -0.302835 +0xbfd361a800e2fd33 +// -0.204330 +0xbfca277c8b52042b +// 0.054645 +0x3fabfa717adaa8c9 +// 0.031986 +0x3fa060734b42ed53 +// 0.380393 +0x3fd8585d456e6fc4 +// 0.840003 +0x3feae14e62bf062f +// -1.000000 +0xbff0000000000001 +// 0.000000 +0x3c82000000000000 +// 0.213275 +0x3fcb4c9a336ea70c +// 1.000000 +0x3ff0000000000000 +// 0.654937 +0x3fe4f53ee0d468bd +// 0.756210 +0x3fe832de7662d634 +// -0.178630 +0xbfc6dd5a9c05369a +// 0.141949 +0x3fc22b6039f15b51 +// 0.007258 +0x3f7dba0f3fe71253 +// 0.488339 +0x3fdf40f24b000be9 +// -0.130655 +0xbfc0b94b03eb162a +// 1.668658 +0x3ffab2d2bdb97c12 +// -0.614324 +0xbfe3a88bccf054ab +// 1.498826 +0x3ff7fb30ae33f76e +// -0.200453 +0xbfc9a86de179f466 +// -0.000000 +0xbc60000000000000 +// -0.000000 +0xbc40000000000000 +// -0.000000 +0xbc8c000000000000 +// 0.360632 +0x3fd71499bfd0e5cd +// 0.000000 +0x0 +// 0.000000 +0x3c7c000000000000 +// -0.000000 +0xbc98000000000000 +// 0.176471 +0x3fc696975d309bcf +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xbc60000000000000 +// 0.221767 +0x3fcc62e0941cc409 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.893000 +0xbfec937425627366 +// 0.107023 +0x3fbb65dd8023c928 +// 0.380150 +0x3fd85460bc478262 +// -0.215832 +0xbfcba06376f82a3a +// -0.212467 +0xbfcb321a86ae2311 +// -0.243465 +0xbfcf29d86cbacb08 +// -0.426134 +0xbfdb45c604bf6d1e +// -0.871284 +0xbfebe18e30f1df25 +// -0.126406 +0xbfc02e15391bf23b +// -0.112027 +0xbfbcadd16c2cf640 +// 0.000000 +0x3c6e000000000000 +// 0.000000 +0x3c7f000000000000 +// -0.231872 +0xbfcdadfd74949ccd +// 0.553856 +0x3fe1b92f942b64a3 +// 0.000000 +0x0 +// -0.000000 +0xbc94000000000000 +// 0.737455 +0x3fe7993ae5ae6858 +// 0.179819 +0x3fc70452d32a9251 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -1.000000 +0xbfeffffffffffffe +// -0.000000 +0xbc84000000000000 +// 0.000000 +0x3c90000000000000 +// 0.000000 +0x3ca9000000000000 +// 0.432956 +0x3fdbb58f1bb99107 +// 1.000000 +0x3ff0000000000001 +// 0.000000 +0x3cac000000000000 +// -0.000000 +0xbcc3c00000000000 +// -0.244436 +0xbfcf49ab77cd059f +// 0.030138 +0x3f9edc600553fca0 +// -1.000000 +0xbff0000000000000 +// -0.000000 +0xbca0000000000000 +// -0.850907 +0xbfeb3aa090e1f576 +// -0.381389 +0xbfd868aceb7ea775 +// -0.225587 +0xbfcce0056ccbc9c8 +// -1.000000 +0xbfeffffffffffffd +// -0.150033 +0xbfc3344600ab2dc6 +// 0.113421 +0x3fbd092d0679fdd3 +// 0.756024 +0x3fe8315a0e878121 +// -0.821045 +0xbfea460059efd1ee +// -1.000000 +0xbff0000000000002 +// 0.000000 +0x3cb0000000000000 +// 0.000000 +0x3c98000000000000 +// 0.000000 +0x3cb8000000000000 +// -0.122228 +0xbfbf4a572281d91a +// 1.000000 +0x3feffffffffffffd +// 0.000000 +0x3c91000000000000 +// 0.000000 +0x3ca5000000000000 +// 0.167137 +0x3fc564c2e5790064 +// 0.008915 +0x3f824240b3c74e47 +// -1.000000 +0xbfeffffffffffffc +// 0.000000 +0x0 +// 0.475952 +0x3fde75fdf1587afe +// -0.754309 +0xbfe8234c8cf7e705 +// 0.283030 +0x3fd21d2bc8e061da +// -1.000000 +0xbfeffffffffffffc +// 0.279013 +0x3fd1db5ad0207d2b +// -0.034421 +0xbfa19fa449527b08 +// -0.267138 +0xbfd118ca4fef3eef +// 0.517864 +0x3fe092578f33cbc3 +// 1.011727 +0x3ff03008baead983 +// -0.847233 +0xbfeb1c878cf60675 +// 1.351495 +0x3ff59fb93285eeed +// 0.024249 +0x3f98d4cbf27dfb26 +// -0.367819 +0xbfd78a5ac432504b +// -0.084092 +0xbfb587127b1cbcbb +// 0.000000 +0x3c64000000000000 +// -0.000000 +0xbc68000000000000 +// 0.000000 +0x3c18000000000000 +// 0.000000 +0x3c4c000000000000 +// 0.327709 +0x3fd4f92fbffc6cc1 +// 0.000000 +0x0 +// 0.000000 +0x3c94000000000000 +// 0.000000 +0x3c3c000000000000 +// 0.000000 +0x3c58000000000000 +// 0.012235 +0x3f890e77a90abd76 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x3bc0000000000000 +// -0.000000 +0xbc28000000000000 +// 0.186716 +0x3fc7e64d0026dfd6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.658554 +0x3fe512e065000b78 +// -0.724371 +0xbfe72e0d1f1d94d8 +// 0.091897 +0x3fb78690e804069a +// -0.073218 +0xbfb2be6a153d6199 +// -0.166692 +0xbfc5562b3772faa9 +// -0.140819 +0xbfc2065d0bd794f5 +// 0.100983 +0x3fb9da0176bb06f4 +// 0.547503 +0x3fe185255963f975 +// 0.701395 +0x3fe671d39e56f1f4 +// -0.445071 +0xbfdc7c0a4f55a421 +// -0.575425 +0xbfe269e15f89c7f3 +// -0.003574 +0xbf6d4652471f8cfa +// -0.000000 +0xbcbdda0000000000 +// -0.000000 +0xbcc4f80000000000 +// 0.000000 +0x3cbae50000000000 +// 0.740910 +0x3fe7b58890dfe81a +// -0.398579 +0xbfd982533c358bc3 +// 0.000000 +0x0 +// -0.000000 +0xbccd000000000000 +// 0.000000 +0x3cc2c00000000000 +// -0.109908 +0xbfbc22ef872a5ef0 +// -0.313929 +0xbfd4176ac6e5ecd6 +// 0.000000 +0x0 +// 0.000000 +0x0 +// -0.000000 +0xbca8000000000000 +// -0.795435 +0xbfe9743442f99dde +// -0.173597 +0xbfc63869ab5dd9d9 +// 0.355523 +0x3fd6c0e5493a02fb +// 0.231744 +0x3fcda9c96eff9bc8 +// 0.396289 +0x3fd95ccd2dff9e75 +// 0.064924 +0x3fb09ed4f1eccfb2 +// -0.958097 +0xbfeea8ba98b750a4 +// -0.175388 +0xbfc6731a9ede7c97 +// -0.114325 +0xbfbd445f20996c39 +// -0.195498 +0xbfc9061704deae3c +// -0.647616 +0xbfe4b9446cffca9d +// -0.093667 +0xbfb7fa8869820ab0 +// -0.790632 +0xbfe94cdb5420aa05 +// 0.309088 +0x3fd3c81aa7de6fe8 +// 0.528550 +0x3fe0e9e286a9534c +// 0.228974 +0x3fcd4f04c109de5d +// 0.269604 +0x3fd1413052448a7f +// -0.784228 +0xbfe91864bb0781f1 +// -0.863233 +0xbfeb9f9abc2d4b4c +// 0.504806 +0x3fe0275e66a89fe0 +// -0.077190 +0xbfb3c2b621ab8b6b +// 0.786892 +0x3fe92e37714aa2be +// 0.443195 +0x3fdc5d4d50eeb0f7 +// 0.311324 +0x3fd3ecba48c791d1 +// 0.000000 +0x3cbe000000000000 +// -1.000000 +0xbff0000000000001 +// 0.000000 +0x3cb1000000000000 +// -0.000000 +0xbcae000000000000 +// -0.000000 +0xbcc3000000000000 +// -0.000000 +0xbcae000000000000 +// -0.277775 +0xbfd1c712b6d8d275 +// -1.000000 +0xbff0000000000000 +// -0.000000 +0xbcaa000000000000 +// -0.000000 +0xbca0000000000000 +// 0.000000 +0x3c90000000000000 +// 0.419219 +0x3fdad47c7002a75d +// 0.339695 +0x3fd5bd903c2f0e5e +// -1.000000 +0xbfeffffffffffffc +// 0.000000 +0x3ca0000000000000 +// 0.000000 +0x3cc4000000000000 +// -0.485384 +0xbfdf1088ac9f9d6e +// -0.891748 +0xbfec893219c81aa1 +// -0.071731 +0xbfb25cfa7c727d11 +// 1.000000 +0x3ff0000000000002 +// 0.000000 +0x3c90000000000000 +// -0.117802 +0xbfbe28494323ffe7 +// 0.140126 +0x3fc1efa573c8f10c +// 0.477551 +0x3fde9030c6e3e685 +// -0.562126 +0xbfe1fcef26db380a +// -1.000000 +0xbff0000000000000 +// -2.236068 +0xc001e37798040fef +// 0.894427 +0x3fec9f25aeda35f6 +// -0.236068 +0xbfce37799e787897 +// -0.447214 +0xbfdc9f25923b1037 +// -2.645556 +0xc0052a190800c4f1 +// 0.755857 +0x3fe82ffa91bfdccf +// 0.748964 +0x3fe7f782ade4f2ef +// 0.748703 +0x3fe7f55f61db9632 +// -0.215222 +0xbfcb8c67de6f0915 +// 0.656054 +0x3fe4fe649555cbc3 +// 0.659776 +0x3fe51ce2bdade12a +// 0.660096 +0x3fe51f824e17bfe6 +// -0.215222 +0xbfcb8c67de6f0915 +// 0.397732 +0x3fd974702c49cea0 +// -0.061232 +0xbfaf59d7e3fdac5c +// -0.060960 +0xbfaf3631aec185eb +// -0.215222 +0xbfcb8c67de6f0915 +// 0.397732 +0x3fd974702c49cea0 +// 0.407224 +0x3fda0ff6340f47ef +// 0.000973 +0x3f4fe49684b9c240 +// -2.827225 +0xc0069e27eba00810 +// 0.692271 +0x3fe62714beae3dc9 +// 0.692247 +0x3fe626e2e77d24f5 +// 0.691670 +0x3fe62229aeebbdf5 +// 0.691621 +0x3fe621c1c25c2ebd +// -0.206982 +0xbfca7e6469d9877f +// 0.728666 +0x3fe7513bd239807a +// 0.707704 +0x3fe6a58208f0b8fc +// 0.708344 +0x3fe6aac05232f8fa +// 0.708399 +0x3fe6ab33ae619aee +// -0.206982 +0xbfca7e6469d9877f +// 0.392750 +0x3fd922d19c75c05f +// -0.141295 +0xbfc215f5bc729f2b +// -0.140750 +0xbfc2041763345944 +// -0.140719 +0xbfc20312f01e177e +// -0.206982 +0xbfca7e6469d9877f +// 0.392750 +0x3fd922d19c75c05f +// 0.352912 +0x3fd6961e2c9471e0 +// -0.005568 +0xbf76ce373dc950d6 +// -0.005504 +0xbf768baccdf62a23 +// -0.206982 +0xbfca7e6469d9877f +// 0.392750 +0x3fd922d19c75c05f +// 0.352912 +0x3fd6961e2c9471de +// 0.398654 +0x3fd9838a2e3cfcd8 +// 0.000197 +0x3f29c4a1ca65a660 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefTau1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefTau1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..77462e3770d0bba7dabdf24d22aa3730b55358fd --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefTau1_f64.txt @@ -0,0 +1,156 @@ +D +77 +// 1.242551 +0x3ff3e17cbf8fe591 +// 0.000000 +0x0 +// 1.214389 +0x3ff36e230b111c2f +// 0.000000 +0x0 +// 1.363206 +0x3ff5cfb0e79597c1 +// 0.000000 +0x0 +// 1.268599 +0x3ff44c2e476e3da2 +// 1.126311 +0x3ff2055ec134345a +// 1.425830 +0x3ff6d0336b971dec +// 1.052812 +0x3ff0d8513493b0b0 +// 1.202787 +0x3ff33e9d6258429a +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.412375 +0x3ff699160df03b98 +// 1.096941 +0x3ff18d118c78334e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.182166 +0x3ff2ea26875dcb02 +// 1.735409 +0x3ffbc43c2e43fcd2 +// 1.954341 +0x3fff44fad38d0917 +// 0.000000 +0x0 +// 1.388354 +0x3ff636b2a7759f7e +// 0.000000 +0x0 +// 1.222148 +0x3ff38dea925a8108 +// 1.277111 +0x3ff46f0be7cbe364 +// 1.601424 +0x3ff99f6ef8f43a6b +// 1.143917 +0x3ff24d7b7a92af5e +// 1.327677 +0x3ff53e2a3db29abd +// 1.092611 +0x3ff17b55d3e59b6c +// 1.599284 +0x3ff996aaca4f3e47 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.205745 +0x3ff34abbadd22a07 +// 1.479683 +0x3ff7acc79c2b5c60 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.003134 +0x3ff00cd5f95c772d +// 1.725283 +0x3ffb9ac24e8eb790 +// 1.232694 +0x3ff3b91dbbcef8ac +// 1.194661 +0x3ff31d54e2e56be4 +// 1.484502 +0x3ff7c085414c2881 +// 1.273686 +0x3ff4610413c16a60 +// 1.736912 +0x3ffbca63f3ddee8b +// 1.577059 +0x3ff93ba2850cbf56 +// 1.739921 +0x3ffbd6b7c7585c3e +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.046041 +0x3ff0bc957680303a +// 1.590546 +0x3ff972e04652c5b1 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 1.349520 +0x3ff597a2477ec62d +// 1.176015 +0x3ff2d0f56bfe2ef7 +// 1.104097 +0x3ff1aa61dca61eb6 +// 1.823283 +0x3ffd2c2abcbf4774 +// 0.000000 +0x0 +// 1.331222 +0x3ff54caf722669b8 +// 1.036140 +0x3ff094073a877ec7 +// 1.621797 +0x3ff9f2e150214714 +// 1.519774 +0x3ff850fe4506f010 +// 0.000000 +0x0 +// 1.894427 +0x3ffe4f92e5bcade8 +// 0.000000 +0x0 +// 1.755985 +0x3ffc18839a0d10ff +// 1.519317 +0x3ff84f1f11c0baba +// 1.715514 +0x3ffb72be770585ae +// 0.000000 +0x0 +// 1.707408 +0x3ffb518a9302a800 +// 1.367280 +0x3ff5e061143cc31a +// 1.601160 +0x3ff99e59ee4a8652 +// 1.725738 +0x3ffb9c9f2a71dcc5 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefValueHouseholder1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefValueHouseholder1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..11df099b4106e951587f09e8efa6c0fb333d9452 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefValueHouseholder1_f64.txt @@ -0,0 +1,12 @@ +D +5 +// 1.092321 +0x3ff17a25b9d7356d +// 1.152027 +0x3ff26eb424061df6 +// 1.028846 +0x3ff076279b0a37e9 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefVectorHouseholder1_f64.txt b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefVectorHouseholder1_f64.txt new file mode 100644 index 0000000000000000000000000000000000000000..8429d9dc5c55b96381c33bfc31d427b853fdc937 --- /dev/null +++ b/Testing/Patterns/DSP/Matrix/Unary/UnaryF64/RefVectorHouseholder1_f64.txt @@ -0,0 +1,62 @@ +D +30 +// 1.000000 +0x3ff0000000000000 +// -0.900884 +0xbfecd409fa5e38e5 +// -0.139183 +0xbfc1d0c29f9f68cb +// 1.000000 +0x3ff0000000000000 +// 0.185600 +0x3fc7c1c05c0b3ea6 +// 0.011106 +0x3f86be9a0d3b9634 +// 0.153317 +0x3fc39fe0c2c3fdcd +// -0.369477 +0xbfd7a5825225dd0c +// 0.402847 +0x3fd9c83cf1c3ec4e +// 0.551871 +0x3fe1a8edef756a5e +// -0.273190 +0xbfd17bf2424aa6d6 +// 1.000000 +0x3ff0000000000000 +// -0.009121 +0xbf82ae1330e11254 +// 0.112010 +0x3fbcacaea8fc5248 +// 0.453014 +0x3fdcfe3033955f11 +// 0.122649 +0x3fbf65e4ea65fd4b +// -0.514702 +0xbfe0786febdaa6ec +// -0.539507 +0xbfe143a3cf8eecd8 +// 0.139155 +0x3fc1cfd84592ef18 +// -0.147234 +0xbfc2d88cbeef49c7 +// -0.315984 +0xbfd439170d2f1a09 +// -0.118983 +0xbfbe75ac8a6e1faf +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 +// 0.000000 +0x0 diff --git a/Testing/Source/Tests/UnaryTestsF16.cpp b/Testing/Source/Tests/UnaryTestsF16.cpp index 406b67d0ec8f6159963bf8b6d14042bc618dc554..6295ea2538b65221305224d919457de0b4d17f12 100755 --- a/Testing/Source/Tests/UnaryTestsF16.cpp +++ b/Testing/Source/Tests/UnaryTestsF16.cpp @@ -15,6 +15,16 @@ a double precision computation. /* +Comparisons for QR + +*/ + +#define SNR_QR_THRESHOLD 20 +#define REL_QR_ERROR (3.0e-2) +#define ABS_QR_ERROR (3.0e-2) + +/* + Comparisons for inverse */ @@ -153,6 +163,122 @@ Comparison for Cholesky memcpy((void*)bp,(const void*)inp2,sizeof(float16_t)*internal); +static void checkInnerTailOverflow(float16_t *b) +{ + ASSERT_TRUE(b[0] == 0); + ASSERT_TRUE(b[1] == 0); + ASSERT_TRUE(b[2] == 0); + ASSERT_TRUE(b[3] == 0); + ASSERT_TRUE(b[4] == 0); + ASSERT_TRUE(b[5] == 0); + ASSERT_TRUE(b[6] == 0); + ASSERT_TRUE(b[7] == 0); +} + + +void UnaryTestsF16::test_householder_f16() +{ + int16_t vecDim; + const int16_t *dimsp = dims.ptr(); + const int nbVectors = dims.nbSamples(); + const float16_t *inp1=input1.ptr(); + + float16_t *outp=output.ptr(); + float16_t *outBetap=outputBeta.ptr(); + + + for(int i=0; i < nbVectors ; i++) + { + vecDim = *dimsp++; + + float16_t beta = arm_householder_f16(inp1,DEFAULT_HOUSEHOLDER_THRESHOLD_F16,vecDim,outp); + *outBetap = beta; + + outp += vecDim; + inp1 += vecDim; + outBetap++; + checkInnerTailOverflow(outp); + checkInnerTailOverflow(outBetap); + + } + + ASSERT_EMPTY_TAIL(output); + ASSERT_EMPTY_TAIL(outputBeta); + + ASSERT_SNR(output,ref,(float16_t)SNR_THRESHOLD); + ASSERT_SNR(outputBeta,refBeta,(float16_t)SNR_THRESHOLD); + + ASSERT_CLOSE_ERROR(output,ref,ABS_ERROR,REL_ERROR); + ASSERT_CLOSE_ERROR(outputBeta,refBeta,ABS_ERROR,REL_ERROR); + + +} + +void UnaryTestsF16::test_mat_qr_f16() +{ + int16_t rows, columns, rank; + const int16_t *dimsp = dims.ptr(); + const int nbMatrixes = dims.nbSamples() / 3; + const float16_t *inp1=input1.ptr(); + + float16_t *outTaup=outputTau.ptr(); + float16_t *outRp=outputR.ptr(); + float16_t *outQp=outputQ.ptr(); + float16_t *pTmpA=a.ptr(); + float16_t *pTmpB=b.ptr(); + + (void) outTaup; + (void) outRp; + + for(int i=0; i < nbMatrixes ; i++) + { + rows = *dimsp++; + columns = *dimsp++; + rank = *dimsp++; + (void)rank; + + + in1.numRows=rows; + in1.numCols=columns; + in1.pData = (float16_t*)inp1; + + + outR.numRows = rows; + outR.numCols = columns; + outR.pData = (float16_t*)outRp; + + outQ.numRows = rows; + outQ.numCols = rows; + outQ.pData = (float16_t*)outQp; + + arm_status status=arm_mat_qr_f16(&in1,DEFAULT_HOUSEHOLDER_THRESHOLD_F16,&outR,&outQ,outTaup,pTmpA,pTmpB); + ASSERT_TRUE(status==ARM_MATH_SUCCESS); + + + inp1 += rows * columns; + outRp += rows * columns; + outQp += rows * rows; + outTaup += columns; + + checkInnerTailOverflow(outRp); + checkInnerTailOverflow(outQp); + checkInnerTailOverflow(outTaup); + + + } + + ASSERT_EMPTY_TAIL(outputR); + ASSERT_EMPTY_TAIL(outputQ); + ASSERT_EMPTY_TAIL(outputTau); + + //ASSERT_SNR(refQ,outputQ,(float16_t)SNR_QR_THRESHOLD); + //ASSERT_SNR(refR,outputR,(float16_t)SNR_QR_THRESHOLD); + //ASSERT_SNR(refTau,outputTau,(float16_t)SNR_QR_THRESHOLD); + + ASSERT_CLOSE_ERROR(refQ,outputQ,ABS_QR_ERROR,REL_QR_ERROR); + ASSERT_CLOSE_ERROR(refR,outputR,ABS_QR_ERROR,REL_QR_ERROR); + ASSERT_CLOSE_ERROR(refTau,outputTau,ABS_QR_ERROR,REL_QR_ERROR); +} void UnaryTestsF16::test_mat_vec_mult_f16() { @@ -602,6 +728,34 @@ void UnaryTestsF16::test_mat_inverse_f16() a.create(MAXMATRIXDIM*MAXMATRIXDIM,UnaryTestsF16::TMPA_F16_ID,mgr); b.create(MAXMATRIXDIM*MAXMATRIXDIM,UnaryTestsF16::TMPB_F16_ID,mgr); break; + + case TEST_HOUSEHOLDER_F16_11: + input1.reload(UnaryTestsF16::INPUTS_HOUSEHOLDER_F16_ID,mgr); + dims.reload(UnaryTestsF16::DIMS_HOUSEHOLDER_S16_ID,mgr); + ref.reload(UnaryTestsF16::REF_HOUSEHOLDER_V_F16_ID,mgr); + refBeta.reload(UnaryTestsF16::REF_HOUSEHOLDER_BETA_F16_ID,mgr); + + + output.create(ref.nbSamples(),UnaryTestsF16::TMPA_F16_ID,mgr); + outputBeta.create(refBeta.nbSamples(),UnaryTestsF16::TMPB_F16_ID,mgr); + break; + + + case TEST_MAT_QR_F16_12: + input1.reload(UnaryTestsF16::INPUTS_QR_F16_ID,mgr); + dims.reload(UnaryTestsF16::DIMS_QR_S16_ID,mgr); + refTau.reload(UnaryTestsF16::REF_QR_TAU_F16_ID,mgr); + refR.reload(UnaryTestsF16::REF_QR_R_F16_ID,mgr); + refQ.reload(UnaryTestsF16::REF_QR_Q_F16_ID,mgr); + + + outputTau.create(refTau.nbSamples(),UnaryTestsF16::TMPA_F16_ID,mgr); + outputR.create(refR.nbSamples(),UnaryTestsF16::TMPB_F16_ID,mgr); + outputQ.create(refQ.nbSamples(),UnaryTestsF16::TMPC_F16_ID,mgr); + + a.create(47,UnaryTestsF16::TMPC_F16_ID,mgr); + b.create(47,UnaryTestsF16::TMPD_F16_ID,mgr); + break; } diff --git a/Testing/Source/Tests/UnaryTestsF32.cpp b/Testing/Source/Tests/UnaryTestsF32.cpp index f66bba288b31273d06495002b7d238ac739dbd6f..8c0606b2b401ac8d7367fce738c0f18c75868b96 100755 --- a/Testing/Source/Tests/UnaryTestsF32.cpp +++ b/Testing/Source/Tests/UnaryTestsF32.cpp @@ -15,6 +15,24 @@ a double precision computation. /* +Comparisons for Householder + +*/ +#define SNR_HOUSEHOLDER_THRESHOLD 140 +#define REL_HOUSEHOLDER_ERROR (1.0e-7) +#define ABS_HOUSEHOLDER_ERROR (1.0e-7) + +/* + +Comparisons for QR decomposition + +*/ +#define SNR_QR_THRESHOLD 90 +#define REL_QR_ERROR (1.0e-4) +#define ABS_QR_ERROR (2.0e-4) + +/* + Comparisons for inverse */ @@ -185,6 +203,119 @@ static void checkInnerTailOverflow(float32_t *b) A[j*n + w] = tmp; \ } +void UnaryTestsF32::test_householder_f32() +{ + int32_t vecDim; + const int16_t *dimsp = dims.ptr(); + const int nbVectors = dims.nbSamples(); + const float32_t *inp1=input1.ptr(); + + float32_t *outp=output.ptr(); + float32_t *outBetap=outputBeta.ptr(); + + + for(int i=0; i < nbVectors ; i++) + { + vecDim = *dimsp++; + + float32_t beta = arm_householder_f32(inp1,DEFAULT_HOUSEHOLDER_THRESHOLD_F32,vecDim,outp); + *outBetap = beta; + + outp += vecDim; + inp1 += vecDim; + outBetap++; + checkInnerTailOverflow(outp); + checkInnerTailOverflow(outBetap); + + } + + ASSERT_EMPTY_TAIL(output); + ASSERT_EMPTY_TAIL(outputBeta); + + ASSERT_SNR(output,ref,(float32_t)SNR_HOUSEHOLDER_THRESHOLD); + ASSERT_SNR(outputBeta,refBeta,(float32_t)SNR_HOUSEHOLDER_THRESHOLD); + + ASSERT_CLOSE_ERROR(output,ref,ABS_HOUSEHOLDER_ERROR,REL_HOUSEHOLDER_ERROR); + ASSERT_CLOSE_ERROR(outputBeta,refBeta,ABS_HOUSEHOLDER_ERROR,REL_HOUSEHOLDER_ERROR); + + +} + + +void UnaryTestsF32::test_mat_qr_f32() +{ + int32_t rows, columns, rank; + int nb; + const int16_t *dimsp = dims.ptr(); + const int nbMatrixes = dims.nbSamples() / 3; + const float32_t *inp1=input1.ptr(); + + float32_t *outTaup=outputTau.ptr(); + float32_t *outRp=outputR.ptr(); + float32_t *outQp=outputQ.ptr(); + + float32_t *pTmpA=a.ptr(); + float32_t *pTmpB=b.ptr(); + + (void) outTaup; + (void) outRp; + (void) outQp; + (void)nbMatrixes; + (void)nb; + + nb=0; + for(int i=0; i < nbMatrixes ; i++) + //for(int i=0; i < 1 ; i++) + { + rows = *dimsp++; + columns = *dimsp++; + rank = *dimsp++; + (void)rank; + + //printf("--> %d %d\n",nb,i); + nb += rows * columns; + + + in1.numRows=rows; + in1.numCols=columns; + in1.pData = (float32_t*)inp1; + + outR.numRows = rows; + outR.numCols = columns; + outR.pData = (float32_t*)outRp; + + outQ.numRows = rows; + outQ.numCols = rows; + outQ.pData = (float32_t*)outQp; + + + arm_status status=arm_mat_qr_f32(&in1,DEFAULT_HOUSEHOLDER_THRESHOLD_F32,&outR,&outQ,outTaup,pTmpA,pTmpB); + ASSERT_TRUE(status==ARM_MATH_SUCCESS); + + + inp1 += rows * columns; + outRp += rows * columns; + outQp += rows * rows; + outTaup += columns; + + checkInnerTailOverflow(outRp); + checkInnerTailOverflow(outQp); + checkInnerTailOverflow(outTaup); + + } + + ASSERT_EMPTY_TAIL(outputR); + ASSERT_EMPTY_TAIL(outputQ); + ASSERT_EMPTY_TAIL(outputTau); + + ASSERT_SNR(refQ,outputQ,(float32_t)SNR_QR_THRESHOLD); + ASSERT_SNR(refR,outputR,(float32_t)SNR_QR_THRESHOLD); + ASSERT_SNR(refTau,outputTau,(float32_t)SNR_QR_THRESHOLD); + + ASSERT_CLOSE_ERROR(refQ,outputQ,ABS_QR_ERROR,REL_QR_ERROR); + ASSERT_CLOSE_ERROR(refR,outputR,ABS_QR_ERROR,REL_QR_ERROR); + ASSERT_CLOSE_ERROR(refTau,outputTau,ABS_QR_ERROR,REL_QR_ERROR); +} void UnaryTestsF32::test_mat_vec_mult_f32() { @@ -870,6 +1001,35 @@ void UnaryTestsF32::test_mat_inverse_f32() break; + case TEST_HOUSEHOLDER_F32_13: + input1.reload(UnaryTestsF32::INPUTS_HOUSEHOLDER_F32_ID,mgr); + dims.reload(UnaryTestsF32::DIMS_HOUSEHOLDER_S16_ID,mgr); + ref.reload(UnaryTestsF32::REF_HOUSEHOLDER_V_F32_ID,mgr); + refBeta.reload(UnaryTestsF32::REF_HOUSEHOLDER_BETA_F32_ID,mgr); + + + output.create(ref.nbSamples(),UnaryTestsF32::TMPA_F32_ID,mgr); + outputBeta.create(refBeta.nbSamples(),UnaryTestsF32::TMPB_F32_ID,mgr); + break; + + + case TEST_MAT_QR_F32_14: + input1.reload(UnaryTestsF32::INPUTS_QR_F32_ID,mgr); + dims.reload(UnaryTestsF32::DIMS_QR_S16_ID,mgr); + refTau.reload(UnaryTestsF32::REF_QR_TAU_F32_ID,mgr); + refR.reload(UnaryTestsF32::REF_QR_R_F32_ID,mgr); + refQ.reload(UnaryTestsF32::REF_QR_Q_F32_ID,mgr); + + + outputTau.create(refTau.nbSamples(),UnaryTestsF32::TMPA_F32_ID,mgr); + outputR.create(refR.nbSamples(),UnaryTestsF32::TMPB_F32_ID,mgr); + outputQ.create(refQ.nbSamples(),UnaryTestsF32::TMPC_F32_ID,mgr); + + a.create(47,UnaryTestsF32::TMPC_F32_ID,mgr); + b.create(47,UnaryTestsF32::TMPD_F32_ID,mgr); + break; + + } @@ -886,6 +1046,9 @@ void UnaryTestsF32::test_mat_inverse_f32() case TEST_MAT_LDL_F32_11: //outputll.dump(mgr); break; + case TEST_MAT_QR_F32_14: + //outputR.dump(mgr); + break; } //output.dump(mgr); } diff --git a/Testing/Source/Tests/UnaryTestsF64.cpp b/Testing/Source/Tests/UnaryTestsF64.cpp index 7b8cf1b0953c9195e8cc6c4c7c5d6e082b2b3c52..a61e05c8c3682e3490cf025ec47a50e41ef07ddc 100755 --- a/Testing/Source/Tests/UnaryTestsF64.cpp +++ b/Testing/Source/Tests/UnaryTestsF64.cpp @@ -1,7 +1,7 @@ #include "UnaryTestsF64.h" #include "Error.h" -#define SNR_THRESHOLD 120 +#define SNR_THRESHOLD 250 /* @@ -9,8 +9,26 @@ Reference patterns are generated with a double precision computation. */ -#define REL_ERROR (1.0e-6) -#define ABS_ERROR (1.0e-5) +#define REL_ERROR (1.0e-12) +#define ABS_ERROR (1.0e-12) + +/* + +Comparisons for householder + +*/ +#define SNR_HOUSEHOLDER_THRESHOLD 270 +#define REL_HOUSEHOLDER_ERROR (1.0e-13) +#define ABS_HOUSEHOLDER_ERROR (1.0e-13) + +/* + +Comparison for QR decomposition + +*/ +#define SNR_QR_THRESHOLD 270 +#define REL_QR_ERROR (1.0e-13) +#define ABS_QR_ERROR (1.0e-13) /* @@ -121,6 +139,11 @@ Comparison for Cholesky A[j*n + w] = tmp; \ } +static void checkInnerTailOverflow(float64_t *b) +{ + ASSERT_TRUE(b[0] == 0); + ASSERT_TRUE(b[1] == 0); +} void UnaryTestsF64::test_mat_add_f64() @@ -128,6 +151,140 @@ void UnaryTestsF64::test_mat_add_f64() } +void UnaryTestsF64::test_householder_f64() +{ + int64_t vecDim; + const int16_t *dimsp = dims.ptr(); + const int nbVectors = dims.nbSamples(); + const float64_t *inp1=input1.ptr(); + + float64_t *outp=output.ptr(); + float64_t *outBetap=outputBeta.ptr(); + + + for(int i=0; i < nbVectors ; i++) + { + vecDim = *dimsp++; + + float64_t beta = arm_householder_f64(inp1,DEFAULT_HOUSEHOLDER_THRESHOLD_F64,vecDim,outp); + *outBetap = beta; + + outp += vecDim; + inp1 += vecDim; + outBetap++; + checkInnerTailOverflow(outp); + checkInnerTailOverflow(outBetap); + + } + + ASSERT_EMPTY_TAIL(output); + ASSERT_EMPTY_TAIL(outputBeta); + + ASSERT_SNR(output,ref,(float64_t)SNR_HOUSEHOLDER_THRESHOLD); + ASSERT_SNR(outputBeta,refBeta,(float64_t)SNR_HOUSEHOLDER_THRESHOLD); + + ASSERT_CLOSE_ERROR(output,ref,ABS_HOUSEHOLDER_ERROR,REL_HOUSEHOLDER_ERROR); + ASSERT_CLOSE_ERROR(outputBeta,refBeta,ABS_HOUSEHOLDER_ERROR,REL_HOUSEHOLDER_ERROR); + + +} + +#include "dsp/debug.h" + +void UnaryTestsF64::test_mat_qr_f64() +{ + int64_t rows, columns, rank; + int nb; + const int16_t *dimsp = dims.ptr(); + const int nbMatrixes = dims.nbSamples() / 3; + const float64_t *inp1=input1.ptr(); + + float64_t *outTaup=outputTau.ptr(); + float64_t *outRp=outputR.ptr(); + float64_t *outQp=outputQ.ptr(); + + float64_t *pTmpA=a.ptr(); + float64_t *pTmpB=b.ptr(); + + (void) outTaup; + (void) outRp; + (void) outQp; + (void)nbMatrixes; + (void)nb; + (void)dimsp; + (void)inp1; + + nb=0; + for(int i=0; i < nbMatrixes ; i++) + //for(int i=0; i < 1 ; i++) + { + rows = *dimsp++; + columns = *dimsp++; + rank = *dimsp++; + (void)rank; + + //printf("--> %d %d : %lld %lld\n",nb,i,rows,columns); + nb += rows * columns; + + in1.numRows=rows; + in1.numCols=columns; + in1.pData = (float64_t*)inp1; + + outR.numRows = rows; + outR.numCols = columns; + outR.pData = (float64_t*)outRp; + + outQ.numRows = rows; + outQ.numCols = rows; + outQ.pData = (float64_t*)outQp; + + + arm_status status=arm_mat_qr_f64(&in1,DEFAULT_HOUSEHOLDER_THRESHOLD_F64,&outR,&outQ,outTaup,pTmpA,pTmpB); + ASSERT_TRUE(status==ARM_MATH_SUCCESS); + + // Set Householder reflectors into R matrix to 0 + //float64_t *p = outRp ; + //printf("%d %d %d\n",in1.numCols, outR.numRows,outR.numCols); + #if 0 + for(int col=0 ; col < in1.numCols; col++) + { + float64_t *pa = p + outR.numCols; + for(int k=0;k=1.19', 'networkx>=2.5', 'jinja2>= 2.0, <3.0', @@ -289,8 +294,8 @@ def build(): 'markupsafe<2.1' ], project_urls={ # Optional - 'Bug Reports': 'https://github.com/ARM-software/CMSIS_5/issues', - 'Source': 'https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/DSP', + 'Bug Reports': 'https://github.com/ARM-software/CMSIS-DSP/issues', + 'Source': 'https://github.com/ARM-software/CMSIS-DSP', } )