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