3 * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4 * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
6 * This file is part of FFmpeg.
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.
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.
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
26 * @author Oded Shimon ( ods15 ods15 dyndns org )
27 * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
30 #include "libavutil/mem.h"
32 #include "aac_tablegen.h"
36 DECLARE_ALIGNED(32, float, ff_aac_kbd_long_1024)[1024];
37 DECLARE_ALIGNED(32, float, ff_aac_kbd_long_512 )[512];
38 DECLARE_ALIGNED(32, float, ff_aac_kbd_short_128)[128];
40 const uint8_t ff_aac_num_swb_1024[] = {
41 41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40, 40
44 const uint8_t ff_aac_num_swb_512[] = {
45 0, 0, 0, 36, 36, 37, 31, 31, 0, 0, 0, 0, 0
48 const uint8_t ff_aac_num_swb_128[] = {
49 12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15
52 const uint8_t ff_aac_pred_sfb_max[] = {
53 33, 33, 38, 40, 40, 40, 41, 41, 37, 37, 37, 34, 34
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,
75 const uint8_t ff_aac_scalefactor_bits[121] = {
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
400 const uint16_t * const ff_aac_spectral_codes[11] = {
401 codes1, codes2, codes3, codes4, codes5, codes6, codes7, codes8,
402 codes9, codes10, codes11,
405 const uint8_t * const ff_aac_spectral_bits[11] = {
406 bits1, bits2, bits3, bits4, bits5, bits6, bits7, bits8,
407 bits9, bits10, bits11,
410 const uint16_t ff_aac_spectral_sizes[11] = {
411 81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
415 * 64.0f is a special value indicating the existence of an escape code in the
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,
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,
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,
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,
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,
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,
901 const float * const ff_aac_codebook_vectors[] = {
902 codebook_vector0, codebook_vector0, codebook_vector2,
903 codebook_vector2, codebook_vector4, codebook_vector4,
904 codebook_vector6, codebook_vector6, codebook_vector8,
905 codebook_vector8, codebook_vector10,
908 static const float codebook_vector0_vals[] = {
909 -1.0000000, 0.0000000, 1.0000000
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
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,
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,
938 * bits 0:3, 4:7 index into _vals array
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,
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
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,
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
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,
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,
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
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,
1057 const float *const ff_aac_codebook_vector_vals[] = {
1058 codebook_vector0_vals, codebook_vector0_vals,
1059 codebook_vector10_vals, codebook_vector10_vals,
1060 codebook_vector4_vals, codebook_vector4_vals,
1061 codebook_vector10_vals, codebook_vector10_vals,
1062 codebook_vector10_vals, codebook_vector10_vals,
1063 codebook_vector10_vals,
1066 const uint16_t *const ff_aac_codebook_vector_idx[] = {
1067 codebook_vector02_idx, codebook_vector02_idx,
1068 codebook_vector02_idx, codebook_vector02_idx,
1069 codebook_vector4_idx, codebook_vector4_idx,
1070 codebook_vector6_idx, codebook_vector6_idx,
1071 codebook_vector8_idx, codebook_vector8_idx,
1072 codebook_vector10_idx,
1075 /* @name swb_offsets
1076 * Sample offset into the window indicating the beginning of a scalefactor
1079 * scalefactor window band - term for scalefactor bands within a window,
1080 * given in Table 4.110 to Table 4.128.
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
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,
1099 static const uint16_t swb_offset_128_96[] = {
1100 0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128
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
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,
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
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
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,
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
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
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,
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
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,
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
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,
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
1202 const uint16_t * const ff_swb_offset_1024[] = {
1203 swb_offset_1024_96, swb_offset_1024_96, swb_offset_1024_64,
1204 swb_offset_1024_48, swb_offset_1024_48, swb_offset_1024_32,
1205 swb_offset_1024_24, swb_offset_1024_24, swb_offset_1024_16,
1206 swb_offset_1024_16, swb_offset_1024_16, swb_offset_1024_8,
1210 const uint16_t * const ff_swb_offset_512[] = {
1212 swb_offset_512_48, swb_offset_512_48, swb_offset_512_32,
1213 swb_offset_512_24, swb_offset_512_24, NULL,
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. */
1221 swb_offset_128_96, swb_offset_128_96, swb_offset_128_96,
1222 swb_offset_128_48, swb_offset_128_48, swb_offset_128_48,
1223 swb_offset_128_24, swb_offset_128_24, swb_offset_128_16,
1224 swb_offset_128_16, swb_offset_128_16, swb_offset_128_8,
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.
1236 const uint8_t ff_tns_max_bands_1024[] = {
1237 31, 31, 34, 40, 42, 51, 46, 46, 42, 42, 42, 39, 39
1240 const uint8_t ff_tns_max_bands_128[] = {
1241 9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
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,