-
Notifications
You must be signed in to change notification settings - Fork 17
/
tables.h
569 lines (557 loc) · 34.4 KB
/
tables.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
/*
* Author: Floris Creyf
* Date: May 2015
* Tables for Huffman decoding, inverse quantization, the synthetic filter bank, etc.
*/
#ifndef TABLES_H
#define TABLES_H
static const struct {
const unsigned long_32[22] {
4, 4, 4, 4, 4, 4, 6, 6, 8, 10, 12, 16, 20, 24, 30, 38, 46, 56, 68, 84, 102
};
const unsigned short_32[13] {
4, 4, 4, 4, 6, 8, 12, 16, 20, 26, 34, 42
};
const unsigned long_44[22] {
4, 4, 4, 4, 4, 4, 6, 6, 8, 8, 10, 12, 16, 20, 24, 28, 34, 42, 50, 54, 76
};
const unsigned short_44[13] {
4, 4, 4, 4, 6, 8, 10, 12, 14, 18, 22, 30
};
const unsigned long_48[22] {
4, 4, 4, 4, 4, 4, 6, 6, 6, 8, 10, 12, 16, 18, 22, 28, 34, 40, 46, 54, 54
};
const unsigned short_48[22] {
4, 4, 4, 4, 6, 6, 10, 12, 14, 16, 20, 26
};
} band_width_table;
static const struct {
const unsigned long_32[23] {
0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82,
102, 126, 156, 194, 240, 296, 364, 448, 550, 576
};
const unsigned short_32[14] {
0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192
};
const unsigned long_44[23] {
0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74,
90, 110, 134, 162, 196, 238, 288, 342, 418, 576
};
const unsigned short_44[14] {
0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192
};
const unsigned long_48[23] {
0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72,
88, 106, 128, 156, 190, 230, 276, 330, 384, 576
};
const unsigned short_48[14] {
0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192
};
} band_index_table;
static const char slen[16][2] {
{0, 0}, {0, 1}, {0, 2}, {0, 3}, {3, 0}, {1, 1}, {1, 2}, {1, 3},
{2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}, {4, 2}, {4, 3}
};
static const char pretab[21] {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 2
};
static const struct {
const unsigned char value[16][4] {
{0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 1, 0}, {0, 0, 1, 1}, {0, 1, 0, 0}, {0, 1, 0, 1},
{0, 1, 1, 0}, {0, 1, 1, 1}, {1, 0, 0, 0}, {1, 0, 0, 1}, {1, 0, 1, 0}, {1, 0, 1, 1},
{1, 1, 0, 0}, {1, 1, 0, 1}, {1, 1, 1, 0}, {1, 1, 1, 1}
};
const unsigned char hlen[16] {1, 4, 4, 5, 4, 6, 5, 6, 4, 5, 5, 6, 5, 6, 6, 6};
const unsigned hcod[16] {
0x80000000, 0x50000000, 0x40000000, 0x28000000, 0x60000000, 0x14000000, 0x20000000, 0x10000000,
0x70000000, 0x18000000, 0x30000000, 0x0, 0x38000000, 0x8000000, 0xc000000, 0x4000000
};
} quad_table_1;
/* The Huffman values are stored within INT types and are shifted towards the most
significant bit. */
const unsigned hft_0[1][1][2] {
{{0x0, 1}}
};
const unsigned hft_1[2][2][2] {
{{0x80000000, 1}, {0x20000000, 3}}, {{0x40000000, 2}, {0x0, 3}}
};
const unsigned hft_2[3][3][2] {
{{0x80000000, 1}, {0x40000000, 3}, {0x4000000, 6}}, {{0x60000000, 3},
{0x20000000, 3}, {0x8000000, 5}}, {{0x18000000, 5}, {0x10000000, 5},
{0x0, 6}}
};
const unsigned hft_3[3][3][2] {
{{0xc0000000, 2}, {0x80000000, 2}, {0x4000000, 6}}, {{0x20000000, 3},
{0x40000000, 2}, {0x8000000, 5}}, {{0x18000000, 5}, {0x10000000, 5},
{0x0, 6}}
};
const unsigned hft_5[4][4][2] {
{{0x80000000, 1}, {0x40000000, 3}, {0x18000000, 6}, {0xa000000, 7}},
{{0x60000000, 3}, {0x20000000, 3}, {0x10000000, 6}, {0x8000000, 7}},
{{0x1c000000, 6}, {0x14000000, 6}, {0xe000000, 7}, {0x1000000, 8}},
{{0xc000000, 7}, {0x4000000, 6}, {0x2000000, 7}, {0x0, 8}}
};
const unsigned hft_6[4][4][2] {
{{0xe0000000, 3}, {0x60000000, 3}, {0x28000000, 5}, {0x2000000, 7}},
{{0xc0000000, 3}, {0x80000000, 2}, {0x30000000, 4}, {0x10000000, 5}},
{{0x50000000, 4}, {0x40000000, 4}, {0x20000000, 5}, {0x4000000, 6}},
{{0xc000000, 6}, {0x18000000, 5}, {0x8000000, 6}, {0x0, 7}}
};
const unsigned hft_7[6][6][2] {
{{0x80000000, 1}, {0x40000000, 3}, {0x28000000, 6}, {0x13000000, 8},
{0x10000000, 8}, {0x5000000, 9}}, {{0x60000000, 3}, {0x30000000, 4},
{0x1c000000, 6}, {0x14000000, 7}, {0xa000000, 7}, {0x3000000, 8}},
{{0x2c000000, 6}, {0x20000000, 5}, {0x1a000000, 7}, {0x11000000, 8},
{0x8000000, 8}, {0x2000000, 9}}, {{0x18000000, 7}, {0x16000000, 7},
{0x12000000, 8}, {0x7800000, 9}, {0x5800000, 9}, {0x1000000, 9}},
{{0xe000000, 7}, {0xc000000, 7}, {0x9000000, 8}, {0x7000000, 9},
{0x1800000, 9}, {0x400000, 10}}, {{0x6000000, 8}, {0x4000000, 8},
{0x2800000, 9}, {0xc00000, 10}, {0x800000, 10}, {0x0, 10}}
};
const unsigned hft_8[6][6][2] {
{{0xc0000000, 2}, {0x80000000, 3}, {0x18000000, 6}, {0x12000000, 8},
{0xc000000, 8}, {0x2800000, 9}}, {{0xa0000000, 3}, {0x40000000, 2},
{0x20000000, 4}, {0x10000000, 8}, {0x9000000, 8}, {0x3000000, 8}},
{{0x1c000000, 6}, {0x30000000, 4}, {0x14000000, 6}, {0xe000000, 8},
{0x7000000, 8}, {0x1800000, 9}}, {{0x13000000, 8}, {0x11000000, 8},
{0xf000000, 8}, {0x6800000, 9}, {0x5000000, 9}, {0x1000000, 10}},
{{0xd000000, 8}, {0xa000000, 7}, {0x8000000, 8}, {0x5800000, 9},
{0x1400000, 10}, {0x400000, 10}}, {{0x6000000, 9}, {0x4000000, 8},
{0x2000000, 9}, {0x800000, 9}, {0x200000, 11}, {0x0, 11}}
};
const unsigned hft_9[6][6][2] {
{{0xe0000000, 3}, {0xa0000000, 3}, {0x48000000, 5}, {0x38000000, 6},
{0xf000000, 8}, {0x3800000, 9}}, {{0xc0000000, 3}, {0x80000000, 3},
{0x50000000, 4}, {0x28000000, 5}, {0x18000000, 6}, {0x7000000, 8}},
{{0x70000000, 4}, {0x60000000, 4}, {0x40000000, 5}, {0x20000000, 6},
{0x10000000, 7}, {0x5000000, 8}}, {{0x3c000000, 6}, {0x30000000, 5},
{0x24000000, 6}, {0x14000000, 7}, {0xa000000, 7}, {0x1000000, 8}},
{{0x16000000, 7}, {0x1c000000, 6}, {0x12000000, 7}, {0xc000000, 7},
{0x4000000, 8}, {0x800000, 9}}, {{0xe000000, 8}, {0x8000000, 7},
{0x6000000, 8}, {0x2000000, 8}, {0x3000000, 9}, {0x0, 9}}
};
const unsigned hft_10[8][8][2] {
{{0x80000000, 1}, {0x40000000, 3}, {0x28000000, 6}, {0x17000000, 8},
{0x11800000, 9}, {0xf000000, 9}, {0x6000000, 9}, {0x4400000, 10}},
{{0x60000000, 3}, {0x30000000, 4}, {0x20000000, 6}, {0x18000000, 7},
{0x12000000, 8}, {0xa800000, 9}, {0xc000000, 8}, {0x7000000, 8}},
{{0x2c000000, 6}, {0x24000000, 6}, {0x1e000000, 7}, {0x15000000, 8},
{0x10000000, 9}, {0xa000000, 10}, {0x9800000, 9}, {0x3000000, 9}},
{{0x1c000000, 7}, {0x1a000000, 7}, {0x16000000, 8}, {0x11000000, 9},
{0xb800000, 10}, {0x5c00000, 10}, {0x9000000, 9}, {0x1c00000, 10}},
{{0x14000000, 8}, {0x13000000, 8}, {0x10800000, 9}, {0xbc00000, 10},
{0x6c00000, 10}, {0x5800000, 10}, {0x2400000, 10}, {0xc00000, 10}},
{{0xf800000, 9}, {0xb000000, 9}, {0xa400000, 10}, {0x6800000, 10},
{0x2a00000, 11}, {0x2800000, 11}, {0x1400000, 10}, {0x600000, 11}},
{{0xe000000, 8}, {0xd000000, 8}, {0x5000000, 9}, {0x2c00000, 10},
{0x4000000, 10}, {0x1800000, 10}, {0xa00000, 11}, {0x200000, 11}},
{{0x4800000, 9}, {0x8000000, 8}, {0x3800000, 9}, {0x2000000, 10},
{0x1000000, 10}, {0x800000, 11}, {0x400000, 11}, {0x0, 11}}
};
const unsigned hft_11[8][8][2] {
{{0xc0000000, 2}, {0x80000000, 3}, {0x50000000, 5}, {0x30000000, 7},
{0x22000000, 8}, {0x10800000, 9}, {0x15000000, 8}, {0x7800000, 9}},
{{0xa0000000, 3}, {0x60000000, 3}, {0x40000000, 4}, {0x28000000, 6},
{0x20000000, 8}, {0x11000000, 8}, {0x16000000, 7}, {0xa000000, 8}},
{{0x58000000, 5}, {0x38000000, 5}, {0x34000000, 6}, {0x24000000, 7},
{0x1e000000, 8}, {0xf800000, 9}, {0x14000000, 8}, {0x5000000, 8}},
{{0x32000000, 7}, {0x2c000000, 6}, {0x26000000, 7}, {0x1d800000, 9},
{0x1b000000, 8}, {0x4800000, 10}, {0xc000000, 8}, {0x2800000, 9}},
{{0x23000000, 8}, {0x21000000, 8}, {0x1f000000, 8}, {0x1d000000, 9},
{0xf000000, 9}, {0x4000000, 10}, {0x3800000, 9}, {0x1400000, 10}},
{{0x1c000000, 8}, {0x1a000000, 8}, {0x10000000, 9}, {0x4c00000, 10},
{0x4400000, 10}, {0x1e00000, 11}, {0x2000000, 10}, {0x1c00000, 11}},
{{0xe000000, 8}, {0x18000000, 7}, {0x12000000, 7}, {0xd000000, 8},
{0x7000000, 9}, {0x2400000, 10}, {0x1000000, 10}, {0x400000, 10}},
{{0xb000000, 8}, {0x8000000, 7}, {0x6000000, 8}, {0x3000000, 9},
{0x1800000, 10}, {0xc00000, 10}, {0x800000, 10}, {0x0, 10}}
};
const unsigned hft_12[8][8][2] {
{{0x90000000, 4}, {0xc0000000, 3}, {0x80000000, 5}, {0x42000000, 7},
{0x29000000, 8}, {0x13800000, 9}, {0x13000000, 9}, {0xd000000, 9}},
{{0xe0000000, 3}, {0xa0000000, 3}, {0x60000000, 4}, {0x48000000, 5},
{0x2e000000, 7}, {0x20000000, 7}, {0x1a000000, 8}, {0xb000000, 8}},
{{0x88000000, 5}, {0x70000000, 4}, {0x58000000, 5}, {0x38000000, 6},
{0x2a000000, 7}, {0x1e000000, 8}, {0x14000000, 7}, {0x7000000, 8}},
{{0x44000000, 6}, {0x50000000, 5}, {0x3c000000, 6}, {0x30000000, 6},
{0x24000000, 7}, {0x1c000000, 8}, {0xe000000, 8}, {0x5000000, 8}},
{{0x40000000, 7}, {0x34000000, 6}, {0x2c000000, 7}, {0x26000000, 7},
{0x12000000, 8}, {0x10000000, 8}, {0x9000000, 8}, {0x2800000, 9}},
{{0x28000000, 8}, {0x22000000, 7}, {0x1f000000, 8}, {0x1d000000, 8},
{0x11000000, 8}, {0x6800000, 9}, {0x4000000, 8}, {0x1000000, 9}},
{{0x1b000000, 8}, {0x18000000, 7}, {0x16000000, 7}, {0xf000000, 8},
{0xa000000, 8}, {0x3800000, 9}, {0x2000000, 9}, {0x400000, 10}},
{{0xd800000, 9}, {0xc000000, 8}, {0x8000000, 8}, {0x6000000, 9},
{0x3000000, 9}, {0x1800000, 9}, {0x800000, 9}, {0x0, 10}}
};
const unsigned hft_13[16][16][2] {
{{0x80000000, 1}, {0x50000000, 4}, {0x38000000, 6}, {0x2a000000, 7},
{0x22000000, 8}, {0x19800000, 9}, {0x17000000, 9}, {0x11c00000, 10},
{0x15000000, 9}, {0xd000000, 10}, {0x8800000, 11}, {0x6800000, 11},
{0x4300000, 12}, {0x2c00000, 12}, {0x1580000, 13}, {0x980000, 13}},
{{0x60000000, 3}, {0x40000000, 4}, {0x30000000, 6}, {0x26000000, 7},
{0x1f000000, 8}, {0x1a000000, 8}, {0x16000000, 9}, {0x10800000, 9},
{0xf800000, 9}, {0xc000000, 9}, {0x8000000, 10}, {0x6000000, 10},
{0x3e00000, 11}, {0x2300000, 12}, {0x1600000, 12}, {0xe00000, 12}},
{{0x3c000000, 6}, {0x34000000, 6}, {0x2e000000, 7}, {0x24000000, 8},
{0x1d800000, 9}, {0x18800000, 9}, {0x13400000, 10}, {0x10400000, 10},
{0xe800000, 9}, {0xa000000, 10}, {0x7800000, 10}, {0x5000000, 11},
{0x3600000, 11}, {0x2100000, 12}, {0x1500000, 13}, {0x800000, 13}},
{{0x2c000000, 7}, {0x28000000, 7}, {0x25000000, 8}, {0x1e800000, 9},
{0x1c000000, 9}, {0x13c00000, 10}, {0x12400000, 10}, {0x10000000, 10},
{0xac00000, 10}, {0x9800000, 11}, {0x7000000, 11}, {0x4a00000, 11},
{0x3400000, 11}, {0x1f00000, 12}, {0xc80000, 13}, {0x700000, 13}},
{{0x23000000, 8}, {0x20000000, 7}, {0x1e000000, 9}, {0x1c800000, 9},
{0x18400000, 10}, {0x12c00000, 10}, {0xe400000, 11}, {0xb600000, 11},
{0xd800000, 10}, {0x9200000, 11}, {0x6e00000, 11}, {0x2900000, 12},
{0x3000000, 12}, {0x1a80000, 13}, {0xb80000, 13}, {0x600000, 14}},
{{0x1d000000, 9}, {0x1b000000, 8}, {0x19000000, 9}, {0x18000000, 10},
{0x13000000, 10}, {0x11800000, 10}, {0xba00000, 11}, {0xa800000, 11},
{0x9a00000, 11}, {0x7400000, 11}, {0x4f00000, 12}, {0x3a00000, 11},
{0x2500000, 13}, {0x1880000, 13}, {0xa40000, 14}, {0x440000, 14}},
{{0x17800000, 9}, {0x16800000, 9}, {0x13800000, 10}, {0x12800000, 10},
{0xe600000, 11}, {0xbc00000, 11}, {0xb400000, 11}, {0x9e00000, 11},
{0x8a00000, 11}, {0x5300000, 12}, {0x4700000, 12}, {0x3200000, 12},
{0x1d80000, 13}, {0x1300000, 13}, {0x900000, 14}, {0x3c0000, 14}},
{{0x12000000, 10}, {0x11000000, 9}, {0xe000000, 10}, {0xbe00000, 11},
{0xb800000, 11}, {0xaa00000, 11}, {0x5b00000, 12}, {0x5a00000, 12},
{0x5600000, 12}, {0x4900000, 12}, {0x2680000, 13}, {0x2080000, 13},
{0x1980000, 13}, {0xb00000, 14}, {0x2b0000, 16}, {0x2a0000, 16}},
{{0x15800000, 9}, {0x14000000, 8}, {0xf000000, 9}, {0xb000000, 10},
{0xdc00000, 10}, {0x9c00000, 11}, {0x9000000, 11}, {0x5700000, 12},
{0x4e00000, 12}, {0x3d00000, 12}, {0x2e00000, 12}, {0x1b00000, 13},
{0x1280000, 13}, {0x780000, 14}, {0x280000, 15}, {0x200000, 15}},
{{0xd400000, 10}, {0xc800000, 9}, {0xa400000, 10}, {0x9400000, 10},
{0x5800000, 11}, {0x7600000, 11}, {0x6c00000, 11}, {0x2880000, 13},
{0x4200000, 12}, {0x2600000, 13}, {0x1c80000, 13}, {0xd80000, 14},
{0x940000, 14}, {0x480000, 14}, {0x270000, 16}, {0x160000, 15}},
{{0x8c00000, 10}, {0x8400000, 10}, {0x7c00000, 10}, {0x7200000, 11},
{0x5400000, 11}, {0x5200000, 12}, {0x4800000, 12}, {0x2800000, 13},
{0x2f00000, 12}, {0x1d00000, 13}, {0xdc0000, 14}, {0xa80000, 13},
{0x580000, 14}, {0x340000, 15}, {0x260000, 16}, {0xb0000, 17}},
{{0x6a00000, 11}, {0x6400000, 10}, {0x5c00000, 10}, {0x4c00000, 11},
{0x4600000, 12}, {0x3c00000, 12}, {0x3300000, 12}, {0x2400000, 12},
{0x1b80000, 13}, {0xd00000, 13}, {0x1100000, 13}, {0x5c0000, 14},
{0x360000, 15}, {0x1c0000, 15}, {0x120000, 15}, {0x70000, 16}},
{{0x4400000, 11}, {0x4000000, 11}, {0x3800000, 11}, {0x2700000, 12},
{0x3100000, 12}, {0x2580000, 13}, {0x1e00000, 12}, {0x1a00000, 13},
{0xc00000, 14}, {0xa00000, 14}, {0x680000, 15}, {0x380000, 15},
{0x240000, 15}, {0x110000, 16}, {0x90000, 16}, {0x50000, 16}},
{{0x2d00000, 12}, {0x2a00000, 11}, {0x2200000, 12}, {0x2000000, 13},
{0x1c00000, 13}, {0x1900000, 13}, {0xc40000, 14}, {0xb40000, 14},
{0x7c0000, 14}, {0x4c0000, 14}, {0x300000, 14}, {0x1e0000, 15},
{0xa0000, 16}, {0xe0000, 15}, {0x60000, 16}, {0x30000, 16}},
{{0x1800000, 13}, {0x1700000, 12}, {0x1400000, 12}, {0x1380000, 13},
{0x1200000, 13}, {0x1180000, 13}, {0x6a0000, 15}, {0x540000, 14},
{0x400000, 14}, {0xb8000, 17}, {0x1a0000, 15}, {0x140000, 15},
{0xc0000, 15}, {0x8000, 17}, {0x40000, 16}, {0x20000, 16}},
{{0x1000000, 12}, {0xf00000, 12}, {0x880000, 13}, {0x6c0000, 14},
{0x640000, 14}, {0x500000, 14}, {0x3a0000, 15}, {0x2c0000, 14},
{0x220000, 15}, {0x180000, 15}, {0x100000, 16}, {0x80000, 16},
{0x2000, 19}, {0x4000, 18}, {0x0, 19}, {0x10000, 16}}
};
const unsigned hft_15[16][16][2] {
{{0xe0000000, 3}, {0xc0000000, 4}, {0x90000000, 5}, {0x6a000000, 7},
{0x5e000000, 7}, {0x4c000000, 8}, {0x3e000000, 9}, {0x36000000, 9},
{0x2c800000, 9}, {0x1ec00000, 10}, {0x1b000000, 10}, {0xee00000, 11},
{0xd600000, 11}, {0xa200000, 11}, {0x7a00000, 12}, {0x1f80000, 13}},
{{0xd0000000, 4}, {0xa0000000, 3}, {0x80000000, 5}, {0x6c000000, 6},
{0x5c000000, 7}, {0x48000000, 7}, {0x3d000000, 8}, {0x33000000, 8},
{0x2a000000, 8}, {0x23000000, 9}, {0x1a000000, 9}, {0x14c00000, 10},
{0x10400000, 10}, {0xa400000, 10}, {0x7600000, 11}, {0x4800000, 11}},
{{0x98000000, 5}, {0x88000000, 5}, {0x78000000, 5}, {0x60000000, 6},
{0x52000000, 7}, {0x44000000, 7}, {0x3b000000, 8}, {0x30000000, 8},
{0x28000000, 8}, {0x20000000, 9}, {0x19000000, 9}, {0x13800000, 10},
{0xf800000, 10}, {0xa000000, 11}, {0x7000000, 11}, {0x4200000, 11}},
{{0x74000000, 6}, {0x70000000, 6}, {0x64000000, 6}, {0x56000000, 7},
{0x4e000000, 7}, {0x3f000000, 8}, {0x37000000, 8}, {0x2e800000, 9},
{0x26000000, 9}, {0x1d800000, 9}, {0x17400000, 10}, {0x12000000, 10},
{0xd800000, 10}, {0x9600000, 11}, {0x6400000, 11}, {0x3a00000, 11}},
{{0x68000000, 7}, {0x58000000, 6}, {0x54000000, 7}, {0x50000000, 7},
{0x43000000, 8}, {0x39000000, 8}, {0x2f800000, 9}, {0x27800000, 9},
{0x24000000, 9}, {0x1c800000, 9}, {0x16400000, 10}, {0x11400000, 10},
{0xc400000, 10}, {0x8400000, 11}, {0x5c00000, 11}, {0x3600000, 11}},
{{0x4d000000, 8}, {0x4a000000, 7}, {0x46000000, 7}, {0x42000000, 8},
{0x3a000000, 8}, {0x34000000, 8}, {0x2d800000, 9}, {0x25000000, 9},
{0x1f000000, 9}, {0x18000000, 9}, {0x13c00000, 10}, {0xfc00000, 10},
{0xb400000, 11}, {0x7c00000, 11}, {0x5000000, 11}, {0x2600000, 12}},
{{0x3e800000, 9}, {0x40000000, 7}, {0x3c000000, 8}, {0x38000000, 8},
{0x32000000, 8}, {0x2e000000, 9}, {0x27000000, 9}, {0x20800000, 9},
{0x1b800000, 9}, {0x15c00000, 10}, {0x11c00000, 10}, {0xcc00000, 10},
{0x9200000, 11}, {0x6600000, 11}, {0x4600000, 12}, {0x1e00000, 12}},
{{0x36800000, 9}, {0x35000000, 8}, {0x31000000, 8}, {0x2f000000, 9},
{0x2c000000, 9}, {0x25800000, 9}, {0x21000000, 9}, {0x1e800000, 10},
{0x16c00000, 10}, {0x12400000, 10}, {0xe000000, 10}, {0xa800000, 10},
{0x8000000, 11}, {0x5800000, 11}, {0x2a00000, 11}, {0x1900000, 12}},
{{0x2d000000, 9}, {0x2b000000, 8}, {0x29000000, 8}, {0x26800000, 9},
{0x24800000, 9}, {0x1f800000, 9}, {0x1c000000, 9}, {0x17000000, 10},
{0x13400000, 10}, {0x10800000, 10}, {0xbc00000, 10}, {0x8600000, 11},
{0x6000000, 11}, {0x3500000, 12}, {0x2400000, 12}, {0x1400000, 12}},
{{0x23800000, 9}, {0x22000000, 8}, {0x21800000, 9}, {0x1e000000, 9},
{0x1d000000, 9}, {0x18800000, 9}, {0x16000000, 10}, {0x13000000, 10},
{0x10c00000, 10}, {0xd400000, 11}, {0x8e00000, 11}, {0x6c00000, 11},
{0x4c00000, 11}, {0x2700000, 12}, {0x1700000, 12}, {0xf00000, 12}},
{{0x1b400000, 10}, {0x1a800000, 9}, {0x19800000, 9}, {0x17800000, 9},
{0x16800000, 10}, {0x14800000, 10}, {0xe800000, 10}, {0xe400000, 10},
{0xc000000, 10}, {0x9000000, 11}, {0x7200000, 11}, {0x5200000, 11},
{0x2e00000, 11}, {0x1b00000, 12}, {0x1f00000, 13}, {0x900000, 12}},
{{0x15800000, 10}, {0x15000000, 9}, {0x14000000, 9}, {0x12800000, 9},
{0x11800000, 10}, {0x10000000, 10}, {0xd000000, 10}, {0xac00000, 10},
{0x8c00000, 11}, {0x6e00000, 11}, {0x5400000, 11}, {0x3200000, 11},
{0x1d00000, 12}, {0x1200000, 12}, {0xb00000, 12}, {0x580000, 13}},
{{0xec00000, 11}, {0x11000000, 10}, {0xf000000, 9}, {0xdc00000, 10},
{0xc800000, 10}, {0xb800000, 10}, {0x9400000, 11}, {0x8200000, 11},
{0x6200000, 11}, {0x4e00000, 11}, {0x3000000, 11}, {0x2000000, 11},
{0x1600000, 12}, {0xd00000, 12}, {0x700000, 13}, {0x380000, 13}},
{{0xb600000, 11}, {0xb000000, 10}, {0x9c00000, 10}, {0x9800000, 10},
{0x8800000, 10}, {0x7e00000, 11}, {0x6800000, 11}, {0x5a00000, 11},
{0x3e00000, 11}, {0x3400000, 12}, {0x1c00000, 12}, {0x1300000, 12},
{0xe00000, 12}, {0x800000, 12}, {0x480000, 13}, {0x180000, 13}},
{{0x7b00000, 12}, {0x7800000, 11}, {0x7400000, 11}, {0x6a00000, 11},
{0x5e00000, 11}, {0x5600000, 11}, {0x4000000, 11}, {0x2c00000, 11},
{0x2500000, 12}, {0x1800000, 12}, {0x1100000, 12}, {0xc00000, 12},
{0x780000, 13}, {0x500000, 13}, {0x200000, 12}, {0x80000, 13}},
{{0x4700000, 12}, {0x4a00000, 11}, {0x4400000, 11}, {0x3c00000, 11},
{0x3800000, 11}, {0x2800000, 11}, {0x2200000, 11}, {0x1a00000, 12},
{0x1500000, 12}, {0x1000000, 12}, {0xa00000, 12}, {0x600000, 12},
{0x400000, 13}, {0x300000, 13}, {0x100000, 13}, {0x0, 13}}
};
const unsigned hft_16[16][16][2] {
{{0x80000000, 1}, {0x50000000, 4}, {0x38000000, 6}, {0x2c000000, 8},
{0x25000000, 9}, {0x1f800000, 9}, {0x1b800000, 10}, {0x17400000, 10},
{0x15800000, 11}, {0x12a00000, 11}, {0x11400000, 11}, {0xf200000, 12},
{0xe100000, 12}, {0xc300000, 12}, {0xbc00000, 13}, {0x8800000, 9}},
{{0x60000000, 3}, {0x40000000, 4}, {0x30000000, 6}, {0x28000000, 7},
{0x23000000, 8}, {0x1f000000, 9}, {0x1a800000, 9}, {0x17800000, 9},
{0x14c00000, 10}, {0x12c00000, 10}, {0x11000000, 10}, {0xee00000, 11},
{0xc900000, 12}, {0xd600000, 11}, {0xcf00000, 12}, {0x9000000, 8}},
{{0x3c000000, 6}, {0x34000000, 6}, {0x2e000000, 7}, {0x26000000, 8},
{0x21800000, 9}, {0x1d000000, 9}, {0x19c00000, 10}, {0x16800000, 10},
{0x14200000, 11}, {0x12000000, 10}, {0xfe00000, 11}, {0xea00000, 11},
{0xdc00000, 11}, {0xd100000, 12}, {0xce00000, 12}, {0x8000000, 9}},
{{0x2d000000, 8}, {0x2a000000, 7}, {0x27000000, 8}, {0x22800000, 9},
{0x20000000, 9}, {0x1c800000, 10}, {0x18c00000, 10}, {0x15c00000, 10},
{0x13c00000, 11}, {0x11800000, 11}, {0xfc00000, 12}, {0xd400000, 12},
{0xc700000, 12}, {0xc180000, 13}, {0xb680000, 13}, {0x6800000, 10}},
{{0x25800000, 9}, {0x24000000, 8}, {0x22000000, 9}, {0x20800000, 9},
{0x1cc00000, 10}, {0x19400000, 10}, {0x16600000, 11}, {0x14800000, 11},
{0x13600000, 11}, {0x10800000, 12}, {0xf600000, 12}, {0xe200000, 12},
{0xc580000, 13}, {0xbf00000, 13}, {0xb500000, 13}, {0x4800000, 9}},
{{0x21000000, 9}, {0x1e000000, 8}, {0x1d800000, 9}, {0x1c000000, 9},
{0x19800000, 10}, {0x17200000, 11}, {0x15a00000, 11}, {0x10900000, 12},
{0x11c00000, 11}, {0xfd00000, 12}, {0xe800000, 12}, {0xc800000, 13},
{0xc200000, 13}, {0xbd00000, 13}, {0x6f40000, 14}, {0x4000000, 10}},
{{0x1bc00000, 10}, {0x1b000000, 9}, {0x1a000000, 9}, {0x19000000, 10},
{0x17000000, 11}, {0x16400000, 11}, {0x14000000, 11}, {0x10a00000, 11},
{0x10100000, 12}, {0xf400000, 12}, {0xe400000, 12}, {0xd900000, 12},
{0xc080000, 13}, {0xb700000, 13}, {0xb2c0000, 14}, {0x2800000, 10}},
{{0x18800000, 10}, {0x18000000, 9}, {0x16c00000, 10}, {0x16000000, 10},
{0x14a00000, 11}, {0x13a00000, 11}, {0x12800000, 11}, {0x10500000, 12},
{0xf800000, 12}, {0xcb80000, 13}, {0xc680000, 13}, {0xba00000, 13},
{0xbe00000, 13}, {0x6f20000, 15}, {0x6e80000, 15}, {0x2000000, 10}},
{{0x15400000, 10}, {0x15000000, 10}, {0x14400000, 10}, {0x13e00000, 11},
{0x13800000, 11}, {0x11e00000, 11}, {0x10400000, 12}, {0xf900000, 12},
{0xd580000, 13}, {0xc880000, 13}, {0xc400000, 13}, {0xbf80000, 13},
{0xb5c0000, 14}, {0xb240000, 14}, {0xb100000, 14}, {0x1c00000, 10}},
{{0x13400000, 11}, {0x13000000, 10}, {0x12400000, 10}, {0x11a00000, 11},
{0x10600000, 11}, {0x10000000, 12}, {0xf500000, 12}, {0xd500000, 13},
{0xcb00000, 13}, {0xc500000, 13}, {0xc000000, 13}, {0xb7c0000, 14},
{0xb380000, 13}, {0xb180000, 14}, {0xb000000, 13}, {0x1600000, 11}},
{{0x11600000, 11}, {0x10200000, 11}, {0x10c00000, 10}, {0xfa00000, 11},
{0xf700000, 12}, {0xe900000, 12}, {0xe500000, 12}, {0xdb00000, 12},
{0xc480000, 13}, {0xb9c0000, 14}, {0xb840000, 14}, {0xb400000, 14},
{0x6ea0000, 15}, {0x6e40000, 15}, {0x6dc0000, 14}, {0x1000000, 10}},
{{0xf300000, 12}, {0xf000000, 11}, {0xec00000, 11}, {0xe600000, 11},
{0xe300000, 12}, {0xdf00000, 12}, {0xc600000, 13}, {0xba80000, 14},
{0xb980000, 14}, {0xb800000, 14}, {0xb440000, 14}, {0xb200000, 14},
{0xb080000, 14}, {0x6f80000, 13}, {0x6d00000, 14}, {0xc00000, 11}},
{{0xca00000, 12}, {0xe000000, 12}, {0xde00000, 12}, {0xda00000, 12},
{0xd800000, 12}, {0xc280000, 13}, {0xc100000, 13}, {0xbe80000, 13},
{0xb600000, 13}, {0x6f00000, 15}, {0x6ec0000, 14}, {0xb0c0000, 14},
{0x6e00000, 14}, {0x6d40000, 14}, {0x6c00000, 16}, {0x800000, 11}},
{{0xbac0000, 14}, {0xd300000, 12}, {0xd200000, 12}, {0xd000000, 12},
{0xb900000, 13}, {0xbd80000, 13}, {0xb780000, 14}, {0xb4c0000, 14},
{0xb280000, 14}, {0x6c70000, 16}, {0x6e60000, 15}, {0x6da0000, 15},
{0x6d80000, 15}, {0x6c18000, 17}, {0x6c20000, 15}, {0x400000, 11}},
{{0xbc80000, 13}, {0xb880000, 13}, {0xcc00000, 11}, {0xbb00000, 12},
{0xb580000, 14}, {0xb480000, 14}, {0xb300000, 13}, {0xb1c0000, 14},
{0xb140000, 14}, {0x6c40000, 15}, {0x6c60000, 16}, {0x6ce0000, 15},
{0x6c10000, 17}, {0x6cc0000, 15}, {0x6c80000, 14}, {0x0, 11}},
{{0x6000000, 9}, {0xa000000, 8}, {0x7000000, 8}, {0x5800000, 9},
{0x5000000, 9}, {0x4400000, 10}, {0x2c00000, 10}, {0x2400000, 10},
{0x1a00000, 11}, {0x1800000, 11}, {0x1400000, 11}, {0xe00000, 11},
{0xa00000, 11}, {0x600000, 11}, {0x200000, 11}, {0x3000000, 8}}
};
const unsigned hft_24[16][16][2] {
{{0xf0000000, 4}, {0xd0000000, 4}, {0xb8000000, 6}, {0xa0000000, 7},
{0x92000000, 8}, {0x83000000, 9}, {0x7c000000, 9}, {0x6c800000, 10},
{0x6a800000, 10}, {0x53a00000, 11}, {0x51a00000, 11}, {0x51200000, 11},
{0x4da00000, 11}, {0x40a00000, 11}, {0x40800000, 12}, {0x2c000000, 9}},
{{0xe0000000, 4}, {0xc0000000, 4}, {0xa8000000, 5}, {0x98000000, 6},
{0x8e000000, 7}, {0x82000000, 8}, {0x7a000000, 8}, {0x6c000000, 9},
{0x68800000, 9}, {0x63000000, 9}, {0x51c00000, 10}, {0x56400000, 10},
{0x4fc00000, 10}, {0x4a400000, 10}, {0x45c00000, 10}, {0x2a000000, 8}},
{{0xbc000000, 6}, {0xb0000000, 5}, {0xa4000000, 6}, {0x94000000, 7},
{0x88000000, 7}, {0x80000000, 8}, {0x78000000, 8}, {0x6e800000, 9},
{0x67800000, 9}, {0x61000000, 9}, {0x5b000000, 9}, {0x55000000, 10},
{0x4ec00000, 10}, {0x49c00000, 10}, {0x43a00000, 11}, {0x24000000, 7}},
{{0xa2000000, 7}, {0x9c000000, 6}, {0x96000000, 7}, {0x8c000000, 7},
{0x86000000, 8}, {0x7d000000, 8}, {0x74000000, 8}, {0x6e000000, 9},
{0x66000000, 9}, {0x5f000000, 9}, {0x59000000, 9}, {0x51400000, 10},
{0x4dc00000, 10}, {0x49400000, 10}, {0x43c00000, 10}, {0x20000000, 7}},
{{0x93000000, 8}, {0x90000000, 7}, {0x8a000000, 7}, {0x87000000, 8},
{0x7f000000, 8}, {0x76000000, 8}, {0x70000000, 8}, {0x69000000, 9},
{0x64000000, 9}, {0x5e000000, 9}, {0x58000000, 10}, {0x50c00000, 10},
{0x4c800000, 10}, {0x47400000, 10}, {0x43800000, 11}, {0x1c000000, 7}},
{{0x83800000, 9}, {0x84000000, 7}, {0x81000000, 8}, {0x7e000000, 8},
{0x77000000, 8}, {0x72000000, 8}, {0x6b000000, 9}, {0x65000000, 9},
{0x60000000, 9}, {0x5a000000, 9}, {0x55400000, 10}, {0x4f400000, 10},
{0x4b400000, 10}, {0x46400000, 10}, {0x41800000, 10}, {0x18000000, 7}},
{{0x7c800000, 9}, {0x7b000000, 8}, {0x79000000, 8}, {0x75000000, 8},
{0x71000000, 8}, {0x6b800000, 9}, {0x67000000, 9}, {0x61800000, 9},
{0x5c800000, 9}, {0x56c00000, 10}, {0x52800000, 10}, {0x4d000000, 10},
{0x48c00000, 10}, {0x44000000, 10}, {0x41000000, 11}, {0x14000000, 7}},
{{0x6cc00000, 10}, {0x73000000, 8}, {0x6f000000, 8}, {0x6d000000, 8},
{0x69800000, 9}, {0x65800000, 9}, {0x62000000, 9}, {0x5d800000, 9},
{0x58400000, 10}, {0x53000000, 10}, {0x4e400000, 10}, {0x4a800000, 10},
{0x46c00000, 10}, {0x42600000, 11}, {0x2fa00000, 11}, {0x11000000, 8}},
{{0x6ac00000, 10}, {0x6a000000, 9}, {0x68000000, 9}, {0x66800000, 9},
{0x64800000, 9}, {0x60800000, 9}, {0x5d000000, 9}, {0x58800000, 9},
{0x54800000, 9}, {0x50000000, 10}, {0x4bc00000, 10}, {0x47800000, 10},
{0x43000000, 10}, {0x40400000, 11}, {0x2f200000, 11}, {0x10000000, 8}},
{{0x53c00000, 10}, {0x63800000, 9}, {0x62800000, 9}, {0x5f800000, 9},
{0x5e800000, 9}, {0x5a800000, 9}, {0x57000000, 9}, {0x53400000, 10},
{0x50400000, 10}, {0x4c400000, 10}, {0x48400000, 10}, {0x44c00000, 10},
{0x41200000, 11}, {0x2f600000, 11}, {0x2e600000, 11}, {0xb000000, 8}},
{{0x53800000, 11}, {0x5c000000, 9}, {0x5b800000, 9}, {0x59800000, 9},
{0x57800000, 9}, {0x56000000, 10}, {0x52c00000, 10}, {0x4e800000, 10},
{0x4c000000, 10}, {0x48800000, 10}, {0x45400000, 10}, {0x42400000, 11},
{0x2fe00000, 11}, {0x2ea00000, 11}, {0x2dc00000, 11}, {0xa000000, 8}},
{{0x51800000, 11}, {0x56800000, 10}, {0x55800000, 9}, {0x54000000, 9},
{0x52000000, 9}, {0x4f800000, 10}, {0x4d400000, 10}, {0x4ac00000, 10},
{0x47c00000, 10}, {0x45000000, 10}, {0x41c00000, 10}, {0x40200000, 11},
{0x2ee00000, 11}, {0x2e000000, 11}, {0x2d400000, 11}, {0x6000000, 8}},
{{0x51000000, 11}, {0x50800000, 10}, {0x4f000000, 10}, {0x4e000000, 10},
{0x4cc00000, 10}, {0x4b800000, 10}, {0x49000000, 10}, {0x47000000, 10},
{0x43400000, 10}, {0x41400000, 10}, {0x40000000, 11}, {0x2f000000, 11},
{0x2e400000, 11}, {0x2d800000, 11}, {0x2ce00000, 11}, {0x4000000, 8}},
{{0x4d800000, 11}, {0x4b000000, 10}, {0x4a000000, 10}, {0x49800000, 10},
{0x48000000, 10}, {0x46800000, 10}, {0x44400000, 10}, {0x42800000, 10},
{0x40600000, 11}, {0x2f800000, 11}, {0x2ec00000, 11}, {0x2e200000, 11},
{0x2da00000, 11}, {0x2d200000, 11}, {0x2ca00000, 11}, {0x2000000, 8}},
{{0x40900000, 12}, {0x46000000, 10}, {0x45800000, 10}, {0x44800000, 10},
{0x42c00000, 10}, {0x42000000, 10}, {0x40c00000, 10}, {0x2fc00000, 11},
{0x2f400000, 11}, {0x2e800000, 11}, {0x2de00000, 11}, {0x2d600000, 11},
{0x2d000000, 11}, {0x2cc00000, 11}, {0x2c800000, 11}, {0x0, 8}},
{{0x2b000000, 8}, {0x28000000, 7}, {0x26000000, 7}, {0x22000000, 7},
{0x1e000000, 7}, {0x1a000000, 7}, {0x16000000, 7}, {0x12000000, 7},
{0xe000000, 7}, {0xc000000, 7}, {0x8000000, 7}, {0x7000000, 8},
{0x5000000, 8}, {0x3000000, 8}, {0x1000000, 8}, {0x30000000, 4}}
};
static const unsigned *big_value_table[32] {
&hft_0[0][0][0], &hft_1[0][0][0], &hft_2[0][0][0], &hft_3[0][0][0],
&hft_0[0][0][0], &hft_5[0][0][0], &hft_6[0][0][0], &hft_7[0][0][0],
&hft_8[0][0][0], &hft_9[0][0][0], &hft_10[0][0][0], &hft_11[0][0][0],
&hft_12[0][0][0], &hft_13[0][0][0], &hft_0[0][0][0], &hft_15[0][0][0],
&hft_16[0][0][0], &hft_16[0][0][0], &hft_16[0][0][0], &hft_16[0][0][0],
&hft_16[0][0][0], &hft_16[0][0][0], &hft_16[0][0][0], &hft_16[0][0][0],
&hft_24[0][0][0], &hft_24[0][0][0], &hft_24[0][0][0], &hft_24[0][0][0],
&hft_24[0][0][0], &hft_24[0][0][0], &hft_24[0][0][0], &hft_24[0][0][0]
};
static const unsigned char big_value_linbit[32] {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 2, 3, 4, 6, 8, 10, 13, 4, 5, 6, 7, 8, 9, 11, 13
};
static const unsigned big_value_max[32] {
1, 2, 3, 3, 0, 4, 4, 6, 6, 6, 8, 8, 8, 16, 0, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
};
static const double synth_window[512] {
0.000000000, -0.000015259, -0.000015259, -0.000015259, -0.000015259, -0.000015259,
-0.000015259, -0.000030518, -0.000030518, -0.000030518, -0.000030518, -0.000045776,
-0.000045776, -0.000061035, -0.000061035, -0.000076294, -0.000076294, -0.000091553,
-0.000106812, -0.000106812, -0.000122070, -0.000137329, -0.000152588, -0.000167847,
-0.000198364, -0.000213623, -0.000244141, -0.000259399, -0.000289917, -0.000320435,
-0.000366211, -0.000396729, -0.000442505, -0.000473022, -0.000534058, -0.000579834,
-0.000625610, -0.000686646, -0.000747681, -0.000808716, -0.000885010, -0.000961304,
-0.001037598, -0.001113892, -0.001205444, -0.001296997, -0.001388550, -0.001480103,
-0.001586914, -0.001693726, -0.001785278, -0.001907349, -0.002014160, -0.002120972,
-0.002243042, -0.002349854, -0.002456665, -0.002578735, -0.002685547, -0.002792358,
-0.002899170, -0.002990723, -0.003082275, -0.003173828, 0.003250122, 0.003326416,
0.003387451, 0.003433228, 0.003463745, 0.003479004, 0.003479004, 0.003463745,
0.003417969, 0.003372192, 0.003280640, 0.003173828, 0.003051758, 0.002883911,
0.002700806, 0.002487183, 0.002227783, 0.001937866, 0.001617432, 0.001266479,
0.000869751, 0.000442505, -0.000030518, -0.000549316, -0.001098633, -0.001693726,
-0.002334595, -0.003005981, -0.003723145, -0.004486084, -0.005294800, -0.006118774,
-0.007003784, -0.007919312, -0.008865356, -0.009841919, -0.010848999, -0.011886597,
-0.012939453, -0.014022827, -0.015121460, -0.016235352, -0.017349243, -0.018463135,
-0.019577026, -0.020690918, -0.021789551, -0.022857666, -0.023910522, -0.024932861,
-0.025909424, -0.026840210, -0.027725220, -0.028533936, -0.029281616, -0.029937744,
-0.030532837, -0.031005859, -0.031387329, -0.031661987, -0.031814575, -0.031845093,
-0.031738281, -0.031478882, 0.031082153, 0.030517578, 0.029785156, 0.028884888,
0.027801514, 0.026535034, 0.025085449, 0.023422241, 0.021575928, 0.019531250,
0.017257690, 0.014801025, 0.012115479, 0.009231567, 0.006134033, 0.002822876,
-0.000686646, -0.004394531, -0.008316040, -0.012420654, -0.016708374, -0.021179199,
-0.025817871, -0.030609131, -0.035552979, -0.040634155, -0.045837402, -0.051132202,
-0.056533813, -0.061996460, -0.067520142, -0.073059082, -0.078628540, -0.084182739,
-0.089706421, -0.095169067, -0.100540161, -0.105819702, -0.110946655, -0.115921021,
-0.120697021, -0.125259399, -0.129562378, -0.133590698, -0.137298584, -0.140670776,
-0.143676758, -0.146255493, -0.148422241, -0.150115967, -0.151306152, -0.151962280,
-0.152069092, -0.151596069, -0.150497437, -0.148773193, -0.146362305, -0.143264771,
-0.139450073, -0.134887695, -0.129577637, -0.123474121, -0.116577148, -0.108856201,
0.100311279, 0.090927124, 0.080688477, 0.069595337, 0.057617188, 0.044784546,
0.031082153, 0.016510010, 0.001068115, -0.015228271, -0.032379150, -0.050354004,
-0.069168091, -0.088775635, -0.109161377, -0.130310059, -0.152206421, -0.174789429,
-0.198059082, -0.221984863, -0.246505737, -0.271591187, -0.297210693, -0.323318481,
-0.349868774, -0.376800537, -0.404083252, -0.431655884, -0.459472656, -0.487472534,
-0.515609741, -0.543823242, -0.572036743, -0.600219727, -0.628295898, -0.656219482,
-0.683914185, -0.711318970, -0.738372803, -0.765029907, -0.791213989, -0.816864014,
-0.841949463, -0.866363525, -0.890090942, -0.913055420, -0.935195923, -0.956481934,
-0.976852417, -0.996246338, -1.014617920, -1.031936646, -1.048156738, -1.063217163,
-1.077117920, -1.089782715, -1.101211548, -1.111373901, -1.120223999, -1.127746582,
-1.133926392, -1.138763428, -1.142211914, -1.144287109, 1.144989014, 1.144287109,
1.142211914, 1.138763428, 1.133926392, 1.127746582, 1.120223999, 1.111373901,
1.101211548, 1.089782715, 1.077117920, 1.063217163, 1.048156738, 1.031936646,
1.014617920, 0.996246338, 0.976852417, 0.956481934, 0.935195923, 0.913055420,
0.890090942, 0.866363525, 0.841949463, 0.816864014, 0.791213989, 0.765029907,
0.738372803, 0.711318970, 0.683914185, 0.656219482, 0.628295898, 0.600219727,
0.572036743, 0.543823242, 0.515609741, 0.487472534, 0.459472656, 0.431655884,
0.404083252, 0.376800537, 0.349868774, 0.323318481, 0.297210693, 0.271591187,
0.246505737, 0.221984863, 0.198059082, 0.174789429, 0.152206421, 0.130310059,
0.109161377, 0.088775635, 0.069168091, 0.050354004, 0.032379150, 0.015228271,
-0.001068115, -0.016510010, -0.031082153, -0.044784546, -0.057617188, -0.069595337,
-0.080688477, -0.090927124, 0.100311279, 0.108856201, 0.116577148, 0.123474121,
0.129577637, 0.134887695, 0.139450073, 0.143264771, 0.146362305, 0.148773193,
0.150497437, 0.151596069, 0.152069092, 0.151962280, 0.151306152, 0.150115967,
0.148422241, 0.146255493, 0.143676758, 0.140670776, 0.137298584, 0.133590698,
0.129562378, 0.125259399, 0.120697021, 0.115921021, 0.110946655, 0.105819702,
0.100540161, 0.095169067, 0.089706421, 0.084182739, 0.078628540, 0.073059082,
0.067520142, 0.061996460, 0.056533813, 0.051132202, 0.045837402, 0.040634155,
0.035552979, 0.030609131, 0.025817871, 0.021179199, 0.016708374, 0.012420654,
0.008316040, 0.004394531, 0.000686646, -0.002822876, -0.006134033, -0.009231567,
-0.012115479, -0.014801025, -0.017257690, -0.019531250, -0.021575928, -0.023422241,
-0.025085449, -0.026535034, -0.027801514, -0.028884888, -0.029785156, -0.030517578,
0.031082153, 0.031478882, 0.031738281, 0.031845093, 0.031814575, 0.031661987,
0.031387329, 0.031005859, 0.030532837, 0.029937744, 0.029281616, 0.028533936,
0.027725220, 0.026840210, 0.025909424, 0.024932861, 0.023910522, 0.022857666,
0.021789551, 0.020690918, 0.019577026, 0.018463135, 0.017349243, 0.016235352,
0.015121460, 0.014022827, 0.012939453, 0.011886597, 0.010848999, 0.009841919,
0.008865356, 0.007919312, 0.007003784, 0.006118774, 0.005294800, 0.004486084,
0.003723145, 0.003005981, 0.002334595, 0.001693726, 0.001098633, 0.000549316,
0.000030518, -0.000442505, -0.000869751, -0.001266479, -0.001617432, -0.001937866,
-0.002227783, -0.002487183, -0.002700806, -0.002883911, -0.003051758, -0.003173828,
-0.003280640, -0.003372192, -0.003417969, -0.003463745, -0.003479004, -0.003479004,
-0.003463745, -0.003433228, -0.003387451, -0.003326416, 0.003250122, 0.003173828,
0.003082275, 0.002990723, 0.002899170, 0.002792358, 0.002685547, 0.002578735,
0.002456665, 0.002349854, 0.002243042, 0.002120972, 0.002014160, 0.001907349,
0.001785278, 0.001693726, 0.001586914, 0.001480103, 0.001388550, 0.001296997,
0.001205444, 0.001113892, 0.001037598, 0.000961304, 0.000885010, 0.000808716,
0.000747681, 0.000686646, 0.000625610, 0.000579834, 0.000534058, 0.000473022,
0.000442505, 0.000396729, 0.000366211, 0.000320435, 0.000289917, 0.000259399,
0.000244141, 0.000213623, 0.000198364, 0.000167847, 0.000152588, 0.000137329,
0.000122070, 0.000106812, 0.000106812, 0.000091553, 0.000076294, 0.000076294,
0.000061035, 0.000061035, 0.000045776, 0.000045776, 0.000030518, 0.000030518,
0.000030518, 0.000030518, 0.000015259, 0.000015259, 0.000015259, 0.000015259,
0.000015259, 0.000015259
};
#endif /* TABLES_H */