1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 /* coding tables for the KLT coefficients */ 12 13 #include "lpc_tables.h" 14 #include "settings.h" 15 16 /* cdf array for model indicator */ 17 const uint16_t WebRtcIsac_kQKltModelCdf[4] = { 18 0, 15434, 37548, 65535 }; 19 20 /* pointer to cdf array for model indicator */ 21 const uint16_t *WebRtcIsac_kQKltModelCdfPtr[1] = { 22 WebRtcIsac_kQKltModelCdf }; 23 24 /* initial cdf index for decoder of model indicator */ 25 const uint16_t WebRtcIsac_kQKltModelInitIndex[1] = { 1 }; 26 27 /* offset to go from rounded value to quantization index */ 28 const short WebRtcIsac_kQKltQuantMinGain[12] = { 29 3, 6, 4, 6, 6, 9, 5, 16, 11, 34, 32, 47 }; 30 31 32 const short WebRtcIsac_kQKltQuantMinShape[108] = { 33 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 34 1, 1, 1, 1, 2, 2, 2, 3, 0, 0, 35 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 36 1, 1, 1, 2, 2, 3, 0, 0, 0, 0, 37 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 38 2, 4, 3, 5, 0, 0, 0, 0, 1, 1, 39 1, 1, 1, 1, 2, 1, 2, 2, 3, 4, 40 4, 7, 0, 0, 1, 1, 1, 1, 1, 1, 41 1, 2, 3, 2, 3, 4, 4, 5, 7, 13, 42 0, 1, 1, 2, 3, 2, 2, 2, 4, 4, 43 5, 6, 7, 11, 9, 13, 12, 26 }; 44 45 /* maximum quantization index */ 46 const uint16_t WebRtcIsac_kQKltMaxIndGain[12] = { 47 6, 12, 8, 14, 10, 19, 12, 31, 22, 56, 52, 138 }; 48 49 const uint16_t WebRtcIsac_kQKltMaxIndShape[108] = { 50 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 51 2, 2, 2, 2, 4, 4, 5, 6, 0, 0, 52 0, 0, 1, 0, 0, 0, 0, 1, 2, 2, 53 2, 2, 3, 4, 5, 7, 0, 0, 0, 0, 54 2, 0, 2, 2, 2, 2, 3, 2, 2, 4, 55 4, 6, 6, 9, 0, 0, 0, 0, 2, 2, 56 2, 2, 2, 2, 3, 2, 4, 4, 7, 7, 57 9, 13, 0, 0, 2, 2, 2, 2, 2, 2, 58 3, 4, 5, 4, 6, 8, 8, 10, 16, 25, 59 0, 2, 2, 4, 5, 4, 4, 4, 7, 8, 60 9, 10, 13, 19, 17, 23, 25, 49 }; 61 62 /* index offset */ 63 const uint16_t WebRtcIsac_kQKltOffsetGain[12] = { 64 0, 7, 20, 29, 44, 55, 75, 88, 120, 143, 200, 253 }; 65 66 const uint16_t WebRtcIsac_kQKltOffsetShape[108] = { 67 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 68 11, 14, 17, 20, 23, 28, 33, 39, 46, 47, 69 48, 49, 50, 52, 53, 54, 55, 56, 58, 61, 70 64, 67, 70, 74, 79, 85, 93, 94, 95, 96, 71 97, 100, 101, 104, 107, 110, 113, 117, 120, 123, 72 128, 133, 140, 147, 157, 158, 159, 160, 161, 164, 73 167, 170, 173, 176, 179, 183, 186, 191, 196, 204, 74 212, 222, 236, 237, 238, 241, 244, 247, 250, 253, 75 256, 260, 265, 271, 276, 283, 292, 301, 312, 329, 76 355, 356, 359, 362, 367, 373, 378, 383, 388, 396, 77 405, 415, 426, 440, 460, 478, 502, 528 }; 78 79 /* initial cdf index for KLT coefficients */ 80 const uint16_t WebRtcIsac_kQKltInitIndexGain[12] = { 81 3, 6, 4, 7, 5, 10, 6, 16, 11, 28, 26, 69}; 82 83 const uint16_t WebRtcIsac_kQKltInitIndexShape[108] = { 84 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 85 1, 1, 1, 1, 2, 2, 3, 3, 0, 0, 86 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 87 1, 1, 2, 2, 3, 4, 0, 0, 0, 0, 88 1, 0, 1, 1, 1, 1, 2, 1, 1, 2, 89 2, 3, 3, 5, 0, 0, 0, 0, 1, 1, 90 1, 1, 1, 1, 2, 1, 2, 2, 4, 4, 91 5, 7, 0, 0, 1, 1, 1, 1, 1, 1, 92 2, 2, 3, 2, 3, 4, 4, 5, 8, 13, 93 0, 1, 1, 2, 3, 2, 2, 2, 4, 4, 94 5, 5, 7, 10, 9, 12, 13, 25 }; 95 96 97 /* quantizer representation levels */ 98 const double WebRtcIsac_kQKltLevelsGain[392] = { 99 -2.78127126, -1.76745590, -0.77913790, -0.00437329, 0.79961206, 100 1.81775776, 2.81389782, -5.78753143, -4.88384084, -3.89320940, 101 -2.88133610, -1.92859977, -0.86347396, 0.02003888, 0.86140400, 102 1.89667156, 2.97134967, 3.98781964, 4.91727277, 5.82865898, 103 -4.11195874, -2.80898424, -1.87547977, -0.80943825, -0.00679084, 104 0.79573851, 1.83953397, 2.67586037, 3.76274082, -6.10933968, 105 -4.93034581, -3.89281296, -2.91530625, -1.89684163, -0.85319130, 106 -0.02275767, 0.86862017, 1.91578276, 2.96107339, 3.96543056, 107 4.91369908, 5.91058154, 6.83848343, 8.07136925, -5.87470395, 108 -4.84703049, -3.84284597, -2.86168446, -1.89290192, -0.82798145, 109 -0.00080013, 0.82594974, 1.85754329, 2.88351798, 3.96172628, 110 -8.85684885, -7.87387461, -6.97811862, -5.93256270, -4.94301439, 111 -3.95513701, -2.96041544, -1.94031192, -0.87961478, -0.00456201, 112 0.89911505, 1.91723376, 2.94011511, 3.93302540, 4.97990967, 113 5.93133404, 7.02181199, 7.92407762, 8.80155440, 10.04665814, 114 -4.82396678, -3.85612158, -2.89482244, -1.89558408, -0.90036978, 115 -0.00677823, 0.90607989, 1.90937981, 2.91175777, 3.91637730, 116 4.97565723, 5.84771228, 7.11145863, -16.07879840, -15.03776309, 117 -13.93905670, -12.95671800, -11.89171202, -10.95820934, -9.95923714, 118 -8.94357334, -7.99068299, -6.97481009, -5.94826231, -4.96673988, 119 -3.97490466, -2.97846970, -1.95130435, -0.94215262, -0.01444043, 120 0.96770704, 1.95848598, 2.94107862, 3.95666119, 4.97253085, 121 5.97191122, 6.93277360, 7.96608727, 8.87958779, 10.00264269, 122 10.86560820, 12.07449071, 13.04491775, 13.97507061, 14.91845261, 123 -10.85696295, -9.83365357, -9.01245635, -7.95915145, -6.95625003, 124 -5.95362618, -4.93468444, -3.98760978, -2.95044407, -1.97041277, 125 -0.97701799, -0.00840234, 0.97834289, 1.98361415, 2.97802439, 126 3.96415871, 4.95369042, 5.94101770, 6.92756798, 7.94063998, 127 8.85951828, 9.97077022, 11.00068503, -33.92030406, -32.81426422, 128 -32.00000000, -31.13243639, -30.11886909, -29.06017570, -28.12598824, 129 -27.22045482, -25.81215858, -25.07849962, -23.93018013, -23.02097643, 130 -21.89529725, -20.99091085, -19.98889048, -18.94327044, -17.96562071, 131 -16.96126218, -15.95054062, -14.98516200, -13.97101012, -13.02106500, 132 -11.98438006, -11.03216748, -9.95930286, -8.97043946, -7.98085082, 133 -6.98360995, -5.98998802, -4.98668173, -4.00032906, -3.00420619, 134 -1.98701132, -0.99324682, -0.00609324, 0.98297834, 1.99483076, 135 3.00305044, 3.97142097, 4.97525759, 5.98612258, 6.97448236, 136 7.97575900, 9.01086211, 9.98665542, 11.00541438, 11.98078628, 137 12.92352471, 14.06849675, 14.99949430, 15.94904834, 16.97440321, 138 18.04040916, 18.88987609, 20.05312391, 21.00000000, 21.79443341, 139 -31.98578825, -31.00000000, -29.89060567, -28.98555686, -27.97114102, 140 -26.84935410, -26.02402230, -24.94195278, -23.92336849, -22.95552382, 141 -21.97932836, -20.96055470, -19.99649553, -19.03436122, -17.96706525, 142 -17.01139515, -16.01363516, -14.99154248, -14.00298333, -12.99630613, 143 -11.99955519, -10.99000421, -10.00819092, -8.99763648, -7.98431793, 144 -7.01769025, -5.99604690, -4.99980697, -3.99334671, -3.01748192, 145 -2.02051217, -1.00848371, -0.01942358, 1.00477757, 1.95477872, 146 2.98593031, 3.98779079, 4.96862849, 6.02694771, 6.93983733, 147 7.89874717, 8.99615862, 10.02367921, 10.96293452, 11.84351528, 148 12.92207187, 13.85122329, 15.05146877, 15.99371264, 17.00000000, 149 18.00000000, 19.00000000, 19.82763573, -47.00000000, -46.00000000, 150 -44.87138498, -44.00000000, -43.00000000, -42.00000000, -41.00000000, 151 -39.88966612, -38.98913239, -37.80306486, -37.23584325, -35.94200288, 152 -34.99881301, -34.11361858, -33.06507360, -32.13129135, -30.90891364, 153 -29.81511907, -28.99250380, -28.04535391, -26.99767800, -26.04418164, 154 -24.95687851, -24.04865595, -23.03392645, -21.89366707, -20.93517364, 155 -19.99388660, -18.91620943, -18.03749683, -16.99532379, -15.98683813, 156 -15.06421479, -13.99359211, -12.99714098, -11.97022520, -10.98500279, 157 -9.98834422, -8.95729330, -8.01232284, -7.00253661, -5.99681626, 158 -5.01207817, -3.95914904, -3.01232178, -1.96615919, -0.97687670, 159 0.01228030, 0.98412288, 2.01753544, 3.00580570, 3.97783510, 160 4.98846894, 6.01321400, 7.00867732, 8.00416375, 9.01771966, 161 9.98637729, 10.98255180, 11.99194163, 13.01807333, 14.00999545, 162 15.00118556, 16.00089224, 17.00584148, 17.98251763, 18.99942091, 163 19.96917690, 20.97839265, 21.98207297, 23.00171271, 23.99930737, 164 24.99746061, 26.00936304, 26.98240132, 28.01126868, 29.01395915, 165 29.98153507, 31.01376711, 31.99876818, 33.00475317, 33.99753994, 166 34.99493913, 35.98933585, 36.95620160, 37.98428461, 38.99317544, 167 40.01832073, 40.98048133, 41.95999283, 42.98232091, 43.96523612, 168 44.99574268, 45.99524194, 47.05464025, 48.03821548, 48.99354366, 169 49.96400411, 50.98017973, 51.95184408, 52.96291806, 54.00194392, 170 54.96603783, 55.95623778, 57.03076595, 58.05889901, 58.99081551, 171 59.97928121, 61.05071612, 62.03971580, 63.01286038, 64.01290338, 172 65.02074503, 65.99454594, 67.00399425, 67.96571257, 68.95305727, 173 69.92030664, 70.95594862, 71.98088567, 73.04764124, 74.00285480, 174 75.02696330, 75.89837673, 76.93459997, 78.16266309, 78.83317543, 175 80.00000000, 80.87251574, 82.09803524, 83.10671664, 84.00000000, 176 84.77023523, 86.00000000, 87.00000000, 87.92946897, 88.69159118, 177 90.00000000, 90.90535270 }; 178 179 const double WebRtcIsac_kQKltLevelsShape[578] = { 180 0.00032397, 0.00008053, -0.00061202, -0.00012620, 0.00030437, 181 0.00054764, -0.00027902, 0.00069360, 0.00029449, -0.80219239, 182 0.00091089, -0.74514927, -0.00094283, 0.64030631, -0.60509119, 183 0.00035575, 0.61851665, -0.62129957, 0.00375219, 0.60054900, 184 -0.61554359, 0.00054977, 0.63362016, -1.73118727, -0.65422341, 185 0.00524568, 0.66165298, 1.76785515, -1.83182018, -0.65997434, 186 -0.00011887, 0.67524299, 1.79933938, -1.76344480, -0.72547708, 187 -0.00133017, 0.73104704, 1.75305377, 2.85164534, -2.80423916, 188 -1.71959639, -0.75419722, -0.00329945, 0.77196760, 1.72211069, 189 2.87339653, 0.00031089, -0.00015311, 0.00018201, -0.00035035, 190 -0.77357251, 0.00154647, -0.00047625, -0.00045299, 0.00086590, 191 0.00044762, -0.83383829, 0.00024787, -0.68526258, -0.00122472, 192 0.64643255, -0.60904942, -0.00448987, 0.62309184, -0.59626442, 193 -0.00574132, 0.62296546, -0.63222115, 0.00013441, 0.63609545, 194 -0.66911055, -0.00369971, 0.66346095, 2.07281301, -1.77184694, 195 -0.67640425, -0.00010145, 0.64818392, 1.74948973, -1.69420224, 196 -0.71943894, -0.00004680, 0.75303493, 1.81075983, 2.80610041, 197 -2.80005755, -1.79866753, -0.77409777, -0.00084220, 0.80141293, 198 1.78291081, 2.73954236, 3.82994169, 0.00015140, -0.00012766, 199 -0.00034241, -0.00119125, -0.76113497, 0.00069246, 0.76722027, 200 0.00132862, -0.69107530, 0.00010656, 0.77061578, -0.78012970, 201 0.00095947, 0.77828502, -0.64787758, 0.00217168, 0.63050167, 202 -0.58601125, 0.00306596, 0.59466308, -0.58603410, 0.00059779, 203 0.64257970, 1.76512766, -0.61193600, -0.00259517, 0.59767574, 204 -0.61026273, 0.00315811, 0.61725479, -1.69169719, -0.65816029, 205 0.00067575, 0.65576890, 2.00000000, -1.72689193, -0.69780808, 206 -0.00040990, 0.70668487, 1.74198458, -3.79028154, -3.00000000, 207 -1.73194459, -0.70179341, -0.00106695, 0.71302629, 1.76849782, 208 -2.89332364, -1.78585007, -0.78731491, -0.00132610, 0.79692976, 209 1.75247009, 2.97828682, -5.26238694, -3.69559829, -2.87286122, 210 -1.84908818, -0.84434577, -0.01167975, 0.84641753, 1.84087672, 211 2.87628156, 3.83556679, -0.00190204, 0.00092642, 0.00354385, 212 -0.00012982, -0.67742785, 0.00229509, 0.64935672, -0.58444751, 213 0.00470733, 0.57299534, -0.58456202, -0.00097715, 0.64593607, 214 -0.64060330, -0.00638534, 0.59680157, -0.59287537, 0.00490772, 215 0.58919707, -0.60306173, -0.00417464, 0.60562100, -1.75218757, 216 -0.63018569, -0.00225922, 0.63863300, -0.63949939, -0.00126421, 217 0.64268914, -1.75851182, -0.68318060, 0.00510418, 0.69049211, 218 1.88178506, -1.71136148, -0.72710534, -0.00815559, 0.73412917, 219 1.79996711, -2.77111145, -1.73940498, -0.78212945, 0.01074476, 220 0.77688916, 1.76873972, 2.87281379, 3.77554698, -3.75832725, 221 -2.95463235, -1.80451491, -0.80017226, 0.00149902, 0.80729206, 222 1.78265046, 2.89391793, -3.78236148, -2.83640598, -1.82532067, 223 -0.88844327, -0.00620952, 0.88208030, 1.85757631, 2.81712391, 224 3.88430176, 5.16179367, -7.00000000, -5.93805408, -4.87172597, 225 -3.87524433, -2.89399744, -1.92359563, -0.92136341, -0.00172725, 226 0.93087018, 1.90528280, 2.89809686, 3.88085708, 4.89147740, 227 5.89078692, -0.00239502, 0.00312564, -1.00000000, 0.00178325, 228 1.00000000, -0.62198029, 0.00143254, 0.65344051, -0.59851220, 229 -0.00676987, 0.61510140, -0.58894151, 0.00385055, 0.59794203, 230 -0.59808568, -0.00038214, 0.57625703, -0.63009713, -0.01107985, 231 0.61278758, -0.64206758, -0.00154369, 0.65480598, 1.80604162, 232 -1.80909286, -0.67810514, 0.00205762, 0.68571097, 1.79453891, 233 -3.22682422, -1.73808453, -0.71870305, -0.00738594, 0.71486172, 234 1.73005326, -1.66891897, -0.73689615, -0.00616203, 0.74262409, 235 1.73807899, -2.92417482, -1.73866741, -0.78133871, 0.00764425, 236 0.80027264, 1.78668732, 2.74992588, -4.00000000, -2.75578740, 237 -1.83697516, -0.83117035, -0.00355191, 0.83527172, 1.82814700, 238 2.77377675, 3.80718693, -3.81667698, -2.83575471, -1.83372350, 239 -0.86579471, 0.00547578, 0.87582281, 1.82858793, 2.87265007, 240 3.91405377, -4.87521600, -3.78999094, -2.86437014, -1.86964365, 241 -0.90618018, 0.00128243, 0.91497811, 1.87374952, 2.83199819, 242 3.91519130, 4.76632822, -6.68713448, -6.01252467, -4.94587936, 243 -3.88795368, -2.91299088, -1.92592211, -0.95504570, -0.00089980, 244 0.94565200, 1.93239633, 2.91832808, 3.91363475, 4.88920034, 245 5.96471415, 6.83905252, 7.86195009, 8.81571018,-12.96141759, 246 -11.73039516,-10.96459719, -9.97382433, -9.04414433, -7.89460619, 247 -6.96628608, -5.93236595, -4.93337924, -3.95479990, -2.96451499, 248 -1.96635876, -0.97271229, -0.00402238, 0.98343930, 1.98348291, 249 2.96641164, 3.95456471, 4.95517089, 5.98975714, 6.90322073, 250 7.90468849, 8.85639467, 9.97255498, 10.79006309, 11.81988596, 251 0.04950500, -1.00000000, -0.01226628, 1.00000000, -0.59479469, 252 -0.10438305, 0.59822144, -2.00000000, -0.67109149, -0.09256692, 253 0.65171621, 2.00000000, -3.00000000, -1.68391999, -0.76681039, 254 -0.03354151, 0.71509146, 1.77615472, -2.00000000, -0.68661511, 255 -0.02497881, 0.66478398, 2.00000000, -2.00000000, -0.67032784, 256 -0.00920582, 0.64892756, 2.00000000, -2.00000000, -0.68561894, 257 0.03641869, 0.73021611, 1.68293863, -4.00000000, -2.72024184, 258 -1.80096059, -0.81696185, 0.03604685, 0.79232033, 1.70070730, 259 3.00000000, -4.00000000, -2.71795670, -1.80482986, -0.86001162, 260 0.03764903, 0.87723968, 1.79970771, 2.72685932, 3.67589143, 261 -5.00000000, -4.00000000, -2.85492548, -1.78996365, -0.83250358, 262 -0.01376828, 0.84195506, 1.78161105, 2.76754458, 4.00000000, 263 -6.00000000, -5.00000000, -3.82268811, -2.77563624, -1.82608163, 264 -0.86486114, -0.02671886, 0.86693165, 1.88422879, 2.86248347, 265 3.95632216, -7.00000000, -6.00000000, -5.00000000, -3.77533988, 266 -2.86391432, -1.87052039, -0.90513658, 0.06271236, 0.91083620, 267 1.85734756, 2.86031688, 3.82019418, 4.94420394, 6.00000000, 268 -11.00000000,-10.00000000, -9.00000000, -8.00000000, -6.91952415, 269 -6.00000000, -4.92044374, -3.87845165, -2.87392362, -1.88413020, 270 -0.91915740, 0.00318517, 0.91602800, 1.89664838, 2.88925058, 271 3.84123856, 4.78988651, 5.94526812, 6.81953917, 8.00000000, 272 -9.00000000, -8.00000000, -7.03319143, -5.94530963, -4.86669720, 273 -3.92438007, -2.88620396, -1.92848070, -0.94365985, 0.01671855, 274 0.97349410, 1.93419878, 2.89740109, 3.89662823, 4.83235583, 275 5.88106535, 6.80328232, 8.00000000,-13.00000000,-12.00000000, 276 -11.00000000,-10.00000000, -9.00000000, -7.86033489, -6.83344055, 277 -5.89844215, -4.90811454, -3.94841298, -2.95820490, -1.98627966, 278 -0.99161468, -0.02286136, 0.96055651, 1.95052433, 2.93969396, 279 3.94304346, 4.88522624, 5.87434241, 6.78309433, 7.87244101, 280 9.00000000, 10.00000000,-12.09117356,-11.00000000,-10.00000000, 281 -8.84766108, -7.86934236, -6.98544896, -5.94233429, -4.95583292, 282 -3.95575986, -2.97085529, -1.98955811, -0.99359873, -0.00485413, 283 0.98298870, 1.98093258, 2.96430203, 3.95540216, 4.96915010, 284 5.96775124, 6.99236918, 7.96503302, 8.99864542, 9.85857723, 285 10.96541926, 11.91647197, 12.71060069,-26.00000000,-25.00000000, 286 -24.00585596,-23.11642573,-22.14271284,-20.89800711,-19.87815799, 287 -19.05036354,-17.88555651,-16.86471209,-15.97711073,-14.94012359, 288 -14.02661226,-12.98243228,-11.97489256,-10.97402777, -9.96425624, 289 -9.01085220, -7.97372506, -6.98795002, -5.97271328, -5.00191694, 290 -3.98055849, -2.98458048, -1.99470442, -0.99656768, -0.00825666, 291 1.00272004, 1.99922218, 2.99357669, 4.01407905, 5.01003897, 292 5.98115528, 7.00018958, 8.00338125, 8.98981046, 9.98990318, 293 10.96341479, 11.96866930, 12.99175139, 13.94580443, 14.95745083, 294 15.98992869, 16.97484646, 17.99630043, 18.93396897, 19.88347741, 295 20.96532482, 21.92191032, 23.22314702 }; 296 297 298 /* cdf tables for quantizer indices */ 299 const uint16_t WebRtcIsac_kQKltCdfGain[404] = { 300 0, 13, 301, 3730, 61784, 65167, 65489, 65535, 0, 17, 301 142, 314, 929, 2466, 7678, 56450, 63463, 64740, 65204, 65426, 302 65527, 65535, 0, 8, 100, 724, 6301, 60105, 65125, 65510, 303 65531, 65535, 0, 13, 117, 368, 1068, 3010, 11928, 53603, 304 61177, 63404, 64505, 65108, 65422, 65502, 65531, 65535, 0, 4, 305 17, 96, 410, 1859, 12125, 54361, 64103, 65305, 65497, 65535, 306 0, 4, 88, 230, 469, 950, 1746, 3228, 6092, 16592, 307 44756, 56848, 61256, 63308, 64325, 64920, 65309, 65460, 65502, 308 65522, 65535, 0, 88, 352, 1675, 6339, 20749, 46686, 59284, 63525, 309 64949, 65359, 65502, 65527, 65535, 0, 13, 38, 63, 117, 310 234, 381, 641, 929, 1407, 2043, 2809, 4032, 5753, 8792, 311 14407, 24308, 38941, 48947, 55403, 59293, 61411, 62688, 63630, 312 64329, 64840, 65188, 65376, 65472, 65506, 65527, 65531, 65535, 313 0, 8, 29, 75, 222, 615, 1327, 2801, 5623, 9931, 16094, 24966, 314 34419, 43458, 50676, 56186, 60055, 62500, 63936, 64765, 65225, 315 65435, 65514, 65535, 0, 8, 13, 15, 17, 21, 33, 59, 316 71, 92, 151, 243, 360, 456, 674, 934, 1223, 1583, 317 1989, 2504, 3031, 3617, 4354, 5154, 6163, 7411, 8780, 10747, 318 12874, 15591, 18974, 23027, 27436, 32020, 36948, 41830, 46205, 319 49797, 53042, 56094, 58418, 60360, 61763, 62818, 63559, 64103, 320 64509, 64798, 65045, 65162, 65288, 65363, 65447, 65506, 65522, 321 65531, 65533, 65535, 0, 4, 6, 25, 38, 71, 138, 264, 519, 808, 322 1227, 1825, 2516, 3408, 4279, 5560, 7092, 9197, 11420, 14108, 323 16947, 20300, 23926, 27459, 31164, 34827, 38575, 42178, 45540, 324 48747, 51444, 54090, 56426, 58460, 60080, 61595, 62734, 63668, 325 64275, 64673, 64936, 65112, 65217, 65334, 65426, 65464, 65477, 326 65489, 65518, 65527, 65529, 65531, 65533, 65535, 0, 2, 4, 8, 10, 327 12, 14, 16, 21, 33, 50, 71, 84, 92, 105, 138, 180, 255, 318, 328 377, 435, 473, 511, 590, 682, 758, 913, 1097, 1256, 1449, 1671, 329 1884, 2169, 2445, 2772, 3157, 3563, 3944, 4375, 4848, 5334, 5820, 330 6448, 7101, 7716, 8378, 9102, 9956, 10752, 11648, 12707, 13670, 331 14758, 15910, 17187, 18472, 19627, 20649, 21951, 23169, 24283, 332 25552, 26862, 28227, 29391, 30764, 31882, 33213, 34432, 35600, 333 36910, 38116, 39464, 40729, 41872, 43144, 44371, 45514, 46762, 334 47813, 48968, 50069, 51032, 51974, 52908, 53737, 54603, 55445, 335 56282, 56990, 57572, 58191, 58840, 59410, 59887, 60264, 60607, 336 60946, 61269, 61516, 61771, 61960, 62198, 62408, 62558, 62776, 337 62985, 63207, 63408, 63546, 63739, 63906, 64070, 64237, 64371, 338 64551, 64677, 64836, 64999, 65095, 65213, 65284, 65338, 65380, 339 65426, 65447, 65472, 65485, 65487, 65489, 65502, 65510, 65512, 340 65514, 65516, 65518, 65522, 65531, 65533, 65535 }; 341 342 343 const uint16_t WebRtcIsac_kQKltCdfShape[686] = { 344 0, 65535, 0, 65535, 0, 65535, 0, 65535, 0, 65535, 345 0, 65535, 0, 65535, 0, 65535, 0, 65535, 0, 4, 346 65535, 0, 8, 65514, 65535, 0, 29, 65481, 65535, 0, 347 121, 65439, 65535, 0, 239, 65284, 65535, 0, 8, 779, 348 64999, 65527, 65535, 0, 8, 888, 64693, 65522, 65535, 0, 349 29, 2604, 62843, 65497, 65531, 65535, 0, 25, 176, 4576, 350 61164, 65275, 65527, 65535, 0, 65535, 0, 65535, 0, 65535, 351 0, 65535, 0, 4, 65535, 0, 65535, 0, 65535, 0, 352 65535, 0, 65535, 0, 4, 65535, 0, 33, 65502, 65535, 353 0, 54, 65481, 65535, 0, 251, 65309, 65535, 0, 611, 354 65074, 65535, 0, 1273, 64292, 65527, 65535, 0, 4, 1809, 355 63940, 65518, 65535, 0, 88, 4392, 60603, 65426, 65531, 65535, 356 0, 25, 419, 7046, 57756, 64961, 65514, 65531, 65535, 0, 357 65535, 0, 65535, 0, 65535, 0, 65535, 0, 4, 65531, 358 65535, 0, 65535, 0, 8, 65531, 65535, 0, 4, 65527, 359 65535, 0, 17, 65510, 65535, 0, 42, 65481, 65535, 0, 360 197, 65342, 65531, 65535, 0, 385, 65154, 65535, 0, 1005, 361 64522, 65535, 0, 8, 1985, 63469, 65533, 65535, 0, 38, 362 3119, 61884, 65514, 65535, 0, 4, 6, 67, 4961, 60804, 363 65472, 65535, 0, 17, 565, 9182, 56538, 65087, 65514, 65535, 364 0, 8, 63, 327, 2118, 14490, 52774, 63839, 65376, 65522, 365 65535, 0, 65535, 0, 65535, 0, 65535, 0, 65535, 0, 366 17, 65522, 65535, 0, 59, 65489, 65535, 0, 50, 65522, 367 65535, 0, 54, 65489, 65535, 0, 310, 65179, 65535, 0, 368 615, 64836, 65535, 0, 4, 1503, 63965, 65535, 0, 2780, 369 63383, 65535, 0, 21, 3919, 61051, 65527, 65535, 0, 84, 370 6674, 59929, 65435, 65535, 0, 4, 255, 7976, 55784, 65150, 371 65518, 65531, 65535, 0, 4, 8, 582, 10726, 53465, 64949, 372 65518, 65535, 0, 29, 339, 3006, 17555, 49517, 62956, 65200, 373 65497, 65531, 65535, 0, 2, 33, 138, 565, 2324, 7670, 374 22089, 45966, 58949, 63479, 64966, 65380, 65518, 65535, 0, 65535, 375 0, 65535, 0, 2, 65533, 65535, 0, 46, 65514, 65535, 376 0, 414, 65091, 65535, 0, 540, 64911, 65535, 0, 419, 377 65162, 65535, 0, 976, 64790, 65535, 0, 2977, 62495, 65531, 378 65535, 0, 4, 3852, 61034, 65527, 65535, 0, 4, 29, 379 6021, 60243, 65468, 65535, 0, 84, 6711, 58066, 65418, 65535, 380 0, 13, 281, 9550, 54917, 65125, 65506, 65535, 0, 2, 381 63, 984, 12108, 52644, 64342, 65435, 65527, 65535, 0, 29, 382 251, 2014, 14871, 47553, 62881, 65229, 65518, 65535, 0, 13, 383 142, 749, 4220, 18497, 45200, 60913, 64823, 65426, 65527, 65535, 384 0, 13, 71, 264, 1176, 3789, 10500, 24480, 43488, 56324, 385 62315, 64493, 65242, 65464, 65514, 65522, 65531, 65535, 0, 4, 386 13, 38, 109, 205, 448, 850, 1708, 3429, 6276, 11371, 387 19221, 29734, 40955, 49391, 55411, 59460, 62102, 63793, 64656, 388 65150, 65401, 65485, 65522, 65531, 65535, 0, 65535, 0, 2, 65533, 389 65535, 0, 1160, 65476, 65535, 0, 2, 6640, 64763, 65533, 390 65535, 0, 2, 38, 9923, 61009, 65527, 65535, 0, 2, 391 4949, 63092, 65533, 65535, 0, 2, 3090, 63398, 65533, 65535, 392 0, 2, 2520, 58744, 65510, 65535, 0, 2, 13, 544, 393 8784, 51403, 65148, 65533, 65535, 0, 2, 25, 1017, 10412, 394 43550, 63651, 65489, 65527, 65535, 0, 2, 4, 29, 783, 395 13377, 52462, 64524, 65495, 65533, 65535, 0, 2, 4, 6, 396 100, 1817, 18451, 52590, 63559, 65376, 65531, 65535, 0, 2, 397 4, 6, 46, 385, 2562, 11225, 37416, 60488, 65026, 65487, 398 65529, 65533, 65535, 0, 2, 4, 6, 8, 10, 12, 399 42, 222, 971, 5221, 19811, 45048, 60312, 64486, 65294, 65474, 400 65525, 65529, 65533, 65535, 0, 2, 4, 8, 71, 167, 401 666, 2533, 7875, 19622, 38082, 54359, 62108, 64633, 65290, 65495, 402 65529, 65533, 65535, 0, 2, 4, 6, 8, 10, 13, 403 109, 586, 1930, 4949, 11600, 22641, 36125, 48312, 56899, 61495, 404 63927, 64932, 65389, 65489, 65518, 65531, 65533, 65535, 0, 4, 405 6, 8, 67, 209, 712, 1838, 4195, 8432, 14432, 22834, 406 31723, 40523, 48139, 53929, 57865, 60657, 62403, 63584, 64363, 407 64907, 65167, 65372, 65472, 65514, 65535, 0, 2, 4, 13, 25, 408 42, 46, 50, 75, 113, 147, 281, 448, 657, 909, 409 1185, 1591, 1976, 2600, 3676, 5317, 7398, 9914, 12941, 16169, 410 19477, 22885, 26464, 29851, 33360, 37228, 41139, 44802, 48654, 411 52058, 55181, 57676, 59581, 61022, 62190, 63107, 63676, 64199, 412 64547, 64924, 65158, 65313, 65430, 65481, 65518, 65535 }; 413 414 415 /* pointers to cdf tables for quantizer indices */ 416 const uint16_t *WebRtcIsac_kQKltCdfPtrGain[12] = { 417 WebRtcIsac_kQKltCdfGain +0 +0, WebRtcIsac_kQKltCdfGain +0 +8, 418 WebRtcIsac_kQKltCdfGain +0 +22, WebRtcIsac_kQKltCdfGain +0 +32, 419 WebRtcIsac_kQKltCdfGain +0 +48, WebRtcIsac_kQKltCdfGain +0 +60, 420 WebRtcIsac_kQKltCdfGain +0 +81, WebRtcIsac_kQKltCdfGain +0 +95, 421 WebRtcIsac_kQKltCdfGain +0 +128, WebRtcIsac_kQKltCdfGain +0 +152, 422 WebRtcIsac_kQKltCdfGain +0 +210, WebRtcIsac_kQKltCdfGain +0 +264 }; 423 424 const uint16_t *WebRtcIsac_kQKltCdfPtrShape[108] = { 425 WebRtcIsac_kQKltCdfShape +0 +0, WebRtcIsac_kQKltCdfShape +0 +2, 426 WebRtcIsac_kQKltCdfShape +0 +4, WebRtcIsac_kQKltCdfShape +0 +6, 427 WebRtcIsac_kQKltCdfShape +0 +8, WebRtcIsac_kQKltCdfShape +0 +10, 428 WebRtcIsac_kQKltCdfShape +0 +12, WebRtcIsac_kQKltCdfShape +0 +14, 429 WebRtcIsac_kQKltCdfShape +0 +16, WebRtcIsac_kQKltCdfShape +0 +18, 430 WebRtcIsac_kQKltCdfShape +0 +21, WebRtcIsac_kQKltCdfShape +0 +25, 431 WebRtcIsac_kQKltCdfShape +0 +29, WebRtcIsac_kQKltCdfShape +0 +33, 432 WebRtcIsac_kQKltCdfShape +0 +37, WebRtcIsac_kQKltCdfShape +0 +43, 433 WebRtcIsac_kQKltCdfShape +0 +49, WebRtcIsac_kQKltCdfShape +0 +56, 434 WebRtcIsac_kQKltCdfShape +0 +64, WebRtcIsac_kQKltCdfShape +0 +66, 435 WebRtcIsac_kQKltCdfShape +0 +68, WebRtcIsac_kQKltCdfShape +0 +70, 436 WebRtcIsac_kQKltCdfShape +0 +72, WebRtcIsac_kQKltCdfShape +0 +75, 437 WebRtcIsac_kQKltCdfShape +0 +77, WebRtcIsac_kQKltCdfShape +0 +79, 438 WebRtcIsac_kQKltCdfShape +0 +81, WebRtcIsac_kQKltCdfShape +0 +83, 439 WebRtcIsac_kQKltCdfShape +0 +86, WebRtcIsac_kQKltCdfShape +0 +90, 440 WebRtcIsac_kQKltCdfShape +0 +94, WebRtcIsac_kQKltCdfShape +0 +98, 441 WebRtcIsac_kQKltCdfShape +0 +102, WebRtcIsac_kQKltCdfShape +0 +107, 442 WebRtcIsac_kQKltCdfShape +0 +113, WebRtcIsac_kQKltCdfShape +0 +120, 443 WebRtcIsac_kQKltCdfShape +0 +129, WebRtcIsac_kQKltCdfShape +0 +131, 444 WebRtcIsac_kQKltCdfShape +0 +133, WebRtcIsac_kQKltCdfShape +0 +135, 445 WebRtcIsac_kQKltCdfShape +0 +137, WebRtcIsac_kQKltCdfShape +0 +141, 446 WebRtcIsac_kQKltCdfShape +0 +143, WebRtcIsac_kQKltCdfShape +0 +147, 447 WebRtcIsac_kQKltCdfShape +0 +151, WebRtcIsac_kQKltCdfShape +0 +155, 448 WebRtcIsac_kQKltCdfShape +0 +159, WebRtcIsac_kQKltCdfShape +0 +164, 449 WebRtcIsac_kQKltCdfShape +0 +168, WebRtcIsac_kQKltCdfShape +0 +172, 450 WebRtcIsac_kQKltCdfShape +0 +178, WebRtcIsac_kQKltCdfShape +0 +184, 451 WebRtcIsac_kQKltCdfShape +0 +192, WebRtcIsac_kQKltCdfShape +0 +200, 452 WebRtcIsac_kQKltCdfShape +0 +211, WebRtcIsac_kQKltCdfShape +0 +213, 453 WebRtcIsac_kQKltCdfShape +0 +215, WebRtcIsac_kQKltCdfShape +0 +217, 454 WebRtcIsac_kQKltCdfShape +0 +219, WebRtcIsac_kQKltCdfShape +0 +223, 455 WebRtcIsac_kQKltCdfShape +0 +227, WebRtcIsac_kQKltCdfShape +0 +231, 456 WebRtcIsac_kQKltCdfShape +0 +235, WebRtcIsac_kQKltCdfShape +0 +239, 457 WebRtcIsac_kQKltCdfShape +0 +243, WebRtcIsac_kQKltCdfShape +0 +248, 458 WebRtcIsac_kQKltCdfShape +0 +252, WebRtcIsac_kQKltCdfShape +0 +258, 459 WebRtcIsac_kQKltCdfShape +0 +264, WebRtcIsac_kQKltCdfShape +0 +273, 460 WebRtcIsac_kQKltCdfShape +0 +282, WebRtcIsac_kQKltCdfShape +0 +293, 461 WebRtcIsac_kQKltCdfShape +0 +308, WebRtcIsac_kQKltCdfShape +0 +310, 462 WebRtcIsac_kQKltCdfShape +0 +312, WebRtcIsac_kQKltCdfShape +0 +316, 463 WebRtcIsac_kQKltCdfShape +0 +320, WebRtcIsac_kQKltCdfShape +0 +324, 464 WebRtcIsac_kQKltCdfShape +0 +328, WebRtcIsac_kQKltCdfShape +0 +332, 465 WebRtcIsac_kQKltCdfShape +0 +336, WebRtcIsac_kQKltCdfShape +0 +341, 466 WebRtcIsac_kQKltCdfShape +0 +347, WebRtcIsac_kQKltCdfShape +0 +354, 467 WebRtcIsac_kQKltCdfShape +0 +360, WebRtcIsac_kQKltCdfShape +0 +368, 468 WebRtcIsac_kQKltCdfShape +0 +378, WebRtcIsac_kQKltCdfShape +0 +388, 469 WebRtcIsac_kQKltCdfShape +0 +400, WebRtcIsac_kQKltCdfShape +0 +418, 470 WebRtcIsac_kQKltCdfShape +0 +445, WebRtcIsac_kQKltCdfShape +0 +447, 471 WebRtcIsac_kQKltCdfShape +0 +451, WebRtcIsac_kQKltCdfShape +0 +455, 472 WebRtcIsac_kQKltCdfShape +0 +461, WebRtcIsac_kQKltCdfShape +0 +468, 473 WebRtcIsac_kQKltCdfShape +0 +474, WebRtcIsac_kQKltCdfShape +0 +480, 474 WebRtcIsac_kQKltCdfShape +0 +486, WebRtcIsac_kQKltCdfShape +0 +495, 475 WebRtcIsac_kQKltCdfShape +0 +505, WebRtcIsac_kQKltCdfShape +0 +516, 476 WebRtcIsac_kQKltCdfShape +0 +528, WebRtcIsac_kQKltCdfShape +0 +543, 477 WebRtcIsac_kQKltCdfShape +0 +564, WebRtcIsac_kQKltCdfShape +0 +583, 478 WebRtcIsac_kQKltCdfShape +0 +608, WebRtcIsac_kQKltCdfShape +0 +635 }; 479 480 481 /* left KLT transforms */ 482 const double WebRtcIsac_kKltT1Gain[4] = { 483 -0.79742827, 0.60341375, 0.60341375, 0.79742827 }; 484 485 const double WebRtcIsac_kKltT1Shape[324] = { 486 0.00159597, 0.00049320, 0.00513821, 0.00021066, 0.01338581, 487 -0.00422367, -0.00272072, 0.00935107, 0.02047622, 0.02691189, 488 0.00478236, 0.03969702, 0.00886698, 0.04877604, -0.10898362, 489 -0.05930891, -0.03415047, 0.98889721, 0.00293558, -0.00035282, 490 0.01156321, -0.00195341, -0.00937631, 0.01052213, -0.02551163, 491 0.01644059, 0.03189927, 0.07754773, -0.08742313, -0.03026338, 492 0.05136248, -0.14395974, 0.17725040, 0.22664856, 0.93380230, 493 0.07076411, 0.00557890, -0.00222834, 0.01377569, 0.01466808, 494 0.02847361, -0.00603178, 0.02382480, -0.01210452, 0.03797267, 495 -0.02371480, 0.11260335, -0.07366682, 0.00453436, -0.04136941, 496 -0.07912843, -0.95031418, 0.25295337, -0.05302216, -0.00617554, 497 -0.00044040, -0.00653778, 0.01097838, 0.01529174, 0.01374431, 498 -0.00748512, -0.00020034, 0.02432713, 0.11101570, -0.08556891, 499 0.09282249, -0.01029446, 0.67556443, -0.67454300, 0.06910063, 500 0.20866865, -0.10318050, 0.00932175, 0.00524058, 0.00803610, 501 -0.00594676, -0.01082578, 0.01069906, 0.00546768, 0.01565291, 502 0.06816200, 0.10201227, 0.16812734, 0.22984074, 0.58213170, 503 -0.54138651, -0.51379962, 0.06847390, -0.01920037, -0.04592324, 504 -0.00467394, 0.00328858, 0.00377424, -0.00987448, 0.08222096, 505 -0.00377301, 0.04551941, -0.02592517, 0.16317082, 0.13077530, 506 0.22702921, -0.31215289, -0.69645962, -0.38047101, -0.39339411, 507 0.11124777, 0.02508035, -0.00708074, 0.00400344, 0.00040331, 508 0.01142402, 0.01725406, 0.01635170, 0.14285366, 0.03949233, 509 -0.05905676, 0.05877154, -0.17497577, -0.32479440, 0.80754464, 510 -0.38085603, -0.17055430, -0.03168622, -0.07531451, 0.02942002, 511 -0.02148095, -0.00754114, -0.00322372, 0.00567812, -0.01701521, 512 -0.12358320, 0.11473564, 0.09070136, 0.06533068, -0.22560802, 513 0.19209022, 0.81605094, 0.36592275, -0.09919829, 0.16667122, 514 0.16300725, 0.04803807, 0.06739263, -0.00156752, -0.01685302, 515 -0.00905240, -0.02297836, -0.00469939, 0.06310613, -0.16391930, 516 0.10919511, 0.12529293, 0.85581322, -0.32145522, 0.24539076, 517 0.07181839, 0.07289591, 0.14066759, 0.10406711, 0.05815518, 518 0.01072680, -0.00759339, 0.00053486, -0.00044865, 0.03407361, 519 0.01645348, 0.08758579, 0.27722240, 0.53665485, -0.74853376, 520 -0.01118192, -0.19805430, 0.06130619, -0.09675299, 0.08978480, 521 0.03405255, -0.00706867, 0.05102045, 0.03250746, 0.01849966, 522 -0.01216314, -0.01184187, -0.01579288, 0.00114807, 0.11376166, 523 0.88342114, -0.36425379, 0.13863190, 0.12524180, -0.13553892, 524 0.04715856, -0.12341103, 0.04531568, 0.01899360, -0.00206897, 525 0.00567768, -0.01444163, 0.00411946, -0.00855896, 0.00381663, 526 -0.01664861, -0.05534280, 0.21328278, 0.20161162, 0.72360394, 527 0.59130708, -0.08043791, 0.08757349, -0.13893918, -0.05147377, 528 0.02680690, -0.01144070, 0.00625162, -0.00634215, -0.01248947, 529 -0.00329455, -0.00609625, -0.00136305, -0.05097048, -0.01029851, 530 0.25065384, -0.16856837, -0.07123372, 0.15992623, -0.39487617, 531 -0.79972301, 0.18118185, -0.04826639, -0.01805578, -0.02927253, 532 -0.16400618, 0.07472763, 0.10376449, 0.01705406, 0.01065801, 533 -0.01500498, 0.02039914, 0.37776349, -0.84484186, 0.10434286, 534 0.15616990, 0.13474456, -0.00906238, -0.25238368, -0.03820885, 535 -0.10650905, -0.03880833, -0.03660028, -0.09640894, 0.00583314, 536 0.01922097, 0.01489911, -0.02431117, -0.09372217, 0.39404721, 537 -0.84786223, -0.31277121, 0.03193850, 0.01974060, 0.01887901, 538 0.00337911, -0.11359599, -0.02792521, -0.03220184, -0.01533311, 539 0.00015962, -0.04225043, -0.00933965, 0.00675311, 0.00206060, 540 0.15926771, 0.40199829, -0.80792558, -0.35591604, -0.17169764, 541 0.02830436, 0.02459982, -0.03438589, 0.00718705, -0.01798329, 542 -0.01594508, -0.00702430, -0.00952419, -0.00962701, -0.01307212, 543 -0.01749740, 0.01299602, 0.00587270, -0.36103108, -0.82039266, 544 -0.43092844, -0.08500097, -0.04361674, -0.00333482, 0.01250434, 545 -0.02538295, -0.00921797, 0.01645071, -0.01400872, 0.00317607, 546 0.00003277, -0.01617646, -0.00616863, -0.00882661, 0.00466157, 547 0.00353237, 0.91803104, -0.39503305, -0.02048964, 0.00060125, 548 0.01980634, 0.00300109, 0.00313880, 0.00657337, 0.00715163, 549 0.00000261, 0.00854276, -0.00154825, -0.00516128, 0.00909527, 550 0.00095609, 0.00701196, -0.00221867, -0.00156741 }; 551 552 /* right KLT transforms */ 553 const double WebRtcIsac_kKltT2Gain[36] = { 554 0.14572837, -0.45446306, 0.61990621, -0.52197033, 0.32145074, 555 -0.11026900, -0.20698282, 0.48962182, -0.27127933, -0.33627476, 556 0.65094037, -0.32715751, 0.40262573, -0.47844405, -0.33876075, 557 0.44130653, 0.37383966, -0.39964662, -0.51730480, 0.06611973, 558 0.49030187, 0.47512886, -0.02141226, -0.51129451, -0.58578569, 559 -0.39132064, -0.13187771, 0.15649421, 0.40735596, 0.54396897, 560 0.40381276, 0.40904942, 0.41179766, 0.41167576, 0.40840251, 561 0.40468132 }; 562 563 const double WebRtcIsac_kKltT2Shape[36] = { 564 0.13427386, -0.35132558, 0.52506528, -0.59419077, 0.45075085, 565 -0.16312057, 0.29857439, -0.58660147, 0.34265431, 0.20879510, 566 -0.56063262, 0.30238345, 0.43308283, -0.41186999, -0.35288681, 567 0.42768996, 0.36094634, -0.45284910, -0.47116680, 0.02893449, 568 0.54326135, 0.45249040, -0.06264420, -0.52283830, 0.57137758, 569 0.44298139, 0.12617554, -0.20819946, -0.42324603, -0.48876443, 570 0.39597050, 0.40713935, 0.41389880, 0.41512486, 0.41130400, 571 0.40575001 }; 572 573 /* means of log gains and LAR coefficients*/ 574 const double WebRtcIsac_kLpcMeansGain[12] = { 575 -6.86881911, -5.35075273, -6.86792680, -5.36200897, -6.86401538, 576 -5.36921533, -6.86802969, -5.36893966, -6.86538097, -5.36315063, 577 -6.85535304, -5.35155315 }; 578 579 const double WebRtcIsac_kLpcMeansShape[108] = { 580 -0.91232981, 0.26258634, -0.33716701, 0.08477430, -0.03378426, 581 0.14423909, 0.07036185, 0.06155019, 0.01490385, 0.04138740, 582 0.01427317, 0.01288970, 0.83872106, 0.25750199, 0.07988929, 583 -0.01957923, 0.00831390, 0.01770300, -0.90957164, 0.25732216, 584 -0.33385344, 0.08735740, -0.03715332, 0.14584917, 0.06998990, 585 0.06131968, 0.01504379, 0.04067339, 0.01428039, 0.01406460, 586 0.83846243, 0.26169862, 0.08109025, -0.01767055, 0.00970539, 587 0.01954310, -0.90490803, 0.24656405, -0.33578607, 0.08843286, 588 -0.03749139, 0.14443959, 0.07214669, 0.06170993, 0.01449947, 589 0.04134309, 0.01314762, 0.01413471, 0.83895203, 0.26748062, 590 0.08197507, -0.01781298, 0.00885967, 0.01922394, -0.90922472, 591 0.24495889, -0.33921540, 0.08877169, -0.03581332, 0.14199172, 592 0.07444032, 0.06185940, 0.01502054, 0.04185113, 0.01276579, 593 0.01355457, 0.83645358, 0.26631720, 0.08119697, -0.01835449, 594 0.00788512, 0.01846446, -0.90482253, 0.24658310, -0.34019734, 595 0.08281090, -0.03486038, 0.14359248, 0.07401336, 0.06001471, 596 0.01528421, 0.04254560, 0.01321472, 0.01240799, 0.83857127, 597 0.26281654, 0.08174380, -0.02099842, 0.00755176, 0.01699448, 598 -0.90132307, 0.25174308, -0.33838268, 0.07883863, -0.02877906, 599 0.14105407, 0.07220290, 0.06000352, 0.01684879, 0.04226844, 600 0.01331331, 0.01269244, 0.83832138, 0.25467485, 0.08118028, 601 -0.02120528, 0.00747832, 0.01567212 }; 602