Mercurial > hg > audiostuff
diff intercom/ilbc/constants.c @ 2:13be24d74cd2
import intercom-0.4.1
author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
---|---|
date | Fri, 25 Jun 2010 09:57:52 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/intercom/ilbc/constants.c Fri Jun 25 09:57:52 2010 +0200 @@ -0,0 +1,908 @@ + + /****************************************************************** + + iLBC Speech Coder ANSI-C Source Code + + constants.c + + Copyright (C) The Internet Society (2004). + All Rights Reserved. + + ******************************************************************/ + +#include "iLBC_define.h" +#include "iLBC_define.h" + + /* ULP bit allocation */ + + /* 20 ms frame */ + +const iLBC_ULP_Inst_t ULP_20msTbl = { + /* LSF */ + {{6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, + {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}, + /* Start state location, gain and samples */ + {2, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {6, 0, 0, 0, 0}, + {0, 1, 2, 0, 0}, + /* extra CB index and extra CB gain */ + {{6, 0, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, + {{2, 0, 3, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}}, + /* CB index and CB gain */ + {{{7, 0, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, + {{0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}}, + {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}, + {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}}, + {{{1, 2, 2, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}}, + {{1, 1, 3, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 3, 0, 0}}, + {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}, + {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}} +}; + + /* 30 ms frame */ + +const iLBC_ULP_Inst_t ULP_30msTbl = { + /* LSF */ + + + + + + {{6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, + {6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0}}, + /* Start state location, gain and samples */ + {3, 0, 0, 0, 0}, + {1, 0, 0, 0, 0}, + {6, 0, 0, 0, 0}, + {0, 1, 2, 0, 0}, + /* extra CB index and extra CB gain */ + {{4, 2, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, + {{1, 1, 3, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}}, + /* CB index and CB gain */ + {{{6, 1, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}}, + {{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}}, + {{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}}, + {{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}}}, + {{{1, 2, 2, 0, 0}, {1, 2, 1, 0, 0}, {0, 0, 3, 0, 0}}, + {{0, 2, 3, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 3, 0, 0}}, + {{0, 1, 4, 0, 0}, {0, 1, 3, 0, 0}, {0, 0, 3, 0, 0}}, + {{0, 1, 4, 0, 0}, {0, 1, 3, 0, 0}, {0, 0, 3, 0, 0}}} +}; + + /* HP Filters */ + +float hpi_zero_coefsTbl[3] = { + (float) 0.92727436, (float) -1.8544941, (float) 0.92727436 +}; +float hpi_pole_coefsTbl[3] = { + (float) 1.0, (float) -1.9059465, (float) 0.9114024 +}; +float hpo_zero_coefsTbl[3] = { + (float) 0.93980581, (float) -1.8795834, (float) 0.93980581 +}; +float hpo_pole_coefsTbl[3] = { + (float) 1.0, (float) -1.9330735, (float) 0.93589199 +}; + + /* LP Filter */ + +float lpFilt_coefsTbl[FILTERORDER_DS] = { + (float) -0.066650, (float) 0.125000, (float) 0.316650, + (float) 0.414063, (float) 0.316650, + (float) 0.125000, (float) -0.066650 +}; + + /* State quantization tables */ + +float state_sq3Tbl[8] = { + (float) -3.719849, (float) -2.177490, (float) -1.130005, + + + + + + (float) -0.309692, (float) 0.444214, (float) 1.329712, + (float) 2.436279, (float) 3.983887 +}; + +float state_frgqTbl[64] = { + (float) 1.000085, (float) 1.071695, (float) 1.140395, + (float) 1.206868, (float) 1.277188, (float) 1.351503, + (float) 1.429380, (float) 1.500727, (float) 1.569049, + (float) 1.639599, (float) 1.707071, (float) 1.781531, + (float) 1.840799, (float) 1.901550, (float) 1.956695, + (float) 2.006750, (float) 2.055474, (float) 2.102787, + (float) 2.142819, (float) 2.183592, (float) 2.217962, + (float) 2.257177, (float) 2.295739, (float) 2.332967, + (float) 2.369248, (float) 2.402792, (float) 2.435080, + (float) 2.468598, (float) 2.503394, (float) 2.539284, + (float) 2.572944, (float) 2.605036, (float) 2.636331, + (float) 2.668939, (float) 2.698780, (float) 2.729101, + (float) 2.759786, (float) 2.789834, (float) 2.818679, + (float) 2.848074, (float) 2.877470, (float) 2.906899, + (float) 2.936655, (float) 2.967804, (float) 3.000115, + (float) 3.033367, (float) 3.066355, (float) 3.104231, + (float) 3.141499, (float) 3.183012, (float) 3.222952, + (float) 3.265433, (float) 3.308441, (float) 3.350823, + (float) 3.395275, (float) 3.442793, (float) 3.490801, + (float) 3.542514, (float) 3.604064, (float) 3.666050, + (float) 3.740994, (float) 3.830749, (float) 3.938770, + (float) 4.101764 +}; + + /* CB tables */ + +int search_rangeTbl[5][CB_NSTAGES] = { {58, 58, 58}, {108, 44, 44}, +{108, 108, 108}, {108, 108, 108}, {108, 108, 108} +}; +int stMemLTbl = 85; +int memLfTbl[NASUB_MAX] = { 147, 147, 147, 147 }; + + /* expansion filter(s) */ + +float cbfiltersTbl[CB_FILTERLEN] = { + (float) -0.034180, (float) 0.108887, (float) -0.184326, + (float) 0.806152, (float) 0.713379, (float) -0.144043, + (float) 0.083740, (float) -0.033691 +}; + + /* Gain Quantization */ + +float gain_sq3Tbl[8] = { + (float) -1.000000, (float) -0.659973, (float) -0.330017, + + + + + + (float) 0.000000, (float) 0.250000, (float) 0.500000, + (float) 0.750000, (float) 1.00000 +}; + +float gain_sq4Tbl[16] = { + (float) -1.049988, (float) -0.900024, (float) -0.750000, + (float) -0.599976, (float) -0.450012, (float) -0.299988, + (float) -0.150024, (float) 0.000000, (float) 0.150024, + (float) 0.299988, (float) 0.450012, (float) 0.599976, + (float) 0.750000, (float) 0.900024, (float) 1.049988, + (float) 1.200012 +}; + +float gain_sq5Tbl[32] = { + (float) 0.037476, (float) 0.075012, (float) 0.112488, + (float) 0.150024, (float) 0.187500, (float) 0.224976, + (float) 0.262512, (float) 0.299988, (float) 0.337524, + (float) 0.375000, (float) 0.412476, (float) 0.450012, + (float) 0.487488, (float) 0.525024, (float) 0.562500, + (float) 0.599976, (float) 0.637512, (float) 0.674988, + (float) 0.712524, (float) 0.750000, (float) 0.787476, + (float) 0.825012, (float) 0.862488, (float) 0.900024, + (float) 0.937500, (float) 0.974976, (float) 1.012512, + (float) 1.049988, (float) 1.087524, (float) 1.125000, + (float) 1.162476, (float) 1.200012 +}; + + /* Enhancer - Upsamling a factor 4 (ENH_UPS0 = 4) */ +float polyphaserTbl[ENH_UPS0 * (2 * ENH_FL0 + 1)] = { + (float) 0.000000, (float) 0.000000, (float) 0.000000, + (float) 1.000000, + (float) 0.000000, (float) 0.000000, (float) 0.000000, + (float) 0.015625, (float) -0.076904, (float) 0.288330, + (float) 0.862061, + (float) -0.106445, (float) 0.018799, (float) -0.015625, + (float) 0.023682, (float) -0.124268, (float) 0.601563, + (float) 0.601563, + (float) -0.124268, (float) 0.023682, (float) -0.023682, + (float) 0.018799, (float) -0.106445, (float) 0.862061, + (float) 0.288330, + (float) -0.076904, (float) 0.015625, (float) -0.018799 +}; + +float enh_plocsTbl[ENH_NBLOCKS_TOT] = { (float) 40.0, (float) 120.0, + (float) 200.0, (float) 280.0, (float) 360.0, + (float) 440.0, (float) 520.0, (float) 600.0 +}; + + /* LPC analysis and quantization */ + +int dim_lsfCbTbl[LSF_NSPLIT] = { 3, 3, 4 }; +int size_lsfCbTbl[LSF_NSPLIT] = { 64, 128, 128 }; + + + + + + +float lsfmeanTbl[LPC_FILTERORDER] = { + (float) 0.281738, (float) 0.445801, (float) 0.663330, + (float) 0.962524, (float) 1.251831, (float) 1.533081, + (float) 1.850586, (float) 2.137817, (float) 2.481445, + (float) 2.777344 +}; + +float lsf_weightTbl_30ms[6] = { (float) (1.0 / 2.0), (float) 1.0, + (float) (2.0 / 3.0), + (float) (1.0 / 3.0), (float) 0.0, (float) 0.0 +}; + +float lsf_weightTbl_20ms[4] = + { (float) (3.0 / 4.0), (float) (2.0 / 4.0), + (float) (1.0 / 4.0), (float) (0.0) +}; + + /* Hanning LPC window */ +float lpc_winTbl[BLOCKL_MAX] = { + (float) 0.000183, (float) 0.000671, (float) 0.001526, + (float) 0.002716, (float) 0.004242, (float) 0.006104, + (float) 0.008301, (float) 0.010834, (float) 0.013702, + (float) 0.016907, (float) 0.020416, (float) 0.024261, + (float) 0.028442, (float) 0.032928, (float) 0.037750, + (float) 0.042877, (float) 0.048309, (float) 0.054047, + (float) 0.060089, (float) 0.066437, (float) 0.073090, + (float) 0.080017, (float) 0.087219, (float) 0.094727, + (float) 0.102509, (float) 0.110535, (float) 0.118835, + (float) 0.127411, (float) 0.136230, (float) 0.145294, + (float) 0.154602, (float) 0.164154, (float) 0.173920, + (float) 0.183899, (float) 0.194122, (float) 0.204529, + (float) 0.215149, (float) 0.225952, (float) 0.236938, + (float) 0.248108, (float) 0.259460, (float) 0.270966, + (float) 0.282654, (float) 0.294464, (float) 0.306396, + (float) 0.318481, (float) 0.330688, (float) 0.343018, + (float) 0.355438, (float) 0.367981, (float) 0.380585, + (float) 0.393280, (float) 0.406067, (float) 0.418884, + (float) 0.431763, (float) 0.444702, (float) 0.457672, + (float) 0.470673, (float) 0.483704, (float) 0.496735, + (float) 0.509766, (float) 0.522797, (float) 0.535828, + (float) 0.548798, (float) 0.561768, (float) 0.574677, + (float) 0.587524, (float) 0.600342, (float) 0.613068, + (float) 0.625732, (float) 0.638306, (float) 0.650787, + (float) 0.663147, (float) 0.675415, (float) 0.687561, + (float) 0.699585, (float) 0.711487, (float) 0.723206, + (float) 0.734802, (float) 0.746216, (float) 0.757477, + (float) 0.768585, (float) 0.779480, (float) 0.790192, + (float) 0.800720, (float) 0.811005, (float) 0.821106, + (float) 0.830994, (float) 0.840668, (float) 0.850067, + (float) 0.859253, (float) 0.868225, (float) 0.876892, + (float) 0.885345, (float) 0.893524, (float) 0.901428, + (float) 0.909058, (float) 0.916412, (float) 0.923492, + + + + + + (float) 0.930267, (float) 0.936768, (float) 0.942963, + (float) 0.948853, (float) 0.954437, (float) 0.959717, + (float) 0.964691, (float) 0.969360, (float) 0.973694, + (float) 0.977692, (float) 0.981384, (float) 0.984741, + (float) 0.987762, (float) 0.990479, (float) 0.992828, + (float) 0.994873, (float) 0.996552, (float) 0.997925, + (float) 0.998932, (float) 0.999603, (float) 0.999969, + (float) 0.999969, (float) 0.999603, (float) 0.998932, + (float) 0.997925, (float) 0.996552, (float) 0.994873, + (float) 0.992828, (float) 0.990479, (float) 0.987762, + (float) 0.984741, (float) 0.981384, (float) 0.977692, + (float) 0.973694, (float) 0.969360, (float) 0.964691, + (float) 0.959717, (float) 0.954437, (float) 0.948853, + (float) 0.942963, (float) 0.936768, (float) 0.930267, + (float) 0.923492, (float) 0.916412, (float) 0.909058, + (float) 0.901428, (float) 0.893524, (float) 0.885345, + (float) 0.876892, (float) 0.868225, (float) 0.859253, + (float) 0.850067, (float) 0.840668, (float) 0.830994, + (float) 0.821106, (float) 0.811005, (float) 0.800720, + (float) 0.790192, (float) 0.779480, (float) 0.768585, + (float) 0.757477, (float) 0.746216, (float) 0.734802, + (float) 0.723206, (float) 0.711487, (float) 0.699585, + (float) 0.687561, (float) 0.675415, (float) 0.663147, + (float) 0.650787, (float) 0.638306, (float) 0.625732, + (float) 0.613068, (float) 0.600342, (float) 0.587524, + (float) 0.574677, (float) 0.561768, (float) 0.548798, + (float) 0.535828, (float) 0.522797, (float) 0.509766, + (float) 0.496735, (float) 0.483704, (float) 0.470673, + (float) 0.457672, (float) 0.444702, (float) 0.431763, + (float) 0.418884, (float) 0.406067, (float) 0.393280, + (float) 0.380585, (float) 0.367981, (float) 0.355438, + (float) 0.343018, (float) 0.330688, (float) 0.318481, + (float) 0.306396, (float) 0.294464, (float) 0.282654, + (float) 0.270966, (float) 0.259460, (float) 0.248108, + (float) 0.236938, (float) 0.225952, (float) 0.215149, + (float) 0.204529, (float) 0.194122, (float) 0.183899, + (float) 0.173920, (float) 0.164154, (float) 0.154602, + (float) 0.145294, (float) 0.136230, (float) 0.127411, + (float) 0.118835, (float) 0.110535, (float) 0.102509, + (float) 0.094727, (float) 0.087219, (float) 0.080017, + (float) 0.073090, (float) 0.066437, (float) 0.060089, + (float) 0.054047, (float) 0.048309, (float) 0.042877, + (float) 0.037750, (float) 0.032928, (float) 0.028442, + (float) 0.024261, (float) 0.020416, (float) 0.016907, + (float) 0.013702, (float) 0.010834, (float) 0.008301, + (float) 0.006104, (float) 0.004242, (float) 0.002716, + (float) 0.001526, (float) 0.000671, (float) 0.000183 +}; + + + + + + /* Asymmetric LPC window */ +float lpc_asymwinTbl[BLOCKL_MAX] = { + (float) 0.000061, (float) 0.000214, (float) 0.000458, + (float) 0.000824, (float) 0.001282, (float) 0.001831, + (float) 0.002472, (float) 0.003235, (float) 0.004120, + (float) 0.005066, (float) 0.006134, (float) 0.007294, + (float) 0.008545, (float) 0.009918, (float) 0.011383, + (float) 0.012939, (float) 0.014587, (float) 0.016357, + (float) 0.018219, (float) 0.020172, (float) 0.022217, + (float) 0.024353, (float) 0.026611, (float) 0.028961, + (float) 0.031372, (float) 0.033905, (float) 0.036530, + (float) 0.039276, (float) 0.042084, (float) 0.044983, + (float) 0.047974, (float) 0.051086, (float) 0.054260, + (float) 0.057526, (float) 0.060883, (float) 0.064331, + (float) 0.067871, (float) 0.071503, (float) 0.075226, + (float) 0.079010, (float) 0.082916, (float) 0.086884, + (float) 0.090942, (float) 0.095062, (float) 0.099304, + (float) 0.103607, (float) 0.107971, (float) 0.112427, + (float) 0.116974, (float) 0.121582, (float) 0.126282, + (float) 0.131073, (float) 0.135895, (float) 0.140839, + (float) 0.145813, (float) 0.150879, (float) 0.156006, + (float) 0.161224, (float) 0.166504, (float) 0.171844, + (float) 0.177246, (float) 0.182709, (float) 0.188263, + (float) 0.193848, (float) 0.199524, (float) 0.205231, + (float) 0.211029, (float) 0.216858, (float) 0.222778, + (float) 0.228729, (float) 0.234741, (float) 0.240814, + (float) 0.246918, (float) 0.253082, (float) 0.259308, + (float) 0.265564, (float) 0.271881, (float) 0.278259, + (float) 0.284668, (float) 0.291107, (float) 0.297607, + (float) 0.304138, (float) 0.310730, (float) 0.317322, + (float) 0.323975, (float) 0.330658, (float) 0.337372, + (float) 0.344147, (float) 0.350922, (float) 0.357727, + (float) 0.364594, (float) 0.371460, (float) 0.378357, + (float) 0.385284, (float) 0.392212, (float) 0.399170, + (float) 0.406158, (float) 0.413177, (float) 0.420197, + (float) 0.427246, (float) 0.434296, (float) 0.441376, + (float) 0.448456, (float) 0.455536, (float) 0.462646, + (float) 0.469757, (float) 0.476868, (float) 0.483978, + (float) 0.491089, (float) 0.498230, (float) 0.505341, + (float) 0.512451, (float) 0.519592, (float) 0.526703, + (float) 0.533813, (float) 0.540924, (float) 0.548004, + (float) 0.555084, (float) 0.562164, (float) 0.569244, + (float) 0.576294, (float) 0.583313, (float) 0.590332, + (float) 0.597321, (float) 0.604309, (float) 0.611267, + (float) 0.618195, (float) 0.625092, (float) 0.631989, + (float) 0.638855, (float) 0.645660, (float) 0.652466, + (float) 0.659241, (float) 0.665985, (float) 0.672668, + (float) 0.679352, (float) 0.685974, (float) 0.692566, + + + + + + (float) 0.699127, (float) 0.705658, (float) 0.712128, + (float) 0.718536, (float) 0.724945, (float) 0.731262, + (float) 0.737549, (float) 0.743805, (float) 0.750000, + (float) 0.756134, (float) 0.762238, (float) 0.768280, + (float) 0.774261, (float) 0.780182, (float) 0.786072, + (float) 0.791870, (float) 0.797638, (float) 0.803314, + (float) 0.808960, (float) 0.814514, (float) 0.820038, + (float) 0.825470, (float) 0.830841, (float) 0.836151, + (float) 0.841400, (float) 0.846558, (float) 0.851654, + (float) 0.856689, (float) 0.861633, (float) 0.866516, + (float) 0.871338, (float) 0.876068, (float) 0.880737, + (float) 0.885315, (float) 0.889801, (float) 0.894226, + (float) 0.898560, (float) 0.902832, (float) 0.907013, + (float) 0.911102, (float) 0.915100, (float) 0.919037, + (float) 0.922882, (float) 0.926636, (float) 0.930328, + (float) 0.933899, (float) 0.937408, (float) 0.940796, + (float) 0.944122, (float) 0.947357, (float) 0.950470, + (float) 0.953522, (float) 0.956482, (float) 0.959351, + (float) 0.962097, (float) 0.964783, (float) 0.967377, + (float) 0.969849, (float) 0.972229, (float) 0.974518, + (float) 0.976715, (float) 0.978821, (float) 0.980835, + (float) 0.982727, (float) 0.984528, (float) 0.986237, + (float) 0.987854, (float) 0.989380, (float) 0.990784, + (float) 0.992096, (float) 0.993317, (float) 0.994415, + (float) 0.995422, (float) 0.996338, (float) 0.997162, + (float) 0.997864, (float) 0.998474, (float) 0.998962, + (float) 0.999390, (float) 0.999695, (float) 0.999878, + (float) 0.999969, (float) 0.999969, (float) 0.996918, + (float) 0.987701, (float) 0.972382, (float) 0.951050, + (float) 0.923889, (float) 0.891022, (float) 0.852631, + (float) 0.809021, (float) 0.760406, (float) 0.707092, + (float) 0.649445, (float) 0.587799, (float) 0.522491, + (float) 0.453979, (float) 0.382690, (float) 0.309021, + (float) 0.233459, (float) 0.156433, (float) 0.078461 +}; + + /* Lag window for LPC */ +float lpc_lagwinTbl[LPC_FILTERORDER + 1] = { + (float) 1.000100, (float) 0.998890, (float) 0.995569, + (float) 0.990057, (float) 0.982392, + (float) 0.972623, (float) 0.960816, (float) 0.947047, + (float) 0.931405, (float) 0.913989, (float) 0.894909 +}; + + /* LSF quantization */ +float lsfCbTbl[64 * 3 + 128 * 3 + 128 * 4] = { + (float) 0.155396, (float) 0.273193, (float) 0.451172, + (float) 0.390503, (float) 0.648071, (float) 1.002075, + (float) 0.440186, (float) 0.692261, (float) 0.955688, + + + + + + (float) 0.343628, (float) 0.642334, (float) 1.071533, + (float) 0.318359, (float) 0.491577, (float) 0.670532, + (float) 0.193115, (float) 0.375488, (float) 0.725708, + (float) 0.364136, (float) 0.510376, (float) 0.658691, + (float) 0.297485, (float) 0.527588, (float) 0.842529, + (float) 0.227173, (float) 0.365967, (float) 0.563110, + (float) 0.244995, (float) 0.396729, (float) 0.636475, + (float) 0.169434, (float) 0.300171, (float) 0.520264, + (float) 0.312866, (float) 0.464478, (float) 0.643188, + (float) 0.248535, (float) 0.429932, (float) 0.626099, + (float) 0.236206, (float) 0.491333, (float) 0.817139, + (float) 0.334961, (float) 0.625122, (float) 0.895752, + (float) 0.343018, (float) 0.518555, (float) 0.698608, + (float) 0.372803, (float) 0.659790, (float) 0.945435, + (float) 0.176880, (float) 0.316528, (float) 0.581421, + (float) 0.416382, (float) 0.625977, (float) 0.805176, + (float) 0.303223, (float) 0.568726, (float) 0.915039, + (float) 0.203613, (float) 0.351440, (float) 0.588135, + (float) 0.221191, (float) 0.375000, (float) 0.614746, + (float) 0.199951, (float) 0.323364, (float) 0.476074, + (float) 0.300781, (float) 0.433350, (float) 0.566895, + (float) 0.226196, (float) 0.354004, (float) 0.507568, + (float) 0.300049, (float) 0.508179, (float) 0.711670, + (float) 0.312012, (float) 0.492676, (float) 0.763428, + (float) 0.329956, (float) 0.541016, (float) 0.795776, + (float) 0.373779, (float) 0.604614, (float) 0.928833, + (float) 0.210571, (float) 0.452026, (float) 0.755249, + (float) 0.271118, (float) 0.473267, (float) 0.662476, + (float) 0.285522, (float) 0.436890, (float) 0.634399, + (float) 0.246704, (float) 0.565552, (float) 0.859009, + (float) 0.270508, (float) 0.406250, (float) 0.553589, + (float) 0.361450, (float) 0.578491, (float) 0.813843, + (float) 0.342651, (float) 0.482788, (float) 0.622437, + (float) 0.340332, (float) 0.549438, (float) 0.743164, + (float) 0.200439, (float) 0.336304, (float) 0.540894, + (float) 0.407837, (float) 0.644775, (float) 0.895142, + (float) 0.294678, (float) 0.454834, (float) 0.699097, + (float) 0.193115, (float) 0.344482, (float) 0.643188, + (float) 0.275757, (float) 0.420776, (float) 0.598755, + (float) 0.380493, (float) 0.608643, (float) 0.861084, + (float) 0.222778, (float) 0.426147, (float) 0.676514, + (float) 0.407471, (float) 0.700195, (float) 1.053101, + (float) 0.218384, (float) 0.377197, (float) 0.669922, + (float) 0.313232, (float) 0.454102, (float) 0.600952, + (float) 0.347412, (float) 0.571533, (float) 0.874146, + (float) 0.238037, (float) 0.405396, (float) 0.729492, + (float) 0.223877, (float) 0.412964, (float) 0.822021, + (float) 0.395264, (float) 0.582153, (float) 0.743896, + + + + + + (float) 0.247925, (float) 0.485596, (float) 0.720581, + (float) 0.229126, (float) 0.496582, (float) 0.907715, + (float) 0.260132, (float) 0.566895, (float) 1.012695, + (float) 0.337402, (float) 0.611572, (float) 0.978149, + (float) 0.267822, (float) 0.447632, (float) 0.769287, + (float) 0.250610, (float) 0.381714, (float) 0.530029, + (float) 0.430054, (float) 0.805054, (float) 1.221924, + (float) 0.382568, (float) 0.544067, (float) 0.701660, + (float) 0.383545, (float) 0.710327, (float) 1.149170, + (float) 0.271362, (float) 0.529053, (float) 0.775513, + (float) 0.246826, (float) 0.393555, (float) 0.588623, + (float) 0.266846, (float) 0.422119, (float) 0.676758, + (float) 0.311523, (float) 0.580688, (float) 0.838623, + (float) 1.331177, (float) 1.576782, (float) 1.779541, + (float) 1.160034, (float) 1.401978, (float) 1.768188, + (float) 1.161865, (float) 1.525146, (float) 1.715332, + (float) 0.759521, (float) 0.913940, (float) 1.119873, + (float) 0.947144, (float) 1.121338, (float) 1.282471, + (float) 1.015015, (float) 1.557007, (float) 1.804932, + (float) 1.172974, (float) 1.402100, (float) 1.692627, + (float) 1.087524, (float) 1.474243, (float) 1.665405, + (float) 0.899536, (float) 1.105225, (float) 1.406250, + (float) 1.148438, (float) 1.484741, (float) 1.796265, + (float) 0.785645, (float) 1.209839, (float) 1.567749, + (float) 0.867798, (float) 1.166504, (float) 1.450684, + (float) 0.922485, (float) 1.229858, (float) 1.420898, + (float) 0.791260, (float) 1.123291, (float) 1.409546, + (float) 0.788940, (float) 0.966064, (float) 1.340332, + (float) 1.051147, (float) 1.272827, (float) 1.556641, + (float) 0.866821, (float) 1.181152, (float) 1.538818, + (float) 0.906738, (float) 1.373535, (float) 1.607910, + (float) 1.244751, (float) 1.581421, (float) 1.933838, + (float) 0.913940, (float) 1.337280, (float) 1.539673, + (float) 0.680542, (float) 0.959229, (float) 1.662720, + (float) 0.887207, (float) 1.430542, (float) 1.800781, + (float) 0.912598, (float) 1.433594, (float) 1.683960, + (float) 0.860474, (float) 1.060303, (float) 1.455322, + (float) 1.005127, (float) 1.381104, (float) 1.706909, + (float) 0.800781, (float) 1.363892, (float) 1.829102, + (float) 0.781860, (float) 1.124390, (float) 1.505981, + (float) 1.003662, (float) 1.471436, (float) 1.684692, + (float) 0.981323, (float) 1.309570, (float) 1.618042, + (float) 1.228760, (float) 1.554321, (float) 1.756470, + (float) 0.734375, (float) 0.895752, (float) 1.225586, + (float) 0.841797, (float) 1.055664, (float) 1.249268, + (float) 0.920166, (float) 1.119385, (float) 1.486206, + (float) 0.894409, (float) 1.539063, (float) 1.828979, + (float) 1.283691, (float) 1.543335, (float) 1.858276, + + + + + + (float) 0.676025, (float) 0.933105, (float) 1.490845, + (float) 0.821289, (float) 1.491821, (float) 1.739868, + (float) 0.923218, (float) 1.144653, (float) 1.580566, + (float) 1.057251, (float) 1.345581, (float) 1.635864, + (float) 0.888672, (float) 1.074951, (float) 1.353149, + (float) 0.942749, (float) 1.195435, (float) 1.505493, + (float) 1.492310, (float) 1.788086, (float) 2.039673, + (float) 1.070313, (float) 1.634399, (float) 1.860962, + (float) 1.253296, (float) 1.488892, (float) 1.686035, + (float) 0.647095, (float) 0.864014, (float) 1.401855, + (float) 0.866699, (float) 1.254883, (float) 1.453369, + (float) 1.063965, (float) 1.532593, (float) 1.731323, + (float) 1.167847, (float) 1.521484, (float) 1.884033, + (float) 0.956055, (float) 1.502075, (float) 1.745605, + (float) 0.928711, (float) 1.288574, (float) 1.479614, + (float) 1.088013, (float) 1.380737, (float) 1.570801, + (float) 0.905029, (float) 1.186768, (float) 1.371948, + (float) 1.057861, (float) 1.421021, (float) 1.617432, + (float) 1.108276, (float) 1.312500, (float) 1.501465, + (float) 0.979492, (float) 1.416992, (float) 1.624268, + (float) 1.276001, (float) 1.661011, (float) 2.007935, + (float) 0.993042, (float) 1.168579, (float) 1.331665, + (float) 0.778198, (float) 0.944946, (float) 1.235962, + (float) 1.223755, (float) 1.491333, (float) 1.815674, + (float) 0.852661, (float) 1.350464, (float) 1.722290, + (float) 1.134766, (float) 1.593140, (float) 1.787354, + (float) 1.051392, (float) 1.339722, (float) 1.531006, + (float) 0.803589, (float) 1.271240, (float) 1.652100, + (float) 0.755737, (float) 1.143555, (float) 1.639404, + (float) 0.700928, (float) 0.837280, (float) 1.130371, + (float) 0.942749, (float) 1.197876, (float) 1.669800, + (float) 0.993286, (float) 1.378296, (float) 1.566528, + (float) 0.801025, (float) 1.095337, (float) 1.298950, + (float) 0.739990, (float) 1.032959, (float) 1.383667, + (float) 0.845703, (float) 1.072266, (float) 1.543823, + (float) 0.915649, (float) 1.072266, (float) 1.224487, + (float) 1.021973, (float) 1.226196, (float) 1.481323, + (float) 0.999878, (float) 1.204102, (float) 1.555908, + (float) 0.722290, (float) 0.913940, (float) 1.340210, + (float) 0.673340, (float) 0.835938, (float) 1.259521, + (float) 0.832397, (float) 1.208374, (float) 1.394165, + (float) 0.962158, (float) 1.576172, (float) 1.912842, + (float) 1.166748, (float) 1.370850, (float) 1.556763, + (float) 0.946289, (float) 1.138550, (float) 1.400391, + (float) 1.035034, (float) 1.218262, (float) 1.386475, + (float) 1.393799, (float) 1.717773, (float) 2.000244, + (float) 0.972656, (float) 1.260986, (float) 1.760620, + (float) 1.028198, (float) 1.288452, (float) 1.484619, + + + + + + (float) 0.773560, (float) 1.258057, (float) 1.756714, + (float) 1.080322, (float) 1.328003, (float) 1.742676, + (float) 0.823975, (float) 1.450806, (float) 1.917725, + (float) 0.859009, (float) 1.016602, (float) 1.191895, + (float) 0.843994, (float) 1.131104, (float) 1.645020, + (float) 1.189697, (float) 1.702759, (float) 1.894409, + (float) 1.346680, (float) 1.763184, (float) 2.066040, + (float) 0.980469, (float) 1.253784, (float) 1.441650, + (float) 1.338135, (float) 1.641968, (float) 1.932739, + (float) 1.223267, (float) 1.424194, (float) 1.626465, + (float) 0.765747, (float) 1.004150, (float) 1.579102, + (float) 1.042847, (float) 1.269165, (float) 1.647461, + (float) 0.968750, (float) 1.257568, (float) 1.555786, + (float) 0.826294, (float) 0.993408, (float) 1.275146, + (float) 0.742310, (float) 0.950439, (float) 1.430542, + (float) 1.054321, (float) 1.439819, (float) 1.828003, + (float) 1.072998, (float) 1.261719, (float) 1.441895, + (float) 0.859375, (float) 1.036377, (float) 1.314819, + (float) 0.895752, (float) 1.267212, (float) 1.605591, + (float) 0.805420, (float) 0.962891, (float) 1.142334, + (float) 0.795654, (float) 1.005493, (float) 1.468506, + (float) 1.105347, (float) 1.313843, (float) 1.584839, + (float) 0.792236, (float) 1.221802, (float) 1.465698, + (float) 1.170532, (float) 1.467651, (float) 1.664063, + (float) 0.838257, (float) 1.153198, (float) 1.342163, + (float) 0.968018, (float) 1.198242, (float) 1.391235, + (float) 1.250122, (float) 1.623535, (float) 1.823608, + (float) 0.711670, (float) 1.058350, (float) 1.512085, + (float) 1.204834, (float) 1.454468, (float) 1.739136, + (float) 1.137451, (float) 1.421753, (float) 1.620117, + (float) 0.820435, (float) 1.322754, (float) 1.578247, + (float) 0.798706, (float) 1.005005, (float) 1.213867, + (float) 0.980713, (float) 1.324951, (float) 1.512939, + (float) 1.112305, (float) 1.438843, (float) 1.735596, + (float) 1.135498, (float) 1.356689, (float) 1.635742, + (float) 1.101318, (float) 1.387451, (float) 1.686523, + (float) 0.849854, (float) 1.276978, (float) 1.523438, + (float) 1.377930, (float) 1.627563, (float) 1.858154, + (float) 0.884888, (float) 1.095459, (float) 1.287476, + (float) 1.289795, (float) 1.505859, (float) 1.756592, + (float) 0.817505, (float) 1.384155, (float) 1.650513, + (float) 1.446655, (float) 1.702148, (float) 1.931885, + (float) 0.835815, (float) 1.023071, (float) 1.385376, + (float) 0.916626, (float) 1.139038, (float) 1.335327, + (float) 0.980103, (float) 1.174072, (float) 1.453735, + (float) 1.705688, (float) 2.153809, (float) 2.398315, + (float) 2.743408, + (float) 1.797119, (float) 2.016846, (float) 2.445679, + (float) 2.701904, + (float) 1.990356, (float) 2.219116, (float) 2.576416, + (float) 2.813477, + + + + + + (float) 1.849365, (float) 2.190918, (float) 2.611572, + (float) 2.835083, + (float) 1.657959, (float) 1.854370, (float) 2.159058, + (float) 2.726196, + (float) 1.437744, (float) 1.897705, (float) 2.253174, + (float) 2.655396, + (float) 2.028687, (float) 2.247314, (float) 2.542358, + (float) 2.875854, + (float) 1.736938, (float) 1.922119, (float) 2.185913, + (float) 2.743408, + (float) 1.521606, (float) 1.870972, (float) 2.526855, + (float) 2.786987, + (float) 1.841431, (float) 2.050659, (float) 2.463623, + (float) 2.857666, + (float) 1.590088, (float) 2.067261, (float) 2.427979, + (float) 2.794434, + (float) 1.746826, (float) 2.057373, (float) 2.320190, + (float) 2.800781, + (float) 1.734619, (float) 1.940552, (float) 2.306030, + (float) 2.826416, + (float) 1.786255, (float) 2.204468, (float) 2.457520, + (float) 2.795288, + (float) 1.861084, (float) 2.170532, (float) 2.414551, + (float) 2.763672, + (float) 2.001465, (float) 2.307617, (float) 2.552734, + (float) 2.811890, + (float) 1.784424, (float) 2.124146, (float) 2.381592, + (float) 2.645508, + (float) 1.888794, (float) 2.135864, (float) 2.418579, + (float) 2.861206, + (float) 2.301147, (float) 2.531250, (float) 2.724976, + (float) 2.913086, + (float) 1.837769, (float) 2.051270, (float) 2.261963, + (float) 2.553223, + (float) 2.012939, (float) 2.221191, (float) 2.440186, + (float) 2.678101, + (float) 1.429565, (float) 1.858276, (float) 2.582275, + (float) 2.845703, + (float) 1.622803, (float) 1.897705, (float) 2.367310, + (float) 2.621094, + (float) 1.581543, (float) 1.960449, (float) 2.515869, + (float) 2.736450, + (float) 1.419434, (float) 1.933960, (float) 2.394653, + (float) 2.746704, + (float) 1.721924, (float) 2.059570, (float) 2.421753, + (float) 2.769653, + (float) 1.911011, (float) 2.220703, (float) 2.461060, + (float) 2.740723, + (float) 1.581177, (float) 1.860840, (float) 2.516968, + (float) 2.874634, + (float) 1.870361, (float) 2.098755, (float) 2.432373, + (float) 2.656494, + (float) 2.059692, (float) 2.279785, (float) 2.495605, + (float) 2.729370, + (float) 1.815674, (float) 2.181519, (float) 2.451538, + (float) 2.680542, + (float) 1.407959, (float) 1.768311, (float) 2.343018, + (float) 2.668091, + (float) 2.168701, (float) 2.394653, (float) 2.604736, + (float) 2.829346, + (float) 1.636230, (float) 1.865723, (float) 2.329102, + (float) 2.824219, + (float) 1.878906, (float) 2.139526, (float) 2.376709, + (float) 2.679810, + (float) 1.765381, (float) 1.971802, (float) 2.195435, + (float) 2.586914, + (float) 2.164795, (float) 2.410889, (float) 2.673706, + (float) 2.903198, + (float) 2.071899, (float) 2.331055, (float) 2.645874, + (float) 2.907104, + (float) 2.026001, (float) 2.311523, (float) 2.594849, + (float) 2.863892, + (float) 1.948975, (float) 2.180786, (float) 2.514893, + (float) 2.797852, + (float) 1.881836, (float) 2.130859, (float) 2.478149, + (float) 2.804199, + (float) 2.238159, (float) 2.452759, (float) 2.652832, + (float) 2.868286, + (float) 1.897949, (float) 2.101685, (float) 2.524292, + (float) 2.880127, + (float) 1.856445, (float) 2.074585, (float) 2.541016, + (float) 2.791748, + (float) 1.695557, (float) 2.199097, (float) 2.506226, + (float) 2.742676, + (float) 1.612671, (float) 1.877075, (float) 2.435425, + (float) 2.732910, + (float) 1.568848, (float) 1.786499, (float) 2.194580, + (float) 2.768555, + (float) 1.953369, (float) 2.164551, (float) 2.486938, + (float) 2.874023, + (float) 1.388306, (float) 1.725342, (float) 2.384521, + (float) 2.771851, + (float) 2.115356, (float) 2.337769, (float) 2.592896, + (float) 2.864014, + (float) 1.905762, (float) 2.111328, (float) 2.363525, + (float) 2.789307, + + + + + + (float) 1.882568, (float) 2.332031, (float) 2.598267, + (float) 2.827637, + (float) 1.683594, (float) 2.088745, (float) 2.361938, + (float) 2.608643, + (float) 1.874023, (float) 2.182129, (float) 2.536133, + (float) 2.766968, + (float) 1.861938, (float) 2.070435, (float) 2.309692, + (float) 2.700562, + (float) 1.722168, (float) 2.107422, (float) 2.477295, + (float) 2.837646, + (float) 1.926880, (float) 2.184692, (float) 2.442627, + (float) 2.663818, + (float) 2.123901, (float) 2.337280, (float) 2.553101, + (float) 2.777466, + (float) 1.588135, (float) 1.911499, (float) 2.212769, + (float) 2.543945, + (float) 2.053955, (float) 2.370850, (float) 2.712158, + (float) 2.939941, + (float) 2.210449, (float) 2.519653, (float) 2.770386, + (float) 2.958618, + (float) 2.199463, (float) 2.474731, (float) 2.718262, + (float) 2.919922, + (float) 1.960083, (float) 2.175415, (float) 2.608032, + (float) 2.888794, + (float) 1.953735, (float) 2.185181, (float) 2.428223, + (float) 2.809570, + (float) 1.615234, (float) 2.036499, (float) 2.576538, + (float) 2.834595, + (float) 1.621094, (float) 2.028198, (float) 2.431030, + (float) 2.664673, + (float) 1.824951, (float) 2.267456, (float) 2.514526, + (float) 2.747925, + (float) 1.994263, (float) 2.229126, (float) 2.475220, + (float) 2.833984, + (float) 1.746338, (float) 2.011353, (float) 2.588257, + (float) 2.826904, + (float) 1.562866, (float) 2.135986, (float) 2.471680, + (float) 2.687256, + (float) 1.748901, (float) 2.083496, (float) 2.460938, + (float) 2.686279, + (float) 1.758057, (float) 2.131470, (float) 2.636597, + (float) 2.891602, + (float) 2.071289, (float) 2.299072, (float) 2.550781, + (float) 2.814331, + (float) 1.839600, (float) 2.094360, (float) 2.496460, + (float) 2.723999, + (float) 1.882202, (float) 2.088257, (float) 2.636841, + (float) 2.923096, + (float) 1.957886, (float) 2.153198, (float) 2.384399, + (float) 2.615234, + (float) 1.992920, (float) 2.351196, (float) 2.654419, + (float) 2.889771, + (float) 2.012817, (float) 2.262451, (float) 2.643799, + (float) 2.903076, + (float) 2.025635, (float) 2.254761, (float) 2.508423, + (float) 2.784058, + (float) 2.316040, (float) 2.589355, (float) 2.794189, + (float) 2.963623, + (float) 1.741211, (float) 2.279541, (float) 2.578491, + (float) 2.816284, + (float) 1.845337, (float) 2.055786, (float) 2.348511, + (float) 2.822021, + (float) 1.679932, (float) 1.926514, (float) 2.499756, + (float) 2.835693, + (float) 1.722534, (float) 1.946899, (float) 2.448486, + (float) 2.728760, + (float) 1.829834, (float) 2.043213, (float) 2.580444, + (float) 2.867676, + (float) 1.676636, (float) 2.071655, (float) 2.322510, + (float) 2.704834, + (float) 1.791504, (float) 2.113525, (float) 2.469727, + (float) 2.784058, + (float) 1.977051, (float) 2.215088, (float) 2.497437, + (float) 2.726929, + (float) 1.800171, (float) 2.106689, (float) 2.357788, + (float) 2.738892, + (float) 1.827759, (float) 2.170166, (float) 2.525879, + (float) 2.852417, + (float) 1.918335, (float) 2.132813, (float) 2.488403, + (float) 2.728149, + (float) 1.916748, (float) 2.225098, (float) 2.542603, + (float) 2.857666, + (float) 1.761230, (float) 1.976074, (float) 2.507446, + (float) 2.884521, + (float) 2.053711, (float) 2.367432, (float) 2.608032, + (float) 2.837646, + (float) 1.595337, (float) 2.000977, (float) 2.307129, + (float) 2.578247, + (float) 1.470581, (float) 2.031250, (float) 2.375854, + (float) 2.647583, + (float) 1.801392, (float) 2.128052, (float) 2.399780, + (float) 2.822876, + (float) 1.853638, (float) 2.066650, (float) 2.429199, + (float) 2.751465, + (float) 1.956299, (float) 2.163696, (float) 2.394775, + (float) 2.734253, + + + + + + (float) 1.963623, (float) 2.275757, (float) 2.585327, + (float) 2.865234, + (float) 1.887451, (float) 2.105469, (float) 2.331787, + (float) 2.587402, + (float) 2.120117, (float) 2.443359, (float) 2.733887, + (float) 2.941406, + (float) 1.506348, (float) 1.766968, (float) 2.400513, + (float) 2.851807, + (float) 1.664551, (float) 1.981079, (float) 2.375732, + (float) 2.774414, + (float) 1.720703, (float) 1.978882, (float) 2.391479, + (float) 2.640991, + (float) 1.483398, (float) 1.814819, (float) 2.434448, + (float) 2.722290, + (float) 1.769043, (float) 2.136597, (float) 2.563721, + (float) 2.774414, + (float) 1.810791, (float) 2.049316, (float) 2.373901, + (float) 2.613647, + (float) 1.788330, (float) 2.005981, (float) 2.359131, + (float) 2.723145, + (float) 1.785156, (float) 1.993164, (float) 2.399780, + (float) 2.832520, + (float) 1.695313, (float) 2.022949, (float) 2.522583, + (float) 2.745117, + (float) 1.584106, (float) 1.965576, (float) 2.299927, + (float) 2.715576, + (float) 1.894897, (float) 2.249878, (float) 2.655884, + (float) 2.897705, + (float) 1.720581, (float) 1.995728, (float) 2.299438, + (float) 2.557007, + (float) 1.619385, (float) 2.173950, (float) 2.574219, + (float) 2.787964, + (float) 1.883179, (float) 2.220459, (float) 2.474365, + (float) 2.825073, + (float) 1.447632, (float) 2.045044, (float) 2.555542, + (float) 2.744873, + (float) 1.502686, (float) 2.156616, (float) 2.653320, + (float) 2.846558, + (float) 1.711548, (float) 1.944092, (float) 2.282959, + (float) 2.685791, + (float) 1.499756, (float) 1.867554, (float) 2.341064, + (float) 2.578857, + (float) 1.916870, (float) 2.135132, (float) 2.568237, + (float) 2.826050, + (float) 1.498047, (float) 1.711182, (float) 2.223267, + (float) 2.755127, + (float) 1.808716, (float) 1.997559, (float) 2.256470, + (float) 2.758545, + (float) 2.088501, (float) 2.402710, (float) 2.667358, + (float) 2.890259, + (float) 1.545044, (float) 1.819214, (float) 2.324097, + (float) 2.692993, + (float) 1.796021, (float) 2.012573, (float) 2.505737, + (float) 2.784912, + (float) 1.786499, (float) 2.041748, (float) 2.290405, + (float) 2.650757, + (float) 1.938232, (float) 2.264404, (float) 2.529053, (float) 2.796143 +};