CMSIS-DSP: MVE version of arm_cfft_f32.
diff --git a/CMSIS/DSP/Include/arm_math.h b/CMSIS/DSP/Include/arm_math.h
index 2cd6375..3e62e07 100644
--- a/CMSIS/DSP/Include/arm_math.h
+++ b/CMSIS/DSP/Include/arm_math.h
@@ -3147,8 +3147,21 @@
const float32_t *pTwiddle; /**< points to the Twiddle factor table. */
const uint16_t *pBitRevTable; /**< points to the bit reversal table. */
uint16_t bitRevLength; /**< bit reversal table length. */
+#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+ const uint32_t *rearranged_twiddle_tab_stride1_arr; /**< Per stage reordered twiddle pointer (offset 1) */ \
+ const uint32_t *rearranged_twiddle_tab_stride2_arr; /**< Per stage reordered twiddle pointer (offset 2) */ \
+ const uint32_t *rearranged_twiddle_tab_stride3_arr; /**< Per stage reordered twiddle pointer (offset 3) */ \
+ const float32_t *rearranged_twiddle_stride1; /**< reordered twiddle offset 1 storage */ \
+ const float32_t *rearranged_twiddle_stride2; /**< reordered twiddle offset 2 storage */ \
+ const float32_t *rearranged_twiddle_stride3;
+#endif
} arm_cfft_instance_f32;
+
+ arm_status arm_cfft_init_f32(
+ arm_cfft_instance_f32 * S,
+ uint16_t fftLen);
+
void arm_cfft_f32(
const arm_cfft_instance_f32 * S,
float32_t * p1,
diff --git a/CMSIS/DSP/Include/arm_mve_tables.h b/CMSIS/DSP/Include/arm_mve_tables.h
new file mode 100755
index 0000000..b91e835
--- /dev/null
+++ b/CMSIS/DSP/Include/arm_mve_tables.h
@@ -0,0 +1,97 @@
+/* ----------------------------------------------------------------------
+ * Project: CMSIS DSP Library
+ * Title: arm_mve_tables.h
+ * Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc
+ * used for MVE implementation only
+ *
+ * $Date: 08. January 2020
+ * $Revision: V1.7.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #ifndef _ARM_MVE_TABLES_H
+ #define _ARM_MVE_TABLES_H
+
+ #include "arm_math.h"
+
+ #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+ #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
+
+
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_16) || defined(ARM_TABLE_TWIDDLECOEF_F32_32)
+
+extern uint32_t rearranged_twiddle_tab_stride1_arr_16[2];
+extern uint32_t rearranged_twiddle_tab_stride2_arr_16[2];
+extern uint32_t rearranged_twiddle_tab_stride3_arr_16[2];
+extern float32_t rearranged_twiddle_stride1_16[8];
+extern float32_t rearranged_twiddle_stride2_16[8];
+extern float32_t rearranged_twiddle_stride3_16[8];
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_64) || defined(ARM_TABLE_TWIDDLECOEF_F32_128)
+
+extern uint32_t rearranged_twiddle_tab_stride1_arr_64[3];
+extern uint32_t rearranged_twiddle_tab_stride2_arr_64[3];
+extern uint32_t rearranged_twiddle_tab_stride3_arr_64[3];
+extern float32_t rearranged_twiddle_stride1_64[40];
+extern float32_t rearranged_twiddle_stride2_64[40];
+extern float32_t rearranged_twiddle_stride3_64[40];
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_256) || defined(ARM_TABLE_TWIDDLECOEF_F32_512)
+
+extern uint32_t rearranged_twiddle_tab_stride1_arr_256[4];
+extern uint32_t rearranged_twiddle_tab_stride2_arr_256[4];
+extern uint32_t rearranged_twiddle_tab_stride3_arr_256[4];
+extern float32_t rearranged_twiddle_stride1_256[168];
+extern float32_t rearranged_twiddle_stride2_256[168];
+extern float32_t rearranged_twiddle_stride3_256[168];
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_1024) || defined(ARM_TABLE_TWIDDLECOEF_F32_2048)
+
+extern uint32_t rearranged_twiddle_tab_stride1_arr_1024[5];
+extern uint32_t rearranged_twiddle_tab_stride2_arr_1024[5];
+extern uint32_t rearranged_twiddle_tab_stride3_arr_1024[5];
+extern float32_t rearranged_twiddle_stride1_1024[680];
+extern float32_t rearranged_twiddle_stride2_1024[680];
+extern float32_t rearranged_twiddle_stride3_1024[680];
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_4096) || defined(ARM_TABLE_TWIDDLECOEF_F32_8192)
+
+extern uint32_t rearranged_twiddle_tab_stride1_arr_4096[6];
+extern uint32_t rearranged_twiddle_tab_stride2_arr_4096[6];
+extern uint32_t rearranged_twiddle_tab_stride3_arr_4096[6];
+extern float32_t rearranged_twiddle_stride1_4096[2728];
+extern float32_t rearranged_twiddle_stride2_4096[2728];
+extern float32_t rearranged_twiddle_stride3_4096[2728];
+#endif
+
+
+#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
+
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
+
+#endif /*_ARM_MVE_TABLES_H*/
+
diff --git a/CMSIS/DSP/Include/arm_vec_math.h b/CMSIS/DSP/Include/arm_vec_math.h
index a4a4b0f..0ce9464 100755
--- a/CMSIS/DSP/Include/arm_vec_math.h
+++ b/CMSIS/DSP/Include/arm_vec_math.h
@@ -40,6 +40,7 @@
static const float32_t __logf_rng_f32=0.693147180f;
+
/* fast inverse approximation (3x newton) */
__STATIC_INLINE f32x4_t vrecip_medprec_f32(
f32x4_t x)
diff --git a/CMSIS/DSP/PrivateInclude/arm_vec_fft.h b/CMSIS/DSP/PrivateInclude/arm_vec_fft.h
new file mode 100755
index 0000000..d04ace7
--- /dev/null
+++ b/CMSIS/DSP/PrivateInclude/arm_vec_fft.h
@@ -0,0 +1,58 @@
+/******************************************************************************
+ * @file arm_vec_fft.h
+ * @brief Private header file for CMSIS DSP Library
+ * @version V1.7.0
+ * @date 07. January 2020
+ ******************************************************************************/
+/*
+ * 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 _ARM_VEC_FFT_H_
+#define _ARM_VEC_FFT_H_
+
+#include "arm_math.h"
+#include "arm_helium_utils.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if (defined(ARM_MATH_MVEF) || defined(ARM_MATH_HELIUM)) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+#define MVE_CMPLX_ADD_A_ixB(A, B) vcaddq_rot90(A,B)
+#define MVE_CMPLX_SUB_A_ixB(A,B) vcaddq_rot270(A,B)
+#define MVE_CMPLX_MULT_FLT_AxB(A,B) vcmlaq_rot90(vcmulq(A, B), A, B)
+#define MVE_CMPLX_MULT_FLT_Conj_AxB(A,B) vcmlaq_rot270(vcmulq(A, B), A, B)
+
+#define MVE_CMPLX_MULT_FX_AxB(A,B) vqdmladhxq(vqdmlsdhq((__typeof(A))vuninitializedq_s32(), A, B), A, B);
+#define MVE_CMPLX_MULT_FX_AxConjB(A,B) vqdmladhq(vqdmlsdhxq((__typeof(A))vuninitializedq_s32(), A, B), A, B);
+
+#define MVE_CMPLX_ADD_FX_A_ixB(A, B) vhcaddq_rot90(A,B)
+#define MVE_CMPLX_SUB_FX_A_ixB(A,B) vhcaddq_rot270(A,B)
+
+
+#endif /* (defined(ARM_MATH_MVEF) || defined(ARM_MATH_HELIUM)) && !defined(ARM_MATH_AUTOVECTORIZE)*/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _ARM_VEC_FFT_H_ */
\ No newline at end of file
diff --git a/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c b/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c
index 497cee5..537df22 100644
--- a/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c
+++ b/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c
@@ -114,79 +114,6 @@
return (status);
}
-arm_status arm_cfft_init_f32(
- arm_cfft_instance_f32 * S,
- uint16_t fftLen)
-{
- /* Initialise the default arm status */
- arm_status status = ARM_MATH_SUCCESS;
-
- /* Initialise the FFT length */
- S->fftLen = fftLen;
-
- /* Initialise the Twiddle coefficient pointer */
- S->pTwiddle = (float32_t *)twiddleCoef_4096;
-
-
- /* Initializations of Instance structure depending on the FFT length */
- switch (S->fftLen) {
- /* Initializations of structure parameters for 4096 point FFT */
- case 4096U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f32,4096);
- break;
-
- /* Initializations of structure parameters for 2048 point FFT */
- case 2048U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f32,2048);
-
- break;
-
- /* Initializations of structure parameters for 1024 point FFT */
- case 1024U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f32,1024);
-
- break;
-
- /* Initializations of structure parameters for 512 point FFT */
- case 512U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f32,512);
- break;
-
- case 256U:
- FFTINIT(f32,256);
- break;
-
- case 128U:
- FFTINIT(f32,128);
- break;
-
- case 64U:
- FFTINIT(f32,64);
- break;
-
- case 32U:
- FFTINIT(f32,32);
- break;
-
- case 16U:
- /* Initializations of structure parameters for 16 point FFT */
- FFTINIT(f32,16);
- break;
-
-
- default:
- /* Reporting argument error if fftSize is not valid value */
- status = ARM_MATH_ARGUMENT_ERROR;
- break;
- }
-
-
- return (status);
-}
arm_status arm_cfft_init_q31(
arm_cfft_instance_q31 * S,
diff --git a/CMSIS/DSP/PythonWrapper/setup.py b/CMSIS/DSP/PythonWrapper/setup.py
index eacd231..2af78dc 100644
--- a/CMSIS/DSP/PythonWrapper/setup.py
+++ b/CMSIS/DSP/PythonWrapper/setup.py
@@ -6,7 +6,7 @@
import os
from config import ROOT
-includes = [os.path.join(ROOT,"Include"),os.path.join("cmsisdsp_pkg","src")]
+includes = [os.path.join(ROOT,"Include"),os.path.join(ROOT,"PrivateInclude"),os.path.join("cmsisdsp_pkg","src")]
if sys.platform == 'win32':
cflags = ["-DWIN",config.cflags,"-DUNALIGNED_SUPPORT_DISABLE"]
diff --git a/CMSIS/DSP/PythonWrapper/testdsp.py b/CMSIS/DSP/PythonWrapper/testdsp.py
index 77086c7..7d51466 100644
--- a/CMSIS/DSP/PythonWrapper/testdsp.py
+++ b/CMSIS/DSP/PythonWrapper/testdsp.py
@@ -1,76 +1,76 @@
import cmsisdsp as dsp
import numpy as np
from scipy import signal
-#import matplotlib.pyplot as plt
-#from scipy.fftpack import dct
+import matplotlib.pyplot as plt
+from scipy.fftpack import dct
-#r = dsp.arm_add_f32(np.array([1.,2,3]),np.array([4.,5,7]))
-#print(r)
+r = dsp.arm_add_f32(np.array([1.,2,3]),np.array([4.,5,7]))
+print(r)
-#r = dsp.arm_add_q31([1,2,3],[4,5,7])
-#print(r)
-#
-#r = dsp.arm_add_q15([1,2,3],[4,5,7])
-#print(r)
-#
-#r = dsp.arm_add_q7([-1,2,3],[4,127,7])
-#print(r)
-#
-#r = dsp.arm_scale_f32([1.,2,3],2)
-#print(r)
-#
-#r = dsp.arm_scale_q31([0x7FFF,0x3FFF,0x1FFF],1 << 20,2)
-#print(r)
-#
-#r = dsp.arm_scale_q15([0x7FFF,0x3FFF,0x1FFF],1 << 10,2)
-#print(r)
-#
-#r = dsp.arm_scale_q7([0x7F,0x3F,0x1F],1 << 5,2)
-#print(r)
-#
-#
-#r = dsp.arm_negate_f32([1.,2,3])
-#print(r)
-#
-#r = dsp.arm_negate_q31([1,2,3])
-#print(r)
-#
-#r = dsp.arm_negate_q15([1,2,3])
-#print(r)
-#
-#r = dsp.arm_negate_q7(np.array([0x80,0x81,0x82]))
-#print(r)
+r = dsp.arm_add_q31([1,2,3],[4,5,7])
+print(r)
-#r = dsp.arm_cmplx_conj_f32([1.,2,3,4])
-#print(r)
+r = dsp.arm_add_q15([1,2,3],[4,5,7])
+print(r)
-#r = dsp.arm_cmplx_conj_q31([1,2,3,4])
-#print(r)
+r = dsp.arm_add_q7([-1,2,3],[4,127,7])
+print(r)
-#r = dsp.arm_cmplx_conj_q15([1,2,3,4])
-#print(r)
+r = dsp.arm_scale_f32([1.,2,3],2)
+print(r)
-#r = dsp.arm_cmplx_dot_prod_f32([1.,2,3,4],[1.,2,3,4])
-#print(r)
+r = dsp.arm_scale_q31([0x7FFF,0x3FFF,0x1FFF],1 << 20,2)
+print(r)
-#r = dsp.arm_cmplx_dot_prod_q31([0x1FFF,0x3FFF,0x1FFF,0x3FFF],[0x1FFF,0x3FFF,0x1FFF,0x3FFF])
-#print(r)
+r = dsp.arm_scale_q15([0x7FFF,0x3FFF,0x1FFF],1 << 10,2)
+print(r)
-#r = dsp.arm_cmplx_mult_real_f32([1.0,2,3,4],[5.,5.,5.,5.])
-#print(r)
+r = dsp.arm_scale_q7([0x7F,0x3F,0x1F],1 << 5,2)
+print(r)
-#pidf32 = dsp.arm_pid_instance_f32(Kp=1.0,Ki=1.2,Kd=0.4)
-#print(pidf32.Kp())
-#print(pidf32.Ki())
-#print(pidf32.Kd())
-#print(pidf32.A0())
-#
-#dsp.arm_pid_init_f32(pidf32,0)
-#print(pidf32.A0())
-#print(dsp.arm_cos_f32(3.14/4.))
+r = dsp.arm_negate_f32([1.,2,3])
+print(r)
-#print(dsp.arm_sqrt_q31(0x7FFF))
+r = dsp.arm_negate_q31([1,2,3])
+print(r)
+
+r = dsp.arm_negate_q15([1,2,3])
+print(r)
+
+r = dsp.arm_negate_q7(np.array([0x80,0x81,0x82]))
+print(r)
+
+r = dsp.arm_cmplx_conj_f32([1.,2,3,4])
+print(r)
+
+r = dsp.arm_cmplx_conj_q31([1,2,3,4])
+print(r)
+
+r = dsp.arm_cmplx_conj_q15([1,2,3,4])
+print(r)
+
+r = dsp.arm_cmplx_dot_prod_f32([1.,2,3,4],[1.,2,3,4])
+print(r)
+
+r = dsp.arm_cmplx_dot_prod_q31([0x1FFF,0x3FFF,0x1FFF,0x3FFF],[0x1FFF,0x3FFF,0x1FFF,0x3FFF])
+print(r)
+
+r = dsp.arm_cmplx_mult_real_f32([1.0,2,3,4],[5.,5.,5.,5.])
+print(r)
+
+pidf32 = dsp.arm_pid_instance_f32(Kp=1.0,Ki=1.2,Kd=0.4)
+print(pidf32.Kp())
+print(pidf32.Ki())
+print(pidf32.Kd())
+print(pidf32.A0())
+
+dsp.arm_pid_init_f32(pidf32,0)
+print(pidf32.A0())
+
+print(dsp.arm_cos_f32(3.14/4.))
+
+print(dsp.arm_sqrt_q31(0x7FFF))
firf32 = dsp.arm_fir_instance_f32()
dsp.arm_fir_init_f32(firf32,3,[1.,2,3],[0,0,0,0,0,0,0])
@@ -128,28 +128,28 @@
def Q7toF32(x):
return(1.0*x / 2**7)
-#firq31 = dsp.arm_fir_instance_q31()
-#x=np.array([1,2,3,4,5])/10.0
-#taps=np.array([1,2,3])/10.0
-#xQ31=toQ31(x)
-#tapsQ31=toQ31(taps)
-#dsp.arm_fir_init_q31(firq31,3,tapsQ31,[0,0,0,0,0,0,0])
-#print(firq31.numTaps())
-#resultQ31=dsp.arm_fir_q31(firq31,xQ31)
-#result=Q31toF32(resultQ31)
-#print(result)
+firq31 = dsp.arm_fir_instance_q31()
+x=np.array([1,2,3,4,5])/10.0
+taps=np.array([1,2,3])/10.0
+xQ31=toQ31(x)
+tapsQ31=toQ31(taps)
+dsp.arm_fir_init_q31(firq31,3,tapsQ31,[0,0,0,0,0,0,0])
+print(firq31.numTaps())
+resultQ31=dsp.arm_fir_q31(firq31,xQ31)
+result=Q31toF32(resultQ31)
+print(result)
-#a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]])
-#b=np.array([[1.,2,3,4],[5.1,6,7,8],[9.1,10,11,12]])
-#print(a+b)
-#v=dsp.arm_mat_add_f32(a,b)
-#print(v)
+a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]])
+b=np.array([[1.,2,3,4],[5.1,6,7,8],[9.1,10,11,12]])
+print(a+b)
+v=dsp.arm_mat_add_f32(a,b)
+print(v)
-#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]])
-#print(np.dot(a , b))
-#v=dsp.arm_mat_mult_f32(a,b)
-#print(v)
+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]])
+print(np.dot(a , b))
+v=dsp.arm_mat_mult_f32(a,b)
+print(v)
def imToReal2D(a):
ar=np.zeros(np.array(a.shape) * [1,2])
@@ -160,55 +160,55 @@
def realToIm2D(ar):
return(ar[::,0::2] + 1j * ar[::,1::2])
-#a=np.array([[1. + 2j,3 + 4j],[5 + 6j,7 + 8j],[9 + 10j,11 + 12j]])
-#b=np.array([[1. + 2j, 3 + 5.1j ,6 + 7j],[9.1 + 10j,11 + 5j,8 +4j]])
-#print(np.dot(a , b))
-#
+a=np.array([[1. + 2j,3 + 4j],[5 + 6j,7 + 8j],[9 + 10j,11 + 12j]])
+b=np.array([[1. + 2j, 3 + 5.1j ,6 + 7j],[9.1 + 10j,11 + 5j,8 +4j]])
+print(np.dot(a , b))
+
# Convert complex array to real array for use in CMSIS DSP
-#ar = imToReal2D(a)
-#br = imToReal2D(b)
-#
-#v=dsp.arm_mat_cmplx_mult_f32(ar,br)
-#print(v)
+ar = imToReal2D(a)
+br = imToReal2D(b)
-#a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]]) / 30.0
-#b=np.array([[1.,2,3,4],[5.1,6,7,8],[9.1,10,11,12]]) / 30.0
-#print(a+b)
-#
-#aQ31=toQ31(a)
-#bQ31=toQ31(b)
-#v=dsp.arm_mat_add_q31(aQ31,bQ31)
-#rQ31=v[1]
-#r=Q31toF32(rQ31)
-#print(r)#
+v=dsp.arm_mat_cmplx_mult_f32(ar,br)
+print(v)
-#a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]])
-#print(np.transpose(a))
-#print(dsp.arm_mat_trans_f32(a))
+a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]]) / 30.0
+b=np.array([[1.,2,3,4],[5.1,6,7,8],[9.1,10,11,12]]) / 30.0
+print(a+b)
-#a = np.array([[1., 2.], [3., 4.]])
-#print(np.linalg.inv(a))
-#print(dsp.arm_mat_inverse_f32(a))
+aQ31=toQ31(a)
+bQ31=toQ31(b)
+v=dsp.arm_mat_add_q31(aQ31,bQ31)
+rQ31=v[1]
+r=Q31toF32(rQ31)
+print(r)
-#a = np.array([[1., 2.], [3., 4.]])
-#print(np.linalg.inv(a))
-#print(dsp.arm_mat_inverse_f64(a))
+a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]])
+print(np.transpose(a))
+print(dsp.arm_mat_trans_f32(a))
-#a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]])
-#print(2.5*a)
-#print(dsp.arm_mat_scale_f32(a,2.5))
+a = np.array([[1., 2.], [3., 4.]])
+print(np.linalg.inv(a))
+print(dsp.arm_mat_inverse_f32(a))
-#a=np.array([1.,2,3,4,5,6,7,8,9,10,11,12])
-#print(np.max(a))
-#print(np.argmax(a))
-#print(dsp.arm_max_f32(a))
-#
-#print(np.mean(a))
-#print(dsp.arm_mean_f32(a))
-#
-#print(np.dot(a,a))
-#print(dsp.arm_power_f32(a))
-#
+a = np.array([[1., 2.], [3., 4.]])
+print(np.linalg.inv(a))
+print(dsp.arm_mat_inverse_f64(a))
+
+a=np.array([[1.,2,3,4],[5,6,7,8],[9,10,11,12]])
+print(2.5*a)
+print(dsp.arm_mat_scale_f32(a,2.5))
+
+a=np.array([1.,2,3,4,5,6,7,8,9,10,11,12])
+print(np.max(a))
+print(np.argmax(a))
+print(dsp.arm_max_f32(a))
+
+print(np.mean(a))
+print(dsp.arm_mean_f32(a))
+
+print(np.dot(a,a))
+print(dsp.arm_power_f32(a))
+
def imToReal1D(a):
ar=np.zeros(np.array(a.shape) * 2)
@@ -219,145 +219,145 @@
def realToIm1D(ar):
return(ar[0::2] + 1j * ar[1::2])
-#nb = 16
-#signal = np.cos(2 * np.pi * np.arange(nb) / nb)
+nb = 16
+signal = np.cos(2 * np.pi * np.arange(nb) / nb)
-#result=np.fft.fft(signal)
-#print(result)
-#signalR = imToReal1D(signal)
-#cfftf32=dsp.arm_cfft_instance_f32()
-#status=dsp.arm_cfft_init_f32(cfftf32,nb)
-#print(status)
-#resultR = dsp.arm_cfft_f32(cfftf32,signalR,0,1)
-#resultI = realToIm1D(resultR)
-#print(resultI)
+result=np.fft.fft(signal)
+print(result)
+signalR = imToReal1D(signal)
+cfftf32=dsp.arm_cfft_instance_f32()
+status=dsp.arm_cfft_init_f32(cfftf32,nb)
+print(status)
+resultR = dsp.arm_cfft_f32(cfftf32,signalR,0,1)
+resultI = realToIm1D(resultR)
+print(resultI)
-#signal = signal / 10.0
-#result=np.fft.fft(signal)
-#print(result)
-#
-#signalR = imToReal1D(signal)
-#signalRQ31=toQ31(signalR)
-#cfftq31=dsp.arm_cfft_instance_q31()
-#status=dsp.arm_cfft_init_q31(cfftq31,nb)
-#print(status)
-#resultR = dsp.arm_cfft_q31(cfftq31,signalRQ31,0,1)
-#resultI = realToIm1D(Q31toF32(resultR))*16
-#print(resultI)
+signal = signal / 10.0
+result=np.fft.fft(signal)
+print(result)
-#signal = signal / 10.0
-#result=np.fft.fft(signal)
-#print(result)
-##
-#signalR = imToReal1D(signal)
-#signalRQ15=toQ15(signalR)
-#cfftq15=dsp.arm_cfft_instance_q15()
-#status=dsp.arm_cfft_init_q15(cfftq15,nb)
-#print(status)
-#resultR = dsp.arm_cfft_q15(cfftq15,signalRQ15,0,1)
-#resultR=Q15toF32(resultR)
-#resultI = realToIm1D(resultR)*16
-#print(resultI)
+signalR = imToReal1D(signal)
+signalRQ31=toQ31(signalR)
+cfftq31=dsp.arm_cfft_instance_q31()
+status=dsp.arm_cfft_init_q31(cfftq31,nb)
+print(status)
+resultR = dsp.arm_cfft_q31(cfftq31,signalRQ31,0,1)
+resultI = realToIm1D(Q31toF32(resultR))*16
+print(resultI)
-#nb = 128
-#signal = np.cos(2 * np.pi * np.arange(nb) / nb)
-#
-#result=np.fft.fft(signal)
-##print(result)
-#cfftradix4f32=dsp.arm_cfft_radix4_instance_f32()
-#rfftf32=dsp.arm_rfft_instance_f32()
-#status=dsp.arm_rfft_init_f32(rfftf32,cfftradix4f32,nb,0,1)
-#print(status)
-#resultI = dsp.arm_rfft_f32(rfftf32,signal)
-#print(result)
+signal = signal / 10.0
+result=np.fft.fft(signal)
+print(result)
-#nb = 128
-#signal = np.cos(2 * np.pi * np.arange(nb) / nb)
-#signalRQ31=toQ31(signal)
-#
-#result=np.fft.fft(signal)
-##print(result)
-#rfftq31=dsp.arm_rfft_instance_q31()
-#status=dsp.arm_rfft_init_q31(rfftq31,nb,0,1)
-#print(status)
-#resultI = dsp.arm_rfft_q31(rfftq31,signalRQ31)
-#resultI=Q31toF32(resultI)*(1 << 7)
-##print(result)
+signalR = imToReal1D(signal)
+signalRQ15=toQ15(signalR)
+cfftq15=dsp.arm_cfft_instance_q15()
+status=dsp.arm_cfft_init_q15(cfftq15,nb)
+print(status)
+resultR = dsp.arm_cfft_q15(cfftq15,signalRQ15,0,1)
+resultR=Q15toF32(resultR)
+resultI = realToIm1D(resultR)*16
+print(resultI)
-#nb = 128
-#signal = np.cos(2 * np.pi * np.arange(nb) / nb)
-#signalRQ15=toQ15(signal)
-#
-#result=np.fft.fft(signal)
-##print(result)
-#rfftq15=dsp.arm_rfft_instance_q15()
-#status=dsp.arm_rfft_init_q15(rfftq15,nb,0,1)
-#print(status)
-#resultI = dsp.arm_rfft_q15(rfftq15,signalRQ15)
-#resultI=Q15toF32(resultI)*(1 << 7)
-#print(result)
+nb = 128
+signal = np.cos(2 * np.pi * np.arange(nb) / nb)
+
+result=np.fft.fft(signal)
+print(result)
+cfftradix4f32=dsp.arm_cfft_radix4_instance_f32()
+rfftf32=dsp.arm_rfft_instance_f32()
+status=dsp.arm_rfft_init_f32(rfftf32,cfftradix4f32,nb,0,1)
+print(status)
+resultI = dsp.arm_rfft_f32(rfftf32,signal)
+print(result)
+
+nb = 128
+signal = np.cos(2 * np.pi * np.arange(nb) / nb)
+signalRQ31=toQ31(signal)
+
+result=np.fft.fft(signal)
+print(result)
+rfftq31=dsp.arm_rfft_instance_q31()
+status=dsp.arm_rfft_init_q31(rfftq31,nb,0,1)
+print(status)
+resultI = dsp.arm_rfft_q31(rfftq31,signalRQ31)
+resultI=Q31toF32(resultI)*(1 << 7)
+print(result)
+
+nb = 128
+signal = np.cos(2 * np.pi * np.arange(nb) / nb)
+signalRQ15=toQ15(signal)
+
+result=np.fft.fft(signal)
+print(result)
+rfftq15=dsp.arm_rfft_instance_q15()
+status=dsp.arm_rfft_init_q15(rfftq15,nb,0,1)
+print(status)
+resultI = dsp.arm_rfft_q15(rfftq15,signalRQ15)
+resultI=Q15toF32(resultI)*(1 << 7)
+print(result)
-#nb = 128
-#nb2=64
-#signal = np.cos(2 * np.pi * np.arange(nb) / nb)
-#result=dct(signal,4,norm='ortho')
-##print(result)
+nb = 128
+nb2=64
+signal = np.cos(2 * np.pi * np.arange(nb) / nb)
+result=dct(signal,4,norm='ortho')
+print(result)
-#cfftradix4f32=dsp.arm_cfft_radix4_instance_f32()
-#rfftf32=dsp.arm_rfft_instance_f32()
-#dct4f32=dsp.arm_dct4_instance_f32()
-#status=dsp.arm_dct4_init_f32(dct4f32,rfftf32,cfftradix4f32,nb,nb2,0.125)
-#print(status)
-#state=np.zeros(2*nb)
-#resultI = dsp.arm_dct4_f32(dct4f32,state,signal)
-##print(resultI)
+cfftradix4f32=dsp.arm_cfft_radix4_instance_f32()
+rfftf32=dsp.arm_rfft_instance_f32()
+dct4f32=dsp.arm_dct4_instance_f32()
+status=dsp.arm_dct4_init_f32(dct4f32,rfftf32,cfftradix4f32,nb,nb2,0.125)
+print(status)
+state=np.zeros(2*nb)
+resultI = dsp.arm_dct4_f32(dct4f32,state,signal)
+print(resultI)
-#signal = signal / 10.0
-#result=dct(signal,4,norm='ortho')
-#signalQ31=toQ31(signal)
-#cfftradix4q31=dsp.arm_cfft_radix4_instance_q31()
-#rfftq31=dsp.arm_rfft_instance_q31()
-#dct4q31=dsp.arm_dct4_instance_q31()
-#status=dsp.arm_dct4_init_q31(dct4q31,rfftq31,cfftradix4q31,nb,nb2,0x10000000)
-#print(status)
-#state=np.zeros(2*nb)
-#resultI = dsp.arm_dct4_q31(dct4q31,state,signalQ31)
-#resultI=Q31toF32(resultI)*(1 << 7)
+signal = signal / 10.0
+result=dct(signal,4,norm='ortho')
+signalQ31=toQ31(signal)
+cfftradix4q31=dsp.arm_cfft_radix4_instance_q31()
+rfftq31=dsp.arm_rfft_instance_q31()
+dct4q31=dsp.arm_dct4_instance_q31()
+status=dsp.arm_dct4_init_q31(dct4q31,rfftq31,cfftradix4q31,nb,nb2,0x10000000)
+print(status)
+state=np.zeros(2*nb)
+resultI = dsp.arm_dct4_q31(dct4q31,state,signalQ31)
+resultI=Q31toF32(resultI)*(1 << 7)
-#nb = 128
-#nb2=64
-#signal = np.cos(2 * np.pi * np.arange(nb) / nb)
-#signal = signal / 10.0
-#result=dct(signal,4,norm='ortho')
-#signalQ15=toQ15(signal)
-#cfftradix4q15=dsp.arm_cfft_radix4_instance_q15()
-#rfftq15=dsp.arm_rfft_instance_q15()
-#dct4q15=dsp.arm_dct4_instance_q15()
-#status=dsp.arm_dct4_init_q15(dct4q15,rfftq15,cfftradix4q15,nb,nb2,0x1000)
-#print(status)
-#state=np.zeros(2*nb)
-#resultI = dsp.arm_dct4_q15(dct4q15,state,signalQ15)
-#resultI=Q15toF32(resultI)*(1 << 7)
-#
-#
-#from pylab import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show
-#figure(1)
-#plot(np.absolute(signal))
-#t = np.arange(nb)
-#freq = np.fft.fftfreq(t.shape[-1])
-#resultmag=np.absolute(result)
-#figure(2)
-#plot(resultmag)
-#figure(3)
-#cmsigmag=np.absolute(resultI)
-#plot(cmsigmag)
-#show()##
+nb = 128
+nb2=64
+signal = np.cos(2 * np.pi * np.arange(nb) / nb)
+signal = signal / 10.0
+result=dct(signal,4,norm='ortho')
+signalQ15=toQ15(signal)
+cfftradix4q15=dsp.arm_cfft_radix4_instance_q15()
+rfftq15=dsp.arm_rfft_instance_q15()
+dct4q15=dsp.arm_dct4_instance_q15()
+status=dsp.arm_dct4_init_q15(dct4q15,rfftq15,cfftradix4q15,nb,nb2,0x1000)
+print(status)
+state=np.zeros(2*nb)
+resultI = dsp.arm_dct4_q15(dct4q15,state,signalQ15)
+resultI=Q15toF32(resultI)*(1 << 7)
-#biquadf32 = dsp.arm_biquad_casd_df1_inst_f32()
-#numStages=1
-#state=np.zeros(numStages*4)
-#coefs=[1.,2,3,4,5]
-#dsp.arm_biquad_cascade_df1_init_f32(biquadf32,1,coefs,state)
-#print(dsp.arm_biquad_cascade_df1_f32(biquadf32,[1,2,3,4,5]))#
\ No newline at end of file
+
+from pylab import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show
+figure(1)
+plot(np.absolute(signal))
+t = np.arange(nb)
+freq = np.fft.fftfreq(t.shape[-1])
+resultmag=np.absolute(result)
+figure(2)
+plot(resultmag)
+figure(3)
+cmsigmag=np.absolute(resultI)
+plot(cmsigmag)
+show()
+
+biquadf32 = dsp.arm_biquad_casd_df1_inst_f32()
+numStages=1
+state=np.zeros(numStages*4)
+coefs=[1.,2,3,4,5]
+dsp.arm_biquad_cascade_df1_init_f32(biquadf32,1,coefs,state)
+print(dsp.arm_biquad_cascade_df1_f32(biquadf32,[1,2,3,4,5]))
\ No newline at end of file
diff --git a/CMSIS/DSP/Scripts/README.md b/CMSIS/DSP/Scripts/README.md
new file mode 100755
index 0000000..a065bf7
--- /dev/null
+++ b/CMSIS/DSP/Scripts/README.md
@@ -0,0 +1,4 @@
+README
+======
+
+Python scripts to generate C arrays used in implementation of some algorithms.
diff --git a/CMSIS/DSP/Scripts/genMVETwiddleCoefs.py b/CMSIS/DSP/Scripts/genMVETwiddleCoefs.py
new file mode 100755
index 0000000..2466945
--- /dev/null
+++ b/CMSIS/DSP/Scripts/genMVETwiddleCoefs.py
@@ -0,0 +1,266 @@
+import numpy as np
+import math
+import argparse
+
+parser = argparse.ArgumentParser(description='Generate C arrays')
+parser.add_argument('-f', nargs='?',type = str, default="../Source/CommonTables/arm_mve_tables.c", help="C File path")
+parser.add_argument('-he', nargs='?',type = str, default="../Include/arm_mve_tables.h", help="H File path")
+
+args = parser.parse_args()
+
+COLLIM = 80
+
+condition="""#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_%d) || defined(ARM_TABLE_TWIDDLECOEF_F32_%d)
+"""
+
+def printCUInt32Array(f,name,arr):
+ nb = 0
+ print("uint32_t %s[%d]={" % (name,len(arr)),file=f)
+
+ for d in arr:
+ val = "%d," % d
+ nb = nb + len(val)
+ if nb > COLLIM:
+ print("",file=f)
+ nb = len(val)
+ print(val,end="",file=f)
+
+ print("};\n",file=f)
+
+def printCFloat32Array(f,name,arr):
+ nb = 0
+ print("float32_t %s[%d]={" % (name,len(arr)),file=f)
+
+ for d in arr:
+ val = "%.20ff," % d
+ nb = nb + len(val)
+ if nb > COLLIM:
+ print("",file=f)
+ nb = len(val)
+ print(val,end="",file=f)
+
+ print("};\n",file=f)
+
+def printHUInt32Array(f,name,arr):
+ print("extern uint32_t %s[%d];" % (name,len(arr)),file=f)
+
+def printHFloat32Array(f,name,arr):
+ print("extern float32_t %s[%d];" % (name,len(arr)),file=f)
+
+def twiddle(n):
+ a=2.0*math.pi*np.linspace(0,n,num=n,endpoint=False)/n
+ c=np.cos(a)
+ s=np.sin(a)
+
+ r = np.empty((c.size + s.size,), dtype=c.dtype)
+ r[0::2] = c
+ r[1::2] = s
+ return(r)
+
+def reorderTwiddle(f,h,n):
+ numStages = 6
+ coefs= twiddle(n)
+
+
+ if n == 4096:
+ numStages = 6
+ arraySize = 1364
+
+ if n == 1024:
+ numStages = 5
+ arraySize = 340
+
+ if n == 256:
+ numStages = 4
+ arraySize = 84
+
+ if n == 64:
+ numStages = 3
+ arraySize = 20
+
+ if n == 16:
+ numStages = 2
+ arraySize = 4
+
+ incr = 1
+ nbOfElt = n
+
+ maxNb = 0
+
+ tab1 = np.zeros(2*arraySize)
+ tab2 = np.zeros(2*arraySize)
+ tab3 = np.zeros(2*arraySize)
+
+ tab1Index=0
+ tab2Index=0
+ tab3Index=0
+
+ tab1Offset = np.zeros(numStages)
+ tab2Offset = np.zeros(numStages)
+ tab3Offset = np.zeros(numStages)
+
+
+
+ for stage in range(0,numStages-1):
+ nbOfElt = nbOfElt >> 2
+ pVectCoef1 = 0
+ pVectCoef2 = 0
+ pVectCoef3 = 0
+
+ tab1Offset[stage] = tab1Index
+ tab2Offset[stage] = tab2Index
+ tab3Offset[stage] = tab3Index
+
+ for i in range(0,nbOfElt):
+ tab1[tab1Index] = coefs[pVectCoef1]
+ tab1[tab1Index + 1] = coefs[pVectCoef1 + 1];
+ tab1Index = tab1Index + 2
+ pVectCoef1 = pVectCoef1 + (incr * 1 * 2)
+
+ tab2[tab2Index] = coefs[pVectCoef2]
+ tab2[tab2Index + 1] = coefs[pVectCoef2 + 1];
+ tab2Index = tab2Index + 2
+ pVectCoef2 = pVectCoef2 + (incr * 2 * 2)
+
+ tab3[tab3Index] = coefs[pVectCoef3]
+ tab3[tab3Index + 1] = coefs[pVectCoef3 + 1];
+ tab3Index = tab3Index + 2
+ pVectCoef3 = pVectCoef3 + (incr * 3 * 2)
+
+ maxNb = maxNb + 1
+
+ incr = 4 * incr
+
+ print(condition % (n, n << 1),file=f)
+ print(condition % (n, n << 1),file=h)
+ printCUInt32Array(f,"rearranged_twiddle_tab_stride1_arr_%d" % n,list(tab1Offset))
+ printHUInt32Array(h,"rearranged_twiddle_tab_stride1_arr_%d" % n,list(tab1Offset))
+
+ printCUInt32Array(f,"rearranged_twiddle_tab_stride2_arr_%d" % n,list(tab2Offset))
+ printHUInt32Array(h,"rearranged_twiddle_tab_stride2_arr_%d" % n,list(tab2Offset))
+
+ printCUInt32Array(f,"rearranged_twiddle_tab_stride3_arr_%d" % n,list(tab3Offset))
+ printHUInt32Array(h,"rearranged_twiddle_tab_stride3_arr_%d" % n,list(tab3Offset))
+
+ printCFloat32Array(f,"rearranged_twiddle_stride1_%d" % n,list(tab1))
+ printHFloat32Array(h,"rearranged_twiddle_stride1_%d" % n,list(tab1))
+
+ printCFloat32Array(f,"rearranged_twiddle_stride2_%d" % n,list(tab2))
+ printHFloat32Array(h,"rearranged_twiddle_stride2_%d" % n,list(tab2))
+
+ printCFloat32Array(f,"rearranged_twiddle_stride3_%d" % n,list(tab3))
+ printHFloat32Array(h,"rearranged_twiddle_stride3_%d" % n,list(tab3))
+ print("#endif\n",file=f)
+ print("#endif\n",file=h)
+
+
+
+#test = twiddle(16)
+#printCFloat32Array("Test",list(test))
+
+cheader="""/* ----------------------------------------------------------------------
+ * Project: CMSIS DSP Library
+ * Title: arm_mve_tables.c
+ * Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc
+ * used for MVE implementation only
+ *
+ * $Date: 08. January 2020
+ * $Revision: V1.7.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #include "arm_math.h"
+
+ #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+ #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
+
+
+ """
+
+cfooter="""
+
+#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
+"""
+
+hheader="""/* ----------------------------------------------------------------------
+ * Project: CMSIS DSP Library
+ * Title: arm_mve_tables.h
+ * Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc
+ * used for MVE implementation only
+ *
+ * $Date: 08. January 2020
+ * $Revision: V1.7.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #ifndef _ARM_MVE_TABLES_H
+ #define _ARM_MVE_TABLES_H
+
+ #include "arm_math.h"
+
+ #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+ #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
+
+
+ """
+
+hfooter="""
+#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
+
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
+
+#endif /*_ARM_MVE_TABLES_H*/
+"""
+
+with open(args.f,'w') as f:
+ with open(args.he,'w') as h:
+ print(cheader,file=f)
+ print(hheader,file=h)
+
+ reorderTwiddle(f,h,16)
+ reorderTwiddle(f,h,64)
+ reorderTwiddle(f,h,256)
+ reorderTwiddle(f,h,1024)
+ reorderTwiddle(f,h,4096)
+
+ print(cfooter,file=f)
+ print(hfooter,file=h)
diff --git a/CMSIS/DSP/Source/CommonTables/CMakeLists.txt b/CMSIS/DSP/Source/CommonTables/CMakeLists.txt
index 30bb5fe..e7dd65f 100644
--- a/CMSIS/DSP/Source/CommonTables/CMakeLists.txt
+++ b/CMSIS/DSP/Source/CommonTables/CMakeLists.txt
@@ -34,4 +34,8 @@
target_sources(CMSISDSPCommon PRIVATE "${DSP}/ComputeLibrary/Source/arm_cl_tables.c")
endif()
+if (HELIUM OR MVEF)
+ target_sources(CMSISDSPCommon PRIVATE "${DSP}/Source/CommonTables/arm_mve_tables.c")
+endif()
+
diff --git a/CMSIS/DSP/Source/CommonTables/CommonTables.c b/CMSIS/DSP/Source/CommonTables/CommonTables.c
index acda9f8..4f80ede 100644
--- a/CMSIS/DSP/Source/CommonTables/CommonTables.c
+++ b/CMSIS/DSP/Source/CommonTables/CommonTables.c
@@ -28,4 +28,4 @@
#include "arm_common_tables.c"
#include "arm_const_structs.c"
-
+#include "arm_mve_tables.c"
diff --git a/CMSIS/DSP/Source/CommonTables/arm_const_structs.c b/CMSIS/DSP/Source/CommonTables/arm_const_structs.c
index 75a57dc..aab3d96 100644
--- a/CMSIS/DSP/Source/CommonTables/arm_const_structs.c
+++ b/CMSIS/DSP/Source/CommonTables/arm_const_structs.c
@@ -29,6 +29,10 @@
#include "arm_const_structs.h"
+/*
+ALLOW TABLE is true when config table is enabled and the Tramsform folder is included
+for compilation.
+*/
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
/* Floating-point structs */
@@ -87,12 +91,25 @@
#endif
/* Floating-point structs */
+#if !defined(ARM_MATH_MVEF) || defined(ARM_MATH_AUTOVECTORIZE)
+
+/*
+
+Those structures cannot be used to initialize the MVE version of the FFT F32 instances.
+So they are not compiled when MVE is defined.
+
+For the MVE version, the new arm_cfft_init_f32 must be used.
+
+
+*/
+
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_16) && defined(ARM_TABLE_BITREVIDX_FLT_16))
const arm_cfft_instance_f32 arm_cfft_sR_f32_len16 = {
16, twiddleCoef_16, armBitRevIndexTable16, ARMBITREVINDEXTABLE_16_TABLE_LENGTH
};
#endif
+
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_32) && defined(ARM_TABLE_BITREVIDX_FLT_32))
const arm_cfft_instance_f32 arm_cfft_sR_f32_len32 = {
32, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE_32_TABLE_LENGTH
@@ -141,6 +158,8 @@
};
#endif
+#endif /* !defined(ARM_MATH_MVEF) || defined(ARM_MATH_AUTOVECTORIZE) */
+
/* Fixed-point structs */
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_Q31_16) && defined(ARM_TABLE_BITREVIDX_FXT_16))
@@ -320,6 +339,8 @@
/* Floating-point structs */
+#if !defined(ARM_MATH_MVEF) || defined(ARM_MATH_AUTOVECTORIZE)
+
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_32) && defined(ARM_TABLE_BITREVIDX_FLT_32) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_32))
const arm_rfft_fast_instance_f32 arm_rfft_fast_sR_f32_len32 = {
{ 16, twiddleCoef_32, armBitRevIndexTable32, ARMBITREVINDEXTABLE_16_TABLE_LENGTH },
@@ -384,6 +405,8 @@
};
#endif
+#endif /* #if !defined(ARM_MATH_MVEF) || defined(ARM_MATH_AUTOVECTORIZE) */
+
/* Fixed-point structs */
/* q31_t */
diff --git a/CMSIS/DSP/Source/CommonTables/arm_mve_tables.c b/CMSIS/DSP/Source/CommonTables/arm_mve_tables.c
new file mode 100755
index 0000000..9e581ea
--- /dev/null
+++ b/CMSIS/DSP/Source/CommonTables/arm_mve_tables.c
@@ -0,0 +1,3767 @@
+/* ----------------------------------------------------------------------
+ * Project: CMSIS DSP Library
+ * Title: arm_mve_tables.c
+ * Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc
+ * used for MVE implementation only
+ *
+ * $Date: 08. January 2020
+ * $Revision: V1.7.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ #include "arm_math.h"
+
+ #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+ #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
+
+
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_16) || defined(ARM_TABLE_TWIDDLECOEF_F32_32)
+
+uint32_t rearranged_twiddle_tab_stride1_arr_16[2]={
+0,0,};
+
+uint32_t rearranged_twiddle_tab_stride2_arr_16[2]={
+0,0,};
+
+uint32_t rearranged_twiddle_tab_stride3_arr_16[2]={
+0,0,};
+
+float32_t rearranged_twiddle_stride1_16[8]={
+1.00000000000000000000f,0.00000000000000000000f,0.92387953251128673848f,
+0.38268343236508978178f,0.70710678118654757274f,0.70710678118654757274f,
+0.38268343236508983729f,0.92387953251128673848f,};
+
+float32_t rearranged_twiddle_stride2_16[8]={
+1.00000000000000000000f,0.00000000000000000000f,0.70710678118654757274f,
+0.70710678118654757274f,0.00000000000000006123f,1.00000000000000000000f,
+-0.70710678118654746172f,0.70710678118654757274f,};
+
+float32_t rearranged_twiddle_stride3_16[8]={
+1.00000000000000000000f,0.00000000000000000000f,0.38268343236508983729f,
+0.92387953251128673848f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.92387953251128684951f,-0.38268343236508967076f,};
+
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_64) || defined(ARM_TABLE_TWIDDLECOEF_F32_128)
+
+uint32_t rearranged_twiddle_tab_stride1_arr_64[3]={
+0,32,0,};
+
+uint32_t rearranged_twiddle_tab_stride2_arr_64[3]={
+0,32,0,};
+
+uint32_t rearranged_twiddle_tab_stride3_arr_64[3]={
+0,32,0,};
+
+float32_t rearranged_twiddle_stride1_64[40]={
+1.00000000000000000000f,0.00000000000000000000f,0.99518472667219692873f,
+0.09801714032956060363f,0.98078528040323043058f,0.19509032201612824808f,
+0.95694033573220882438f,0.29028467725446233105f,0.92387953251128673848f,
+0.38268343236508978178f,0.88192126434835504956f,0.47139673682599764204f,
+0.83146961230254523567f,0.55557023301960217765f,0.77301045336273699338f,
+0.63439328416364548779f,0.70710678118654757274f,0.70710678118654757274f,
+0.63439328416364548779f,0.77301045336273688235f,0.55557023301960228867f,
+0.83146961230254523567f,0.47139673682599780857f,0.88192126434835493853f,
+0.38268343236508983729f,0.92387953251128673848f,0.29028467725446233105f,
+0.95694033573220893540f,0.19509032201612833135f,0.98078528040323043058f,
+0.09801714032956077016f,0.99518472667219681771f,1.00000000000000000000f,
+0.00000000000000000000f,0.92387953251128673848f,0.38268343236508978178f,
+0.70710678118654757274f,0.70710678118654757274f,0.38268343236508983729f,
+0.92387953251128673848f,};
+
+float32_t rearranged_twiddle_stride2_64[40]={
+1.00000000000000000000f,0.00000000000000000000f,0.98078528040323043058f,
+0.19509032201612824808f,0.92387953251128673848f,0.38268343236508978178f,
+0.83146961230254523567f,0.55557023301960217765f,0.70710678118654757274f,
+0.70710678118654757274f,0.55557023301960228867f,0.83146961230254523567f,
+0.38268343236508983729f,0.92387953251128673848f,0.19509032201612833135f,
+0.98078528040323043058f,0.00000000000000006123f,1.00000000000000000000f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.38268343236508972627f,
+0.92387953251128673848f,-0.55557023301960195560f,0.83146961230254534669f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.83146961230254534669f,
+0.55557023301960217765f,-0.92387953251128673848f,0.38268343236508989280f,
+-0.98078528040323043058f,0.19509032201612860891f,1.00000000000000000000f,
+0.00000000000000000000f,0.70710678118654757274f,0.70710678118654757274f,
+0.00000000000000006123f,1.00000000000000000000f,-0.70710678118654746172f,
+0.70710678118654757274f,};
+
+float32_t rearranged_twiddle_stride3_64[40]={
+1.00000000000000000000f,0.00000000000000000000f,0.95694033573220882438f,
+0.29028467725446233105f,0.83146961230254523567f,0.55557023301960217765f,
+0.63439328416364548779f,0.77301045336273688235f,0.38268343236508983729f,
+0.92387953251128673848f,0.09801714032956077016f,0.99518472667219681771f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.99518472667219692873f,-0.09801714032956058975f,
+-0.92387953251128684951f,-0.38268343236508967076f,-0.77301045336273710440f,
+-0.63439328416364526575f,-0.55557023301960217765f,-0.83146961230254523567f,
+-0.29028467725446244208f,-0.95694033573220882438f,1.00000000000000000000f,
+0.00000000000000000000f,0.38268343236508983729f,0.92387953251128673848f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.92387953251128684951f,
+-0.38268343236508967076f,};
+
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_256) || defined(ARM_TABLE_TWIDDLECOEF_F32_512)
+
+uint32_t rearranged_twiddle_tab_stride1_arr_256[4]={
+0,128,160,0,};
+
+uint32_t rearranged_twiddle_tab_stride2_arr_256[4]={
+0,128,160,0,};
+
+uint32_t rearranged_twiddle_tab_stride3_arr_256[4]={
+0,128,160,0,};
+
+float32_t rearranged_twiddle_stride1_256[168]={
+1.00000000000000000000f,0.00000000000000000000f,0.99969881869620424997f,
+0.02454122852291228812f,0.99879545620517240501f,0.04906767432741801493f,
+0.99729045667869020697f,0.07356456359966742631f,0.99518472667219692873f,
+0.09801714032956060363f,0.99247953459870996706f,0.12241067519921619566f,
+0.98917650996478101444f,0.14673047445536174793f,0.98527764238894122162f,
+0.17096188876030121717f,0.98078528040323043058f,0.19509032201612824808f,
+0.97570213003852857003f,0.21910124015686979759f,0.97003125319454397424f,
+0.24298017990326387094f,0.96377606579543984022f,0.26671275747489836538f,
+0.95694033573220882438f,0.29028467725446233105f,0.94952818059303667475f,
+0.31368174039889151761f,0.94154406518302080631f,0.33688985339222005111f,
+0.93299279883473895669f,0.35989503653498811087f,0.92387953251128673848f,
+0.38268343236508978178f,0.91420975570353069095f,0.40524131400498986100f,
+0.90398929312344333820f,0.42755509343028208491f,0.89322430119551532446f,
+0.44961132965460653965f,0.88192126434835504956f,0.47139673682599764204f,
+0.87008699110871146054f,0.49289819222978403790f,0.85772861000027211809f,
+0.51410274419322166128f,0.84485356524970711689f,0.53499761988709715332f,
+0.83146961230254523567f,0.55557023301960217765f,0.81758481315158371139f,
+0.57580819141784533866f,0.80320753148064494287f,0.59569930449243335691f,
+0.78834642762660622761f,0.61523159058062681925f,0.77301045336273699338f,
+0.63439328416364548779f,0.75720884650648456748f,0.65317284295377675551f,
+0.74095112535495921691f,0.67155895484701833009f,0.72424708295146700276f,
+0.68954054473706682948f,0.70710678118654757274f,0.70710678118654757274f,
+0.68954054473706694051f,0.72424708295146689174f,0.67155895484701833009f,
+0.74095112535495910588f,0.65317284295377686654f,0.75720884650648456748f,
+0.63439328416364548779f,0.77301045336273688235f,0.61523159058062681925f,
+0.78834642762660622761f,0.59569930449243346793f,0.80320753148064483184f,
+0.57580819141784533866f,0.81758481315158371139f,0.55557023301960228867f,
+0.83146961230254523567f,0.53499761988709726435f,0.84485356524970700587f,
+0.51410274419322166128f,0.85772861000027211809f,0.49289819222978409341f,
+0.87008699110871134952f,0.47139673682599780857f,0.88192126434835493853f,
+0.44961132965460659516f,0.89322430119551532446f,0.42755509343028219593f,
+0.90398929312344333820f,0.40524131400498986100f,0.91420975570353069095f,
+0.38268343236508983729f,0.92387953251128673848f,0.35989503653498827740f,
+0.93299279883473884567f,0.33688985339222005111f,0.94154406518302080631f,
+0.31368174039889157312f,0.94952818059303667475f,0.29028467725446233105f,
+0.95694033573220893540f,0.26671275747489842090f,0.96377606579543984022f,
+0.24298017990326398197f,0.97003125319454397424f,0.21910124015686976984f,
+0.97570213003852857003f,0.19509032201612833135f,0.98078528040323043058f,
+0.17096188876030135595f,0.98527764238894122162f,0.14673047445536174793f,
+0.98917650996478101444f,0.12241067519921627893f,0.99247953459870996706f,
+0.09801714032956077016f,0.99518472667219681771f,0.07356456359966745406f,
+0.99729045667869020697f,0.04906767432741812596f,0.99879545620517240501f,
+0.02454122852291226384f,0.99969881869620424997f,1.00000000000000000000f,
+0.00000000000000000000f,0.99518472667219692873f,0.09801714032956060363f,
+0.98078528040323043058f,0.19509032201612824808f,0.95694033573220882438f,
+0.29028467725446233105f,0.92387953251128673848f,0.38268343236508978178f,
+0.88192126434835504956f,0.47139673682599764204f,0.83146961230254523567f,
+0.55557023301960217765f,0.77301045336273699338f,0.63439328416364548779f,
+0.70710678118654757274f,0.70710678118654757274f,0.63439328416364548779f,
+0.77301045336273688235f,0.55557023301960228867f,0.83146961230254523567f,
+0.47139673682599780857f,0.88192126434835493853f,0.38268343236508983729f,
+0.92387953251128673848f,0.29028467725446233105f,0.95694033573220893540f,
+0.19509032201612833135f,0.98078528040323043058f,0.09801714032956077016f,
+0.99518472667219681771f,1.00000000000000000000f,0.00000000000000000000f,
+0.92387953251128673848f,0.38268343236508978178f,0.70710678118654757274f,
+0.70710678118654757274f,0.38268343236508983729f,0.92387953251128673848f,};
+
+float32_t rearranged_twiddle_stride2_256[168]={
+1.00000000000000000000f,0.00000000000000000000f,0.99879545620517240501f,
+0.04906767432741801493f,0.99518472667219692873f,0.09801714032956060363f,
+0.98917650996478101444f,0.14673047445536174793f,0.98078528040323043058f,
+0.19509032201612824808f,0.97003125319454397424f,0.24298017990326387094f,
+0.95694033573220882438f,0.29028467725446233105f,0.94154406518302080631f,
+0.33688985339222005111f,0.92387953251128673848f,0.38268343236508978178f,
+0.90398929312344333820f,0.42755509343028208491f,0.88192126434835504956f,
+0.47139673682599764204f,0.85772861000027211809f,0.51410274419322166128f,
+0.83146961230254523567f,0.55557023301960217765f,0.80320753148064494287f,
+0.59569930449243335691f,0.77301045336273699338f,0.63439328416364548779f,
+0.74095112535495921691f,0.67155895484701833009f,0.70710678118654757274f,
+0.70710678118654757274f,0.67155895484701833009f,0.74095112535495910588f,
+0.63439328416364548779f,0.77301045336273688235f,0.59569930449243346793f,
+0.80320753148064483184f,0.55557023301960228867f,0.83146961230254523567f,
+0.51410274419322166128f,0.85772861000027211809f,0.47139673682599780857f,
+0.88192126434835493853f,0.42755509343028219593f,0.90398929312344333820f,
+0.38268343236508983729f,0.92387953251128673848f,0.33688985339222005111f,
+0.94154406518302080631f,0.29028467725446233105f,0.95694033573220893540f,
+0.24298017990326398197f,0.97003125319454397424f,0.19509032201612833135f,
+0.98078528040323043058f,0.14673047445536174793f,0.98917650996478101444f,
+0.09801714032956077016f,0.99518472667219681771f,0.04906767432741812596f,
+0.99879545620517240501f,0.00000000000000006123f,1.00000000000000000000f,
+-0.04906767432741800800f,0.99879545620517240501f,-0.09801714032956064526f,
+0.99518472667219692873f,-0.14673047445536163691f,0.98917650996478101444f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.24298017990326387094f,
+0.97003125319454397424f,-0.29028467725446216452f,0.95694033573220893540f,
+-0.33688985339221994009f,0.94154406518302080631f,-0.38268343236508972627f,
+0.92387953251128673848f,-0.42755509343028186287f,0.90398929312344344922f,
+-0.47139673682599769755f,0.88192126434835504956f,-0.51410274419322155026f,
+0.85772861000027211809f,-0.55557023301960195560f,0.83146961230254534669f,
+-0.59569930449243335691f,0.80320753148064494287f,-0.63439328416364537677f,
+0.77301045336273710440f,-0.67155895484701844111f,0.74095112535495899486f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.74095112535495888384f,
+0.67155895484701855214f,-0.77301045336273699338f,0.63439328416364548779f,
+-0.80320753148064483184f,0.59569930449243346793f,-0.83146961230254534669f,
+0.55557023301960217765f,-0.85772861000027200706f,0.51410274419322177231f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.90398929312344333820f,
+0.42755509343028202940f,-0.92387953251128673848f,0.38268343236508989280f,
+-0.94154406518302069529f,0.33688985339222032867f,-0.95694033573220882438f,
+0.29028467725446238656f,-0.97003125319454397424f,0.24298017990326406523f,
+-0.98078528040323043058f,0.19509032201612860891f,-0.98917650996478101444f,
+0.14673047445536180344f,-0.99518472667219681771f,0.09801714032956082567f,
+-0.99879545620517240501f,0.04906767432741796636f,1.00000000000000000000f,
+0.00000000000000000000f,0.98078528040323043058f,0.19509032201612824808f,
+0.92387953251128673848f,0.38268343236508978178f,0.83146961230254523567f,
+0.55557023301960217765f,0.70710678118654757274f,0.70710678118654757274f,
+0.55557023301960228867f,0.83146961230254523567f,0.38268343236508983729f,
+0.92387953251128673848f,0.19509032201612833135f,0.98078528040323043058f,
+0.00000000000000006123f,1.00000000000000000000f,-0.19509032201612819257f,
+0.98078528040323043058f,-0.38268343236508972627f,0.92387953251128673848f,
+-0.55557023301960195560f,0.83146961230254534669f,-0.70710678118654746172f,
+0.70710678118654757274f,-0.83146961230254534669f,0.55557023301960217765f,
+-0.92387953251128673848f,0.38268343236508989280f,-0.98078528040323043058f,
+0.19509032201612860891f,1.00000000000000000000f,0.00000000000000000000f,
+0.70710678118654757274f,0.70710678118654757274f,0.00000000000000006123f,
+1.00000000000000000000f,-0.70710678118654746172f,0.70710678118654757274f,};
+
+float32_t rearranged_twiddle_stride3_256[168]={
+1.00000000000000000000f,0.00000000000000000000f,0.99729045667869020697f,
+0.07356456359966742631f,0.98917650996478101444f,0.14673047445536174793f,
+0.97570213003852857003f,0.21910124015686979759f,0.95694033573220882438f,
+0.29028467725446233105f,0.93299279883473895669f,0.35989503653498811087f,
+0.90398929312344333820f,0.42755509343028208491f,0.87008699110871146054f,
+0.49289819222978403790f,0.83146961230254523567f,0.55557023301960217765f,
+0.78834642762660622761f,0.61523159058062681925f,0.74095112535495921691f,
+0.67155895484701833009f,0.68954054473706694051f,0.72424708295146689174f,
+0.63439328416364548779f,0.77301045336273688235f,0.57580819141784533866f,
+0.81758481315158371139f,0.51410274419322166128f,0.85772861000027211809f,
+0.44961132965460659516f,0.89322430119551532446f,0.38268343236508983729f,
+0.92387953251128673848f,0.31368174039889157312f,0.94952818059303667475f,
+0.24298017990326398197f,0.97003125319454397424f,0.17096188876030135595f,
+0.98527764238894122162f,0.09801714032956077016f,0.99518472667219681771f,
+0.02454122852291226384f,0.99969881869620424997f,-0.04906767432741800800f,
+0.99879545620517240501f,-0.12241067519921615403f,0.99247953459870996706f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.26671275747489830987f,
+0.96377606579543984022f,-0.33688985339221994009f,0.94154406518302080631f,
+-0.40524131400498974998f,0.91420975570353069095f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.53499761988709704230f,0.84485356524970722791f,
+-0.59569930449243335691f,0.80320753148064494287f,-0.65317284295377653347f,
+0.75720884650648467851f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.75720884650648467851f,0.65317284295377664449f,-0.80320753148064483184f,
+0.59569930449243346793f,-0.84485356524970711689f,0.53499761988709715332f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.91420975570353069095f,
+0.40524131400498991651f,-0.94154406518302069529f,0.33688985339222032867f,
+-0.96377606579543984022f,0.26671275747489847641f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.99247953459870996706f,0.12241067519921634832f,
+-0.99879545620517240501f,0.04906767432741796636f,-0.99969881869620424997f,
+-0.02454122852291207996f,-0.99518472667219692873f,-0.09801714032956058975f,
+-0.98527764238894133264f,-0.17096188876030096737f,-0.97003125319454397424f,
+-0.24298017990326381543f,-0.94952818059303678577f,-0.31368174039889118454f,
+-0.92387953251128684951f,-0.38268343236508967076f,-0.89322430119551532446f,
+-0.44961132965460665067f,-0.85772861000027211809f,-0.51410274419322155026f,
+-0.81758481315158371139f,-0.57580819141784533866f,-0.77301045336273710440f,
+-0.63439328416364526575f,-0.72424708295146700276f,-0.68954054473706682948f,
+-0.67155895484701866316f,-0.74095112535495888384f,-0.61523159058062726334f,
+-0.78834642762660589455f,-0.55557023301960217765f,-0.83146961230254523567f,
+-0.49289819222978420443f,-0.87008699110871134952f,-0.42755509343028247349f,
+-0.90398929312344311615f,-0.35989503653498794433f,-0.93299279883473895669f,
+-0.29028467725446244208f,-0.95694033573220882438f,-0.21910124015687010290f,
+-0.97570213003852845901f,-0.14673047445536230304f,-0.98917650996478090342f,
+-0.07356456359966735692f,-0.99729045667869020697f,1.00000000000000000000f,
+0.00000000000000000000f,0.95694033573220882438f,0.29028467725446233105f,
+0.83146961230254523567f,0.55557023301960217765f,0.63439328416364548779f,
+0.77301045336273688235f,0.38268343236508983729f,0.92387953251128673848f,
+0.09801714032956077016f,0.99518472667219681771f,-0.19509032201612819257f,
+0.98078528040323043058f,-0.47139673682599769755f,0.88192126434835504956f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.88192126434835493853f,
+0.47139673682599780857f,-0.98078528040323043058f,0.19509032201612860891f,
+-0.99518472667219692873f,-0.09801714032956058975f,-0.92387953251128684951f,
+-0.38268343236508967076f,-0.77301045336273710440f,-0.63439328416364526575f,
+-0.55557023301960217765f,-0.83146961230254523567f,-0.29028467725446244208f,
+-0.95694033573220882438f,1.00000000000000000000f,0.00000000000000000000f,
+0.38268343236508983729f,0.92387953251128673848f,-0.70710678118654746172f,
+0.70710678118654757274f,-0.92387953251128684951f,-0.38268343236508967076f,};
+
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_1024) || defined(ARM_TABLE_TWIDDLECOEF_F32_2048)
+
+uint32_t rearranged_twiddle_tab_stride1_arr_1024[5]={
+0,512,640,672,0,};
+
+uint32_t rearranged_twiddle_tab_stride2_arr_1024[5]={
+0,512,640,672,0,};
+
+uint32_t rearranged_twiddle_tab_stride3_arr_1024[5]={
+0,512,640,672,0,};
+
+float32_t rearranged_twiddle_stride1_1024[680]={
+1.00000000000000000000f,0.00000000000000000000f,0.99998117528260110909f,
+0.00613588464915447527f,0.99992470183914450299f,0.01227153828571992539f,
+0.99983058179582340319f,0.01840672990580482019f,0.99969881869620424997f,
+0.02454122852291228812f,0.99952941750109314256f,0.03067480317663662595f,
+0.99932238458834954375f,0.03680722294135883171f,0.99907772775264536147f,
+0.04293825693494082024f,0.99879545620517240501f,0.04906767432741801493f,
+0.99847558057329477421f,0.05519524434968993420f,0.99811811290014917919f,
+0.06132073630220857829f,0.99772306664419163624f,0.06744391956366405094f,
+0.99729045667869020697f,0.07356456359966742631f,0.99682029929116566791f,
+0.07968243797143012563f,0.99631261218277800129f,0.08579731234443989385f,
+0.99576741446765981713f,0.09190895649713272386f,0.99518472667219692873f,
+0.09801714032956060363f,0.99456457073425541537f,0.10412163387205458642f,
+0.99390697000235606051f,0.11022220729388305938f,0.99321194923479450001f,
+0.11631863091190475235f,0.99247953459870996706f,0.12241067519921619566f,
+0.99170975366909952520f,0.12849811079379316880f,0.99090263542778000971f,
+0.13458070850712616773f,0.99005821026229712256f,0.14065823933284921088f,
+0.98917650996478101444f,0.14673047445536174793f,0.98825756773074946437f,
+0.15279718525844343535f,0.98730141815785843473f,0.15885814333386144570f,
+0.98630809724459866938f,0.16491312048996989437f,0.98527764238894122162f,
+0.17096188876030121717f,0.98421009238692902521f,0.17700422041214874946f,
+0.98310548743121628501f,0.18303988795514095078f,0.98196386910955524296f,
+0.18906866414980619262f,0.98078528040323043058f,0.19509032201612824808f,
+0.97956976568544051887f,0.20110463484209190055f,0.97831737071962765473f,
+0.20711137619221856032f,0.97702814265775439484f,0.21311031991609136194f,
+0.97570213003852857003f,0.21910124015686979759f,0.97433938278557585821f,
+0.22508391135979283204f,0.97293995220556017678f,0.23105810828067110951f,
+0.97150389098625178352f,0.23702360599436719801f,0.97003125319454397424f,
+0.24298017990326387094f,0.96852209427441737777f,0.24892760574572014853f,
+0.96697647104485207059f,0.25486565960451457169f,0.96539444169768939830f,
+0.26079411791527551401f,0.96377606579543984022f,0.26671275747489836538f,
+0.96212140426904158019f,0.27262135544994897662f,0.96043051941556578655f,
+0.27851968938505305973f,0.95870347489587159906f,0.28440753721127187692f,
+0.95694033573220882438f,0.29028467725446233105f,0.95514116830577078243f,
+0.29615088824362378883f,0.95330604035419386211f,0.30200594931922808417f,
+0.95143502096900833820f,0.30784964004153486661f,0.94952818059303667475f,
+0.31368174039889151761f,0.94758559101774109124f,0.31950203081601569188f,
+0.94560732538052127971f,0.32531029216226292622f,0.94359345816196038559f,
+0.33110630575987642921f,0.94154406518302080631f,0.33688985339222005111f,
+0.93945922360218991898f,0.34266071731199437833f,0.93733901191257495977f,
+0.34841868024943456472f,0.93518350993894761025f,0.35416352542049034380f,
+0.93299279883473895669f,0.35989503653498811087f,0.93076696107898371224f,
+0.36561299780477385379f,0.92850608047321558924f,0.37131719395183754306f,
+0.92621024213831137928f,0.37700741021641825945f,0.92387953251128673848f,
+0.38268343236508978178f,0.92151403934204190183f,0.38834504669882624617f,
+0.91911385169005777040f,0.39399204006104809883f,0.91667905992104270485f,
+0.39962419984564678810f,0.91420975570353069095f,0.40524131400498986100f,
+0.91170603200542987832f,0.41084317105790391089f,0.90916798309052238025f,
+0.41642956009763715253f,0.90659570451491533483f,0.42200027079979968159f,
+0.90398929312344333820f,0.42755509343028208491f,0.90134884704602202810f,
+0.43309381885315195726f,0.89867446569395381673f,0.43861623853852765853f,
+0.89596624975618521791f,0.44412214457042920035f,0.89322430119551532446f,
+0.44961132965460653965f,0.89044872324475787817f,0.45508358712634383592f,
+0.88763962040285393496f,0.46053871095824000514f,0.88479709843093778954f,
+0.46597649576796618121f,0.88192126434835504956f,0.47139673682599764204f,
+0.87901222642863352519f,0.47679923006332208812f,0.87607009419540660122f,
+0.48218377207912271887f,0.87309497841829009079f,0.48755016014843599592f,
+0.87008699110871146054f,0.49289819222978403790f,0.86704624551569264845f,
+0.49822766697278181303f,0.86397285612158669643f,0.50353838372571757542f,
+0.86086693863776730939f,0.50883014254310698909f,0.85772861000027211809f,
+0.51410274419322166128f,0.85455798836540053376f,0.51935599016558964269f,
+0.85135519310526519554f,0.52458968267846894928f,0.84812034480329723252f,
+0.52980362468629460526f,0.84485356524970711689f,0.53499761988709715332f,
+0.84155497743689844370f,0.54017147272989285423f,0.83822470555483807875f,
+0.54532498842204646383f,0.83486287498638001026f,0.55045797293660481131f,
+0.83146961230254523567f,0.55557023301960217765f,0.82804504525775579626f,
+0.56066157619733603124f,0.82458930278502529099f,0.56573181078361312046f,
+0.82110251499110464835f,0.57078074588696725566f,0.81758481315158371139f,
+0.57580819141784533866f,0.81403632970594841378f,0.58081395809576452649f,
+0.81045719825259476821f,0.58579785745643886408f,0.80684755354379933401f,
+0.59075970185887416442f,0.80320753148064494287f,0.59569930449243335691f,
+0.79953726910790501314f,0.60061647938386897305f,0.79583690460888356633f,
+0.60551104140432554512f,0.79210657730021238887f,0.61038280627630947528f,
+0.78834642762660622761f,0.61523159058062681925f,0.78455659715557524159f,
+0.62005721176328909561f,0.78073722857209448822f,0.62485948814238634341f,
+0.77688846567323244230f,0.62963823891492698426f,0.77301045336273699338f,
+0.63439328416364548779f,0.76910333764557969882f,0.63912444486377573138f,
+0.76516726562245895860f,0.64383154288979138613f,0.76120238548426177871f,
+0.64851440102211244110f,0.75720884650648456748f,0.65317284295377675551f,
+0.75318679904361252042f,0.65780669329707863735f,0.74913639452345937020f,
+0.66241577759017178373f,0.74505778544146594733f,0.66699992230363747137f,
+0.74095112535495921691f,0.67155895484701833009f,0.73681656887736979300f,
+0.67609270357531592310f,0.73265427167241281570f,0.68060099779545302212f,
+0.72846439044822519637f,0.68508366777270035541f,0.72424708295146700276f,
+0.68954054473706682948f,0.72000250796138165477f,0.69397146088965389055f,
+0.71573082528381870571f,0.69837624940897280457f,0.71143219574521643356f,
+0.70275474445722529993f,0.70710678118654757274f,0.70710678118654757274f,
+0.70275474445722529993f,0.71143219574521643356f,0.69837624940897291559f,
+0.71573082528381859468f,0.69397146088965400157f,0.72000250796138165477f,
+0.68954054473706694051f,0.72424708295146689174f,0.68508366777270035541f,
+0.72846439044822519637f,0.68060099779545302212f,0.73265427167241281570f,
+0.67609270357531603413f,0.73681656887736979300f,0.67155895484701833009f,
+0.74095112535495910588f,0.66699992230363747137f,0.74505778544146594733f,
+0.66241577759017178373f,0.74913639452345925918f,0.65780669329707874837f,
+0.75318679904361252042f,0.65317284295377686654f,0.75720884650648456748f,
+0.64851440102211255212f,0.76120238548426177871f,0.64383154288979149715f,
+0.76516726562245895860f,0.63912444486377573138f,0.76910333764557958780f,
+0.63439328416364548779f,0.77301045336273688235f,0.62963823891492709528f,
+0.77688846567323244230f,0.62485948814238645443f,0.78073722857209448822f,
+0.62005721176328920663f,0.78455659715557524159f,0.61523159058062681925f,
+0.78834642762660622761f,0.61038280627630947528f,0.79210657730021227785f,
+0.60551104140432554512f,0.79583690460888345530f,0.60061647938386897305f,
+0.79953726910790501314f,0.59569930449243346793f,0.80320753148064483184f,
+0.59075970185887427544f,0.80684755354379922299f,0.58579785745643886408f,
+0.81045719825259476821f,0.58081395809576452649f,0.81403632970594830276f,
+0.57580819141784533866f,0.81758481315158371139f,0.57078074588696736669f,
+0.82110251499110464835f,0.56573181078361323149f,0.82458930278502529099f,
+0.56066157619733603124f,0.82804504525775579626f,0.55557023301960228867f,
+0.83146961230254523567f,0.55045797293660481131f,0.83486287498638001026f,
+0.54532498842204646383f,0.83822470555483796772f,0.54017147272989296525f,
+0.84155497743689833268f,0.53499761988709726435f,0.84485356524970700587f,
+0.52980362468629482731f,0.84812034480329712149f,0.52458968267846883826f,
+0.85135519310526519554f,0.51935599016558953167f,0.85455798836540053376f,
+0.51410274419322166128f,0.85772861000027211809f,0.50883014254310698909f,
+0.86086693863776730939f,0.50353838372571757542f,0.86397285612158669643f,
+0.49822766697278186854f,0.86704624551569264845f,0.49289819222978409341f,
+0.87008699110871134952f,0.48755016014843605143f,0.87309497841829009079f,
+0.48218377207912282989f,0.87607009419540660122f,0.47679923006332225466f,
+0.87901222642863341417f,0.47139673682599780857f,0.88192126434835493853f,
+0.46597649576796612569f,0.88479709843093778954f,0.46053871095824000514f,
+0.88763962040285393496f,0.45508358712634383592f,0.89044872324475787817f,
+0.44961132965460659516f,0.89322430119551532446f,0.44412214457042925586f,
+0.89596624975618510689f,0.43861623853852771404f,0.89867446569395381673f,
+0.43309381885315201277f,0.90134884704602202810f,0.42755509343028219593f,
+0.90398929312344333820f,0.42200027079979979261f,0.90659570451491533483f,
+0.41642956009763731906f,0.90916798309052226923f,0.41084317105790391089f,
+0.91170603200542987832f,0.40524131400498986100f,0.91420975570353069095f,
+0.39962419984564678810f,0.91667905992104270485f,0.39399204006104809883f,
+0.91911385169005777040f,0.38834504669882630168f,0.92151403934204190183f,
+0.38268343236508983729f,0.92387953251128673848f,0.37700741021641831496f,
+0.92621024213831126826f,0.37131719395183759858f,0.92850608047321558924f,
+0.36561299780477396482f,0.93076696107898371224f,0.35989503653498827740f,
+0.93299279883473884567f,0.35416352542049051033f,0.93518350993894749923f,
+0.34841868024943450921f,0.93733901191257495977f,0.34266071731199437833f,
+0.93945922360218991898f,0.33688985339222005111f,0.94154406518302080631f,
+0.33110630575987642921f,0.94359345816196038559f,0.32531029216226298173f,
+0.94560732538052127971f,0.31950203081601574739f,0.94758559101774109124f,
+0.31368174039889157312f,0.94952818059303667475f,0.30784964004153497763f,
+0.95143502096900833820f,0.30200594931922819519f,0.95330604035419375109f,
+0.29615088824362395536f,0.95514116830577067141f,0.29028467725446233105f,
+0.95694033573220893540f,0.28440753721127182141f,0.95870347489587159906f,
+0.27851968938505305973f,0.96043051941556578655f,0.27262135544994897662f,
+0.96212140426904158019f,0.26671275747489842090f,0.96377606579543984022f,
+0.26079411791527556952f,0.96539444169768939830f,0.25486565960451462720f,
+0.96697647104485207059f,0.24892760574572025956f,0.96852209427441726675f,
+0.24298017990326398197f,0.97003125319454397424f,0.23702360599436733679f,
+0.97150389098625178352f,0.23105810828067127605f,0.97293995220556006576f,
+0.22508391135979277653f,0.97433938278557585821f,0.21910124015686976984f,
+0.97570213003852857003f,0.21311031991609136194f,0.97702814265775439484f,
+0.20711137619221856032f,0.97831737071962765473f,0.20110463484209195606f,
+0.97956976568544051887f,0.19509032201612833135f,0.98078528040323043058f,
+0.18906866414980627589f,0.98196386910955524296f,0.18303988795514106180f,
+0.98310548743121628501f,0.17700422041214886049f,0.98421009238692902521f,
+0.17096188876030135595f,0.98527764238894122162f,0.16491312048997008866f,
+0.98630809724459866938f,0.15885814333386139019f,0.98730141815785843473f,
+0.15279718525844340760f,0.98825756773074946437f,0.14673047445536174793f,
+0.98917650996478101444f,0.14065823933284923863f,0.99005821026229712256f,
+0.13458070850712622324f,0.99090263542778000971f,0.12849811079379322432f,
+0.99170975366909952520f,0.12241067519921627893f,0.99247953459870996706f,
+0.11631863091190487725f,0.99321194923479450001f,0.11022220729388318428f,
+0.99390697000235606051f,0.10412163387205472520f,0.99456457073425541537f,
+0.09801714032956077016f,0.99518472667219681771f,0.09190895649713269611f,
+0.99576741446765981713f,0.08579731234443987997f,0.99631261218277800129f,
+0.07968243797143012563f,0.99682029929116566791f,0.07356456359966745406f,
+0.99729045667869020697f,0.06744391956366410645f,0.99772306664419163624f,
+0.06132073630220864768f,0.99811811290014917919f,0.05519524434969003135f,
+0.99847558057329477421f,0.04906767432741812596f,0.99879545620517240501f,
+0.04293825693494095902f,0.99907772775264536147f,0.03680722294135899131f,
+0.99932238458834954375f,0.03067480317663658085f,0.99952941750109314256f,
+0.02454122852291226384f,0.99969881869620424997f,0.01840672990580482019f,
+0.99983058179582340319f,0.01227153828571994447f,0.99992470183914450299f,
+0.00613588464915451517f,0.99998117528260110909f,1.00000000000000000000f,
+0.00000000000000000000f,0.99969881869620424997f,0.02454122852291228812f,
+0.99879545620517240501f,0.04906767432741801493f,0.99729045667869020697f,
+0.07356456359966742631f,0.99518472667219692873f,0.09801714032956060363f,
+0.99247953459870996706f,0.12241067519921619566f,0.98917650996478101444f,
+0.14673047445536174793f,0.98527764238894122162f,0.17096188876030121717f,
+0.98078528040323043058f,0.19509032201612824808f,0.97570213003852857003f,
+0.21910124015686979759f,0.97003125319454397424f,0.24298017990326387094f,
+0.96377606579543984022f,0.26671275747489836538f,0.95694033573220882438f,
+0.29028467725446233105f,0.94952818059303667475f,0.31368174039889151761f,
+0.94154406518302080631f,0.33688985339222005111f,0.93299279883473895669f,
+0.35989503653498811087f,0.92387953251128673848f,0.38268343236508978178f,
+0.91420975570353069095f,0.40524131400498986100f,0.90398929312344333820f,
+0.42755509343028208491f,0.89322430119551532446f,0.44961132965460653965f,
+0.88192126434835504956f,0.47139673682599764204f,0.87008699110871146054f,
+0.49289819222978403790f,0.85772861000027211809f,0.51410274419322166128f,
+0.84485356524970711689f,0.53499761988709715332f,0.83146961230254523567f,
+0.55557023301960217765f,0.81758481315158371139f,0.57580819141784533866f,
+0.80320753148064494287f,0.59569930449243335691f,0.78834642762660622761f,
+0.61523159058062681925f,0.77301045336273699338f,0.63439328416364548779f,
+0.75720884650648456748f,0.65317284295377675551f,0.74095112535495921691f,
+0.67155895484701833009f,0.72424708295146700276f,0.68954054473706682948f,
+0.70710678118654757274f,0.70710678118654757274f,0.68954054473706694051f,
+0.72424708295146689174f,0.67155895484701833009f,0.74095112535495910588f,
+0.65317284295377686654f,0.75720884650648456748f,0.63439328416364548779f,
+0.77301045336273688235f,0.61523159058062681925f,0.78834642762660622761f,
+0.59569930449243346793f,0.80320753148064483184f,0.57580819141784533866f,
+0.81758481315158371139f,0.55557023301960228867f,0.83146961230254523567f,
+0.53499761988709726435f,0.84485356524970700587f,0.51410274419322166128f,
+0.85772861000027211809f,0.49289819222978409341f,0.87008699110871134952f,
+0.47139673682599780857f,0.88192126434835493853f,0.44961132965460659516f,
+0.89322430119551532446f,0.42755509343028219593f,0.90398929312344333820f,
+0.40524131400498986100f,0.91420975570353069095f,0.38268343236508983729f,
+0.92387953251128673848f,0.35989503653498827740f,0.93299279883473884567f,
+0.33688985339222005111f,0.94154406518302080631f,0.31368174039889157312f,
+0.94952818059303667475f,0.29028467725446233105f,0.95694033573220893540f,
+0.26671275747489842090f,0.96377606579543984022f,0.24298017990326398197f,
+0.97003125319454397424f,0.21910124015686976984f,0.97570213003852857003f,
+0.19509032201612833135f,0.98078528040323043058f,0.17096188876030135595f,
+0.98527764238894122162f,0.14673047445536174793f,0.98917650996478101444f,
+0.12241067519921627893f,0.99247953459870996706f,0.09801714032956077016f,
+0.99518472667219681771f,0.07356456359966745406f,0.99729045667869020697f,
+0.04906767432741812596f,0.99879545620517240501f,0.02454122852291226384f,
+0.99969881869620424997f,1.00000000000000000000f,0.00000000000000000000f,
+0.99518472667219692873f,0.09801714032956060363f,0.98078528040323043058f,
+0.19509032201612824808f,0.95694033573220882438f,0.29028467725446233105f,
+0.92387953251128673848f,0.38268343236508978178f,0.88192126434835504956f,
+0.47139673682599764204f,0.83146961230254523567f,0.55557023301960217765f,
+0.77301045336273699338f,0.63439328416364548779f,0.70710678118654757274f,
+0.70710678118654757274f,0.63439328416364548779f,0.77301045336273688235f,
+0.55557023301960228867f,0.83146961230254523567f,0.47139673682599780857f,
+0.88192126434835493853f,0.38268343236508983729f,0.92387953251128673848f,
+0.29028467725446233105f,0.95694033573220893540f,0.19509032201612833135f,
+0.98078528040323043058f,0.09801714032956077016f,0.99518472667219681771f,
+1.00000000000000000000f,0.00000000000000000000f,0.92387953251128673848f,
+0.38268343236508978178f,0.70710678118654757274f,0.70710678118654757274f,
+0.38268343236508983729f,0.92387953251128673848f,};
+
+float32_t rearranged_twiddle_stride2_1024[680]={
+1.00000000000000000000f,0.00000000000000000000f,0.99992470183914450299f,
+0.01227153828571992539f,0.99969881869620424997f,0.02454122852291228812f,
+0.99932238458834954375f,0.03680722294135883171f,0.99879545620517240501f,
+0.04906767432741801493f,0.99811811290014917919f,0.06132073630220857829f,
+0.99729045667869020697f,0.07356456359966742631f,0.99631261218277800129f,
+0.08579731234443989385f,0.99518472667219692873f,0.09801714032956060363f,
+0.99390697000235606051f,0.11022220729388305938f,0.99247953459870996706f,
+0.12241067519921619566f,0.99090263542778000971f,0.13458070850712616773f,
+0.98917650996478101444f,0.14673047445536174793f,0.98730141815785843473f,
+0.15885814333386144570f,0.98527764238894122162f,0.17096188876030121717f,
+0.98310548743121628501f,0.18303988795514095078f,0.98078528040323043058f,
+0.19509032201612824808f,0.97831737071962765473f,0.20711137619221856032f,
+0.97570213003852857003f,0.21910124015686979759f,0.97293995220556017678f,
+0.23105810828067110951f,0.97003125319454397424f,0.24298017990326387094f,
+0.96697647104485207059f,0.25486565960451457169f,0.96377606579543984022f,
+0.26671275747489836538f,0.96043051941556578655f,0.27851968938505305973f,
+0.95694033573220882438f,0.29028467725446233105f,0.95330604035419386211f,
+0.30200594931922808417f,0.94952818059303667475f,0.31368174039889151761f,
+0.94560732538052127971f,0.32531029216226292622f,0.94154406518302080631f,
+0.33688985339222005111f,0.93733901191257495977f,0.34841868024943456472f,
+0.93299279883473895669f,0.35989503653498811087f,0.92850608047321558924f,
+0.37131719395183754306f,0.92387953251128673848f,0.38268343236508978178f,
+0.91911385169005777040f,0.39399204006104809883f,0.91420975570353069095f,
+0.40524131400498986100f,0.90916798309052238025f,0.41642956009763715253f,
+0.90398929312344333820f,0.42755509343028208491f,0.89867446569395381673f,
+0.43861623853852765853f,0.89322430119551532446f,0.44961132965460653965f,
+0.88763962040285393496f,0.46053871095824000514f,0.88192126434835504956f,
+0.47139673682599764204f,0.87607009419540660122f,0.48218377207912271887f,
+0.87008699110871146054f,0.49289819222978403790f,0.86397285612158669643f,
+0.50353838372571757542f,0.85772861000027211809f,0.51410274419322166128f,
+0.85135519310526519554f,0.52458968267846894928f,0.84485356524970711689f,
+0.53499761988709715332f,0.83822470555483807875f,0.54532498842204646383f,
+0.83146961230254523567f,0.55557023301960217765f,0.82458930278502529099f,
+0.56573181078361312046f,0.81758481315158371139f,0.57580819141784533866f,
+0.81045719825259476821f,0.58579785745643886408f,0.80320753148064494287f,
+0.59569930449243335691f,0.79583690460888356633f,0.60551104140432554512f,
+0.78834642762660622761f,0.61523159058062681925f,0.78073722857209448822f,
+0.62485948814238634341f,0.77301045336273699338f,0.63439328416364548779f,
+0.76516726562245895860f,0.64383154288979138613f,0.75720884650648456748f,
+0.65317284295377675551f,0.74913639452345937020f,0.66241577759017178373f,
+0.74095112535495921691f,0.67155895484701833009f,0.73265427167241281570f,
+0.68060099779545302212f,0.72424708295146700276f,0.68954054473706682948f,
+0.71573082528381870571f,0.69837624940897280457f,0.70710678118654757274f,
+0.70710678118654757274f,0.69837624940897291559f,0.71573082528381859468f,
+0.68954054473706694051f,0.72424708295146689174f,0.68060099779545302212f,
+0.73265427167241281570f,0.67155895484701833009f,0.74095112535495910588f,
+0.66241577759017178373f,0.74913639452345925918f,0.65317284295377686654f,
+0.75720884650648456748f,0.64383154288979149715f,0.76516726562245895860f,
+0.63439328416364548779f,0.77301045336273688235f,0.62485948814238645443f,
+0.78073722857209448822f,0.61523159058062681925f,0.78834642762660622761f,
+0.60551104140432554512f,0.79583690460888345530f,0.59569930449243346793f,
+0.80320753148064483184f,0.58579785745643886408f,0.81045719825259476821f,
+0.57580819141784533866f,0.81758481315158371139f,0.56573181078361323149f,
+0.82458930278502529099f,0.55557023301960228867f,0.83146961230254523567f,
+0.54532498842204646383f,0.83822470555483796772f,0.53499761988709726435f,
+0.84485356524970700587f,0.52458968267846883826f,0.85135519310526519554f,
+0.51410274419322166128f,0.85772861000027211809f,0.50353838372571757542f,
+0.86397285612158669643f,0.49289819222978409341f,0.87008699110871134952f,
+0.48218377207912282989f,0.87607009419540660122f,0.47139673682599780857f,
+0.88192126434835493853f,0.46053871095824000514f,0.88763962040285393496f,
+0.44961132965460659516f,0.89322430119551532446f,0.43861623853852771404f,
+0.89867446569395381673f,0.42755509343028219593f,0.90398929312344333820f,
+0.41642956009763731906f,0.90916798309052226923f,0.40524131400498986100f,
+0.91420975570353069095f,0.39399204006104809883f,0.91911385169005777040f,
+0.38268343236508983729f,0.92387953251128673848f,0.37131719395183759858f,
+0.92850608047321558924f,0.35989503653498827740f,0.93299279883473884567f,
+0.34841868024943450921f,0.93733901191257495977f,0.33688985339222005111f,
+0.94154406518302080631f,0.32531029216226298173f,0.94560732538052127971f,
+0.31368174039889157312f,0.94952818059303667475f,0.30200594931922819519f,
+0.95330604035419375109f,0.29028467725446233105f,0.95694033573220893540f,
+0.27851968938505305973f,0.96043051941556578655f,0.26671275747489842090f,
+0.96377606579543984022f,0.25486565960451462720f,0.96697647104485207059f,
+0.24298017990326398197f,0.97003125319454397424f,0.23105810828067127605f,
+0.97293995220556006576f,0.21910124015686976984f,0.97570213003852857003f,
+0.20711137619221856032f,0.97831737071962765473f,0.19509032201612833135f,
+0.98078528040323043058f,0.18303988795514106180f,0.98310548743121628501f,
+0.17096188876030135595f,0.98527764238894122162f,0.15885814333386139019f,
+0.98730141815785843473f,0.14673047445536174793f,0.98917650996478101444f,
+0.13458070850712622324f,0.99090263542778000971f,0.12241067519921627893f,
+0.99247953459870996706f,0.11022220729388318428f,0.99390697000235606051f,
+0.09801714032956077016f,0.99518472667219681771f,0.08579731234443987997f,
+0.99631261218277800129f,0.07356456359966745406f,0.99729045667869020697f,
+0.06132073630220864768f,0.99811811290014917919f,0.04906767432741812596f,
+0.99879545620517240501f,0.03680722294135899131f,0.99932238458834954375f,
+0.02454122852291226384f,0.99969881869620424997f,0.01227153828571994447f,
+0.99992470183914450299f,0.00000000000000006123f,1.00000000000000000000f,
+-0.01227153828571982304f,0.99992470183914450299f,-0.02454122852291214241f,
+0.99969881869620424997f,-0.03680722294135886641f,0.99932238458834954375f,
+-0.04906767432741800800f,0.99879545620517240501f,-0.06132073630220852972f,
+0.99811811290014917919f,-0.07356456359966732916f,0.99729045667869020697f,
+-0.08579731234443975507f,0.99631261218277800129f,-0.09801714032956064526f,
+0.99518472667219692873f,-0.11022220729388305938f,0.99390697000235606051f,
+-0.12241067519921615403f,0.99247953459870996706f,-0.13458070850712611222f,
+0.99090263542778000971f,-0.14673047445536163691f,0.98917650996478101444f,
+-0.15885814333386127917f,0.98730141815785843473f,-0.17096188876030124493f,
+0.98527764238894122162f,-0.18303988795514092303f,0.98310548743121628501f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.20711137619221844930f,
+0.97831737071962765473f,-0.21910124015686965881f,0.97570213003852857003f,
+-0.23105810828067113727f,0.97293995220556017678f,-0.24298017990326387094f,
+0.97003125319454397424f,-0.25486565960451451618f,0.96697647104485207059f,
+-0.26671275747489830987f,0.96377606579543984022f,-0.27851968938505294870f,
+0.96043051941556589757f,-0.29028467725446216452f,0.95694033573220893540f,
+-0.30200594931922808417f,0.95330604035419386211f,-0.31368174039889140658f,
+0.94952818059303667475f,-0.32531029216226287071f,0.94560732538052139073f,
+-0.33688985339221994009f,0.94154406518302080631f,-0.34841868024943439819f,
+0.93733901191257495977f,-0.35989503653498816638f,0.93299279883473884567f,
+-0.37131719395183748755f,0.92850608047321558924f,-0.38268343236508972627f,
+0.92387953251128673848f,-0.39399204006104798781f,0.91911385169005777040f,
+-0.40524131400498974998f,0.91420975570353069095f,-0.41642956009763698599f,
+0.90916798309052249127f,-0.42755509343028186287f,0.90398929312344344922f,
+-0.43861623853852738097f,0.89867446569395392775f,-0.44961132965460670619f,
+0.89322430119551521344f,-0.46053871095824006066f,0.88763962040285393496f,
+-0.47139673682599769755f,0.88192126434835504956f,-0.48218377207912271887f,
+0.87607009419540660122f,-0.49289819222978398239f,0.87008699110871146054f,
+-0.50353838372571746440f,0.86397285612158680745f,-0.51410274419322155026f,
+0.85772861000027211809f,-0.52458968267846872724f,0.85135519310526519554f,
+-0.53499761988709704230f,0.84485356524970722791f,-0.54532498842204624179f,
+0.83822470555483818977f,-0.55557023301960195560f,0.83146961230254534669f,
+-0.56573181078361323149f,0.82458930278502517996f,-0.57580819141784533866f,
+0.81758481315158371139f,-0.58579785745643886408f,0.81045719825259476821f,
+-0.59569930449243335691f,0.80320753148064494287f,-0.60551104140432543410f,
+0.79583690460888356633f,-0.61523159058062670823f,0.78834642762660633863f,
+-0.62485948814238623239f,0.78073722857209459924f,-0.63439328416364537677f,
+0.77301045336273710440f,-0.64383154288979127511f,0.76516726562245906962f,
+-0.65317284295377653347f,0.75720884650648467851f,-0.66241577759017189475f,
+0.74913639452345925918f,-0.67155895484701844111f,0.74095112535495899486f,
+-0.68060099779545302212f,0.73265427167241281570f,-0.68954054473706694051f,
+0.72424708295146689174f,-0.69837624940897280457f,0.71573082528381870571f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.71573082528381859468f,
+0.69837624940897291559f,-0.72424708295146678072f,0.68954054473706705153f,
+-0.73265427167241270467f,0.68060099779545324417f,-0.74095112535495888384f,
+0.67155895484701855214f,-0.74913639452345914815f,0.66241577759017200577f,
+-0.75720884650648467851f,0.65317284295377664449f,-0.76516726562245895860f,
+0.64383154288979138613f,-0.77301045336273699338f,0.63439328416364548779f,
+-0.78073722857209448822f,0.62485948814238634341f,-0.78834642762660622761f,
+0.61523159058062693028f,-0.79583690460888345530f,0.60551104140432565615f,
+-0.80320753148064483184f,0.59569930449243346793f,-0.81045719825259465718f,
+0.58579785745643897510f,-0.81758481315158360037f,0.57580819141784544968f,
+-0.82458930278502506894f,0.56573181078361345353f,-0.83146961230254534669f,
+0.55557023301960217765f,-0.83822470555483807875f,0.54532498842204635281f,
+-0.84485356524970711689f,0.53499761988709715332f,-0.85135519310526519554f,
+0.52458968267846894928f,-0.85772861000027200706f,0.51410274419322177231f,
+-0.86397285612158669643f,0.50353838372571757542f,-0.87008699110871134952f,
+0.49289819222978414892f,-0.87607009419540649020f,0.48218377207912288540f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.88763962040285382393f,
+0.46053871095824022719f,-0.89322430119551521344f,0.44961132965460687272f,
+-0.89867446569395392775f,0.43861623853852754751f,-0.90398929312344333820f,
+0.42755509343028202940f,-0.90916798309052238025f,0.41642956009763715253f,
+-0.91420975570353069095f,0.40524131400498991651f,-0.91911385169005777040f,
+0.39399204006104815434f,-0.92387953251128673848f,0.38268343236508989280f,
+-0.92850608047321547822f,0.37131719395183770960f,-0.93299279883473884567f,
+0.35989503653498833291f,-0.93733901191257484875f,0.34841868024943478677f,
+-0.94154406518302069529f,0.33688985339222032867f,-0.94560732538052116869f,
+0.32531029216226325929f,-0.94952818059303667475f,0.31368174039889140658f,
+-0.95330604035419386211f,0.30200594931922802866f,-0.95694033573220882438f,
+0.29028467725446238656f,-0.96043051941556578655f,0.27851968938505317075f,
+-0.96377606579543984022f,0.26671275747489847641f,-0.96697647104485207059f,
+0.25486565960451468271f,-0.97003125319454397424f,0.24298017990326406523f,
+-0.97293995220556006576f,0.23105810828067133156f,-0.97570213003852845901f,
+0.21910124015687004739f,-0.97831737071962754371f,0.20711137619221883788f,
+-0.98078528040323043058f,0.19509032201612860891f,-0.98310548743121628501f,
+0.18303988795514089527f,-0.98527764238894122162f,0.17096188876030121717f,
+-0.98730141815785843473f,0.15885814333386147346f,-0.98917650996478101444f,
+0.14673047445536180344f,-0.99090263542778000971f,0.13458070850712627875f,
+-0.99247953459870996706f,0.12241067519921634832f,-0.99390697000235606051f,
+0.11022220729388323979f,-0.99518472667219681771f,0.09801714032956082567f,
+-0.99631261218277800129f,0.08579731234444015753f,-0.99729045667869020697f,
+0.07356456359966773162f,-0.99811811290014917919f,0.06132073630220848809f,
+-0.99879545620517240501f,0.04906767432741796636f,-0.99932238458834954375f,
+0.03680722294135883171f,-0.99969881869620424997f,0.02454122852291232629f,
+-0.99992470183914450299f,0.01227153828572000692f,1.00000000000000000000f,
+0.00000000000000000000f,0.99879545620517240501f,0.04906767432741801493f,
+0.99518472667219692873f,0.09801714032956060363f,0.98917650996478101444f,
+0.14673047445536174793f,0.98078528040323043058f,0.19509032201612824808f,
+0.97003125319454397424f,0.24298017990326387094f,0.95694033573220882438f,
+0.29028467725446233105f,0.94154406518302080631f,0.33688985339222005111f,
+0.92387953251128673848f,0.38268343236508978178f,0.90398929312344333820f,
+0.42755509343028208491f,0.88192126434835504956f,0.47139673682599764204f,
+0.85772861000027211809f,0.51410274419322166128f,0.83146961230254523567f,
+0.55557023301960217765f,0.80320753148064494287f,0.59569930449243335691f,
+0.77301045336273699338f,0.63439328416364548779f,0.74095112535495921691f,
+0.67155895484701833009f,0.70710678118654757274f,0.70710678118654757274f,
+0.67155895484701833009f,0.74095112535495910588f,0.63439328416364548779f,
+0.77301045336273688235f,0.59569930449243346793f,0.80320753148064483184f,
+0.55557023301960228867f,0.83146961230254523567f,0.51410274419322166128f,
+0.85772861000027211809f,0.47139673682599780857f,0.88192126434835493853f,
+0.42755509343028219593f,0.90398929312344333820f,0.38268343236508983729f,
+0.92387953251128673848f,0.33688985339222005111f,0.94154406518302080631f,
+0.29028467725446233105f,0.95694033573220893540f,0.24298017990326398197f,
+0.97003125319454397424f,0.19509032201612833135f,0.98078528040323043058f,
+0.14673047445536174793f,0.98917650996478101444f,0.09801714032956077016f,
+0.99518472667219681771f,0.04906767432741812596f,0.99879545620517240501f,
+0.00000000000000006123f,1.00000000000000000000f,-0.04906767432741800800f,
+0.99879545620517240501f,-0.09801714032956064526f,0.99518472667219692873f,
+-0.14673047445536163691f,0.98917650996478101444f,-0.19509032201612819257f,
+0.98078528040323043058f,-0.24298017990326387094f,0.97003125319454397424f,
+-0.29028467725446216452f,0.95694033573220893540f,-0.33688985339221994009f,
+0.94154406518302080631f,-0.38268343236508972627f,0.92387953251128673848f,
+-0.42755509343028186287f,0.90398929312344344922f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.51410274419322155026f,0.85772861000027211809f,
+-0.55557023301960195560f,0.83146961230254534669f,-0.59569930449243335691f,
+0.80320753148064494287f,-0.63439328416364537677f,0.77301045336273710440f,
+-0.67155895484701844111f,0.74095112535495899486f,-0.70710678118654746172f,
+0.70710678118654757274f,-0.74095112535495888384f,0.67155895484701855214f,
+-0.77301045336273699338f,0.63439328416364548779f,-0.80320753148064483184f,
+0.59569930449243346793f,-0.83146961230254534669f,0.55557023301960217765f,
+-0.85772861000027200706f,0.51410274419322177231f,-0.88192126434835493853f,
+0.47139673682599780857f,-0.90398929312344333820f,0.42755509343028202940f,
+-0.92387953251128673848f,0.38268343236508989280f,-0.94154406518302069529f,
+0.33688985339222032867f,-0.95694033573220882438f,0.29028467725446238656f,
+-0.97003125319454397424f,0.24298017990326406523f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.98917650996478101444f,0.14673047445536180344f,
+-0.99518472667219681771f,0.09801714032956082567f,-0.99879545620517240501f,
+0.04906767432741796636f,1.00000000000000000000f,0.00000000000000000000f,
+0.98078528040323043058f,0.19509032201612824808f,0.92387953251128673848f,
+0.38268343236508978178f,0.83146961230254523567f,0.55557023301960217765f,
+0.70710678118654757274f,0.70710678118654757274f,0.55557023301960228867f,
+0.83146961230254523567f,0.38268343236508983729f,0.92387953251128673848f,
+0.19509032201612833135f,0.98078528040323043058f,0.00000000000000006123f,
+1.00000000000000000000f,-0.19509032201612819257f,0.98078528040323043058f,
+-0.38268343236508972627f,0.92387953251128673848f,-0.55557023301960195560f,
+0.83146961230254534669f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.83146961230254534669f,0.55557023301960217765f,-0.92387953251128673848f,
+0.38268343236508989280f,-0.98078528040323043058f,0.19509032201612860891f,
+1.00000000000000000000f,0.00000000000000000000f,0.70710678118654757274f,
+0.70710678118654757274f,0.00000000000000006123f,1.00000000000000000000f,
+-0.70710678118654746172f,0.70710678118654757274f,};
+
+float32_t rearranged_twiddle_stride3_1024[680]={
+1.00000000000000000000f,0.00000000000000000000f,0.99983058179582340319f,
+0.01840672990580482019f,0.99932238458834954375f,0.03680722294135883171f,
+0.99847558057329477421f,0.05519524434968993420f,0.99729045667869020697f,
+0.07356456359966742631f,0.99576741446765981713f,0.09190895649713272386f,
+0.99390697000235606051f,0.11022220729388305938f,0.99170975366909952520f,
+0.12849811079379316880f,0.98917650996478101444f,0.14673047445536174793f,
+0.98630809724459866938f,0.16491312048996989437f,0.98310548743121628501f,
+0.18303988795514095078f,0.97956976568544051887f,0.20110463484209190055f,
+0.97570213003852857003f,0.21910124015686979759f,0.97150389098625178352f,
+0.23702360599436719801f,0.96697647104485207059f,0.25486565960451457169f,
+0.96212140426904158019f,0.27262135544994897662f,0.95694033573220882438f,
+0.29028467725446233105f,0.95143502096900833820f,0.30784964004153486661f,
+0.94560732538052127971f,0.32531029216226292622f,0.93945922360218991898f,
+0.34266071731199437833f,0.93299279883473895669f,0.35989503653498811087f,
+0.92621024213831137928f,0.37700741021641825945f,0.91911385169005777040f,
+0.39399204006104809883f,0.91170603200542987832f,0.41084317105790391089f,
+0.90398929312344333820f,0.42755509343028208491f,0.89596624975618521791f,
+0.44412214457042920035f,0.88763962040285393496f,0.46053871095824000514f,
+0.87901222642863352519f,0.47679923006332208812f,0.87008699110871146054f,
+0.49289819222978403790f,0.86086693863776730939f,0.50883014254310698909f,
+0.85135519310526519554f,0.52458968267846894928f,0.84155497743689844370f,
+0.54017147272989285423f,0.83146961230254523567f,0.55557023301960217765f,
+0.82110251499110464835f,0.57078074588696725566f,0.81045719825259476821f,
+0.58579785745643886408f,0.79953726910790501314f,0.60061647938386897305f,
+0.78834642762660622761f,0.61523159058062681925f,0.77688846567323244230f,
+0.62963823891492698426f,0.76516726562245895860f,0.64383154288979138613f,
+0.75318679904361252042f,0.65780669329707863735f,0.74095112535495921691f,
+0.67155895484701833009f,0.72846439044822519637f,0.68508366777270035541f,
+0.71573082528381870571f,0.69837624940897280457f,0.70275474445722529993f,
+0.71143219574521643356f,0.68954054473706694051f,0.72424708295146689174f,
+0.67609270357531603413f,0.73681656887736979300f,0.66241577759017178373f,
+0.74913639452345925918f,0.64851440102211255212f,0.76120238548426177871f,
+0.63439328416364548779f,0.77301045336273688235f,0.62005721176328920663f,
+0.78455659715557524159f,0.60551104140432554512f,0.79583690460888345530f,
+0.59075970185887427544f,0.80684755354379922299f,0.57580819141784533866f,
+0.81758481315158371139f,0.56066157619733603124f,0.82804504525775579626f,
+0.54532498842204646383f,0.83822470555483796772f,0.52980362468629482731f,
+0.84812034480329712149f,0.51410274419322166128f,0.85772861000027211809f,
+0.49822766697278186854f,0.86704624551569264845f,0.48218377207912282989f,
+0.87607009419540660122f,0.46597649576796612569f,0.88479709843093778954f,
+0.44961132965460659516f,0.89322430119551532446f,0.43309381885315201277f,
+0.90134884704602202810f,0.41642956009763731906f,0.90916798309052226923f,
+0.39962419984564678810f,0.91667905992104270485f,0.38268343236508983729f,
+0.92387953251128673848f,0.36561299780477396482f,0.93076696107898371224f,
+0.34841868024943450921f,0.93733901191257495977f,0.33110630575987642921f,
+0.94359345816196038559f,0.31368174039889157312f,0.94952818059303667475f,
+0.29615088824362395536f,0.95514116830577067141f,0.27851968938505305973f,
+0.96043051941556578655f,0.26079411791527556952f,0.96539444169768939830f,
+0.24298017990326398197f,0.97003125319454397424f,0.22508391135979277653f,
+0.97433938278557585821f,0.20711137619221856032f,0.97831737071962765473f,
+0.18906866414980627589f,0.98196386910955524296f,0.17096188876030135595f,
+0.98527764238894122162f,0.15279718525844340760f,0.98825756773074946437f,
+0.13458070850712622324f,0.99090263542778000971f,0.11631863091190487725f,
+0.99321194923479450001f,0.09801714032956077016f,0.99518472667219681771f,
+0.07968243797143012563f,0.99682029929116566791f,0.06132073630220864768f,
+0.99811811290014917919f,0.04293825693494095902f,0.99907772775264536147f,
+0.02454122852291226384f,0.99969881869620424997f,0.00613588464915451517f,
+0.99998117528260110909f,-0.01227153828571982304f,0.99992470183914450299f,
+-0.03067480317663645942f,0.99952941750109314256f,-0.04906767432741800800f,
+0.99879545620517240501f,-0.06744391956366398155f,0.99772306664419163624f,
+-0.08579731234443975507f,0.99631261218277800129f,-0.10412163387205460030f,
+0.99456457073425541537f,-0.12241067519921615403f,0.99247953459870996706f,
+-0.14065823933284912761f,0.99005821026229712256f,-0.15885814333386127917f,
+0.98730141815785843473f,-0.17700422041214874946f,0.98421009238692902521f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.21311031991609125091f,
+0.97702814265775439484f,-0.23105810828067113727f,0.97293995220556017678f,
+-0.24892760574572012078f,0.96852209427441737777f,-0.26671275747489830987f,
+0.96377606579543984022f,-0.28440753721127171039f,0.95870347489587159906f,
+-0.30200594931922808417f,0.95330604035419386211f,-0.31950203081601563637f,
+0.94758559101774120226f,-0.33688985339221994009f,0.94154406518302080631f,
+-0.35416352542049039931f,0.93518350993894761025f,-0.37131719395183748755f,
+0.92850608047321558924f,-0.38834504669882619066f,0.92151403934204201285f,
+-0.40524131400498974998f,0.91420975570353069095f,-0.42200027079979968159f,
+0.90659570451491533483f,-0.43861623853852738097f,0.89867446569395392775f,
+-0.45508358712634372489f,0.89044872324475798919f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.48755016014843571837f,0.87309497841829020182f,
+-0.50353838372571746440f,0.86397285612158680745f,-0.51935599016558964269f,
+0.85455798836540053376f,-0.53499761988709704230f,0.84485356524970722791f,
+-0.55045797293660470029f,0.83486287498638012128f,-0.56573181078361323149f,
+0.82458930278502517996f,-0.58081395809576441547f,0.81403632970594852480f,
+-0.59569930449243335691f,0.80320753148064494287f,-0.61038280627630958630f,
+0.79210657730021227785f,-0.62485948814238623239f,0.78073722857209459924f,
+-0.63912444486377573138f,0.76910333764557958780f,-0.65317284295377653347f,
+0.75720884650648467851f,-0.66699992230363736034f,0.74505778544146605835f,
+-0.68060099779545302212f,0.73265427167241281570f,-0.69397146088965377952f,
+0.72000250796138176579f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.72000250796138165477f,0.69397146088965389055f,-0.73265427167241270467f,
+0.68060099779545324417f,-0.74505778544146594733f,0.66699992230363758239f,
+-0.75720884650648467851f,0.65317284295377664449f,-0.76910333764557947678f,
+0.63912444486377584241f,-0.78073722857209448822f,0.62485948814238634341f,
+-0.79210657730021216683f,0.61038280627630969732f,-0.80320753148064483184f,
+0.59569930449243346793f,-0.81403632970594841378f,0.58081395809576452649f,
+-0.82458930278502506894f,0.56573181078361345353f,-0.83486287498638001026f,
+0.55045797293660492233f,-0.84485356524970711689f,0.53499761988709715332f,
+-0.85455798836540042274f,0.51935599016558975372f,-0.86397285612158669643f,
+0.50353838372571757542f,-0.87309497841829009079f,0.48755016014843588490f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.89044872324475787817f,
+0.45508358712634389143f,-0.89867446569395392775f,0.43861623853852754751f,
+-0.90659570451491533483f,0.42200027079979984812f,-0.91420975570353069095f,
+0.40524131400498991651f,-0.92151403934204179080f,0.38834504669882657923f,
+-0.92850608047321547822f,0.37131719395183770960f,-0.93518350993894761025f,
+0.35416352542049039931f,-0.94154406518302069529f,0.33688985339222032867f,
+-0.94758559101774109124f,0.31950203081601580291f,-0.95330604035419386211f,
+0.30200594931922802866f,-0.95870347489587148804f,0.28440753721127209896f,
+-0.96377606579543984022f,0.26671275747489847641f,-0.96852209427441737777f,
+0.24892760574572009302f,-0.97293995220556006576f,0.23105810828067133156f,
+-0.97702814265775439484f,0.21311031991609141745f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.98421009238692902521f,0.17700422041214894375f,
+-0.98730141815785843473f,0.15885814333386147346f,-0.99005821026229701154f,
+0.14065823933284954395f,-0.99247953459870996706f,0.12241067519921634832f,
+-0.99456457073425541537f,0.10412163387205457254f,-0.99631261218277800129f,
+0.08579731234444015753f,-0.99772306664419163624f,0.06744391956366417584f,
+-0.99879545620517240501f,0.04906767432741796636f,-0.99952941750109314256f,
+0.03067480317663686534f,-0.99992470183914450299f,0.01227153828572000692f,
+-0.99998117528260110909f,-0.00613588464915455420f,-0.99969881869620424997f,
+-0.02454122852291207996f,-0.99907772775264536147f,-0.04293825693494077861f,
+-0.99811811290014917919f,-0.06132073630220824523f,-0.99682029929116577893f,
+-0.07968243797142994522f,-0.99518472667219692873f,-0.09801714032956058975f,
+-0.99321194923479461103f,-0.11631863091190447479f,-0.99090263542778000971f,
+-0.13458070850712605671f,-0.98825756773074946437f,-0.15279718525844343535f,
+-0.98527764238894133264f,-0.17096188876030096737f,-0.98196386910955524296f,
+-0.18906866414980610935f,-0.97831737071962765473f,-0.20711137619221858808f,
+-0.97433938278557585821f,-0.22508391135979261000f,-0.97003125319454397424f,
+-0.24298017990326381543f,-0.96539444169768939830f,-0.26079411791527562503f,
+-0.96043051941556589757f,-0.27851968938505289319f,-0.95514116830577078243f,
+-0.29615088824362378883f,-0.94952818059303678577f,-0.31368174039889118454f,
+-0.94359345816196038559f,-0.33110630575987626267f,-0.93733901191257495977f,
+-0.34841868024943456472f,-0.93076696107898382326f,-0.36561299780477357624f,
+-0.92387953251128684951f,-0.38268343236508967076f,-0.91667905992104270485f,
+-0.39962419984564684361f,-0.90916798309052249127f,-0.41642956009763693048f,
+-0.90134884704602202810f,-0.43309381885315184624f,-0.89322430119551532446f,
+-0.44961132965460665067f,-0.88479709843093790056f,-0.46597649576796595916f,
+-0.87607009419540660122f,-0.48218377207912266336f,-0.86704624551569287050f,
+-0.49822766697278153547f,-0.85772861000027211809f,-0.51410274419322155026f,
+-0.84812034480329723252f,-0.52980362468629460526f,-0.83822470555483818977f,
+-0.54532498842204613076f,-0.82804504525775590729f,-0.56066157619733592021f,
+-0.81758481315158371139f,-0.57580819141784533866f,-0.80684755354379944503f,
+-0.59075970185887394237f,-0.79583690460888356633f,-0.60551104140432543410f,
+-0.78455659715557524159f,-0.62005721176328920663f,-0.77301045336273710440f,
+-0.63439328416364526575f,-0.76120238548426188974f,-0.64851440102211233008f,
+-0.74913639452345925918f,-0.66241577759017178373f,-0.73681656887737001504f,
+-0.67609270357531581208f,-0.72424708295146700276f,-0.68954054473706682948f,
+-0.71143219574521665560f,-0.70275474445722507788f,-0.69837624940897302661f,
+-0.71573082528381848366f,-0.68508366777270035541f,-0.72846439044822519637f,
+-0.67155895484701866316f,-0.74095112535495888384f,-0.65780669329707874837f,
+-0.75318679904361240940f,-0.64383154288979149715f,-0.76516726562245895860f,
+-0.62963823891492687324f,-0.77688846567323255332f,-0.61523159058062726334f,
+-0.78834642762660589455f,-0.60061647938386930612f,-0.79953726910790479110f,
+-0.58579785745643908612f,-0.81045719825259465718f,-0.57078074588696736669f,
+-0.82110251499110464835f,-0.55557023301960217765f,-0.83146961230254523567f,
+-0.54017147272989274320f,-0.84155497743689855472f,-0.52458968267846928235f,
+-0.85135519310526486247f,-0.50883014254310732216f,-0.86086693863776708735f,
+-0.49289819222978420443f,-0.87008699110871134952f,-0.47679923006332214364f,
+-0.87901222642863341417f,-0.46053871095823989412f,-0.88763962040285404598f,
+-0.44412214457042975546f,-0.89596624975618488484f,-0.42755509343028247349f,
+-0.90398929312344311615f,-0.41084317105790418845f,-0.91170603200542976730f,
+-0.39399204006104820985f,-0.91911385169005765938f,-0.37700741021641820394f,
+-0.92621024213831137928f,-0.35989503653498794433f,-0.93299279883473895669f,
+-0.34266071731199487793f,-0.93945922360218969693f,-0.32531029216226331480f,
+-0.94560732538052116869f,-0.30784964004153508865f,-0.95143502096900833820f,
+-0.29028467725446244208f,-0.95694033573220882438f,-0.27262135544994886560f,
+-0.96212140426904158019f,-0.25486565960451434965f,-0.96697647104485218161f,
+-0.23702360599436766986f,-0.97150389098625167250f,-0.21910124015687010290f,
+-0.97570213003852845901f,-0.20110463484209206708f,-0.97956976568544051887f,
+-0.18303988795514095078f,-0.98310548743121628501f,-0.16491312048996975559f,
+-0.98630809724459866938f,-0.14673047445536230304f,-0.98917650996478090342f,
+-0.12849811079379358514f,-0.99170975366909952520f,-0.11022220729388330918f,
+-0.99390697000235606051f,-0.09190895649713282101f,-0.99576741446765981713f,
+-0.07356456359966735692f,-0.99729045667869020697f,-0.05519524434968971216f,
+-0.99847558057329477421f,-0.03680722294135933131f,-0.99932238458834943273f,
+-0.01840672990580516366f,-0.99983058179582340319f,1.00000000000000000000f,
+0.00000000000000000000f,0.99729045667869020697f,0.07356456359966742631f,
+0.98917650996478101444f,0.14673047445536174793f,0.97570213003852857003f,
+0.21910124015686979759f,0.95694033573220882438f,0.29028467725446233105f,
+0.93299279883473895669f,0.35989503653498811087f,0.90398929312344333820f,
+0.42755509343028208491f,0.87008699110871146054f,0.49289819222978403790f,
+0.83146961230254523567f,0.55557023301960217765f,0.78834642762660622761f,
+0.61523159058062681925f,0.74095112535495921691f,0.67155895484701833009f,
+0.68954054473706694051f,0.72424708295146689174f,0.63439328416364548779f,
+0.77301045336273688235f,0.57580819141784533866f,0.81758481315158371139f,
+0.51410274419322166128f,0.85772861000027211809f,0.44961132965460659516f,
+0.89322430119551532446f,0.38268343236508983729f,0.92387953251128673848f,
+0.31368174039889157312f,0.94952818059303667475f,0.24298017990326398197f,
+0.97003125319454397424f,0.17096188876030135595f,0.98527764238894122162f,
+0.09801714032956077016f,0.99518472667219681771f,0.02454122852291226384f,
+0.99969881869620424997f,-0.04906767432741800800f,0.99879545620517240501f,
+-0.12241067519921615403f,0.99247953459870996706f,-0.19509032201612819257f,
+0.98078528040323043058f,-0.26671275747489830987f,0.96377606579543984022f,
+-0.33688985339221994009f,0.94154406518302080631f,-0.40524131400498974998f,
+0.91420975570353069095f,-0.47139673682599769755f,0.88192126434835504956f,
+-0.53499761988709704230f,0.84485356524970722791f,-0.59569930449243335691f,
+0.80320753148064494287f,-0.65317284295377653347f,0.75720884650648467851f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.75720884650648467851f,
+0.65317284295377664449f,-0.80320753148064483184f,0.59569930449243346793f,
+-0.84485356524970711689f,0.53499761988709715332f,-0.88192126434835493853f,
+0.47139673682599780857f,-0.91420975570353069095f,0.40524131400498991651f,
+-0.94154406518302069529f,0.33688985339222032867f,-0.96377606579543984022f,
+0.26671275747489847641f,-0.98078528040323043058f,0.19509032201612860891f,
+-0.99247953459870996706f,0.12241067519921634832f,-0.99879545620517240501f,
+0.04906767432741796636f,-0.99969881869620424997f,-0.02454122852291207996f,
+-0.99518472667219692873f,-0.09801714032956058975f,-0.98527764238894133264f,
+-0.17096188876030096737f,-0.97003125319454397424f,-0.24298017990326381543f,
+-0.94952818059303678577f,-0.31368174039889118454f,-0.92387953251128684951f,
+-0.38268343236508967076f,-0.89322430119551532446f,-0.44961132965460665067f,
+-0.85772861000027211809f,-0.51410274419322155026f,-0.81758481315158371139f,
+-0.57580819141784533866f,-0.77301045336273710440f,-0.63439328416364526575f,
+-0.72424708295146700276f,-0.68954054473706682948f,-0.67155895484701866316f,
+-0.74095112535495888384f,-0.61523159058062726334f,-0.78834642762660589455f,
+-0.55557023301960217765f,-0.83146961230254523567f,-0.49289819222978420443f,
+-0.87008699110871134952f,-0.42755509343028247349f,-0.90398929312344311615f,
+-0.35989503653498794433f,-0.93299279883473895669f,-0.29028467725446244208f,
+-0.95694033573220882438f,-0.21910124015687010290f,-0.97570213003852845901f,
+-0.14673047445536230304f,-0.98917650996478090342f,-0.07356456359966735692f,
+-0.99729045667869020697f,1.00000000000000000000f,0.00000000000000000000f,
+0.95694033573220882438f,0.29028467725446233105f,0.83146961230254523567f,
+0.55557023301960217765f,0.63439328416364548779f,0.77301045336273688235f,
+0.38268343236508983729f,0.92387953251128673848f,0.09801714032956077016f,
+0.99518472667219681771f,-0.19509032201612819257f,0.98078528040323043058f,
+-0.47139673682599769755f,0.88192126434835504956f,-0.70710678118654746172f,
+0.70710678118654757274f,-0.88192126434835493853f,0.47139673682599780857f,
+-0.98078528040323043058f,0.19509032201612860891f,-0.99518472667219692873f,
+-0.09801714032956058975f,-0.92387953251128684951f,-0.38268343236508967076f,
+-0.77301045336273710440f,-0.63439328416364526575f,-0.55557023301960217765f,
+-0.83146961230254523567f,-0.29028467725446244208f,-0.95694033573220882438f,
+1.00000000000000000000f,0.00000000000000000000f,0.38268343236508983729f,
+0.92387953251128673848f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.92387953251128684951f,-0.38268343236508967076f,};
+
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_4096) || defined(ARM_TABLE_TWIDDLECOEF_F32_8192)
+
+uint32_t rearranged_twiddle_tab_stride1_arr_4096[6]={
+0,2048,2560,2688,2720,0,};
+
+uint32_t rearranged_twiddle_tab_stride2_arr_4096[6]={
+0,2048,2560,2688,2720,0,};
+
+uint32_t rearranged_twiddle_tab_stride3_arr_4096[6]={
+0,2048,2560,2688,2720,0,};
+
+float32_t rearranged_twiddle_stride1_4096[2728]={
+1.00000000000000000000f,0.00000000000000000000f,0.99999882345170187925f,
+0.00153398018628476550f,0.99999529380957619118f,0.00306795676296597614f,
+0.99998941108192840321f,0.00460192612044857050f,0.99998117528260110909f,
+0.00613588464915447527f,0.99997058643097413988f,0.00766982873953109701f,
+0.99995764455196389786f,0.00920375478205981944f,0.99994234967602391162f,
+0.01073765916726449055f,0.99992470183914450299f,0.01227153828571992539f,
+0.99990470108285289808f,0.01380538852806039059f,0.99988234745421256111f,
+0.01533920628498810015f,0.99985764100582386060f,0.01687298794728171042f,
+0.99983058179582340319f,0.01840672990580482019f,0.99980116988788425569f,
+0.01994042855151444138f,0.99976940535121527898f,0.02147408027546950787f,
+0.99973528826056168306f,0.02300768146883936868f,0.99969881869620424997f,
+0.02454122852291228812f,0.99965999674395922270f,0.02607471782910390085f,
+0.99961882249517863830f,0.02760814577896573974f,0.99957529604674921764f,
+0.02914150876419372219f,0.99952941750109314256f,0.03067480317663662595f,
+0.99948118696616694567f,0.03220802540830458582f,0.99943060455546173237f,
+0.03374117185137757990f,0.99937767038800284780f,0.03527423889821394709f,
+0.99932238458834954375f,0.03680722294135883171f,0.99926474728659442359f,
+0.03834012037355269409f,0.99920475861836388631f,0.03987292758773981066f,
+0.99914241872481690532f,0.04140564097707673946f,0.99907772775264536147f,
+0.04293825693494082024f,0.99901068585407337697f,0.04447077185493866769f,
+0.99894129318685687124f,0.04600318213091462299f,0.99886954991428356099f,
+0.04753548415695930257f,0.99879545620517240501f,0.04906767432741801493f,
+0.99871901223387293811f,0.05059974903689928166f,0.99864021818026527111f,
+0.05213170468028332366f,0.99855907422975931365f,0.05366353765273051968f,
+0.99847558057329477421f,0.05519524434968993420f,0.99838973740734016094f,
+0.05672682116690774823f,0.99830154493389289261f,0.05825826450043575244f,
+0.99821100336047818846f,0.05978957074663986820f,0.99811811290014917919f,
+0.06132073630220857829f,0.99802287377148624081f,0.06285175756416140624f,
+0.99792528619859599548f,0.06438263092985746505f,0.99782535041111164453f,
+0.06591335279700380467f,0.99772306664419163624f,0.06744391956366405094f,
+0.99761843513851955478f,0.06897432762826674613f,0.99751145614030345410f,
+0.07050457338961385600f,0.99740212990127530279f,0.07203465324688933247f,
+0.99729045667869020697f,0.07356456359966742631f,0.99717643673532618820f,
+0.07509430084792130533f,0.99706007033948296225f,0.07662386139203149205f,
+0.99694135776498216117f,0.07815324163279423197f,0.99682029929116566791f,
+0.07968243797143012563f,0.99669689520289606044f,0.08121144680959244133f,
+0.99657114579055483539f,0.08274026454937569164f,0.99644305135004263008f,
+0.08426888759332407108f,0.99631261218277800129f,0.08579731234443989385f,
+0.99617982859569698117f,0.08732553520619205922f,0.99604470090125196702f,
+0.08885355258252460031f,0.99590722941741172125f,0.09038136087786498296f,
+0.99576741446765981713f,0.09190895649713272386f,0.99562525638099430569f,
+0.09343633584574778661f,0.99548075549192693856f,0.09496349532963899165f,
+0.99533391214048227980f,0.09649043135525259274f,0.99518472667219692873f,
+0.09801714032956060363f,0.99503319943811863180f,0.09954361866006931903f,
+0.99487933079480561638f,0.10106986275482782167f,0.99472312110432570265f,
+0.10259586902243628126f,0.99456457073425541537f,0.10412163387205458642f,
+0.99440368005767909576f,0.10564715371341061589f,0.99424044945318790223f,
+0.10717242495680884273f,0.99407487930487936634f,0.10869744401313871651f,
+0.99390697000235606051f,0.11022220729388305938f,0.99373672194072459884f,
+0.11174671121112658700f,0.99356413552059530403f,0.11327095217756434631f,
+0.99338921114808065305f,0.11479492660651008373f,0.99321194923479450001f,
+0.11631863091190475235f,0.99303235019785141002f,0.11784206150832497728f,
+0.99285041445986510489f,0.11936521481099135467f,0.99266614244894801899f,
+0.12088808723577708359f,0.99247953459870996706f,0.12241067519921619566f,
+0.99229059134825736699f,0.12393297511851215920f,0.99209931314219179654f,
+0.12545498341154623367f,0.99190570043060932726f,0.12697669649688586579f,
+0.99170975366909952520f,0.12849811079379316880f,0.99151147331874389668f,
+0.13001922272223334631f,0.99131085984611544415f,0.13154002870288311611f,
+0.99110791372327688986f,0.13306052515713906459f,0.99090263542778000971f,
+0.13458070850712616773f,0.99069502544266463406f,0.13610057517570620100f,
+0.99048508425645709341f,0.13762012158648603832f,0.99027281236316910817f,
+0.13913934416382620074f,0.99005821026229712256f,0.14065823933284921088f,
+0.98984127845882052821f,0.14217680351944803063f,0.98962201746320088702f,
+0.14369503315029447110f,0.98940042779138037687f,0.14521292465284746376f,
+0.98917650996478101444f,0.14673047445536174793f,0.98895026451030298986f,
+0.14824767898689603096f,0.98872169196032377858f,0.14976453467732150915f,
+0.98849079285269658701f,0.15128103795733022219f,0.98825756773074946437f,
+0.15279718525844343535f,0.98802201714328352633f,0.15431297301302010494f,
+0.98778414164457217783f,0.15582839765426523271f,0.98754394179435922574f,
+0.15734345561623824805f,0.98730141815785843473f,0.15885814333386144570f,
+0.98705657130575097380f,0.16037245724292828464f,0.98680940181418552726f,
+0.16188639378011182579f,0.98655991026477540817f,0.16339994938297322524f,
+0.98630809724459866938f,0.16491312048996989437f,0.98605396334619543897f,
+0.16642590354046410406f,0.98579750916756747614f,0.16793829497473117263f,
+0.98553873531217606185f,0.16945029123396795900f,0.98527764238894122162f,
+0.17096188876030121717f,0.98501423101223983814f,0.17247308399679595059f,
+0.98474850180190420801f,0.17398387338746382214f,0.98448045538322093151f,
+0.17549425337727142526f,0.98421009238692902521f,0.17700422041214874946f,
+0.98393741344921892278f,0.17851377093899750692f,0.98366241921173025453f,
+0.18002290140569951471f,0.98338511032155118130f,0.18153160826112496595f,
+0.98310548743121628501f,0.18303988795514095078f,0.98282355119870523641f,
+0.18454773693861961648f,0.98253930228744124076f,0.18605515166344663291f,
+0.98225274136628937249f,0.18756212858252960252f,0.98196386910955524296f,
+0.18906866414980619262f,0.98167268619698311305f,0.19057475482025273972f,
+0.98137919331375456089f,0.19208039704989243734f,0.98108339115048670553f,
+0.19358558729580360724f,0.98078528040323043058f,0.19509032201612824808f,
+0.98048486177346938497f,0.19659459767008022335f,0.98018213596811742949f,
+0.19809841071795356027f,0.97987710369951763756f,0.19960175762113097075f,
+0.97956976568544051887f,0.20110463484209190055f,0.97926012264908202098f,
+0.20260703884442113343f,0.97894817531906219710f,0.20410896609281686809f,
+0.97863392442942320759f,0.20561041305309923910f,0.97831737071962765473f,
+0.20711137619221856032f,0.97799851493455713936f,0.20861185197826348503f,
+0.97767735782450992943f,0.21011183688046961016f,0.97735390014519996082f,
+0.21161132736922755315f,0.97702814265775439484f,0.21311031991609136194f,
+0.97670008612871184184f,0.21460881099378675829f,0.97636973133002114000f,
+0.21610679707621952006f,0.97603707903903902388f,0.21760427463848364127f,
+0.97570213003852857003f,0.21910124015686979759f,0.97536488511665697665f,
+0.22059769010887350649f,0.97502534506699412020f,0.22209362097320350937f,
+0.97468351068851066810f,0.22358902922978998729f,0.97433938278557585821f,
+0.22508391135979283204f,0.97399296216795583359f,0.22657826384561000066f,
+0.97364424965081197705f,0.22807208317088573102f,0.97329324605469824672f,
+0.22956536582051886852f,0.97293995220556017678f,0.23105810828067110951f,
+0.97258436893473221296f,0.23255030703877524467f,0.97222649707893626925f,
+0.23404195858354343018f,0.97186633748027939639f,0.23553305940497548665f,
+0.97150389098625178352f,0.23702360599436719801f,0.97113915844972509284f,
+0.23851359484431841618f,0.97077214072895035013f,0.24000302244874149871f,
+0.97040283868755550234f,0.24149188530286933019f,0.97003125319454397424f,
+0.24298017990326387094f,0.96965738512429244800f,0.24446790274782415064f,
+0.96928123535654853171f,0.24595505033579459497f,0.96890280477642887202f,
+0.24744161916777326904f,0.96852209427441737777f,0.24892760574572014853f,
+0.96813910474636244441f,0.25041300657296522436f,0.96775383709347551076f,
+0.25189781815421696809f,0.96736629222232850545f,0.25338203699557015902f,
+0.96697647104485207059f,0.25486565960451457169f,0.96658437447833311928f,
+0.25634868248994291395f,0.96619000344541250413f,0.25783110216215898713f,
+0.96579335887408368500f,0.25931291513288623474f,0.96539444169768939830f,
+0.26079411791527551401f,0.96499325285492032478f,0.26227470702391358914f,
+0.96458979328981275803f,0.26375467897483134694f,0.96418406395174582890f,
+0.26523403028551179039f,0.96377606579543984022f,0.26671275747489836538f,
+0.96336579978095404631f,0.26819085706340317632f,0.96295326687368387741f,
+0.26966832557291509076f,0.96253846804435916340f,0.27114515952680801059f,
+0.96212140426904158019f,0.27262135544994897662f,0.96170207652912254037f,
+0.27409690986870638429f,0.96128048581132063966f,0.27557181931095814376f,
+0.96085663310767965850f,0.27704608030609989555f,0.96043051941556578655f,
+0.27851968938505305973f,0.96000214573766595727f,0.27999264308027321801f,
+0.95957151308198451733f,0.28146493792575794091f,0.95913862246184189431f,
+0.28293657045705539188f,0.95870347489587159906f,0.28440753721127187692f,
+0.95826607140801767226f,0.28587783472708061527f,0.95782641302753290802f,
+0.28734745954472951102f,0.95738450078897585627f,0.28881640820604947972f,
+0.95694033573220882438f,0.29028467725446233105f,0.95649391890239510161f,
+0.29175226323498926195f,0.95604525134999640557f,0.29321916269425862822f,
+0.95559433413077110586f,0.29468537218051432669f,0.95514116830577078243f,
+0.29615088824362378883f,0.95468575494133833814f,0.29761570743508619641f,
+0.95422809510910566733f,0.29907982630804047508f,0.95376818988599032512f,
+0.30054324141727345454f,0.95330604035419386211f,0.30200594931922808417f,
+0.95284164760119871573f,0.30346794657201131562f,0.95237501271976587880f,
+0.30492922973540237397f,0.95190613680793234597f,0.30638979537086091787f,
+0.95143502096900833820f,0.30784964004153486661f,0.95096166631157508231f,
+0.30930876031226872680f,0.95048607394948170235f,0.31076715274961147495f,
+0.95000824500184299914f,0.31222481392182488413f,0.94952818059303667475f,
+0.31368174039889151761f,0.94904588185270055689f,0.31513792875252244485f,
+0.94856134991573026749f,0.31659337555616584581f,0.94807458592227622507f,
+0.31804807738501494896f,0.94758559101774109124f,0.31950203081601569188f,
+0.94709436635277721717f,0.32095523242787521445f,0.94660091308328353499f,
+0.32240767880106985244f,0.94610523237040344835f,0.32385936651785285356f,
+0.94560732538052127971f,0.32531029216226292622f,0.94510719328526060501f,
+0.32676045232013173347f,0.94460483726148025685f,0.32820984357909249729f,
+0.94410025849127265918f,0.32965846252858749255f,0.94359345816196038559f,
+0.33110630575987642921f,0.94308443746609349478f,0.33255336986604422389f,
+0.94257319760144686605f,0.33399965144200938205f,0.94205973977101731265f,
+0.33544514708453160301f,0.94154406518302080631f,0.33688985339222005111f,
+0.94102617505088925753f,0.33833376696554112728f,0.94050607059326829518f,
+0.33977688440682685123f,0.93998375303401404679f,0.34121920232028235542f,
+0.93945922360218991898f,0.34266071731199437833f,0.93893248353206459900f,
+0.34410142598993881391f,0.93840353406310805795f,0.34554132496398909380f,
+0.93787237643998988545f,0.34698041084592368133f,0.93733901191257495977f,
+0.34841868024943456472f,0.93680344173592156043f,0.34985612979013491763f,
+0.93626566717027825959f,0.35129275608556709276f,0.93572568948108036935f,
+0.35272855575521072646f,0.93518350993894761025f,0.35416352542049034380f,
+0.93463912981968078064f,0.35559766170478385172f,0.93409255040425887007f,
+0.35703096123342997759f,0.93354377297883617270f,0.35846342063373654030f,
+0.93299279883473895669f,0.35989503653498811087f,0.93243962926846235550f,
+0.36132580556845428355f,0.93188426558166814750f,0.36275572436739722537f,
+0.93132670908118042608f,0.36418478956707989180f,0.93076696107898371224f,
+0.36561299780477385379f,0.93020502289221906889f,0.36704034571976718038f,
+0.92964089584318121418f,0.36846682995337232125f,0.92907458125931585702f,
+0.36989244714893410038f,0.92850608047321558924f,0.37131719395183754306f,
+0.92793539482261788720f,0.37274106700951575855f,0.92736252565040111495f,
+0.37416406297145793358f,0.92678747430458174872f,0.37558617848921721505f,
+0.92621024213831137928f,0.37700741021641825945f,0.92563083050987271516f,
+0.37842775480876555960f,0.92504924078267758425f,0.37984720892405116066f,
+0.92446547432526260391f,0.38126576922216237620f,0.92387953251128673848f,
+0.38268343236508978178f,0.92329141671952763559f,0.38410019501693504207f,
+0.92270112833387862850f,0.38551605384391884890f,0.92210866874334518339f,
+0.38693100551438858181f,0.92151403934204190183f,0.38834504669882624617f,
+0.92091724152918941204f,0.38975817406985641123f,0.92031827670911059425f,
+0.39117038430225387069f,0.91971714629122736095f,0.39258167407295146978f,
+0.91911385169005777040f,0.39399204006104809883f,0.91850839432521225181f,
+0.39540147894781635385f,0.91790077562139049672f,0.39680998741671030805f,
+0.91729099700837790632f,0.39821756215337356100f,0.91667905992104270485f,
+0.39962419984564678810f,0.91606496579933172075f,0.40102989718357562321f,
+0.91544871608826783316f,0.40243465085941843018f,0.91483031223794619713f,
+0.40383845756765407442f,0.91420975570353069095f,0.40524131400498986100f,
+0.91358704794525080750f,0.40664321687036902864f,0.91296219042839821256f,
+0.40804416286497868782f,0.91233518462332274801f,0.40944414869225759235f,
+0.91170603200542987832f,0.41084317105790391089f,0.91107473405517636067f,
+0.41224122666988288755f,0.91044129225806724737f,0.41363831223843450235f,
+0.90980570810465222209f,0.41503442447608163146f,0.90916798309052238025f,
+0.41642956009763715253f,0.90852811871630612117f,0.41782371582021227141f,
+0.90788611648766626150f,0.41921688836322390515f,0.90724197791529581636f,
+0.42060907444840250902f,0.90659570451491533483f,0.42200027079979968159f,
+0.90594729780726845902f,0.42339047414379604728f,0.90529675931811881551f,
+0.42477968120910880589f,0.90464409057824624050f,0.42616788872679961520f,
+0.90398929312344333820f,0.42755509343028208491f,0.90333236849451181705f,
+0.42894129205532949278f,0.90267331823725882600f,0.43032648134008261165f,
+0.90201214390249317976f,0.43171065802505725895f,0.90134884704602202810f,
+0.43309381885315195726f,0.90068342922864685907f,0.43447596056965565037f,
+0.90001589201616016833f,0.43585707992225547480f,0.89934623697934157338f,
+0.43723717366104408732f,0.89867446569395381673f,0.43861623853852765853f,
+0.89800057974073987932f,0.43999427130963325583f,0.89732458070541831763f,
+0.44137126873171667052f,0.89664647017868015499f,0.44274722756457002282f,
+0.89596624975618521791f,0.44412214457042920035f,0.89528392103855758410f,
+0.44549601651398174074f,0.89459948563138269595f,0.44686884016237415906f,
+0.89391294514520325265f,0.44824061228521988598f,0.89322430119551532446f,
+0.44961132965460653965f,0.89253355540276457791f,0.45098098904510386387f,
+0.89184070939234272313f,0.45234958723377088896f,0.89114576479458318392f,
+0.45371712100016386993f,0.89044872324475787817f,0.45508358712634383592f,
+0.88974958638307277692f,0.45644898239688391772f,0.88904835585466457371f,
+0.45781330359887717485f,0.88834503330959635470f,0.45917654752194408951f,
+0.88763962040285393496f,0.46053871095824000514f,0.88693211879434219469f,
+0.46189979070246273141f,0.88622253014888063838f,0.46325978355186014923f,
+0.88551085613619995307f,0.46461868630623781584f,0.88479709843093778954f,
+0.46597649576796618121f,0.88408125871263498752f,0.46733320874198841510f,
+0.88336333866573157891f,0.46868882203582790114f,0.88264333997956279099f,
+0.47004333245959561971f,0.88192126434835504956f,0.47139673682599764204f,
+0.88119711347122209322f,0.47274903195034279069f,0.88047088905216075450f,
+0.47410021465054996703f,0.87974259280004740713f,0.47545028174715586733f,
+0.87901222642863352519f,0.47679923006332208812f,0.87827979165654157523f,
+0.47814705642484300885f,0.87754529020726135258f,0.47949375766015295275f,
+0.87680872380914565145f,0.48083933060033395845f,0.87607009419540660122f,
+0.48218377207912271887f,0.87532940310411089246f,0.48352707893291868579f,
+0.87458665227817611321f,0.48486924800079106435f,0.87384184346536686316f,
+0.48621027612448641797f,0.87309497841829009079f,0.48755016014843599592f,
+0.87234605889439154058f,0.48888889691976317176f,0.87159508665595097909f,
+0.49022648328829115938f,0.87084206347007897531f,0.49156291610654989643f,
+0.87008699110871146054f,0.49289819222978403790f,0.86932987134860684186f,
+0.49423230851595967295f,0.86857070597134089507f,0.49556526182577254058f,
+0.86780949676330332299f,0.49689704902265446895f,0.86704624551569264845f,
+0.49822766697278181303f,0.86628095402451299467f,0.49955711254508183838f,
+0.86551362409056908920f,0.50088538261124071482f,0.86474425751946237817f,
+0.50221247404571078832f,0.86397285612158669643f,0.50353838372571757542f,
+0.86319942171212415971f,0.50486310853126759035f,0.86242395611104050168f,
+0.50618664534515522835f,0.86164646114308129921f,0.50750899105297087033f,
+0.86086693863776730939f,0.50883014254310698909f,0.86008539042939013974f,
+0.51015009670676680908f,0.85930181835700847337f,0.51146885043797030157f,
+0.85851622426444273994f,0.51278640063356295542f,0.85772861000027211809f,
+0.51410274419322166128f,0.85693897741782876221f,0.51541787801946292724f,
+0.85614732837519447184f,0.51673179901764987321f,0.85535366473519602870f,
+0.51804450409599933636f,0.85455798836540053376f,0.51935599016558964269f,
+0.85376030113811141042f,0.52066625414036715735f,0.85296060493036363059f,
+0.52197529293715438925f,0.85215890162391982887f,0.52328310347565643035f,
+0.85135519310526519554f,0.52458968267846894928f,0.85054948126560347976f,
+0.52589502747108463065f,0.84974176800085254868f,0.52719913478190127964f,
+0.84893205521163961347f,0.52850200154222848337f,0.84812034480329723252f,
+0.52980362468629460526f,0.84730663868585831544f,0.53110400115125500076f,
+0.84649093877405212627f,0.53240312787719790144f,0.84567324698729906540f,
+0.53370100180715296379f,0.84485356524970711689f,0.53499761988709715332f,
+0.84403189549006640835f,0.53629297906596318235f,0.84320823964184543620f,
+0.53758707629564539410f,0.84238259964318584760f,0.53887990853100842248f,
+0.84155497743689844370f,0.54017147272989285423f,0.84072537497045807253f,
+0.54146176585312344454f,0.83989379419599952126f,0.54275078486451588944f,
+0.83906023707031274217f,0.54403852673088382019f,0.83822470555483807875f,
+0.54532498842204646383f,0.83738720161566193578f,0.54661016691083486041f,
+0.83654772722351200542f,0.54789405917310018967f,0.83570628435375260423f,
+0.54917666218771965525f,0.83486287498638001026f,0.55045797293660481131f,
+0.83401750110601813315f,0.55173798840470733573f,0.83317016470191318511f,
+0.55301670558002746780f,0.83232086776792968408f,0.55429412145362000341f,
+0.83146961230254523567f,0.55557023301960217765f,0.83061640030884631436f,
+0.55684503727516010407f,0.82976123379452304540f,0.55811853122055610221f,
+0.82890411477186487499f,0.55939071185913613604f,0.82804504525775579626f,
+0.56066157619733603124f,0.82718402727366913130f,0.56193112124468935775f,
+0.82632106284566353427f,0.56319934401383409117f,0.82545615400437755138f,
+0.56446624152051938506f,0.82458930278502529099f,0.56573181078361312046f,
+0.82372051122739142759f,0.56699604882510867832f,0.82284978137582642788f,
+0.56825895267013148970f,0.82197711527924155472f,0.56952051934694714053f,
+0.82110251499110464835f,0.57078074588696725566f,0.82022598256943468620f,
+0.57203962932475704850f,0.81934752007679700903f,0.57329716669804220430f,
+0.81846712958029865792f,0.57455335504771576360f,0.81758481315158371139f,
+0.57580819141784533866f,0.81670057286682784525f,0.57706167285567944170f,
+0.81581441080673378075f,0.57831379641165558958f,0.81492632905652662156f,
+0.57956455913940563285f,0.81403632970594841378f,0.58081395809576452649f,
+0.81314441484925359394f,0.58206199034077543697f,0.81225058658520399302f,
+0.58330865293769829094f,0.81135484701706372945f,0.58455394295301532637f,
+0.81045719825259476821f,0.58579785745643886408f,0.80955764240405125864f,
+0.58704039352091796911f,0.80865618158817498262f,0.58828154822264522306f,
+0.80775281792619035848f,0.58952131864106394055f,0.80684755354379933401f,
+0.59075970185887416442f,0.80594039057117627944f,0.59199669496204099239f,
+0.80503133114296365758f,0.59323229503979979516f,0.80412037739826569549f,
+0.59446649918466443197f,0.80320753148064494287f,0.59569930449243335691f,
+0.80229279553811572168f,0.59693070806219639124f,0.80137617172314024039f,
+0.59816070699634238395f,0.80045766219262282082f,0.59938929840056454079f,
+0.79953726910790501314f,0.60061647938386897305f,0.79861499463476093297f,
+0.60184224705858002658f,0.79769084094339115509f,0.60306659854034816437f,
+0.79676481020841882774f,0.60428953094815596181f,0.79583690460888356633f,
+0.60551104140432554512f,0.79490712632823701256f,0.60673112703452447558f,
+0.79397547755433717231f,0.60794978496777363208f,0.79304196047944364167f,
+0.60916701233645320634f,0.79210657730021238887f,0.61038280627630947528f,
+0.79116933021769020318f,0.61159716392646190641f,0.79023022143731003197f,
+0.61281008242940970820f,0.78928925316888565167f,0.61402155893103849138f,
+0.78834642762660622761f,0.61523159058062681925f,0.78740174702903142911f,
+0.61644017453085364622f,0.78645521359908576731f,0.61764730793780386886f,
+0.78550682956405393220f,0.61885298796097631957f,0.78455659715557524159f,
+0.62005721176328909561f,0.78360451860963820092f,0.62125997651108755271f,
+0.78265059616657572938f,0.62246127937414996723f,0.78169483207105938671f,
+0.62366111752569453053f,0.78073722857209448822f,0.62485948814238634341f,
+0.77977778792301455368f,0.62605638840434352232f,0.77881651238147597827f,
+0.62725181549514408275f,0.77785340420945314754f,0.62844576660183271155f,
+0.77688846567323244230f,0.62963823891492698426f,0.77592169904340768660f,
+0.63082922962842447046f,0.77495310659487393057f,0.63201873593980906207f,
+0.77398269060682289844f,0.63320675505005719064f,0.77301045336273699338f,
+0.63439328416364548779f,0.77203639715038452351f,0.63557832048855611440f,
+0.77106052426181381776f,0.63676186123628419899f,0.77008283699334789674f,
+0.63794390362184405507f,0.76910333764557969882f,0.63912444486377573138f,
+0.76812202852336541881f,0.64030348218415167327f,0.76713891193582040007f,
+0.64148101280858305095f,0.76615399019631291733f,0.64265703396622686494f,
+0.76516726562245895860f,0.64383154288979138613f,0.76417874053611667406f,
+0.64500453681554392737f,0.76318841726338138010f,0.64617601298331628357f,
+0.76219629813457900891f,0.64734596863651205911f,0.76120238548426177871f,
+0.64851440102211244110f,0.76020668165120242055f,0.64968130739068319368f,
+0.75920918897838796102f,0.65084668499638087535f,0.75820990981301528144f,
+0.65201053109695950027f,0.75720884650648456748f,0.65317284295377675551f,
+0.75620600141439453523f,0.65433361783180044036f,0.75520137689653654700f,
+0.65549285299961534967f,0.75419497531688917125f,0.65665054572942893607f,
+0.75318679904361252042f,0.65780669329707863735f,0.75217685044904269986f,
+0.65896129298203731661f,0.75116513190968636771f,0.66011434206742047870f,
+0.75015164580621507273f,0.66126583783999226540f,0.74913639452345937020f,
+0.66241577759017178373f,0.74811938045040360379f,0.66356415861203976725f,
+0.74710060598018013245f,0.66471097820334479334f,0.74608007351006377927f,
+0.66585623366550972246f,0.74505778544146594733f,0.66699992230363747137f,
+0.74403374417992929057f,0.66814204142651845153f,0.74300795213512171866f,
+0.66928258834663600929f,0.74198041172083106787f,0.67042156038017308717f,
+0.74095112535495921691f,0.67155895484701833009f,0.73992009545951620275f,
+0.67269476907077285777f,0.73888732446061511361f,0.67382900037875603783f,
+0.73785281478846598269f,0.67496164610201192513f,0.73681656887736979300f,
+0.67609270357531592310f,0.73577858916571359238f,0.67722217013718033485f,
+0.73473887809596349907f,0.67835004312986146857f,0.73369743811466026084f,
+0.67947631989936496666f,0.73265427167241281570f,0.68060099779545302212f,
+0.73160938122389262972f,0.68172407417164970767f,0.73056276922782759087f,
+0.68284554638524808112f,0.72951443814699701296f,0.68396541179731540350f,
+0.72846439044822519637f,0.68508366777270035541f,0.72741262860237576593f,
+0.68620031168003858824f,0.72635915508434600873f,0.68731534089175905233f,
+0.72530397237306076796f,0.68842875278409043638f,0.72424708295146700276f,
+0.68954054473706682948f,0.72318848930652745999f,0.69065071413453460458f,
+0.72212819392921534511f,0.69175925836415774750f,0.72106619931450810501f,
+0.69286617481742462932f,0.72000250796138165477f,0.69397146088965389055f,
+0.71893712237280449351f,0.69507511398000088043f,0.71787004505573170920f,
+0.69617713149146298601f,0.71680127852109953857f,0.69727751083088651551f,
+0.71573082528381870571f,0.69837624940897280457f,0.71465868786276909308f,
+0.69947334464028376733f,0.71358486878079352422f,0.70056879394324833576f,
+0.71250937056469243469f,0.70166259474016845488f,0.71143219574521643356f,
+0.70275474445722529993f,0.71035334685706241764f,0.70384524052448493858f,
+0.70927282643886568891f,0.70493408037590488124f,0.70819063703319540259f,
+0.70602126144933974317f,0.70710678118654757274f,0.70710678118654757274f,
+0.70602126144933974317f,0.70819063703319540259f,0.70493408037590499227f,
+0.70927282643886568891f,0.70384524052448493858f,0.71035334685706241764f,
+0.70275474445722529993f,0.71143219574521643356f,0.70166259474016845488f,
+0.71250937056469232367f,0.70056879394324844679f,0.71358486878079352422f,
+0.69947334464028376733f,0.71465868786276909308f,0.69837624940897291559f,
+0.71573082528381859468f,0.69727751083088662654f,0.71680127852109942754f,
+0.69617713149146298601f,0.71787004505573170920f,0.69507511398000088043f,
+0.71893712237280438249f,0.69397146088965400157f,0.72000250796138165477f,
+0.69286617481742474034f,0.72106619931450810501f,0.69175925836415774750f,
+0.72212819392921534511f,0.69065071413453460458f,0.72318848930652734897f,
+0.68954054473706694051f,0.72424708295146689174f,0.68842875278409043638f,
+0.72530397237306076796f,0.68731534089175905233f,0.72635915508434600873f,
+0.68620031168003858824f,0.72741262860237576593f,0.68508366777270035541f,
+0.72846439044822519637f,0.68396541179731551452f,0.72951443814699690193f,
+0.68284554638524808112f,0.73056276922782759087f,0.68172407417164981869f,
+0.73160938122389262972f,0.68060099779545302212f,0.73265427167241281570f,
+0.67947631989936496666f,0.73369743811466026084f,0.67835004312986146857f,
+0.73473887809596349907f,0.67722217013718044587f,0.73577858916571348136f,
+0.67609270357531603413f,0.73681656887736979300f,0.67496164610201203615f,
+0.73785281478846598269f,0.67382900037875614885f,0.73888732446061511361f,
+0.67269476907077296879f,0.73992009545951609173f,0.67155895484701833009f,
+0.74095112535495910588f,0.67042156038017308717f,0.74198041172083095685f,
+0.66928258834663600929f,0.74300795213512171866f,0.66814204142651856255f,
+0.74403374417992929057f,0.66699992230363747137f,0.74505778544146594733f,
+0.66585623366550972246f,0.74608007351006366825f,0.66471097820334490436f,
+0.74710060598018013245f,0.66356415861203987827f,0.74811938045040349277f,
+0.66241577759017178373f,0.74913639452345925918f,0.66126583783999226540f,
+0.75015164580621496171f,0.66011434206742047870f,0.75116513190968636771f,
+0.65896129298203731661f,0.75217685044904269986f,0.65780669329707874837f,
+0.75318679904361252042f,0.65665054572942904709f,0.75419497531688917125f,
+0.65549285299961546070f,0.75520137689653654700f,0.65433361783180055138f,
+0.75620600141439453523f,0.65317284295377686654f,0.75720884650648456748f,
+0.65201053109695950027f,0.75820990981301528144f,0.65084668499638098638f,
+0.75920918897838796102f,0.64968130739068319368f,0.76020668165120242055f,
+0.64851440102211255212f,0.76120238548426177871f,0.64734596863651205911f,
+0.76219629813457889789f,0.64617601298331639459f,0.76318841726338126907f,
+0.64500453681554403840f,0.76417874053611667406f,0.64383154288979149715f,
+0.76516726562245895860f,0.64265703396622686494f,0.76615399019631280630f,
+0.64148101280858316198f,0.76713891193582040007f,0.64030348218415167327f,
+0.76812202852336530778f,0.63912444486377573138f,0.76910333764557958780f,
+0.63794390362184416610f,0.77008283699334789674f,0.63676186123628419899f,
+0.77106052426181381776f,0.63557832048855622542f,0.77203639715038441249f,
+0.63439328416364548779f,0.77301045336273688235f,0.63320675505005719064f,
+0.77398269060682278742f,0.63201873593980906207f,0.77495310659487381955f,
+0.63082922962842458148f,0.77592169904340757558f,0.62963823891492709528f,
+0.77688846567323244230f,0.62844576660183271155f,0.77785340420945303652f,
+0.62725181549514419377f,0.77881651238147586724f,0.62605638840434352232f,
+0.77977778792301444266f,0.62485948814238645443f,0.78073722857209448822f,
+0.62366111752569464155f,0.78169483207105938671f,0.62246127937415007825f,
+0.78265059616657572938f,0.62125997651108766373f,0.78360451860963820092f,
+0.62005721176328920663f,0.78455659715557524159f,0.61885298796097631957f,
+0.78550682956405393220f,0.61764730793780397988f,0.78645521359908576731f,
+0.61644017453085364622f,0.78740174702903131809f,0.61523159058062681925f,
+0.78834642762660622761f,0.61402155893103849138f,0.78928925316888565167f,
+0.61281008242940970820f,0.79023022143731003197f,0.61159716392646201744f,
+0.79116933021769009216f,0.61038280627630947528f,0.79210657730021227785f,
+0.60916701233645320634f,0.79304196047944364167f,0.60794978496777374311f,
+0.79397547755433717231f,0.60673112703452447558f,0.79490712632823701256f,
+0.60551104140432554512f,0.79583690460888345530f,0.60428953094815607283f,
+0.79676481020841871672f,0.60306659854034827539f,0.79769084094339104407f,
+0.60184224705858002658f,0.79861499463476082195f,0.60061647938386897305f,
+0.79953726910790501314f,0.59938929840056454079f,0.80045766219262270980f,
+0.59816070699634238395f,0.80137617172314012937f,0.59693070806219650226f,
+0.80229279553811572168f,0.59569930449243346793f,0.80320753148064483184f,
+0.59446649918466454299f,0.80412037739826569549f,0.59323229503979979516f,
+0.80503133114296365758f,0.59199669496204099239f,0.80594039057117627944f,
+0.59075970185887427544f,0.80684755354379922299f,0.58952131864106394055f,
+0.80775281792619024746f,0.58828154822264533408f,0.80865618158817498262f,
+0.58704039352091808013f,0.80955764240405125864f,0.58579785745643886408f,
+0.81045719825259476821f,0.58455394295301532637f,0.81135484701706372945f,
+0.58330865293769829094f,0.81225058658520388200f,0.58206199034077554799f,
+0.81314441484925359394f,0.58081395809576452649f,0.81403632970594830276f,
+0.57956455913940574387f,0.81492632905652662156f,0.57831379641165558958f,
+0.81581441080673378075f,0.57706167285567955272f,0.81670057286682784525f,
+0.57580819141784533866f,0.81758481315158371139f,0.57455335504771576360f,
+0.81846712958029865792f,0.57329716669804231532f,0.81934752007679689800f,
+0.57203962932475704850f,0.82022598256943468620f,0.57078074588696736669f,
+0.82110251499110464835f,0.56952051934694725155f,0.82197711527924155472f,
+0.56825895267013148970f,0.82284978137582631685f,0.56699604882510867832f,
+0.82372051122739131657f,0.56573181078361323149f,0.82458930278502529099f,
+0.56446624152051949608f,0.82545615400437744036f,0.56319934401383409117f,
+0.82632106284566353427f,0.56193112124468946877f,0.82718402727366913130f,
+0.56066157619733603124f,0.82804504525775579626f,0.55939071185913613604f,
+0.82890411477186487499f,0.55811853122055610221f,0.82976123379452304540f,
+0.55684503727516010407f,0.83061640030884620334f,0.55557023301960228867f,
+0.83146961230254523567f,0.55429412145362011444f,0.83232086776792968408f,
+0.55301670558002757883f,0.83317016470191318511f,0.55173798840470744675f,
+0.83401750110601813315f,0.55045797293660481131f,0.83486287498638001026f,
+0.54917666218771976627f,0.83570628435375260423f,0.54789405917310018967f,
+0.83654772722351189440f,0.54661016691083486041f,0.83738720161566193578f,
+0.54532498842204646383f,0.83822470555483796772f,0.54403852673088393122f,
+0.83906023707031263115f,0.54275078486451600046f,0.83989379419599941023f,
+0.54146176585312355556f,0.84072537497045796151f,0.54017147272989296525f,
+0.84155497743689833268f,0.53887990853100842248f,0.84238259964318584760f,
+0.53758707629564550512f,0.84320823964184543620f,0.53629297906596318235f,
+0.84403189549006640835f,0.53499761988709726435f,0.84485356524970700587f,
+0.53370100180715296379f,0.84567324698729906540f,0.53240312787719801246f,
+0.84649093877405212627f,0.53110400115125500076f,0.84730663868585831544f,
+0.52980362468629482731f,0.84812034480329712149f,0.52850200154222848337f,
+0.84893205521163961347f,0.52719913478190139067f,0.84974176800085243766f,
+0.52589502747108474168f,0.85054948126560336874f,0.52458968267846883826f,
+0.85135519310526519554f,0.52328310347565643035f,0.85215890162391982887f,
+0.52197529293715438925f,0.85296060493036363059f,0.52066625414036726838f,
+0.85376030113811129940f,0.51935599016558953167f,0.85455798836540053376f,
+0.51804450409599933636f,0.85535366473519602870f,0.51673179901764998423f,
+0.85614732837519447184f,0.51541787801946314929f,0.85693897741782865118f,
+0.51410274419322166128f,0.85772861000027211809f,0.51278640063356306644f,
+0.85851622426444273994f,0.51146885043797052361f,0.85930181835700836235f,
+0.51015009670676669806f,0.86008539042939025077f,0.50883014254310698909f,
+0.86086693863776730939f,0.50750899105297087033f,0.86164646114308129921f,
+0.50618664534515533937f,0.86242395611104050168f,0.50486310853126747933f,
+0.86319942171212415971f,0.50353838372571757542f,0.86397285612158669643f,
+0.50221247404571089934f,0.86474425751946237817f,0.50088538261124093687f,
+0.86551362409056897818f,0.49955711254508183838f,0.86628095402451299467f,
+0.49822766697278186854f,0.86704624551569264845f,0.49689704902265463549f,
+0.86780949676330321196f,0.49556526182577248507f,0.86857070597134089507f,
+0.49423230851595972846f,0.86932987134860673084f,0.49289819222978409341f,
+0.87008699110871134952f,0.49156291610655006297f,0.87084206347007886428f,
+0.49022648328829110387f,0.87159508665595109012f,0.48888889691976322727f,
+0.87234605889439142956f,0.48755016014843605143f,0.87309497841829009079f,
+0.48621027612448652899f,0.87384184346536675214f,0.48486924800079111986f,
+0.87458665227817611321f,0.48352707893291874131f,0.87532940310411078144f,
+0.48218377207912282989f,0.87607009419540660122f,0.48083933060033390294f,
+0.87680872380914576247f,0.47949375766015300826f,0.87754529020726124156f,
+0.47814705642484311987f,0.87827979165654146421f,0.47679923006332225466f,
+0.87901222642863341417f,0.47545028174715586733f,0.87974259280004740713f,
+0.47410021465055002254f,0.88047088905216075450f,0.47274903195034290171f,
+0.88119711347122198219f,0.47139673682599780857f,0.88192126434835493853f,
+0.47004333245959561971f,0.88264333997956279099f,0.46868882203582795665f,
+0.88336333866573157891f,0.46733320874198852612f,0.88408125871263498752f,
+0.46597649576796612569f,0.88479709843093778954f,0.46461868630623781584f,
+0.88551085613619995307f,0.46325978355186026025f,0.88622253014888063838f,
+0.46189979070246284243f,0.88693211879434208367f,0.46053871095824000514f,
+0.88763962040285393496f,0.45917654752194414502f,0.88834503330959635470f,
+0.45781330359887728587f,0.88904835585466457371f,0.45644898239688386221f,
+0.88974958638307288794f,0.45508358712634383592f,0.89044872324475787817f,
+0.45371712100016392544f,0.89114576479458318392f,0.45234958723377099998f,
+0.89184070939234272313f,0.45098098904510380835f,0.89253355540276468894f,
+0.44961132965460659516f,0.89322430119551532446f,0.44824061228521999700f,
+0.89391294514520325265f,0.44686884016237432560f,0.89459948563138258493f,
+0.44549601651398174074f,0.89528392103855758410f,0.44412214457042925586f,
+0.89596624975618510689f,0.44274722756457013384f,0.89664647017868015499f,
+0.44137126873171661501f,0.89732458070541831763f,0.43999427130963325583f,
+0.89800057974073987932f,0.43861623853852771404f,0.89867446569395381673f,
+0.43723717366104419835f,0.89934623697934146236f,0.43585707992225547480f,
+0.90001589201616027935f,0.43447596056965570588f,0.90068342922864685907f,
+0.43309381885315201277f,0.90134884704602202810f,0.43171065802505736997f,
+0.90201214390249306874f,0.43032648134008261165f,0.90267331823725882600f,
+0.42894129205532954829f,0.90333236849451181705f,0.42755509343028219593f,
+0.90398929312344333820f,0.42616788872679961520f,0.90464409057824624050f,
+0.42477968120910880589f,0.90529675931811881551f,0.42339047414379610279f,
+0.90594729780726845902f,0.42200027079979979261f,0.90659570451491533483f,
+0.42060907444840250902f,0.90724197791529592738f,0.41921688836322396066f,
+0.90788611648766626150f,0.41782371582021238243f,0.90852811871630612117f,
+0.41642956009763731906f,0.90916798309052226923f,0.41503442447608163146f,
+0.90980570810465222209f,0.41363831223843455787f,0.91044129225806713634f,
+0.41224122666988299857f,0.91107473405517624965f,0.41084317105790391089f,
+0.91170603200542987832f,0.40944414869225764786f,0.91233518462332274801f,
+0.40804416286497874333f,0.91296219042839810154f,0.40664321687036913966f,
+0.91358704794525080750f,0.40524131400498986100f,0.91420975570353069095f,
+0.40383845756765412993f,0.91483031223794608611f,0.40243465085941854120f,
+0.91544871608826783316f,0.40102989718357578974f,0.91606496579933160973f,
+0.39962419984564678810f,0.91667905992104270485f,0.39821756215337361651f,
+0.91729099700837790632f,0.39680998741671041907f,0.91790077562139038569f,
+0.39540147894781629834f,0.91850839432521225181f,0.39399204006104809883f,
+0.91911385169005777040f,0.39258167407295152529f,0.91971714629122736095f,
+0.39117038430225398171f,0.92031827670911048322f,0.38975817406985641123f,
+0.92091724152918941204f,0.38834504669882630168f,0.92151403934204190183f,
+0.38693100551438869283f,0.92210866874334507237f,0.38551605384391901543f,
+0.92270112833387851747f,0.38410019501693504207f,0.92329141671952763559f,
+0.38268343236508983729f,0.92387953251128673848f,0.38126576922216248722f,
+0.92446547432526260391f,0.37984720892405110515f,0.92504924078267758425f,
+0.37842775480876561511f,0.92563083050987271516f,0.37700741021641831496f,
+0.92621024213831126826f,0.37558617848921732607f,0.92678747430458174872f,
+0.37416406297145798909f,0.92736252565040111495f,0.37274106700951581406f,
+0.92793539482261788720f,0.37131719395183759858f,0.92850608047321558924f,
+0.36989244714893426691f,0.92907458125931574600f,0.36846682995337232125f,
+0.92964089584318121418f,0.36704034571976723589f,0.93020502289221906889f,
+0.36561299780477396482f,0.93076696107898371224f,0.36418478956707983629f,
+0.93132670908118042608f,0.36275572436739722537f,0.93188426558166814750f,
+0.36132580556845433906f,0.93243962926846235550f,0.35989503653498827740f,
+0.93299279883473884567f,0.35846342063373654030f,0.93354377297883617270f,
+0.35703096123343003310f,0.93409255040425887007f,0.35559766170478396274f,
+0.93463912981968078064f,0.35416352542049051033f,0.93518350993894749923f,
+0.35272855575521072646f,0.93572568948108036935f,0.35129275608556714827f,
+0.93626566717027825959f,0.34985612979013502866f,0.93680344173592156043f,
+0.34841868024943450921f,0.93733901191257495977f,0.34698041084592368133f,
+0.93787237643998988545f,0.34554132496398914931f,0.93840353406310805795f,
+0.34410142598993898044f,0.93893248353206448797f,0.34266071731199437833f,
+0.93945922360218991898f,0.34121920232028241093f,0.93998375303401393577f,
+0.33977688440682696225f,0.94050607059326829518f,0.33833376696554129381f,
+0.94102617505088925753f,0.33688985339222005111f,0.94154406518302080631f,
+0.33544514708453165852f,0.94205973977101731265f,0.33399965144200949307f,
+0.94257319760144686605f,0.33255336986604422389f,0.94308443746609349478f,
+0.33110630575987642921f,0.94359345816196038559f,0.32965846252858754806f,
+0.94410025849127265918f,0.32820984357909266382f,0.94460483726148025685f,
+0.32676045232013178898f,0.94510719328526060501f,0.32531029216226298173f,
+0.94560732538052127971f,0.32385936651785296458f,0.94610523237040333733f,
+0.32240767880107001897f,0.94660091308328353499f,0.32095523242787521445f,
+0.94709436635277721717f,0.31950203081601574739f,0.94758559101774109124f,
+0.31804807738501505998f,0.94807458592227622507f,0.31659337555616584581f,
+0.94856134991573026749f,0.31513792875252244485f,0.94904588185270055689f,
+0.31368174039889157312f,0.94952818059303667475f,0.31222481392182505067f,
+0.95000824500184299914f,0.31076715274961147495f,0.95048607394948170235f,
+0.30930876031226878231f,0.95096166631157508231f,0.30784964004153497763f,
+0.95143502096900833820f,0.30638979537086108440f,0.95190613680793223494f,
+0.30492922973540242948f,0.95237501271976587880f,0.30346794657201137113f,
+0.95284164760119871573f,0.30200594931922819519f,0.95330604035419375109f,
+0.30054324141727339903f,0.95376818988599032512f,0.29907982630804047508f,
+0.95422809510910566733f,0.29761570743508630743f,0.95468575494133833814f,
+0.29615088824362395536f,0.95514116830577067141f,0.29468537218051432669f,
+0.95559433413077110586f,0.29321916269425868373f,0.95604525134999640557f,
+0.29175226323498937298f,0.95649391890239499059f,0.29028467725446233105f,
+0.95694033573220893540f,0.28881640820604947972f,0.95738450078897585627f,
+0.28734745954472956653f,0.95782641302753290802f,0.28587783472708072630f,
+0.95826607140801767226f,0.28440753721127182141f,0.95870347489587159906f,
+0.28293657045705539188f,0.95913862246184189431f,0.28146493792575805193f,
+0.95957151308198451733f,0.27999264308027338455f,0.96000214573766584625f,
+0.27851968938505305973f,0.96043051941556578655f,0.27704608030609995106f,
+0.96085663310767965850f,0.27557181931095825478f,0.96128048581132063966f,
+0.27409690986870632878f,0.96170207652912254037f,0.27262135544994897662f,
+0.96212140426904158019f,0.27114515952680806610f,0.96253846804435916340f,
+0.26966832557291520178f,0.96295326687368387741f,0.26819085706340317632f,
+0.96336579978095404631f,0.26671275747489842090f,0.96377606579543984022f,
+0.26523403028551190141f,0.96418406395174571788f,0.26375467897483151347f,
+0.96458979328981264700f,0.26227470702391358914f,0.96499325285492032478f,
+0.26079411791527556952f,0.96539444169768939830f,0.25931291513288634576f,
+0.96579335887408357397f,0.25783110216215893162f,0.96619000344541261516f,
+0.25634868248994291395f,0.96658437447833311928f,0.25486565960451462720f,
+0.96697647104485207059f,0.25338203699557027004f,0.96736629222232850545f,
+0.25189781815421691258f,0.96775383709347551076f,0.25041300657296527987f,
+0.96813910474636244441f,0.24892760574572025956f,0.96852209427441726675f,
+0.24744161916777343557f,0.96890280477642887202f,0.24595505033579459497f,
+0.96928123535654853171f,0.24446790274782420616f,0.96965738512429244800f,
+0.24298017990326398197f,0.97003125319454397424f,0.24149188530286930243f,
+0.97040283868755550234f,0.24000302244874149871f,0.97077214072895035013f,
+0.23851359484431849944f,0.97113915844972509284f,0.23702360599436733679f,
+0.97150389098625178352f,0.23553305940497545889f,0.97186633748027939639f,
+0.23404195858354345794f,0.97222649707893626925f,0.23255030703877532794f,
+0.97258436893473221296f,0.23105810828067127605f,0.97293995220556006576f,
+0.22956536582051886852f,0.97329324605469824672f,0.22807208317088578653f,
+0.97364424965081186603f,0.22657826384561011168f,0.97399296216795583359f,
+0.22508391135979277653f,0.97433938278557585821f,0.22358902922979001504f,
+0.97468351068851066810f,0.22209362097320359264f,0.97502534506699412020f,
+0.22059769010887364526f,0.97536488511665686563f,0.21910124015686976984f,
+0.97570213003852857003f,0.21760427463848366902f,0.97603707903903902388f,
+0.21610679707621960333f,0.97636973133002114000f,0.21460881099378692483f,
+0.97670008612871184184f,0.21311031991609136194f,0.97702814265775439484f,
+0.21161132736922760866f,0.97735390014519996082f,0.21011183688046972118f,
+0.97767735782450992943f,0.20861185197826345727f,0.97799851493455713936f,
+0.20711137619221856032f,0.97831737071962765473f,0.20561041305309932237f,
+0.97863392442942309657f,0.20410896609281700687f,0.97894817531906219710f,
+0.20260703884442110567f,0.97926012264908202098f,0.20110463484209195606f,
+0.97956976568544051887f,0.19960175762113105402f,0.97987710369951763756f,
+0.19809841071795372680f,0.98018213596811731847f,0.19659459767008022335f,
+0.98048486177346938497f,0.19509032201612833135f,0.98078528040323043058f,
+0.19358558729580374602f,0.98108339115048659451f,0.19208039704989238183f,
+0.98137919331375456089f,0.19057475482025279523f,0.98167268619698311305f,
+0.18906866414980627589f,0.98196386910955524296f,0.18756212858252974129f,
+0.98225274136628937249f,0.18605515166344663291f,0.98253930228744124076f,
+0.18454773693861964423f,0.98282355119870523641f,0.18303988795514106180f,
+0.98310548743121628501f,0.18153160826112513249f,0.98338511032155118130f,
+0.18002290140569951471f,0.98366241921173025453f,0.17851377093899759019f,
+0.98393741344921892278f,0.17700422041214886049f,0.98421009238692902521f,
+0.17549425337727139751f,0.98448045538322093151f,0.17398387338746384989f,
+0.98474850180190420801f,0.17247308399679603386f,0.98501423101223983814f,
+0.17096188876030135595f,0.98527764238894122162f,0.16945029123396793125f,
+0.98553873531217606185f,0.16793829497473122814f,0.98579750916756736512f,
+0.16642590354046421508f,0.98605396334619543897f,0.16491312048997008866f,
+0.98630809724459866938f,0.16339994938297322524f,0.98655991026477540817f,
+0.16188639378011188130f,0.98680940181418541624f,0.16037245724292839566f,
+0.98705657130575097380f,0.15885814333386139019f,0.98730141815785843473f,
+0.15734345561623827581f,0.98754394179435922574f,0.15582839765426531597f,
+0.98778414164457217783f,0.15431297301302024372f,0.98802201714328352633f,
+0.15279718525844340760f,0.98825756773074946437f,0.15128103795733024994f,
+0.98849079285269658701f,0.14976453467732162017f,0.98872169196032377858f,
+0.14824767898689619749f,0.98895026451030298986f,0.14673047445536174793f,
+0.98917650996478101444f,0.14521292465284751927f,0.98940042779138037687f,
+0.14369503315029458212f,0.98962201746320077600f,0.14217680351944800288f,
+0.98984127845882052821f,0.14065823933284923863f,0.99005821026229712256f,
+0.13913934416382628401f,0.99027281236316910817f,0.13762012158648617710f,
+0.99048508425645698239f,0.13610057517570620100f,0.99069502544266463406f,
+0.13458070850712622324f,0.99090263542778000971f,0.13306052515713917561f,
+0.99110791372327677884f,0.13154002870288328264f,0.99131085984611544415f,
+0.13001922272223334631f,0.99151147331874389668f,0.12849811079379322432f,
+0.99170975366909952520f,0.12697669649688597682f,0.99190570043060932726f,
+0.12545498341154620592f,0.99209931314219179654f,0.12393297511851220083f,
+0.99229059134825736699f,0.12241067519921627893f,0.99247953459870996706f,
+0.12088808723577722237f,0.99266614244894801899f,0.11936521481099135467f,
+0.99285041445986510489f,0.11784206150832501891f,0.99303235019785141002f,
+0.11631863091190487725f,0.99321194923479450001f,0.11479492660651025027f,
+0.99338921114808065305f,0.11327095217756436019f,0.99356413552059530403f,
+0.11174671121112665639f,0.99373672194072459884f,0.11022220729388318428f,
+0.99390697000235606051f,0.10869744401313867488f,0.99407487930487936634f,
+0.10717242495680887049f,0.99424044945318790223f,0.10564715371341069916f,
+0.99440368005767909576f,0.10412163387205472520f,0.99456457073425541537f,
+0.10259586902243628126f,0.99472312110432570265f,0.10106986275482787718f,
+0.99487933079480561638f,0.09954361866006944393f,0.99503319943811863180f,
+0.09801714032956077016f,0.99518472667219681771f,0.09649043135525260662f,
+0.99533391214048227980f,0.09496349532963906104f,0.99548075549192693856f,
+0.09343633584574791151f,0.99562525638099430569f,0.09190895649713269611f,
+0.99576741446765981713f,0.09038136087786501072f,0.99590722941741172125f,
+0.08885355258252468358f,0.99604470090125196702f,0.08732553520619222576f,
+0.99617982859569687015f,0.08579731234443987997f,0.99631261218277800129f,
+0.08426888759332412659f,0.99644305135004263008f,0.08274026454937580266f,
+0.99657114579055483539f,0.08121144680959238582f,0.99669689520289606044f,
+0.07968243797143012563f,0.99682029929116566791f,0.07815324163279431524f,
+0.99694135776498216117f,0.07662386139203161695f,0.99706007033948296225f,
+0.07509430084792129145f,0.99717643673532618820f,0.07356456359966745406f,
+0.99729045667869020697f,0.07203465324688941573f,0.99740212990127530279f,
+0.07050457338961400866f,0.99751145614030345410f,0.06897432762826673225f,
+0.99761843513851955478f,0.06744391956366410645f,0.99772306664419163624f,
+0.06591335279700392957f,0.99782535041111164453f,0.06438263092985740954f,
+0.99792528619859599548f,0.06285175756416142012f,0.99802287377148624081f,
+0.06132073630220864768f,0.99811811290014917919f,0.05978957074664000698f,
+0.99821100336047818846f,0.05825826450043573163f,0.99830154493389289261f,
+0.05672682116690778292f,0.99838973740734016094f,0.05519524434969003135f,
+0.99847558057329477421f,0.05366353765273067927f,0.99855907422975931365f,
+0.05213170468028331672f,0.99864021818026527111f,0.05059974903689933717f,
+0.99871901223387293811f,0.04906767432741812596f,0.99879545620517240501f,
+0.04753548415695926094f,0.99886954991428356099f,0.04600318213091464381f,
+0.99894129318685687124f,0.04447077185493874402f,0.99901068585407337697f,
+0.04293825693494095902f,0.99907772775264536147f,0.04140564097707671171f,
+0.99914241872481690532f,0.03987292758773984536f,0.99920475861836388631f,
+0.03834012037355279123f,0.99926474728659442359f,0.03680722294135899131f,
+0.99932238458834954375f,0.03527423889821394709f,0.99937767038800284780f,
+0.03374117185137764235f,0.99943060455546173237f,0.03220802540830470378f,
+0.99948118696616694567f,0.03067480317663658085f,0.99952941750109314256f,
+0.02914150876419373953f,0.99957529604674921764f,0.02760814577896581953f,
+0.99961882249517863830f,0.02607471782910403962f,0.99965999674395922270f,
+0.02454122852291226384f,0.99969881869620424997f,0.02300768146883941032f,
+0.99973528826056168306f,0.02147408027546960502f,0.99976940535121527898f,
+0.01994042855151459750f,0.99980116988788425569f,0.01840672990580482019f,
+0.99983058179582340319f,0.01687298794728177287f,0.99985764100582386060f,
+0.01533920628498821985f,0.99988234745421256111f,0.01380538852806034895f,
+0.99990470108285289808f,0.01227153828571994447f,0.99992470183914450299f,
+0.01073765916726457208f,0.99994234967602391162f,0.00920375478205995995f,
+0.99995764455196389786f,0.00766982873953107706f,0.99997058643097413988f,
+0.00613588464915451517f,0.99998117528260110909f,0.00460192612044867198f,
+0.99998941108192840321f,0.00306795676296613791f,0.99999529380957619118f,
+0.00153398018628476615f,0.99999882345170187925f,1.00000000000000000000f,
+0.00000000000000000000f,0.99998117528260110909f,0.00613588464915447527f,
+0.99992470183914450299f,0.01227153828571992539f,0.99983058179582340319f,
+0.01840672990580482019f,0.99969881869620424997f,0.02454122852291228812f,
+0.99952941750109314256f,0.03067480317663662595f,0.99932238458834954375f,
+0.03680722294135883171f,0.99907772775264536147f,0.04293825693494082024f,
+0.99879545620517240501f,0.04906767432741801493f,0.99847558057329477421f,
+0.05519524434968993420f,0.99811811290014917919f,0.06132073630220857829f,
+0.99772306664419163624f,0.06744391956366405094f,0.99729045667869020697f,
+0.07356456359966742631f,0.99682029929116566791f,0.07968243797143012563f,
+0.99631261218277800129f,0.08579731234443989385f,0.99576741446765981713f,
+0.09190895649713272386f,0.99518472667219692873f,0.09801714032956060363f,
+0.99456457073425541537f,0.10412163387205458642f,0.99390697000235606051f,
+0.11022220729388305938f,0.99321194923479450001f,0.11631863091190475235f,
+0.99247953459870996706f,0.12241067519921619566f,0.99170975366909952520f,
+0.12849811079379316880f,0.99090263542778000971f,0.13458070850712616773f,
+0.99005821026229712256f,0.14065823933284921088f,0.98917650996478101444f,
+0.14673047445536174793f,0.98825756773074946437f,0.15279718525844343535f,
+0.98730141815785843473f,0.15885814333386144570f,0.98630809724459866938f,
+0.16491312048996989437f,0.98527764238894122162f,0.17096188876030121717f,
+0.98421009238692902521f,0.17700422041214874946f,0.98310548743121628501f,
+0.18303988795514095078f,0.98196386910955524296f,0.18906866414980619262f,
+0.98078528040323043058f,0.19509032201612824808f,0.97956976568544051887f,
+0.20110463484209190055f,0.97831737071962765473f,0.20711137619221856032f,
+0.97702814265775439484f,0.21311031991609136194f,0.97570213003852857003f,
+0.21910124015686979759f,0.97433938278557585821f,0.22508391135979283204f,
+0.97293995220556017678f,0.23105810828067110951f,0.97150389098625178352f,
+0.23702360599436719801f,0.97003125319454397424f,0.24298017990326387094f,
+0.96852209427441737777f,0.24892760574572014853f,0.96697647104485207059f,
+0.25486565960451457169f,0.96539444169768939830f,0.26079411791527551401f,
+0.96377606579543984022f,0.26671275747489836538f,0.96212140426904158019f,
+0.27262135544994897662f,0.96043051941556578655f,0.27851968938505305973f,
+0.95870347489587159906f,0.28440753721127187692f,0.95694033573220882438f,
+0.29028467725446233105f,0.95514116830577078243f,0.29615088824362378883f,
+0.95330604035419386211f,0.30200594931922808417f,0.95143502096900833820f,
+0.30784964004153486661f,0.94952818059303667475f,0.31368174039889151761f,
+0.94758559101774109124f,0.31950203081601569188f,0.94560732538052127971f,
+0.32531029216226292622f,0.94359345816196038559f,0.33110630575987642921f,
+0.94154406518302080631f,0.33688985339222005111f,0.93945922360218991898f,
+0.34266071731199437833f,0.93733901191257495977f,0.34841868024943456472f,
+0.93518350993894761025f,0.35416352542049034380f,0.93299279883473895669f,
+0.35989503653498811087f,0.93076696107898371224f,0.36561299780477385379f,
+0.92850608047321558924f,0.37131719395183754306f,0.92621024213831137928f,
+0.37700741021641825945f,0.92387953251128673848f,0.38268343236508978178f,
+0.92151403934204190183f,0.38834504669882624617f,0.91911385169005777040f,
+0.39399204006104809883f,0.91667905992104270485f,0.39962419984564678810f,
+0.91420975570353069095f,0.40524131400498986100f,0.91170603200542987832f,
+0.41084317105790391089f,0.90916798309052238025f,0.41642956009763715253f,
+0.90659570451491533483f,0.42200027079979968159f,0.90398929312344333820f,
+0.42755509343028208491f,0.90134884704602202810f,0.43309381885315195726f,
+0.89867446569395381673f,0.43861623853852765853f,0.89596624975618521791f,
+0.44412214457042920035f,0.89322430119551532446f,0.44961132965460653965f,
+0.89044872324475787817f,0.45508358712634383592f,0.88763962040285393496f,
+0.46053871095824000514f,0.88479709843093778954f,0.46597649576796618121f,
+0.88192126434835504956f,0.47139673682599764204f,0.87901222642863352519f,
+0.47679923006332208812f,0.87607009419540660122f,0.48218377207912271887f,
+0.87309497841829009079f,0.48755016014843599592f,0.87008699110871146054f,
+0.49289819222978403790f,0.86704624551569264845f,0.49822766697278181303f,
+0.86397285612158669643f,0.50353838372571757542f,0.86086693863776730939f,
+0.50883014254310698909f,0.85772861000027211809f,0.51410274419322166128f,
+0.85455798836540053376f,0.51935599016558964269f,0.85135519310526519554f,
+0.52458968267846894928f,0.84812034480329723252f,0.52980362468629460526f,
+0.84485356524970711689f,0.53499761988709715332f,0.84155497743689844370f,
+0.54017147272989285423f,0.83822470555483807875f,0.54532498842204646383f,
+0.83486287498638001026f,0.55045797293660481131f,0.83146961230254523567f,
+0.55557023301960217765f,0.82804504525775579626f,0.56066157619733603124f,
+0.82458930278502529099f,0.56573181078361312046f,0.82110251499110464835f,
+0.57078074588696725566f,0.81758481315158371139f,0.57580819141784533866f,
+0.81403632970594841378f,0.58081395809576452649f,0.81045719825259476821f,
+0.58579785745643886408f,0.80684755354379933401f,0.59075970185887416442f,
+0.80320753148064494287f,0.59569930449243335691f,0.79953726910790501314f,
+0.60061647938386897305f,0.79583690460888356633f,0.60551104140432554512f,
+0.79210657730021238887f,0.61038280627630947528f,0.78834642762660622761f,
+0.61523159058062681925f,0.78455659715557524159f,0.62005721176328909561f,
+0.78073722857209448822f,0.62485948814238634341f,0.77688846567323244230f,
+0.62963823891492698426f,0.77301045336273699338f,0.63439328416364548779f,
+0.76910333764557969882f,0.63912444486377573138f,0.76516726562245895860f,
+0.64383154288979138613f,0.76120238548426177871f,0.64851440102211244110f,
+0.75720884650648456748f,0.65317284295377675551f,0.75318679904361252042f,
+0.65780669329707863735f,0.74913639452345937020f,0.66241577759017178373f,
+0.74505778544146594733f,0.66699992230363747137f,0.74095112535495921691f,
+0.67155895484701833009f,0.73681656887736979300f,0.67609270357531592310f,
+0.73265427167241281570f,0.68060099779545302212f,0.72846439044822519637f,
+0.68508366777270035541f,0.72424708295146700276f,0.68954054473706682948f,
+0.72000250796138165477f,0.69397146088965389055f,0.71573082528381870571f,
+0.69837624940897280457f,0.71143219574521643356f,0.70275474445722529993f,
+0.70710678118654757274f,0.70710678118654757274f,0.70275474445722529993f,
+0.71143219574521643356f,0.69837624940897291559f,0.71573082528381859468f,
+0.69397146088965400157f,0.72000250796138165477f,0.68954054473706694051f,
+0.72424708295146689174f,0.68508366777270035541f,0.72846439044822519637f,
+0.68060099779545302212f,0.73265427167241281570f,0.67609270357531603413f,
+0.73681656887736979300f,0.67155895484701833009f,0.74095112535495910588f,
+0.66699992230363747137f,0.74505778544146594733f,0.66241577759017178373f,
+0.74913639452345925918f,0.65780669329707874837f,0.75318679904361252042f,
+0.65317284295377686654f,0.75720884650648456748f,0.64851440102211255212f,
+0.76120238548426177871f,0.64383154288979149715f,0.76516726562245895860f,
+0.63912444486377573138f,0.76910333764557958780f,0.63439328416364548779f,
+0.77301045336273688235f,0.62963823891492709528f,0.77688846567323244230f,
+0.62485948814238645443f,0.78073722857209448822f,0.62005721176328920663f,
+0.78455659715557524159f,0.61523159058062681925f,0.78834642762660622761f,
+0.61038280627630947528f,0.79210657730021227785f,0.60551104140432554512f,
+0.79583690460888345530f,0.60061647938386897305f,0.79953726910790501314f,
+0.59569930449243346793f,0.80320753148064483184f,0.59075970185887427544f,
+0.80684755354379922299f,0.58579785745643886408f,0.81045719825259476821f,
+0.58081395809576452649f,0.81403632970594830276f,0.57580819141784533866f,
+0.81758481315158371139f,0.57078074588696736669f,0.82110251499110464835f,
+0.56573181078361323149f,0.82458930278502529099f,0.56066157619733603124f,
+0.82804504525775579626f,0.55557023301960228867f,0.83146961230254523567f,
+0.55045797293660481131f,0.83486287498638001026f,0.54532498842204646383f,
+0.83822470555483796772f,0.54017147272989296525f,0.84155497743689833268f,
+0.53499761988709726435f,0.84485356524970700587f,0.52980362468629482731f,
+0.84812034480329712149f,0.52458968267846883826f,0.85135519310526519554f,
+0.51935599016558953167f,0.85455798836540053376f,0.51410274419322166128f,
+0.85772861000027211809f,0.50883014254310698909f,0.86086693863776730939f,
+0.50353838372571757542f,0.86397285612158669643f,0.49822766697278186854f,
+0.86704624551569264845f,0.49289819222978409341f,0.87008699110871134952f,
+0.48755016014843605143f,0.87309497841829009079f,0.48218377207912282989f,
+0.87607009419540660122f,0.47679923006332225466f,0.87901222642863341417f,
+0.47139673682599780857f,0.88192126434835493853f,0.46597649576796612569f,
+0.88479709843093778954f,0.46053871095824000514f,0.88763962040285393496f,
+0.45508358712634383592f,0.89044872324475787817f,0.44961132965460659516f,
+0.89322430119551532446f,0.44412214457042925586f,0.89596624975618510689f,
+0.43861623853852771404f,0.89867446569395381673f,0.43309381885315201277f,
+0.90134884704602202810f,0.42755509343028219593f,0.90398929312344333820f,
+0.42200027079979979261f,0.90659570451491533483f,0.41642956009763731906f,
+0.90916798309052226923f,0.41084317105790391089f,0.91170603200542987832f,
+0.40524131400498986100f,0.91420975570353069095f,0.39962419984564678810f,
+0.91667905992104270485f,0.39399204006104809883f,0.91911385169005777040f,
+0.38834504669882630168f,0.92151403934204190183f,0.38268343236508983729f,
+0.92387953251128673848f,0.37700741021641831496f,0.92621024213831126826f,
+0.37131719395183759858f,0.92850608047321558924f,0.36561299780477396482f,
+0.93076696107898371224f,0.35989503653498827740f,0.93299279883473884567f,
+0.35416352542049051033f,0.93518350993894749923f,0.34841868024943450921f,
+0.93733901191257495977f,0.34266071731199437833f,0.93945922360218991898f,
+0.33688985339222005111f,0.94154406518302080631f,0.33110630575987642921f,
+0.94359345816196038559f,0.32531029216226298173f,0.94560732538052127971f,
+0.31950203081601574739f,0.94758559101774109124f,0.31368174039889157312f,
+0.94952818059303667475f,0.30784964004153497763f,0.95143502096900833820f,
+0.30200594931922819519f,0.95330604035419375109f,0.29615088824362395536f,
+0.95514116830577067141f,0.29028467725446233105f,0.95694033573220893540f,
+0.28440753721127182141f,0.95870347489587159906f,0.27851968938505305973f,
+0.96043051941556578655f,0.27262135544994897662f,0.96212140426904158019f,
+0.26671275747489842090f,0.96377606579543984022f,0.26079411791527556952f,
+0.96539444169768939830f,0.25486565960451462720f,0.96697647104485207059f,
+0.24892760574572025956f,0.96852209427441726675f,0.24298017990326398197f,
+0.97003125319454397424f,0.23702360599436733679f,0.97150389098625178352f,
+0.23105810828067127605f,0.97293995220556006576f,0.22508391135979277653f,
+0.97433938278557585821f,0.21910124015686976984f,0.97570213003852857003f,
+0.21311031991609136194f,0.97702814265775439484f,0.20711137619221856032f,
+0.97831737071962765473f,0.20110463484209195606f,0.97956976568544051887f,
+0.19509032201612833135f,0.98078528040323043058f,0.18906866414980627589f,
+0.98196386910955524296f,0.18303988795514106180f,0.98310548743121628501f,
+0.17700422041214886049f,0.98421009238692902521f,0.17096188876030135595f,
+0.98527764238894122162f,0.16491312048997008866f,0.98630809724459866938f,
+0.15885814333386139019f,0.98730141815785843473f,0.15279718525844340760f,
+0.98825756773074946437f,0.14673047445536174793f,0.98917650996478101444f,
+0.14065823933284923863f,0.99005821026229712256f,0.13458070850712622324f,
+0.99090263542778000971f,0.12849811079379322432f,0.99170975366909952520f,
+0.12241067519921627893f,0.99247953459870996706f,0.11631863091190487725f,
+0.99321194923479450001f,0.11022220729388318428f,0.99390697000235606051f,
+0.10412163387205472520f,0.99456457073425541537f,0.09801714032956077016f,
+0.99518472667219681771f,0.09190895649713269611f,0.99576741446765981713f,
+0.08579731234443987997f,0.99631261218277800129f,0.07968243797143012563f,
+0.99682029929116566791f,0.07356456359966745406f,0.99729045667869020697f,
+0.06744391956366410645f,0.99772306664419163624f,0.06132073630220864768f,
+0.99811811290014917919f,0.05519524434969003135f,0.99847558057329477421f,
+0.04906767432741812596f,0.99879545620517240501f,0.04293825693494095902f,
+0.99907772775264536147f,0.03680722294135899131f,0.99932238458834954375f,
+0.03067480317663658085f,0.99952941750109314256f,0.02454122852291226384f,
+0.99969881869620424997f,0.01840672990580482019f,0.99983058179582340319f,
+0.01227153828571994447f,0.99992470183914450299f,0.00613588464915451517f,
+0.99998117528260110909f,1.00000000000000000000f,0.00000000000000000000f,
+0.99969881869620424997f,0.02454122852291228812f,0.99879545620517240501f,
+0.04906767432741801493f,0.99729045667869020697f,0.07356456359966742631f,
+0.99518472667219692873f,0.09801714032956060363f,0.99247953459870996706f,
+0.12241067519921619566f,0.98917650996478101444f,0.14673047445536174793f,
+0.98527764238894122162f,0.17096188876030121717f,0.98078528040323043058f,
+0.19509032201612824808f,0.97570213003852857003f,0.21910124015686979759f,
+0.97003125319454397424f,0.24298017990326387094f,0.96377606579543984022f,
+0.26671275747489836538f,0.95694033573220882438f,0.29028467725446233105f,
+0.94952818059303667475f,0.31368174039889151761f,0.94154406518302080631f,
+0.33688985339222005111f,0.93299279883473895669f,0.35989503653498811087f,
+0.92387953251128673848f,0.38268343236508978178f,0.91420975570353069095f,
+0.40524131400498986100f,0.90398929312344333820f,0.42755509343028208491f,
+0.89322430119551532446f,0.44961132965460653965f,0.88192126434835504956f,
+0.47139673682599764204f,0.87008699110871146054f,0.49289819222978403790f,
+0.85772861000027211809f,0.51410274419322166128f,0.84485356524970711689f,
+0.53499761988709715332f,0.83146961230254523567f,0.55557023301960217765f,
+0.81758481315158371139f,0.57580819141784533866f,0.80320753148064494287f,
+0.59569930449243335691f,0.78834642762660622761f,0.61523159058062681925f,
+0.77301045336273699338f,0.63439328416364548779f,0.75720884650648456748f,
+0.65317284295377675551f,0.74095112535495921691f,0.67155895484701833009f,
+0.72424708295146700276f,0.68954054473706682948f,0.70710678118654757274f,
+0.70710678118654757274f,0.68954054473706694051f,0.72424708295146689174f,
+0.67155895484701833009f,0.74095112535495910588f,0.65317284295377686654f,
+0.75720884650648456748f,0.63439328416364548779f,0.77301045336273688235f,
+0.61523159058062681925f,0.78834642762660622761f,0.59569930449243346793f,
+0.80320753148064483184f,0.57580819141784533866f,0.81758481315158371139f,
+0.55557023301960228867f,0.83146961230254523567f,0.53499761988709726435f,
+0.84485356524970700587f,0.51410274419322166128f,0.85772861000027211809f,
+0.49289819222978409341f,0.87008699110871134952f,0.47139673682599780857f,
+0.88192126434835493853f,0.44961132965460659516f,0.89322430119551532446f,
+0.42755509343028219593f,0.90398929312344333820f,0.40524131400498986100f,
+0.91420975570353069095f,0.38268343236508983729f,0.92387953251128673848f,
+0.35989503653498827740f,0.93299279883473884567f,0.33688985339222005111f,
+0.94154406518302080631f,0.31368174039889157312f,0.94952818059303667475f,
+0.29028467725446233105f,0.95694033573220893540f,0.26671275747489842090f,
+0.96377606579543984022f,0.24298017990326398197f,0.97003125319454397424f,
+0.21910124015686976984f,0.97570213003852857003f,0.19509032201612833135f,
+0.98078528040323043058f,0.17096188876030135595f,0.98527764238894122162f,
+0.14673047445536174793f,0.98917650996478101444f,0.12241067519921627893f,
+0.99247953459870996706f,0.09801714032956077016f,0.99518472667219681771f,
+0.07356456359966745406f,0.99729045667869020697f,0.04906767432741812596f,
+0.99879545620517240501f,0.02454122852291226384f,0.99969881869620424997f,
+1.00000000000000000000f,0.00000000000000000000f,0.99518472667219692873f,
+0.09801714032956060363f,0.98078528040323043058f,0.19509032201612824808f,
+0.95694033573220882438f,0.29028467725446233105f,0.92387953251128673848f,
+0.38268343236508978178f,0.88192126434835504956f,0.47139673682599764204f,
+0.83146961230254523567f,0.55557023301960217765f,0.77301045336273699338f,
+0.63439328416364548779f,0.70710678118654757274f,0.70710678118654757274f,
+0.63439328416364548779f,0.77301045336273688235f,0.55557023301960228867f,
+0.83146961230254523567f,0.47139673682599780857f,0.88192126434835493853f,
+0.38268343236508983729f,0.92387953251128673848f,0.29028467725446233105f,
+0.95694033573220893540f,0.19509032201612833135f,0.98078528040323043058f,
+0.09801714032956077016f,0.99518472667219681771f,1.00000000000000000000f,
+0.00000000000000000000f,0.92387953251128673848f,0.38268343236508978178f,
+0.70710678118654757274f,0.70710678118654757274f,0.38268343236508983729f,
+0.92387953251128673848f,};
+
+float32_t rearranged_twiddle_stride2_4096[2728]={
+1.00000000000000000000f,0.00000000000000000000f,0.99999529380957619118f,
+0.00306795676296597614f,0.99998117528260110909f,0.00613588464915447527f,
+0.99995764455196389786f,0.00920375478205981944f,0.99992470183914450299f,
+0.01227153828571992539f,0.99988234745421256111f,0.01533920628498810015f,
+0.99983058179582340319f,0.01840672990580482019f,0.99976940535121527898f,
+0.02147408027546950787f,0.99969881869620424997f,0.02454122852291228812f,
+0.99961882249517863830f,0.02760814577896573974f,0.99952941750109314256f,
+0.03067480317663662595f,0.99943060455546173237f,0.03374117185137757990f,
+0.99932238458834954375f,0.03680722294135883171f,0.99920475861836388631f,
+0.03987292758773981066f,0.99907772775264536147f,0.04293825693494082024f,
+0.99894129318685687124f,0.04600318213091462299f,0.99879545620517240501f,
+0.04906767432741801493f,0.99864021818026527111f,0.05213170468028332366f,
+0.99847558057329477421f,0.05519524434968993420f,0.99830154493389289261f,
+0.05825826450043575244f,0.99811811290014917919f,0.06132073630220857829f,
+0.99792528619859599548f,0.06438263092985746505f,0.99772306664419163624f,
+0.06744391956366405094f,0.99751145614030345410f,0.07050457338961385600f,
+0.99729045667869020697f,0.07356456359966742631f,0.99706007033948296225f,
+0.07662386139203149205f,0.99682029929116566791f,0.07968243797143012563f,
+0.99657114579055483539f,0.08274026454937569164f,0.99631261218277800129f,
+0.08579731234443989385f,0.99604470090125196702f,0.08885355258252460031f,
+0.99576741446765981713f,0.09190895649713272386f,0.99548075549192693856f,
+0.09496349532963899165f,0.99518472667219692873f,0.09801714032956060363f,
+0.99487933079480561638f,0.10106986275482782167f,0.99456457073425541537f,
+0.10412163387205458642f,0.99424044945318790223f,0.10717242495680884273f,
+0.99390697000235606051f,0.11022220729388305938f,0.99356413552059530403f,
+0.11327095217756434631f,0.99321194923479450001f,0.11631863091190475235f,
+0.99285041445986510489f,0.11936521481099135467f,0.99247953459870996706f,
+0.12241067519921619566f,0.99209931314219179654f,0.12545498341154623367f,
+0.99170975366909952520f,0.12849811079379316880f,0.99131085984611544415f,
+0.13154002870288311611f,0.99090263542778000971f,0.13458070850712616773f,
+0.99048508425645709341f,0.13762012158648603832f,0.99005821026229712256f,
+0.14065823933284921088f,0.98962201746320088702f,0.14369503315029447110f,
+0.98917650996478101444f,0.14673047445536174793f,0.98872169196032377858f,
+0.14976453467732150915f,0.98825756773074946437f,0.15279718525844343535f,
+0.98778414164457217783f,0.15582839765426523271f,0.98730141815785843473f,
+0.15885814333386144570f,0.98680940181418552726f,0.16188639378011182579f,
+0.98630809724459866938f,0.16491312048996989437f,0.98579750916756747614f,
+0.16793829497473117263f,0.98527764238894122162f,0.17096188876030121717f,
+0.98474850180190420801f,0.17398387338746382214f,0.98421009238692902521f,
+0.17700422041214874946f,0.98366241921173025453f,0.18002290140569951471f,
+0.98310548743121628501f,0.18303988795514095078f,0.98253930228744124076f,
+0.18605515166344663291f,0.98196386910955524296f,0.18906866414980619262f,
+0.98137919331375456089f,0.19208039704989243734f,0.98078528040323043058f,
+0.19509032201612824808f,0.98018213596811742949f,0.19809841071795356027f,
+0.97956976568544051887f,0.20110463484209190055f,0.97894817531906219710f,
+0.20410896609281686809f,0.97831737071962765473f,0.20711137619221856032f,
+0.97767735782450992943f,0.21011183688046961016f,0.97702814265775439484f,
+0.21311031991609136194f,0.97636973133002114000f,0.21610679707621952006f,
+0.97570213003852857003f,0.21910124015686979759f,0.97502534506699412020f,
+0.22209362097320350937f,0.97433938278557585821f,0.22508391135979283204f,
+0.97364424965081197705f,0.22807208317088573102f,0.97293995220556017678f,
+0.23105810828067110951f,0.97222649707893626925f,0.23404195858354343018f,
+0.97150389098625178352f,0.23702360599436719801f,0.97077214072895035013f,
+0.24000302244874149871f,0.97003125319454397424f,0.24298017990326387094f,
+0.96928123535654853171f,0.24595505033579459497f,0.96852209427441737777f,
+0.24892760574572014853f,0.96775383709347551076f,0.25189781815421696809f,
+0.96697647104485207059f,0.25486565960451457169f,0.96619000344541250413f,
+0.25783110216215898713f,0.96539444169768939830f,0.26079411791527551401f,
+0.96458979328981275803f,0.26375467897483134694f,0.96377606579543984022f,
+0.26671275747489836538f,0.96295326687368387741f,0.26966832557291509076f,
+0.96212140426904158019f,0.27262135544994897662f,0.96128048581132063966f,
+0.27557181931095814376f,0.96043051941556578655f,0.27851968938505305973f,
+0.95957151308198451733f,0.28146493792575794091f,0.95870347489587159906f,
+0.28440753721127187692f,0.95782641302753290802f,0.28734745954472951102f,
+0.95694033573220882438f,0.29028467725446233105f,0.95604525134999640557f,
+0.29321916269425862822f,0.95514116830577078243f,0.29615088824362378883f,
+0.95422809510910566733f,0.29907982630804047508f,0.95330604035419386211f,
+0.30200594931922808417f,0.95237501271976587880f,0.30492922973540237397f,
+0.95143502096900833820f,0.30784964004153486661f,0.95048607394948170235f,
+0.31076715274961147495f,0.94952818059303667475f,0.31368174039889151761f,
+0.94856134991573026749f,0.31659337555616584581f,0.94758559101774109124f,
+0.31950203081601569188f,0.94660091308328353499f,0.32240767880106985244f,
+0.94560732538052127971f,0.32531029216226292622f,0.94460483726148025685f,
+0.32820984357909249729f,0.94359345816196038559f,0.33110630575987642921f,
+0.94257319760144686605f,0.33399965144200938205f,0.94154406518302080631f,
+0.33688985339222005111f,0.94050607059326829518f,0.33977688440682685123f,
+0.93945922360218991898f,0.34266071731199437833f,0.93840353406310805795f,
+0.34554132496398909380f,0.93733901191257495977f,0.34841868024943456472f,
+0.93626566717027825959f,0.35129275608556709276f,0.93518350993894761025f,
+0.35416352542049034380f,0.93409255040425887007f,0.35703096123342997759f,
+0.93299279883473895669f,0.35989503653498811087f,0.93188426558166814750f,
+0.36275572436739722537f,0.93076696107898371224f,0.36561299780477385379f,
+0.92964089584318121418f,0.36846682995337232125f,0.92850608047321558924f,
+0.37131719395183754306f,0.92736252565040111495f,0.37416406297145793358f,
+0.92621024213831137928f,0.37700741021641825945f,0.92504924078267758425f,
+0.37984720892405116066f,0.92387953251128673848f,0.38268343236508978178f,
+0.92270112833387862850f,0.38551605384391884890f,0.92151403934204190183f,
+0.38834504669882624617f,0.92031827670911059425f,0.39117038430225387069f,
+0.91911385169005777040f,0.39399204006104809883f,0.91790077562139049672f,
+0.39680998741671030805f,0.91667905992104270485f,0.39962419984564678810f,
+0.91544871608826783316f,0.40243465085941843018f,0.91420975570353069095f,
+0.40524131400498986100f,0.91296219042839821256f,0.40804416286497868782f,
+0.91170603200542987832f,0.41084317105790391089f,0.91044129225806724737f,
+0.41363831223843450235f,0.90916798309052238025f,0.41642956009763715253f,
+0.90788611648766626150f,0.41921688836322390515f,0.90659570451491533483f,
+0.42200027079979968159f,0.90529675931811881551f,0.42477968120910880589f,
+0.90398929312344333820f,0.42755509343028208491f,0.90267331823725882600f,
+0.43032648134008261165f,0.90134884704602202810f,0.43309381885315195726f,
+0.90001589201616016833f,0.43585707992225547480f,0.89867446569395381673f,
+0.43861623853852765853f,0.89732458070541831763f,0.44137126873171667052f,
+0.89596624975618521791f,0.44412214457042920035f,0.89459948563138269595f,
+0.44686884016237415906f,0.89322430119551532446f,0.44961132965460653965f,
+0.89184070939234272313f,0.45234958723377088896f,0.89044872324475787817f,
+0.45508358712634383592f,0.88904835585466457371f,0.45781330359887717485f,
+0.88763962040285393496f,0.46053871095824000514f,0.88622253014888063838f,
+0.46325978355186014923f,0.88479709843093778954f,0.46597649576796618121f,
+0.88336333866573157891f,0.46868882203582790114f,0.88192126434835504956f,
+0.47139673682599764204f,0.88047088905216075450f,0.47410021465054996703f,
+0.87901222642863352519f,0.47679923006332208812f,0.87754529020726135258f,
+0.47949375766015295275f,0.87607009419540660122f,0.48218377207912271887f,
+0.87458665227817611321f,0.48486924800079106435f,0.87309497841829009079f,
+0.48755016014843599592f,0.87159508665595097909f,0.49022648328829115938f,
+0.87008699110871146054f,0.49289819222978403790f,0.86857070597134089507f,
+0.49556526182577254058f,0.86704624551569264845f,0.49822766697278181303f,
+0.86551362409056908920f,0.50088538261124071482f,0.86397285612158669643f,
+0.50353838372571757542f,0.86242395611104050168f,0.50618664534515522835f,
+0.86086693863776730939f,0.50883014254310698909f,0.85930181835700847337f,
+0.51146885043797030157f,0.85772861000027211809f,0.51410274419322166128f,
+0.85614732837519447184f,0.51673179901764987321f,0.85455798836540053376f,
+0.51935599016558964269f,0.85296060493036363059f,0.52197529293715438925f,
+0.85135519310526519554f,0.52458968267846894928f,0.84974176800085254868f,
+0.52719913478190127964f,0.84812034480329723252f,0.52980362468629460526f,
+0.84649093877405212627f,0.53240312787719790144f,0.84485356524970711689f,
+0.53499761988709715332f,0.84320823964184543620f,0.53758707629564539410f,
+0.84155497743689844370f,0.54017147272989285423f,0.83989379419599952126f,
+0.54275078486451588944f,0.83822470555483807875f,0.54532498842204646383f,
+0.83654772722351200542f,0.54789405917310018967f,0.83486287498638001026f,
+0.55045797293660481131f,0.83317016470191318511f,0.55301670558002746780f,
+0.83146961230254523567f,0.55557023301960217765f,0.82976123379452304540f,
+0.55811853122055610221f,0.82804504525775579626f,0.56066157619733603124f,
+0.82632106284566353427f,0.56319934401383409117f,0.82458930278502529099f,
+0.56573181078361312046f,0.82284978137582642788f,0.56825895267013148970f,
+0.82110251499110464835f,0.57078074588696725566f,0.81934752007679700903f,
+0.57329716669804220430f,0.81758481315158371139f,0.57580819141784533866f,
+0.81581441080673378075f,0.57831379641165558958f,0.81403632970594841378f,
+0.58081395809576452649f,0.81225058658520399302f,0.58330865293769829094f,
+0.81045719825259476821f,0.58579785745643886408f,0.80865618158817498262f,
+0.58828154822264522306f,0.80684755354379933401f,0.59075970185887416442f,
+0.80503133114296365758f,0.59323229503979979516f,0.80320753148064494287f,
+0.59569930449243335691f,0.80137617172314024039f,0.59816070699634238395f,
+0.79953726910790501314f,0.60061647938386897305f,0.79769084094339115509f,
+0.60306659854034816437f,0.79583690460888356633f,0.60551104140432554512f,
+0.79397547755433717231f,0.60794978496777363208f,0.79210657730021238887f,
+0.61038280627630947528f,0.79023022143731003197f,0.61281008242940970820f,
+0.78834642762660622761f,0.61523159058062681925f,0.78645521359908576731f,
+0.61764730793780386886f,0.78455659715557524159f,0.62005721176328909561f,
+0.78265059616657572938f,0.62246127937414996723f,0.78073722857209448822f,
+0.62485948814238634341f,0.77881651238147597827f,0.62725181549514408275f,
+0.77688846567323244230f,0.62963823891492698426f,0.77495310659487393057f,
+0.63201873593980906207f,0.77301045336273699338f,0.63439328416364548779f,
+0.77106052426181381776f,0.63676186123628419899f,0.76910333764557969882f,
+0.63912444486377573138f,0.76713891193582040007f,0.64148101280858305095f,
+0.76516726562245895860f,0.64383154288979138613f,0.76318841726338138010f,
+0.64617601298331628357f,0.76120238548426177871f,0.64851440102211244110f,
+0.75920918897838796102f,0.65084668499638087535f,0.75720884650648456748f,
+0.65317284295377675551f,0.75520137689653654700f,0.65549285299961534967f,
+0.75318679904361252042f,0.65780669329707863735f,0.75116513190968636771f,
+0.66011434206742047870f,0.74913639452345937020f,0.66241577759017178373f,
+0.74710060598018013245f,0.66471097820334479334f,0.74505778544146594733f,
+0.66699992230363747137f,0.74300795213512171866f,0.66928258834663600929f,
+0.74095112535495921691f,0.67155895484701833009f,0.73888732446061511361f,
+0.67382900037875603783f,0.73681656887736979300f,0.67609270357531592310f,
+0.73473887809596349907f,0.67835004312986146857f,0.73265427167241281570f,
+0.68060099779545302212f,0.73056276922782759087f,0.68284554638524808112f,
+0.72846439044822519637f,0.68508366777270035541f,0.72635915508434600873f,
+0.68731534089175905233f,0.72424708295146700276f,0.68954054473706682948f,
+0.72212819392921534511f,0.69175925836415774750f,0.72000250796138165477f,
+0.69397146088965389055f,0.71787004505573170920f,0.69617713149146298601f,
+0.71573082528381870571f,0.69837624940897280457f,0.71358486878079352422f,
+0.70056879394324833576f,0.71143219574521643356f,0.70275474445722529993f,
+0.70927282643886568891f,0.70493408037590488124f,0.70710678118654757274f,
+0.70710678118654757274f,0.70493408037590499227f,0.70927282643886568891f,
+0.70275474445722529993f,0.71143219574521643356f,0.70056879394324844679f,
+0.71358486878079352422f,0.69837624940897291559f,0.71573082528381859468f,
+0.69617713149146298601f,0.71787004505573170920f,0.69397146088965400157f,
+0.72000250796138165477f,0.69175925836415774750f,0.72212819392921534511f,
+0.68954054473706694051f,0.72424708295146689174f,0.68731534089175905233f,
+0.72635915508434600873f,0.68508366777270035541f,0.72846439044822519637f,
+0.68284554638524808112f,0.73056276922782759087f,0.68060099779545302212f,
+0.73265427167241281570f,0.67835004312986146857f,0.73473887809596349907f,
+0.67609270357531603413f,0.73681656887736979300f,0.67382900037875614885f,
+0.73888732446061511361f,0.67155895484701833009f,0.74095112535495910588f,
+0.66928258834663600929f,0.74300795213512171866f,0.66699992230363747137f,
+0.74505778544146594733f,0.66471097820334490436f,0.74710060598018013245f,
+0.66241577759017178373f,0.74913639452345925918f,0.66011434206742047870f,
+0.75116513190968636771f,0.65780669329707874837f,0.75318679904361252042f,
+0.65549285299961546070f,0.75520137689653654700f,0.65317284295377686654f,
+0.75720884650648456748f,0.65084668499638098638f,0.75920918897838796102f,
+0.64851440102211255212f,0.76120238548426177871f,0.64617601298331639459f,
+0.76318841726338126907f,0.64383154288979149715f,0.76516726562245895860f,
+0.64148101280858316198f,0.76713891193582040007f,0.63912444486377573138f,
+0.76910333764557958780f,0.63676186123628419899f,0.77106052426181381776f,
+0.63439328416364548779f,0.77301045336273688235f,0.63201873593980906207f,
+0.77495310659487381955f,0.62963823891492709528f,0.77688846567323244230f,
+0.62725181549514419377f,0.77881651238147586724f,0.62485948814238645443f,
+0.78073722857209448822f,0.62246127937415007825f,0.78265059616657572938f,
+0.62005721176328920663f,0.78455659715557524159f,0.61764730793780397988f,
+0.78645521359908576731f,0.61523159058062681925f,0.78834642762660622761f,
+0.61281008242940970820f,0.79023022143731003197f,0.61038280627630947528f,
+0.79210657730021227785f,0.60794978496777374311f,0.79397547755433717231f,
+0.60551104140432554512f,0.79583690460888345530f,0.60306659854034827539f,
+0.79769084094339104407f,0.60061647938386897305f,0.79953726910790501314f,
+0.59816070699634238395f,0.80137617172314012937f,0.59569930449243346793f,
+0.80320753148064483184f,0.59323229503979979516f,0.80503133114296365758f,
+0.59075970185887427544f,0.80684755354379922299f,0.58828154822264533408f,
+0.80865618158817498262f,0.58579785745643886408f,0.81045719825259476821f,
+0.58330865293769829094f,0.81225058658520388200f,0.58081395809576452649f,
+0.81403632970594830276f,0.57831379641165558958f,0.81581441080673378075f,
+0.57580819141784533866f,0.81758481315158371139f,0.57329716669804231532f,
+0.81934752007679689800f,0.57078074588696736669f,0.82110251499110464835f,
+0.56825895267013148970f,0.82284978137582631685f,0.56573181078361323149f,
+0.82458930278502529099f,0.56319934401383409117f,0.82632106284566353427f,
+0.56066157619733603124f,0.82804504525775579626f,0.55811853122055610221f,
+0.82976123379452304540f,0.55557023301960228867f,0.83146961230254523567f,
+0.55301670558002757883f,0.83317016470191318511f,0.55045797293660481131f,
+0.83486287498638001026f,0.54789405917310018967f,0.83654772722351189440f,
+0.54532498842204646383f,0.83822470555483796772f,0.54275078486451600046f,
+0.83989379419599941023f,0.54017147272989296525f,0.84155497743689833268f,
+0.53758707629564550512f,0.84320823964184543620f,0.53499761988709726435f,
+0.84485356524970700587f,0.53240312787719801246f,0.84649093877405212627f,
+0.52980362468629482731f,0.84812034480329712149f,0.52719913478190139067f,
+0.84974176800085243766f,0.52458968267846883826f,0.85135519310526519554f,
+0.52197529293715438925f,0.85296060493036363059f,0.51935599016558953167f,
+0.85455798836540053376f,0.51673179901764998423f,0.85614732837519447184f,
+0.51410274419322166128f,0.85772861000027211809f,0.51146885043797052361f,
+0.85930181835700836235f,0.50883014254310698909f,0.86086693863776730939f,
+0.50618664534515533937f,0.86242395611104050168f,0.50353838372571757542f,
+0.86397285612158669643f,0.50088538261124093687f,0.86551362409056897818f,
+0.49822766697278186854f,0.86704624551569264845f,0.49556526182577248507f,
+0.86857070597134089507f,0.49289819222978409341f,0.87008699110871134952f,
+0.49022648328829110387f,0.87159508665595109012f,0.48755016014843605143f,
+0.87309497841829009079f,0.48486924800079111986f,0.87458665227817611321f,
+0.48218377207912282989f,0.87607009419540660122f,0.47949375766015300826f,
+0.87754529020726124156f,0.47679923006332225466f,0.87901222642863341417f,
+0.47410021465055002254f,0.88047088905216075450f,0.47139673682599780857f,
+0.88192126434835493853f,0.46868882203582795665f,0.88336333866573157891f,
+0.46597649576796612569f,0.88479709843093778954f,0.46325978355186026025f,
+0.88622253014888063838f,0.46053871095824000514f,0.88763962040285393496f,
+0.45781330359887728587f,0.88904835585466457371f,0.45508358712634383592f,
+0.89044872324475787817f,0.45234958723377099998f,0.89184070939234272313f,
+0.44961132965460659516f,0.89322430119551532446f,0.44686884016237432560f,
+0.89459948563138258493f,0.44412214457042925586f,0.89596624975618510689f,
+0.44137126873171661501f,0.89732458070541831763f,0.43861623853852771404f,
+0.89867446569395381673f,0.43585707992225547480f,0.90001589201616027935f,
+0.43309381885315201277f,0.90134884704602202810f,0.43032648134008261165f,
+0.90267331823725882600f,0.42755509343028219593f,0.90398929312344333820f,
+0.42477968120910880589f,0.90529675931811881551f,0.42200027079979979261f,
+0.90659570451491533483f,0.41921688836322396066f,0.90788611648766626150f,
+0.41642956009763731906f,0.90916798309052226923f,0.41363831223843455787f,
+0.91044129225806713634f,0.41084317105790391089f,0.91170603200542987832f,
+0.40804416286497874333f,0.91296219042839810154f,0.40524131400498986100f,
+0.91420975570353069095f,0.40243465085941854120f,0.91544871608826783316f,
+0.39962419984564678810f,0.91667905992104270485f,0.39680998741671041907f,
+0.91790077562139038569f,0.39399204006104809883f,0.91911385169005777040f,
+0.39117038430225398171f,0.92031827670911048322f,0.38834504669882630168f,
+0.92151403934204190183f,0.38551605384391901543f,0.92270112833387851747f,
+0.38268343236508983729f,0.92387953251128673848f,0.37984720892405110515f,
+0.92504924078267758425f,0.37700741021641831496f,0.92621024213831126826f,
+0.37416406297145798909f,0.92736252565040111495f,0.37131719395183759858f,
+0.92850608047321558924f,0.36846682995337232125f,0.92964089584318121418f,
+0.36561299780477396482f,0.93076696107898371224f,0.36275572436739722537f,
+0.93188426558166814750f,0.35989503653498827740f,0.93299279883473884567f,
+0.35703096123343003310f,0.93409255040425887007f,0.35416352542049051033f,
+0.93518350993894749923f,0.35129275608556714827f,0.93626566717027825959f,
+0.34841868024943450921f,0.93733901191257495977f,0.34554132496398914931f,
+0.93840353406310805795f,0.34266071731199437833f,0.93945922360218991898f,
+0.33977688440682696225f,0.94050607059326829518f,0.33688985339222005111f,
+0.94154406518302080631f,0.33399965144200949307f,0.94257319760144686605f,
+0.33110630575987642921f,0.94359345816196038559f,0.32820984357909266382f,
+0.94460483726148025685f,0.32531029216226298173f,0.94560732538052127971f,
+0.32240767880107001897f,0.94660091308328353499f,0.31950203081601574739f,
+0.94758559101774109124f,0.31659337555616584581f,0.94856134991573026749f,
+0.31368174039889157312f,0.94952818059303667475f,0.31076715274961147495f,
+0.95048607394948170235f,0.30784964004153497763f,0.95143502096900833820f,
+0.30492922973540242948f,0.95237501271976587880f,0.30200594931922819519f,
+0.95330604035419375109f,0.29907982630804047508f,0.95422809510910566733f,
+0.29615088824362395536f,0.95514116830577067141f,0.29321916269425868373f,
+0.95604525134999640557f,0.29028467725446233105f,0.95694033573220893540f,
+0.28734745954472956653f,0.95782641302753290802f,0.28440753721127182141f,
+0.95870347489587159906f,0.28146493792575805193f,0.95957151308198451733f,
+0.27851968938505305973f,0.96043051941556578655f,0.27557181931095825478f,
+0.96128048581132063966f,0.27262135544994897662f,0.96212140426904158019f,
+0.26966832557291520178f,0.96295326687368387741f,0.26671275747489842090f,
+0.96377606579543984022f,0.26375467897483151347f,0.96458979328981264700f,
+0.26079411791527556952f,0.96539444169768939830f,0.25783110216215893162f,
+0.96619000344541261516f,0.25486565960451462720f,0.96697647104485207059f,
+0.25189781815421691258f,0.96775383709347551076f,0.24892760574572025956f,
+0.96852209427441726675f,0.24595505033579459497f,0.96928123535654853171f,
+0.24298017990326398197f,0.97003125319454397424f,0.24000302244874149871f,
+0.97077214072895035013f,0.23702360599436733679f,0.97150389098625178352f,
+0.23404195858354345794f,0.97222649707893626925f,0.23105810828067127605f,
+0.97293995220556006576f,0.22807208317088578653f,0.97364424965081186603f,
+0.22508391135979277653f,0.97433938278557585821f,0.22209362097320359264f,
+0.97502534506699412020f,0.21910124015686976984f,0.97570213003852857003f,
+0.21610679707621960333f,0.97636973133002114000f,0.21311031991609136194f,
+0.97702814265775439484f,0.21011183688046972118f,0.97767735782450992943f,
+0.20711137619221856032f,0.97831737071962765473f,0.20410896609281700687f,
+0.97894817531906219710f,0.20110463484209195606f,0.97956976568544051887f,
+0.19809841071795372680f,0.98018213596811731847f,0.19509032201612833135f,
+0.98078528040323043058f,0.19208039704989238183f,0.98137919331375456089f,
+0.18906866414980627589f,0.98196386910955524296f,0.18605515166344663291f,
+0.98253930228744124076f,0.18303988795514106180f,0.98310548743121628501f,
+0.18002290140569951471f,0.98366241921173025453f,0.17700422041214886049f,
+0.98421009238692902521f,0.17398387338746384989f,0.98474850180190420801f,
+0.17096188876030135595f,0.98527764238894122162f,0.16793829497473122814f,
+0.98579750916756736512f,0.16491312048997008866f,0.98630809724459866938f,
+0.16188639378011188130f,0.98680940181418541624f,0.15885814333386139019f,
+0.98730141815785843473f,0.15582839765426531597f,0.98778414164457217783f,
+0.15279718525844340760f,0.98825756773074946437f,0.14976453467732162017f,
+0.98872169196032377858f,0.14673047445536174793f,0.98917650996478101444f,
+0.14369503315029458212f,0.98962201746320077600f,0.14065823933284923863f,
+0.99005821026229712256f,0.13762012158648617710f,0.99048508425645698239f,
+0.13458070850712622324f,0.99090263542778000971f,0.13154002870288328264f,
+0.99131085984611544415f,0.12849811079379322432f,0.99170975366909952520f,
+0.12545498341154620592f,0.99209931314219179654f,0.12241067519921627893f,
+0.99247953459870996706f,0.11936521481099135467f,0.99285041445986510489f,
+0.11631863091190487725f,0.99321194923479450001f,0.11327095217756436019f,
+0.99356413552059530403f,0.11022220729388318428f,0.99390697000235606051f,
+0.10717242495680887049f,0.99424044945318790223f,0.10412163387205472520f,
+0.99456457073425541537f,0.10106986275482787718f,0.99487933079480561638f,
+0.09801714032956077016f,0.99518472667219681771f,0.09496349532963906104f,
+0.99548075549192693856f,0.09190895649713269611f,0.99576741446765981713f,
+0.08885355258252468358f,0.99604470090125196702f,0.08579731234443987997f,
+0.99631261218277800129f,0.08274026454937580266f,0.99657114579055483539f,
+0.07968243797143012563f,0.99682029929116566791f,0.07662386139203161695f,
+0.99706007033948296225f,0.07356456359966745406f,0.99729045667869020697f,
+0.07050457338961400866f,0.99751145614030345410f,0.06744391956366410645f,
+0.99772306664419163624f,0.06438263092985740954f,0.99792528619859599548f,
+0.06132073630220864768f,0.99811811290014917919f,0.05825826450043573163f,
+0.99830154493389289261f,0.05519524434969003135f,0.99847558057329477421f,
+0.05213170468028331672f,0.99864021818026527111f,0.04906767432741812596f,
+0.99879545620517240501f,0.04600318213091464381f,0.99894129318685687124f,
+0.04293825693494095902f,0.99907772775264536147f,0.03987292758773984536f,
+0.99920475861836388631f,0.03680722294135899131f,0.99932238458834954375f,
+0.03374117185137764235f,0.99943060455546173237f,0.03067480317663658085f,
+0.99952941750109314256f,0.02760814577896581953f,0.99961882249517863830f,
+0.02454122852291226384f,0.99969881869620424997f,0.02147408027546960502f,
+0.99976940535121527898f,0.01840672990580482019f,0.99983058179582340319f,
+0.01533920628498821985f,0.99988234745421256111f,0.01227153828571994447f,
+0.99992470183914450299f,0.00920375478205995995f,0.99995764455196389786f,
+0.00613588464915451517f,0.99998117528260110909f,0.00306795676296613791f,
+0.99999529380957619118f,0.00000000000000006123f,1.00000000000000000000f,
+-0.00306795676296601561f,0.99999529380957619118f,-0.00613588464915439287f,
+0.99998117528260110909f,-0.00920375478205983678f,0.99995764455196389786f,
+-0.01227153828571982304f,0.99992470183914450299f,-0.01533920628498809842f,
+0.99988234745421256111f,-0.01840672990580469529f,0.99983058179582340319f,
+-0.02147408027546948359f,0.99976940535121527898f,-0.02454122852291214241f,
+0.99969881869620424997f,-0.02760814577896569810f,0.99961882249517863830f,
+-0.03067480317663645942f,0.99952941750109314256f,-0.03374117185137751745f,
+0.99943060455546173237f,-0.03680722294135886641f,0.99932238458834954375f,
+-0.03987292758773972740f,0.99920475861836388631f,-0.04293825693494083412f,
+0.99907772775264536147f,-0.04600318213091451891f,0.99894129318685687124f,
+-0.04906767432741800800f,0.99879545620517240501f,-0.05213170468028319182f,
+0.99864021818026527111f,-0.05519524434968991339f,0.99847558057329477421f,
+-0.05825826450043560673f,0.99830154493389289261f,-0.06132073630220852972f,
+0.99811811290014917919f,-0.06438263092985728464f,0.99792528619859599548f,
+-0.06744391956366398155f,0.99772306664419163624f,-0.07050457338961389764f,
+0.99751145614030345410f,-0.07356456359966732916f,0.99729045667869020697f,
+-0.07662386139203150592f,0.99706007033948296225f,-0.07968243797143001461f,
+0.99682029929116577893f,-0.08274026454937567776f,0.99657114579055483539f,
+-0.08579731234443975507f,0.99631261218277800129f,-0.08885355258252455868f,
+0.99604470090125196702f,-0.09190895649713257121f,0.99576741446765981713f,
+-0.09496349532963895002f,0.99548075549192693856f,-0.09801714032956064526f,
+0.99518472667219692873f,-0.10106986275482775228f,0.99487933079480561638f,
+-0.10412163387205460030f,0.99456457073425541537f,-0.10717242495680875947f,
+0.99424044945318790223f,-0.11022220729388305938f,0.99390697000235606051f,
+-0.11327095217756423529f,0.99356413552059530403f,-0.11631863091190475235f,
+0.99321194923479450001f,-0.11936521481099122977f,0.99285041445986510489f,
+-0.12241067519921615403f,0.99247953459870996706f,-0.12545498341154606714f,
+0.99209931314219179654f,-0.12849811079379311329f,0.99170975366909952520f,
+-0.13154002870288314386f,0.99131085984611544415f,-0.13458070850712611222f,
+0.99090263542778000971f,-0.13762012158648606608f,0.99048508425645698239f,
+-0.14065823933284912761f,0.99005821026229712256f,-0.14369503315029444335f,
+0.98962201746320088702f,-0.14673047445536163691f,0.98917650996478101444f,
+-0.14976453467732150915f,0.98872169196032377858f,-0.15279718525844329657f,
+0.98825756773074946437f,-0.15582839765426520495f,0.98778414164457217783f,
+-0.15885814333386127917f,0.98730141815785843473f,-0.16188639378011177028f,
+0.98680940181418552726f,-0.16491312048996994988f,0.98630809724459866938f,
+-0.16793829497473108936f,0.98579750916756747614f,-0.17096188876030124493f,
+0.98527764238894122162f,-0.17398387338746371111f,0.98474850180190420801f,
+-0.17700422041214874946f,0.98421009238692902521f,-0.18002290140569940369f,
+0.98366241921173025453f,-0.18303988795514092303f,0.98310548743121628501f,
+-0.18605515166344649414f,0.98253930228744124076f,-0.18906866414980616486f,
+0.98196386910955524296f,-0.19208039704989227081f,0.98137919331375456089f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.19809841071795361578f,
+0.98018213596811742949f,-0.20110463484209181728f,0.97956976568544051887f,
+-0.20410896609281689584f,0.97894817531906219710f,-0.20711137619221844930f,
+0.97831737071962765473f,-0.21011183688046961016f,0.97767735782450992943f,
+-0.21311031991609125091f,0.97702814265775439484f,-0.21610679707621949230f,
+0.97636973133002114000f,-0.21910124015686965881f,0.97570213003852857003f,
+-0.22209362097320348162f,0.97502534506699412020f,-0.22508391135979266551f,
+0.97433938278557585821f,-0.22807208317088567551f,0.97364424965081197705f,
+-0.23105810828067113727f,0.97293995220556017678f,-0.23404195858354331916f,
+0.97222649707893638027f,-0.23702360599436722577f,0.97150389098625178352f,
+-0.24000302244874138768f,0.97077214072895035013f,-0.24298017990326387094f,
+0.97003125319454397424f,-0.24595505033579448395f,0.96928123535654853171f,
+-0.24892760574572012078f,0.96852209427441737777f,-0.25189781815421680156f,
+0.96775383709347551076f,-0.25486565960451451618f,0.96697647104485207059f,
+-0.25783110216215882060f,0.96619000344541261516f,-0.26079411791527545850f,
+0.96539444169768939830f,-0.26375467897483140245f,0.96458979328981275803f,
+-0.26671275747489830987f,0.96377606579543984022f,-0.26966832557291509076f,
+0.96295326687368387741f,-0.27262135544994886560f,0.96212140426904158019f,
+-0.27557181931095814376f,0.96128048581132063966f,-0.27851968938505294870f,
+0.96043051941556589757f,-0.28146493792575794091f,0.95957151308198451733f,
+-0.28440753721127171039f,0.95870347489587159906f,-0.28734745954472945551f,
+0.95782641302753290802f,-0.29028467725446216452f,0.95694033573220893540f,
+-0.29321916269425857271f,0.95604525134999651659f,-0.29615088824362384434f,
+0.95514116830577067141f,-0.29907982630804036406f,0.95422809510910566733f,
+-0.30200594931922808417f,0.95330604035419386211f,-0.30492922973540226295f,
+0.95237501271976587880f,-0.30784964004153486661f,0.95143502096900833820f,
+-0.31076715274961136393f,0.95048607394948181337f,-0.31368174039889140658f,
+0.94952818059303667475f,-0.31659337555616573479f,0.94856134991573037851f,
+-0.31950203081601563637f,0.94758559101774120226f,-0.32240767880106985244f,
+0.94660091308328353499f,-0.32531029216226287071f,0.94560732538052139073f,
+-0.32820984357909255280f,0.94460483726148025685f,-0.33110630575987631818f,
+0.94359345816196038559f,-0.33399965144200938205f,0.94257319760144686605f,
+-0.33688985339221994009f,0.94154406518302080631f,-0.33977688440682685123f,
+0.94050607059326829518f,-0.34266071731199426731f,0.93945922360218991898f,
+-0.34554132496398903829f,0.93840353406310816897f,-0.34841868024943439819f,
+0.93733901191257495977f,-0.35129275608556703725f,0.93626566717027825959f,
+-0.35416352542049039931f,0.93518350993894761025f,-0.35703096123342992207f,
+0.93409255040425898109f,-0.35989503653498816638f,0.93299279883473884567f,
+-0.36275572436739711435f,0.93188426558166814750f,-0.36561299780477385379f,
+0.93076696107898371224f,-0.36846682995337221023f,0.92964089584318132520f,
+-0.37131719395183748755f,0.92850608047321558924f,-0.37416406297145787807f,
+0.92736252565040111495f,-0.37700741021641820394f,0.92621024213831137928f,
+-0.37984720892405099413f,0.92504924078267769527f,-0.38268343236508972627f,
+0.92387953251128673848f,-0.38551605384391890441f,0.92270112833387851747f,
+-0.38834504669882619066f,0.92151403934204201285f,-0.39117038430225387069f,
+0.92031827670911059425f,-0.39399204006104798781f,0.91911385169005777040f,
+-0.39680998741671030805f,0.91790077562139049672f,-0.39962419984564667708f,
+0.91667905992104270485f,-0.40243465085941843018f,0.91544871608826783316f,
+-0.40524131400498974998f,0.91420975570353069095f,-0.40804416286497863231f,
+0.91296219042839821256f,-0.41084317105790379987f,0.91170603200542987832f,
+-0.41363831223843450235f,0.91044129225806724737f,-0.41642956009763698599f,
+0.90916798309052249127f,-0.41921688836322407168f,0.90788611648766615048f,
+-0.42200027079979968159f,0.90659570451491533483f,-0.42477968120910869487f,
+0.90529675931811881551f,-0.42755509343028186287f,0.90398929312344344922f,
+-0.43032648134008272267f,0.90267331823725871498f,-0.43309381885315190175f,
+0.90134884704602202810f,-0.43585707992225536378f,0.90001589201616027935f,
+-0.43861623853852738097f,0.89867446569395392775f,-0.44137126873171672603f,
+0.89732458070541831763f,-0.44412214457042914484f,0.89596624975618521791f,
+-0.44686884016237399253f,0.89459948563138280697f,-0.44961132965460670619f,
+0.89322430119551521344f,-0.45234958723377088896f,0.89184070939234272313f,
+-0.45508358712634372489f,0.89044872324475798919f,-0.45781330359887700832f,
+0.88904835585466468473f,-0.46053871095824006066f,0.88763962040285393496f,
+-0.46325978355186014923f,0.88622253014888063838f,-0.46597649576796601467f,
+0.88479709843093790056f,-0.46868882203582767909f,0.88336333866573168994f,
+-0.47139673682599769755f,0.88192126434835504956f,-0.47410021465054991152f,
+0.88047088905216086552f,-0.47679923006332192159f,0.87901222642863352519f,
+-0.47949375766015311928f,0.87754529020726124156f,-0.48218377207912271887f,
+0.87607009419540660122f,-0.48486924800079100883f,0.87458665227817622423f,
+-0.48755016014843571837f,0.87309497841829020182f,-0.49022648328829121489f,
+0.87159508665595097909f,-0.49289819222978398239f,0.87008699110871146054f,
+-0.49556526182577237405f,0.86857070597134100609f,-0.49822766697278159098f,
+0.86704624551569275948f,-0.50088538261124082585f,0.86551362409056908920f,
+-0.50353838372571746440f,0.86397285612158680745f,-0.50618664534515511733f,
+0.86242395611104061270f,-0.50883014254310710012f,0.86086693863776719837f,
+-0.51146885043797041259f,0.85930181835700847337f,-0.51410274419322155026f,
+0.85772861000027211809f,-0.51673179901764965116f,0.85614732837519458286f,
+-0.51935599016558964269f,0.85455798836540053376f,-0.52197529293715427823f,
+0.85296060493036374162f,-0.52458968267846872724f,0.85135519310526519554f,
+-0.52719913478190105760f,0.84974176800085265970f,-0.52980362468629471628f,
+0.84812034480329723252f,-0.53240312787719790144f,0.84649093877405212627f,
+-0.53499761988709704230f,0.84485356524970722791f,-0.53758707629564561614f,
+0.84320823964184532517f,-0.54017147272989285423f,0.84155497743689844370f,
+-0.54275078486451577842f,0.83989379419599952126f,-0.54532498842204624179f,
+0.83822470555483818977f,-0.54789405917310018967f,0.83654772722351200542f,
+-0.55045797293660470029f,0.83486287498638012128f,-0.55301670558002735678f,
+0.83317016470191329613f,-0.55557023301960195560f,0.83146961230254534669f,
+-0.55811853122055610221f,0.82976123379452304540f,-0.56066157619733592021f,
+0.82804504525775579626f,-0.56319934401383386913f,0.82632106284566364529f,
+-0.56573181078361323149f,0.82458930278502517996f,-0.56825895267013148970f,
+0.82284978137582631685f,-0.57078074588696714464f,0.82110251499110475937f,
+-0.57329716669804198226f,0.81934752007679712005f,-0.57580819141784533866f,
+0.81758481315158371139f,-0.57831379641165547856f,0.81581441080673378075f,
+-0.58081395809576441547f,0.81403632970594852480f,-0.58330865293769840196f,
+0.81225058658520388200f,-0.58579785745643886408f,0.81045719825259476821f,
+-0.58828154822264522306f,0.80865618158817509364f,-0.59075970185887405339f,
+0.80684755354379944503f,-0.59323229503979990618f,0.80503133114296354655f,
+-0.59569930449243335691f,0.80320753148064494287f,-0.59816070699634216190f,
+0.80137617172314024039f,-0.60061647938386875101f,0.79953726910790523519f,
+-0.60306659854034827539f,0.79769084094339104407f,-0.60551104140432543410f,
+0.79583690460888356633f,-0.60794978496777352106f,0.79397547755433728334f,
+-0.61038280627630958630f,0.79210657730021227785f,-0.61281008242940970820f,
+0.79023022143731003197f,-0.61523159058062670823f,0.78834642762660633863f,
+-0.61764730793780375784f,0.78645521359908587833f,-0.62005721176328920663f,
+0.78455659715557513056f,-0.62246127937414996723f,0.78265059616657572938f,
+-0.62485948814238623239f,0.78073722857209459924f,-0.62725181549514386070f,
+0.77881651238147608929f,-0.62963823891492709528f,0.77688846567323244230f,
+-0.63201873593980895105f,0.77495310659487393057f,-0.63439328416364537677f,
+0.77301045336273710440f,-0.63676186123628431002f,0.77106052426181370674f,
+-0.63912444486377573138f,0.76910333764557958780f,-0.64148101280858305095f,
+0.76713891193582040007f,-0.64383154288979127511f,0.76516726562245906962f,
+-0.64617601298331639459f,0.76318841726338115805f,-0.64851440102211244110f,
+0.76120238548426188974f,-0.65084668499638076433f,0.75920918897838807204f,
+-0.65317284295377653347f,0.75720884650648467851f,-0.65549285299961546070f,
+0.75520137689653643598f,-0.65780669329707852633f,0.75318679904361252042f,
+-0.66011434206742036768f,0.75116513190968658975f,-0.66241577759017189475f,
+0.74913639452345925918f,-0.66471097820334490436f,0.74710060598018013245f,
+-0.66699992230363736034f,0.74505778544146605835f,-0.66928258834663589827f,
+0.74300795213512182968f,-0.67155895484701844111f,0.74095112535495899486f,
+-0.67382900037875603783f,0.73888732446061522463f,-0.67609270357531581208f,
+0.73681656887737001504f,-0.67835004312986124653f,0.73473887809596372112f,
+-0.68060099779545302212f,0.73265427167241281570f,-0.68284554638524797010f,
+0.73056276922782759087f,-0.68508366777270024439f,0.72846439044822530740f,
+-0.68731534089175916336f,0.72635915508434589771f,-0.68954054473706694051f,
+0.72424708295146689174f,-0.69175925836415763648f,0.72212819392921545614f,
+-0.69397146088965377952f,0.72000250796138176579f,-0.69617713149146298601f,
+0.71787004505573170920f,-0.69837624940897280457f,0.71573082528381870571f,
+-0.70056879394324822474f,0.71358486878079363525f,-0.70275474445722507788f,
+0.71143219574521665560f,-0.70493408037590488124f,0.70927282643886557789f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.70927282643886546687f,
+0.70493408037590510329f,-0.71143219574521654458f,0.70275474445722518890f,
+-0.71358486878079352422f,0.70056879394324833576f,-0.71573082528381859468f,
+0.69837624940897291559f,-0.71787004505573159818f,0.69617713149146309703f,
+-0.72000250796138165477f,0.69397146088965389055f,-0.72212819392921523409f,
+0.69175925836415785852f,-0.72424708295146678072f,0.68954054473706705153f,
+-0.72635915508434578669f,0.68731534089175927438f,-0.72846439044822519637f,
+0.68508366777270035541f,-0.73056276922782747985f,0.68284554638524808112f,
+-0.73265427167241270467f,0.68060099779545324417f,-0.73473887809596349907f,
+0.67835004312986135755f,-0.73681656887736979300f,0.67609270357531592310f,
+-0.73888732446061511361f,0.67382900037875614885f,-0.74095112535495888384f,
+0.67155895484701855214f,-0.74300795213512171866f,0.66928258834663600929f,
+-0.74505778544146594733f,0.66699992230363758239f,-0.74710060598018002143f,
+0.66471097820334501538f,-0.74913639452345914815f,0.66241577759017200577f,
+-0.75116513190968636771f,0.66011434206742047870f,-0.75318679904361240940f,
+0.65780669329707874837f,-0.75520137689653643598f,0.65549285299961557172f,
+-0.75720884650648467851f,0.65317284295377664449f,-0.75920918897838796102f,
+0.65084668499638098638f,-0.76120238548426166769f,0.64851440102211255212f,
+-0.76318841726338115805f,0.64617601298331661663f,-0.76516726562245895860f,
+0.64383154288979138613f,-0.76713891193582040007f,0.64148101280858316198f,
+-0.76910333764557947678f,0.63912444486377584241f,-0.77106052426181359571f,
+0.63676186123628442104f,-0.77301045336273699338f,0.63439328416364548779f,
+-0.77495310659487381955f,0.63201873593980906207f,-0.77688846567323233128f,
+0.62963823891492720630f,-0.77881651238147597827f,0.62725181549514408275f,
+-0.78073722857209448822f,0.62485948814238634341f,-0.78265059616657561836f,
+0.62246127937415007825f,-0.78455659715557501954f,0.62005721176328942867f,
+-0.78645521359908576731f,0.61764730793780386886f,-0.78834642762660622761f,
+0.61523159058062693028f,-0.79023022143730992095f,0.61281008242940981923f,
+-0.79210657730021216683f,0.61038280627630969732f,-0.79397547755433717231f,
+0.60794978496777363208f,-0.79583690460888345530f,0.60551104140432565615f,
+-0.79769084094339093305f,0.60306659854034838641f,-0.79953726910790512417f,
+0.60061647938386886203f,-0.80137617172314024039f,0.59816070699634238395f,
+-0.80320753148064483184f,0.59569930449243346793f,-0.80503133114296343553f,
+0.59323229503980001720f,-0.80684755354379933401f,0.59075970185887416442f,
+-0.80865618158817498262f,0.58828154822264533408f,-0.81045719825259465718f,
+0.58579785745643897510f,-0.81225058658520377097f,0.58330865293769851299f,
+-0.81403632970594841378f,0.58081395809576452649f,-0.81581441080673378075f,
+0.57831379641165570060f,-0.81758481315158360037f,0.57580819141784544968f,
+-0.81934752007679700903f,0.57329716669804209328f,-0.82110251499110464835f,
+0.57078074588696725566f,-0.82284978137582620583f,0.56825895267013171175f,
+-0.82458930278502506894f,0.56573181078361345353f,-0.82632106284566353427f,
+0.56319934401383409117f,-0.82804504525775568524f,0.56066157619733614226f,
+-0.82976123379452293438f,0.55811853122055632426f,-0.83146961230254534669f,
+0.55557023301960217765f,-0.83317016470191318511f,0.55301670558002746780f,
+-0.83486287498638001026f,0.55045797293660492233f,-0.83654772722351189440f,
+0.54789405917310041172f,-0.83822470555483807875f,0.54532498842204635281f,
+-0.83989379419599952126f,0.54275078486451588944f,-0.84155497743689833268f,
+0.54017147272989296525f,-0.84320823964184532517f,0.53758707629564572716f,
+-0.84485356524970711689f,0.53499761988709715332f,-0.84649093877405201525f,
+0.53240312787719801246f,-0.84812034480329712149f,0.52980362468629482731f,
+-0.84974176800085254868f,0.52719913478190127964f,-0.85135519310526519554f,
+0.52458968267846894928f,-0.85296060493036363059f,0.52197529293715438925f,
+-0.85455798836540042274f,0.51935599016558975372f,-0.85614732837519447184f,
+0.51673179901764976218f,-0.85772861000027200706f,0.51410274419322177231f,
+-0.85930181835700836235f,0.51146885043797052361f,-0.86086693863776719837f,
+0.50883014254310732216f,-0.86242395611104050168f,0.50618664534515522835f,
+-0.86397285612158669643f,0.50353838372571757542f,-0.86551362409056897818f,
+0.50088538261124093687f,-0.86704624551569264845f,0.49822766697278175752f,
+-0.86857070597134089507f,0.49556526182577254058f,-0.87008699110871134952f,
+0.49289819222978414892f,-0.87159508665595086807f,0.49022648328829138142f,
+-0.87309497841829009079f,0.48755016014843588490f,-0.87458665227817611321f,
+0.48486924800079111986f,-0.87607009419540649020f,0.48218377207912288540f,
+-0.87754529020726113053f,0.47949375766015328582f,-0.87901222642863352519f,
+0.47679923006332208812f,-0.88047088905216075450f,0.47410021465055007805f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.88336333866573168994f,
+0.46868882203582784562f,-0.88479709843093778954f,0.46597649576796618121f,
+-0.88622253014888052736f,0.46325978355186031576f,-0.88763962040285382393f,
+0.46053871095824022719f,-0.88904835585466457371f,0.45781330359887717485f,
+-0.89044872324475787817f,0.45508358712634389143f,-0.89184070939234261211f,
+0.45234958723377105549f,-0.89322430119551521344f,0.44961132965460687272f,
+-0.89459948563138269595f,0.44686884016237415906f,-0.89596624975618510689f,
+0.44412214457042931137f,-0.89732458070541820661f,0.44137126873171689256f,
+-0.89867446569395392775f,0.43861623853852754751f,-0.90001589201616016833f,
+0.43585707992225553031f,-0.90134884704602191707f,0.43309381885315206828f,
+-0.90267331823725871498f,0.43032648134008288920f,-0.90398929312344333820f,
+0.42755509343028202940f,-0.90529675931811870448f,0.42477968120910886141f,
+-0.90659570451491533483f,0.42200027079979984812f,-0.90788611648766603945f,
+0.41921688836322423821f,-0.90916798309052238025f,0.41642956009763715253f,
+-0.91044129225806713634f,0.41363831223843466889f,-0.91170603200542976730f,
+0.41084317105790413294f,-0.91296219042839821256f,0.40804416286497857680f,
+-0.91420975570353069095f,0.40524131400498991651f,-0.91544871608826772214f,
+0.40243465085941859671f,-0.91667905992104259383f,0.39962419984564706565f,
+-0.91790077562139049672f,0.39680998741671025254f,-0.91911385169005777040f,
+0.39399204006104815434f,-0.92031827670911048322f,0.39117038430225403722f,
+-0.92151403934204179080f,0.38834504669882657923f,-0.92270112833387862850f,
+0.38551605384391884890f,-0.92387953251128673848f,0.38268343236508989280f,
+-0.92504924078267747323f,0.37984720892405138271f,-0.92621024213831137928f,
+0.37700741021641814843f,-0.92736252565040111495f,0.37416406297145804460f,
+-0.92850608047321547822f,0.37131719395183770960f,-0.92964089584318121418f,
+0.36846682995337259880f,-0.93076696107898371224f,0.36561299780477379828f,
+-0.93188426558166803648f,0.36275572436739728088f,-0.93299279883473884567f,
+0.35989503653498833291f,-0.93409255040425875904f,0.35703096123343031065f,
+-0.93518350993894761025f,0.35416352542049039931f,-0.93626566717027825959f,
+0.35129275608556720378f,-0.93733901191257484875f,0.34841868024943478677f,
+-0.93840353406310816897f,0.34554132496398898278f,-0.93945922360218991898f,
+0.34266071731199443384f,-0.94050607059326829518f,0.33977688440682701776f,
+-0.94154406518302069529f,0.33688985339222032867f,-0.94257319760144686605f,
+0.33399965144200938205f,-0.94359345816196038559f,0.33110630575987648472f,
+-0.94460483726148014583f,0.32820984357909271933f,-0.94560732538052116869f,
+0.32531029216226325929f,-0.94660091308328353499f,0.32240767880106985244f,
+-0.94758559101774109124f,0.31950203081601580291f,-0.94856134991573026749f,
+0.31659337555616606785f,-0.94952818059303667475f,0.31368174039889140658f,
+-0.95048607394948170235f,0.31076715274961153046f,-0.95143502096900833820f,
+0.30784964004153503314f,-0.95237501271976576778f,0.30492922973540265152f,
+-0.95330604035419386211f,0.30200594931922802866f,-0.95422809510910555630f,
+0.29907982630804053059f,-0.95514116830577067141f,0.29615088824362401088f,
+-0.95604525134999629454f,0.29321916269425896129f,-0.95694033573220882438f,
+0.29028467725446238656f,-0.95782641302753290802f,0.28734745954472962204f,
+-0.95870347489587148804f,0.28440753721127209896f,-0.95957151308198451733f,
+0.28146493792575788540f,-0.96043051941556578655f,0.27851968938505317075f,
+-0.96128048581132063966f,0.27557181931095831029f,-0.96212140426904146917f,
+0.27262135544994925418f,-0.96295326687368387741f,0.26966832557291509076f,
+-0.96377606579543984022f,0.26671275747489847641f,-0.96458979328981264700f,
+0.26375467897483156898f,-0.96539444169768928727f,0.26079411791527584707f,
+-0.96619000344541250413f,0.25783110216215898713f,-0.96697647104485207059f,
+0.25486565960451468271f,-0.96775383709347539973f,0.25189781815421719013f,
+-0.96852209427441737777f,0.24892760574572009302f,-0.96928123535654842069f,
+0.24595505033579465048f,-0.97003125319454397424f,0.24298017990326406523f,
+-0.97077214072895023911f,0.24000302244874177626f,-0.97150389098625178352f,
+0.23702360599436717026f,-0.97222649707893626925f,0.23404195858354351345f,
+-0.97293995220556006576f,0.23105810828067133156f,-0.97364424965081186603f,
+0.22807208317088606409f,-0.97433938278557585821f,0.22508391135979283204f,
+-0.97502534506699412020f,0.22209362097320364815f,-0.97570213003852845901f,
+0.21910124015687004739f,-0.97636973133002114000f,0.21610679707621943679f,
+-0.97702814265775439484f,0.21311031991609141745f,-0.97767735782450992943f,
+0.21011183688046980444f,-0.97831737071962754371f,0.20711137619221883788f,
+-0.97894817531906219710f,0.20410896609281684033f,-0.97956976568544051887f,
+0.20110463484209201157f,-0.98018213596811731847f,0.19809841071795381007f,
+-0.98078528040323043058f,0.19509032201612860891f,-0.98137919331375456089f,
+0.19208039704989246510f,-0.98196386910955524296f,0.18906866414980635915f,
+-0.98253930228744124076f,0.18605515166344691047f,-0.98310548743121628501f,
+0.18303988795514089527f,-0.98366241921173025453f,0.18002290140569957022f,
+-0.98421009238692902521f,0.17700422041214894375f,-0.98474850180190420801f,
+0.17398387338746412745f,-0.98527764238894122162f,0.17096188876030121717f,
+-0.98579750916756736512f,0.16793829497473128365f,-0.98630809724459855836f,
+0.16491312048997014417f,-0.98680940181418552726f,0.16188639378011174252f,
+-0.98730141815785843473f,0.15885814333386147346f,-0.98778414164457217783f,
+0.15582839765426537149f,-0.98825756773074946437f,0.15279718525844368515f,
+-0.98872169196032377858f,0.14976453467732145364f,-0.98917650996478101444f,
+0.14673047445536180344f,-0.98962201746320077600f,0.14369503315029463764f,
+-0.99005821026229701154f,0.14065823933284954395f,-0.99048508425645709341f,
+0.13762012158648603832f,-0.99090263542778000971f,0.13458070850712627875f,
+-0.99131085984611544415f,0.13154002870288333815f,-0.99170975366909952520f,
+0.12849811079379308554f,-0.99209931314219179654f,0.12545498341154626143f,
+-0.99247953459870996706f,0.12241067519921634832f,-0.99285041445986510489f,
+0.11936521481099163222f,-0.99321194923479450001f,0.11631863091190471071f,
+-0.99356413552059530403f,0.11327095217756441570f,-0.99390697000235606051f,
+0.11022220729388323979f,-0.99424044945318790223f,0.10717242495680916192f,
+-0.99456457073425541537f,0.10412163387205457254f,-0.99487933079480561638f,
+0.10106986275482793269f,-0.99518472667219681771f,0.09801714032956082567f,
+-0.99548075549192693856f,0.09496349532963890838f,-0.99576741446765981713f,
+0.09190895649713275162f,-0.99604470090125196702f,0.08885355258252475297f,
+-0.99631261218277800129f,0.08579731234444015753f,-0.99657114579055483539f,
+0.08274026454937563613f,-0.99682029929116566791f,0.07968243797143019502f,
+-0.99706007033948296225f,0.07662386139203168633f,-0.99729045667869020697f,
+0.07356456359966773162f,-0.99751145614030345410f,0.07050457338961385600f,
+-0.99772306664419163624f,0.06744391956366417584f,-0.99792528619859599548f,
+0.06438263092985770097f,-0.99811811290014917919f,0.06132073630220848809f,
+-0.99830154493389289261f,0.05825826450043579408f,-0.99847558057329477421f,
+0.05519524434969009380f,-0.99864021818026516009f,0.05213170468028359428f,
+-0.99879545620517240501f,0.04906767432741796636f,-0.99894129318685687124f,
+0.04600318213091470626f,-0.99907772775264536147f,0.04293825693494102147f,
+-0.99920475861836388631f,0.03987292758774012985f,-0.99932238458834954375f,
+0.03680722294135883171f,-0.99943060455546173237f,0.03374117185137770480f,
+-0.99952941750109314256f,0.03067480317663686534f,-0.99961882249517863830f,
+0.02760814577896565994f,-0.99969881869620424997f,0.02454122852291232629f,
+-0.99976940535121527898f,0.02147408027546966747f,-0.99983058179582340319f,
+0.01840672990580510121f,-0.99988234745421256111f,0.01533920628498806026f,
+-0.99992470183914450299f,0.01227153828572000692f,-0.99995764455196389786f,
+0.00920375478206002066f,-0.99998117528260110909f,0.00613588464915479880f,
+-0.99999529380957619118f,0.00306795676296597701f,1.00000000000000000000f,
+0.00000000000000000000f,0.99992470183914450299f,0.01227153828571992539f,
+0.99969881869620424997f,0.02454122852291228812f,0.99932238458834954375f,
+0.03680722294135883171f,0.99879545620517240501f,0.04906767432741801493f,
+0.99811811290014917919f,0.06132073630220857829f,0.99729045667869020697f,
+0.07356456359966742631f,0.99631261218277800129f,0.08579731234443989385f,
+0.99518472667219692873f,0.09801714032956060363f,0.99390697000235606051f,
+0.11022220729388305938f,0.99247953459870996706f,0.12241067519921619566f,
+0.99090263542778000971f,0.13458070850712616773f,0.98917650996478101444f,
+0.14673047445536174793f,0.98730141815785843473f,0.15885814333386144570f,
+0.98527764238894122162f,0.17096188876030121717f,0.98310548743121628501f,
+0.18303988795514095078f,0.98078528040323043058f,0.19509032201612824808f,
+0.97831737071962765473f,0.20711137619221856032f,0.97570213003852857003f,
+0.21910124015686979759f,0.97293995220556017678f,0.23105810828067110951f,
+0.97003125319454397424f,0.24298017990326387094f,0.96697647104485207059f,
+0.25486565960451457169f,0.96377606579543984022f,0.26671275747489836538f,
+0.96043051941556578655f,0.27851968938505305973f,0.95694033573220882438f,
+0.29028467725446233105f,0.95330604035419386211f,0.30200594931922808417f,
+0.94952818059303667475f,0.31368174039889151761f,0.94560732538052127971f,
+0.32531029216226292622f,0.94154406518302080631f,0.33688985339222005111f,
+0.93733901191257495977f,0.34841868024943456472f,0.93299279883473895669f,
+0.35989503653498811087f,0.92850608047321558924f,0.37131719395183754306f,
+0.92387953251128673848f,0.38268343236508978178f,0.91911385169005777040f,
+0.39399204006104809883f,0.91420975570353069095f,0.40524131400498986100f,
+0.90916798309052238025f,0.41642956009763715253f,0.90398929312344333820f,
+0.42755509343028208491f,0.89867446569395381673f,0.43861623853852765853f,
+0.89322430119551532446f,0.44961132965460653965f,0.88763962040285393496f,
+0.46053871095824000514f,0.88192126434835504956f,0.47139673682599764204f,
+0.87607009419540660122f,0.48218377207912271887f,0.87008699110871146054f,
+0.49289819222978403790f,0.86397285612158669643f,0.50353838372571757542f,
+0.85772861000027211809f,0.51410274419322166128f,0.85135519310526519554f,
+0.52458968267846894928f,0.84485356524970711689f,0.53499761988709715332f,
+0.83822470555483807875f,0.54532498842204646383f,0.83146961230254523567f,
+0.55557023301960217765f,0.82458930278502529099f,0.56573181078361312046f,
+0.81758481315158371139f,0.57580819141784533866f,0.81045719825259476821f,
+0.58579785745643886408f,0.80320753148064494287f,0.59569930449243335691f,
+0.79583690460888356633f,0.60551104140432554512f,0.78834642762660622761f,
+0.61523159058062681925f,0.78073722857209448822f,0.62485948814238634341f,
+0.77301045336273699338f,0.63439328416364548779f,0.76516726562245895860f,
+0.64383154288979138613f,0.75720884650648456748f,0.65317284295377675551f,
+0.74913639452345937020f,0.66241577759017178373f,0.74095112535495921691f,
+0.67155895484701833009f,0.73265427167241281570f,0.68060099779545302212f,
+0.72424708295146700276f,0.68954054473706682948f,0.71573082528381870571f,
+0.69837624940897280457f,0.70710678118654757274f,0.70710678118654757274f,
+0.69837624940897291559f,0.71573082528381859468f,0.68954054473706694051f,
+0.72424708295146689174f,0.68060099779545302212f,0.73265427167241281570f,
+0.67155895484701833009f,0.74095112535495910588f,0.66241577759017178373f,
+0.74913639452345925918f,0.65317284295377686654f,0.75720884650648456748f,
+0.64383154288979149715f,0.76516726562245895860f,0.63439328416364548779f,
+0.77301045336273688235f,0.62485948814238645443f,0.78073722857209448822f,
+0.61523159058062681925f,0.78834642762660622761f,0.60551104140432554512f,
+0.79583690460888345530f,0.59569930449243346793f,0.80320753148064483184f,
+0.58579785745643886408f,0.81045719825259476821f,0.57580819141784533866f,
+0.81758481315158371139f,0.56573181078361323149f,0.82458930278502529099f,
+0.55557023301960228867f,0.83146961230254523567f,0.54532498842204646383f,
+0.83822470555483796772f,0.53499761988709726435f,0.84485356524970700587f,
+0.52458968267846883826f,0.85135519310526519554f,0.51410274419322166128f,
+0.85772861000027211809f,0.50353838372571757542f,0.86397285612158669643f,
+0.49289819222978409341f,0.87008699110871134952f,0.48218377207912282989f,
+0.87607009419540660122f,0.47139673682599780857f,0.88192126434835493853f,
+0.46053871095824000514f,0.88763962040285393496f,0.44961132965460659516f,
+0.89322430119551532446f,0.43861623853852771404f,0.89867446569395381673f,
+0.42755509343028219593f,0.90398929312344333820f,0.41642956009763731906f,
+0.90916798309052226923f,0.40524131400498986100f,0.91420975570353069095f,
+0.39399204006104809883f,0.91911385169005777040f,0.38268343236508983729f,
+0.92387953251128673848f,0.37131719395183759858f,0.92850608047321558924f,
+0.35989503653498827740f,0.93299279883473884567f,0.34841868024943450921f,
+0.93733901191257495977f,0.33688985339222005111f,0.94154406518302080631f,
+0.32531029216226298173f,0.94560732538052127971f,0.31368174039889157312f,
+0.94952818059303667475f,0.30200594931922819519f,0.95330604035419375109f,
+0.29028467725446233105f,0.95694033573220893540f,0.27851968938505305973f,
+0.96043051941556578655f,0.26671275747489842090f,0.96377606579543984022f,
+0.25486565960451462720f,0.96697647104485207059f,0.24298017990326398197f,
+0.97003125319454397424f,0.23105810828067127605f,0.97293995220556006576f,
+0.21910124015686976984f,0.97570213003852857003f,0.20711137619221856032f,
+0.97831737071962765473f,0.19509032201612833135f,0.98078528040323043058f,
+0.18303988795514106180f,0.98310548743121628501f,0.17096188876030135595f,
+0.98527764238894122162f,0.15885814333386139019f,0.98730141815785843473f,
+0.14673047445536174793f,0.98917650996478101444f,0.13458070850712622324f,
+0.99090263542778000971f,0.12241067519921627893f,0.99247953459870996706f,
+0.11022220729388318428f,0.99390697000235606051f,0.09801714032956077016f,
+0.99518472667219681771f,0.08579731234443987997f,0.99631261218277800129f,
+0.07356456359966745406f,0.99729045667869020697f,0.06132073630220864768f,
+0.99811811290014917919f,0.04906767432741812596f,0.99879545620517240501f,
+0.03680722294135899131f,0.99932238458834954375f,0.02454122852291226384f,
+0.99969881869620424997f,0.01227153828571994447f,0.99992470183914450299f,
+0.00000000000000006123f,1.00000000000000000000f,-0.01227153828571982304f,
+0.99992470183914450299f,-0.02454122852291214241f,0.99969881869620424997f,
+-0.03680722294135886641f,0.99932238458834954375f,-0.04906767432741800800f,
+0.99879545620517240501f,-0.06132073630220852972f,0.99811811290014917919f,
+-0.07356456359966732916f,0.99729045667869020697f,-0.08579731234443975507f,
+0.99631261218277800129f,-0.09801714032956064526f,0.99518472667219692873f,
+-0.11022220729388305938f,0.99390697000235606051f,-0.12241067519921615403f,
+0.99247953459870996706f,-0.13458070850712611222f,0.99090263542778000971f,
+-0.14673047445536163691f,0.98917650996478101444f,-0.15885814333386127917f,
+0.98730141815785843473f,-0.17096188876030124493f,0.98527764238894122162f,
+-0.18303988795514092303f,0.98310548743121628501f,-0.19509032201612819257f,
+0.98078528040323043058f,-0.20711137619221844930f,0.97831737071962765473f,
+-0.21910124015686965881f,0.97570213003852857003f,-0.23105810828067113727f,
+0.97293995220556017678f,-0.24298017990326387094f,0.97003125319454397424f,
+-0.25486565960451451618f,0.96697647104485207059f,-0.26671275747489830987f,
+0.96377606579543984022f,-0.27851968938505294870f,0.96043051941556589757f,
+-0.29028467725446216452f,0.95694033573220893540f,-0.30200594931922808417f,
+0.95330604035419386211f,-0.31368174039889140658f,0.94952818059303667475f,
+-0.32531029216226287071f,0.94560732538052139073f,-0.33688985339221994009f,
+0.94154406518302080631f,-0.34841868024943439819f,0.93733901191257495977f,
+-0.35989503653498816638f,0.93299279883473884567f,-0.37131719395183748755f,
+0.92850608047321558924f,-0.38268343236508972627f,0.92387953251128673848f,
+-0.39399204006104798781f,0.91911385169005777040f,-0.40524131400498974998f,
+0.91420975570353069095f,-0.41642956009763698599f,0.90916798309052249127f,
+-0.42755509343028186287f,0.90398929312344344922f,-0.43861623853852738097f,
+0.89867446569395392775f,-0.44961132965460670619f,0.89322430119551521344f,
+-0.46053871095824006066f,0.88763962040285393496f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.48218377207912271887f,0.87607009419540660122f,
+-0.49289819222978398239f,0.87008699110871146054f,-0.50353838372571746440f,
+0.86397285612158680745f,-0.51410274419322155026f,0.85772861000027211809f,
+-0.52458968267846872724f,0.85135519310526519554f,-0.53499761988709704230f,
+0.84485356524970722791f,-0.54532498842204624179f,0.83822470555483818977f,
+-0.55557023301960195560f,0.83146961230254534669f,-0.56573181078361323149f,
+0.82458930278502517996f,-0.57580819141784533866f,0.81758481315158371139f,
+-0.58579785745643886408f,0.81045719825259476821f,-0.59569930449243335691f,
+0.80320753148064494287f,-0.60551104140432543410f,0.79583690460888356633f,
+-0.61523159058062670823f,0.78834642762660633863f,-0.62485948814238623239f,
+0.78073722857209459924f,-0.63439328416364537677f,0.77301045336273710440f,
+-0.64383154288979127511f,0.76516726562245906962f,-0.65317284295377653347f,
+0.75720884650648467851f,-0.66241577759017189475f,0.74913639452345925918f,
+-0.67155895484701844111f,0.74095112535495899486f,-0.68060099779545302212f,
+0.73265427167241281570f,-0.68954054473706694051f,0.72424708295146689174f,
+-0.69837624940897280457f,0.71573082528381870571f,-0.70710678118654746172f,
+0.70710678118654757274f,-0.71573082528381859468f,0.69837624940897291559f,
+-0.72424708295146678072f,0.68954054473706705153f,-0.73265427167241270467f,
+0.68060099779545324417f,-0.74095112535495888384f,0.67155895484701855214f,
+-0.74913639452345914815f,0.66241577759017200577f,-0.75720884650648467851f,
+0.65317284295377664449f,-0.76516726562245895860f,0.64383154288979138613f,
+-0.77301045336273699338f,0.63439328416364548779f,-0.78073722857209448822f,
+0.62485948814238634341f,-0.78834642762660622761f,0.61523159058062693028f,
+-0.79583690460888345530f,0.60551104140432565615f,-0.80320753148064483184f,
+0.59569930449243346793f,-0.81045719825259465718f,0.58579785745643897510f,
+-0.81758481315158360037f,0.57580819141784544968f,-0.82458930278502506894f,
+0.56573181078361345353f,-0.83146961230254534669f,0.55557023301960217765f,
+-0.83822470555483807875f,0.54532498842204635281f,-0.84485356524970711689f,
+0.53499761988709715332f,-0.85135519310526519554f,0.52458968267846894928f,
+-0.85772861000027200706f,0.51410274419322177231f,-0.86397285612158669643f,
+0.50353838372571757542f,-0.87008699110871134952f,0.49289819222978414892f,
+-0.87607009419540649020f,0.48218377207912288540f,-0.88192126434835493853f,
+0.47139673682599780857f,-0.88763962040285382393f,0.46053871095824022719f,
+-0.89322430119551521344f,0.44961132965460687272f,-0.89867446569395392775f,
+0.43861623853852754751f,-0.90398929312344333820f,0.42755509343028202940f,
+-0.90916798309052238025f,0.41642956009763715253f,-0.91420975570353069095f,
+0.40524131400498991651f,-0.91911385169005777040f,0.39399204006104815434f,
+-0.92387953251128673848f,0.38268343236508989280f,-0.92850608047321547822f,
+0.37131719395183770960f,-0.93299279883473884567f,0.35989503653498833291f,
+-0.93733901191257484875f,0.34841868024943478677f,-0.94154406518302069529f,
+0.33688985339222032867f,-0.94560732538052116869f,0.32531029216226325929f,
+-0.94952818059303667475f,0.31368174039889140658f,-0.95330604035419386211f,
+0.30200594931922802866f,-0.95694033573220882438f,0.29028467725446238656f,
+-0.96043051941556578655f,0.27851968938505317075f,-0.96377606579543984022f,
+0.26671275747489847641f,-0.96697647104485207059f,0.25486565960451468271f,
+-0.97003125319454397424f,0.24298017990326406523f,-0.97293995220556006576f,
+0.23105810828067133156f,-0.97570213003852845901f,0.21910124015687004739f,
+-0.97831737071962754371f,0.20711137619221883788f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.98310548743121628501f,0.18303988795514089527f,
+-0.98527764238894122162f,0.17096188876030121717f,-0.98730141815785843473f,
+0.15885814333386147346f,-0.98917650996478101444f,0.14673047445536180344f,
+-0.99090263542778000971f,0.13458070850712627875f,-0.99247953459870996706f,
+0.12241067519921634832f,-0.99390697000235606051f,0.11022220729388323979f,
+-0.99518472667219681771f,0.09801714032956082567f,-0.99631261218277800129f,
+0.08579731234444015753f,-0.99729045667869020697f,0.07356456359966773162f,
+-0.99811811290014917919f,0.06132073630220848809f,-0.99879545620517240501f,
+0.04906767432741796636f,-0.99932238458834954375f,0.03680722294135883171f,
+-0.99969881869620424997f,0.02454122852291232629f,-0.99992470183914450299f,
+0.01227153828572000692f,1.00000000000000000000f,0.00000000000000000000f,
+0.99879545620517240501f,0.04906767432741801493f,0.99518472667219692873f,
+0.09801714032956060363f,0.98917650996478101444f,0.14673047445536174793f,
+0.98078528040323043058f,0.19509032201612824808f,0.97003125319454397424f,
+0.24298017990326387094f,0.95694033573220882438f,0.29028467725446233105f,
+0.94154406518302080631f,0.33688985339222005111f,0.92387953251128673848f,
+0.38268343236508978178f,0.90398929312344333820f,0.42755509343028208491f,
+0.88192126434835504956f,0.47139673682599764204f,0.85772861000027211809f,
+0.51410274419322166128f,0.83146961230254523567f,0.55557023301960217765f,
+0.80320753148064494287f,0.59569930449243335691f,0.77301045336273699338f,
+0.63439328416364548779f,0.74095112535495921691f,0.67155895484701833009f,
+0.70710678118654757274f,0.70710678118654757274f,0.67155895484701833009f,
+0.74095112535495910588f,0.63439328416364548779f,0.77301045336273688235f,
+0.59569930449243346793f,0.80320753148064483184f,0.55557023301960228867f,
+0.83146961230254523567f,0.51410274419322166128f,0.85772861000027211809f,
+0.47139673682599780857f,0.88192126434835493853f,0.42755509343028219593f,
+0.90398929312344333820f,0.38268343236508983729f,0.92387953251128673848f,
+0.33688985339222005111f,0.94154406518302080631f,0.29028467725446233105f,
+0.95694033573220893540f,0.24298017990326398197f,0.97003125319454397424f,
+0.19509032201612833135f,0.98078528040323043058f,0.14673047445536174793f,
+0.98917650996478101444f,0.09801714032956077016f,0.99518472667219681771f,
+0.04906767432741812596f,0.99879545620517240501f,0.00000000000000006123f,
+1.00000000000000000000f,-0.04906767432741800800f,0.99879545620517240501f,
+-0.09801714032956064526f,0.99518472667219692873f,-0.14673047445536163691f,
+0.98917650996478101444f,-0.19509032201612819257f,0.98078528040323043058f,
+-0.24298017990326387094f,0.97003125319454397424f,-0.29028467725446216452f,
+0.95694033573220893540f,-0.33688985339221994009f,0.94154406518302080631f,
+-0.38268343236508972627f,0.92387953251128673848f,-0.42755509343028186287f,
+0.90398929312344344922f,-0.47139673682599769755f,0.88192126434835504956f,
+-0.51410274419322155026f,0.85772861000027211809f,-0.55557023301960195560f,
+0.83146961230254534669f,-0.59569930449243335691f,0.80320753148064494287f,
+-0.63439328416364537677f,0.77301045336273710440f,-0.67155895484701844111f,
+0.74095112535495899486f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.74095112535495888384f,0.67155895484701855214f,-0.77301045336273699338f,
+0.63439328416364548779f,-0.80320753148064483184f,0.59569930449243346793f,
+-0.83146961230254534669f,0.55557023301960217765f,-0.85772861000027200706f,
+0.51410274419322177231f,-0.88192126434835493853f,0.47139673682599780857f,
+-0.90398929312344333820f,0.42755509343028202940f,-0.92387953251128673848f,
+0.38268343236508989280f,-0.94154406518302069529f,0.33688985339222032867f,
+-0.95694033573220882438f,0.29028467725446238656f,-0.97003125319454397424f,
+0.24298017990326406523f,-0.98078528040323043058f,0.19509032201612860891f,
+-0.98917650996478101444f,0.14673047445536180344f,-0.99518472667219681771f,
+0.09801714032956082567f,-0.99879545620517240501f,0.04906767432741796636f,
+1.00000000000000000000f,0.00000000000000000000f,0.98078528040323043058f,
+0.19509032201612824808f,0.92387953251128673848f,0.38268343236508978178f,
+0.83146961230254523567f,0.55557023301960217765f,0.70710678118654757274f,
+0.70710678118654757274f,0.55557023301960228867f,0.83146961230254523567f,
+0.38268343236508983729f,0.92387953251128673848f,0.19509032201612833135f,
+0.98078528040323043058f,0.00000000000000006123f,1.00000000000000000000f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.38268343236508972627f,
+0.92387953251128673848f,-0.55557023301960195560f,0.83146961230254534669f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.83146961230254534669f,
+0.55557023301960217765f,-0.92387953251128673848f,0.38268343236508989280f,
+-0.98078528040323043058f,0.19509032201612860891f,1.00000000000000000000f,
+0.00000000000000000000f,0.70710678118654757274f,0.70710678118654757274f,
+0.00000000000000006123f,1.00000000000000000000f,-0.70710678118654746172f,
+0.70710678118654757274f,};
+
+float32_t rearranged_twiddle_stride3_4096[2728]={
+1.00000000000000000000f,0.00000000000000000000f,0.99998941108192840321f,
+0.00460192612044857050f,0.99995764455196389786f,0.00920375478205981944f,
+0.99990470108285289808f,0.01380538852806039059f,0.99983058179582340319f,
+0.01840672990580482019f,0.99973528826056168306f,0.02300768146883936868f,
+0.99961882249517863830f,0.02760814577896573974f,0.99948118696616694567f,
+0.03220802540830458582f,0.99932238458834954375f,0.03680722294135883171f,
+0.99914241872481690532f,0.04140564097707673946f,0.99894129318685687124f,
+0.04600318213091462299f,0.99871901223387293811f,0.05059974903689928166f,
+0.99847558057329477421f,0.05519524434968993420f,0.99821100336047818846f,
+0.05978957074663986820f,0.99792528619859599548f,0.06438263092985746505f,
+0.99761843513851955478f,0.06897432762826674613f,0.99729045667869020697f,
+0.07356456359966742631f,0.99694135776498216117f,0.07815324163279423197f,
+0.99657114579055483539f,0.08274026454937569164f,0.99617982859569698117f,
+0.08732553520619205922f,0.99576741446765981713f,0.09190895649713272386f,
+0.99533391214048227980f,0.09649043135525259274f,0.99487933079480561638f,
+0.10106986275482782167f,0.99440368005767909576f,0.10564715371341061589f,
+0.99390697000235606051f,0.11022220729388305938f,0.99338921114808065305f,
+0.11479492660651008373f,0.99285041445986510489f,0.11936521481099135467f,
+0.99229059134825736699f,0.12393297511851215920f,0.99170975366909952520f,
+0.12849811079379316880f,0.99110791372327688986f,0.13306052515713906459f,
+0.99048508425645709341f,0.13762012158648603832f,0.98984127845882052821f,
+0.14217680351944803063f,0.98917650996478101444f,0.14673047445536174793f,
+0.98849079285269658701f,0.15128103795733022219f,0.98778414164457217783f,
+0.15582839765426523271f,0.98705657130575097380f,0.16037245724292828464f,
+0.98630809724459866938f,0.16491312048996989437f,0.98553873531217606185f,
+0.16945029123396795900f,0.98474850180190420801f,0.17398387338746382214f,
+0.98393741344921892278f,0.17851377093899750692f,0.98310548743121628501f,
+0.18303988795514095078f,0.98225274136628937249f,0.18756212858252960252f,
+0.98137919331375456089f,0.19208039704989243734f,0.98048486177346938497f,
+0.19659459767008022335f,0.97956976568544051887f,0.20110463484209190055f,
+0.97863392442942320759f,0.20561041305309923910f,0.97767735782450992943f,
+0.21011183688046961016f,0.97670008612871184184f,0.21460881099378675829f,
+0.97570213003852857003f,0.21910124015686979759f,0.97468351068851066810f,
+0.22358902922978998729f,0.97364424965081197705f,0.22807208317088573102f,
+0.97258436893473221296f,0.23255030703877524467f,0.97150389098625178352f,
+0.23702360599436719801f,0.97040283868755550234f,0.24149188530286933019f,
+0.96928123535654853171f,0.24595505033579459497f,0.96813910474636244441f,
+0.25041300657296522436f,0.96697647104485207059f,0.25486565960451457169f,
+0.96579335887408368500f,0.25931291513288623474f,0.96458979328981275803f,
+0.26375467897483134694f,0.96336579978095404631f,0.26819085706340317632f,
+0.96212140426904158019f,0.27262135544994897662f,0.96085663310767965850f,
+0.27704608030609989555f,0.95957151308198451733f,0.28146493792575794091f,
+0.95826607140801767226f,0.28587783472708061527f,0.95694033573220882438f,
+0.29028467725446233105f,0.95559433413077110586f,0.29468537218051432669f,
+0.95422809510910566733f,0.29907982630804047508f,0.95284164760119871573f,
+0.30346794657201131562f,0.95143502096900833820f,0.30784964004153486661f,
+0.95000824500184299914f,0.31222481392182488413f,0.94856134991573026749f,
+0.31659337555616584581f,0.94709436635277721717f,0.32095523242787521445f,
+0.94560732538052127971f,0.32531029216226292622f,0.94410025849127265918f,
+0.32965846252858749255f,0.94257319760144686605f,0.33399965144200938205f,
+0.94102617505088925753f,0.33833376696554112728f,0.93945922360218991898f,
+0.34266071731199437833f,0.93787237643998988545f,0.34698041084592368133f,
+0.93626566717027825959f,0.35129275608556709276f,0.93463912981968078064f,
+0.35559766170478385172f,0.93299279883473895669f,0.35989503653498811087f,
+0.93132670908118042608f,0.36418478956707989180f,0.92964089584318121418f,
+0.36846682995337232125f,0.92793539482261788720f,0.37274106700951575855f,
+0.92621024213831137928f,0.37700741021641825945f,0.92446547432526260391f,
+0.38126576922216237620f,0.92270112833387862850f,0.38551605384391884890f,
+0.92091724152918941204f,0.38975817406985641123f,0.91911385169005777040f,
+0.39399204006104809883f,0.91729099700837790632f,0.39821756215337356100f,
+0.91544871608826783316f,0.40243465085941843018f,0.91358704794525080750f,
+0.40664321687036902864f,0.91170603200542987832f,0.41084317105790391089f,
+0.90980570810465222209f,0.41503442447608163146f,0.90788611648766626150f,
+0.41921688836322390515f,0.90594729780726845902f,0.42339047414379604728f,
+0.90398929312344333820f,0.42755509343028208491f,0.90201214390249317976f,
+0.43171065802505725895f,0.90001589201616016833f,0.43585707992225547480f,
+0.89800057974073987932f,0.43999427130963325583f,0.89596624975618521791f,
+0.44412214457042920035f,0.89391294514520325265f,0.44824061228521988598f,
+0.89184070939234272313f,0.45234958723377088896f,0.88974958638307277692f,
+0.45644898239688391772f,0.88763962040285393496f,0.46053871095824000514f,
+0.88551085613619995307f,0.46461868630623781584f,0.88336333866573157891f,
+0.46868882203582790114f,0.88119711347122209322f,0.47274903195034279069f,
+0.87901222642863352519f,0.47679923006332208812f,0.87680872380914565145f,
+0.48083933060033395845f,0.87458665227817611321f,0.48486924800079106435f,
+0.87234605889439154058f,0.48888889691976317176f,0.87008699110871146054f,
+0.49289819222978403790f,0.86780949676330332299f,0.49689704902265446895f,
+0.86551362409056908920f,0.50088538261124071482f,0.86319942171212415971f,
+0.50486310853126759035f,0.86086693863776730939f,0.50883014254310698909f,
+0.85851622426444273994f,0.51278640063356295542f,0.85614732837519447184f,
+0.51673179901764987321f,0.85376030113811141042f,0.52066625414036715735f,
+0.85135519310526519554f,0.52458968267846894928f,0.84893205521163961347f,
+0.52850200154222848337f,0.84649093877405212627f,0.53240312787719790144f,
+0.84403189549006640835f,0.53629297906596318235f,0.84155497743689844370f,
+0.54017147272989285423f,0.83906023707031274217f,0.54403852673088382019f,
+0.83654772722351200542f,0.54789405917310018967f,0.83401750110601813315f,
+0.55173798840470733573f,0.83146961230254523567f,0.55557023301960217765f,
+0.82890411477186487499f,0.55939071185913613604f,0.82632106284566353427f,
+0.56319934401383409117f,0.82372051122739142759f,0.56699604882510867832f,
+0.82110251499110464835f,0.57078074588696725566f,0.81846712958029865792f,
+0.57455335504771576360f,0.81581441080673378075f,0.57831379641165558958f,
+0.81314441484925359394f,0.58206199034077543697f,0.81045719825259476821f,
+0.58579785745643886408f,0.80775281792619035848f,0.58952131864106394055f,
+0.80503133114296365758f,0.59323229503979979516f,0.80229279553811572168f,
+0.59693070806219639124f,0.79953726910790501314f,0.60061647938386897305f,
+0.79676481020841882774f,0.60428953094815596181f,0.79397547755433717231f,
+0.60794978496777363208f,0.79116933021769020318f,0.61159716392646190641f,
+0.78834642762660622761f,0.61523159058062681925f,0.78550682956405393220f,
+0.61885298796097631957f,0.78265059616657572938f,0.62246127937414996723f,
+0.77977778792301455368f,0.62605638840434352232f,0.77688846567323244230f,
+0.62963823891492698426f,0.77398269060682289844f,0.63320675505005719064f,
+0.77106052426181381776f,0.63676186123628419899f,0.76812202852336541881f,
+0.64030348218415167327f,0.76516726562245895860f,0.64383154288979138613f,
+0.76219629813457900891f,0.64734596863651205911f,0.75920918897838796102f,
+0.65084668499638087535f,0.75620600141439453523f,0.65433361783180044036f,
+0.75318679904361252042f,0.65780669329707863735f,0.75015164580621507273f,
+0.66126583783999226540f,0.74710060598018013245f,0.66471097820334479334f,
+0.74403374417992929057f,0.66814204142651845153f,0.74095112535495921691f,
+0.67155895484701833009f,0.73785281478846598269f,0.67496164610201192513f,
+0.73473887809596349907f,0.67835004312986146857f,0.73160938122389262972f,
+0.68172407417164970767f,0.72846439044822519637f,0.68508366777270035541f,
+0.72530397237306076796f,0.68842875278409043638f,0.72212819392921534511f,
+0.69175925836415774750f,0.71893712237280449351f,0.69507511398000088043f,
+0.71573082528381870571f,0.69837624940897280457f,0.71250937056469243469f,
+0.70166259474016845488f,0.70927282643886568891f,0.70493408037590488124f,
+0.70602126144933974317f,0.70819063703319540259f,0.70275474445722529993f,
+0.71143219574521643356f,0.69947334464028376733f,0.71465868786276909308f,
+0.69617713149146298601f,0.71787004505573170920f,0.69286617481742474034f,
+0.72106619931450810501f,0.68954054473706694051f,0.72424708295146689174f,
+0.68620031168003858824f,0.72741262860237576593f,0.68284554638524808112f,
+0.73056276922782759087f,0.67947631989936496666f,0.73369743811466026084f,
+0.67609270357531603413f,0.73681656887736979300f,0.67269476907077296879f,
+0.73992009545951609173f,0.66928258834663600929f,0.74300795213512171866f,
+0.66585623366550972246f,0.74608007351006366825f,0.66241577759017178373f,
+0.74913639452345925918f,0.65896129298203731661f,0.75217685044904269986f,
+0.65549285299961546070f,0.75520137689653654700f,0.65201053109695950027f,
+0.75820990981301528144f,0.64851440102211255212f,0.76120238548426177871f,
+0.64500453681554403840f,0.76417874053611667406f,0.64148101280858316198f,
+0.76713891193582040007f,0.63794390362184416610f,0.77008283699334789674f,
+0.63439328416364548779f,0.77301045336273688235f,0.63082922962842458148f,
+0.77592169904340757558f,0.62725181549514419377f,0.77881651238147586724f,
+0.62366111752569464155f,0.78169483207105938671f,0.62005721176328920663f,
+0.78455659715557524159f,0.61644017453085364622f,0.78740174702903131809f,
+0.61281008242940970820f,0.79023022143731003197f,0.60916701233645320634f,
+0.79304196047944364167f,0.60551104140432554512f,0.79583690460888345530f,
+0.60184224705858002658f,0.79861499463476082195f,0.59816070699634238395f,
+0.80137617172314012937f,0.59446649918466454299f,0.80412037739826569549f,
+0.59075970185887427544f,0.80684755354379922299f,0.58704039352091808013f,
+0.80955764240405125864f,0.58330865293769829094f,0.81225058658520388200f,
+0.57956455913940574387f,0.81492632905652662156f,0.57580819141784533866f,
+0.81758481315158371139f,0.57203962932475704850f,0.82022598256943468620f,
+0.56825895267013148970f,0.82284978137582631685f,0.56446624152051949608f,
+0.82545615400437744036f,0.56066157619733603124f,0.82804504525775579626f,
+0.55684503727516010407f,0.83061640030884620334f,0.55301670558002757883f,
+0.83317016470191318511f,0.54917666218771976627f,0.83570628435375260423f,
+0.54532498842204646383f,0.83822470555483796772f,0.54146176585312355556f,
+0.84072537497045796151f,0.53758707629564550512f,0.84320823964184543620f,
+0.53370100180715296379f,0.84567324698729906540f,0.52980362468629482731f,
+0.84812034480329712149f,0.52589502747108474168f,0.85054948126560336874f,
+0.52197529293715438925f,0.85296060493036363059f,0.51804450409599933636f,
+0.85535366473519602870f,0.51410274419322166128f,0.85772861000027211809f,
+0.51015009670676669806f,0.86008539042939025077f,0.50618664534515533937f,
+0.86242395611104050168f,0.50221247404571089934f,0.86474425751946237817f,
+0.49822766697278186854f,0.86704624551569264845f,0.49423230851595972846f,
+0.86932987134860673084f,0.49022648328829110387f,0.87159508665595109012f,
+0.48621027612448652899f,0.87384184346536675214f,0.48218377207912282989f,
+0.87607009419540660122f,0.47814705642484311987f,0.87827979165654146421f,
+0.47410021465055002254f,0.88047088905216075450f,0.47004333245959561971f,
+0.88264333997956279099f,0.46597649576796612569f,0.88479709843093778954f,
+0.46189979070246284243f,0.88693211879434208367f,0.45781330359887728587f,
+0.88904835585466457371f,0.45371712100016392544f,0.89114576479458318392f,
+0.44961132965460659516f,0.89322430119551532446f,0.44549601651398174074f,
+0.89528392103855758410f,0.44137126873171661501f,0.89732458070541831763f,
+0.43723717366104419835f,0.89934623697934146236f,0.43309381885315201277f,
+0.90134884704602202810f,0.42894129205532954829f,0.90333236849451181705f,
+0.42477968120910880589f,0.90529675931811881551f,0.42060907444840250902f,
+0.90724197791529592738f,0.41642956009763731906f,0.90916798309052226923f,
+0.41224122666988299857f,0.91107473405517624965f,0.40804416286497874333f,
+0.91296219042839810154f,0.40383845756765412993f,0.91483031223794608611f,
+0.39962419984564678810f,0.91667905992104270485f,0.39540147894781629834f,
+0.91850839432521225181f,0.39117038430225398171f,0.92031827670911048322f,
+0.38693100551438869283f,0.92210866874334507237f,0.38268343236508983729f,
+0.92387953251128673848f,0.37842775480876561511f,0.92563083050987271516f,
+0.37416406297145798909f,0.92736252565040111495f,0.36989244714893426691f,
+0.92907458125931574600f,0.36561299780477396482f,0.93076696107898371224f,
+0.36132580556845433906f,0.93243962926846235550f,0.35703096123343003310f,
+0.93409255040425887007f,0.35272855575521072646f,0.93572568948108036935f,
+0.34841868024943450921f,0.93733901191257495977f,0.34410142598993898044f,
+0.93893248353206448797f,0.33977688440682696225f,0.94050607059326829518f,
+0.33544514708453165852f,0.94205973977101731265f,0.33110630575987642921f,
+0.94359345816196038559f,0.32676045232013178898f,0.94510719328526060501f,
+0.32240767880107001897f,0.94660091308328353499f,0.31804807738501505998f,
+0.94807458592227622507f,0.31368174039889157312f,0.94952818059303667475f,
+0.30930876031226878231f,0.95096166631157508231f,0.30492922973540242948f,
+0.95237501271976587880f,0.30054324141727339903f,0.95376818988599032512f,
+0.29615088824362395536f,0.95514116830577067141f,0.29175226323498937298f,
+0.95649391890239499059f,0.28734745954472956653f,0.95782641302753290802f,
+0.28293657045705539188f,0.95913862246184189431f,0.27851968938505305973f,
+0.96043051941556578655f,0.27409690986870632878f,0.96170207652912254037f,
+0.26966832557291520178f,0.96295326687368387741f,0.26523403028551190141f,
+0.96418406395174571788f,0.26079411791527556952f,0.96539444169768939830f,
+0.25634868248994291395f,0.96658437447833311928f,0.25189781815421691258f,
+0.96775383709347551076f,0.24744161916777343557f,0.96890280477642887202f,
+0.24298017990326398197f,0.97003125319454397424f,0.23851359484431849944f,
+0.97113915844972509284f,0.23404195858354345794f,0.97222649707893626925f,
+0.22956536582051886852f,0.97329324605469824672f,0.22508391135979277653f,
+0.97433938278557585821f,0.22059769010887364526f,0.97536488511665686563f,
+0.21610679707621960333f,0.97636973133002114000f,0.21161132736922760866f,
+0.97735390014519996082f,0.20711137619221856032f,0.97831737071962765473f,
+0.20260703884442110567f,0.97926012264908202098f,0.19809841071795372680f,
+0.98018213596811731847f,0.19358558729580374602f,0.98108339115048659451f,
+0.18906866414980627589f,0.98196386910955524296f,0.18454773693861964423f,
+0.98282355119870523641f,0.18002290140569951471f,0.98366241921173025453f,
+0.17549425337727139751f,0.98448045538322093151f,0.17096188876030135595f,
+0.98527764238894122162f,0.16642590354046421508f,0.98605396334619543897f,
+0.16188639378011188130f,0.98680940181418541624f,0.15734345561623827581f,
+0.98754394179435922574f,0.15279718525844340760f,0.98825756773074946437f,
+0.14824767898689619749f,0.98895026451030298986f,0.14369503315029458212f,
+0.98962201746320077600f,0.13913934416382628401f,0.99027281236316910817f,
+0.13458070850712622324f,0.99090263542778000971f,0.13001922272223334631f,
+0.99151147331874389668f,0.12545498341154620592f,0.99209931314219179654f,
+0.12088808723577722237f,0.99266614244894801899f,0.11631863091190487725f,
+0.99321194923479450001f,0.11174671121112665639f,0.99373672194072459884f,
+0.10717242495680887049f,0.99424044945318790223f,0.10259586902243628126f,
+0.99472312110432570265f,0.09801714032956077016f,0.99518472667219681771f,
+0.09343633584574791151f,0.99562525638099430569f,0.08885355258252468358f,
+0.99604470090125196702f,0.08426888759332412659f,0.99644305135004263008f,
+0.07968243797143012563f,0.99682029929116566791f,0.07509430084792129145f,
+0.99717643673532618820f,0.07050457338961400866f,0.99751145614030345410f,
+0.06591335279700392957f,0.99782535041111164453f,0.06132073630220864768f,
+0.99811811290014917919f,0.05672682116690778292f,0.99838973740734016094f,
+0.05213170468028331672f,0.99864021818026527111f,0.04753548415695926094f,
+0.99886954991428356099f,0.04293825693494095902f,0.99907772775264536147f,
+0.03834012037355279123f,0.99926474728659442359f,0.03374117185137764235f,
+0.99943060455546173237f,0.02914150876419373953f,0.99957529604674921764f,
+0.02454122852291226384f,0.99969881869620424997f,0.01994042855151459750f,
+0.99980116988788425569f,0.01533920628498821985f,0.99988234745421256111f,
+0.01073765916726457208f,0.99994234967602391162f,0.00613588464915451517f,
+0.99998117528260110909f,0.00153398018628476615f,0.99999882345170187925f,
+-0.00306795676296601561f,0.99999529380957619118f,-0.00766982873953095477f,
+0.99997058643097413988f,-0.01227153828571982304f,0.99992470183914450299f,
+-0.01687298794728165144f,0.99985764100582386060f,-0.02147408027546948359f,
+0.99976940535121527898f,-0.02607471782910391472f,0.99965999674395922270f,
+-0.03067480317663645942f,0.99952941750109314256f,-0.03527423889821382219f,
+0.99937767038800284780f,-0.03987292758773972740f,0.99920475861836388631f,
+-0.04447077185493861912f,0.99901068585407337697f,-0.04906767432741800800f,
+0.99879545620517240501f,-0.05366353765273055437f,0.99855907422975931365f,
+-0.05825826450043560673f,0.99830154493389289261f,-0.06285175756416130910f,
+0.99802287377148624081f,-0.06744391956366398155f,0.99772306664419163624f,
+-0.07203465324688929083f,0.99740212990127530279f,-0.07662386139203150592f,
+0.99706007033948296225f,-0.08121144680959226092f,0.99669689520289606044f,
+-0.08579731234443975507f,0.99631261218277800129f,-0.09038136087786488582f,
+0.99590722941741172125f,-0.09496349532963895002f,0.99548075549192693856f,
+-0.09954361866006931903f,0.99503319943811863180f,-0.10412163387205460030f,
+0.99456457073425541537f,-0.10869744401313856386f,0.99407487930487947736f,
+-0.11327095217756423529f,0.99356413552059530403f,-0.11784206150832489401f,
+0.99303235019785141002f,-0.12241067519921615403f,0.99247953459870996706f,
+-0.12697669649688586579f,0.99190570043060932726f,-0.13154002870288314386f,
+0.99131085984611544415f,-0.13610057517570606223f,0.99069502544266463406f,
+-0.14065823933284912761f,0.99005821026229712256f,-0.14521292465284740825f,
+0.98940042779138037687f,-0.14976453467732150915f,0.98872169196032377858f,
+-0.15431297301302013270f,0.98802201714328352633f,-0.15885814333386127917f,
+0.98730141815785843473f,-0.16339994938297311422f,0.98655991026477551920f,
+-0.16793829497473108936f,0.98579750916756747614f,-0.17247308399679592283f,
+0.98501423101223983814f,-0.17700422041214874946f,0.98421009238692902521f,
+-0.18153160826112502146f,0.98338511032155118130f,-0.18605515166344649414f,
+0.98253930228744124076f,-0.19057475482025265645f,0.98167268619698311305f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.19960175762113094300f,
+0.97987710369951763756f,-0.20410896609281689584f,0.97894817531906219710f,
+-0.20861185197826331850f,0.97799851493455713936f,-0.21311031991609125091f,
+0.97702814265775439484f,-0.21760427463848355800f,0.97603707903903913490f,
+-0.22209362097320348162f,0.97502534506699412020f,-0.22657826384560997290f,
+0.97399296216795583359f,-0.23105810828067113727f,0.97293995220556017678f,
+-0.23553305940497534787f,0.97186633748027939639f,-0.24000302244874138768f,
+0.97077214072895035013f,-0.24446790274782409513f,0.96965738512429244800f,
+-0.24892760574572012078f,0.96852209427441737777f,-0.25338203699557015902f,
+0.96736629222232850545f,-0.25783110216215882060f,0.96619000344541261516f,
+-0.26227470702391347812f,0.96499325285492043580f,-0.26671275747489830987f,
+0.96377606579543984022f,-0.27114515952680795507f,0.96253846804435916340f,
+-0.27557181931095814376f,0.96128048581132063966f,-0.27999264308027327353f,
+0.96000214573766584625f,-0.28440753721127171039f,0.95870347489587159906f,
+-0.28881640820604936870f,0.95738450078897596729f,-0.29321916269425857271f,
+0.95604525134999651659f,-0.29761570743508619641f,0.95468575494133833814f,
+-0.30200594931922808417f,0.95330604035419386211f,-0.30638979537086097338f,
+0.95190613680793234597f,-0.31076715274961136393f,0.95048607394948181337f,
+-0.31513792875252233383f,0.94904588185270055689f,-0.31950203081601563637f,
+0.94758559101774120226f,-0.32385936651785285356f,0.94610523237040344835f,
+-0.32820984357909255280f,0.94460483726148025685f,-0.33255336986604405736f,
+0.94308443746609349478f,-0.33688985339221994009f,0.94154406518302080631f,
+-0.34121920232028229991f,0.93998375303401404679f,-0.34554132496398903829f,
+0.93840353406310816897f,-0.34985612979013491763f,0.93680344173592156043f,
+-0.35416352542049039931f,0.93518350993894761025f,-0.35846342063373642928f,
+0.93354377297883628373f,-0.36275572436739711435f,0.93188426558166814750f,
+-0.36704034571976712487f,0.93020502289221906889f,-0.37131719395183748755f,
+0.92850608047321558924f,-0.37558617848921721505f,0.92678747430458174872f,
+-0.37984720892405099413f,0.92504924078267769527f,-0.38410019501693493105f,
+0.92329141671952774661f,-0.38834504669882619066f,0.92151403934204201285f,
+-0.39258167407295141427f,0.91971714629122736095f,-0.39680998741671030805f,
+0.91790077562139049672f,-0.40102989718357567872f,0.91606496579933172075f,
+-0.40524131400498974998f,0.91420975570353069095f,-0.40944414869225753684f,
+0.91233518462332285903f,-0.41363831223843450235f,0.91044129225806724737f,
+-0.41782371582021227141f,0.90852811871630612117f,-0.42200027079979968159f,
+0.90659570451491533483f,-0.42616788872679967071f,0.90464409057824612947f,
+-0.43032648134008272267f,0.90267331823725871498f,-0.43447596056965581690f,
+0.90068342922864685907f,-0.43861623853852738097f,0.89867446569395392775f,
+-0.44274722756456980077f,0.89664647017868026602f,-0.44686884016237399253f,
+0.89459948563138280697f,-0.45098098904510369733f,0.89253355540276468894f,
+-0.45508358712634372489f,0.89044872324475798919f,-0.45917654752194403400f,
+0.88834503330959635470f,-0.46325978355186014923f,0.88622253014888063838f,
+-0.46733320874198841510f,0.88408125871263498752f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.47545028174715592284f,0.87974259280004740713f,
+-0.47949375766015311928f,0.87754529020726124156f,-0.48352707893291846375f,
+0.87532940310411100349f,-0.48755016014843571837f,0.87309497841829020182f,
+-0.49156291610654972990f,0.87084206347007897531f,-0.49556526182577237405f,
+0.86857070597134100609f,-0.49955711254508178287f,0.86628095402451310569f,
+-0.50353838372571746440f,0.86397285612158680745f,-0.50750899105297075931f,
+0.86164646114308141023f,-0.51146885043797041259f,0.85930181835700847337f,
+-0.51541787801946303826f,0.85693897741782865118f,-0.51935599016558964269f,
+0.85455798836540053376f,-0.52328310347565654137f,0.85215890162391971785f,
+-0.52719913478190105760f,0.84974176800085265970f,-0.53110400115125477871f,
+0.84730663868585853749f,-0.53499761988709704230f,0.84485356524970722791f,
+-0.53887990853100831146f,0.84238259964318595863f,-0.54275078486451577842f,
+0.83989379419599952126f,-0.54661016691083474939f,0.83738720161566193578f,
+-0.55045797293660470029f,0.83486287498638012128f,-0.55429412145362011444f,
+0.83232086776792968408f,-0.55811853122055610221f,0.82976123379452304540f,
+-0.56193112124468946877f,0.82718402727366902027f,-0.56573181078361323149f,
+0.82458930278502517996f,-0.56952051934694725155f,0.82197711527924144370f,
+-0.57329716669804198226f,0.81934752007679712005f,-0.57706167285567933067f,
+0.81670057286682795628f,-0.58081395809576441547f,0.81403632970594852480f,
+-0.58455394295301521534f,0.81135484701706384048f,-0.58828154822264522306f,
+0.80865618158817509364f,-0.59199669496204088137f,0.80594039057117639047f,
+-0.59569930449243335691f,0.80320753148064494287f,-0.59938929840056454079f,
+0.80045766219262282082f,-0.60306659854034827539f,0.79769084094339104407f,
+-0.60673112703452458661f,0.79490712632823690154f,-0.61038280627630958630f,
+0.79210657730021227785f,-0.61402155893103815831f,0.78928925316888587371f,
+-0.61764730793780375784f,0.78645521359908587833f,-0.62125997651108744169f,
+0.78360451860963831194f,-0.62485948814238623239f,0.78073722857209459924f,
+-0.62844576660183260053f,0.77785340420945314754f,-0.63201873593980895105f,
+0.77495310659487393057f,-0.63557832048855611440f,0.77203639715038452351f,
+-0.63912444486377573138f,0.76910333764557958780f,-0.64265703396622686494f,
+0.76615399019631280630f,-0.64617601298331639459f,0.76318841726338115805f,
+-0.64968130739068330470f,0.76020668165120230952f,-0.65317284295377653347f,
+0.75720884650648467851f,-0.65665054572942882505f,0.75419497531688928227f,
+-0.66011434206742036768f,0.75116513190968658975f,-0.66356415861203965623f,
+0.74811938045040371481f,-0.66699992230363736034f,0.74505778544146605835f,
+-0.67042156038017308717f,0.74198041172083106787f,-0.67382900037875603783f,
+0.73888732446061522463f,-0.67722217013718044587f,0.73577858916571359238f,
+-0.68060099779545302212f,0.73265427167241281570f,-0.68396541179731551452f,
+0.72951443814699701296f,-0.68731534089175916336f,0.72635915508434589771f,
+-0.69065071413453438254f,0.72318848930652757101f,-0.69397146088965377952f,
+0.72000250796138176579f,-0.69727751083088640449f,0.71680127852109964959f,
+-0.70056879394324822474f,0.71358486878079363525f,-0.70384524052448482756f,
+0.71035334685706241764f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.71035334685706230662f,0.70384524052448504960f,-0.71358486878079352422f,
+0.70056879394324833576f,-0.71680127852109953857f,0.69727751083088651551f,
+-0.72000250796138165477f,0.69397146088965389055f,-0.72318848930652745999f,
+0.69065071413453460458f,-0.72635915508434578669f,0.68731534089175927438f,
+-0.72951443814699679091f,0.68396541179731562554f,-0.73265427167241270467f,
+0.68060099779545324417f,-0.73577858916571337033f,0.67722217013718055689f,
+-0.73888732446061511361f,0.67382900037875614885f,-0.74198041172083095685f,
+0.67042156038017319819f,-0.74505778544146594733f,0.66699992230363758239f,
+-0.74811938045040360379f,0.66356415861203976725f,-0.75116513190968636771f,
+0.66011434206742047870f,-0.75419497531688917125f,0.65665054572942904709f,
+-0.75720884650648467851f,0.65317284295377664449f,-0.76020668165120219850f,
+0.64968130739068341573f,-0.76318841726338115805f,0.64617601298331661663f,
+-0.76615399019631280630f,0.64265703396622708699f,-0.76910333764557947678f,
+0.63912444486377584241f,-0.77203639715038441249f,0.63557832048855622542f,
+-0.77495310659487381955f,0.63201873593980906207f,-0.77785340420945303652f,
+0.62844576660183271155f,-0.78073722857209448822f,0.62485948814238634341f,
+-0.78360451860963820092f,0.62125997651108755271f,-0.78645521359908576731f,
+0.61764730793780386886f,-0.78928925316888576269f,0.61402155893103838036f,
+-0.79210657730021216683f,0.61038280627630969732f,-0.79490712632823679051f,
+0.60673112703452469763f,-0.79769084094339093305f,0.60306659854034838641f,
+-0.80045766219262259877f,0.59938929840056465181f,-0.80320753148064483184f,
+0.59569930449243346793f,-0.80594039057117627944f,0.59199669496204099239f,
+-0.80865618158817498262f,0.58828154822264533408f,-0.81135484701706372945f,
+0.58455394295301532637f,-0.81403632970594841378f,0.58081395809576452649f,
+-0.81670057286682784525f,0.57706167285567944170f,-0.81934752007679700903f,
+0.57329716669804209328f,-0.82197711527924133268f,0.56952051934694747359f,
+-0.82458930278502506894f,0.56573181078361345353f,-0.82718402727366902027f,
+0.56193112124468957980f,-0.82976123379452293438f,0.55811853122055632426f,
+-0.83232086776792957306f,0.55429412145362022546f,-0.83486287498638001026f,
+0.55045797293660492233f,-0.83738720161566182476f,0.54661016691083497143f,
+-0.83989379419599952126f,0.54275078486451588944f,-0.84238259964318584760f,
+0.53887990853100842248f,-0.84485356524970711689f,0.53499761988709715332f,
+-0.84730663868585842646f,0.53110400115125488973f,-0.84974176800085254868f,
+0.52719913478190127964f,-0.85215890162391960683f,0.52328310347565665239f,
+-0.85455798836540042274f,0.51935599016558975372f,-0.85693897741782865118f,
+0.51541787801946314929f,-0.85930181835700836235f,0.51146885043797052361f,
+-0.86164646114308129921f,0.50750899105297098135f,-0.86397285612158669643f,
+0.50353838372571757542f,-0.86628095402451299467f,0.49955711254508189390f,
+-0.86857070597134089507f,0.49556526182577254058f,-0.87084206347007886428f,
+0.49156291610654989643f,-0.87309497841829009079f,0.48755016014843588490f,
+-0.87532940310411089246f,0.48352707893291863028f,-0.87754529020726113053f,
+0.47949375766015328582f,-0.87974259280004729611f,0.47545028174715608937f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.88408125871263487650f,
+0.46733320874198858164f,-0.88622253014888052736f,0.46325978355186031576f,
+-0.88834503330959624368f,0.45917654752194420054f,-0.89044872324475787817f,
+0.45508358712634389143f,-0.89253355540276457791f,0.45098098904510386387f,
+-0.89459948563138269595f,0.44686884016237415906f,-0.89664647017868026602f,
+0.44274722756456996731f,-0.89867446569395392775f,0.43861623853852754751f,
+-0.90068342922864674804f,0.43447596056965598343f,-0.90267331823725871498f,
+0.43032648134008288920f,-0.90464409057824612947f,0.42616788872679983724f,
+-0.90659570451491533483f,0.42200027079979984812f,-0.90852811871630612117f,
+0.41782371582021243794f,-0.91044129225806713634f,0.41363831223843466889f,
+-0.91233518462332274801f,0.40944414869225770337f,-0.91420975570353069095f,
+0.40524131400498991651f,-0.91606496579933172075f,0.40102989718357562321f,
+-0.91790077562139049672f,0.39680998741671025254f,-0.91971714629122736095f,
+0.39258167407295141427f,-0.92151403934204179080f,0.38834504669882657923f,
+-0.92329141671952752457f,0.38410019501693531963f,-0.92504924078267747323f,
+0.37984720892405138271f,-0.92678747430458174872f,0.37558617848921738158f,
+-0.92850608047321547822f,0.37131719395183770960f,-0.93020502289221906889f,
+0.36704034571976729140f,-0.93188426558166803648f,0.36275572436739728088f,
+-0.93354377297883617270f,0.35846342063373659581f,-0.93518350993894761025f,
+0.35416352542049039931f,-0.93680344173592167145f,0.34985612979013486212f,
+-0.93840353406310816897f,0.34554132496398898278f,-0.93998375303401382475f,
+0.34121920232028268849f,-0.94154406518302069529f,0.33688985339222032867f,
+-0.94308443746609338376f,0.33255336986604444593f,-0.94460483726148014583f,
+0.32820984357909271933f,-0.94610523237040333733f,0.32385936651785302010f,
+-0.94758559101774109124f,0.31950203081601580291f,-0.94904588185270055689f,
+0.31513792875252250036f,-0.95048607394948170235f,0.31076715274961153046f,
+-0.95190613680793234597f,0.30638979537086091787f,-0.95330604035419386211f,
+0.30200594931922802866f,-0.95468575494133833814f,0.29761570743508614090f,
+-0.95604525134999629454f,0.29321916269425896129f,-0.95738450078897585627f,
+0.28881640820604975728f,-0.95870347489587148804f,0.28440753721127209896f,
+-0.96000214573766584625f,0.27999264308027344006f,-0.96128048581132063966f,
+0.27557181931095831029f,-0.96253846804435916340f,0.27114515952680812161f,
+-0.96377606579543984022f,0.26671275747489847641f,-0.96499325285492032478f,
+0.26227470702391370017f,-0.96619000344541250413f,0.25783110216215898713f,
+-0.96736629222232850545f,0.25338203699557010351f,-0.96852209427441737777f,
+0.24892760574572009302f,-0.96965738512429233698f,0.24446790274782448371f,
+-0.97077214072895023911f,0.24000302244874177626f,-0.97186633748027928537f,
+0.23553305940497573645f,-0.97293995220556006576f,0.23105810828067133156f,
+-0.97399296216795583359f,0.22657826384561016719f,-0.97502534506699412020f,
+0.22209362097320364815f,-0.97603707903903902388f,0.21760427463848372454f,
+-0.97702814265775439484f,0.21311031991609141745f,-0.97799851493455713936f,
+0.20861185197826351279f,-0.97894817531906219710f,0.20410896609281684033f,
+-0.97987710369951763756f,0.19960175762113091524f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.98167268619698311305f,0.19057475482025307278f,
+-0.98253930228744124076f,0.18605515166344691047f,-0.98338511032155118130f,
+0.18153160826112521575f,-0.98421009238692902521f,0.17700422041214894375f,
+-0.98501423101223983814f,0.17247308399679611712f,-0.98579750916756736512f,
+0.16793829497473128365f,-0.98655991026477540817f,0.16339994938297328075f,
+-0.98730141815785843473f,0.15885814333386147346f,-0.98802201714328352633f,
+0.15431297301302007718f,-0.98872169196032377858f,0.14976453467732145364f,
+-0.98940042779138037687f,0.14521292465284735274f,-0.99005821026229701154f,
+0.14065823933284954395f,-0.99069502544266463406f,0.13610057517570647856f,
+-0.99131085984611544415f,0.13154002870288333815f,-0.99190570043060932726f,
+0.12697669649688606008f,-0.99247953459870996706f,0.12241067519921634832f,
+-0.99303235019785141002f,0.11784206150832508830f,-0.99356413552059530403f,
+0.11327095217756441570f,-0.99407487930487936634f,0.10869744401313874427f,
+-0.99456457073425541537f,0.10412163387205457254f,-0.99503319943811863180f,
+0.09954361866006927739f,-0.99548075549192693856f,0.09496349532963890838f,
+-0.99590722941741172125f,0.09038136087786528827f,-0.99631261218277800129f,
+0.08579731234444015753f,-0.99669689520289606044f,0.08121144680959266338f,
+-0.99706007033948296225f,0.07662386139203168633f,-0.99740212990127530279f,
+0.07203465324688947125f,-0.99772306664419163624f,0.06744391956366417584f,
+-0.99802287377148624081f,0.06285175756416148951f,-0.99830154493389289261f,
+0.05825826450043579408f,-0.99855907422975931365f,0.05366353765273051968f,
+-0.99879545620517240501f,0.04906767432741796636f,-0.99901068585407337697f,
+0.04447077185493858442f,-0.99920475861836388631f,0.03987292758774012985f,
+-0.99937767038800284780f,0.03527423889821423159f,-0.99952941750109314256f,
+0.03067480317663686534f,-0.99965999674395922270f,0.02607471782910409860f,
+-0.99976940535121527898f,0.02147408027546966747f,-0.99985764100582386060f,
+0.01687298794728183532f,-0.99992470183914450299f,0.01227153828572000692f,
+-0.99997058643097413988f,0.00766982873953113778f,-0.99999529380957619118f,
+0.00306795676296597701f,-0.99999882345170187925f,-0.00153398018628480431f,
+-0.99998117528260110909f,-0.00613588464915455420f,-0.99994234967602391162f,
+-0.01073765916726416615f,-0.99988234745421256111f,-0.01533920628498781566f,
+-0.99980116988788425569f,-0.01994042855151419158f,-0.99969881869620424997f,
+-0.02454122852291207996f,-0.99957529604674921764f,-0.02914150876419355565f,
+-0.99943060455546173237f,-0.03374117185137745500f,-0.99926474728659442359f,
+-0.03834012037355261082f,-0.99907772775264536147f,-0.04293825693494077861f,
+-0.99886954991428356099f,-0.04753548415695929563f,-0.99864021818026527111f,
+-0.05213170468028335142f,-0.99838973740734016094f,-0.05672682116690781762f,
+-0.99811811290014917919f,-0.06132073630220824523f,-0.99782535041111164453f,
+-0.06591335279700352712f,-0.99751145614030345410f,-0.07050457338961360620f,
+-0.99717643673532618820f,-0.07509430084792109716f,-0.99682029929116577893f,
+-0.07968243797142994522f,-0.99644305135004263008f,-0.08426888759332393231f,
+-0.99604470090125196702f,-0.08885355258252450317f,-0.99562525638099430569f,
+-0.09343633584574773110f,-0.99518472667219692873f,-0.09801714032956058975f,
+-0.99472312110432570265f,-0.10259586902243630901f,-0.99424044945318790223f,
+-0.10717242495680891212f,-0.99373672194072470987f,-0.11174671121112625394f,
+-0.99321194923479461103f,-0.11631863091190447479f,-0.99266614244894801899f,
+-0.12088808723577681992f,-0.99209931314219179654f,-0.12545498341154601163f,
+-0.99151147331874400770f,-0.13001922272223317978f,-0.99090263542778000971f,
+-0.13458070850712605671f,-0.99027281236316910817f,-0.13913934416382611747f,
+-0.98962201746320088702f,-0.14369503315029438784f,-0.98895026451030298986f,
+-0.14824767898689603096f,-0.98825756773074946437f,-0.15279718525844343535f,
+-0.98754394179435922574f,-0.15734345561623830356f,-0.98680940181418552726f,
+-0.16188639378011149272f,-0.98605396334619543897f,-0.16642590354046382650f,
+-0.98527764238894133264f,-0.17096188876030096737f,-0.98448045538322093151f,
+-0.17549425337727120322f,-0.98366241921173025453f,-0.18002290140569934818f,
+-0.98282355119870534743f,-0.18454773693861947770f,-0.98196386910955524296f,
+-0.18906866414980610935f,-0.98108339115048670553f,-0.19358558729580355173f,
+-0.98018213596811742949f,-0.19809841071795356027f,-0.97926012264908202098f,
+-0.20260703884442113343f,-0.97831737071962765473f,-0.20711137619221858808f,
+-0.97735390014519996082f,-0.21161132736922766417f,-0.97636973133002125103f,
+-0.21610679707621921475f,-0.97536488511665697665f,-0.22059769010887325669f,
+-0.97433938278557585821f,-0.22508391135979261000f,-0.97329324605469824672f,
+-0.22956536582051870199f,-0.97222649707893638027f,-0.23404195858354326365f,
+-0.97113915844972520386f,-0.23851359484431830515f,-0.97003125319454397424f,
+-0.24298017990326381543f,-0.96890280477642887202f,-0.24744161916777326904f,
+-0.96775383709347551076f,-0.25189781815421696809f,-0.96658437447833311928f,
+-0.25634868248994291395f,-0.96539444169768939830f,-0.26079411791527562503f,
+-0.96418406395174582890f,-0.26523403028551151284f,-0.96295326687368398844f,
+-0.26966832557291481320f,-0.96170207652912265139f,-0.27409690986870616225f,
+-0.96043051941556589757f,-0.27851968938505289319f,-0.95913862246184200533f,
+-0.28293657045705516984f,-0.95782641302753290802f,-0.28734745954472939999f,
+-0.95649391890239510161f,-0.29175226323498920644f,-0.95514116830577078243f,
+-0.29615088824362378883f,-0.95376818988599032512f,-0.30054324141727345454f,
+-0.95237501271976587880f,-0.30492922973540242948f,-0.95096166631157508231f,
+-0.30930876031226878231f,-0.94952818059303678577f,-0.31368174039889118454f,
+-0.94807458592227633609f,-0.31804807738501467140f,-0.94660091308328364601f,
+-0.32240767880106963039f,-0.94510719328526060501f,-0.32676045232013156694f,
+-0.94359345816196038559f,-0.33110630575987626267f,-0.94205973977101742367f,
+-0.33544514708453149199f,-0.94050607059326840620f,-0.33977688440682679571f,
+-0.93893248353206459900f,-0.34410142598993881391f,-0.93733901191257495977f,
+-0.34841868024943456472f,-0.93572568948108036935f,-0.35272855575521072646f,
+-0.93409255040425887007f,-0.35703096123343008861f,-0.93243962926846246653f,
+-0.36132580556845395048f,-0.93076696107898382326f,-0.36561299780477357624f,
+-0.92907458125931585702f,-0.36989244714893387833f,-0.92736252565040111495f,
+-0.37416406297145782256f,-0.92563083050987282618f,-0.37842775480876539307f,
+-0.92387953251128684951f,-0.38268343236508967076f,-0.92210866874334518339f,
+-0.38693100551438852630f,-0.92031827670911059425f,-0.39117038430225381518f,
+-0.91850839432521225181f,-0.39540147894781629834f,-0.91667905992104270485f,
+-0.39962419984564684361f,-0.91483031223794608611f,-0.40383845756765418544f,
+-0.91296219042839832358f,-0.40804416286497835475f,-0.91107473405517647169f,
+-0.41224122666988260999f,-0.90916798309052249127f,-0.41642956009763693048f,
+-0.90724197791529592738f,-0.42060907444840234248f,-0.90529675931811881551f,
+-0.42477968120910863936f,-0.90333236849451192807f,-0.42894129205532938176f,
+-0.90134884704602202810f,-0.43309381885315184624f,-0.89934623697934157338f,
+-0.43723717366104403181f,-0.89732458070541831763f,-0.44137126873171667052f,
+-0.89528392103855747308f,-0.44549601651398174074f,-0.89322430119551532446f,
+-0.44961132965460665067f,-0.89114576479458340597f,-0.45371712100016353686f,
+-0.88904835585466468473f,-0.45781330359887695280f,-0.88693211879434230571f,
+-0.46189979070246250936f,-0.88479709843093790056f,-0.46597649576796595916f,
+-0.88264333997956290201f,-0.47004333245959545318f,-0.88047088905216086552f,
+-0.47410021465054985601f,-0.87827979165654157523f,-0.47814705642484295334f,
+-0.87607009419540660122f,-0.48218377207912266336f,-0.87384184346536686316f,
+-0.48621027612448636246f,-0.87159508665595109012f,-0.49022648328829115938f,
+-0.86932987134860673084f,-0.49423230851595978397f,-0.86704624551569287050f,
+-0.49822766697278153547f,-0.86474425751946248919f,-0.50221247404571056627f,
+-0.86242395611104072373f,-0.50618664534515500630f,-0.86008539042939025077f,
+-0.51015009670676658704f,-0.85772861000027211809f,-0.51410274419322155026f,
+-0.85535366473519613972f,-0.51804450409599922533f,-0.85296060493036374162f,
+-0.52197529293715427823f,-0.85054948126560347976f,-0.52589502747108463065f,
+-0.84812034480329723252f,-0.52980362468629460526f,-0.84567324698729906540f,
+-0.53370100180715296379f,-0.84320823964184543620f,-0.53758707629564550512f,
+-0.84072537497045818355f,-0.54146176585312322249f,-0.83822470555483818977f,
+-0.54532498842204613076f,-0.83570628435375271525f,-0.54917666218771943321f,
+-0.83317016470191329613f,-0.55301670558002735678f,-0.83061640030884642538f,
+-0.55684503727515988203f,-0.82804504525775590729f,-0.56066157619733592021f,
+-0.82545615400437755138f,-0.56446624152051938506f,-0.82284978137582642788f,
+-0.56825895267013148970f,-0.82022598256943468620f,-0.57203962932475704850f,
+-0.81758481315158371139f,-0.57580819141784533866f,-0.81492632905652662156f,
+-0.57956455913940574387f,-0.81225058658520388200f,-0.58330865293769829094f,
+-0.80955764240405148069f,-0.58704039352091774706f,-0.80684755354379944503f,
+-0.59075970185887394237f,-0.80412037739826591753f,-0.59446649918466420992f,
+-0.80137617172314035141f,-0.59816070699634216190f,-0.79861499463476093297f,
+-0.60184224705857991555f,-0.79583690460888356633f,-0.60551104140432543410f,
+-0.79304196047944375270f,-0.60916701233645309532f,-0.79023022143731003197f,
+-0.61281008242940970820f,-0.78740174702903142911f,-0.61644017453085364622f,
+-0.78455659715557524159f,-0.62005721176328920663f,-0.78169483207105938671f,
+-0.62366111752569464155f,-0.77881651238147620031f,-0.62725181549514386070f,
+-0.77592169904340779762f,-0.63082922962842424841f,-0.77301045336273710440f,
+-0.63439328416364526575f,-0.77008283699334811878f,-0.63794390362184394405f,
+-0.76713891193582051109f,-0.64148101280858305095f,-0.76417874053611678509f,
+-0.64500453681554381635f,-0.76120238548426188974f,-0.64851440102211233008f,
+-0.75820990981301539247f,-0.65201053109695950027f,-0.75520137689653654700f,
+-0.65549285299961534967f,-0.75217685044904269986f,-0.65896129298203731661f,
+-0.74913639452345925918f,-0.66241577759017178373f,-0.74608007351006400132f,
+-0.66585623366550938940f,-0.74300795213512194071f,-0.66928258834663578725f,
+-0.73992009545951631377f,-0.67269476907077274674f,-0.73681656887737001504f,
+-0.67609270357531581208f,-0.73369743811466037187f,-0.67947631989936485564f,
+-0.73056276922782770189f,-0.68284554638524797010f,-0.72741262860237587695f,
+-0.68620031168003847721f,-0.72424708295146700276f,-0.68954054473706682948f,
+-0.72106619931450810501f,-0.69286617481742462932f,-0.71787004505573170920f,
+-0.69617713149146298601f,-0.71465868786276898206f,-0.69947334464028387835f,
+-0.71143219574521665560f,-0.70275474445722507788f,-0.70819063703319551362f,
+-0.70602126144933952112f,-0.70493408037590510329f,-0.70927282643886546687f,
+-0.70166259474016867692f,-0.71250937056469221265f,-0.69837624940897302661f,
+-0.71573082528381848366f,-0.69507511398000099145f,-0.71893712237280438249f,
+-0.69175925836415785852f,-0.72212819392921523409f,-0.68842875278409054740f,
+-0.72530397237306065694f,-0.68508366777270035541f,-0.72846439044822519637f,
+-0.68172407417164981869f,-0.73160938122389251870f,-0.67835004312986146857f,
+-0.73473887809596349907f,-0.67496164610201225820f,-0.73785281478846576064f,
+-0.67155895484701866316f,-0.74095112535495888384f,-0.66814204142651867357f,
+-0.74403374417992906853f,-0.66471097820334501538f,-0.74710060598017991040f,
+-0.66126583783999237642f,-0.75015164580621496171f,-0.65780669329707874837f,
+-0.75318679904361240940f,-0.65433361783180066240f,-0.75620600141439442421f,
+-0.65084668499638098638f,-0.75920918897838796102f,-0.64734596863651250320f,
+-0.76219629813457856482f,-0.64383154288979149715f,-0.76516726562245895860f,
+-0.64030348218415200634f,-0.76812202852336519676f,-0.63676186123628419899f,
+-0.77106052426181381776f,-0.63320675505005752370f,-0.77398269060682256537f,
+-0.62963823891492687324f,-0.77688846567323255332f,-0.62605638840434374437f,
+-0.77977778792301433164f,-0.62246127937414974518f,-0.78265059616657584041f,
+-0.61885298796097643059f,-0.78550682956405382118f,-0.61523159058062726334f,
+-0.78834642762660589455f,-0.61159716392646201744f,-0.79116933021769009216f,
+-0.60794978496777407617f,-0.79397547755433683925f,-0.60428953094815607283f,
+-0.79676481020841871672f,-0.60061647938386930612f,-0.79953726910790479110f,
+-0.59693070806219639124f,-0.80229279553811572168f,-0.59323229503980012822f,
+-0.80503133114296343553f,-0.58952131864106382952f,-0.80775281792619046950f,
+-0.58579785745643908612f,-0.81045719825259465718f,-0.58206199034077532595f,
+-0.81314441484925370496f,-0.57831379641165570060f,-0.81581441080673366972f,
+-0.57455335504771631872f,-0.81846712958029832485f,-0.57078074588696736669f,
+-0.82110251499110464835f,-0.56699604882510901138f,-0.82372051122739109452f,
+-0.56319934401383409117f,-0.82632106284566342325f,-0.55939071185913646911f,
+-0.82890411477186465294f,-0.55557023301960217765f,-0.83146961230254523567f,
+-0.55173798840470766880f,-0.83401750110601791111f,-0.54789405917310007865f,
+-0.83654772722351211645f,-0.54403852673088415326f,-0.83906023707031252012f,
+-0.54017147272989274320f,-0.84155497743689855472f,-0.53629297906596329337f,
+-0.84403189549006629733f,-0.53240312787719845655f,-0.84649093877405179320f,
+-0.52850200154222859439f,-0.84893205521163961347f,-0.52458968267846928235f,
+-0.85135519310526486247f,-0.52066625414036715735f,-0.85376030113811141042f,
+-0.51673179901765020627f,-0.85614732837519424979f,-0.51278640063356295542f,
+-0.85851622426444285097f,-0.50883014254310732216f,-0.86086693863776708735f,
+-0.50486310853126736831f,-0.86319942171212427073f,-0.50088538261124104789f,
+-0.86551362409056897818f,-0.49689704902265435793f,-0.86780949676330332299f,
+-0.49289819222978420443f,-0.87008699110871134952f,-0.48888889691976367136f,
+-0.87234605889439120752f,-0.48486924800079117537f,-0.87458665227817611321f,
+-0.48083933060033440254f,-0.87680872380914542941f,-0.47679923006332214364f,
+-0.87901222642863341417f,-0.47274903195034317926f,-0.88119711347122187117f,
+-0.46868882203582790114f,-0.88336333866573157891f,-0.46461868630623814891f,
+-0.88551085613619973103f,-0.46053871095823989412f,-0.88763962040285404598f,
+-0.45644898239688419528f,-0.88974958638307266590f,-0.45234958723377066692f,
+-0.89184070939234283415f,-0.44824061228522010802f,-0.89391294514520314163f,
+-0.44412214457042975546f,-0.89596624975618488484f,-0.43999427130963336685f,
+-0.89800057974073976830f,-0.43585707992225597440f,-0.90001589201615994629f,
+-0.43171065802505731446f,-0.90201214390249317976f,-0.42755509343028247349f,
+-0.90398929312344311615f,-0.42339047414379599177f,-0.90594729780726845902f,
+-0.41921688836322429372f,-0.90788611648766603945f,-0.41503442447608152044f,
+-0.90980570810465233311f,-0.41084317105790418845f,-0.91170603200542976730f,
+-0.40664321687036886210f,-0.91358704794525091852f,-0.40243465085941865222f,
+-0.91544871608826772214f,-0.39821756215337417162f,-0.91729099700837768427f,
+-0.39399204006104820985f,-0.91911385169005765938f,-0.38975817406985696634f,
+-0.92091724152918930102f,-0.38551605384391890441f,-0.92270112833387851747f,
+-0.38126576922216276477f,-0.92446547432526249288f,-0.37700741021641820394f,
+-0.92621024213831137928f,-0.37274106700951614712f,-0.92793539482261766516f,
+-0.36846682995337221023f,-0.92964089584318132520f,-0.36418478956708016936f,
+-0.93132670908118031505f,-0.35989503653498794433f,-0.93299279883473895669f,
+-0.35559766170478407377f,-0.93463912981968066962f,-0.35129275608556687072f,
+-0.93626566717027837061f,-0.34698041084592379235f,-0.93787237643998977443f,
+-0.34266071731199487793f,-0.93945922360218969693f,-0.33833376696554123830f,
+-0.94102617505088925753f,-0.33399965144200982614f,-0.94257319760144675502f,
+-0.32965846252858749255f,-0.94410025849127265918f,-0.32531029216226331480f,
+-0.94560732538052116869f,-0.32095523242787515894f,-0.94709436635277721717f,
+-0.31659337555616617887f,-0.94856134991573015647f,-0.31222481392182477311f,
+-0.95000824500184311017f,-0.30784964004153508865f,-0.95143502096900833820f,
+-0.30346794657201103806f,-0.95284164760119871573f,-0.29907982630804058610f,
+-0.95422809510910555630f,-0.29468537218051488180f,-0.95559433413077088382f,
+-0.29028467725446244208f,-0.95694033573220882438f,-0.28587783472708105936f,
+-0.95826607140801756124f,-0.28146493792575794091f,-0.95957151308198451733f,
+-0.27704608030610028413f,-0.96085663310767954748f,-0.27262135544994886560f,
+-0.96212140426904158019f,-0.26819085706340350939f,-0.96336579978095393528f,
+-0.26375467897483123592f,-0.96458979328981275803f,-0.25931291513288645678f,
+-0.96579335887408357397f,-0.25486565960451434965f,-0.96697647104485218161f,
+-0.25041300657296539089f,-0.96813910474636233339f,-0.24595505033579515008f,
+-0.96928123535654830967f,-0.24149188530286941345f,-0.97040283868755550234f,
+-0.23702360599436766986f,-0.97150389098625167250f,-0.23255030703877521692f,
+-0.97258436893473221296f,-0.22807208317088611960f,-0.97364424965081186603f,
+-0.22358902922978990402f,-0.97468351068851066810f,-0.21910124015687010290f,
+-0.97570213003852845901f,-0.21460881099378659176f,-0.97670008612871184184f,
+-0.21011183688046985996f,-0.97767735782450992943f,-0.20561041305309901706f,
+-0.97863392442942320759f,-0.20110463484209206708f,-0.97956976568544051887f,
+-0.19659459767008077846f,-0.98048486177346927395f,-0.19208039704989252061f,
+-0.98137919331375456089f,-0.18756212858253007436f,-0.98225274136628937249f,
+-0.18303988795514095078f,-0.98310548743121628501f,-0.17851377093899792325f,
+-0.98393741344921881176f,-0.17398387338746373887f,-0.98474850180190420801f,
+-0.16945029123396829207f,-0.98553873531217606185f,-0.16491312048996975559f,
+-0.98630809724459866938f,-0.16037245724292850668f,-0.98705657130575097380f,
+-0.15582839765426498291f,-0.98778414164457217783f,-0.15128103795733036097f,
+-0.98849079285269658701f,-0.14673047445536230304f,-0.98917650996478090342f,
+-0.14217680351944814165f,-0.98984127845882052821f,-0.13762012158648653792f,
+-0.99048508425645698239f,-0.13306052515713906459f,-0.99110791372327688986f,
+-0.12849811079379358514f,-0.99170975366909952520f,-0.12393297511851208981f,
+-0.99229059134825736699f,-0.11936521481099168773f,-0.99285041445986510489f,
+-0.11479492660650993108f,-0.99338921114808065305f,-0.11022220729388330918f,
+-0.99390697000235606051f,-0.10564715371341037997f,-0.99440368005767909576f,
+-0.10106986275482798820f,-0.99487933079480561638f,-0.09649043135525316173f,
+-0.99533391214048216877f,-0.09190895649713282101f,-0.99576741446765981713f,
+-0.08732553520619255882f,-0.99617982859569687015f,-0.08274026454937570552f,
+-0.99657114579055483539f,-0.07815324163279464831f,-0.99694135776498205015f,
+-0.07356456359966735692f,-0.99729045667869020697f,-0.06897432762826707919f,
+-0.99761843513851955478f,-0.06438263092985731240f,-0.99792528619859599548f,
+-0.05978957074664013188f,-0.99821100336047818846f,-0.05519524434968971216f,
+-0.99847558057329477421f,-0.05059974903689945513f,-0.99871901223387293811f,
+-0.04600318213091520586f,-0.99894129318685687124f,-0.04140564097707683661f,
+-0.99914241872481690532f,-0.03680722294135933131f,-0.99932238458834943273f,
+-0.03220802540830459970f,-0.99948118696616694567f,-0.02760814577896616301f,
+-0.99961882249517863830f,-0.02300768146883930970f,-0.99973528826056168306f,
+-0.01840672990580516366f,-0.99983058179582340319f,-0.01380538852806025008f,
+-0.99990470108285289808f,-0.00920375478206008311f,-0.99995764455196389786f,
+-0.00460192612044835019f,-0.99998941108192840321f,1.00000000000000000000f,
+0.00000000000000000000f,0.99983058179582340319f,0.01840672990580482019f,
+0.99932238458834954375f,0.03680722294135883171f,0.99847558057329477421f,
+0.05519524434968993420f,0.99729045667869020697f,0.07356456359966742631f,
+0.99576741446765981713f,0.09190895649713272386f,0.99390697000235606051f,
+0.11022220729388305938f,0.99170975366909952520f,0.12849811079379316880f,
+0.98917650996478101444f,0.14673047445536174793f,0.98630809724459866938f,
+0.16491312048996989437f,0.98310548743121628501f,0.18303988795514095078f,
+0.97956976568544051887f,0.20110463484209190055f,0.97570213003852857003f,
+0.21910124015686979759f,0.97150389098625178352f,0.23702360599436719801f,
+0.96697647104485207059f,0.25486565960451457169f,0.96212140426904158019f,
+0.27262135544994897662f,0.95694033573220882438f,0.29028467725446233105f,
+0.95143502096900833820f,0.30784964004153486661f,0.94560732538052127971f,
+0.32531029216226292622f,0.93945922360218991898f,0.34266071731199437833f,
+0.93299279883473895669f,0.35989503653498811087f,0.92621024213831137928f,
+0.37700741021641825945f,0.91911385169005777040f,0.39399204006104809883f,
+0.91170603200542987832f,0.41084317105790391089f,0.90398929312344333820f,
+0.42755509343028208491f,0.89596624975618521791f,0.44412214457042920035f,
+0.88763962040285393496f,0.46053871095824000514f,0.87901222642863352519f,
+0.47679923006332208812f,0.87008699110871146054f,0.49289819222978403790f,
+0.86086693863776730939f,0.50883014254310698909f,0.85135519310526519554f,
+0.52458968267846894928f,0.84155497743689844370f,0.54017147272989285423f,
+0.83146961230254523567f,0.55557023301960217765f,0.82110251499110464835f,
+0.57078074588696725566f,0.81045719825259476821f,0.58579785745643886408f,
+0.79953726910790501314f,0.60061647938386897305f,0.78834642762660622761f,
+0.61523159058062681925f,0.77688846567323244230f,0.62963823891492698426f,
+0.76516726562245895860f,0.64383154288979138613f,0.75318679904361252042f,
+0.65780669329707863735f,0.74095112535495921691f,0.67155895484701833009f,
+0.72846439044822519637f,0.68508366777270035541f,0.71573082528381870571f,
+0.69837624940897280457f,0.70275474445722529993f,0.71143219574521643356f,
+0.68954054473706694051f,0.72424708295146689174f,0.67609270357531603413f,
+0.73681656887736979300f,0.66241577759017178373f,0.74913639452345925918f,
+0.64851440102211255212f,0.76120238548426177871f,0.63439328416364548779f,
+0.77301045336273688235f,0.62005721176328920663f,0.78455659715557524159f,
+0.60551104140432554512f,0.79583690460888345530f,0.59075970185887427544f,
+0.80684755354379922299f,0.57580819141784533866f,0.81758481315158371139f,
+0.56066157619733603124f,0.82804504525775579626f,0.54532498842204646383f,
+0.83822470555483796772f,0.52980362468629482731f,0.84812034480329712149f,
+0.51410274419322166128f,0.85772861000027211809f,0.49822766697278186854f,
+0.86704624551569264845f,0.48218377207912282989f,0.87607009419540660122f,
+0.46597649576796612569f,0.88479709843093778954f,0.44961132965460659516f,
+0.89322430119551532446f,0.43309381885315201277f,0.90134884704602202810f,
+0.41642956009763731906f,0.90916798309052226923f,0.39962419984564678810f,
+0.91667905992104270485f,0.38268343236508983729f,0.92387953251128673848f,
+0.36561299780477396482f,0.93076696107898371224f,0.34841868024943450921f,
+0.93733901191257495977f,0.33110630575987642921f,0.94359345816196038559f,
+0.31368174039889157312f,0.94952818059303667475f,0.29615088824362395536f,
+0.95514116830577067141f,0.27851968938505305973f,0.96043051941556578655f,
+0.26079411791527556952f,0.96539444169768939830f,0.24298017990326398197f,
+0.97003125319454397424f,0.22508391135979277653f,0.97433938278557585821f,
+0.20711137619221856032f,0.97831737071962765473f,0.18906866414980627589f,
+0.98196386910955524296f,0.17096188876030135595f,0.98527764238894122162f,
+0.15279718525844340760f,0.98825756773074946437f,0.13458070850712622324f,
+0.99090263542778000971f,0.11631863091190487725f,0.99321194923479450001f,
+0.09801714032956077016f,0.99518472667219681771f,0.07968243797143012563f,
+0.99682029929116566791f,0.06132073630220864768f,0.99811811290014917919f,
+0.04293825693494095902f,0.99907772775264536147f,0.02454122852291226384f,
+0.99969881869620424997f,0.00613588464915451517f,0.99998117528260110909f,
+-0.01227153828571982304f,0.99992470183914450299f,-0.03067480317663645942f,
+0.99952941750109314256f,-0.04906767432741800800f,0.99879545620517240501f,
+-0.06744391956366398155f,0.99772306664419163624f,-0.08579731234443975507f,
+0.99631261218277800129f,-0.10412163387205460030f,0.99456457073425541537f,
+-0.12241067519921615403f,0.99247953459870996706f,-0.14065823933284912761f,
+0.99005821026229712256f,-0.15885814333386127917f,0.98730141815785843473f,
+-0.17700422041214874946f,0.98421009238692902521f,-0.19509032201612819257f,
+0.98078528040323043058f,-0.21311031991609125091f,0.97702814265775439484f,
+-0.23105810828067113727f,0.97293995220556017678f,-0.24892760574572012078f,
+0.96852209427441737777f,-0.26671275747489830987f,0.96377606579543984022f,
+-0.28440753721127171039f,0.95870347489587159906f,-0.30200594931922808417f,
+0.95330604035419386211f,-0.31950203081601563637f,0.94758559101774120226f,
+-0.33688985339221994009f,0.94154406518302080631f,-0.35416352542049039931f,
+0.93518350993894761025f,-0.37131719395183748755f,0.92850608047321558924f,
+-0.38834504669882619066f,0.92151403934204201285f,-0.40524131400498974998f,
+0.91420975570353069095f,-0.42200027079979968159f,0.90659570451491533483f,
+-0.43861623853852738097f,0.89867446569395392775f,-0.45508358712634372489f,
+0.89044872324475798919f,-0.47139673682599769755f,0.88192126434835504956f,
+-0.48755016014843571837f,0.87309497841829020182f,-0.50353838372571746440f,
+0.86397285612158680745f,-0.51935599016558964269f,0.85455798836540053376f,
+-0.53499761988709704230f,0.84485356524970722791f,-0.55045797293660470029f,
+0.83486287498638012128f,-0.56573181078361323149f,0.82458930278502517996f,
+-0.58081395809576441547f,0.81403632970594852480f,-0.59569930449243335691f,
+0.80320753148064494287f,-0.61038280627630958630f,0.79210657730021227785f,
+-0.62485948814238623239f,0.78073722857209459924f,-0.63912444486377573138f,
+0.76910333764557958780f,-0.65317284295377653347f,0.75720884650648467851f,
+-0.66699992230363736034f,0.74505778544146605835f,-0.68060099779545302212f,
+0.73265427167241281570f,-0.69397146088965377952f,0.72000250796138176579f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.72000250796138165477f,
+0.69397146088965389055f,-0.73265427167241270467f,0.68060099779545324417f,
+-0.74505778544146594733f,0.66699992230363758239f,-0.75720884650648467851f,
+0.65317284295377664449f,-0.76910333764557947678f,0.63912444486377584241f,
+-0.78073722857209448822f,0.62485948814238634341f,-0.79210657730021216683f,
+0.61038280627630969732f,-0.80320753148064483184f,0.59569930449243346793f,
+-0.81403632970594841378f,0.58081395809576452649f,-0.82458930278502506894f,
+0.56573181078361345353f,-0.83486287498638001026f,0.55045797293660492233f,
+-0.84485356524970711689f,0.53499761988709715332f,-0.85455798836540042274f,
+0.51935599016558975372f,-0.86397285612158669643f,0.50353838372571757542f,
+-0.87309497841829009079f,0.48755016014843588490f,-0.88192126434835493853f,
+0.47139673682599780857f,-0.89044872324475787817f,0.45508358712634389143f,
+-0.89867446569395392775f,0.43861623853852754751f,-0.90659570451491533483f,
+0.42200027079979984812f,-0.91420975570353069095f,0.40524131400498991651f,
+-0.92151403934204179080f,0.38834504669882657923f,-0.92850608047321547822f,
+0.37131719395183770960f,-0.93518350993894761025f,0.35416352542049039931f,
+-0.94154406518302069529f,0.33688985339222032867f,-0.94758559101774109124f,
+0.31950203081601580291f,-0.95330604035419386211f,0.30200594931922802866f,
+-0.95870347489587148804f,0.28440753721127209896f,-0.96377606579543984022f,
+0.26671275747489847641f,-0.96852209427441737777f,0.24892760574572009302f,
+-0.97293995220556006576f,0.23105810828067133156f,-0.97702814265775439484f,
+0.21311031991609141745f,-0.98078528040323043058f,0.19509032201612860891f,
+-0.98421009238692902521f,0.17700422041214894375f,-0.98730141815785843473f,
+0.15885814333386147346f,-0.99005821026229701154f,0.14065823933284954395f,
+-0.99247953459870996706f,0.12241067519921634832f,-0.99456457073425541537f,
+0.10412163387205457254f,-0.99631261218277800129f,0.08579731234444015753f,
+-0.99772306664419163624f,0.06744391956366417584f,-0.99879545620517240501f,
+0.04906767432741796636f,-0.99952941750109314256f,0.03067480317663686534f,
+-0.99992470183914450299f,0.01227153828572000692f,-0.99998117528260110909f,
+-0.00613588464915455420f,-0.99969881869620424997f,-0.02454122852291207996f,
+-0.99907772775264536147f,-0.04293825693494077861f,-0.99811811290014917919f,
+-0.06132073630220824523f,-0.99682029929116577893f,-0.07968243797142994522f,
+-0.99518472667219692873f,-0.09801714032956058975f,-0.99321194923479461103f,
+-0.11631863091190447479f,-0.99090263542778000971f,-0.13458070850712605671f,
+-0.98825756773074946437f,-0.15279718525844343535f,-0.98527764238894133264f,
+-0.17096188876030096737f,-0.98196386910955524296f,-0.18906866414980610935f,
+-0.97831737071962765473f,-0.20711137619221858808f,-0.97433938278557585821f,
+-0.22508391135979261000f,-0.97003125319454397424f,-0.24298017990326381543f,
+-0.96539444169768939830f,-0.26079411791527562503f,-0.96043051941556589757f,
+-0.27851968938505289319f,-0.95514116830577078243f,-0.29615088824362378883f,
+-0.94952818059303678577f,-0.31368174039889118454f,-0.94359345816196038559f,
+-0.33110630575987626267f,-0.93733901191257495977f,-0.34841868024943456472f,
+-0.93076696107898382326f,-0.36561299780477357624f,-0.92387953251128684951f,
+-0.38268343236508967076f,-0.91667905992104270485f,-0.39962419984564684361f,
+-0.90916798309052249127f,-0.41642956009763693048f,-0.90134884704602202810f,
+-0.43309381885315184624f,-0.89322430119551532446f,-0.44961132965460665067f,
+-0.88479709843093790056f,-0.46597649576796595916f,-0.87607009419540660122f,
+-0.48218377207912266336f,-0.86704624551569287050f,-0.49822766697278153547f,
+-0.85772861000027211809f,-0.51410274419322155026f,-0.84812034480329723252f,
+-0.52980362468629460526f,-0.83822470555483818977f,-0.54532498842204613076f,
+-0.82804504525775590729f,-0.56066157619733592021f,-0.81758481315158371139f,
+-0.57580819141784533866f,-0.80684755354379944503f,-0.59075970185887394237f,
+-0.79583690460888356633f,-0.60551104140432543410f,-0.78455659715557524159f,
+-0.62005721176328920663f,-0.77301045336273710440f,-0.63439328416364526575f,
+-0.76120238548426188974f,-0.64851440102211233008f,-0.74913639452345925918f,
+-0.66241577759017178373f,-0.73681656887737001504f,-0.67609270357531581208f,
+-0.72424708295146700276f,-0.68954054473706682948f,-0.71143219574521665560f,
+-0.70275474445722507788f,-0.69837624940897302661f,-0.71573082528381848366f,
+-0.68508366777270035541f,-0.72846439044822519637f,-0.67155895484701866316f,
+-0.74095112535495888384f,-0.65780669329707874837f,-0.75318679904361240940f,
+-0.64383154288979149715f,-0.76516726562245895860f,-0.62963823891492687324f,
+-0.77688846567323255332f,-0.61523159058062726334f,-0.78834642762660589455f,
+-0.60061647938386930612f,-0.79953726910790479110f,-0.58579785745643908612f,
+-0.81045719825259465718f,-0.57078074588696736669f,-0.82110251499110464835f,
+-0.55557023301960217765f,-0.83146961230254523567f,-0.54017147272989274320f,
+-0.84155497743689855472f,-0.52458968267846928235f,-0.85135519310526486247f,
+-0.50883014254310732216f,-0.86086693863776708735f,-0.49289819222978420443f,
+-0.87008699110871134952f,-0.47679923006332214364f,-0.87901222642863341417f,
+-0.46053871095823989412f,-0.88763962040285404598f,-0.44412214457042975546f,
+-0.89596624975618488484f,-0.42755509343028247349f,-0.90398929312344311615f,
+-0.41084317105790418845f,-0.91170603200542976730f,-0.39399204006104820985f,
+-0.91911385169005765938f,-0.37700741021641820394f,-0.92621024213831137928f,
+-0.35989503653498794433f,-0.93299279883473895669f,-0.34266071731199487793f,
+-0.93945922360218969693f,-0.32531029216226331480f,-0.94560732538052116869f,
+-0.30784964004153508865f,-0.95143502096900833820f,-0.29028467725446244208f,
+-0.95694033573220882438f,-0.27262135544994886560f,-0.96212140426904158019f,
+-0.25486565960451434965f,-0.96697647104485218161f,-0.23702360599436766986f,
+-0.97150389098625167250f,-0.21910124015687010290f,-0.97570213003852845901f,
+-0.20110463484209206708f,-0.97956976568544051887f,-0.18303988795514095078f,
+-0.98310548743121628501f,-0.16491312048996975559f,-0.98630809724459866938f,
+-0.14673047445536230304f,-0.98917650996478090342f,-0.12849811079379358514f,
+-0.99170975366909952520f,-0.11022220729388330918f,-0.99390697000235606051f,
+-0.09190895649713282101f,-0.99576741446765981713f,-0.07356456359966735692f,
+-0.99729045667869020697f,-0.05519524434968971216f,-0.99847558057329477421f,
+-0.03680722294135933131f,-0.99932238458834943273f,-0.01840672990580516366f,
+-0.99983058179582340319f,1.00000000000000000000f,0.00000000000000000000f,
+0.99729045667869020697f,0.07356456359966742631f,0.98917650996478101444f,
+0.14673047445536174793f,0.97570213003852857003f,0.21910124015686979759f,
+0.95694033573220882438f,0.29028467725446233105f,0.93299279883473895669f,
+0.35989503653498811087f,0.90398929312344333820f,0.42755509343028208491f,
+0.87008699110871146054f,0.49289819222978403790f,0.83146961230254523567f,
+0.55557023301960217765f,0.78834642762660622761f,0.61523159058062681925f,
+0.74095112535495921691f,0.67155895484701833009f,0.68954054473706694051f,
+0.72424708295146689174f,0.63439328416364548779f,0.77301045336273688235f,
+0.57580819141784533866f,0.81758481315158371139f,0.51410274419322166128f,
+0.85772861000027211809f,0.44961132965460659516f,0.89322430119551532446f,
+0.38268343236508983729f,0.92387953251128673848f,0.31368174039889157312f,
+0.94952818059303667475f,0.24298017990326398197f,0.97003125319454397424f,
+0.17096188876030135595f,0.98527764238894122162f,0.09801714032956077016f,
+0.99518472667219681771f,0.02454122852291226384f,0.99969881869620424997f,
+-0.04906767432741800800f,0.99879545620517240501f,-0.12241067519921615403f,
+0.99247953459870996706f,-0.19509032201612819257f,0.98078528040323043058f,
+-0.26671275747489830987f,0.96377606579543984022f,-0.33688985339221994009f,
+0.94154406518302080631f,-0.40524131400498974998f,0.91420975570353069095f,
+-0.47139673682599769755f,0.88192126434835504956f,-0.53499761988709704230f,
+0.84485356524970722791f,-0.59569930449243335691f,0.80320753148064494287f,
+-0.65317284295377653347f,0.75720884650648467851f,-0.70710678118654746172f,
+0.70710678118654757274f,-0.75720884650648467851f,0.65317284295377664449f,
+-0.80320753148064483184f,0.59569930449243346793f,-0.84485356524970711689f,
+0.53499761988709715332f,-0.88192126434835493853f,0.47139673682599780857f,
+-0.91420975570353069095f,0.40524131400498991651f,-0.94154406518302069529f,
+0.33688985339222032867f,-0.96377606579543984022f,0.26671275747489847641f,
+-0.98078528040323043058f,0.19509032201612860891f,-0.99247953459870996706f,
+0.12241067519921634832f,-0.99879545620517240501f,0.04906767432741796636f,
+-0.99969881869620424997f,-0.02454122852291207996f,-0.99518472667219692873f,
+-0.09801714032956058975f,-0.98527764238894133264f,-0.17096188876030096737f,
+-0.97003125319454397424f,-0.24298017990326381543f,-0.94952818059303678577f,
+-0.31368174039889118454f,-0.92387953251128684951f,-0.38268343236508967076f,
+-0.89322430119551532446f,-0.44961132965460665067f,-0.85772861000027211809f,
+-0.51410274419322155026f,-0.81758481315158371139f,-0.57580819141784533866f,
+-0.77301045336273710440f,-0.63439328416364526575f,-0.72424708295146700276f,
+-0.68954054473706682948f,-0.67155895484701866316f,-0.74095112535495888384f,
+-0.61523159058062726334f,-0.78834642762660589455f,-0.55557023301960217765f,
+-0.83146961230254523567f,-0.49289819222978420443f,-0.87008699110871134952f,
+-0.42755509343028247349f,-0.90398929312344311615f,-0.35989503653498794433f,
+-0.93299279883473895669f,-0.29028467725446244208f,-0.95694033573220882438f,
+-0.21910124015687010290f,-0.97570213003852845901f,-0.14673047445536230304f,
+-0.98917650996478090342f,-0.07356456359966735692f,-0.99729045667869020697f,
+1.00000000000000000000f,0.00000000000000000000f,0.95694033573220882438f,
+0.29028467725446233105f,0.83146961230254523567f,0.55557023301960217765f,
+0.63439328416364548779f,0.77301045336273688235f,0.38268343236508983729f,
+0.92387953251128673848f,0.09801714032956077016f,0.99518472667219681771f,
+-0.19509032201612819257f,0.98078528040323043058f,-0.47139673682599769755f,
+0.88192126434835504956f,-0.70710678118654746172f,0.70710678118654757274f,
+-0.88192126434835493853f,0.47139673682599780857f,-0.98078528040323043058f,
+0.19509032201612860891f,-0.99518472667219692873f,-0.09801714032956058975f,
+-0.92387953251128684951f,-0.38268343236508967076f,-0.77301045336273710440f,
+-0.63439328416364526575f,-0.55557023301960217765f,-0.83146961230254523567f,
+-0.29028467725446244208f,-0.95694033573220882438f,1.00000000000000000000f,
+0.00000000000000000000f,0.38268343236508983729f,0.92387953251128673848f,
+-0.70710678118654746172f,0.70710678118654757274f,-0.92387953251128684951f,
+-0.38268343236508967076f,};
+
+#endif
+
+
+
+#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
+
diff --git a/CMSIS/DSP/Source/TransformFunctions/CMakeLists.txt b/CMSIS/DSP/Source/TransformFunctions/CMakeLists.txt
index f29df7c..0ea8506 100644
--- a/CMSIS/DSP/Source/TransformFunctions/CMakeLists.txt
+++ b/CMSIS/DSP/Source/TransformFunctions/CMakeLists.txt
@@ -25,6 +25,7 @@
target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix4_f32.c)
target_sources(CMSISDSPTransform PRIVATE arm_cfft_radix8_f32.c)
target_sources(CMSISDSPTransform PRIVATE arm_cfft_f32.c)
+target_sources(CMSISDSPTransform PRIVATE arm_cfft_init_f32.c)
endif()
if (NOT CONFIGTABLE OR ALLFFT OR CFFT_F64_16 OR CFFT_F64_32 OR CFFT_F64_64 OR CFFT_F64_128 OR CFFT_F64_256 OR CFFT_F64_512
diff --git a/CMSIS/DSP/Source/TransformFunctions/TransformFunctions.c b/CMSIS/DSP/Source/TransformFunctions/TransformFunctions.c
index d0f7ce4..c473216 100644
--- a/CMSIS/DSP/Source/TransformFunctions/TransformFunctions.c
+++ b/CMSIS/DSP/Source/TransformFunctions/TransformFunctions.c
@@ -58,3 +58,4 @@
#include "arm_rfft_init_q31.c"
#include "arm_rfft_q15.c"
#include "arm_rfft_q31.c"
+#include "arm_cfft_init_f32.c"
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c b/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c
index 2fff61c..8bbb25c 100644
--- a/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f32.c
@@ -29,6 +29,591 @@
#include "arm_math.h"
#include "arm_common_tables.h"
+#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+#include "arm_helium_utils.h"
+#include "arm_vec_fft.h"
+#include "arm_mve_tables.h"
+
+
+static float32_t arm_inverse_fft_length_f32(uint16_t fftLen)
+{
+ float32_t retValue=1.0;
+
+ switch (fftLen)
+ {
+
+ case 4096U:
+ retValue = 0.000244140625;
+ break;
+
+ case 2048U:
+ retValue = 0.00048828125;
+ break;
+
+ case 1024U:
+ retValue = 0.0009765625f;
+ break;
+
+ case 512U:
+ retValue = 0.001953125;
+ break;
+
+ case 256U:
+ retValue = 0.00390625f;
+ break;
+
+ case 128U:
+ retValue = 0.0078125;
+ break;
+
+ case 64U:
+ retValue = 0.015625f;
+ break;
+
+ case 32U:
+ retValue = 0.03125;
+ break;
+
+ case 16U:
+ retValue = 0.0625f;
+ break;
+
+
+ default:
+ break;
+ }
+ return(retValue);
+}
+
+
+static void arm_bitreversal_32_inpl_mve(
+ uint32_t *pSrc,
+ const uint16_t bitRevLen,
+ const uint16_t *pBitRevTab)
+
+{
+ uint64_t *src = (uint64_t *) pSrc;
+ uint32_t blkCnt; /* loop counters */
+ uint32x4_t bitRevTabOff;
+ uint32x4_t one = vdupq_n_u32(1);
+
+ blkCnt = (bitRevLen / 2) / 2;
+ while (blkCnt > 0U) {
+ bitRevTabOff = vldrhq_u32(pBitRevTab);
+ pBitRevTab += 4;
+
+ uint64x2_t bitRevOff1 = vmullbq_int_u32(bitRevTabOff, one);
+ uint64x2_t bitRevOff2 = vmulltq_int_u32(bitRevTabOff, one);
+
+ uint64x2_t in1 = vldrdq_gather_offset_u64(src, bitRevOff1);
+ uint64x2_t in2 = vldrdq_gather_offset_u64(src, bitRevOff2);
+
+ vstrdq_scatter_offset_u64(src, bitRevOff1, in2);
+ vstrdq_scatter_offset_u64(src, bitRevOff2, in1);
+
+ /*
+ * Decrement the blockSize loop counter
+ */
+ blkCnt--;
+ }
+}
+
+
+static void _arm_radix4_butterfly_f32_mve(const arm_cfft_instance_f32 * S,float32_t * pSrc, uint32_t fftLen)
+{
+ f32x4_t vecTmp0, vecTmp1;
+ f32x4_t vecSum0, vecDiff0, vecSum1, vecDiff1;
+ f32x4_t vecA, vecB, vecC, vecD;
+ uint32_t blkCnt;
+ uint32_t n1, n2;
+ uint32_t stage = 0;
+ int32_t iter = 1;
+ static const uint32_t strides[4] = {
+ (0 - 16) * sizeof(q31_t *),
+ (1 - 16) * sizeof(q31_t *),
+ (8 - 16) * sizeof(q31_t *),
+ (9 - 16) * sizeof(q31_t *)
+ };
+
+ n2 = fftLen;
+ n1 = n2;
+ n2 >>= 2u;
+ for (int k = fftLen / 4u; k > 1; k >>= 2)
+ {
+ for (int i = 0; i < iter; i++)
+ {
+ float32_t const *p_rearranged_twiddle_tab_stride1 =
+ &S->rearranged_twiddle_stride1[
+ S->rearranged_twiddle_tab_stride1_arr[stage]];
+ float32_t const *p_rearranged_twiddle_tab_stride2 =
+ &S->rearranged_twiddle_stride2[
+ S->rearranged_twiddle_tab_stride2_arr[stage]];
+ float32_t const *p_rearranged_twiddle_tab_stride3 =
+ &S->rearranged_twiddle_stride3[
+ S->rearranged_twiddle_tab_stride3_arr[stage]];
+ float32_t const *pW1, *pW2, *pW3;
+ float32_t *inA = pSrc + CMPLX_DIM * i * n1;
+ float32_t *inB = inA + n2 * CMPLX_DIM;
+ float32_t *inC = inB + n2 * CMPLX_DIM;
+ float32_t *inD = inC + n2 * CMPLX_DIM;
+ f32x4_t vecW;
+
+
+ pW1 = p_rearranged_twiddle_tab_stride1;
+ pW2 = p_rearranged_twiddle_tab_stride2;
+ pW3 = p_rearranged_twiddle_tab_stride3;
+
+ blkCnt = n2 / 2;
+ /*
+ * load 2 f32 complex pair
+ */
+ vecA = vldrwq_f32(inA);
+ vecC = vldrwq_f32(inC);
+ while (blkCnt > 0U)
+ {
+ vecB = vldrwq_f32(inB);
+ vecD = vldrwq_f32(inD);
+
+ vecSum0 = vecA + vecC; /* vecSum0 = vaddq(vecA, vecC) */
+ vecDiff0 = vecA - vecC; /* vecSum0 = vsubq(vecA, vecC) */
+
+ vecSum1 = vecB + vecD;
+ vecDiff1 = vecB - vecD;
+ /*
+ * [ 1 1 1 1 ] * [ A B C D ]' .* 1
+ */
+ vecTmp0 = vecSum0 + vecSum1;
+ vst1q(inA, vecTmp0);
+ inA += 4;
+
+ /*
+ * [ 1 -1 1 -1 ] * [ A B C D ]'
+ */
+ vecTmp0 = vecSum0 - vecSum1;
+ /*
+ * [ 1 -1 1 -1 ] * [ A B C D ]'.* W2
+ */
+ vecW = vld1q(pW2);
+ pW2 += 4;
+ vecTmp1 = MVE_CMPLX_MULT_FLT_Conj_AxB(vecW, vecTmp0);
+ vst1q(inB, vecTmp1);
+ inB += 4;
+
+ /*
+ * [ 1 -i -1 +i ] * [ A B C D ]'
+ */
+ vecTmp0 = MVE_CMPLX_SUB_A_ixB(vecDiff0, vecDiff1);
+ /*
+ * [ 1 -i -1 +i ] * [ A B C D ]'.* W1
+ */
+ vecW = vld1q(pW1);
+ pW1 +=4;
+ vecTmp1 = MVE_CMPLX_MULT_FLT_Conj_AxB(vecW, vecTmp0);
+ vst1q(inC, vecTmp1);
+ inC += 4;
+
+ /*
+ * [ 1 +i -1 -i ] * [ A B C D ]'
+ */
+ vecTmp0 = MVE_CMPLX_ADD_A_ixB(vecDiff0, vecDiff1);
+ /*
+ * [ 1 +i -1 -i ] * [ A B C D ]'.* W3
+ */
+ vecW = vld1q(pW3);
+ pW3 += 4;
+ vecTmp1 = MVE_CMPLX_MULT_FLT_Conj_AxB(vecW, vecTmp0);
+ vst1q(inD, vecTmp1);
+ inD += 4;
+
+ vecA = vldrwq_f32(inA);
+ vecC = vldrwq_f32(inC);
+
+ blkCnt--;
+ }
+ }
+ n1 = n2;
+ n2 >>= 2u;
+ iter = iter << 2;
+ stage++;
+ }
+
+ /*
+ * start of Last stage process
+ */
+ uint32x4_t vecScGathAddr = *(uint32x4_t *) strides;
+ vecScGathAddr = vecScGathAddr + (uint32_t) pSrc;
+
+ /* load scheduling */
+ vecA = vldrwq_gather_base_wb_f32(&vecScGathAddr, 64);
+ vecC = vldrwq_gather_base_f32(vecScGathAddr, 16);
+
+ blkCnt = (fftLen >> 3);
+ while (blkCnt > 0U)
+ {
+ vecSum0 = vecA + vecC; /* vecSum0 = vaddq(vecA, vecC) */
+ vecDiff0 = vecA - vecC; /* vecSum0 = vsubq(vecA, vecC) */
+
+ vecB = vldrwq_gather_base_f32(vecScGathAddr, 8);
+ vecD = vldrwq_gather_base_f32(vecScGathAddr, 24);
+
+ vecSum1 = vecB + vecD;
+ vecDiff1 = vecB - vecD;
+
+ /* pre-load for next iteration */
+ vecA = vldrwq_gather_base_wb_f32(&vecScGathAddr, 64);
+ vecC = vldrwq_gather_base_f32(vecScGathAddr, 16);
+
+ vecTmp0 = vecSum0 + vecSum1;
+ vstrwq_scatter_base_f32(vecScGathAddr, -64, vecTmp0);
+
+ vecTmp0 = vecSum0 - vecSum1;
+ vstrwq_scatter_base_f32(vecScGathAddr, -64 + 8, vecTmp0);
+
+ vecTmp0 = MVE_CMPLX_SUB_A_ixB(vecDiff0, vecDiff1);
+ vstrwq_scatter_base_f32(vecScGathAddr, -64 + 16, vecTmp0);
+
+ vecTmp0 = MVE_CMPLX_ADD_A_ixB(vecDiff0, vecDiff1);
+ vstrwq_scatter_base_f32(vecScGathAddr, -64 + 24, vecTmp0);
+
+ blkCnt--;
+ }
+
+ /*
+ * End of last stage process
+ */
+}
+
+static void arm_cfft_radix4by2_f32_mve(const arm_cfft_instance_f32 * S, float32_t *pSrc, uint32_t fftLen)
+{
+ float32_t const *pCoefVec;
+ float32_t const *pCoef = S->pTwiddle;
+ float32_t *pIn0, *pIn1;
+ uint32_t n2;
+ uint32_t blkCnt;
+ f32x4_t vecIn0, vecIn1, vecSum, vecDiff;
+ f32x4_t vecCmplxTmp, vecTw;
+
+
+ n2 = fftLen >> 1;
+ pIn0 = pSrc;
+ pIn1 = pSrc + fftLen;
+ pCoefVec = pCoef;
+
+ blkCnt = n2 / 2;
+ while (blkCnt > 0U)
+ {
+ vecIn0 = *(f32x4_t *) pIn0;
+ vecIn1 = *(f32x4_t *) pIn1;
+ vecTw = vld1q(pCoefVec);
+ pCoefVec += 4;
+
+ vecSum = vecIn0 + vecIn1;
+ vecDiff = vecIn0 - vecIn1;
+
+ vecCmplxTmp = MVE_CMPLX_MULT_FLT_Conj_AxB(vecTw, vecDiff);
+
+ vst1q(pIn0, vecSum);
+ pIn0 += 4;
+ vst1q(pIn1, vecCmplxTmp);
+ pIn1 += 4;
+
+ blkCnt--;
+ }
+
+ _arm_radix4_butterfly_f32_mve(S, pSrc, n2);
+
+ _arm_radix4_butterfly_f32_mve(S, pSrc + fftLen, n2);
+
+ pIn0 = pSrc;
+}
+
+static void _arm_radix4_butterfly_inverse_f32_mve(const arm_cfft_instance_f32 * S,float32_t * pSrc, uint32_t fftLen, float32_t onebyfftLen)
+{
+ f32x4_t vecTmp0, vecTmp1;
+ f32x4_t vecSum0, vecDiff0, vecSum1, vecDiff1;
+ f32x4_t vecA, vecB, vecC, vecD;
+ f32x4_t vecW;
+ uint32_t blkCnt;
+ uint32_t n1, n2;
+ uint32_t stage = 0;
+ int32_t iter = 1;
+ static const uint32_t strides[4] = {
+ (0 - 16) * sizeof(q31_t *),
+ (1 - 16) * sizeof(q31_t *),
+ (8 - 16) * sizeof(q31_t *),
+ (9 - 16) * sizeof(q31_t *)
+ };
+
+ n2 = fftLen;
+ n1 = n2;
+ n2 >>= 2u;
+ for (int k = fftLen / 4; k > 1; k >>= 2)
+ {
+ for (int i = 0; i < iter; i++)
+ {
+ float32_t const *p_rearranged_twiddle_tab_stride1 =
+ &S->rearranged_twiddle_stride1[
+ S->rearranged_twiddle_tab_stride1_arr[stage]];
+ float32_t const *p_rearranged_twiddle_tab_stride2 =
+ &S->rearranged_twiddle_stride2[
+ S->rearranged_twiddle_tab_stride2_arr[stage]];
+ float32_t const *p_rearranged_twiddle_tab_stride3 =
+ &S->rearranged_twiddle_stride3[
+ S->rearranged_twiddle_tab_stride3_arr[stage]];
+ float32_t const *pW1, *pW2, *pW3;
+ float32_t *inA = pSrc + CMPLX_DIM * i * n1;
+ float32_t *inB = inA + n2 * CMPLX_DIM;
+ float32_t *inC = inB + n2 * CMPLX_DIM;
+ float32_t *inD = inC + n2 * CMPLX_DIM;
+
+ pW1 = p_rearranged_twiddle_tab_stride1;
+ pW2 = p_rearranged_twiddle_tab_stride2;
+ pW3 = p_rearranged_twiddle_tab_stride3;
+
+ blkCnt = n2 / 2;
+ /*
+ * load 2 f32 complex pair
+ */
+ vecA = vldrwq_f32(inA);
+ vecC = vldrwq_f32(inC);
+ while (blkCnt > 0U)
+ {
+ vecB = vldrwq_f32(inB);
+ vecD = vldrwq_f32(inD);
+
+ vecSum0 = vecA + vecC; /* vecSum0 = vaddq(vecA, vecC) */
+ vecDiff0 = vecA - vecC; /* vecSum0 = vsubq(vecA, vecC) */
+
+ vecSum1 = vecB + vecD;
+ vecDiff1 = vecB - vecD;
+ /*
+ * [ 1 1 1 1 ] * [ A B C D ]' .* 1
+ */
+ vecTmp0 = vecSum0 + vecSum1;
+ vst1q(inA, vecTmp0);
+ inA += 4;
+ /*
+ * [ 1 -1 1 -1 ] * [ A B C D ]'
+ */
+ vecTmp0 = vecSum0 - vecSum1;
+ /*
+ * [ 1 -1 1 -1 ] * [ A B C D ]'.* W1
+ */
+ vecW = vld1q(pW2);
+ pW2 += 4;
+ vecTmp1 = MVE_CMPLX_MULT_FLT_AxB(vecW, vecTmp0);
+ vst1q(inB, vecTmp1);
+ inB += 4;
+
+ /*
+ * [ 1 -i -1 +i ] * [ A B C D ]'
+ */
+ vecTmp0 = MVE_CMPLX_ADD_A_ixB(vecDiff0, vecDiff1);
+ /*
+ * [ 1 -i -1 +i ] * [ A B C D ]'.* W2
+ */
+ vecW = vld1q(pW1);
+ pW1 += 4;
+ vecTmp1 = MVE_CMPLX_MULT_FLT_AxB(vecW, vecTmp0);
+ vst1q(inC, vecTmp1);
+ inC += 4;
+
+ /*
+ * [ 1 +i -1 -i ] * [ A B C D ]'
+ */
+ vecTmp0 = MVE_CMPLX_SUB_A_ixB(vecDiff0, vecDiff1);
+ /*
+ * [ 1 +i -1 -i ] * [ A B C D ]'.* W3
+ */
+ vecW = vld1q(pW3);
+ pW3 += 4;
+ vecTmp1 = MVE_CMPLX_MULT_FLT_AxB(vecW, vecTmp0);
+ vst1q(inD, vecTmp1);
+ inD += 4;
+
+ vecA = vldrwq_f32(inA);
+ vecC = vldrwq_f32(inC);
+
+ blkCnt--;
+ }
+ }
+ n1 = n2;
+ n2 >>= 2u;
+ iter = iter << 2;
+ stage++;
+ }
+
+ /*
+ * start of Last stage process
+ */
+ uint32x4_t vecScGathAddr = *(uint32x4_t *) strides;
+ vecScGathAddr = vecScGathAddr + (uint32_t) pSrc;
+
+ /*
+ * load scheduling
+ */
+ vecA = vldrwq_gather_base_wb_f32(&vecScGathAddr, 64);
+ vecC = vldrwq_gather_base_f32(vecScGathAddr, 16);
+
+ blkCnt = (fftLen >> 3);
+ while (blkCnt > 0U)
+ {
+ vecSum0 = vecA + vecC; /* vecSum0 = vaddq(vecA, vecC) */
+ vecDiff0 = vecA - vecC; /* vecSum0 = vsubq(vecA, vecC) */
+
+ vecB = vldrwq_gather_base_f32(vecScGathAddr, 8);
+ vecD = vldrwq_gather_base_f32(vecScGathAddr, 24);
+
+ vecSum1 = vecB + vecD;
+ vecDiff1 = vecB - vecD;
+
+ vecA = vldrwq_gather_base_wb_f32(&vecScGathAddr, 64);
+ vecC = vldrwq_gather_base_f32(vecScGathAddr, 16);
+
+ vecTmp0 = vecSum0 + vecSum1;
+ vecTmp0 = vecTmp0 * onebyfftLen;
+ vstrwq_scatter_base_f32(vecScGathAddr, -64, vecTmp0);
+
+ vecTmp0 = vecSum0 - vecSum1;
+ vecTmp0 = vecTmp0 * onebyfftLen;
+ vstrwq_scatter_base_f32(vecScGathAddr, -64 + 8, vecTmp0);
+
+ vecTmp0 = MVE_CMPLX_ADD_A_ixB(vecDiff0, vecDiff1);
+ vecTmp0 = vecTmp0 * onebyfftLen;
+ vstrwq_scatter_base_f32(vecScGathAddr, -64 + 16, vecTmp0);
+
+ vecTmp0 = MVE_CMPLX_SUB_A_ixB(vecDiff0, vecDiff1);
+ vecTmp0 = vecTmp0 * onebyfftLen;
+ vstrwq_scatter_base_f32(vecScGathAddr, -64 + 24, vecTmp0);
+
+ blkCnt--;
+ }
+
+ /*
+ * End of last stage process
+ */
+}
+
+static void arm_cfft_radix4by2_inverse_f32_mve(const arm_cfft_instance_f32 * S,float32_t *pSrc, uint32_t fftLen)
+{
+ float32_t const *pCoefVec;
+ float32_t const *pCoef = S->pTwiddle;
+ float32_t *pIn0, *pIn1;
+ uint32_t n2;
+ float32_t onebyfftLen = arm_inverse_fft_length_f32(fftLen);
+ uint32_t blkCnt;
+ f32x4_t vecIn0, vecIn1, vecSum, vecDiff;
+ f32x4_t vecCmplxTmp, vecTw;
+
+
+ n2 = fftLen >> 1;
+ pIn0 = pSrc;
+ pIn1 = pSrc + fftLen;
+ pCoefVec = pCoef;
+
+ blkCnt = n2 / 2;
+ while (blkCnt > 0U)
+ {
+ vecIn0 = *(f32x4_t *) pIn0;
+ vecIn1 = *(f32x4_t *) pIn1;
+ vecTw = vld1q(pCoefVec);
+ pCoefVec += 4;
+
+ vecSum = vecIn0 + vecIn1;
+ vecDiff = vecIn0 - vecIn1;
+
+ vecCmplxTmp = MVE_CMPLX_MULT_FLT_AxB(vecTw, vecDiff);
+
+ vst1q(pIn0, vecSum);
+ pIn0 += 4;
+ vst1q(pIn1, vecCmplxTmp);
+ pIn1 += 4;
+
+ blkCnt--;
+ }
+
+ _arm_radix4_butterfly_inverse_f32_mve(S, pSrc, n2, onebyfftLen);
+
+ _arm_radix4_butterfly_inverse_f32_mve(S, pSrc + fftLen, n2, onebyfftLen);
+}
+
+
+/**
+ @addtogroup ComplexFFT
+ @{
+ */
+
+/**
+ @brief Processing function for the floating-point complex FFT.
+ @param[in] S points to an instance of the floating-point CFFT structure
+ @param[in,out] p1 points to the complex data buffer of size <code>2*fftLen</code>. Processing occurs in-place
+ @param[in] ifftFlag flag that selects transform direction
+ - value = 0: forward transform
+ - value = 1: inverse transform
+ @param[in] bitReverseFlag flag that enables / disables bit reversal of output
+ - value = 0: disables bit reversal of output
+ - value = 1: enables bit reversal of output
+ @return none
+ */
+
+
+void arm_cfft_f32(
+ const arm_cfft_instance_f32 * S,
+ float32_t * pSrc,
+ uint8_t ifftFlag,
+ uint8_t bitReverseFlag)
+{
+ uint32_t fftLen = S->fftLen;
+
+ if (ifftFlag == 1U) {
+
+ switch (fftLen) {
+ case 16:
+ case 64:
+ case 256:
+ case 1024:
+ case 4096:
+ _arm_radix4_butterfly_inverse_f32_mve(S, pSrc, fftLen, arm_inverse_fft_length_f32(S->fftLen));
+ break;
+
+ case 32:
+ case 128:
+ case 512:
+ case 2048:
+ arm_cfft_radix4by2_inverse_f32_mve(S, pSrc, fftLen);
+ break;
+ }
+ } else {
+ switch (fftLen) {
+ case 16:
+ case 64:
+ case 256:
+ case 1024:
+ case 4096:
+ _arm_radix4_butterfly_f32_mve(S, pSrc, fftLen);
+ break;
+
+ case 32:
+ case 128:
+ case 512:
+ case 2048:
+ arm_cfft_radix4by2_f32_mve(S, pSrc, fftLen);
+ break;
+ }
+ }
+
+
+ if (bitReverseFlag)
+ {
+
+ arm_bitreversal_32_inpl_mve((uint32_t*)pSrc, S->bitRevLength, S->pBitRevTable);
+
+ }
+}
+
+
+#else
extern void arm_radix8_butterfly_f32(
float32_t * pSrc,
uint16_t fftLen,
@@ -76,8 +661,13 @@
inverse transform includes a scale of <code>1/fftLen</code> as part of the
calculation and this matches the textbook definition of the inverse FFT.
@par
- Pre-initialized data structures containing twiddle factors and bit reversal
- tables are provided and defined in <code>arm_const_structs.h</code>. Include
+ For the MVE version, the new arm_cfft_init_f32 initialization function is
+ <b>mandatory</b>. <b>Compilation flags are available to include only the required tables for the
+ needed FFTs.</b> Other FFT versions can continue to be initialized as
+ explained below.
+ @par
+ For not MVE versions, pre-initialized data structures containing twiddle factors
+ and bit reversal tables are provided and defined in <code>arm_const_structs.h</code>. Include
this header in your function and then pass one of the constant structures as
an argument to arm_cfft_f32. For example:
@par
@@ -127,6 +717,8 @@
break;
}
@endcode
+ @par
+ The new arm_cfft_init_f32 can also be used.
@par Q15 and Q31
The floating-point complex FFT uses a mixed-radix algorithm. Multiple radix-4
stages are performed along with a single radix-2 stage, as needed.
@@ -623,6 +1215,7 @@
}
}
}
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
/**
@} end of ComplexFFT group
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f32.c b/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f32.c
new file mode 100755
index 0000000..7e5e75d
--- /dev/null
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f32.c
@@ -0,0 +1,353 @@
+/* ----------------------------------------------------------------------
+ * Project: CMSIS DSP Library
+ * Title: arm_cfft_init_f32.c
+ * Description: Initialization function for cfft f32 instance
+ *
+ * $Date: 07. January 2020
+ * $Revision: V1.7.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define FFTINIT(EXT,SIZE) \
+ S->bitRevLength = arm_cfft_sR_##EXT##_len##SIZE.bitRevLength; \
+ S->pBitRevTable = arm_cfft_sR_##EXT##_len##SIZE.pBitRevTable; \
+ S->pTwiddle = arm_cfft_sR_##EXT##_len##SIZE.pTwiddle;
+
+/**
+ @addtogroup ComplexFFT
+ @{
+ */
+
+/**
+ @brief Initialization function for the cfft f32 function
+ @param[in,out] S points to an instance of the floating-point CFFT structure
+ @param[in] fftLen fft length (number of complex samples)
+ @return execution status
+ - \ref ARM_MATH_SUCCESS : Operation successful
+ - \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
+
+ @par Use of this function is mandatory only for the MVE version of the FFT.
+ Other versions can still initialize directly the data structure using
+ variables declared in arm_const_structs.h
+ */
+
+#include "arm_math.h"
+#include "arm_common_tables.h"
+#include "arm_const_structs.h"
+
+#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
+
+#include "arm_vec_fft.h"
+#include "arm_mve_tables.h"
+
+arm_status arm_cfft_radix4by2_rearrange_twiddles_f32(arm_cfft_instance_f32 *S, int twidCoefModifier)
+{
+
+ switch (S->fftLen >> (twidCoefModifier - 1)) {
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_4096)
+ case 4096U:
+ S->rearranged_twiddle_tab_stride1_arr = rearranged_twiddle_tab_stride1_arr_4096;
+ S->rearranged_twiddle_stride1 = rearranged_twiddle_stride1_4096;
+
+ S->rearranged_twiddle_tab_stride2_arr = rearranged_twiddle_tab_stride2_arr_4096;
+ S->rearranged_twiddle_stride2 = rearranged_twiddle_stride2_4096;
+
+ S->rearranged_twiddle_tab_stride3_arr = rearranged_twiddle_tab_stride3_arr_4096;
+ S->rearranged_twiddle_stride3 = rearranged_twiddle_stride3_4096;
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_1024) || defined(ARM_TABLE_BITREVIDX_FXT_2048)
+ case 1024U:
+ S->rearranged_twiddle_tab_stride1_arr = rearranged_twiddle_tab_stride1_arr_1024;
+ S->rearranged_twiddle_stride1 = rearranged_twiddle_stride1_1024;
+
+ S->rearranged_twiddle_tab_stride2_arr = rearranged_twiddle_tab_stride2_arr_1024;
+ S->rearranged_twiddle_stride2 = rearranged_twiddle_stride2_1024;
+
+ S->rearranged_twiddle_tab_stride3_arr = rearranged_twiddle_tab_stride3_arr_1024;
+ S->rearranged_twiddle_stride3 = rearranged_twiddle_stride3_1024;
+ break;
+ #endif
+
+ #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_256) || defined(ARM_TABLE_BITREVIDX_FXT_512)
+ case 256U:
+ S->rearranged_twiddle_tab_stride1_arr = rearranged_twiddle_tab_stride1_arr_256;
+ S->rearranged_twiddle_stride1 = rearranged_twiddle_stride1_256;
+
+ S->rearranged_twiddle_tab_stride2_arr = rearranged_twiddle_tab_stride2_arr_256;
+ S->rearranged_twiddle_stride2 = rearranged_twiddle_stride2_256;
+
+ S->rearranged_twiddle_tab_stride3_arr = rearranged_twiddle_tab_stride3_arr_256;
+ S->rearranged_twiddle_stride3 = rearranged_twiddle_stride3_256;
+
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_64) || defined(ARM_TABLE_BITREVIDX_FXT_128)
+ case 64U:
+ S->rearranged_twiddle_tab_stride1_arr = rearranged_twiddle_tab_stride1_arr_64;
+ S->rearranged_twiddle_stride1 = rearranged_twiddle_stride1_64;
+
+ S->rearranged_twiddle_tab_stride2_arr = rearranged_twiddle_tab_stride2_arr_64;
+ S->rearranged_twiddle_stride2 = rearranged_twiddle_stride2_64;
+
+ S->rearranged_twiddle_tab_stride3_arr = rearranged_twiddle_tab_stride3_arr_64;
+ S->rearranged_twiddle_stride3 = rearranged_twiddle_stride3_64;
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_16) || defined(ARM_TABLE_BITREVIDX_FXT_32)
+ case 16U:
+ S->rearranged_twiddle_tab_stride1_arr = rearranged_twiddle_tab_stride1_arr_16;
+ S->rearranged_twiddle_stride1 = rearranged_twiddle_stride1_16;
+
+ S->rearranged_twiddle_tab_stride2_arr = rearranged_twiddle_tab_stride2_arr_16;
+ S->rearranged_twiddle_stride2 = rearranged_twiddle_stride2_16;
+
+ S->rearranged_twiddle_tab_stride3_arr = rearranged_twiddle_tab_stride3_arr_16;
+ S->rearranged_twiddle_stride3 = rearranged_twiddle_stride3_16;
+ break;
+#endif
+
+ default:
+ return(ARM_MATH_ARGUMENT_ERROR);
+ break;
+ /* invalid sizes already filtered */
+ }
+
+ return(ARM_MATH_SUCCESS);
+
+}
+
+arm_status arm_cfft_init_f32(
+ arm_cfft_instance_f32 * S,
+ uint16_t fftLen)
+{
+
+ /* Initialise the default arm status */
+ arm_status status = ARM_MATH_SUCCESS;
+
+ /* Initialise the FFT length */
+ S->fftLen = fftLen;
+
+ /* Initialise the Twiddle coefficient pointer */
+ S->pTwiddle = NULL;
+
+
+ /* Initializations of Instance structure depending on the FFT length */
+ switch (S->fftLen) {
+ /* Initializations of structure parameters for 4096 point FFT */
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_4096)
+ case 4096U:
+ /* Initialise the bit reversal table modifier */
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_4096;
+ S->pTwiddle = (float32_t *)twiddleCoef_4096;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 1);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_2048)
+ /* Initializations of structure parameters for 2048 point FFT */
+ case 2048U:
+ /* Initialise the bit reversal table modifier */
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_2048;
+ S->pTwiddle = (float32_t *)twiddleCoef_2048;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 2);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_1024)
+ /* Initializations of structure parameters for 1024 point FFT */
+ case 1024U:
+ /* Initialise the bit reversal table modifier */
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_1024;
+ S->pTwiddle = (float32_t *)twiddleCoef_1024;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 1);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_512)
+ /* Initializations of structure parameters for 512 point FFT */
+ case 512U:
+ /* Initialise the bit reversal table modifier */
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_512;
+ S->pTwiddle = (float32_t *)twiddleCoef_512;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 2);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_256)
+ case 256U:
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_256;
+ S->pTwiddle = (float32_t *)twiddleCoef_256;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 1);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_128)
+ case 128U:
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_128;
+ S->pTwiddle = (float32_t *)twiddleCoef_128;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 2);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_64)
+ case 64U:
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_64;
+ S->pTwiddle = (float32_t *)twiddleCoef_64;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 1);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_32)
+ case 32U:
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_32;
+ S->pTwiddle = (float32_t *)twiddleCoef_32;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 2);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_BITREVIDX_FXT_16)
+ case 16U:
+ /* Initializations of structure parameters for 16 point FFT */
+ S->bitRevLength = ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH;
+ S->pBitRevTable = (uint16_t *)armBitRevIndexTable_fixed_16;
+ S->pTwiddle = (float32_t *)twiddleCoef_16;
+ status=arm_cfft_radix4by2_rearrange_twiddles_f32(S, 1);
+ break;
+#endif
+
+ default:
+ /* Reporting argument error if fftSize is not valid value */
+ status = ARM_MATH_ARGUMENT_ERROR;
+ break;
+ }
+
+
+ return (status);
+}
+#else
+arm_status arm_cfft_init_f32(
+ arm_cfft_instance_f32 * S,
+ uint16_t fftLen)
+{
+ /* Initialise the default arm status */
+ arm_status status = ARM_MATH_SUCCESS;
+
+ /* Initialise the FFT length */
+ S->fftLen = fftLen;
+
+ /* Initialise the Twiddle coefficient pointer */
+ S->pTwiddle = NULL;
+
+
+ /* Initializations of Instance structure depending on the FFT length */
+ switch (S->fftLen) {
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_4096) && defined(ARM_TABLE_BITREVIDX_FLT_4096))
+ /* Initializations of structure parameters for 4096 point FFT */
+ case 4096U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f32,4096);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_2048) && defined(ARM_TABLE_BITREVIDX_FLT_2048))
+ /* Initializations of structure parameters for 2048 point FFT */
+ case 2048U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f32,2048);
+
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_1024) && defined(ARM_TABLE_BITREVIDX_FLT_1024))
+ /* Initializations of structure parameters for 1024 point FFT */
+ case 1024U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f32,1024);
+
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_512) && defined(ARM_TABLE_BITREVIDX_FLT_512))
+ /* Initializations of structure parameters for 512 point FFT */
+ case 512U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f32,512);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_256) && defined(ARM_TABLE_BITREVIDX_FLT_256))
+ case 256U:
+ FFTINIT(f32,256);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_128) && defined(ARM_TABLE_BITREVIDX_FLT_128))
+ case 128U:
+ FFTINIT(f32,128);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_64) && defined(ARM_TABLE_BITREVIDX_FLT_64))
+ case 64U:
+ FFTINIT(f32,64);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_32) && defined(ARM_TABLE_BITREVIDX_FLT_32))
+ case 32U:
+ FFTINIT(f32,32);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_16) && defined(ARM_TABLE_BITREVIDX_FLT_16))
+ case 16U:
+ /* Initializations of structure parameters for 16 point FFT */
+ FFTINIT(f32,16);
+ break;
+#endif
+
+ default:
+ /* Reporting argument error if fftSize is not valid value */
+ status = ARM_MATH_ARGUMENT_ERROR;
+ break;
+ }
+
+
+ return (status);
+}
+#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
+
+/**
+ @} end of ComplexFFT group
+ */
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c
index de373b1..b657e19 100644
--- a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c
@@ -50,17 +50,17 @@
arm_status arm_rfft_32_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 16U;
- S->fftLenRFFT = 32U;
+ status=arm_cfft_init_f32(&(S->Sint),16);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
- Sint->bitRevLength = ARMBITREVINDEXTABLE_16_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable16;
- Sint->pTwiddle = (float32_t *) twiddleCoef_16;
+ S->fftLenRFFT = 32U;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_32;
return ARM_MATH_SUCCESS;
@@ -79,17 +79,17 @@
arm_status arm_rfft_64_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 32U;
+ status=arm_cfft_init_f32(&(S->Sint),32);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
S->fftLenRFFT = 64U;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_32_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable32;
- Sint->pTwiddle = (float32_t *) twiddleCoef_32;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_64;
return ARM_MATH_SUCCESS;
@@ -108,17 +108,17 @@
arm_status arm_rfft_128_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 64U;
- S->fftLenRFFT = 128U;
+ status=arm_cfft_init_f32(&(S->Sint),64);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
+ S->fftLenRFFT = 128;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_64_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable64;
- Sint->pTwiddle = (float32_t *) twiddleCoef_64;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_128;
return ARM_MATH_SUCCESS;
@@ -137,17 +137,17 @@
arm_status arm_rfft_256_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 128U;
+ status=arm_cfft_init_f32(&(S->Sint),128);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
S->fftLenRFFT = 256U;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_128_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable128;
- Sint->pTwiddle = (float32_t *) twiddleCoef_128;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_256;
return ARM_MATH_SUCCESS;
@@ -166,17 +166,17 @@
arm_status arm_rfft_512_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 256U;
+ status=arm_cfft_init_f32(&(S->Sint),256);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
S->fftLenRFFT = 512U;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_256_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable256;
- Sint->pTwiddle = (float32_t *) twiddleCoef_256;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_512;
return ARM_MATH_SUCCESS;
@@ -194,17 +194,17 @@
arm_status arm_rfft_1024_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 512U;
+ status=arm_cfft_init_f32(&(S->Sint),512);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
S->fftLenRFFT = 1024U;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_512_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable512;
- Sint->pTwiddle = (float32_t *) twiddleCoef_512;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_1024;
return ARM_MATH_SUCCESS;
@@ -221,17 +221,17 @@
*/
arm_status arm_rfft_2048_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 1024U;
+ status=arm_cfft_init_f32(&(S->Sint),1024);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
S->fftLenRFFT = 2048U;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_1024_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable1024;
- Sint->pTwiddle = (float32_t *) twiddleCoef_1024;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_2048;
return ARM_MATH_SUCCESS;
@@ -249,17 +249,17 @@
arm_status arm_rfft_4096_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
- arm_cfft_instance_f32 * Sint;
+ arm_status status;
if( !S ) return ARM_MATH_ARGUMENT_ERROR;
- Sint = &(S->Sint);
- Sint->fftLen = 2048U;
+ status=arm_cfft_init_f32(&(S->Sint),2048);
+ if (status != ARM_MATH_SUCCESS)
+ {
+ return(status);
+ }
S->fftLenRFFT = 4096U;
- Sint->bitRevLength = ARMBITREVINDEXTABLE_2048_TABLE_LENGTH;
- Sint->pBitRevTable = (uint16_t *)armBitRevIndexTable2048;
- Sint->pTwiddle = (float32_t *) twiddleCoef_2048;
S->pTwiddleRFFT = (float32_t *) twiddleCoef_rfft_4096;
return ARM_MATH_SUCCESS;
diff --git a/CMSIS/DSP/Source/fft.cmake b/CMSIS/DSP/Source/fft.cmake
index b4df288..2356c2b 100644
--- a/CMSIS/DSP/Source/fft.cmake
+++ b/CMSIS/DSP/Source/fft.cmake
@@ -7,48 +7,84 @@
if (CONFIGTABLE AND CFFT_F32_16)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_16)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_16)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_16)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_32)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_32)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_32)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_32)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_64)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_64)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_64)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_64)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_128)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_128)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_128)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_128)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_256)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_256)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_256)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_256)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_512)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_512)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_512)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_512)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_1024)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_1024)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_1024)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_1024)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_2048)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_2048)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_2048)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_2048)
endif()
+endif()
if (CONFIGTABLE AND CFFT_F32_4096)
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096)
+if (HELIUM OR MVEF)
+ target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FXT_4096)
+else()
target_compile_definitions(${PROJECT} PUBLIC ARM_TABLE_BITREVIDX_FLT_4096)
endif()
+endif()
#######################################
diff --git a/CMSIS/DSP/Testing/Include/Tests/TransformCF32.h b/CMSIS/DSP/Testing/Include/Tests/TransformCF32.h
index 8d49505..3738964 100755
--- a/CMSIS/DSP/Testing/Include/Tests/TransformCF32.h
+++ b/CMSIS/DSP/Testing/Include/Tests/TransformCF32.h
@@ -14,8 +14,10 @@
Client::RefPattern<float32_t> ref;
- const arm_cfft_instance_f32 *instCfftF32;
+ arm_cfft_instance_f32 varInstCfftF32;
int ifft;
+
+ arm_status status;
};
diff --git a/CMSIS/DSP/Testing/Source/Tests/TransformCF32.cpp b/CMSIS/DSP/Testing/Source/Tests/TransformCF32.cpp
index 5c68d5c..7321e46 100755
--- a/CMSIS/DSP/Testing/Source/Tests/TransformCF32.cpp
+++ b/CMSIS/DSP/Testing/Source/Tests/TransformCF32.cpp
@@ -14,27 +14,28 @@
float32_t *outfftp = outputfft.ptr();
memcpy(outfftp,inp,sizeof(float32_t)*input.nbSamples());
+
+ ASSERT_TRUE(status == ARM_MATH_SUCCESS);
arm_cfft_f32(
- this->instCfftF32,
+ &(this->varInstCfftF32),
outfftp,
this->ifft,
1);
+
+
ASSERT_SNR(outputfft,ref,(float32_t)SNR_THRESHOLD);
ASSERT_EMPTY_TAIL(outputfft);
+
+
}
-
-
-
void TransformCF32::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
{
-
-
switch(id)
{
case TransformCF32::TEST_CFFT_F32_1:
@@ -42,7 +43,7 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_16_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_16_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len16;
+ status=arm_cfft_init_f32(&varInstCfftF32,16);
this->ifft=0;
@@ -53,7 +54,7 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_16_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_16_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len16;
+ status=arm_cfft_init_f32(&varInstCfftF32,16);
this->ifft=1;
@@ -64,7 +65,7 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_32_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_32_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len32;
+ status=arm_cfft_init_f32(&varInstCfftF32,32);
this->ifft=0;
@@ -75,7 +76,7 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_32_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_32_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len32;
+ status=arm_cfft_init_f32(&varInstCfftF32,32);
this->ifft=1;
@@ -86,7 +87,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_64_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_64_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len64;
+ status=arm_cfft_init_f32(&varInstCfftF32,64);
+
this->ifft=0;
@@ -97,7 +99,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_64_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_64_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len64;
+ status=arm_cfft_init_f32(&varInstCfftF32,64);
+
this->ifft=1;
@@ -108,7 +111,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_128_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_128_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len128;
+ status=arm_cfft_init_f32(&varInstCfftF32,128);
+
this->ifft=0;
@@ -119,7 +123,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_128_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_128_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len128;
+ status=arm_cfft_init_f32(&varInstCfftF32,128);
+
this->ifft=1;
@@ -130,7 +135,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_256_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_256_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len256;
+ status=arm_cfft_init_f32(&varInstCfftF32,256);
+
this->ifft=0;
@@ -141,7 +147,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_256_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_256_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len256;
+ status=arm_cfft_init_f32(&varInstCfftF32,256);
+
this->ifft=1;
@@ -152,7 +159,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_512_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_512_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len512;
+ status=arm_cfft_init_f32(&varInstCfftF32,512);
+
this->ifft=0;
@@ -163,7 +171,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_512_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_512_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len512;
+ status=arm_cfft_init_f32(&varInstCfftF32,512);
+
this->ifft=1;
@@ -174,7 +183,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_1024_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_1024_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len1024;
+ status=arm_cfft_init_f32(&varInstCfftF32,1024);
+
this->ifft=0;
@@ -185,7 +195,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_1024_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_1024_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len1024;
+ status=arm_cfft_init_f32(&varInstCfftF32,1024);
+
this->ifft=1;
@@ -196,7 +207,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_2048_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_2048_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len2048;
+ status=arm_cfft_init_f32(&varInstCfftF32,2048);
+
this->ifft=0;
@@ -207,7 +219,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_2048_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_2048_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len2048;
+ status=arm_cfft_init_f32(&varInstCfftF32,2048);
+
this->ifft=1;
@@ -218,7 +231,8 @@
input.reload(TransformCF32::INPUTS_CFFT_NOISY_4096_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_NOISY_4096_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len4096;
+ status=arm_cfft_init_f32(&varInstCfftF32,4096);
+
this->ifft=0;
@@ -229,7 +243,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_NOISY_4096_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_NOISY_4096_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len4096;
+ status=arm_cfft_init_f32(&varInstCfftF32,4096);
+
this->ifft=1;
@@ -242,7 +257,7 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_16_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_16_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len16;
+ status=arm_cfft_init_f32(&varInstCfftF32,16);
this->ifft=0;
@@ -253,7 +268,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_16_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_16_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len16;
+ status=arm_cfft_init_f32(&varInstCfftF32,16);
+
this->ifft=1;
@@ -264,7 +280,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_32_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_32_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len32;
+ status=arm_cfft_init_f32(&varInstCfftF32,32);
+
this->ifft=0;
@@ -275,7 +292,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_32_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_32_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len32;
+ status=arm_cfft_init_f32(&varInstCfftF32,32);
+
this->ifft=1;
@@ -286,7 +304,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_64_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_64_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len64;
+ status=arm_cfft_init_f32(&varInstCfftF32,64);
+
this->ifft=0;
@@ -297,7 +316,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_64_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_64_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len64;
+ status=arm_cfft_init_f32(&varInstCfftF32,64);
+
this->ifft=1;
@@ -308,7 +328,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_128_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_128_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len128;
+ status=arm_cfft_init_f32(&varInstCfftF32,128);
+
this->ifft=0;
@@ -319,7 +340,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_128_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_128_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len128;
+ status=arm_cfft_init_f32(&varInstCfftF32,128);
+
this->ifft=1;
@@ -330,7 +352,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_256_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_256_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len256;
+ status=arm_cfft_init_f32(&varInstCfftF32,256);
+
this->ifft=0;
@@ -341,7 +364,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_256_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_256_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len256;
+ status=arm_cfft_init_f32(&varInstCfftF32,256);
+
this->ifft=1;
@@ -352,7 +376,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_512_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_512_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len512;
+ status=arm_cfft_init_f32(&varInstCfftF32,512);
+
this->ifft=0;
@@ -363,7 +388,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_512_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_512_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len512;
+ status=arm_cfft_init_f32(&varInstCfftF32,512);
+
this->ifft=1;
@@ -374,7 +400,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_1024_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_1024_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len1024;
+ status=arm_cfft_init_f32(&varInstCfftF32,1024);
+
this->ifft=0;
@@ -385,7 +412,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_1024_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_1024_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len1024;
+ status=arm_cfft_init_f32(&varInstCfftF32,1024);
+
this->ifft=1;
@@ -396,7 +424,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_2048_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_2048_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len2048;
+ status=arm_cfft_init_f32(&varInstCfftF32,2048);
+
this->ifft=0;
@@ -407,7 +436,8 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_2048_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_2048_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len2048;
+ status=arm_cfft_init_f32(&varInstCfftF32,2048);
+
this->ifft=1;
@@ -418,7 +448,8 @@
input.reload(TransformCF32::INPUTS_CFFT_STEP_4096_F32_ID,mgr);
ref.reload( TransformCF32::REF_CFFT_STEP_4096_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len4096;
+ status=arm_cfft_init_f32(&varInstCfftF32,4096);
+
this->ifft=0;
@@ -429,13 +460,15 @@
input.reload(TransformCF32::INPUTS_CIFFT_STEP_4096_F32_ID,mgr);
ref.reload( TransformCF32::INPUTS_CFFT_STEP_4096_F32_ID,mgr);
- instCfftF32 = &arm_cfft_sR_f32_len4096;
+ status=arm_cfft_init_f32(&varInstCfftF32,4096);
+
this->ifft=1;
break;
+
}
outputfft.create(ref.nbSamples(),TransformCF32::OUTPUT_CFFT_F32_ID,mgr);
diff --git a/CMSIS/DSP/Testing/desc.txt b/CMSIS/DSP/Testing/desc.txt
index fae0e38..3af7ce7 100644
--- a/CMSIS/DSP/Testing/desc.txt
+++ b/CMSIS/DSP/Testing/desc.txt
@@ -2564,6 +2564,7 @@
cifft_step_1024_f32:test_cfft_f32
cifft_step_2048_f32:test_cfft_f32
cifft_step_4096_f32:test_cfft_f32
+
}
}
diff --git a/CMSIS/DoxyGen/DSP/src/history.txt b/CMSIS/DoxyGen/DSP/src/history.txt
index 83a6647..41c64ba 100644
--- a/CMSIS/DoxyGen/DSP/src/history.txt
+++ b/CMSIS/DoxyGen/DSP/src/history.txt
@@ -9,43 +9,45 @@
<tr>
<td>V1.8.0</td>
<td>
- - Helium implementation of lots of functions in the CMSIS-DSP.
+ Helium implementation of lots of functions in the CMSIS-DSP.
More will be added in future releases.
+ - ARM_MATH_HELIUM, ARM_MATH_MVEF or ARM_MATH_MVEI must be defined.
- - New folder SVMFunctions : Support vector machines.
- Training must be done with scikit-learn.
+ New folder SVMFunctions : Support vector machines.
+ - Training must be done with scikit-learn.
- DSP/Examples/ARM/arm_svm_example is showing how to train with scikit-learn
and dump the result for use with CMSIS-DSP
- - New folder BayesFunctions : Functions related to Bayesian probability.
+ New folder BayesFunctions : Functions related to Bayesian probability.
In this version only a naive gaussian classifier.
- Training must be done with scikit-learn.
+ - Training must be done with scikit-learn.
- DSP/Examples/ARM/arm_bayes_example is showing how to train with scikit-learn
and dump the result for use with CMSIS-DSP
- - New folder DistanceFunctions: Distance functions for clustering algorithms.
+ New folder DistanceFunctions:
+ - Distance functions for clustering algorithms.
- - New BasicMathFunctions:
- Elementwise bit operations.
+ New BasicMathFunctions:
+ - Elementwise bit operations.
- - New support functions:
- arm_barycenter_f32 and arm_weighted_sum_f32.
- Sorting functions.
- Spline interpolation.
+ New support functions:
+ - arm_barycenter_f32 and arm_weighted_sum_f32.
+ - Sorting functions.
+ - Spline interpolation.
- - New statistics functions:
- arm_entropy_f32, arm_kullback_leibler_f32, arm_logsumexp_f32
+ New statistics functions:
+ - arm_entropy_f32, arm_kullback_leibler_f32, arm_logsumexp_f32
and arm_logsumexp_dot_prod_f32
- - New testing framework:
- Developed for our internal needs. We have released it but won't give
+ New testing framework:
+ - Developed for our internal needs. We have released it but won't give
support for the first few releases since it is a work in progress.
- - Improvements to the cmake build:
- It is more easy to switch toolchains. CMAKE_PREFIX_PATH can be used.
+ Improvements to the cmake build:
+ - It is more easy to switch toolchains. CMAKE_PREFIX_PATH can be used.
- - The new folders SVMFunctions, BayesFunctions and DistanceFunctions are not
- built by default in the MDK or ArmDS projects. You'll need to rebuild those folders
+ The new folders SVMFunctions, BayesFunctions and DistanceFunctions and the new functions
+ are not built by default in the MDK or ArmDS projects. You'll need to rebuild using cmake
if you want to use those new functions.
</td>