/* fft2048.c complex data stored re, im, re, im, re, ... im */ void fft2048(float Z[4096]) /* input data points and output [0] to [4095] */ { static float W[4096]; /* scratch vector, used many times, */ static float E[2050] = /* constants for FFT algorithm */ {1.0, 0.0, 0.999995, 0.00306796, 0.999981, 0.00613589, 0.999958, 0.00920376, 0.999925, 0.0122715, 0.999882, 0.0153392, 0.999831, 0.0184067, 0.999769, 0.0214741, 0.999699, 0.0245412, 0.999619, 0.0276081, 0.999529, 0.0306748, 0.999431, 0.0337412, 0.999322, 0.0368072, 0.999205, 0.0398729, 0.999078, 0.0429383, 0.998941, 0.0460032, 0.998796, 0.0490677, 0.99864, 0.0521317, 0.998476, 0.0551952, 0.998302, 0.0582583, 0.998118, 0.0613207, 0.997925, 0.0643826, 0.997723, 0.0674439, 0.997512, 0.0705046, 0.99729, 0.0735646, 0.99706, 0.0766239, 0.99682, 0.0796824, 0.996571, 0.0827403, 0.996313, 0.0857973, 0.996045, 0.0888535, 0.995768, 0.091909, 0.995481, 0.0949635, 0.995185, 0.0980171, 0.994879, 0.10107, 0.994565, 0.104122, 0.994241, 0.107172, 0.993907, 0.110222, 0.993564, 0.113271, 0.993212, 0.116319, 0.99285, 0.119365, 0.99248, 0.122411, 0.992099, 0.125455, 0.99171, 0.128498, 0.991311, 0.13154, 0.990903, 0.134581, 0.990485, 0.13762, 0.990058, 0.140658, 0.989622, 0.143695, 0.989177, 0.14673, 0.988722, 0.149765, 0.988258, 0.152797, 0.987784, 0.155828, 0.987302, 0.158858, 0.986809, 0.161886, 0.986308, 0.164913, 0.985798, 0.167938, 0.985278, 0.170962, 0.984749, 0.173984, 0.98421, 0.177004, 0.983662, 0.180023, 0.983106, 0.18304, 0.982539, 0.186055, 0.981964, 0.189069, 0.981379, 0.19208, 0.980785, 0.19509, 0.980182, 0.198098, 0.97957, 0.201105, 0.978948, 0.204109, 0.978318, 0.207111, 0.977677, 0.210112, 0.977028, 0.21311, 0.97637, 0.216107, 0.975702, 0.219101, 0.975025, 0.222094, 0.974339, 0.225084, 0.973644, 0.228072, 0.97294, 0.231058, 0.972227, 0.234042, 0.971504, 0.237024, 0.970772, 0.240003, 0.970031, 0.24298, 0.969281, 0.245955, 0.968522, 0.248928, 0.967754, 0.251898, 0.966977, 0.254866, 0.96619, 0.257831, 0.965395, 0.260794, 0.96459, 0.263755, 0.963776, 0.266713, 0.962953, 0.269668, 0.962121, 0.272621, 0.961281, 0.275572, 0.960431, 0.27852, 0.959572, 0.281465, 0.958704, 0.284408, 0.957826, 0.287347, 0.95694, 0.290285, 0.956045, 0.293219, 0.955141, 0.296151, 0.954228, 0.29908, 0.953306, 0.302006, 0.952375, 0.304929, 0.951435, 0.30785, 0.950486, 0.310767, 0.949528, 0.313682, 0.948561, 0.316593, 0.947586, 0.319502, 0.946601, 0.322408, 0.945607, 0.32531, 0.944605, 0.32821, 0.943594, 0.331106, 0.942573, 0.334, 0.941544, 0.33689, 0.940506, 0.339777, 0.939459, 0.342661, 0.938404, 0.345541, 0.937339, 0.348419, 0.936266, 0.351293, 0.935184, 0.354164, 0.934093, 0.357031, 0.932993, 0.359895, 0.931884, 0.362756, 0.930767, 0.365613, 0.929641, 0.368467, 0.928506, 0.371317, 0.927363, 0.374164, 0.92621, 0.377007, 0.925049, 0.379847, 0.92388, 0.382683, 0.922701, 0.385516, 0.921514, 0.388345, 0.920318, 0.39117, 0.919114, 0.393992, 0.917901, 0.39681, 0.916679, 0.399624, 0.915449, 0.402435, 0.91421, 0.405241, 0.912962, 0.408044, 0.911706, 0.410843, 0.910441, 0.413638, 0.909168, 0.41643, 0.907886, 0.419217, 0.906596, 0.422, 0.905297, 0.42478, 0.903989, 0.427555, 0.902673, 0.430326, 0.901349, 0.433094, 0.900016, 0.435857, 0.898675, 0.438616, 0.897325, 0.441371, 0.895966, 0.444122, 0.894599, 0.446869, 0.893224, 0.449611, 0.891841, 0.45235, 0.890449, 0.455084, 0.889048, 0.457813, 0.88764, 0.460539, 0.886223, 0.46326, 0.884797, 0.465977, 0.883363, 0.468689, 0.881921, 0.471397, 0.880471, 0.4741, 0.879012, 0.476799, 0.877545, 0.479494, 0.87607, 0.482184, 0.874587, 0.484869, 0.873095, 0.48755, 0.871595, 0.490226, 0.870087, 0.492898, 0.868571, 0.495565, 0.867046, 0.498228, 0.865514, 0.500885, 0.863973, 0.503538, 0.862424, 0.506187, 0.860867, 0.50883, 0.859302, 0.511469, 0.857729, 0.514103, 0.856147, 0.516732, 0.854558, 0.519356, 0.852961, 0.521975, 0.851355, 0.52459, 0.849742, 0.527199, 0.84812, 0.529804, 0.846491, 0.532403, 0.844854, 0.534998, 0.843208, 0.537587, 0.841555, 0.540172, 0.839894, 0.542751, 0.838225, 0.545325, 0.836548, 0.547894, 0.834863, 0.550458, 0.83317, 0.553017, 0.83147, 0.55557, 0.829761, 0.558119, 0.828045, 0.560662, 0.826321, 0.563199, 0.824589, 0.565732, 0.82285, 0.568259, 0.821103, 0.570781, 0.819348, 0.573297, 0.817585, 0.575808, 0.815814, 0.578314, 0.814036, 0.580814, 0.812251, 0.583309, 0.810457, 0.585798, 0.808656, 0.588282, 0.806848, 0.59076, 0.805031, 0.593232, 0.803208, 0.595699, 0.801376, 0.598161, 0.799537, 0.600617, 0.797691, 0.603067, 0.795837, 0.605511, 0.793975, 0.60795, 0.792107, 0.610383, 0.79023, 0.61281, 0.788346, 0.615232, 0.786455, 0.617647, 0.784557, 0.620057, 0.782651, 0.622461, 0.780737, 0.62486, 0.778816, 0.627252, 0.776888, 0.629638, 0.774953, 0.632019, 0.77301, 0.634393, 0.77106, 0.636762, 0.769103, 0.639125, 0.767139, 0.641481, 0.765167, 0.643832, 0.763188, 0.646176, 0.761202, 0.648514, 0.759209, 0.650847, 0.757209, 0.653173, 0.755201, 0.655493, 0.753187, 0.657807, 0.751165, 0.660114, 0.749136, 0.662416, 0.747101, 0.664711, 0.745058, 0.667, 0.743008, 0.669283, 0.740951, 0.671559, 0.738887, 0.673829, 0.736817, 0.676093, 0.734739, 0.67835, 0.732654, 0.680601, 0.730563, 0.682845, 0.728464, 0.685084, 0.726359, 0.687315, 0.724247, 0.689541, 0.722128, 0.691759, 0.720003, 0.693971, 0.71787, 0.696177, 0.715731, 0.698376, 0.713585, 0.700569, 0.711432, 0.702755, 0.709273, 0.704934, 0.707107, 0.707107, 0.704934, 0.709273, 0.702755, 0.711432, 0.700569, 0.713585, 0.698376, 0.715731, 0.696177, 0.71787, 0.693971, 0.720003, 0.691759, 0.722128, 0.689541, 0.724247, 0.687315, 0.726359, 0.685084, 0.728464, 0.682845, 0.730563, 0.680601, 0.732654, 0.67835, 0.734739, 0.676093, 0.736817, 0.673829, 0.738887, 0.671559, 0.740951, 0.669283, 0.743008, 0.667, 0.745058, 0.664711, 0.747101, 0.662416, 0.749136, 0.660114, 0.751165, 0.657807, 0.753187, 0.655493, 0.755201, 0.653173, 0.757209, 0.650847, 0.759209, 0.648514, 0.761202, 0.646176, 0.763188, 0.643832, 0.765167, 0.641481, 0.767139, 0.639125, 0.769103, 0.636762, 0.77106, 0.634393, 0.77301, 0.632019, 0.774953, 0.629638, 0.776888, 0.627252, 0.778816, 0.62486, 0.780737, 0.622461, 0.782651, 0.620057, 0.784557, 0.617647, 0.786455, 0.615232, 0.788346, 0.61281, 0.79023, 0.610383, 0.792107, 0.60795, 0.793975, 0.605511, 0.795837, 0.603067, 0.797691, 0.600617, 0.799537, 0.598161, 0.801376, 0.595699, 0.803208, 0.593232, 0.805031, 0.59076, 0.806848, 0.588282, 0.808656, 0.585798, 0.810457, 0.583309, 0.812251, 0.580814, 0.814036, 0.578314, 0.815814, 0.575808, 0.817585, 0.573297, 0.819348, 0.570781, 0.821103, 0.568259, 0.82285, 0.565732, 0.824589, 0.563199, 0.826321, 0.560662, 0.828045, 0.558119, 0.829761, 0.55557, 0.83147, 0.553017, 0.83317, 0.550458, 0.834863, 0.547894, 0.836548, 0.545325, 0.838225, 0.542751, 0.839894, 0.540172, 0.841555, 0.537587, 0.843208, 0.534998, 0.844854, 0.532403, 0.846491, 0.529804, 0.84812, 0.527199, 0.849742, 0.52459, 0.851355, 0.521975, 0.852961, 0.519356, 0.854558, 0.516732, 0.856147, 0.514103, 0.857729, 0.511469, 0.859302, 0.50883, 0.860867, 0.506187, 0.862424, 0.503538, 0.863973, 0.500885, 0.865514, 0.498228, 0.867046, 0.495565, 0.868571, 0.492898, 0.870087, 0.490226, 0.871595, 0.48755, 0.873095, 0.484869, 0.874587, 0.482184, 0.87607, 0.479494, 0.877545, 0.476799, 0.879012, 0.4741, 0.880471, 0.471397, 0.881921, 0.468689, 0.883363, 0.465977, 0.884797, 0.46326, 0.886223, 0.460539, 0.88764, 0.457813, 0.889048, 0.455084, 0.890449, 0.45235, 0.891841, 0.449611, 0.893224, 0.446869, 0.894599, 0.444122, 0.895966, 0.441371, 0.897325, 0.438616, 0.898675, 0.435857, 0.900016, 0.433094, 0.901349, 0.430326, 0.902673, 0.427555, 0.903989, 0.42478, 0.905297, 0.422, 0.906596, 0.419217, 0.907886, 0.41643, 0.909168, 0.413638, 0.910441, 0.410843, 0.911706, 0.408044, 0.912962, 0.405241, 0.91421, 0.402435, 0.915449, 0.399624, 0.916679, 0.39681, 0.917901, 0.393992, 0.919114, 0.39117, 0.920318, 0.388345, 0.921514, 0.385516, 0.922701, 0.382683, 0.92388, 0.379847, 0.925049, 0.377007, 0.92621, 0.374164, 0.927363, 0.371317, 0.928506, 0.368467, 0.929641, 0.365613, 0.930767, 0.362756, 0.931884, 0.359895, 0.932993, 0.357031, 0.934093, 0.354164, 0.935184, 0.351293, 0.936266, 0.348419, 0.937339, 0.345541, 0.938404, 0.342661, 0.939459, 0.339777, 0.940506, 0.33689, 0.941544, 0.334, 0.942573, 0.331106, 0.943594, 0.32821, 0.944605, 0.32531, 0.945607, 0.322408, 0.946601, 0.319502, 0.947586, 0.316593, 0.948561, 0.313682, 0.949528, 0.310767, 0.950486, 0.30785, 0.951435, 0.304929, 0.952375, 0.302006, 0.953306, 0.29908, 0.954228, 0.296151, 0.955141, 0.293219, 0.956045, 0.290285, 0.95694, 0.287347, 0.957826, 0.284408, 0.958704, 0.281465, 0.959572, 0.27852, 0.960431, 0.275572, 0.961281, 0.272621, 0.962121, 0.269668, 0.962953, 0.266713, 0.963776, 0.263755, 0.96459, 0.260794, 0.965395, 0.257831, 0.96619, 0.254866, 0.966977, 0.251898, 0.967754, 0.248928, 0.968522, 0.245955, 0.969281, 0.24298, 0.970031, 0.240003, 0.970772, 0.237024, 0.971504, 0.234042, 0.972227, 0.231058, 0.97294, 0.228072, 0.973644, 0.225084, 0.974339, 0.222094, 0.975025, 0.219101, 0.975702, 0.216107, 0.97637, 0.21311, 0.977028, 0.210112, 0.977677, 0.207111, 0.978318, 0.204109, 0.978948, 0.201105, 0.97957, 0.198098, 0.980182, 0.19509, 0.980785, 0.19208, 0.981379, 0.189069, 0.981964, 0.186055, 0.982539, 0.18304, 0.983106, 0.180023, 0.983662, 0.177004, 0.98421, 0.173984, 0.984749, 0.170962, 0.985278, 0.167938, 0.985798, 0.164913, 0.986308, 0.161886, 0.986809, 0.158858, 0.987302, 0.155828, 0.987784, 0.152797, 0.988258, 0.149765, 0.988722, 0.14673, 0.989177, 0.143695, 0.989622, 0.140658, 0.990058, 0.13762, 0.990485, 0.134581, 0.990903, 0.13154, 0.991311, 0.128498, 0.99171, 0.125455, 0.992099, 0.122411, 0.99248, 0.119365, 0.99285, 0.116319, 0.993212, 0.113271, 0.993564, 0.110222, 0.993907, 0.107172, 0.994241, 0.104122, 0.994565, 0.10107, 0.994879, 0.0980171, 0.995185, 0.0949635, 0.995481, 0.091909, 0.995768, 0.0888535, 0.996045, 0.0857973, 0.996313, 0.0827403, 0.996571, 0.0796824, 0.99682, 0.0766239, 0.99706, 0.0735646, 0.99729, 0.0705046, 0.997512, 0.0674439, 0.997723, 0.0643826, 0.997925, 0.0613207, 0.998118, 0.0582583, 0.998302, 0.0551952, 0.998476, 0.0521317, 0.99864, 0.0490677, 0.998796, 0.0460032, 0.998941, 0.0429383, 0.999078, 0.0398729, 0.999205, 0.0368072, 0.999322, 0.0337412, 0.999431, 0.0306748, 0.999529, 0.0276081, 0.999619, 0.0245412, 0.999699, 0.0214741, 0.999769, 0.0184067, 0.999831, 0.0153392, 0.999882, 0.0122715, 0.999925, 0.00920376, 0.999958, 0.00613589, 0.999981, 0.00306796, 0.999995, 0.0, 1.0, -0.00306796, 0.999995, -0.00613589, 0.999981, -0.00920376, 0.999958, -0.0122715, 0.999925, -0.0153392, 0.999882, -0.0184067, 0.999831, -0.0214741, 0.999769, -0.0245412, 0.999699, -0.0276081, 0.999619, -0.0306748, 0.999529, -0.0337412, 0.999431, -0.0368072, 0.999322, -0.0398729, 0.999205, -0.0429383, 0.999078, -0.0460032, 0.998941, -0.0490677, 0.998796, -0.0521317, 0.99864, -0.0551952, 0.998476, -0.0582583, 0.998302, -0.0613207, 0.998118, -0.0643826, 0.997925, -0.0674439, 0.997723, -0.0705046, 0.997512, -0.0735646, 0.99729, -0.0766239, 0.99706, -0.0796824, 0.99682, -0.0827403, 0.996571, -0.0857973, 0.996313, -0.0888535, 0.996045, -0.091909, 0.995768, -0.0949635, 0.995481, -0.0980171, 0.995185, -0.10107, 0.994879, -0.104122, 0.994565, -0.107172, 0.994241, -0.110222, 0.993907, -0.113271, 0.993564, -0.116319, 0.993212, -0.119365, 0.99285, -0.122411, 0.99248, -0.125455, 0.992099, -0.128498, 0.99171, -0.13154, 0.991311, -0.134581, 0.990903, -0.13762, 0.990485, -0.140658, 0.990058, -0.143695, 0.989622, -0.14673, 0.989177, -0.149765, 0.988722, -0.152797, 0.988258, -0.155828, 0.987784, -0.158858, 0.987302, -0.161886, 0.986809, -0.164913, 0.986308, -0.167938, 0.985798, -0.170962, 0.985278, -0.173984, 0.984749, -0.177004, 0.98421, -0.180023, 0.983662, -0.18304, 0.983106, -0.186055, 0.982539, -0.189069, 0.981964, -0.19208, 0.981379, -0.19509, 0.980785, -0.198098, 0.980182, -0.201105, 0.97957, -0.204109, 0.978948, -0.207111, 0.978318, -0.210112, 0.977677, -0.21311, 0.977028, -0.216107, 0.97637, -0.219101, 0.975702, -0.222094, 0.975025, -0.225084, 0.974339, -0.228072, 0.973644, -0.231058, 0.97294, -0.234042, 0.972227, -0.237024, 0.971504, -0.240003, 0.970772, -0.24298, 0.970031, -0.245955, 0.969281, -0.248928, 0.968522, -0.251898, 0.967754, -0.254866, 0.966977, -0.257831, 0.96619, -0.260794, 0.965395, -0.263755, 0.96459, -0.266713, 0.963776, -0.269668, 0.962953, -0.272621, 0.962121, -0.275572, 0.961281, -0.27852, 0.960431, -0.281465, 0.959572, -0.284408, 0.958704, -0.287347, 0.957826, -0.290285, 0.95694, -0.293219, 0.956045, -0.296151, 0.955141, -0.29908, 0.954228, -0.302006, 0.953306, -0.304929, 0.952375, -0.30785, 0.951435, -0.310767, 0.950486, -0.313682, 0.949528, -0.316593, 0.948561, -0.319502, 0.947586, -0.322408, 0.946601, -0.32531, 0.945607, -0.32821, 0.944605, -0.331106, 0.943594, -0.334, 0.942573, -0.33689, 0.941544, -0.339777, 0.940506, -0.342661, 0.939459, -0.345541, 0.938404, -0.348419, 0.937339, -0.351293, 0.936266, -0.354164, 0.935184, -0.357031, 0.934093, -0.359895, 0.932993, -0.362756, 0.931884, -0.365613, 0.930767, -0.368467, 0.929641, -0.371317, 0.928506, -0.374164, 0.927363, -0.377007, 0.92621, -0.379847, 0.925049, -0.382683, 0.92388, -0.385516, 0.922701, -0.388345, 0.921514, -0.39117, 0.920318, -0.393992, 0.919114, -0.39681, 0.917901, -0.399624, 0.916679, -0.402435, 0.915449, -0.405241, 0.91421, -0.408044, 0.912962, -0.410843, 0.911706, -0.413638, 0.910441, -0.41643, 0.909168, -0.419217, 0.907886, -0.422, 0.906596, -0.42478, 0.905297, -0.427555, 0.903989, -0.430326, 0.902673, -0.433094, 0.901349, -0.435857, 0.900016, -0.438616, 0.898675, -0.441371, 0.897325, -0.444122, 0.895966, -0.446869, 0.894599, -0.449611, 0.893224, -0.45235, 0.891841, -0.455084, 0.890449, -0.457813, 0.889048, -0.460539, 0.88764, -0.46326, 0.886223, -0.465977, 0.884797, -0.468689, 0.883363, -0.471397, 0.881921, -0.4741, 0.880471, -0.476799, 0.879012, -0.479494, 0.877545, -0.482184, 0.87607, -0.484869, 0.874587, -0.48755, 0.873095, -0.490226, 0.871595, -0.492898, 0.870087, -0.495565, 0.868571, -0.498228, 0.867046, -0.500885, 0.865514, -0.503538, 0.863973, -0.506187, 0.862424, -0.50883, 0.860867, -0.511469, 0.859302, -0.514103, 0.857729, -0.516732, 0.856147, -0.519356, 0.854558, -0.521975, 0.852961, -0.52459, 0.851355, -0.527199, 0.849742, -0.529804, 0.84812, -0.532403, 0.846491, -0.534998, 0.844854, -0.537587, 0.843208, -0.540172, 0.841555, -0.542751, 0.839894, -0.545325, 0.838225, -0.547894, 0.836548, -0.550458, 0.834863, -0.553017, 0.83317, -0.55557, 0.83147, -0.558119, 0.829761, -0.560662, 0.828045, -0.563199, 0.826321, -0.565732, 0.824589, -0.568259, 0.82285, -0.570781, 0.821103, -0.573297, 0.819348, -0.575808, 0.817585, -0.578314, 0.815814, -0.580814, 0.814036, -0.583309, 0.812251, -0.585798, 0.810457, -0.588282, 0.808656, -0.59076, 0.806848, -0.593232, 0.805031, -0.595699, 0.803208, -0.598161, 0.801376, -0.600617, 0.799537, -0.603067, 0.797691, -0.605511, 0.795837, -0.60795, 0.793975, -0.610383, 0.792107, -0.61281, 0.79023, -0.615232, 0.788346, -0.617647, 0.786455, -0.620057, 0.784557, -0.622461, 0.782651, -0.62486, 0.780737, -0.627252, 0.778816, -0.629638, 0.776888, -0.632019, 0.774953, -0.634393, 0.77301, -0.636762, 0.77106, -0.639125, 0.769103, -0.641481, 0.767139, -0.643832, 0.765167, -0.646176, 0.763188, -0.648514, 0.761202, -0.650847, 0.759209, -0.653173, 0.757209, -0.655493, 0.755201, -0.657807, 0.753187, -0.660114, 0.751165, -0.662416, 0.749136, -0.664711, 0.747101, -0.667, 0.745058, -0.669283, 0.743008, -0.671559, 0.740951, -0.673829, 0.738887, -0.676093, 0.736817, -0.67835, 0.734739, -0.680601, 0.732654, -0.682845, 0.730563, -0.685084, 0.728464, -0.687315, 0.726359, -0.689541, 0.724247, -0.691759, 0.722128, -0.693971, 0.720003, -0.696177, 0.71787, -0.698376, 0.715731, -0.700569, 0.713585, -0.702755, 0.711432, -0.704934, 0.709273, -0.707107, 0.707107, -0.709273, 0.704934, -0.711432, 0.702755, -0.713585, 0.700569, -0.715731, 0.698376, -0.71787, 0.696177, -0.720003, 0.693971, -0.722128, 0.691759, -0.724247, 0.689541, -0.726359, 0.687315, -0.728464, 0.685084, -0.730563, 0.682845, -0.732654, 0.680601, -0.734739, 0.67835, -0.736817, 0.676093, -0.738887, 0.673829, -0.740951, 0.671559, -0.743008, 0.669283, -0.745058, 0.667, -0.747101, 0.664711, -0.749136, 0.662416, -0.751165, 0.660114, -0.753187, 0.657807, -0.755201, 0.655493, -0.757209, 0.653173, -0.759209, 0.650847, -0.761202, 0.648514, -0.763188, 0.646176, -0.765167, 0.643832, -0.767139, 0.641481, -0.769103, 0.639125, -0.77106, 0.636762, -0.77301, 0.634393, -0.774953, 0.632019, -0.776888, 0.629638, -0.778816, 0.627252, -0.780737, 0.62486, -0.782651, 0.622461, -0.784557, 0.620057, -0.786455, 0.617647, -0.788346, 0.615232, -0.79023, 0.61281, -0.792107, 0.610383, -0.793975, 0.60795, -0.795837, 0.605511, -0.797691, 0.603067, -0.799537, 0.600617, -0.801376, 0.598161, -0.803208, 0.595699, -0.805031, 0.593232, -0.806848, 0.59076, -0.808656, 0.588282, -0.810457, 0.585798, -0.812251, 0.583309, -0.814036, 0.580814, -0.815814, 0.578314, -0.817585, 0.575808, -0.819348, 0.573297, -0.821103, 0.570781, -0.82285, 0.568259, -0.824589, 0.565732, -0.826321, 0.563199, -0.828045, 0.560662, -0.829761, 0.558119, -0.83147, 0.55557, -0.83317, 0.553017, -0.834863, 0.550458, -0.836548, 0.547894, -0.838225, 0.545325, -0.839894, 0.542751, -0.841555, 0.540172, -0.843208, 0.537587, -0.844854, 0.534998, -0.846491, 0.532403, -0.84812, 0.529804, -0.849742, 0.527199, -0.851355, 0.52459, -0.852961, 0.521975, -0.854558, 0.519356, -0.856147, 0.516732, -0.857729, 0.514103, -0.859302, 0.511469, -0.860867, 0.50883, -0.862424, 0.506187, -0.863973, 0.503538, -0.865514, 0.500885, -0.867046, 0.498228, -0.868571, 0.495565, -0.870087, 0.492898, -0.871595, 0.490226, -0.873095, 0.48755, -0.874587, 0.484869, -0.87607, 0.482184, -0.877545, 0.479494, -0.879012, 0.476799, -0.880471, 0.4741, -0.881921, 0.471397, -0.883363, 0.468689, -0.884797, 0.465977, -0.886223, 0.46326, -0.88764, 0.460539, -0.889048, 0.457813, -0.890449, 0.455084, -0.891841, 0.45235, -0.893224, 0.449611, -0.894599, 0.446869, -0.895966, 0.444122, -0.897325, 0.441371, -0.898675, 0.438616, -0.900016, 0.435857, -0.901349, 0.433094, -0.902673, 0.430326, -0.903989, 0.427555, -0.905297, 0.42478, -0.906596, 0.422, -0.907886, 0.419217, -0.909168, 0.41643, -0.910441, 0.413638, -0.911706, 0.410843, -0.912962, 0.408044, -0.91421, 0.405241, -0.915449, 0.402435, -0.916679, 0.399624, -0.917901, 0.39681, -0.919114, 0.393992, -0.920318, 0.39117, -0.921514, 0.388345, -0.922701, 0.385516, -0.92388, 0.382683, -0.925049, 0.379847, -0.92621, 0.377007, -0.927363, 0.374164, -0.928506, 0.371317, -0.929641, 0.368467, -0.930767, 0.365613, -0.931884, 0.362756, -0.932993, 0.359895, -0.934093, 0.357031, -0.935184, 0.354164, -0.936266, 0.351293, -0.937339, 0.348419, -0.938404, 0.345541, -0.939459, 0.342661, -0.940506, 0.339777, -0.941544, 0.33689, -0.942573, 0.334, -0.943594, 0.331106, -0.944605, 0.32821, -0.945607, 0.32531, -0.946601, 0.322408, -0.947586, 0.319502, -0.948561, 0.316593, -0.949528, 0.313682, -0.950486, 0.310767, -0.951435, 0.30785, -0.952375, 0.304929, -0.953306, 0.302006, -0.954228, 0.29908, -0.955141, 0.296151, -0.956045, 0.293219, -0.95694, 0.290285, -0.957826, 0.287347, -0.958704, 0.284408, -0.959572, 0.281465, -0.960431, 0.27852, -0.961281, 0.275572, -0.962121, 0.272621, -0.962953, 0.269668, -0.963776, 0.266713, -0.96459, 0.263755, -0.965395, 0.260794, -0.96619, 0.257831, -0.966977, 0.254866, -0.967754, 0.251898, -0.968522, 0.248928, -0.969281, 0.245955, -0.970031, 0.24298, -0.970772, 0.240003, -0.971504, 0.237024, -0.972227, 0.234042, -0.97294, 0.231058, -0.973644, 0.228072, -0.974339, 0.225084, -0.975025, 0.222094, -0.975702, 0.219101, -0.97637, 0.216107, -0.977028, 0.21311, -0.977677, 0.210112, -0.978318, 0.207111, -0.978948, 0.204109, -0.97957, 0.201105, -0.980182, 0.198098, -0.980785, 0.19509, -0.981379, 0.19208, -0.981964, 0.189069, -0.982539, 0.186055, -0.983106, 0.18304, -0.983662, 0.180023, -0.98421, 0.177004, -0.984749, 0.173984, -0.985278, 0.170962, -0.985798, 0.167938, -0.986308, 0.164913, -0.986809, 0.161886, -0.987302, 0.158858, -0.987784, 0.155828, -0.988258, 0.152797, -0.988722, 0.149765, -0.989177, 0.14673, -0.989622, 0.143695, -0.990058, 0.140658, -0.990485, 0.13762, -0.990903, 0.134581, -0.991311, 0.13154, -0.99171, 0.128498, -0.992099, 0.125455, -0.99248, 0.122411, -0.99285, 0.119365, -0.993212, 0.116319, -0.993564, 0.113271, -0.993907, 0.110222, -0.994241, 0.107172, -0.994565, 0.104122, -0.994879, 0.10107, -0.995185, 0.0980171, -0.995481, 0.0949635, -0.995768, 0.091909, -0.996045, 0.0888535, -0.996313, 0.0857973, -0.996571, 0.0827403, -0.99682, 0.0796824, -0.99706, 0.0766239, -0.99729, 0.0735646, -0.997512, 0.0705046, -0.997723, 0.0674439, -0.997925, 0.0643826, -0.998118, 0.0613207, -0.998302, 0.0582583, -0.998476, 0.0551952, -0.99864, 0.0521317, -0.998796, 0.0490677, -0.998941, 0.0460032, -0.999078, 0.0429383, -0.999205, 0.0398729, -0.999322, 0.0368072, -0.999431, 0.0337412, -0.999529, 0.0306748, -0.999619, 0.0276081, -0.999699, 0.0245412, -0.999769, 0.0214741, -0.999831, 0.0184067, -0.999882, 0.0153392, -0.999925, 0.0122715, -0.999958, 0.00920376, -0.999981, 0.00613589, -0.999995, 0.00306796, -1.0, 0.0}; float Tre, Tim; int i, j, k, l, m; m = 1024; l = 1; while(1) { k = 0; j = l; i = 0; while(1) { while(1) { /* W[i+k] = Z[i] + Z[m+i]; complex */ W[2*(i+k)] = Z[2*i] + Z[2*(m+i)]; W[2*(i+k)+1] = Z[2*i+1] + Z[2*(m+i)+1]; /* W[i+j] = E[k] * (Z[i] - Z[m+i]); complex */ Tre = Z[2*i] - Z[2*(m+i)]; Tim = Z[2*i+1] - Z[2*(m+i)+1]; W[2*(i+j)] = E[2*k] * Tre - E[2*k+1] * Tim; W[2*(i+j)+1] = E[2*k] * Tim + E[2*k+1] * Tre; i++; if(i >= j) break; } k = j; j = k+l; if(j > m) break; } l = l+l; if(l > m) { for(i=0; i<4*m; i++) Z[i] = W[i]; // odd power finish return; } /* work back other way without copying */ k = 0; j = l; i = 0; while(1) { while(1) { /* Z[i+k] = W[i] + W[m+i]; complex */ Z[2*(i+k)] = W[2*i] + W[2*(m+i)]; Z[2*(i+k)+1] = W[2*i+1] + W[2*(m+i)+1]; /* Z[i+j] = E[k] * (W[i] - W[m+i]); complex */ Tre = W[2*i] - W[2*(m+i)]; Tim = W[2*i+1] - W[2*(m+i)+1]; Z[2*(i+j)] = E[2*k] * Tre - E[2*k+1] * Tim; Z[2*(i+j)+1] = E[2*k] * Tim + E[2*k+1] * Tre; i++; if(i >= j) break; } k = j; j = k+l; if(j > m) break; } l = l+l; if(l > m) break; // result is in Z } } /* end fft2048 */