FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
aactab.c
Go to the documentation of this file.
1 /*
2  * AAC data
3  * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4  * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 /**
24  * @file
25  * AAC data
26  * @author Oded Shimon ( ods15 ods15 dyndns org )
27  * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
28  */
29 
30 #include "libavutil/mem.h"
31 #include "aac.h"
32 #include "aac_tablegen.h"
33 
34 #include <stdint.h>
35 
38 
40  41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
41 };
42 
44  0, 0, 0, 36, 36, 37, 31, 31, 0, 0, 0, 0, 0
45 };
46 
48  12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15
49 };
50 
52  33, 33, 38, 40, 40, 40, 41, 41, 37, 37, 37, 34, 34
53 };
54 
55 const uint32_t ff_aac_scalefactor_code[121] = {
56  0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
57  0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
58  0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
59  0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
60  0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
61  0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
62  0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
63  0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
64  0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
65  0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
66  0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
67  0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
68  0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
69  0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
70  0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
71  0x7fff3,
72 };
73 
75  18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
76  19, 19, 19, 18, 19, 18, 17, 17, 16, 17, 16, 16, 16, 16, 15, 15,
77  14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11, 12, 11, 10, 10,
78  10, 9, 9, 8, 8, 8, 7, 6, 6, 5, 4, 3, 1, 4, 4, 5,
79  6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12,
80  12, 13, 13, 13, 14, 14, 16, 15, 16, 15, 18, 19, 19, 19, 19, 19,
81  19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
82  19, 19, 19, 19, 19, 19, 19, 19, 19,
83 };
84 
85 static const uint16_t codes1[81] = {
86  0x7f8, 0x1f1, 0x7fd, 0x3f5, 0x068, 0x3f0, 0x7f7, 0x1ec,
87  0x7f5, 0x3f1, 0x072, 0x3f4, 0x074, 0x011, 0x076, 0x1eb,
88  0x06c, 0x3f6, 0x7fc, 0x1e1, 0x7f1, 0x1f0, 0x061, 0x1f6,
89  0x7f2, 0x1ea, 0x7fb, 0x1f2, 0x069, 0x1ed, 0x077, 0x017,
90  0x06f, 0x1e6, 0x064, 0x1e5, 0x067, 0x015, 0x062, 0x012,
91  0x000, 0x014, 0x065, 0x016, 0x06d, 0x1e9, 0x063, 0x1e4,
92  0x06b, 0x013, 0x071, 0x1e3, 0x070, 0x1f3, 0x7fe, 0x1e7,
93  0x7f3, 0x1ef, 0x060, 0x1ee, 0x7f0, 0x1e2, 0x7fa, 0x3f3,
94  0x06a, 0x1e8, 0x075, 0x010, 0x073, 0x1f4, 0x06e, 0x3f7,
95  0x7f6, 0x1e0, 0x7f9, 0x3f2, 0x066, 0x1f5, 0x7ff, 0x1f7,
96  0x7f4,
97 };
98 
99 static const uint8_t bits1[81] = {
100  11, 9, 11, 10, 7, 10, 11, 9, 11, 10, 7, 10, 7, 5, 7, 9,
101  7, 10, 11, 9, 11, 9, 7, 9, 11, 9, 11, 9, 7, 9, 7, 5,
102  7, 9, 7, 9, 7, 5, 7, 5, 1, 5, 7, 5, 7, 9, 7, 9,
103  7, 5, 7, 9, 7, 9, 11, 9, 11, 9, 7, 9, 11, 9, 11, 10,
104  7, 9, 7, 5, 7, 9, 7, 10, 11, 9, 11, 10, 7, 9, 11, 9,
105  11,
106 };
107 
108 static const uint16_t codes2[81] = {
109  0x1f3, 0x06f, 0x1fd, 0x0eb, 0x023, 0x0ea, 0x1f7, 0x0e8,
110  0x1fa, 0x0f2, 0x02d, 0x070, 0x020, 0x006, 0x02b, 0x06e,
111  0x028, 0x0e9, 0x1f9, 0x066, 0x0f8, 0x0e7, 0x01b, 0x0f1,
112  0x1f4, 0x06b, 0x1f5, 0x0ec, 0x02a, 0x06c, 0x02c, 0x00a,
113  0x027, 0x067, 0x01a, 0x0f5, 0x024, 0x008, 0x01f, 0x009,
114  0x000, 0x007, 0x01d, 0x00b, 0x030, 0x0ef, 0x01c, 0x064,
115  0x01e, 0x00c, 0x029, 0x0f3, 0x02f, 0x0f0, 0x1fc, 0x071,
116  0x1f2, 0x0f4, 0x021, 0x0e6, 0x0f7, 0x068, 0x1f8, 0x0ee,
117  0x022, 0x065, 0x031, 0x002, 0x026, 0x0ed, 0x025, 0x06a,
118  0x1fb, 0x072, 0x1fe, 0x069, 0x02e, 0x0f6, 0x1ff, 0x06d,
119  0x1f6,
120 };
121 
122 static const uint8_t bits2[81] = {
123  9, 7, 9, 8, 6, 8, 9, 8, 9, 8, 6, 7, 6, 5, 6, 7,
124  6, 8, 9, 7, 8, 8, 6, 8, 9, 7, 9, 8, 6, 7, 6, 5,
125  6, 7, 6, 8, 6, 5, 6, 5, 3, 5, 6, 5, 6, 8, 6, 7,
126  6, 5, 6, 8, 6, 8, 9, 7, 9, 8, 6, 8, 8, 7, 9, 8,
127  6, 7, 6, 4, 6, 8, 6, 7, 9, 7, 9, 7, 6, 8, 9, 7,
128  9,
129 };
130 
131 static const uint16_t codes3[81] = {
132  0x0000, 0x0009, 0x00ef, 0x000b, 0x0019, 0x00f0, 0x01eb, 0x01e6,
133  0x03f2, 0x000a, 0x0035, 0x01ef, 0x0034, 0x0037, 0x01e9, 0x01ed,
134  0x01e7, 0x03f3, 0x01ee, 0x03ed, 0x1ffa, 0x01ec, 0x01f2, 0x07f9,
135  0x07f8, 0x03f8, 0x0ff8, 0x0008, 0x0038, 0x03f6, 0x0036, 0x0075,
136  0x03f1, 0x03eb, 0x03ec, 0x0ff4, 0x0018, 0x0076, 0x07f4, 0x0039,
137  0x0074, 0x03ef, 0x01f3, 0x01f4, 0x07f6, 0x01e8, 0x03ea, 0x1ffc,
138  0x00f2, 0x01f1, 0x0ffb, 0x03f5, 0x07f3, 0x0ffc, 0x00ee, 0x03f7,
139  0x7ffe, 0x01f0, 0x07f5, 0x7ffd, 0x1ffb, 0x3ffa, 0xffff, 0x00f1,
140  0x03f0, 0x3ffc, 0x01ea, 0x03ee, 0x3ffb, 0x0ff6, 0x0ffa, 0x7ffc,
141  0x07f2, 0x0ff5, 0xfffe, 0x03f4, 0x07f7, 0x7ffb, 0x0ff7, 0x0ff9,
142  0x7ffa,
143 };
144 
145 static const uint8_t bits3[81] = {
146  1, 4, 8, 4, 5, 8, 9, 9, 10, 4, 6, 9, 6, 6, 9, 9,
147  9, 10, 9, 10, 13, 9, 9, 11, 11, 10, 12, 4, 6, 10, 6, 7,
148  10, 10, 10, 12, 5, 7, 11, 6, 7, 10, 9, 9, 11, 9, 10, 13,
149  8, 9, 12, 10, 11, 12, 8, 10, 15, 9, 11, 15, 13, 14, 16, 8,
150  10, 14, 9, 10, 14, 12, 12, 15, 11, 12, 16, 10, 11, 15, 12, 12,
151  15,
152 };
153 
154 static const uint16_t codes4[81] = {
155  0x007, 0x016, 0x0f6, 0x018, 0x008, 0x0ef, 0x1ef, 0x0f3,
156  0x7f8, 0x019, 0x017, 0x0ed, 0x015, 0x001, 0x0e2, 0x0f0,
157  0x070, 0x3f0, 0x1ee, 0x0f1, 0x7fa, 0x0ee, 0x0e4, 0x3f2,
158  0x7f6, 0x3ef, 0x7fd, 0x005, 0x014, 0x0f2, 0x009, 0x004,
159  0x0e5, 0x0f4, 0x0e8, 0x3f4, 0x006, 0x002, 0x0e7, 0x003,
160  0x000, 0x06b, 0x0e3, 0x069, 0x1f3, 0x0eb, 0x0e6, 0x3f6,
161  0x06e, 0x06a, 0x1f4, 0x3ec, 0x1f0, 0x3f9, 0x0f5, 0x0ec,
162  0x7fb, 0x0ea, 0x06f, 0x3f7, 0x7f9, 0x3f3, 0xfff, 0x0e9,
163  0x06d, 0x3f8, 0x06c, 0x068, 0x1f5, 0x3ee, 0x1f2, 0x7f4,
164  0x7f7, 0x3f1, 0xffe, 0x3ed, 0x1f1, 0x7f5, 0x7fe, 0x3f5,
165  0x7fc,
166 };
167 
168 static const uint8_t bits4[81] = {
169  4, 5, 8, 5, 4, 8, 9, 8, 11, 5, 5, 8, 5, 4, 8, 8,
170  7, 10, 9, 8, 11, 8, 8, 10, 11, 10, 11, 4, 5, 8, 4, 4,
171  8, 8, 8, 10, 4, 4, 8, 4, 4, 7, 8, 7, 9, 8, 8, 10,
172  7, 7, 9, 10, 9, 10, 8, 8, 11, 8, 7, 10, 11, 10, 12, 8,
173  7, 10, 7, 7, 9, 10, 9, 11, 11, 10, 12, 10, 9, 11, 11, 10,
174  11,
175 };
176 
177 static const uint16_t codes5[81] = {
178  0x1fff, 0x0ff7, 0x07f4, 0x07e8, 0x03f1, 0x07ee, 0x07f9, 0x0ff8,
179  0x1ffd, 0x0ffd, 0x07f1, 0x03e8, 0x01e8, 0x00f0, 0x01ec, 0x03ee,
180  0x07f2, 0x0ffa, 0x0ff4, 0x03ef, 0x01f2, 0x00e8, 0x0070, 0x00ec,
181  0x01f0, 0x03ea, 0x07f3, 0x07eb, 0x01eb, 0x00ea, 0x001a, 0x0008,
182  0x0019, 0x00ee, 0x01ef, 0x07ed, 0x03f0, 0x00f2, 0x0073, 0x000b,
183  0x0000, 0x000a, 0x0071, 0x00f3, 0x07e9, 0x07ef, 0x01ee, 0x00ef,
184  0x0018, 0x0009, 0x001b, 0x00eb, 0x01e9, 0x07ec, 0x07f6, 0x03eb,
185  0x01f3, 0x00ed, 0x0072, 0x00e9, 0x01f1, 0x03ed, 0x07f7, 0x0ff6,
186  0x07f0, 0x03e9, 0x01ed, 0x00f1, 0x01ea, 0x03ec, 0x07f8, 0x0ff9,
187  0x1ffc, 0x0ffc, 0x0ff5, 0x07ea, 0x03f3, 0x03f2, 0x07f5, 0x0ffb,
188  0x1ffe,
189 };
190 
191 static const uint8_t bits5[81] = {
192  13, 12, 11, 11, 10, 11, 11, 12, 13, 12, 11, 10, 9, 8, 9, 10,
193  11, 12, 12, 10, 9, 8, 7, 8, 9, 10, 11, 11, 9, 8, 5, 4,
194  5, 8, 9, 11, 10, 8, 7, 4, 1, 4, 7, 8, 11, 11, 9, 8,
195  5, 4, 5, 8, 9, 11, 11, 10, 9, 8, 7, 8, 9, 10, 11, 12,
196  11, 10, 9, 8, 9, 10, 11, 12, 13, 12, 12, 11, 10, 10, 11, 12,
197  13,
198 };
199 
200 static const uint16_t codes6[81] = {
201  0x7fe, 0x3fd, 0x1f1, 0x1eb, 0x1f4, 0x1ea, 0x1f0, 0x3fc,
202  0x7fd, 0x3f6, 0x1e5, 0x0ea, 0x06c, 0x071, 0x068, 0x0f0,
203  0x1e6, 0x3f7, 0x1f3, 0x0ef, 0x032, 0x027, 0x028, 0x026,
204  0x031, 0x0eb, 0x1f7, 0x1e8, 0x06f, 0x02e, 0x008, 0x004,
205  0x006, 0x029, 0x06b, 0x1ee, 0x1ef, 0x072, 0x02d, 0x002,
206  0x000, 0x003, 0x02f, 0x073, 0x1fa, 0x1e7, 0x06e, 0x02b,
207  0x007, 0x001, 0x005, 0x02c, 0x06d, 0x1ec, 0x1f9, 0x0ee,
208  0x030, 0x024, 0x02a, 0x025, 0x033, 0x0ec, 0x1f2, 0x3f8,
209  0x1e4, 0x0ed, 0x06a, 0x070, 0x069, 0x074, 0x0f1, 0x3fa,
210  0x7ff, 0x3f9, 0x1f6, 0x1ed, 0x1f8, 0x1e9, 0x1f5, 0x3fb,
211  0x7fc,
212 };
213 
214 static const uint8_t bits6[81] = {
215  11, 10, 9, 9, 9, 9, 9, 10, 11, 10, 9, 8, 7, 7, 7, 8,
216  9, 10, 9, 8, 6, 6, 6, 6, 6, 8, 9, 9, 7, 6, 4, 4,
217  4, 6, 7, 9, 9, 7, 6, 4, 4, 4, 6, 7, 9, 9, 7, 6,
218  4, 4, 4, 6, 7, 9, 9, 8, 6, 6, 6, 6, 6, 8, 9, 10,
219  9, 8, 7, 7, 7, 7, 8, 10, 11, 10, 9, 9, 9, 9, 9, 10,
220  11,
221 };
222 
223 static const uint16_t codes7[64] = {
224  0x000, 0x005, 0x037, 0x074, 0x0f2, 0x1eb, 0x3ed, 0x7f7,
225  0x004, 0x00c, 0x035, 0x071, 0x0ec, 0x0ee, 0x1ee, 0x1f5,
226  0x036, 0x034, 0x072, 0x0ea, 0x0f1, 0x1e9, 0x1f3, 0x3f5,
227  0x073, 0x070, 0x0eb, 0x0f0, 0x1f1, 0x1f0, 0x3ec, 0x3fa,
228  0x0f3, 0x0ed, 0x1e8, 0x1ef, 0x3ef, 0x3f1, 0x3f9, 0x7fb,
229  0x1ed, 0x0ef, 0x1ea, 0x1f2, 0x3f3, 0x3f8, 0x7f9, 0x7fc,
230  0x3ee, 0x1ec, 0x1f4, 0x3f4, 0x3f7, 0x7f8, 0xffd, 0xffe,
231  0x7f6, 0x3f0, 0x3f2, 0x3f6, 0x7fa, 0x7fd, 0xffc, 0xfff,
232 };
233 
234 static const uint8_t bits7[64] = {
235  1, 3, 6, 7, 8, 9, 10, 11, 3, 4, 6, 7, 8, 8, 9, 9,
236  6, 6, 7, 8, 8, 9, 9, 10, 7, 7, 8, 8, 9, 9, 10, 10,
237  8, 8, 9, 9, 10, 10, 10, 11, 9, 8, 9, 9, 10, 10, 11, 11,
238  10, 9, 9, 10, 10, 11, 12, 12, 11, 10, 10, 10, 11, 11, 12, 12,
239 };
240 
241 static const uint16_t codes8[64] = {
242  0x00e, 0x005, 0x010, 0x030, 0x06f, 0x0f1, 0x1fa, 0x3fe,
243  0x003, 0x000, 0x004, 0x012, 0x02c, 0x06a, 0x075, 0x0f8,
244  0x00f, 0x002, 0x006, 0x014, 0x02e, 0x069, 0x072, 0x0f5,
245  0x02f, 0x011, 0x013, 0x02a, 0x032, 0x06c, 0x0ec, 0x0fa,
246  0x071, 0x02b, 0x02d, 0x031, 0x06d, 0x070, 0x0f2, 0x1f9,
247  0x0ef, 0x068, 0x033, 0x06b, 0x06e, 0x0ee, 0x0f9, 0x3fc,
248  0x1f8, 0x074, 0x073, 0x0ed, 0x0f0, 0x0f6, 0x1f6, 0x1fd,
249  0x3fd, 0x0f3, 0x0f4, 0x0f7, 0x1f7, 0x1fb, 0x1fc, 0x3ff,
250 };
251 
252 static const uint8_t bits8[64] = {
253  5, 4, 5, 6, 7, 8, 9, 10, 4, 3, 4, 5, 6, 7, 7, 8,
254  5, 4, 4, 5, 6, 7, 7, 8, 6, 5, 5, 6, 6, 7, 8, 8,
255  7, 6, 6, 6, 7, 7, 8, 9, 8, 7, 6, 7, 7, 8, 8, 10,
256  9, 7, 7, 8, 8, 8, 9, 9, 10, 8, 8, 8, 9, 9, 9, 10,
257 };
258 
259 static const uint16_t codes9[169] = {
260  0x0000, 0x0005, 0x0037, 0x00e7, 0x01de, 0x03ce, 0x03d9, 0x07c8,
261  0x07cd, 0x0fc8, 0x0fdd, 0x1fe4, 0x1fec, 0x0004, 0x000c, 0x0035,
262  0x0072, 0x00ea, 0x00ed, 0x01e2, 0x03d1, 0x03d3, 0x03e0, 0x07d8,
263  0x0fcf, 0x0fd5, 0x0036, 0x0034, 0x0071, 0x00e8, 0x00ec, 0x01e1,
264  0x03cf, 0x03dd, 0x03db, 0x07d0, 0x0fc7, 0x0fd4, 0x0fe4, 0x00e6,
265  0x0070, 0x00e9, 0x01dd, 0x01e3, 0x03d2, 0x03dc, 0x07cc, 0x07ca,
266  0x07de, 0x0fd8, 0x0fea, 0x1fdb, 0x01df, 0x00eb, 0x01dc, 0x01e6,
267  0x03d5, 0x03de, 0x07cb, 0x07dd, 0x07dc, 0x0fcd, 0x0fe2, 0x0fe7,
268  0x1fe1, 0x03d0, 0x01e0, 0x01e4, 0x03d6, 0x07c5, 0x07d1, 0x07db,
269  0x0fd2, 0x07e0, 0x0fd9, 0x0feb, 0x1fe3, 0x1fe9, 0x07c4, 0x01e5,
270  0x03d7, 0x07c6, 0x07cf, 0x07da, 0x0fcb, 0x0fda, 0x0fe3, 0x0fe9,
271  0x1fe6, 0x1ff3, 0x1ff7, 0x07d3, 0x03d8, 0x03e1, 0x07d4, 0x07d9,
272  0x0fd3, 0x0fde, 0x1fdd, 0x1fd9, 0x1fe2, 0x1fea, 0x1ff1, 0x1ff6,
273  0x07d2, 0x03d4, 0x03da, 0x07c7, 0x07d7, 0x07e2, 0x0fce, 0x0fdb,
274  0x1fd8, 0x1fee, 0x3ff0, 0x1ff4, 0x3ff2, 0x07e1, 0x03df, 0x07c9,
275  0x07d6, 0x0fca, 0x0fd0, 0x0fe5, 0x0fe6, 0x1feb, 0x1fef, 0x3ff3,
276  0x3ff4, 0x3ff5, 0x0fe0, 0x07ce, 0x07d5, 0x0fc6, 0x0fd1, 0x0fe1,
277  0x1fe0, 0x1fe8, 0x1ff0, 0x3ff1, 0x3ff8, 0x3ff6, 0x7ffc, 0x0fe8,
278  0x07df, 0x0fc9, 0x0fd7, 0x0fdc, 0x1fdc, 0x1fdf, 0x1fed, 0x1ff5,
279  0x3ff9, 0x3ffb, 0x7ffd, 0x7ffe, 0x1fe7, 0x0fcc, 0x0fd6, 0x0fdf,
280  0x1fde, 0x1fda, 0x1fe5, 0x1ff2, 0x3ffa, 0x3ff7, 0x3ffc, 0x3ffd,
281  0x7fff,
282 };
283 
284 static const uint8_t bits9[169] = {
285  1, 3, 6, 8, 9, 10, 10, 11, 11, 12, 12, 13, 13, 3, 4, 6,
286  7, 8, 8, 9, 10, 10, 10, 11, 12, 12, 6, 6, 7, 8, 8, 9,
287  10, 10, 10, 11, 12, 12, 12, 8, 7, 8, 9, 9, 10, 10, 11, 11,
288  11, 12, 12, 13, 9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12,
289  13, 10, 9, 9, 10, 11, 11, 11, 12, 11, 12, 12, 13, 13, 11, 9,
290  10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 11, 10, 10, 11, 11,
291  12, 12, 13, 13, 13, 13, 13, 13, 11, 10, 10, 11, 11, 11, 12, 12,
292  13, 13, 14, 13, 14, 11, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14,
293  14, 14, 12, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 12,
294  11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 13, 12, 12, 12,
295  13, 13, 13, 13, 14, 14, 14, 14, 15,
296 };
297 
298 static const uint16_t codes10[169] = {
299  0x022, 0x008, 0x01d, 0x026, 0x05f, 0x0d3, 0x1cf, 0x3d0,
300  0x3d7, 0x3ed, 0x7f0, 0x7f6, 0xffd, 0x007, 0x000, 0x001,
301  0x009, 0x020, 0x054, 0x060, 0x0d5, 0x0dc, 0x1d4, 0x3cd,
302  0x3de, 0x7e7, 0x01c, 0x002, 0x006, 0x00c, 0x01e, 0x028,
303  0x05b, 0x0cd, 0x0d9, 0x1ce, 0x1dc, 0x3d9, 0x3f1, 0x025,
304  0x00b, 0x00a, 0x00d, 0x024, 0x057, 0x061, 0x0cc, 0x0dd,
305  0x1cc, 0x1de, 0x3d3, 0x3e7, 0x05d, 0x021, 0x01f, 0x023,
306  0x027, 0x059, 0x064, 0x0d8, 0x0df, 0x1d2, 0x1e2, 0x3dd,
307  0x3ee, 0x0d1, 0x055, 0x029, 0x056, 0x058, 0x062, 0x0ce,
308  0x0e0, 0x0e2, 0x1da, 0x3d4, 0x3e3, 0x7eb, 0x1c9, 0x05e,
309  0x05a, 0x05c, 0x063, 0x0ca, 0x0da, 0x1c7, 0x1ca, 0x1e0,
310  0x3db, 0x3e8, 0x7ec, 0x1e3, 0x0d2, 0x0cb, 0x0d0, 0x0d7,
311  0x0db, 0x1c6, 0x1d5, 0x1d8, 0x3ca, 0x3da, 0x7ea, 0x7f1,
312  0x1e1, 0x0d4, 0x0cf, 0x0d6, 0x0de, 0x0e1, 0x1d0, 0x1d6,
313  0x3d1, 0x3d5, 0x3f2, 0x7ee, 0x7fb, 0x3e9, 0x1cd, 0x1c8,
314  0x1cb, 0x1d1, 0x1d7, 0x1df, 0x3cf, 0x3e0, 0x3ef, 0x7e6,
315  0x7f8, 0xffa, 0x3eb, 0x1dd, 0x1d3, 0x1d9, 0x1db, 0x3d2,
316  0x3cc, 0x3dc, 0x3ea, 0x7ed, 0x7f3, 0x7f9, 0xff9, 0x7f2,
317  0x3ce, 0x1e4, 0x3cb, 0x3d8, 0x3d6, 0x3e2, 0x3e5, 0x7e8,
318  0x7f4, 0x7f5, 0x7f7, 0xffb, 0x7fa, 0x3ec, 0x3df, 0x3e1,
319  0x3e4, 0x3e6, 0x3f0, 0x7e9, 0x7ef, 0xff8, 0xffe, 0xffc,
320  0xfff,
321 };
322 
323 static const uint8_t bits10[169] = {
324  6, 5, 6, 6, 7, 8, 9, 10, 10, 10, 11, 11, 12, 5, 4, 4,
325  5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 6, 4, 5, 5, 6, 6,
326  7, 8, 8, 9, 9, 10, 10, 6, 5, 5, 5, 6, 7, 7, 8, 8,
327  9, 9, 10, 10, 7, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10,
328  10, 8, 7, 6, 7, 7, 7, 8, 8, 8, 9, 10, 10, 11, 9, 7,
329  7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 9, 8, 8, 8, 8,
330  8, 9, 9, 9, 10, 10, 11, 11, 9, 8, 8, 8, 8, 8, 9, 9,
331  10, 10, 10, 11, 11, 10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 11,
332  11, 12, 10, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 11,
333  10, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 11, 10, 10, 10,
334  10, 10, 10, 11, 11, 12, 12, 12, 12,
335 };
336 
337 static const uint16_t codes11[289] = {
338  0x000, 0x006, 0x019, 0x03d, 0x09c, 0x0c6, 0x1a7, 0x390,
339  0x3c2, 0x3df, 0x7e6, 0x7f3, 0xffb, 0x7ec, 0xffa, 0xffe,
340  0x38e, 0x005, 0x001, 0x008, 0x014, 0x037, 0x042, 0x092,
341  0x0af, 0x191, 0x1a5, 0x1b5, 0x39e, 0x3c0, 0x3a2, 0x3cd,
342  0x7d6, 0x0ae, 0x017, 0x007, 0x009, 0x018, 0x039, 0x040,
343  0x08e, 0x0a3, 0x0b8, 0x199, 0x1ac, 0x1c1, 0x3b1, 0x396,
344  0x3be, 0x3ca, 0x09d, 0x03c, 0x015, 0x016, 0x01a, 0x03b,
345  0x044, 0x091, 0x0a5, 0x0be, 0x196, 0x1ae, 0x1b9, 0x3a1,
346  0x391, 0x3a5, 0x3d5, 0x094, 0x09a, 0x036, 0x038, 0x03a,
347  0x041, 0x08c, 0x09b, 0x0b0, 0x0c3, 0x19e, 0x1ab, 0x1bc,
348  0x39f, 0x38f, 0x3a9, 0x3cf, 0x093, 0x0bf, 0x03e, 0x03f,
349  0x043, 0x045, 0x09e, 0x0a7, 0x0b9, 0x194, 0x1a2, 0x1ba,
350  0x1c3, 0x3a6, 0x3a7, 0x3bb, 0x3d4, 0x09f, 0x1a0, 0x08f,
351  0x08d, 0x090, 0x098, 0x0a6, 0x0b6, 0x0c4, 0x19f, 0x1af,
352  0x1bf, 0x399, 0x3bf, 0x3b4, 0x3c9, 0x3e7, 0x0a8, 0x1b6,
353  0x0ab, 0x0a4, 0x0aa, 0x0b2, 0x0c2, 0x0c5, 0x198, 0x1a4,
354  0x1b8, 0x38c, 0x3a4, 0x3c4, 0x3c6, 0x3dd, 0x3e8, 0x0ad,
355  0x3af, 0x192, 0x0bd, 0x0bc, 0x18e, 0x197, 0x19a, 0x1a3,
356  0x1b1, 0x38d, 0x398, 0x3b7, 0x3d3, 0x3d1, 0x3db, 0x7dd,
357  0x0b4, 0x3de, 0x1a9, 0x19b, 0x19c, 0x1a1, 0x1aa, 0x1ad,
358  0x1b3, 0x38b, 0x3b2, 0x3b8, 0x3ce, 0x3e1, 0x3e0, 0x7d2,
359  0x7e5, 0x0b7, 0x7e3, 0x1bb, 0x1a8, 0x1a6, 0x1b0, 0x1b2,
360  0x1b7, 0x39b, 0x39a, 0x3ba, 0x3b5, 0x3d6, 0x7d7, 0x3e4,
361  0x7d8, 0x7ea, 0x0ba, 0x7e8, 0x3a0, 0x1bd, 0x1b4, 0x38a,
362  0x1c4, 0x392, 0x3aa, 0x3b0, 0x3bc, 0x3d7, 0x7d4, 0x7dc,
363  0x7db, 0x7d5, 0x7f0, 0x0c1, 0x7fb, 0x3c8, 0x3a3, 0x395,
364  0x39d, 0x3ac, 0x3ae, 0x3c5, 0x3d8, 0x3e2, 0x3e6, 0x7e4,
365  0x7e7, 0x7e0, 0x7e9, 0x7f7, 0x190, 0x7f2, 0x393, 0x1be,
366  0x1c0, 0x394, 0x397, 0x3ad, 0x3c3, 0x3c1, 0x3d2, 0x7da,
367  0x7d9, 0x7df, 0x7eb, 0x7f4, 0x7fa, 0x195, 0x7f8, 0x3bd,
368  0x39c, 0x3ab, 0x3a8, 0x3b3, 0x3b9, 0x3d0, 0x3e3, 0x3e5,
369  0x7e2, 0x7de, 0x7ed, 0x7f1, 0x7f9, 0x7fc, 0x193, 0xffd,
370  0x3dc, 0x3b6, 0x3c7, 0x3cc, 0x3cb, 0x3d9, 0x3da, 0x7d3,
371  0x7e1, 0x7ee, 0x7ef, 0x7f5, 0x7f6, 0xffc, 0xfff, 0x19d,
372  0x1c2, 0x0b5, 0x0a1, 0x096, 0x097, 0x095, 0x099, 0x0a0,
373  0x0a2, 0x0ac, 0x0a9, 0x0b1, 0x0b3, 0x0bb, 0x0c0, 0x18f,
374  0x004,
375 };
376 
377 static const uint8_t bits11[289] = {
378  4, 5, 6, 7, 8, 8, 9, 10, 10, 10, 11, 11, 12, 11, 12, 12,
379  10, 5, 4, 5, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10,
380  11, 8, 6, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10,
381  10, 10, 8, 7, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 10,
382  10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
383  10, 10, 10, 10, 8, 8, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9,
384  9, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9,
385  9, 10, 10, 10, 10, 10, 8, 9, 8, 8, 8, 8, 8, 8, 9, 9,
386  9, 10, 10, 10, 10, 10, 10, 8, 10, 9, 8, 8, 9, 9, 9, 9,
387  9, 10, 10, 10, 10, 10, 10, 11, 8, 10, 9, 9, 9, 9, 9, 9,
388  9, 10, 10, 10, 10, 10, 10, 11, 11, 8, 11, 9, 9, 9, 9, 9,
389  9, 10, 10, 10, 10, 10, 11, 10, 11, 11, 8, 11, 10, 9, 9, 10,
390  9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8, 11, 10, 10, 10,
391  10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 9, 11, 10, 9,
392  9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 11, 10,
393  10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 9, 12,
394  10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 9,
395  9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9,
396  5,
397 };
398 
399 const uint16_t * const ff_aac_spectral_codes[11] = {
402 };
403 
404 const uint8_t * const ff_aac_spectral_bits[11] = {
406  bits9, bits10, bits11,
407 };
408 
409 const uint16_t ff_aac_spectral_sizes[11] = {
410  81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
411 };
412 
413 /* NOTE:
414  * 64.0f is a special value indicating the existence of an escape code in the
415  * bitstream.
416  */
417 static const DECLARE_ALIGNED(16, float, codebook_vector0)[324] = {
418  -1.0000000, -1.0000000, -1.0000000, -1.0000000,
419  -1.0000000, -1.0000000, -1.0000000, 0.0000000,
420  -1.0000000, -1.0000000, -1.0000000, 1.0000000,
421  -1.0000000, -1.0000000, 0.0000000, -1.0000000,
422  -1.0000000, -1.0000000, 0.0000000, 0.0000000,
423  -1.0000000, -1.0000000, 0.0000000, 1.0000000,
424  -1.0000000, -1.0000000, 1.0000000, -1.0000000,
425  -1.0000000, -1.0000000, 1.0000000, 0.0000000,
426  -1.0000000, -1.0000000, 1.0000000, 1.0000000,
427  -1.0000000, 0.0000000, -1.0000000, -1.0000000,
428  -1.0000000, 0.0000000, -1.0000000, 0.0000000,
429  -1.0000000, 0.0000000, -1.0000000, 1.0000000,
430  -1.0000000, 0.0000000, 0.0000000, -1.0000000,
431  -1.0000000, 0.0000000, 0.0000000, 0.0000000,
432  -1.0000000, 0.0000000, 0.0000000, 1.0000000,
433  -1.0000000, 0.0000000, 1.0000000, -1.0000000,
434  -1.0000000, 0.0000000, 1.0000000, 0.0000000,
435  -1.0000000, 0.0000000, 1.0000000, 1.0000000,
436  -1.0000000, 1.0000000, -1.0000000, -1.0000000,
437  -1.0000000, 1.0000000, -1.0000000, 0.0000000,
438  -1.0000000, 1.0000000, -1.0000000, 1.0000000,
439  -1.0000000, 1.0000000, 0.0000000, -1.0000000,
440  -1.0000000, 1.0000000, 0.0000000, 0.0000000,
441  -1.0000000, 1.0000000, 0.0000000, 1.0000000,
442  -1.0000000, 1.0000000, 1.0000000, -1.0000000,
443  -1.0000000, 1.0000000, 1.0000000, 0.0000000,
444  -1.0000000, 1.0000000, 1.0000000, 1.0000000,
445  0.0000000, -1.0000000, -1.0000000, -1.0000000,
446  0.0000000, -1.0000000, -1.0000000, 0.0000000,
447  0.0000000, -1.0000000, -1.0000000, 1.0000000,
448  0.0000000, -1.0000000, 0.0000000, -1.0000000,
449  0.0000000, -1.0000000, 0.0000000, 0.0000000,
450  0.0000000, -1.0000000, 0.0000000, 1.0000000,
451  0.0000000, -1.0000000, 1.0000000, -1.0000000,
452  0.0000000, -1.0000000, 1.0000000, 0.0000000,
453  0.0000000, -1.0000000, 1.0000000, 1.0000000,
454  0.0000000, 0.0000000, -1.0000000, -1.0000000,
455  0.0000000, 0.0000000, -1.0000000, 0.0000000,
456  0.0000000, 0.0000000, -1.0000000, 1.0000000,
457  0.0000000, 0.0000000, 0.0000000, -1.0000000,
458  0.0000000, 0.0000000, 0.0000000, 0.0000000,
459  0.0000000, 0.0000000, 0.0000000, 1.0000000,
460  0.0000000, 0.0000000, 1.0000000, -1.0000000,
461  0.0000000, 0.0000000, 1.0000000, 0.0000000,
462  0.0000000, 0.0000000, 1.0000000, 1.0000000,
463  0.0000000, 1.0000000, -1.0000000, -1.0000000,
464  0.0000000, 1.0000000, -1.0000000, 0.0000000,
465  0.0000000, 1.0000000, -1.0000000, 1.0000000,
466  0.0000000, 1.0000000, 0.0000000, -1.0000000,
467  0.0000000, 1.0000000, 0.0000000, 0.0000000,
468  0.0000000, 1.0000000, 0.0000000, 1.0000000,
469  0.0000000, 1.0000000, 1.0000000, -1.0000000,
470  0.0000000, 1.0000000, 1.0000000, 0.0000000,
471  0.0000000, 1.0000000, 1.0000000, 1.0000000,
472  1.0000000, -1.0000000, -1.0000000, -1.0000000,
473  1.0000000, -1.0000000, -1.0000000, 0.0000000,
474  1.0000000, -1.0000000, -1.0000000, 1.0000000,
475  1.0000000, -1.0000000, 0.0000000, -1.0000000,
476  1.0000000, -1.0000000, 0.0000000, 0.0000000,
477  1.0000000, -1.0000000, 0.0000000, 1.0000000,
478  1.0000000, -1.0000000, 1.0000000, -1.0000000,
479  1.0000000, -1.0000000, 1.0000000, 0.0000000,
480  1.0000000, -1.0000000, 1.0000000, 1.0000000,
481  1.0000000, 0.0000000, -1.0000000, -1.0000000,
482  1.0000000, 0.0000000, -1.0000000, 0.0000000,
483  1.0000000, 0.0000000, -1.0000000, 1.0000000,
484  1.0000000, 0.0000000, 0.0000000, -1.0000000,
485  1.0000000, 0.0000000, 0.0000000, 0.0000000,
486  1.0000000, 0.0000000, 0.0000000, 1.0000000,
487  1.0000000, 0.0000000, 1.0000000, -1.0000000,
488  1.0000000, 0.0000000, 1.0000000, 0.0000000,
489  1.0000000, 0.0000000, 1.0000000, 1.0000000,
490  1.0000000, 1.0000000, -1.0000000, -1.0000000,
491  1.0000000, 1.0000000, -1.0000000, 0.0000000,
492  1.0000000, 1.0000000, -1.0000000, 1.0000000,
493  1.0000000, 1.0000000, 0.0000000, -1.0000000,
494  1.0000000, 1.0000000, 0.0000000, 0.0000000,
495  1.0000000, 1.0000000, 0.0000000, 1.0000000,
496  1.0000000, 1.0000000, 1.0000000, -1.0000000,
497  1.0000000, 1.0000000, 1.0000000, 0.0000000,
498  1.0000000, 1.0000000, 1.0000000, 1.0000000,
499 };
500 
501 static const DECLARE_ALIGNED(16, float, codebook_vector2)[324] = {
502  0.0000000, 0.0000000, 0.0000000, 0.0000000,
503  0.0000000, 0.0000000, 0.0000000, 1.0000000,
504  0.0000000, 0.0000000, 0.0000000, 2.5198421,
505  0.0000000, 0.0000000, 1.0000000, 0.0000000,
506  0.0000000, 0.0000000, 1.0000000, 1.0000000,
507  0.0000000, 0.0000000, 1.0000000, 2.5198421,
508  0.0000000, 0.0000000, 2.5198421, 0.0000000,
509  0.0000000, 0.0000000, 2.5198421, 1.0000000,
510  0.0000000, 0.0000000, 2.5198421, 2.5198421,
511  0.0000000, 1.0000000, 0.0000000, 0.0000000,
512  0.0000000, 1.0000000, 0.0000000, 1.0000000,
513  0.0000000, 1.0000000, 0.0000000, 2.5198421,
514  0.0000000, 1.0000000, 1.0000000, 0.0000000,
515  0.0000000, 1.0000000, 1.0000000, 1.0000000,
516  0.0000000, 1.0000000, 1.0000000, 2.5198421,
517  0.0000000, 1.0000000, 2.5198421, 0.0000000,
518  0.0000000, 1.0000000, 2.5198421, 1.0000000,
519  0.0000000, 1.0000000, 2.5198421, 2.5198421,
520  0.0000000, 2.5198421, 0.0000000, 0.0000000,
521  0.0000000, 2.5198421, 0.0000000, 1.0000000,
522  0.0000000, 2.5198421, 0.0000000, 2.5198421,
523  0.0000000, 2.5198421, 1.0000000, 0.0000000,
524  0.0000000, 2.5198421, 1.0000000, 1.0000000,
525  0.0000000, 2.5198421, 1.0000000, 2.5198421,
526  0.0000000, 2.5198421, 2.5198421, 0.0000000,
527  0.0000000, 2.5198421, 2.5198421, 1.0000000,
528  0.0000000, 2.5198421, 2.5198421, 2.5198421,
529  1.0000000, 0.0000000, 0.0000000, 0.0000000,
530  1.0000000, 0.0000000, 0.0000000, 1.0000000,
531  1.0000000, 0.0000000, 0.0000000, 2.5198421,
532  1.0000000, 0.0000000, 1.0000000, 0.0000000,
533  1.0000000, 0.0000000, 1.0000000, 1.0000000,
534  1.0000000, 0.0000000, 1.0000000, 2.5198421,
535  1.0000000, 0.0000000, 2.5198421, 0.0000000,
536  1.0000000, 0.0000000, 2.5198421, 1.0000000,
537  1.0000000, 0.0000000, 2.5198421, 2.5198421,
538  1.0000000, 1.0000000, 0.0000000, 0.0000000,
539  1.0000000, 1.0000000, 0.0000000, 1.0000000,
540  1.0000000, 1.0000000, 0.0000000, 2.5198421,
541  1.0000000, 1.0000000, 1.0000000, 0.0000000,
542  1.0000000, 1.0000000, 1.0000000, 1.0000000,
543  1.0000000, 1.0000000, 1.0000000, 2.5198421,
544  1.0000000, 1.0000000, 2.5198421, 0.0000000,
545  1.0000000, 1.0000000, 2.5198421, 1.0000000,
546  1.0000000, 1.0000000, 2.5198421, 2.5198421,
547  1.0000000, 2.5198421, 0.0000000, 0.0000000,
548  1.0000000, 2.5198421, 0.0000000, 1.0000000,
549  1.0000000, 2.5198421, 0.0000000, 2.5198421,
550  1.0000000, 2.5198421, 1.0000000, 0.0000000,
551  1.0000000, 2.5198421, 1.0000000, 1.0000000,
552  1.0000000, 2.5198421, 1.0000000, 2.5198421,
553  1.0000000, 2.5198421, 2.5198421, 0.0000000,
554  1.0000000, 2.5198421, 2.5198421, 1.0000000,
555  1.0000000, 2.5198421, 2.5198421, 2.5198421,
556  2.5198421, 0.0000000, 0.0000000, 0.0000000,
557  2.5198421, 0.0000000, 0.0000000, 1.0000000,
558  2.5198421, 0.0000000, 0.0000000, 2.5198421,
559  2.5198421, 0.0000000, 1.0000000, 0.0000000,
560  2.5198421, 0.0000000, 1.0000000, 1.0000000,
561  2.5198421, 0.0000000, 1.0000000, 2.5198421,
562  2.5198421, 0.0000000, 2.5198421, 0.0000000,
563  2.5198421, 0.0000000, 2.5198421, 1.0000000,
564  2.5198421, 0.0000000, 2.5198421, 2.5198421,
565  2.5198421, 1.0000000, 0.0000000, 0.0000000,
566  2.5198421, 1.0000000, 0.0000000, 1.0000000,
567  2.5198421, 1.0000000, 0.0000000, 2.5198421,
568  2.5198421, 1.0000000, 1.0000000, 0.0000000,
569  2.5198421, 1.0000000, 1.0000000, 1.0000000,
570  2.5198421, 1.0000000, 1.0000000, 2.5198421,
571  2.5198421, 1.0000000, 2.5198421, 0.0000000,
572  2.5198421, 1.0000000, 2.5198421, 1.0000000,
573  2.5198421, 1.0000000, 2.5198421, 2.5198421,
574  2.5198421, 2.5198421, 0.0000000, 0.0000000,
575  2.5198421, 2.5198421, 0.0000000, 1.0000000,
576  2.5198421, 2.5198421, 0.0000000, 2.5198421,
577  2.5198421, 2.5198421, 1.0000000, 0.0000000,
578  2.5198421, 2.5198421, 1.0000000, 1.0000000,
579  2.5198421, 2.5198421, 1.0000000, 2.5198421,
580  2.5198421, 2.5198421, 2.5198421, 0.0000000,
581  2.5198421, 2.5198421, 2.5198421, 1.0000000,
582  2.5198421, 2.5198421, 2.5198421, 2.5198421,
583 };
584 
585 static const DECLARE_ALIGNED(16, float, codebook_vector4)[162] = {
586  -6.3496042, -6.3496042, -6.3496042, -4.3267487,
587  -6.3496042, -2.5198421, -6.3496042, -1.0000000,
588  -6.3496042, 0.0000000, -6.3496042, 1.0000000,
589  -6.3496042, 2.5198421, -6.3496042, 4.3267487,
590  -6.3496042, 6.3496042, -4.3267487, -6.3496042,
591  -4.3267487, -4.3267487, -4.3267487, -2.5198421,
592  -4.3267487, -1.0000000, -4.3267487, 0.0000000,
593  -4.3267487, 1.0000000, -4.3267487, 2.5198421,
594  -4.3267487, 4.3267487, -4.3267487, 6.3496042,
595  -2.5198421, -6.3496042, -2.5198421, -4.3267487,
596  -2.5198421, -2.5198421, -2.5198421, -1.0000000,
597  -2.5198421, 0.0000000, -2.5198421, 1.0000000,
598  -2.5198421, 2.5198421, -2.5198421, 4.3267487,
599  -2.5198421, 6.3496042, -1.0000000, -6.3496042,
600  -1.0000000, -4.3267487, -1.0000000, -2.5198421,
601  -1.0000000, -1.0000000, -1.0000000, 0.0000000,
602  -1.0000000, 1.0000000, -1.0000000, 2.5198421,
603  -1.0000000, 4.3267487, -1.0000000, 6.3496042,
604  0.0000000, -6.3496042, 0.0000000, -4.3267487,
605  0.0000000, -2.5198421, 0.0000000, -1.0000000,
606  0.0000000, 0.0000000, 0.0000000, 1.0000000,
607  0.0000000, 2.5198421, 0.0000000, 4.3267487,
608  0.0000000, 6.3496042, 1.0000000, -6.3496042,
609  1.0000000, -4.3267487, 1.0000000, -2.5198421,
610  1.0000000, -1.0000000, 1.0000000, 0.0000000,
611  1.0000000, 1.0000000, 1.0000000, 2.5198421,
612  1.0000000, 4.3267487, 1.0000000, 6.3496042,
613  2.5198421, -6.3496042, 2.5198421, -4.3267487,
614  2.5198421, -2.5198421, 2.5198421, -1.0000000,
615  2.5198421, 0.0000000, 2.5198421, 1.0000000,
616  2.5198421, 2.5198421, 2.5198421, 4.3267487,
617  2.5198421, 6.3496042, 4.3267487, -6.3496042,
618  4.3267487, -4.3267487, 4.3267487, -2.5198421,
619  4.3267487, -1.0000000, 4.3267487, 0.0000000,
620  4.3267487, 1.0000000, 4.3267487, 2.5198421,
621  4.3267487, 4.3267487, 4.3267487, 6.3496042,
622  6.3496042, -6.3496042, 6.3496042, -4.3267487,
623  6.3496042, -2.5198421, 6.3496042, -1.0000000,
624  6.3496042, 0.0000000, 6.3496042, 1.0000000,
625  6.3496042, 2.5198421, 6.3496042, 4.3267487,
626  6.3496042, 6.3496042,
627 };
628 
629 static const DECLARE_ALIGNED(16, float, codebook_vector6)[128] = {
630  0.0000000, 0.0000000, 0.0000000, 1.0000000,
631  0.0000000, 2.5198421, 0.0000000, 4.3267487,
632  0.0000000, 6.3496042, 0.0000000, 8.5498797,
633  0.0000000, 10.9027236, 0.0000000, 13.3905183,
634  1.0000000, 0.0000000, 1.0000000, 1.0000000,
635  1.0000000, 2.5198421, 1.0000000, 4.3267487,
636  1.0000000, 6.3496042, 1.0000000, 8.5498797,
637  1.0000000, 10.9027236, 1.0000000, 13.3905183,
638  2.5198421, 0.0000000, 2.5198421, 1.0000000,
639  2.5198421, 2.5198421, 2.5198421, 4.3267487,
640  2.5198421, 6.3496042, 2.5198421, 8.5498797,
641  2.5198421, 10.9027236, 2.5198421, 13.3905183,
642  4.3267487, 0.0000000, 4.3267487, 1.0000000,
643  4.3267487, 2.5198421, 4.3267487, 4.3267487,
644  4.3267487, 6.3496042, 4.3267487, 8.5498797,
645  4.3267487, 10.9027236, 4.3267487, 13.3905183,
646  6.3496042, 0.0000000, 6.3496042, 1.0000000,
647  6.3496042, 2.5198421, 6.3496042, 4.3267487,
648  6.3496042, 6.3496042, 6.3496042, 8.5498797,
649  6.3496042, 10.9027236, 6.3496042, 13.3905183,
650  8.5498797, 0.0000000, 8.5498797, 1.0000000,
651  8.5498797, 2.5198421, 8.5498797, 4.3267487,
652  8.5498797, 6.3496042, 8.5498797, 8.5498797,
653  8.5498797, 10.9027236, 8.5498797, 13.3905183,
654  10.9027236, 0.0000000, 10.9027236, 1.0000000,
655  10.9027236, 2.5198421, 10.9027236, 4.3267487,
656  10.9027236, 6.3496042, 10.9027236, 8.5498797,
657  10.9027236, 10.9027236, 10.9027236, 13.3905183,
658  13.3905183, 0.0000000, 13.3905183, 1.0000000,
659  13.3905183, 2.5198421, 13.3905183, 4.3267487,
660  13.3905183, 6.3496042, 13.3905183, 8.5498797,
661  13.3905183, 10.9027236, 13.3905183, 13.3905183,
662 };
663 
664 static const DECLARE_ALIGNED(16, float, codebook_vector8)[338] = {
665  0.0000000, 0.0000000, 0.0000000, 1.0000000,
666  0.0000000, 2.5198421, 0.0000000, 4.3267487,
667  0.0000000, 6.3496042, 0.0000000, 8.5498797,
668  0.0000000, 10.9027236, 0.0000000, 13.3905183,
669  0.0000000, 16.0000000, 0.0000000, 18.7207544,
670  0.0000000, 21.5443469, 0.0000000, 24.4637810,
671  0.0000000, 27.4731418, 1.0000000, 0.0000000,
672  1.0000000, 1.0000000, 1.0000000, 2.5198421,
673  1.0000000, 4.3267487, 1.0000000, 6.3496042,
674  1.0000000, 8.5498797, 1.0000000, 10.9027236,
675  1.0000000, 13.3905183, 1.0000000, 16.0000000,
676  1.0000000, 18.7207544, 1.0000000, 21.5443469,
677  1.0000000, 24.4637810, 1.0000000, 27.4731418,
678  2.5198421, 0.0000000, 2.5198421, 1.0000000,
679  2.5198421, 2.5198421, 2.5198421, 4.3267487,
680  2.5198421, 6.3496042, 2.5198421, 8.5498797,
681  2.5198421, 10.9027236, 2.5198421, 13.3905183,
682  2.5198421, 16.0000000, 2.5198421, 18.7207544,
683  2.5198421, 21.5443469, 2.5198421, 24.4637810,
684  2.5198421, 27.4731418, 4.3267487, 0.0000000,
685  4.3267487, 1.0000000, 4.3267487, 2.5198421,
686  4.3267487, 4.3267487, 4.3267487, 6.3496042,
687  4.3267487, 8.5498797, 4.3267487, 10.9027236,
688  4.3267487, 13.3905183, 4.3267487, 16.0000000,
689  4.3267487, 18.7207544, 4.3267487, 21.5443469,
690  4.3267487, 24.4637810, 4.3267487, 27.4731418,
691  6.3496042, 0.0000000, 6.3496042, 1.0000000,
692  6.3496042, 2.5198421, 6.3496042, 4.3267487,
693  6.3496042, 6.3496042, 6.3496042, 8.5498797,
694  6.3496042, 10.9027236, 6.3496042, 13.3905183,
695  6.3496042, 16.0000000, 6.3496042, 18.7207544,
696  6.3496042, 21.5443469, 6.3496042, 24.4637810,
697  6.3496042, 27.4731418, 8.5498797, 0.0000000,
698  8.5498797, 1.0000000, 8.5498797, 2.5198421,
699  8.5498797, 4.3267487, 8.5498797, 6.3496042,
700  8.5498797, 8.5498797, 8.5498797, 10.9027236,
701  8.5498797, 13.3905183, 8.5498797, 16.0000000,
702  8.5498797, 18.7207544, 8.5498797, 21.5443469,
703  8.5498797, 24.4637810, 8.5498797, 27.4731418,
704  10.9027236, 0.0000000, 10.9027236, 1.0000000,
705  10.9027236, 2.5198421, 10.9027236, 4.3267487,
706  10.9027236, 6.3496042, 10.9027236, 8.5498797,
707  10.9027236, 10.9027236, 10.9027236, 13.3905183,
708  10.9027236, 16.0000000, 10.9027236, 18.7207544,
709  10.9027236, 21.5443469, 10.9027236, 24.4637810,
710  10.9027236, 27.4731418, 13.3905183, 0.0000000,
711  13.3905183, 1.0000000, 13.3905183, 2.5198421,
712  13.3905183, 4.3267487, 13.3905183, 6.3496042,
713  13.3905183, 8.5498797, 13.3905183, 10.9027236,
714  13.3905183, 13.3905183, 13.3905183, 16.0000000,
715  13.3905183, 18.7207544, 13.3905183, 21.5443469,
716  13.3905183, 24.4637810, 13.3905183, 27.4731418,
717  16.0000000, 0.0000000, 16.0000000, 1.0000000,
718  16.0000000, 2.5198421, 16.0000000, 4.3267487,
719  16.0000000, 6.3496042, 16.0000000, 8.5498797,
720  16.0000000, 10.9027236, 16.0000000, 13.3905183,
721  16.0000000, 16.0000000, 16.0000000, 18.7207544,
722  16.0000000, 21.5443469, 16.0000000, 24.4637810,
723  16.0000000, 27.4731418, 18.7207544, 0.0000000,
724  18.7207544, 1.0000000, 18.7207544, 2.5198421,
725  18.7207544, 4.3267487, 18.7207544, 6.3496042,
726  18.7207544, 8.5498797, 18.7207544, 10.9027236,
727  18.7207544, 13.3905183, 18.7207544, 16.0000000,
728  18.7207544, 18.7207544, 18.7207544, 21.5443469,
729  18.7207544, 24.4637810, 18.7207544, 27.4731418,
730  21.5443469, 0.0000000, 21.5443469, 1.0000000,
731  21.5443469, 2.5198421, 21.5443469, 4.3267487,
732  21.5443469, 6.3496042, 21.5443469, 8.5498797,
733  21.5443469, 10.9027236, 21.5443469, 13.3905183,
734  21.5443469, 16.0000000, 21.5443469, 18.7207544,
735  21.5443469, 21.5443469, 21.5443469, 24.4637810,
736  21.5443469, 27.4731418, 24.4637810, 0.0000000,
737  24.4637810, 1.0000000, 24.4637810, 2.5198421,
738  24.4637810, 4.3267487, 24.4637810, 6.3496042,
739  24.4637810, 8.5498797, 24.4637810, 10.9027236,
740  24.4637810, 13.3905183, 24.4637810, 16.0000000,
741  24.4637810, 18.7207544, 24.4637810, 21.5443469,
742  24.4637810, 24.4637810, 24.4637810, 27.4731418,
743  27.4731418, 0.0000000, 27.4731418, 1.0000000,
744  27.4731418, 2.5198421, 27.4731418, 4.3267487,
745  27.4731418, 6.3496042, 27.4731418, 8.5498797,
746  27.4731418, 10.9027236, 27.4731418, 13.3905183,
747  27.4731418, 16.0000000, 27.4731418, 18.7207544,
748  27.4731418, 21.5443469, 27.4731418, 24.4637810,
749  27.4731418, 27.4731418,
750 };
751 
752 static const DECLARE_ALIGNED(16, float, codebook_vector10)[578] = {
753  0.0000000, 0.0000000, 0.0000000, 1.0000000,
754  0.0000000, 2.5198421, 0.0000000, 4.3267487,
755  0.0000000, 6.3496042, 0.0000000, 8.5498797,
756  0.0000000, 10.9027236, 0.0000000, 13.3905183,
757  0.0000000, 16.0000000, 0.0000000, 18.7207544,
758  0.0000000, 21.5443469, 0.0000000, 24.4637810,
759  0.0000000, 27.4731418, 0.0000000, 30.5673509,
760  0.0000000, 33.7419917, 0.0000000, 36.9931811,
761  0.0000000, 64.0f, 1.0000000, 0.0000000,
762  1.0000000, 1.0000000, 1.0000000, 2.5198421,
763  1.0000000, 4.3267487, 1.0000000, 6.3496042,
764  1.0000000, 8.5498797, 1.0000000, 10.9027236,
765  1.0000000, 13.3905183, 1.0000000, 16.0000000,
766  1.0000000, 18.7207544, 1.0000000, 21.5443469,
767  1.0000000, 24.4637810, 1.0000000, 27.4731418,
768  1.0000000, 30.5673509, 1.0000000, 33.7419917,
769  1.0000000, 36.9931811, 1.0000000, 64.0f,
770  2.5198421, 0.0000000, 2.5198421, 1.0000000,
771  2.5198421, 2.5198421, 2.5198421, 4.3267487,
772  2.5198421, 6.3496042, 2.5198421, 8.5498797,
773  2.5198421, 10.9027236, 2.5198421, 13.3905183,
774  2.5198421, 16.0000000, 2.5198421, 18.7207544,
775  2.5198421, 21.5443469, 2.5198421, 24.4637810,
776  2.5198421, 27.4731418, 2.5198421, 30.5673509,
777  2.5198421, 33.7419917, 2.5198421, 36.9931811,
778  2.5198421, 64.0f, 4.3267487, 0.0000000,
779  4.3267487, 1.0000000, 4.3267487, 2.5198421,
780  4.3267487, 4.3267487, 4.3267487, 6.3496042,
781  4.3267487, 8.5498797, 4.3267487, 10.9027236,
782  4.3267487, 13.3905183, 4.3267487, 16.0000000,
783  4.3267487, 18.7207544, 4.3267487, 21.5443469,
784  4.3267487, 24.4637810, 4.3267487, 27.4731418,
785  4.3267487, 30.5673509, 4.3267487, 33.7419917,
786  4.3267487, 36.9931811, 4.3267487, 64.0f,
787  6.3496042, 0.0000000, 6.3496042, 1.0000000,
788  6.3496042, 2.5198421, 6.3496042, 4.3267487,
789  6.3496042, 6.3496042, 6.3496042, 8.5498797,
790  6.3496042, 10.9027236, 6.3496042, 13.3905183,
791  6.3496042, 16.0000000, 6.3496042, 18.7207544,
792  6.3496042, 21.5443469, 6.3496042, 24.4637810,
793  6.3496042, 27.4731418, 6.3496042, 30.5673509,
794  6.3496042, 33.7419917, 6.3496042, 36.9931811,
795  6.3496042, 64.0f, 8.5498797, 0.0000000,
796  8.5498797, 1.0000000, 8.5498797, 2.5198421,
797  8.5498797, 4.3267487, 8.5498797, 6.3496042,
798  8.5498797, 8.5498797, 8.5498797, 10.9027236,
799  8.5498797, 13.3905183, 8.5498797, 16.0000000,
800  8.5498797, 18.7207544, 8.5498797, 21.5443469,
801  8.5498797, 24.4637810, 8.5498797, 27.4731418,
802  8.5498797, 30.5673509, 8.5498797, 33.7419917,
803  8.5498797, 36.9931811, 8.5498797, 64.0f,
804  10.9027236, 0.0000000, 10.9027236, 1.0000000,
805  10.9027236, 2.5198421, 10.9027236, 4.3267487,
806  10.9027236, 6.3496042, 10.9027236, 8.5498797,
807  10.9027236, 10.9027236, 10.9027236, 13.3905183,
808  10.9027236, 16.0000000, 10.9027236, 18.7207544,
809  10.9027236, 21.5443469, 10.9027236, 24.4637810,
810  10.9027236, 27.4731418, 10.9027236, 30.5673509,
811  10.9027236, 33.7419917, 10.9027236, 36.9931811,
812  10.9027236, 64.0f, 13.3905183, 0.0000000,
813  13.3905183, 1.0000000, 13.3905183, 2.5198421,
814  13.3905183, 4.3267487, 13.3905183, 6.3496042,
815  13.3905183, 8.5498797, 13.3905183, 10.9027236,
816  13.3905183, 13.3905183, 13.3905183, 16.0000000,
817  13.3905183, 18.7207544, 13.3905183, 21.5443469,
818  13.3905183, 24.4637810, 13.3905183, 27.4731418,
819  13.3905183, 30.5673509, 13.3905183, 33.7419917,
820  13.3905183, 36.9931811, 13.3905183, 64.0f,
821  16.0000000, 0.0000000, 16.0000000, 1.0000000,
822  16.0000000, 2.5198421, 16.0000000, 4.3267487,
823  16.0000000, 6.3496042, 16.0000000, 8.5498797,
824  16.0000000, 10.9027236, 16.0000000, 13.3905183,
825  16.0000000, 16.0000000, 16.0000000, 18.7207544,
826  16.0000000, 21.5443469, 16.0000000, 24.4637810,
827  16.0000000, 27.4731418, 16.0000000, 30.5673509,
828  16.0000000, 33.7419917, 16.0000000, 36.9931811,
829  16.0000000, 64.0f, 18.7207544, 0.0000000,
830  18.7207544, 1.0000000, 18.7207544, 2.5198421,
831  18.7207544, 4.3267487, 18.7207544, 6.3496042,
832  18.7207544, 8.5498797, 18.7207544, 10.9027236,
833  18.7207544, 13.3905183, 18.7207544, 16.0000000,
834  18.7207544, 18.7207544, 18.7207544, 21.5443469,
835  18.7207544, 24.4637810, 18.7207544, 27.4731418,
836  18.7207544, 30.5673509, 18.7207544, 33.7419917,
837  18.7207544, 36.9931811, 18.7207544, 64.0f,
838  21.5443469, 0.0000000, 21.5443469, 1.0000000,
839  21.5443469, 2.5198421, 21.5443469, 4.3267487,
840  21.5443469, 6.3496042, 21.5443469, 8.5498797,
841  21.5443469, 10.9027236, 21.5443469, 13.3905183,
842  21.5443469, 16.0000000, 21.5443469, 18.7207544,
843  21.5443469, 21.5443469, 21.5443469, 24.4637810,
844  21.5443469, 27.4731418, 21.5443469, 30.5673509,
845  21.5443469, 33.7419917, 21.5443469, 36.9931811,
846  21.5443469, 64.0f, 24.4637810, 0.0000000,
847  24.4637810, 1.0000000, 24.4637810, 2.5198421,
848  24.4637810, 4.3267487, 24.4637810, 6.3496042,
849  24.4637810, 8.5498797, 24.4637810, 10.9027236,
850  24.4637810, 13.3905183, 24.4637810, 16.0000000,
851  24.4637810, 18.7207544, 24.4637810, 21.5443469,
852  24.4637810, 24.4637810, 24.4637810, 27.4731418,
853  24.4637810, 30.5673509, 24.4637810, 33.7419917,
854  24.4637810, 36.9931811, 24.4637810, 64.0f,
855  27.4731418, 0.0000000, 27.4731418, 1.0000000,
856  27.4731418, 2.5198421, 27.4731418, 4.3267487,
857  27.4731418, 6.3496042, 27.4731418, 8.5498797,
858  27.4731418, 10.9027236, 27.4731418, 13.3905183,
859  27.4731418, 16.0000000, 27.4731418, 18.7207544,
860  27.4731418, 21.5443469, 27.4731418, 24.4637810,
861  27.4731418, 27.4731418, 27.4731418, 30.5673509,
862  27.4731418, 33.7419917, 27.4731418, 36.9931811,
863  27.4731418, 64.0f, 30.5673509, 0.0000000,
864  30.5673509, 1.0000000, 30.5673509, 2.5198421,
865  30.5673509, 4.3267487, 30.5673509, 6.3496042,
866  30.5673509, 8.5498797, 30.5673509, 10.9027236,
867  30.5673509, 13.3905183, 30.5673509, 16.0000000,
868  30.5673509, 18.7207544, 30.5673509, 21.5443469,
869  30.5673509, 24.4637810, 30.5673509, 27.4731418,
870  30.5673509, 30.5673509, 30.5673509, 33.7419917,
871  30.5673509, 36.9931811, 30.5673509, 64.0f,
872  33.7419917, 0.0000000, 33.7419917, 1.0000000,
873  33.7419917, 2.5198421, 33.7419917, 4.3267487,
874  33.7419917, 6.3496042, 33.7419917, 8.5498797,
875  33.7419917, 10.9027236, 33.7419917, 13.3905183,
876  33.7419917, 16.0000000, 33.7419917, 18.7207544,
877  33.7419917, 21.5443469, 33.7419917, 24.4637810,
878  33.7419917, 27.4731418, 33.7419917, 30.5673509,
879  33.7419917, 33.7419917, 33.7419917, 36.9931811,
880  33.7419917, 64.0f, 36.9931811, 0.0000000,
881  36.9931811, 1.0000000, 36.9931811, 2.5198421,
882  36.9931811, 4.3267487, 36.9931811, 6.3496042,
883  36.9931811, 8.5498797, 36.9931811, 10.9027236,
884  36.9931811, 13.3905183, 36.9931811, 16.0000000,
885  36.9931811, 18.7207544, 36.9931811, 21.5443469,
886  36.9931811, 24.4637810, 36.9931811, 27.4731418,
887  36.9931811, 30.5673509, 36.9931811, 33.7419917,
888  36.9931811, 36.9931811, 36.9931811, 64.0f,
889  64.0f, 0.0000000, 64.0f, 1.0000000,
890  64.0f, 2.5198421, 64.0f, 4.3267487,
891  64.0f, 6.3496042, 64.0f, 8.5498797,
892  64.0f, 10.9027236, 64.0f, 13.3905183,
893  64.0f, 16.0000000, 64.0f, 18.7207544,
894  64.0f, 21.5443469, 64.0f, 24.4637810,
895  64.0f, 27.4731418, 64.0f, 30.5673509,
896  64.0f, 33.7419917, 64.0f, 36.9931811,
897  64.0f, 64.0f,
898 };
899 
900 const float * const ff_aac_codebook_vectors[] = {
905 };
906 
907 static const float codebook_vector0_vals[] = {
908  -1.0000000, 0.0000000, 1.0000000
909 };
910 
911 /*
912  * bits 0:1, 2:3, 4:5, 6:7 index into _vals array
913  * 8:11 number of non-zero values
914  * 12:15 bit mask of non-zero values
915  */
916 static const uint16_t codebook_vector02_idx[] = {
917  0x0000, 0x8140, 0x8180, 0x4110, 0xc250, 0xc290, 0x4120, 0xc260, 0xc2a0,
918  0x2104, 0xa244, 0xa284, 0x6214, 0xe354, 0xe394, 0x6224, 0xe364, 0xe3a4,
919  0x2108, 0xa248, 0xa288, 0x6218, 0xe358, 0xe398, 0x6228, 0xe368, 0xe3a8,
920  0x1101, 0x9241, 0x9281, 0x5211, 0xd351, 0xd391, 0x5221, 0xd361, 0xd3a1,
921  0x3205, 0xb345, 0xb385, 0x7315, 0xf455, 0xf495, 0x7325, 0xf465, 0xf4a5,
922  0x3209, 0xb349, 0xb389, 0x7319, 0xf459, 0xf499, 0x7329, 0xf469, 0xf4a9,
923  0x1102, 0x9242, 0x9282, 0x5212, 0xd352, 0xd392, 0x5222, 0xd362, 0xd3a2,
924  0x3206, 0xb346, 0xb386, 0x7316, 0xf456, 0xf496, 0x7326, 0xf466, 0xf4a6,
925  0x320a, 0xb34a, 0xb38a, 0x731a, 0xf45a, 0xf49a, 0x732a, 0xf46a, 0xf4aa,
926 };
927 
928 static const float codebook_vector4_vals[] = {
929  -6.3496042, -4.3267487,
930  -2.5198421, -1.0000000,
931  0.0000000, 1.0000000,
932  2.5198421, 4.3267487,
933  6.3496042,
934 };
935 
936 /*
937  * bits 0:3, 4:7 index into _vals array
938  */
939 static const uint16_t codebook_vector4_idx[] = {
940  0x0000, 0x0010, 0x0020, 0x0030, 0x0040, 0x0050, 0x0060, 0x0070, 0x0080,
941  0x0001, 0x0011, 0x0021, 0x0031, 0x0041, 0x0051, 0x0061, 0x0071, 0x0081,
942  0x0002, 0x0012, 0x0022, 0x0032, 0x0042, 0x0052, 0x0062, 0x0072, 0x0082,
943  0x0003, 0x0013, 0x0023, 0x0033, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083,
944  0x0004, 0x0014, 0x0024, 0x0034, 0x0044, 0x0054, 0x0064, 0x0074, 0x0084,
945  0x0005, 0x0015, 0x0025, 0x0035, 0x0045, 0x0055, 0x0065, 0x0075, 0x0085,
946  0x0006, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0076, 0x0086,
947  0x0007, 0x0017, 0x0027, 0x0037, 0x0047, 0x0057, 0x0067, 0x0077, 0x0087,
948  0x0008, 0x0018, 0x0028, 0x0038, 0x0048, 0x0058, 0x0068, 0x0078, 0x0088,
949 };
950 
951 /*
952  * bits 0:3, 4:7 index into _vals array
953  * 8:11 number of non-zero values
954  * 12:15 1: only second value non-zero
955  * 0: other cases
956  */
957 static const uint16_t codebook_vector6_idx[] = {
958  0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
959  0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261, 0x0271,
960  0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262, 0x0272,
961  0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263, 0x0273,
962  0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264, 0x0274,
963  0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265, 0x0275,
964  0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266, 0x0276,
965  0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267, 0x0277,
966 };
967 
968 /*
969  * bits 0:3, 4:7 index into _vals array
970  * 8:11 number of non-zero values
971  * 12:15 1: only second value non-zero
972  * 0: other cases
973  */
974 static const uint16_t codebook_vector8_idx[] = {
975  0x0000, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160,
976  0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0,
977  0x1101, 0x0211, 0x0221, 0x0231, 0x0241, 0x0251, 0x0261,
978  0x0271, 0x0281, 0x0291, 0x02a1, 0x02b1, 0x02c1,
979  0x1102, 0x0212, 0x0222, 0x0232, 0x0242, 0x0252, 0x0262,
980  0x0272, 0x0282, 0x0292, 0x02a2, 0x02b2, 0x02c2,
981  0x1103, 0x0213, 0x0223, 0x0233, 0x0243, 0x0253, 0x0263,
982  0x0273, 0x0283, 0x0293, 0x02a3, 0x02b3, 0x02c3,
983  0x1104, 0x0214, 0x0224, 0x0234, 0x0244, 0x0254, 0x0264,
984  0x0274, 0x0284, 0x0294, 0x02a4, 0x02b4, 0x02c4,
985  0x1105, 0x0215, 0x0225, 0x0235, 0x0245, 0x0255, 0x0265,
986  0x0275, 0x0285, 0x0295, 0x02a5, 0x02b5, 0x02c5,
987  0x1106, 0x0216, 0x0226, 0x0236, 0x0246, 0x0256, 0x0266,
988  0x0276, 0x0286, 0x0296, 0x02a6, 0x02b6, 0x02c6,
989  0x1107, 0x0217, 0x0227, 0x0237, 0x0247, 0x0257, 0x0267,
990  0x0277, 0x0287, 0x0297, 0x02a7, 0x02b7, 0x02c7,
991  0x1108, 0x0218, 0x0228, 0x0238, 0x0248, 0x0258, 0x0268,
992  0x0278, 0x0288, 0x0298, 0x02a8, 0x02b8, 0x02c8,
993  0x1109, 0x0219, 0x0229, 0x0239, 0x0249, 0x0259, 0x0269,
994  0x0279, 0x0289, 0x0299, 0x02a9, 0x02b9, 0x02c9,
995  0x110a, 0x021a, 0x022a, 0x023a, 0x024a, 0x025a, 0x026a,
996  0x027a, 0x028a, 0x029a, 0x02aa, 0x02ba, 0x02ca,
997  0x110b, 0x021b, 0x022b, 0x023b, 0x024b, 0x025b, 0x026b,
998  0x027b, 0x028b, 0x029b, 0x02ab, 0x02bb, 0x02cb,
999  0x110c, 0x021c, 0x022c, 0x023c, 0x024c, 0x025c, 0x026c,
1000  0x027c, 0x028c, 0x029c, 0x02ac, 0x02bc, 0x02cc,
1001 };
1002 
1003 static const float codebook_vector10_vals[] = {
1004  0.0000000, 1.0000000,
1005  2.5198421, 4.3267487,
1006  6.3496042, 8.5498797,
1007  10.9027236, 13.3905183,
1008  16.0000000, 18.7207544,
1009  21.5443469, 24.4637810,
1010  27.4731418, 30.5673509,
1011  33.7419917, 36.9931811,
1012 };
1013 
1014 /*
1015  * bits 0:3, 4:7 index into _vals array
1016  * 8:9 bit mask of escape-coded entries
1017  * 12:15 number of non-zero values
1018  */
1019 static const uint16_t codebook_vector10_idx[] = {
1020  0x0000, 0x1010, 0x1020, 0x1030, 0x1040, 0x1050, 0x1060, 0x1070,
1021  0x1080, 0x1090, 0x10a0, 0x10b0, 0x10c0, 0x10d0, 0x10e0, 0x10f0, 0x1200,
1022  0x1001, 0x2011, 0x2021, 0x2031, 0x2041, 0x2051, 0x2061, 0x2071,
1023  0x2081, 0x2091, 0x20a1, 0x20b1, 0x20c1, 0x20d1, 0x20e1, 0x20f1, 0x2201,
1024  0x1002, 0x2012, 0x2022, 0x2032, 0x2042, 0x2052, 0x2062, 0x2072,
1025  0x2082, 0x2092, 0x20a2, 0x20b2, 0x20c2, 0x20d2, 0x20e2, 0x20f2, 0x2202,
1026  0x1003, 0x2013, 0x2023, 0x2033, 0x2043, 0x2053, 0x2063, 0x2073,
1027  0x2083, 0x2093, 0x20a3, 0x20b3, 0x20c3, 0x20d3, 0x20e3, 0x20f3, 0x2203,
1028  0x1004, 0x2014, 0x2024, 0x2034, 0x2044, 0x2054, 0x2064, 0x2074,
1029  0x2084, 0x2094, 0x20a4, 0x20b4, 0x20c4, 0x20d4, 0x20e4, 0x20f4, 0x2204,
1030  0x1005, 0x2015, 0x2025, 0x2035, 0x2045, 0x2055, 0x2065, 0x2075,
1031  0x2085, 0x2095, 0x20a5, 0x20b5, 0x20c5, 0x20d5, 0x20e5, 0x20f5, 0x2205,
1032  0x1006, 0x2016, 0x2026, 0x2036, 0x2046, 0x2056, 0x2066, 0x2076,
1033  0x2086, 0x2096, 0x20a6, 0x20b6, 0x20c6, 0x20d6, 0x20e6, 0x20f6, 0x2206,
1034  0x1007, 0x2017, 0x2027, 0x2037, 0x2047, 0x2057, 0x2067, 0x2077,
1035  0x2087, 0x2097, 0x20a7, 0x20b7, 0x20c7, 0x20d7, 0x20e7, 0x20f7, 0x2207,
1036  0x1008, 0x2018, 0x2028, 0x2038, 0x2048, 0x2058, 0x2068, 0x2078,
1037  0x2088, 0x2098, 0x20a8, 0x20b8, 0x20c8, 0x20d8, 0x20e8, 0x20f8, 0x2208,
1038  0x1009, 0x2019, 0x2029, 0x2039, 0x2049, 0x2059, 0x2069, 0x2079,
1039  0x2089, 0x2099, 0x20a9, 0x20b9, 0x20c9, 0x20d9, 0x20e9, 0x20f9, 0x2209,
1040  0x100a, 0x201a, 0x202a, 0x203a, 0x204a, 0x205a, 0x206a, 0x207a,
1041  0x208a, 0x209a, 0x20aa, 0x20ba, 0x20ca, 0x20da, 0x20ea, 0x20fa, 0x220a,
1042  0x100b, 0x201b, 0x202b, 0x203b, 0x204b, 0x205b, 0x206b, 0x207b,
1043  0x208b, 0x209b, 0x20ab, 0x20bb, 0x20cb, 0x20db, 0x20eb, 0x20fb, 0x220b,
1044  0x100c, 0x201c, 0x202c, 0x203c, 0x204c, 0x205c, 0x206c, 0x207c,
1045  0x208c, 0x209c, 0x20ac, 0x20bc, 0x20cc, 0x20dc, 0x20ec, 0x20fc, 0x220c,
1046  0x100d, 0x201d, 0x202d, 0x203d, 0x204d, 0x205d, 0x206d, 0x207d,
1047  0x208d, 0x209d, 0x20ad, 0x20bd, 0x20cd, 0x20dd, 0x20ed, 0x20fd, 0x220d,
1048  0x100e, 0x201e, 0x202e, 0x203e, 0x204e, 0x205e, 0x206e, 0x207e,
1049  0x208e, 0x209e, 0x20ae, 0x20be, 0x20ce, 0x20de, 0x20ee, 0x20fe, 0x220e,
1050  0x100f, 0x201f, 0x202f, 0x203f, 0x204f, 0x205f, 0x206f, 0x207f,
1051  0x208f, 0x209f, 0x20af, 0x20bf, 0x20cf, 0x20df, 0x20ef, 0x20ff, 0x220f,
1052  0x1100, 0x2110, 0x2120, 0x2130, 0x2140, 0x2150, 0x2160, 0x2170,
1053  0x2180, 0x2190, 0x21a0, 0x21b0, 0x21c0, 0x21d0, 0x21e0, 0x21f0, 0x2300,
1054 };
1055 
1056 const float *const ff_aac_codebook_vector_vals[] = {
1063 };
1064 
1065 const uint16_t *const ff_aac_codebook_vector_idx[] = {
1072 };
1073 
1074 /* @name swb_offsets
1075  * Sample offset into the window indicating the beginning of a scalefactor
1076  * window band
1077  *
1078  * scalefactor window band - term for scalefactor bands within a window,
1079  * given in Table 4.110 to Table 4.128.
1080  *
1081  * scalefactor band - a set of spectral coefficients which are scaled by one
1082  * scalefactor. In case of EIGHT_SHORT_SEQUENCE and grouping a scalefactor band
1083  * may contain several scalefactor window bands of corresponding frequency. For
1084  * all other window_sequences scalefactor bands and scalefactor window bands are
1085  * identical.
1086  * @{
1087  */
1088 
1089 static const uint16_t swb_offset_1024_96[] = {
1090  0, 4, 8, 12, 16, 20, 24, 28,
1091  32, 36, 40, 44, 48, 52, 56, 64,
1092  72, 80, 88, 96, 108, 120, 132, 144,
1093  156, 172, 188, 212, 240, 276, 320, 384,
1094  448, 512, 576, 640, 704, 768, 832, 896,
1095  960, 1024
1096 };
1097 
1098 static const uint16_t swb_offset_128_96[] = {
1099  0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128
1100 };
1101 
1102 static const uint16_t swb_offset_1024_64[] = {
1103  0, 4, 8, 12, 16, 20, 24, 28,
1104  32, 36, 40, 44, 48, 52, 56, 64,
1105  72, 80, 88, 100, 112, 124, 140, 156,
1106  172, 192, 216, 240, 268, 304, 344, 384,
1107  424, 464, 504, 544, 584, 624, 664, 704,
1108  744, 784, 824, 864, 904, 944, 984, 1024
1109 };
1110 
1111 static const uint16_t swb_offset_1024_48[] = {
1112  0, 4, 8, 12, 16, 20, 24, 28,
1113  32, 36, 40, 48, 56, 64, 72, 80,
1114  88, 96, 108, 120, 132, 144, 160, 176,
1115  196, 216, 240, 264, 292, 320, 352, 384,
1116  416, 448, 480, 512, 544, 576, 608, 640,
1117  672, 704, 736, 768, 800, 832, 864, 896,
1118  928, 1024
1119 };
1120 
1121 static const uint16_t swb_offset_512_48[] = {
1122  0, 4, 8, 12, 16, 20, 24, 28,
1123  32, 36, 40, 44, 48, 52, 56, 60,
1124  68, 76, 84, 92, 100, 112, 124, 136,
1125  148, 164, 184, 208, 236, 268, 300, 332,
1126  364, 396, 428, 460, 512
1127 };
1128 
1129 static const uint16_t swb_offset_128_48[] = {
1130  0, 4, 8, 12, 16, 20, 28, 36,
1131  44, 56, 68, 80, 96, 112, 128
1132 };
1133 
1134 static const uint16_t swb_offset_1024_32[] = {
1135  0, 4, 8, 12, 16, 20, 24, 28,
1136  32, 36, 40, 48, 56, 64, 72, 80,
1137  88, 96, 108, 120, 132, 144, 160, 176,
1138  196, 216, 240, 264, 292, 320, 352, 384,
1139  416, 448, 480, 512, 544, 576, 608, 640,
1140  672, 704, 736, 768, 800, 832, 864, 896,
1141  928, 960, 992, 1024
1142 };
1143 
1144 static const uint16_t swb_offset_512_32[] = {
1145  0, 4, 8, 12, 16, 20, 24, 28,
1146  32, 36, 40, 44, 48, 52, 56, 64,
1147  72, 80, 88, 96, 108, 120, 132, 144,
1148  160, 176, 192, 212, 236, 260, 288, 320,
1149  352, 384, 416, 448, 480, 512
1150 };
1151 
1152 static const uint16_t swb_offset_1024_24[] = {
1153  0, 4, 8, 12, 16, 20, 24, 28,
1154  32, 36, 40, 44, 52, 60, 68, 76,
1155  84, 92, 100, 108, 116, 124, 136, 148,
1156  160, 172, 188, 204, 220, 240, 260, 284,
1157  308, 336, 364, 396, 432, 468, 508, 552,
1158  600, 652, 704, 768, 832, 896, 960, 1024
1159 };
1160 
1161 static const uint16_t swb_offset_512_24[] = {
1162  0, 4, 8, 12, 16, 20, 24, 28,
1163  32, 36, 40, 44, 52, 60, 68, 80,
1164  92, 104, 120, 140, 164, 192, 224, 256,
1165  288, 320, 352, 384, 416, 448, 480, 512,
1166 };
1167 
1168 static const uint16_t swb_offset_128_24[] = {
1169  0, 4, 8, 12, 16, 20, 24, 28,
1170  36, 44, 52, 64, 76, 92, 108, 128
1171 };
1172 
1173 static const uint16_t swb_offset_1024_16[] = {
1174  0, 8, 16, 24, 32, 40, 48, 56,
1175  64, 72, 80, 88, 100, 112, 124, 136,
1176  148, 160, 172, 184, 196, 212, 228, 244,
1177  260, 280, 300, 320, 344, 368, 396, 424,
1178  456, 492, 532, 572, 616, 664, 716, 772,
1179  832, 896, 960, 1024
1180 };
1181 
1182 static const uint16_t swb_offset_128_16[] = {
1183  0, 4, 8, 12, 16, 20, 24, 28,
1184  32, 40, 48, 60, 72, 88, 108, 128
1185 };
1186 
1187 static const uint16_t swb_offset_1024_8[] = {
1188  0, 12, 24, 36, 48, 60, 72, 84,
1189  96, 108, 120, 132, 144, 156, 172, 188,
1190  204, 220, 236, 252, 268, 288, 308, 328,
1191  348, 372, 396, 420, 448, 476, 508, 544,
1192  580, 620, 664, 712, 764, 820, 880, 944,
1193  1024
1194 };
1195 
1196 static const uint16_t swb_offset_128_8[] = {
1197  0, 4, 8, 12, 16, 20, 24, 28,
1198  36, 44, 52, 60, 72, 88, 108, 128
1199 };
1200 
1201 const uint16_t * const ff_swb_offset_1024[] = {
1206  swb_offset_1024_8
1207 };
1208 
1209 const uint16_t * const ff_swb_offset_512[] = {
1210  NULL, NULL, NULL,
1213  NULL, NULL, NULL,
1214  NULL
1215 };
1216 
1217 const uint16_t * const ff_swb_offset_128[] = {
1218  /* The last entry on the following row is swb_offset_128_64 but is a
1219  duplicate of swb_offset_128_96. */
1224  swb_offset_128_8
1225 };
1226 
1227 // @}
1228 
1229 /* @name ff_tns_max_bands
1230  * The maximum number of scalefactor bands on which TNS can operate for the long
1231  * and short transforms respectively. The index to these tables is related to
1232  * the sample rate of the audio.
1233  * @{
1234  */
1236  31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39
1237 };
1238 
1240  0, 0, 0, 31, 32, 37, 31, 31, 0, 0, 0, 0, 0
1241 };
1242 
1244  9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
1245 };
1246 // @}
1247 
1248 const DECLARE_ALIGNED(32, float, ff_aac_eld_window)[1920] = {
1249  0.00338834, 0.00567745, 0.00847677, 0.01172641,
1250  0.01532555, 0.01917664, 0.02318809, 0.02729259,
1251  0.03144503, 0.03560261, 0.03972499, 0.04379783,
1252  0.04783094, 0.05183357, 0.05581342, 0.05977723,
1253  0.06373173, 0.06768364, 0.07163937, 0.07559976,
1254  0.07956096, 0.08352024, 0.08747623, 0.09143035,
1255  0.09538618, 0.09934771, 0.10331917, 0.10730456,
1256  0.11130697, 0.11532867, 0.11937133, 0.12343922,
1257  0.12753911, 0.13167705, 0.13585812, 0.14008529,
1258  0.14435986, 0.14868291, 0.15305531, 0.15747594,
1259  0.16194193, 0.16645070, 0.17099991, 0.17558633,
1260  0.18020600, 0.18485548, 0.18953191, 0.19423322,
1261  0.19895800, 0.20370512, 0.20847374, 0.21326312,
1262  0.21807244, 0.22290083, 0.22774742, 0.23261210,
1263  0.23749542, 0.24239767, 0.24731889, 0.25225887,
1264  0.25721719, 0.26219330, 0.26718648, 0.27219630,
1265  0.27722262, 0.28226514, 0.28732336, 0.29239628,
1266  0.29748247, 0.30258055, 0.30768914, 0.31280508,
1267  0.31792385, 0.32304172, 0.32815579, 0.33326397,
1268  0.33836470, 0.34345661, 0.34853868, 0.35361188,
1269  0.35867865, 0.36374072, 0.36879900, 0.37385347,
1270  0.37890349, 0.38394836, 0.38898730, 0.39401912,
1271  0.39904236, 0.40405575, 0.40905820, 0.41404819,
1272  0.41902398, 0.42398423, 0.42892805, 0.43385441,
1273  0.43876210, 0.44365014, 0.44851786, 0.45336632,
1274  0.45819759, 0.46301302, 0.46781309, 0.47259722,
1275  0.47736435, 0.48211365, 0.48684450, 0.49155594,
1276  0.49624679, 0.50091636, 0.50556440, 0.51019132,
1277  0.51479771, 0.51938391, 0.52394998, 0.52849587,
1278  0.53302151, 0.53752680, 0.54201160, 0.54647575,
1279  0.55091916, 0.55534181, 0.55974376, 0.56412513,
1280  0.56848615, 0.57282710, 0.57714834, 0.58145030,
1281  0.58492489, 0.58918511, 0.59342326, 0.59763936,
1282  0.60183347, 0.60600561, 0.61015581, 0.61428412,
1283  0.61839056, 0.62247517, 0.62653799, 0.63057912,
1284  0.63459872, 0.63859697, 0.64257403, 0.64653001,
1285  0.65046495, 0.65437887, 0.65827181, 0.66214383,
1286  0.66599499, 0.66982535, 0.67363499, 0.67742394,
1287  0.68119219, 0.68493972, 0.68866653, 0.69237258,
1288  0.69605778, 0.69972207, 0.70336537, 0.70698758,
1289  0.71058862, 0.71416837, 0.71772674, 0.72126361,
1290  0.72477889, 0.72827246, 0.73174419, 0.73519392,
1291  0.73862141, 0.74202643, 0.74540874, 0.74876817,
1292  0.75210458, 0.75541785, 0.75870785, 0.76197437,
1293  0.76521709, 0.76843570, 0.77162988, 0.77479939,
1294  0.77794403, 0.78106359, 0.78415789, 0.78722670,
1295  0.79026979, 0.79328694, 0.79627791, 0.79924244,
1296  0.80218027, 0.80509112, 0.80797472, 0.81083081,
1297  0.81365915, 0.81645949, 0.81923160, 0.82197528,
1298  0.82469037, 0.82737673, 0.83003419, 0.83266262,
1299  0.83526186, 0.83783176, 0.84037217, 0.84288297,
1300  0.84536401, 0.84781517, 0.85023632, 0.85262739,
1301  0.85498836, 0.85731921, 0.85961993, 0.86189052,
1302  0.86413101, 0.86634140, 0.86852173, 0.87067211,
1303  0.87279275, 0.87488384, 0.87694559, 0.87897824,
1304  0.88098206, 0.88295729, 0.88490423, 0.88682332,
1305  0.88871519, 0.89058048, 0.89241983, 0.89423391,
1306  0.89602338, 0.89778893, 0.89953126, 0.90125142,
1307  0.90295086, 0.90463104, 0.90629341, 0.90793946,
1308  0.90957067, 0.91118856, 0.91279464, 0.91439073,
1309  0.91597898, 0.91756153, 0.91914049, 0.92071690,
1310  0.92229070, 0.92386182, 0.92542993, 0.92698946,
1311  0.92852960, 0.93003929, 0.93150727, 0.93291739,
1312  0.93424863, 0.93547974, 0.93658982, 0.93756587,
1313  0.93894072, 0.93922780, 0.93955477, 0.93991290,
1314  0.94029104, 0.94067794, 0.94106258, 0.94144084,
1315  0.94181549, 0.94218963, 0.94256628, 0.94294662,
1316  0.94332998, 0.94371562, 0.94410280, 0.94449122,
1317  0.94488106, 0.94527249, 0.94566568, 0.94606074,
1318  0.94645772, 0.94685665, 0.94725759, 0.94766054,
1319  0.94806547, 0.94847234, 0.94888115, 0.94929190,
1320  0.94970469, 0.95011960, 0.95053672, 0.95095604,
1321  0.95137751, 0.95180105, 0.95222658, 0.95265413,
1322  0.95308380, 0.95351571, 0.95394994, 0.95438653,
1323  0.95482538, 0.95526643, 0.95570958, 0.95615486,
1324  0.95660234, 0.95705214, 0.95750433, 0.95795892,
1325  0.95841582, 0.95887493, 0.95933616, 0.95979949,
1326  0.96026500, 0.96073277, 0.96120286, 0.96167526,
1327  0.96214986, 0.96262655, 0.96310522, 0.96358586,
1328  0.96406853, 0.96455330, 0.96504026, 0.96552936,
1329  0.96602051, 0.96651360, 0.96700850, 0.96750520,
1330  0.96800376, 0.96850424, 0.96900670, 0.96951112,
1331  0.97001738, 0.97052533, 0.97103488, 0.97154597,
1332  0.97205867, 0.97257304, 0.97308915, 0.97360694,
1333  0.97412631, 0.97464711, 0.97516923, 0.97569262,
1334  0.97621735, 0.97674350, 0.97727111, 0.97780016,
1335  0.97833051, 0.97886205, 0.97939463, 0.97992823,
1336  0.98046291, 0.98099875, 0.98153580, 0.98207405,
1337  0.98261337, 0.98315364, 0.98369474, 0.98423664,
1338  0.98477941, 0.98532311, 0.98586780, 0.98641348,
1339  0.98696003, 0.98750734, 0.98805530, 0.98860389,
1340  0.98915320, 0.98970328, 0.99025423, 0.99080602,
1341  0.99135855, 0.99191171, 0.99246541, 0.99301962,
1342  0.99357443, 0.99412992, 0.99468617, 0.99524320,
1343  0.99580092, 0.99635926, 0.99691814, 0.99747748,
1344  0.99803721, 0.99859725, 0.99915752, 0.99971793,
1345  1.00028215, 1.00084319, 1.00140472, 1.00196665,
1346  1.00252889, 1.00309139, 1.00365404, 1.00421679,
1347  1.00477954, 1.00534221, 1.00590474, 1.00646713,
1348  1.00702945, 1.00759179, 1.00815424, 1.00871678,
1349  1.00927930, 1.00984169, 1.01040384, 1.01096575,
1350  1.01152747, 1.01208910, 1.01265070, 1.01321226,
1351  1.01377365, 1.01433478, 1.01489551, 1.01545584,
1352  1.01601582, 1.01657553, 1.01713502, 1.01769427,
1353  1.01825316, 1.01881154, 1.01936929, 1.01992639,
1354  1.02048289, 1.02103888, 1.02159441, 1.02214945,
1355  1.02270387, 1.02325751, 1.02381025, 1.02436204,
1356  1.02491295, 1.02546304, 1.02601238, 1.02656092,
1357  1.02710853, 1.02765508, 1.02820041, 1.02874449,
1358  1.02928737, 1.02982913, 1.03036981, 1.03090937,
1359  1.03144768, 1.03198460, 1.03252000, 1.03305384,
1360  1.03358617, 1.03411707, 1.03464659, 1.03517470,
1361  1.03570128, 1.03622620, 1.03674934, 1.03727066,
1362  1.03779024, 1.03830815, 1.03882446, 1.03933914,
1363  1.03985206, 1.04036312, 1.04087217, 1.04137920,
1364  1.04188428, 1.04238748, 1.04288888, 1.04338845,
1365  1.04388610, 1.04438170, 1.04487515, 1.04536645,
1366  1.04585569, 1.04634297, 1.04682838, 1.04731192,
1367  1.04779350, 1.04827303, 1.04875042, 1.04922568,
1368  1.04969891, 1.05017022, 1.05063974, 1.05110746,
1369  1.05157332, 1.05203721, 1.05249907, 1.05295889,
1370  1.05341676, 1.05387277, 1.05432700, 1.05477948,
1371  1.05523018, 1.05567906, 1.05612608, 1.05657124,
1372  1.05701459, 1.05745616, 1.05789601, 1.05833426,
1373  1.05877109, 1.05920669, 1.05964125, 1.06007444,
1374  1.06050542, 1.06093335, 1.06135746, 1.06177909,
1375  1.06220164, 1.06262858, 1.06306309, 1.06350050,
1376  1.06392837, 1.06433391, 1.06470443, 1.06502996,
1377  1.06481076, 1.06469765, 1.06445004, 1.06408002,
1378  1.06361382, 1.06307719, 1.06249453, 1.06188365,
1379  1.06125612, 1.06062291, 1.05999418, 1.05937132,
1380  1.05874726, 1.05811486, 1.05746728, 1.05680000,
1381  1.05611070, 1.05539715, 1.05465735, 1.05389329,
1382  1.05311083, 1.05231578, 1.05151372, 1.05070811,
1383  1.04990044, 1.04909210, 1.04828434, 1.04747647,
1384  1.04666590, 1.04585003, 1.04502628, 1.04419009,
1385  1.04333499, 1.04245452, 1.04154244, 1.04059452,
1386  1.03960846, 1.03858207, 1.03751326, 1.03640189,
1387  1.03524976, 1.03405868, 1.03283047, 1.03156812,
1388  1.03027574, 1.02895743, 1.02761717, 1.02625804,
1389  1.02488222, 1.02349184, 1.02208892, 1.02067450,
1390  1.01924861, 1.01781123, 1.01636229, 1.01490045,
1391  1.01342315, 1.01192778, 1.01041175, 1.00887284,
1392  1.00730915, 1.00571882, 1.00409996, 1.00245032,
1393  1.00076734, 0.99904842, 0.99729101, 0.99549380,
1394  0.99365664, 0.99177946, 0.98986234, 0.98791024,
1395  0.98593294, 0.98394037, 0.98194226, 0.97994532,
1396  0.97795324, 0.97596955, 0.97399748, 0.97203326,
1397  0.97006624, 0.96808546, 0.96608018, 0.96404416,
1398  0.96197556, 0.95987276, 0.95773420, 0.95556018,
1399  0.95335291, 0.95111462, 0.94884764, 0.94655663,
1400  0.94424858, 0.94193055, 0.93960953, 0.93729154,
1401  0.93498157, 0.93268456, 0.93040503, 0.92813771,
1402  0.92586755, 0.92357910, 0.92125731, 0.91889642,
1403  0.91649998, 0.91407191, 0.91161623, 0.90913975,
1404  0.90665202, 0.90416271, 0.90168115, 0.89920934,
1405  0.89674189, 0.89427312, 0.89179743, 0.88931147,
1406  0.88681415, 0.88430445, 0.88178141, 0.87924528,
1407  0.87669753, 0.87413966, 0.87157318, 0.86899958,
1408  0.86642037, 0.86383703, 0.86125106, 0.85866393,
1409  0.85604236, 0.85344385, 0.85083093, 0.84820550,
1410  0.84556943, 0.84292458, 0.84027278, 0.83761586,
1411  0.83495565, 0.83229393, 0.82963243, 0.82697135,
1412  0.82430933, 0.82164496, 0.81897669, 0.81630017,
1413  0.81360822, 0.81089355, 0.80814924, 0.80537741,
1414  0.80258920, 0.79979611, 0.79700954, 0.79423813,
1415  0.79148780, 0.78876432, 0.78607290, 0.78340590,
1416  0.78074288, 0.77806279, 0.77534514, 0.77258187,
1417  0.76977737, 0.76693654, 0.76406441, 0.76116851,
1418  0.75825892, 0.75534582, 0.75243924, 0.74954634,
1419  0.74667135, 0.74381840, 0.74099145, 0.73819147,
1420  0.73541641, 0.73266408, 0.72993193, 0.72720913,
1421  0.72447661, 0.72171494, 0.71890515, 0.71603932,
1422  0.71312056, 0.71015250, 0.70713900, 0.70409084,
1423  0.70102565, 0.69796137, 0.69491556, 0.69189772,
1424  0.68890931, 0.68595141, 0.68302498, 0.68012852,
1425  0.67725801, 0.67440936, 0.67157841, 0.66876081,
1426  0.66595195, 0.66314722, 0.66034194, 0.65753027,
1427  0.65470525, 0.65185984, 0.64898709, 0.64608214,
1428  0.64314221, 0.64016460, 0.63714680, 0.63409034,
1429  0.63100082, 0.62788400, 0.62474577, 0.62159473,
1430  0.61844225, 0.61529977, 0.61217866, 0.60908811,
1431  0.60603510, 0.60302654, 0.60006916, 0.59716588,
1432  0.59431580, 0.59151787, 0.58877068, 0.58606495,
1433  0.58338353, 0.58070891, 0.57802356, 0.57530864,
1434  0.57254404, 0.56970958, 0.56678577, 0.56376860,
1435  0.56066951, 0.55750064, 0.55427451, 0.55101301,
1436  0.54774732, 0.54450907, 0.54132936, 0.53822744,
1437  0.53521072, 0.53228613, 0.52945979, 0.52671997,
1438  0.52403708, 0.52138072, 0.51872085, 0.51603570,
1439  0.51331170, 0.51053560, 0.50769466, 0.50478931,
1440  0.50183308, 0.49884001, 0.49582406, 0.49279905,
1441  0.48985748, 0.48679641, 0.48379429, 0.48085363,
1442  0.47796576, 0.47512151, 0.47231151, 0.46952402,
1443  0.46674486, 0.46395978, 0.46115496, 0.45832607,
1444  0.45547830, 0.45261727, 0.44974866, 0.44688011,
1445  0.44402125, 0.44118178, 0.43837094, 0.43558772,
1446  0.43282082, 0.43005847, 0.42728913, 0.42450572,
1447  0.42170567, 0.41888658, 0.41604633, 0.41318897,
1448  0.41032472, 0.40746405, 0.40461724, 0.40178943,
1449  0.39898066, 0.39619073, 0.39341940, 0.39066519,
1450  0.38792536, 0.38519713, 0.38247773, 0.37976476,
1451  0.37705620, 0.37435006, 0.37164438, 0.36893869,
1452  0.36623396, 0.36353124, 0.36083153, 0.35813533,
1453  0.35544262, 0.35275338, 0.35006755, 0.34738530,
1454  0.34470699, 0.34203296, 0.33936359, 0.33669922,
1455  0.33404027, 0.33138711, 0.32874013, 0.32609944,
1456  0.32346493, 0.32083645, 0.31821388, 0.31559703,
1457  0.31298573, 0.31037987, 0.30777941, 0.30518446,
1458  0.30259525, 0.30001202, 0.29743499, 0.29486428,
1459  0.29229989, 0.28974179, 0.28718997, 0.28464452,
1460  0.28210562, 0.27957346, 0.27704820, 0.27452992,
1461  0.27201854, 0.26951399, 0.26701622, 0.26452533,
1462  0.26204158, 0.25956526, 0.25709662, 0.25463583,
1463  0.25218294, 0.24973798, 0.24730100, 0.24487207,
1464  0.24245133, 0.24003893, 0.23763500, 0.23523959,
1465  0.23285262, 0.23047401, 0.22810369, 0.22574170,
1466  0.22338818, 0.22104329, 0.21870719, 0.21637986,
1467  0.21406117, 0.21175095, 0.20944904, 0.20715535,
1468  0.20486987, 0.20259261, 0.20032356, 0.19806259,
1469  0.19580944, 0.19356385, 0.19132556, 0.18909442,
1470  0.18687040, 0.18465350, 0.18244372, 0.18024164,
1471  0.17804841, 0.17586521, 0.17369322, 0.17153360,
1472  0.16938755, 0.16725622, 0.16514081, 0.16304247,
1473  0.16098974, 0.15896561, 0.15696026, 0.15497259,
1474  0.15300151, 0.15104590, 0.14910466, 0.14717666,
1475  0.14526081, 0.14335599, 0.14146111, 0.13957570,
1476  0.13769993, 0.13583399, 0.13397806, 0.13213229,
1477  0.13029682, 0.12847178, 0.12665729, 0.12485353,
1478  0.12306074, 0.12127916, 0.11950900, 0.11775043,
1479  0.11600347, 0.11426820, 0.11254464, 0.11083292,
1480  0.10913318, 0.10744559, 0.10577028, 0.10410733,
1481  0.10245672, 0.10081842, 0.09919240, 0.09757872,
1482  0.09597750, 0.09438884, 0.09281288, 0.09124964,
1483  0.08969907, 0.08816111, 0.08663570, 0.08512288,
1484  0.08362274, 0.08213540, 0.08066096, 0.07919944,
1485  0.07775076, 0.07631484, 0.07489161, 0.07348108,
1486  0.07208335, 0.07069851, 0.06932666, 0.06796781,
1487  0.06662187, 0.06528874, 0.06396833, 0.06266065,
1488  0.06136578, 0.06008380, 0.05881480, 0.05755876,
1489  0.05631557, 0.05508511, 0.05386728, 0.05266206,
1490  0.05146951, 0.05028971, 0.04912272, 0.04796855,
1491  0.04682709, 0.04569825, 0.04458194, 0.04347817,
1492  0.04238704, 0.04130868, 0.04024318, 0.03919056,
1493  0.03815071, 0.03712352, 0.03610890, 0.03510679,
1494  0.03411720, 0.03314013, 0.03217560, 0.03122343,
1495  0.03028332, 0.02935494, 0.02843799, 0.02753230,
1496  0.02663788, 0.02575472, 0.02488283, 0.02402232,
1497  0.02317341, 0.02233631, 0.02151124, 0.02069866,
1498  0.01989922, 0.01911359, 0.01834241, 0.01758563,
1499  0.01684248, 0.01611219, 0.01539397, 0.01468726,
1500  0.01399167, 0.01330687, 0.01263250, 0.01196871,
1501  0.01131609, 0.01067527, 0.01004684, 0.00943077,
1502  0.00882641, 0.00823307, 0.00765011, 0.00707735,
1503  0.00651513, 0.00596377, 0.00542364, 0.00489514,
1504  0.00437884, 0.00387530, 0.00338509, 0.00290795,
1505  0.00244282, 0.00198860, 0.00154417, 0.00110825,
1506  0.00067934, 0.00025589, -0.00016357, -0.00057897,
1507  -0.00098865, -0.00139089, -0.00178397, -0.00216547,
1508  -0.00253230, -0.00288133, -0.00320955, -0.00351626,
1509  -0.00380315, -0.00407198, -0.00432457, -0.00456373,
1510  -0.00479326, -0.00501699, -0.00523871, -0.00546066,
1511  -0.00568360, -0.00590821, -0.00613508, -0.00636311,
1512  -0.00658944, -0.00681117, -0.00702540, -0.00722982,
1513  -0.00742268, -0.00760226, -0.00776687, -0.00791580,
1514  -0.00804933, -0.00816774, -0.00827139, -0.00836122,
1515  -0.00843882, -0.00850583, -0.00856383, -0.00861430,
1516  -0.00865853, -0.00869781, -0.00873344, -0.00876633,
1517  -0.00879707, -0.00882622, -0.00885433, -0.00888132,
1518  -0.00890652, -0.00892925, -0.00894881, -0.00896446,
1519  -0.00897541, -0.00898088, -0.00898010, -0.00897234,
1520  -0.00895696, -0.00893330, -0.00890076, -0.00885914,
1521  -0.00880875, -0.00874987, -0.00868282, -0.00860825,
1522  -0.00852716, -0.00844055, -0.00834941, -0.00825485,
1523  -0.00815807, -0.00806025, -0.00796253, -0.00786519,
1524  -0.00776767, -0.00766937, -0.00756971, -0.00746790,
1525  -0.00736305, -0.00725422, -0.00714055, -0.00702161,
1526  -0.00689746, -0.00676816, -0.00663381, -0.00649489,
1527  -0.00635230, -0.00620694, -0.00605969, -0.00591116,
1528  -0.00576167, -0.00561155, -0.00546110, -0.00531037,
1529  -0.00515917, -0.00500732, -0.00485462, -0.00470075,
1530  -0.00454530, -0.00438786, -0.00422805, -0.00406594,
1531  -0.00390204, -0.00373686, -0.00357091, -0.00340448,
1532  -0.00323770, -0.00307066, -0.00290344, -0.00273610,
1533  -0.00256867, -0.00240117, -0.00223365, -0.00206614,
1534  -0.00189866, -0.00173123, -0.00156390, -0.00139674,
1535  -0.00122989, -0.00106351, -0.00089772, -0.00073267,
1536  -0.00056849, -0.00040530, -0.00024324, -0.00008241,
1537  0.00008214, 0.00024102, 0.00039922, 0.00055660,
1538  0.00071299, 0.00086826, 0.00102224, 0.00117480,
1539  0.00132579, 0.00147507, 0.00162252, 0.00176804,
1540  0.00191161, 0.00205319, 0.00219277, 0.00233029,
1541  0.00246567, 0.00259886, 0.00272975, 0.00285832,
1542  0.00298453, 0.00310839, 0.00322990, 0.00334886,
1543  0.00346494, 0.00357778, 0.00368706, 0.00379273,
1544  0.00389501, 0.00399411, 0.00409020, 0.00418350,
1545  0.00427419, 0.00436249, 0.00444858, 0.00453250,
1546  0.00461411, 0.00469328, 0.00476988, 0.00484356,
1547  0.00491375, 0.00497987, 0.00504139, 0.00509806,
1548  0.00514990, 0.00519693, 0.00523920, 0.00527700,
1549  0.00531083, 0.00534122, 0.00536864, 0.00539357,
1550  0.00541649, 0.00543785, 0.00545809, 0.00547713,
1551  0.00549441, 0.00550936, 0.00552146, 0.00553017,
1552  0.00553494, 0.00553524, 0.00553058, 0.00552065,
1553  0.00550536, 0.00548459, 0.00545828, 0.00542662,
1554  0.00539007, 0.00534910, 0.00530415, 0.00525568,
1555  0.00520417, 0.00515009, 0.00509387, 0.00503595,
1556  0.00497674, 0.00491665, 0.00485605, 0.00479503,
1557  0.00473336, 0.00467082, 0.00460721, 0.00454216,
1558  0.00447517, 0.00440575, 0.00433344, 0.00425768,
1559  0.00417786, 0.00409336, 0.00400363, 0.00390837,
1560  0.00380759, 0.00370130, 0.00358952, 0.00347268,
1561  0.00335157, 0.00322699, 0.00309975, 0.00297088,
1562  0.00284164, 0.00271328, 0.00258700, 0.00246328,
1563  0.00234195, 0.00222281, 0.00210562, 0.00198958,
1564  0.00187331, 0.00175546, 0.00163474, 0.00151020,
1565  0.00138130, 0.00124750, 0.00110831, 0.00096411,
1566  0.00081611, 0.00066554, 0.00051363, 0.00036134,
1567  0.00020940, 0.00005853, -0.00009058, -0.00023783,
1568  -0.00038368, -0.00052861, -0.00067310, -0.00081757,
1569  -0.00096237, -0.00110786, -0.00125442, -0.00140210,
1570  -0.00155065, -0.00169984, -0.00184940, -0.00199910,
1571  -0.00214872, -0.00229798, -0.00244664, -0.00259462,
1572  -0.00274205, -0.00288912, -0.00303596, -0.00318259,
1573  -0.00332890, -0.00347480, -0.00362024, -0.00376519,
1574  -0.00390962, -0.00405345, -0.00419658, -0.00433902,
1575  -0.00448085, -0.00462219, -0.00476309, -0.00490357,
1576  -0.00504361, -0.00518321, -0.00532243, -0.00546132,
1577  -0.00559988, -0.00573811, -0.00587602, -0.00601363,
1578  -0.00615094, -0.00628795, -0.00642466, -0.00656111,
1579  -0.00669737, -0.00683352, -0.00696963, -0.00710578,
1580  -0.00724208, -0.00737862, -0.00751554, -0.00765295,
1581  -0.00779098, -0.00792976, -0.00806941, -0.00821006,
1582  -0.00835183, -0.00849485, -0.00863926, -0.00878522,
1583  -0.00893293, -0.00908260, -0.00923444, -0.00938864,
1584  -0.00954537, -0.00970482, -0.00986715, -0.01003173,
1585  -0.01019711, -0.01036164, -0.01052357, -0.01068184,
1586  -0.01083622, -0.01098652, -0.01113252, -0.01127409,
1587  -0.01141114, -0.01154358, -0.01167135, -0.01179439,
1588  -0.01191268, -0.01202619, -0.01213493, -0.01223891,
1589  -0.01233817, -0.01243275, -0.01252272, -0.01260815,
1590  -0.01268915, -0.01276583, -0.01283832, -0.01290685,
1591  -0.01297171, -0.01303320, -0.01309168, -0.01314722,
1592  -0.01319969, -0.01324889, -0.01329466, -0.01333693,
1593  -0.01337577, -0.01341125, -0.01344345, -0.01347243,
1594  -0.01349823, -0.01352089, -0.01354045, -0.01355700,
1595  -0.01357068, -0.01358164, -0.01359003, -0.01359587,
1596  -0.01359901, -0.01359931, -0.01359661, -0.01359087,
1597  -0.01358219, -0.01357065, -0.01355637, -0.01353935,
1598  -0.01351949, -0.01349670, -0.01347088, -0.01344214,
1599  -0.01341078, -0.01337715, -0.01334158, -0.01330442,
1600  -0.01326601, -0.01322671, -0.01318689, -0.01314692,
1601  -0.01310123, -0.01306470, -0.01302556, -0.01298381,
1602  -0.01293948, -0.01289255, -0.01284305, -0.01279095,
1603  -0.01273625, -0.01267893, -0.01261897, -0.01255632,
1604  -0.01249096, -0.01242283, -0.01235190, -0.01227827,
1605  -0.01220213, -0.01212366, -0.01204304, -0.01196032,
1606  -0.01187543, -0.01178829, -0.01169884, -0.01160718,
1607  -0.01151352, -0.01141809, -0.01132111, -0.01122272,
1608  -0.01112304, -0.01102217, -0.01092022, -0.01081730,
1609  -0.01071355, -0.01060912, -0.01050411, -0.01039854,
1610  -0.01029227, -0.01018521, -0.01007727, -0.00996859,
1611  -0.00985959, -0.00975063, -0.00964208, -0.00953420,
1612  -0.00942723, -0.00932135, -0.00921677, -0.00911364,
1613  -0.00901208, -0.00891220, -0.00881412, -0.00871792,
1614  -0.00862369, -0.00853153, -0.00844149, -0.00835360,
1615  -0.00826785, -0.00818422, -0.00810267, -0.00802312,
1616  -0.00794547, -0.00786959, -0.00779533, -0.00772165,
1617  -0.00764673, -0.00756886, -0.00748649, -0.00739905,
1618  -0.00730681, -0.00721006, -0.00710910, -0.00700419,
1619  -0.00689559, -0.00678354, -0.00666829, -0.00655007,
1620  -0.00642916, -0.00630579, -0.00618022, -0.00605267,
1621  -0.00592333, -0.00579240, -0.00566006, -0.00552651,
1622  -0.00539194, -0.00525653, -0.00512047, -0.00498390,
1623  -0.00484693, -0.00470969, -0.00457228, -0.00443482,
1624  -0.00429746, -0.00416034, -0.00402359, -0.00388738,
1625  -0.00375185, -0.00361718, -0.00348350, -0.00335100,
1626  -0.00321991, -0.00309043, -0.00296276, -0.00283698,
1627  -0.00271307, -0.00259098, -0.00247066, -0.00235210,
1628  -0.00223531, -0.00212030, -0.00200709, -0.00189576,
1629  -0.00178647, -0.00167936, -0.00157457, -0.00147216,
1630  -0.00137205, -0.00127418, -0.00117849, -0.00108498,
1631  -0.00099375, -0.00090486, -0.00081840, -0.00073444,
1632  -0.00065309, -0.00057445, -0.00049860, -0.00042551,
1633  -0.00035503, -0.00028700, -0.00022125, -0.00015761,
1634  -0.00009588, -0.00003583, 0.00002272, 0.00007975,
1635  0.00013501, 0.00018828, 0.00023933, 0.00028784,
1636  0.00033342, 0.00037572, 0.00041438, 0.00044939,
1637  0.00048103, 0.00050958, 0.00053533, 0.00055869,
1638  0.00058015, 0.00060022, 0.00061935, 0.00063781,
1639  0.00065568, 0.00067303, 0.00068991, 0.00070619,
1640  0.00072155, 0.00073567, 0.00074826, 0.00075912,
1641  0.00076811, 0.00077509, 0.00077997, 0.00078275,
1642  0.00078351, 0.00078237, 0.00077943, 0.00077484,
1643  0.00076884, 0.00076160, 0.00075335, 0.00074423,
1644  0.00073442, 0.00072404, 0.00071323, 0.00070209,
1645  0.00069068, 0.00067906, 0.00066728, 0.00065534,
1646  0.00064321, 0.00063086, 0.00061824, 0.00060534,
1647  0.00059211, 0.00057855, 0.00056462, 0.00055033,
1648  0.00053566, 0.00052063, 0.00050522, 0.00048949,
1649  0.00047349, 0.00045728, 0.00044092, 0.00042447,
1650  0.00040803, 0.00039166, 0.00037544, 0.00035943,
1651  0.00034371, 0.00032833, 0.00031333, 0.00029874,
1652  0.00028452, 0.00027067, 0.00025715, 0.00024395,
1653  0.00023104, 0.00021842, 0.00020606, 0.00019398,
1654  0.00018218, 0.00017069, 0.00015953, 0.00014871,
1655  0.00013827, 0.00012823, 0.00011861, 0.00010942,
1656  0.00010067, 0.00009236, 0.00008448, 0.00007703,
1657  0.00006999, 0.00006337, 0.00005714, 0.00005129,
1658  0.00004583, 0.00004072, 0.00003597, 0.00003157,
1659  0.00002752, 0.00002380, 0.00002042, 0.00001736,
1660  0.00001461, 0.00001215, 0.00000998, 0.00000807,
1661  0.00000641, 0.00000499, 0.00000378, 0.00000278,
1662  0.00000196, 0.00000132, 0.00000082, 0.00000046,
1663  0.00000020, 0.00000005, -0.00000003, -0.00000006,
1664  -0.00000004, -0.00000001, 0.00000001, 0.00000001,
1665  0.00000001, 0.00000001, -0.00000001, -0.00000004,
1666  -0.00000005, -0.00000003, 0.00000005, 0.00000020,
1667  0.00000043, 0.00000077, 0.00000123, 0.00000183,
1668  0.00000257, 0.00000348, 0.00000455, 0.00000581,
1669  0.00000727, 0.00000893, 0.00001080, 0.00001290,
1670  0.00001522, 0.00001778, 0.00002057, 0.00002362,
1671  0.00002691, 0.00003044, 0.00003422, 0.00003824,
1672  0.00004250, 0.00004701, 0.00005176, 0.00005676,
1673  0.00006200, 0.00006749, 0.00007322, 0.00007920,
1674  0.00008541, 0.00009186, 0.00009854, 0.00010543,
1675  0.00011251, 0.00011975, 0.00012714, 0.00013465,
1676  0.00014227, 0.00014997, 0.00015775, 0.00016558,
1677  0.00017348, 0.00018144, 0.00018947, 0.00019756,
1678  0.00020573, 0.00021399, 0.00022233, 0.00023076,
1679  0.00023924, 0.00024773, 0.00025621, 0.00026462,
1680  0.00027293, 0.00028108, 0.00028904, 0.00029675,
1681  0.00030419, 0.00031132, 0.00031810, 0.00032453,
1682  0.00033061, 0.00033632, 0.00034169, 0.00034672,
1683  0.00035142, 0.00035580, 0.00035988, 0.00036369,
1684  0.00036723, 0.00037053, 0.00037361, 0.00037647,
1685  0.00037909, 0.00038145, 0.00038352, 0.00038527,
1686  0.00038663, 0.00038757, 0.00038801, 0.00038790,
1687  0.00038717, 0.00038572, 0.00038350, 0.00038044,
1688  0.00037651, 0.00037170, 0.00036597, 0.00035936,
1689  0.00035191, 0.00034370, 0.00033480, 0.00032531,
1690  0.00031537, 0.00030512, 0.00029470, 0.00028417,
1691  0.00027354, 0.00026279, 0.00025191, 0.00024081,
1692  0.00022933, 0.00021731, 0.00020458, 0.00019101,
1693  0.00017654, 0.00016106, 0.00014452, 0.00012694,
1694  0.00010848, 0.00008929, 0.00006953, 0.00004935,
1695  0.00002884, 0.00000813, -0.00001268, -0.00003357,
1696  -0.00005457, -0.00007574, -0.00009714, -0.00011882,
1697  -0.00014082, -0.00016318, -0.00018595, -0.00020912,
1698  -0.00023265, -0.00025650, -0.00028060, -0.00030492,
1699  -0.00032941, -0.00035400, -0.00037865, -0.00040333,
1700  -0.00042804, -0.00045279, -0.00047759, -0.00050243,
1701  -0.00052728, -0.00055209, -0.00057685, -0.00060153,
1702  -0.00062611, -0.00065056, -0.00067485, -0.00069895,
1703  -0.00072287, -0.00074660, -0.00077013, -0.00079345,
1704  -0.00081653, -0.00083936, -0.00086192, -0.00088421,
1705  -0.00090619, -0.00092786, -0.00094919, -0.00097017,
1706  -0.00099077, -0.00101098, -0.00103077, -0.00105012,
1707  -0.00106904, -0.00108750, -0.00110549, -0.00112301,
1708  -0.00114005, -0.00115660, -0.00117265, -0.00118821,
1709  -0.00120325, -0.00121779, -0.00123180, -0.00124528,
1710  -0.00125822, -0.00127061, -0.00128243, -0.00129368,
1711  -0.00130435, -0.00131445, -0.00132395, -0.00133285,
1712  -0.00134113, -0.00134878, -0.00135577, -0.00136215,
1713  -0.00136797, -0.00137333, -0.00137834, -0.00138305,
1714  -0.00138748, -0.00139163, -0.00139551, -0.00139913,
1715  -0.00140249, -0.00140559, -0.00140844, -0.00141102,
1716  -0.00141334, -0.00141538, -0.00141714, -0.00141861,
1717  -0.00141978, -0.00142064, -0.00142117, -0.00142138,
1718  -0.00142125, -0.00142077, -0.00141992, -0.00141870,
1719  -0.00141710, -0.00141510, -0.00141268, -0.00140986,
1720  -0.00140663, -0.00140301, -0.00139900, -0.00139460,
1721  -0.00138981, -0.00138464, -0.00137908, -0.00137313,
1722  -0.00136680, -0.00136010, -0.00135301, -0.00134555,
1723  -0.00133772, -0.00132952, -0.00132095, -0.00131201,
1724  -0.00130272, -0.00129307, -0.00128309, -0.00127277,
1725  -0.00126211, -0.00125113, -0.00123981, -0.00122817,
1726  -0.00121622, -0.00120397, -0.00119141, -0.00117859,
1727  -0.00116552, -0.00115223, -0.00113877, -0.00112517,
1728  -0.00111144, -0.00109764, -0.00108377, -0.00106989,
1729 };