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