• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *                                                                            *
3  * Copyright (C) 2018 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19 */
20 #include "ixheaacd_sbr_common.h"
21 #include "ixheaacd_type_def.h"
22 #include "ixheaacd_defines.h"
23 #include "ixheaacd_aac_rom.h"
24 #include "ixheaacd_intrinsics.h"
25 
26 // -1 is appended at the end of each table to identify
27 //   number of scf bands at run time
28 //
29 const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables = {
30 
31     // static const WORD8 ixheaacd_sfb_96_1024[42] =
32     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
33      8,  8,  8,  8,  8,  12, 12, 12, 12, 12, 16, 16, 24, 28,
34      36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -1},
35 
36     // 12 scfbands
37     // static const WORD8 ixheaacd_sfb_96_128[13] =
38     {4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36, -1},
39 
40     // 47 scfbands
41     // static const WORD8 ixheaacd_sfb_64_1024[48] =
42     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,
43      8,  8,  12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 36, 40, 40, 40,
44      40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, -1},
45 
46     // 12 scfbands */
47     // static const WORD8 ixheaacd_sfb_64_128[13] =
48     // same as ixheaacd_sfb_96_128
49 
50     // 49 scfbands
51     // static const WORD8 ixheaacd_sfb_48_1024[50] =
52     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,  8,  8,  8,
53      12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32,
54      32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, -1},
55 
56     // 14 scfbands
57     // static const WORD8 ixheaacd_sfb_48_128[15] =
58     {4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16, -1},
59 
60     // 51 scfbands
61     // static const WORD8 ixheaacd_sfb_32_1024[52] =
62     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,  8,  8,  8,  12,
63      12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32,
64      32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1},
65 
66     // 47 scfbands
67     // static const WORD8 ixheaacd_sfb_24_1024[48] =
68     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,  8,
69      8,  8,  8,  8,  8,  12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24,
70      28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64, -1},
71 
72     // 15 scfbands
73     // static const WORD8 ixheaacd_sfb_24_128[16] =
74     {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 16, 16, 20, -1},
75 
76     // 43 scfbands
77     // static const WORD8 ixheaacd_sfb_16_1024[44] =
78     {8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  12, 12, 12, 12,
79      12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28,
80      28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64, -1},
81 
82     // 15 scfbands
83     // static const WORD8 ixheaacd_sfb_16_128[16] =
84     {4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20, -1},
85 
86     // 40 scfbands
87     // static const WORD8 ixheaacd_sfb_8_1024[41] =
88     {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16,
89      16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28,
90      28, 32, 36, 36, 40, 44, 48, 52, 56, 60, 64, 80, -1},
91 
92     // 15 scfbands
93     // static const WORD8 ixheaacd_sfb_8_128[16] =
94     {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 20, -1},
95 
96     // const ia_sampling_rate_info_struct str_sample_rate_info[16] =
97     {{96000},
98      {88200},
99      {64000},
100      {48000},
101      {44100},
102      {32000},
103      {24000},
104      {22050},
105      {16000},
106      {12000},
107      {11025},
108      {8000},
109      {7350}},
110 
111     //        15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
112     //       +------------------------------------------------+
113     //       | 1|  Len     |    Symbol                        |
114     //       +------------------------------------------------+
115     //       | 0|          |    Offset                        |
116     //       +------------------------------------------------+
117     // LSB (00) is set 1 when the codeword is decoded
118     //
119     // HuffmanCodeBook_1
120     // idx_hf11
121     {
122         0x20100001, 0x41e00045, 0x659000c6, 0x890001c4, 0x0e6003df, 0xaef003e8,
123         0x10d007ef, 0x115007f7, 0x119007fb, 0xd1a007fc, 0x11e00ffd, 0x11f00ffe,
124         0x12000fff, 0xc0700009, 0x052000bf, 0x08b001bf, 0x0c6003bf, 0x0fd007df,
125         0x11c00ffb, 0x20e0001a, 0x0180003f,
126     },
127 
128     // idx_hf10
129     {0x10200002, 0x21800029, 0x32900064, 0x442000e2, 0x561001e4,
130      0x087003ef, 0x68a003f2, 0x09c007f7, 0x0a0007fb, 0x0a400ffb,
131      0x0a600ffd, 0x0a700ffe, 0x0a800fff, 0x60a0000d, 0x0240005f,
132      0x03f000df, 0x05c001df, 0x077003df, 0x094007ef, 0x00e0001f},
133 
134     // idx_hf9
135     {0x00000000, 0x00200005, 0x1030000c, 0x20a00072, 0x31d001e6, 0x431003e1,
136      0x550007e2, 0x67600feb, 0x08e01fef, 0x09601ff7, 0x09e03ff7, 0x0a203ffb,
137      0x0a403ffd, 0x0a607ffd, 0x0a707ffe, 0x0a807fff, 0x00700037, 0x512000ed,
138      0x02f003df, 0x04d007df, 0x06a00fdf, 0x07e01fdf, 0x016001df},
139     // idx_hf8
140     {0x10000000, 0x20c00014, 0x31600033, 0x42400075, 0x030000f7, 0x533000fa,
141      0x039001fb, 0x03b001fd, 0x03d003fd, 0x03e003fe, 0x03f003ff, 0x50500006,
142      0x0120002f, 0x01e0006f, 0x028000ef, 0x035001f7, 0x0070000f},
143 
144     // idx_hf7
145     {0x00000000, 0x00200005, 0x1030000c, 0x20c00074, 0x316000f3, 0x424001f5,
146      0x030003f7, 0x533003fa, 0x039007fb, 0x03b007fd, 0x03d00ffd, 0x03e00ffe,
147      0x03f00fff, 0x00700037, 0x012000ef, 0x01e001ef, 0x028003ef, 0x035007f7},
148 
149     // idx_hf6
150     {0x00700007, 0x10800008, 0x21800033, 0x32500074, 0x42d000f1, 0x041001f7,
151      0x544001fa, 0x04a003fb, 0x04c003fd, 0x04e007fd, 0x04f007fe, 0x050007ff,
152      0x0140002f, 0x0200006f, 0x02b000ef, 0x039001ef, 0x046003f7},
153 
154     // idx_hf5
155     {0x00000000, 0x0040000b, 0x0080001b, 0x10c00073, 0x218000f3, 0x324001f3,
156      0x430003f3, 0x040007f7, 0x542007f9, 0x04a00ffb, 0x04c00ffd, 0x04e01ffd,
157      0x04f01ffe, 0x05001fff, 0x014000ef, 0x020001ef, 0x02c003ef, 0x038007ef,
158      0x04600ff7},
159 
160     // idx_hf4
161     {0x00700007, 0x10900009, 0x20f00019, 0x31800070, 0x42d000f6, 0x535001f5,
162      0x041003f7, 0x643003f9, 0x04b007fb, 0x04d007fd, 0x04e007fe, 0x04f00ffe,
163      0x05000fff, 0x00d00017, 0x0170006f, 0x026000ef, 0x02f001ef, 0x039003ef,
164      0x047007f7},
165 
166     // idx_hf3
167     {0x00000000, 0x0040000b, 0x10600019, 0x20c00039, 0x314000f2, 0x423001f4,
168      0x031003f7, 0x532003f8, 0x63a007f9, 0x04200ffb, 0x74300ffc, 0x84601ffc,
169      0x94903ffc, 0x04d07ffd, 0x04e07ffe, 0x04f0fffe, 0x0500ffff, 0x00a00037,
170      0x80f00076, 0x01e001ef, 0x029003ef, 0x038007f7, 0x03e00ff7, 0x04501ffb,
171      0x04803ffb, 0x04b07ffb, 0x011000ef},
172 
173     // idx_hf2
174     {0x10000000, 0x01e0002f, 0x22000031, 0x32f00072, 0x041000f7, 0x442000f8,
175      0x04c001fb, 0x04e001fd, 0x04f001fe, 0x050001ff, 0x40100002, 0x02c0006f,
176      0x039000ef, 0x048001f7, 0x1080000c, 0x00e0001f},
177 
178     // idx_hf1
179     {0x00000000, 0x00800017, 0x0180006f, 0x02000077, 0x030001ef, 0x038001f7,
180      0x040003f7, 0x048007f7, 0x04c007fb, 0x04e007fd, 0x04f007fe, 0x050007ff},
181 
182     // inp_hf11
183     {0x000c, 0x0004, 0x0244, 0x2405, 0x0225, 0x0025, 0x0465, 0x0265, 0x0485,
184      0x0286, 0x0686, 0x06a6, 0x0446, 0x04a6, 0x0046, 0x06c6, 0x08a7, 0x02a7,
185      0x08c7, 0x04c7, 0x08e7, 0x06e7, 0x0667, 0x0067, 0x0ac7, 0x0ae7, 0x04e7,
186      0x0907, 0x02c7, 0x0b07, 0x0707, 0x0b27, 0x0928, 0x0d08, 0x0508, 0x0ce8,
187      0x0d28, 0x0728, 0x02e8, 0x0a88, 0x0868, 0x22a8, 0x2268, 0x2288, 0x0d48,
188      0x22c8, 0x0888, 0x0948, 0x0088, 0x0648, 0x0b48, 0x0ca8, 0x22e8, 0x2248,
189      0x2308, 0x0528, 0x0f28, 0x0748, 0x0d68, 0x0b68, 0x0ec8, 0x2348, 0x0f48,
190      0x0f08, 0x2328, 0x10e8, 0x0428, 0x0308, 0x0968, 0x2368, 0x0f68, 0x2388,
191      0x1308, 0x2228, 0x0d88, 0x1528, 0x0548, 0x0b88, 0x1748, 0x23a8, 0x1168,
192      0x1148, 0x0768, 0x0aa8, 0x23c8, 0x1968, 0x0f88, 0x0988, 0x0da8, 0x0fa8,
193      0x00a8, 0x1189, 0x23e9, 0x1b89, 0x0329, 0x1129, 0x1fc9, 0x0ba9, 0x1da9,
194      0x0789, 0x11a9, 0x0fc9, 0x0569, 0x11c9, 0x1369, 0x1389, 0x21e9, 0x09a9,
195      0x0dc9, 0x0cc9, 0x13a9, 0x0bc9, 0x11e9, 0x0fe9, 0x0349, 0x15a9, 0x00c9,
196      0x1589, 0x1349, 0x13c9, 0x09c9, 0x0589, 0x13e9, 0x07a9, 0x0de9, 0x15c9,
197      0x1209, 0x15e9, 0x1409, 0x17c9, 0x0369, 0x0ee9, 0x1609, 0x1009, 0x07c9,
198      0x0be9, 0x1569, 0x09e9, 0x17a9, 0x1be9, 0x0e09, 0x1c09, 0x05a9, 0x2209,
199      0x0c09, 0x1809, 0x17ea, 0x142a, 0x102a, 0x122a, 0x020a, 0x0a2a, 0x00ea,
200      0x080a, 0x182a, 0x1bca, 0x1c2a, 0x19ea, 0x05ea, 0x1c4a, 0x124a, 0x0e2a,
201      0x164a, 0x162a, 0x1e0a, 0x1a0a, 0x038a, 0x0a0a, 0x178a, 0x07ea, 0x03ca,
202      0x19ca, 0x104a, 0x082a, 0x0c2a, 0x0c4a, 0x1e4a, 0x0a4a, 0x184a, 0x1e2a,
203      0x1a2a, 0x1c6a, 0x1a4a, 0x110a, 0x186a, 0x05ca, 0x144a, 0x1e6a, 0x0e6a,
204      0x168a, 0x202a, 0x126a, 0x146a, 0x1e8a, 0x166a, 0x0c6a, 0x188a, 0x1dea,
205      0x060a, 0x0e4a, 0x03aa, 0x1caa, 0x010a, 0x1c8a, 0x106a, 0x1a6a, 0x108a,
206      0x204a, 0x19aa, 0x0e8a, 0x062a, 0x208a, 0x206a, 0x03ea, 0x148a, 0x0a6a,
207      0x1eaa, 0x12aa, 0x1cca, 0x128a, 0x0c8a, 0x084a, 0x16aa, 0x18aa, 0x1a8a,
208      0x20aa, 0x20ca, 0x12ca, 0x200a, 0x10aa, 0x132a, 0x012a, 0x14ca, 0x14aa,
209      0x1aaa, 0x1eca, 0x16ea, 0x1eea, 0x1aca, 0x0eaa, 0x10ca, 0x14eb, 0x20eb,
210      0x18cb, 0x192b, 0x040b, 0x16cb, 0x170b, 0x1d0b, 0x1ceb, 0x190b, 0x18eb,
211      0x12eb, 0x1f2b, 0x1d2b, 0x1b2b, 0x210b, 0x1f0b, 0x154b, 0x1aeb, 0x150b,
212      0x014b, 0x1b0b, 0x176b, 0x1b4b, 0x172b, 0x1d4b, 0x01ab, 0x1f4b, 0x212b,
213      0x214b, 0x194b, 0x1f6b, 0x1bab, 0x016b, 0x1d6b, 0x216b, 0x218b, 0x1b6b,
214      0x1dcb, 0x1f8b, 0x1d8b, 0x198b, 0x1fab, 0x01cc, 0x018c, 0x21ac, 0x1fec,
215      0x01ec, 0x21cc},
216     // inp_hf10
217     {0x000c, 0x01c4, 0x01e4, 0x0364, 0x0385, 0x01a5, 0x0025, 0x0205, 0x0525,
218      0x0505, 0x03a5, 0x0545, 0x0346, 0x0046, 0x03c6, 0x06c6, 0x0226, 0x06a6,
219      0x0006, 0x06e6, 0x0566, 0x04e6, 0x0066, 0x0706, 0x03e6, 0x0866, 0x0247,
220      0x0847, 0x0887, 0x0587, 0x08a7, 0x0727, 0x0a07, 0x0407, 0x0a27, 0x0687,
221      0x09e7, 0x0087, 0x0267, 0x05a7, 0x08c7, 0x0a47, 0x0747, 0x0a68, 0x0ba8,
222      0x05c8, 0x0428, 0x08e8, 0x0d48, 0x0bc8, 0x0828, 0x0b88, 0x00a8, 0x0d28,
223      0x0288, 0x0d68, 0x0be8, 0x0768, 0x0448, 0x0a88, 0x0c08, 0x02a8, 0x05e8,
224      0x0d88, 0x0788, 0x0908, 0x0da8, 0x0928, 0x0c29, 0x0aa9, 0x0ee9, 0x09c9,
225      0x0ac9, 0x0f09, 0x0609, 0x0ec9, 0x0469, 0x00c9, 0x0dc9, 0x0f29, 0x07a9,
226      0x1089, 0x02c9, 0x0c49, 0x0de9, 0x0f49, 0x0c69, 0x10a9, 0x0949, 0x10c9,
227      0x0489, 0x1069, 0x0629, 0x0f69, 0x0ae9, 0x0d09, 0x07c9, 0x0b69, 0x1229,
228      0x0c8a, 0x124a, 0x110a, 0x02ea, 0x120a, 0x0f8a, 0x00ea, 0x0e0a, 0x10ea,
229      0x064a, 0x096a, 0x0e2a, 0x128a, 0x010a, 0x126a, 0x04aa, 0x0caa, 0x0b0a,
230      0x112a, 0x07ea, 0x030a, 0x13ca, 0x0faa, 0x13ea, 0x12aa, 0x098a, 0x140a,
231      0x12ca, 0x142a, 0x066a, 0x0b2a, 0x0eaa, 0x114a, 0x104a, 0x13aa, 0x012a,
232      0x080a, 0x0fca, 0x144a, 0x04ca, 0x0e4a, 0x0feb, 0x032b, 0x12eb, 0x146b,
233      0x0ccb, 0x09ab, 0x0b4b, 0x116b, 0x0e6b, 0x148b, 0x014b, 0x0ceb, 0x11eb,
234      0x118b, 0x130b, 0x132b, 0x016b, 0x134b, 0x100b, 0x11ab, 0x138b, 0x0e8b,
235      0x14ac, 0x11cc, 0x102c, 0x136c, 0x14ec, 0x018c, 0x14cc, 0x150c},
236     // inp_hf9
237     {0x000f, 0x0001, 0x01a3, 0x0023, 0x01c4, 0x0366, 0x01e6, 0x0346, 0x0046,
238      0x0507, 0x0387, 0x0207, 0x04e8, 0x0068, 0x03a8, 0x0528, 0x0228, 0x06a8,
239      0x03c8, 0x0248, 0x06c9, 0x0549, 0x0089, 0x0689, 0x0849, 0x03e9, 0x0269,
240      0x0569, 0x0869, 0x09e9, 0x06e9, 0x00aa, 0x040a, 0x082a, 0x028a, 0x058a,
241      0x02aa, 0x0d2a, 0x070a, 0x088a, 0x0a0a, 0x0b8a, 0x00ca, 0x0d4a, 0x044a,
242      0x05aa, 0x042a, 0x072a, 0x0eca, 0x02ca, 0x0baa, 0x09cb, 0x08ab, 0x0a2b,
243      0x0d6b, 0x00eb, 0x0eeb, 0x05eb, 0x074b, 0x05cb, 0x010b, 0x106b, 0x0a4b,
244      0x046b, 0x08cb, 0x0d0b, 0x0b6b, 0x0bcb, 0x108b, 0x0f0b, 0x0d8b, 0x02eb,
245      0x0beb, 0x0a6b, 0x08eb, 0x078b, 0x076b, 0x060b, 0x120b, 0x092b, 0x0eab,
246      0x0dab, 0x10ac, 0x048c, 0x012c, 0x122c, 0x0f2c, 0x0a8c, 0x13ac, 0x07ac,
247      0x0dcc, 0x030c, 0x0f4c, 0x10cc, 0x090c, 0x0c0c, 0x04ac, 0x032c, 0x13cc,
248      0x124c, 0x062c, 0x094c, 0x0aac, 0x0dec, 0x126c, 0x014c, 0x0c2c, 0x13ec,
249      0x104c, 0x10ec, 0x07cc, 0x0acc, 0x04cc, 0x0f6c, 0x0f8c, 0x07ec, 0x11ec,
250      0x0aec, 0x064c, 0x096c, 0x0e0d, 0x0c6d, 0x142d, 0x066d, 0x128d, 0x0c4d,
251      0x140d, 0x12ad, 0x110d, 0x080d, 0x0c8d, 0x098d, 0x016d, 0x144d, 0x0b0d,
252      0x138d, 0x112d, 0x09ad, 0x0cad, 0x0fad, 0x018d, 0x12cd, 0x0e2d, 0x0fcd,
253      0x114d, 0x0ccd, 0x146d, 0x0b2d, 0x0e6d, 0x12ed, 0x0ced, 0x0b4d, 0x0e4e,
254      0x116e, 0x0e8e, 0x0fee, 0x100e, 0x102e, 0x11ae, 0x14ae, 0x118e, 0x130e,
255      0x148e, 0x132e, 0x14ce, 0x14ee, 0x11cf, 0x134f, 0x136f, 0x150f},
256 
257     // inp_hf8
258     {0x000a, 0x0123, 0x0224, 0x0104, 0x0144, 0x0024, 0x0244, 0x0005, 0x0205,
259      0x0045, 0x0325, 0x0165, 0x0345, 0x0265, 0x0366, 0x0426, 0x0186, 0x0446,
260      0x0286, 0x0306, 0x0066, 0x0466, 0x0386, 0x0546, 0x0527, 0x02a7, 0x01a7,
261      0x0567, 0x03a7, 0x0487, 0x0587, 0x0087, 0x04a7, 0x0407, 0x02c7, 0x0647,
262      0x0627, 0x01c7, 0x03c8, 0x0668, 0x05a8, 0x0508, 0x0688, 0x00a8, 0x04c8,
263      0x0728, 0x0748, 0x02e8, 0x06a8, 0x0768, 0x01e8, 0x05c8, 0x03e8, 0x06c9,
264      0x0789, 0x0609, 0x04e9, 0x00c9, 0x07a9, 0x07c9, 0x06e9, 0x05ea, 0x070a,
265      0x00ea, 0x07ea},
266 
267     // inp_hf7
268     {0x000c, 0x0001, 0x0103, 0x0023, 0x0124, 0x0226, 0x0146, 0x0206, 0x0046,
269      0x0327, 0x0167, 0x0247, 0x0307, 0x0067, 0x0268, 0x0348, 0x0188, 0x0428,
270      0x01a8, 0x0528, 0x0368, 0x0288, 0x0088, 0x0408, 0x0449, 0x02a9, 0x0549,
271      0x00a9, 0x0629, 0x0509, 0x01c9, 0x0469, 0x03a9, 0x0389, 0x0569, 0x02c9,
272      0x0649, 0x01e9, 0x03ca, 0x00ca, 0x060a, 0x048a, 0x072a, 0x04aa, 0x074a,
273      0x058a, 0x066a, 0x02ea, 0x076a, 0x068a, 0x05aa, 0x04ca, 0x03ea, 0x070b,
274      0x00eb, 0x06ab, 0x05cb, 0x078b, 0x04eb, 0x05eb, 0x07ab, 0x07cc, 0x06cc,
275      0x06ec, 0x07ec},
276 
277     // inp_hf6
278     {0x000b, 0x0504, 0x0624, 0x04e4, 0x0524, 0x03e4, 0x0644, 0x0404, 0x0604,
279      0x03c4, 0x0726, 0x0766, 0x02e6, 0x02a6, 0x02c6, 0x0426, 0x0746, 0x05e6,
280      0x0666, 0x04c6, 0x03a6, 0x0546, 0x0706, 0x0306, 0x0286, 0x0786, 0x01c7,
281      0x0887, 0x0847, 0x0447, 0x0187, 0x0687, 0x05c7, 0x0387, 0x0867, 0x01a7,
282      0x04a7, 0x0567, 0x08a7, 0x0168, 0x0328, 0x07a8, 0x0828, 0x06e8, 0x0268,
283      0x01e8, 0x08c8, 0x0809, 0x0149, 0x0209, 0x05a9, 0x0369, 0x09a9, 0x00a9,
284      0x0069, 0x06a9, 0x0969, 0x0469, 0x0489, 0x00c9, 0x0049, 0x07c9, 0x0249,
285      0x0089, 0x09c9, 0x0949, 0x0349, 0x0989, 0x06c9, 0x0589, 0x012a, 0x022a,
286      0x07ea, 0x092a, 0x08ea, 0x09ea, 0x00ea, 0x002a, 0x0a0b, 0x010b, 0x000b,
287      0x090b},
288 
289     // inp_hf5
290     {0x000d, 0x0501, 0x03e4, 0x0624, 0x0524, 0x04e4, 0x0605, 0x0405, 0x03c5,
291      0x0645, 0x02c7, 0x0547, 0x0747, 0x04c7, 0x02a8, 0x0768, 0x03a8, 0x0668,
292      0x02e8, 0x0728, 0x0428, 0x05e8, 0x01a8, 0x0868, 0x04a8, 0x0568, 0x0189,
293      0x0689, 0x0889, 0x0389, 0x01c9, 0x0849, 0x05c9, 0x0449, 0x0309, 0x0789,
294      0x0289, 0x0709, 0x016a, 0x082a, 0x032a, 0x06ea, 0x08aa, 0x07aa, 0x01ea,
295      0x026a, 0x048a, 0x008a, 0x09aa, 0x098a, 0x006b, 0x058b, 0x096b, 0x036b,
296      0x06ab, 0x046b, 0x00ab, 0x05ab, 0x080b, 0x014b, 0x020b, 0x034b, 0x004b,
297      0x09cb, 0x06cb, 0x07cb, 0x08cb, 0x00cb, 0x024c, 0x094c, 0x07ec, 0x002c,
298      0x00ec, 0x08ec, 0x022c, 0x09ec, 0x092c, 0x012c, 0x090d, 0x010d, 0x0a0d,
299      0x000d},
300 
301     // inp_hf4
302     {0x000c, 0x0504, 0x01a4, 0x04a4, 0x04e4, 0x03e4, 0x0364, 0x0484, 0x0004,
303      0x0084, 0x03c4, 0x0385, 0x0185, 0x0025, 0x0145, 0x0065, 0x0125, 0x0867,
304      0x0567, 0x0627, 0x0527, 0x0847, 0x0807, 0x0607, 0x0747, 0x0207, 0x01c8,
305      0x0548, 0x02c8, 0x0408, 0x05c8, 0x04c8, 0x0448, 0x07e8, 0x0728, 0x05a8,
306      0x06e8, 0x0168, 0x02a8, 0x00a8, 0x01e8, 0x0268, 0x03a8, 0x00e8, 0x0428,
307      0x06c8, 0x0048, 0x0249, 0x00c9, 0x0689, 0x0989, 0x08c9, 0x0589, 0x0649,
308      0x0889, 0x066a, 0x096a, 0x08aa, 0x032a, 0x022a, 0x092a, 0x02ea, 0x07aa,
309      0x046a, 0x09ea, 0x05ea, 0x076a, 0x082a, 0x06aa, 0x08eb, 0x09ab, 0x030b,
310      0x090b, 0x010b, 0x078b, 0x028b, 0x070b, 0x0a0b, 0x034b, 0x09cb, 0x094c,
311      0x07cc},
312 
313     // inp_hf3
314     {0x0010, 0x0001, 0x0364, 0x0024, 0x0124, 0x0064, 0x0485, 0x0085, 0x0186,
315      0x0146, 0x03c6, 0x01a6, 0x0386, 0x04e6, 0x0507, 0x03e7, 0x04a7, 0x06c8,
316      0x0048, 0x00a8, 0x07e8, 0x0608, 0x00e9, 0x0209, 0x05a9, 0x01c9, 0x0849,
317      0x00c9, 0x02a9, 0x01e9, 0x0249, 0x0169, 0x0729, 0x0629, 0x02c9, 0x0549,
318      0x0569, 0x05ca, 0x042a, 0x044a, 0x026a, 0x086a, 0x052a, 0x080a, 0x040a,
319      0x010a, 0x022a, 0x096a, 0x066a, 0x03aa, 0x06ea, 0x032a, 0x090b, 0x068b,
320      0x04cb, 0x074b, 0x058b, 0x098b, 0x030b, 0x02eb, 0x046c, 0x092c, 0x08ac,
321      0x09cc, 0x034c, 0x09ec, 0x08cc, 0x064c, 0x06ac, 0x028d, 0x078d, 0x05ed,
322      0x07ae, 0x088e, 0x082e, 0x0a0f, 0x09af, 0x08ef, 0x076f, 0x070f, 0x0950,
323      0x07d0},
324     // inp_hf2
325     {0x0009, 0x0503, 0x0864, 0x01a5, 0x0525, 0x04a5, 0x04e5, 0x03e5, 0x0565,
326      0x0625, 0x0446, 0x02c6, 0x05c6, 0x0546, 0x0606, 0x04c6, 0x0186, 0x0746,
327      0x0806, 0x0086, 0x0486, 0x08c6, 0x0886, 0x0406, 0x0206, 0x0646, 0x0386,
328      0x01c6, 0x03c6, 0x0146, 0x0986, 0x0686, 0x0586, 0x0846, 0x05e7, 0x0827,
329      0x0267, 0x0427, 0x07a7, 0x0967, 0x08e7, 0x0327, 0x03a7, 0x09e7, 0x01e7,
330      0x0027, 0x0167, 0x06e7, 0x0927, 0x0768, 0x02a8, 0x00e8, 0x0228, 0x00a8,
331      0x0068, 0x0368, 0x08a8, 0x07e8, 0x05a8, 0x06a8, 0x02e8, 0x0128, 0x0668,
332      0x0728, 0x0468, 0x09a8, 0x0788, 0x0288, 0x0709, 0x0009, 0x0309, 0x0349,
333      0x0a09, 0x00c9, 0x07c9, 0x0249, 0x0109, 0x0909, 0x06c9, 0x0049, 0x0949,
334      0x09c9},
335 
336     // inp_hf1
337     {0x000b, 0x0501, 0x0865, 0x01a5, 0x04e5, 0x0625, 0x0525, 0x04a5, 0x0565,
338      0x03e5, 0x0747, 0x02c7, 0x04c7, 0x05c7, 0x0447, 0x0547, 0x0987, 0x0487,
339      0x0087, 0x0387, 0x0807, 0x0607, 0x0207, 0x0587, 0x08c7, 0x0407, 0x0687,
340      0x0647, 0x0147, 0x0887, 0x0187, 0x0847, 0x01c7, 0x03c7, 0x0929, 0x0269,
341      0x07a9, 0x0669, 0x05e9, 0x0469, 0x0429, 0x06e9, 0x0829, 0x05a9, 0x0329,
342      0x01e9, 0x00e9, 0x03a9, 0x0769, 0x0729, 0x02a9, 0x0029, 0x0369, 0x06a9,
343      0x08a9, 0x09a9, 0x02e9, 0x09e9, 0x00aa, 0x012a, 0x096a, 0x07ea, 0x016a,
344      0x006a, 0x022a, 0x08ea, 0x078b, 0x028b, 0x030b, 0x070b, 0x0a0b, 0x010b,
345      0x090b, 0x00cb, 0x000b, 0x094b, 0x07cb, 0x034b, 0x024b, 0x004b, 0x06cb,
346      0x09cb},
347 
348     // UWORD16 huffman_code_book_scl[122];
349     {0x0013, 0x0781, 0x0763, 0x07a4, 0x0744, 0x07c4, 0x0725, 0x07e5, 0x0706,
350      0x0806, 0x06e6, 0x0826, 0x0847, 0x06c7, 0x0867, 0x06a8, 0x0888, 0x0688,
351      0x08a8, 0x0668, 0x08c9, 0x0649, 0x0629, 0x08e9, 0x090a, 0x060a, 0x092a,
352      0x05ea, 0x094a, 0x05ca, 0x098b, 0x096b, 0x09ab, 0x09cb, 0x05ab, 0x056b,
353      0x058c, 0x09ec, 0x054c, 0x052c, 0x0a0c, 0x050c, 0x0a2d, 0x04ed, 0x0a4d,
354      0x04cd, 0x0a6d, 0x04ae, 0x046e, 0x0aae, 0x042e, 0x048e, 0x044e, 0x0a8e,
355      0x040e, 0x0aef, 0x0b2f, 0x03cf, 0x03ef, 0x0ad0, 0x03b0, 0x0350, 0x0370,
356      0x0390, 0x0310, 0x0b10, 0x0331, 0x02d1, 0x02f1, 0x0b52, 0x02b2, 0x0272,
357      0x0072, 0x0032, 0x0052, 0x0012, 0x0c53, 0x0c73, 0x0c93, 0x0cb3, 0x0cd3,
358      0x0eb3, 0x0c33, 0x0b73, 0x0b93, 0x0bb3, 0x0bd3, 0x0bf3, 0x0c13, 0x0d13,
359      0x0df3, 0x0e13, 0x0e33, 0x0e53, 0x0e73, 0x0e93, 0x0dd3, 0x0d33, 0x0d53,
360      0x0d73, 0x0d93, 0x0db3, 0x0ed3, 0x00d3, 0x0113, 0x0133, 0x0153, 0x00b3,
361      0x0cf3, 0x0f13, 0x0ef3, 0x0093, 0x00f3, 0x01f3, 0x0213, 0x0253, 0x0293,
362      0x0233, 0x0173, 0x0193, 0x01d3, 0x01b3},
363 
364     // UWORD32 huffman_code_book_scl_index[33];
365     {0x00000000, 0x10100004, 0x2040000c, 0x00a0003b, 0x30d0007a, 0x412000fa,
366      0x516001f9, 0x61c003f9, 0x722007f9, 0x82800ff9, 0x92d01ff8, 0xa3503ff9,
367      0xb400fff6, 0xc431fff0, 0x0687ffef, 0x0707fff7, 0x0747fffb, 0x0767fffd,
368      0x0777fffe, 0x0787ffff, 0x0030000b, 0x0060001b, 0x00f000f7, 0x014001f7,
369      0x01a003f7, 0x020007f7, 0x02600ff7, 0x02c01ff7, 0x03303ff7, 0x03907ff7,
370      0x0421ffef, 0x14a3ffe8, 0x0587ffdf},
371 
372     // const WORD16 ixheaacd_sfb_48_512[37] =
373     {4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8, 8,
374      8, 12, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 52, -1},
375     // const WORD16 ixheaacd_sfb_32_512[38] =
376     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
377      4,  8,  8,  8,  8,  8,  12, 12, 12, 12, 16, 16, 16,
378      20, 24, 24, 28, 32, 32, 32, 32, 32, 32, 32, -1},
379     // const WORD16 ixheaacd_sfb_24_512[32] =
380     {4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  12, 12,
381      12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1},
382     // const WORD16 ixheaacd_sfb_48_480[36] =
383     {
384         4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  8,
385         8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 32, 32, 32, 32, 32, 32, 48, -1,
386     },
387     // const WORD16 ixheaacd_sfb_32_480[38] =
388     {
389         4, 4, 4, 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,
390         8, 8, 8, 12, 12, 12, 16, 16, 20, 24, 32, 32, 32, 32, 32, 32, 32, 32, -1,
391     },
392     // const WORD16 ixheaacd_sfb_24_480[31] =
393     {
394         4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  8,  8,  8,  12, 12,
395         12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1,
396     },
397 
398 };  // end of ia_aac_dec_huffman_tables_struct
399 
400 const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables = {
401 
402     // const WORD32 ixheaacd_pow_table_Q13[129] =
403     {0 >> 4,        131072 >> 4,   330281 >> 4,   567116 >> 4,   832256 >> 4,
404      1120650 >> 4,  1429042 >> 4,  1755122 >> 4,  2097152 >> 4,  2453767 >> 4,
405      2823861 >> 4,  3206517 >> 4,  3600960 >> 4,  4006524 >> 4,  4422631 >> 4,
406      4848770 >> 4,  5284492 >> 4,  5729392 >> 4,  6183105 >> 4,  6645302 >> 4,
407      7115683 >> 4,  7593972 >> 4,  8079916 >> 4,  8573281 >> 4,  9073850 >> 4,
408      9581422 >> 4,  10095808 >> 4, 10616832 >> 4, 11144330 >> 4, 11678147 >> 4,
409      12218136 >> 4, 12764159 >> 4, 13316085 >> 4, 13873792 >> 4, 14437162 >> 4,
410      15006082 >> 4, 15580448 >> 4, 16160157 >> 4, 16745112 >> 4, 17335222 >> 4,
411      17930398 >> 4, 18530554 >> 4, 19135610 >> 4, 19745488 >> 4, 20360112 >> 4,
412      20979411 >> 4, 21603314 >> 4, 22231755 >> 4, 22864669 >> 4, 23501994 >> 4,
413      24143669 >> 4, 24789637 >> 4, 25439841 >> 4, 26094226 >> 4, 26752740 >> 4,
414      27415332 >> 4, 28081952 >> 4, 28752552 >> 4, 29427086 >> 4, 30105507 >> 4,
415      30787772 >> 4, 31473838 >> 4, 32163664 >> 4, 32857208 >> 4, 33554432 >> 4,
416      34255297 >> 4, 34959765 >> 4, 35667801 >> 4, 36379368 >> 4, 37094431 >> 4,
417      37812958 >> 4, 38534914 >> 4, 39260268 >> 4, 39988988 >> 4, 40721043 >> 4,
418      41456403 >> 4, 42195038 >> 4, 42936921 >> 4, 43682022 >> 4, 44430314 >> 4,
419      45181770 >> 4, 45936364 >> 4, 46694070 >> 4, 47454862 >> 4, 48218716 >> 4,
420      48985607 >> 4, 49755512 >> 4, 50528406 >> 4, 51304267 >> 4, 52083073 >> 4,
421      52864802 >> 4, 53649431 >> 4, 54436939 >> 4, 55227306 >> 4, 56020511 >> 4,
422      56816534 >> 4, 57615355 >> 4, 58416954 >> 4, 59221313 >> 4, 60028412 >> 4,
423      60838233 >> 4, 61650759 >> 4, 62465970 >> 4, 63283850 >> 4, 64104381 >> 4,
424      64927547 >> 4, 65753329 >> 4, 66581713 >> 4, 67412681 >> 4, 68246218 >> 4,
425      69082308 >> 4, 69920936 >> 4, 70762086 >> 4, 71605743 >> 4, 72451892 >> 4,
426      73300519 >> 4, 74151609 >> 4, 75005149 >> 4, 75861124 >> 4, 76719520 >> 4,
427      77580324 >> 4, 78443523 >> 4, 79309103 >> 4, 80177051 >> 4, 81047354 >> 4,
428      81920000 >> 4, 82794977 >> 4, 83672271 >> 4, 84551871 >> 4},
429 
430     // const WORD16 scale_table[4] =
431     {
432 
433         16384, 19484, 23171, 27555},
434 
435     // const WORD8 tns_max_bands_tbl[12][2] =
436     {
437         // Long //Short
438         {31, 9},   // 96000
439         {31, 9},   // 88200
440         {34, 10},  // 64000
441         {40, 14},  // 48000
442         {42, 14},  // 44100
443         {51, 14},  // 32000
444         {46, 14},  // 24000
445         {46, 14},  // 22050
446         {42, 14},  // 16000
447         {42, 14},  // 12000
448         {42, 14},  // 11025
449         {39, 14}   //  8000
450     },
451 
452     // const WORD16 tns_coeff3_16[8] =
453     {(WORD16)-0x7e0e, (WORD16)-0x6eda, (WORD16)-0x5247, (WORD16)-0x2bc7,
454      (WORD16)0x0000, (WORD16)0x378a, (WORD16)0x6413, (WORD16)0x7cca},
455 
456     // const WORD16 tns_coeff4_16[16] =
457     {(WORD16)-0x7f74, (WORD16)-0x7b1d, (WORD16)-0x7295, (WORD16)-0x6625,
458      (WORD16)-0x563c, (WORD16)-0x4362, (WORD16)-0x2e3d, (WORD16)-0x1785,
459      (WORD16)0x0000, (WORD16)0x1a9d, (WORD16)0x3410, (WORD16)0x4b3d,
460      (WORD16)0x5f1f, (WORD16)0x6eda, (WORD16)0x79bc, (WORD16)0x7f4c},
461 
462     // const WORD32 scale_mant_tab[PNS_SCALE_MANT_TAB_SIZE] =
463     {0x08000000, 0x09837f05, 0x0b504f33, 0x0d744fcc},
464     // const WORD32 tns_coeff3[8] =
465     {
466         -2114858540, -1859775364, -1380375817, -734482679, 0, 931758215,
467         1678970362, 2093641723,
468     },
469 
470     // const WORD32 tns_coeff4[16] =
471     {
472         -2138322869, -2065504899, -1922348549, -1713729017, -1446750457,
473         -1130504584, -775760644, -394599111, 0, 446486976, 873460283,
474         1262259191, 1595891328, 1859775364, 2042378368, 2135719561,
475     },
476 
477     // const WORD32 tns_coeff3_32[8] =
478     {(WORD32)-0x7e0e2e31, (WORD32)-0x6ed9eba0, (WORD32)-0x5246dd48,
479      (WORD32)-0x2bc750e8, (WORD32)0x00000000, (WORD32)0x3789809a,
480      (WORD32)0x64130dd3, (WORD32)0x7cca7014},
481 
482     // const WORD32 tns_coeff4_32[16] =
483     {(WORD32)-0x7f7437ac, (WORD32)-0x7b1d1a47, (WORD32)-0x7294b5f1,
484      (WORD32)-0x66256db1, (WORD32)-0x563ba8a9, (WORD32)-0x4362210d,
485      (WORD32)-0x2e3d2aba, (WORD32)-0x17851aac, (WORD32)0x00000000,
486      (WORD32)0x1a9cd9ac, (WORD32)0x340ff241, (WORD32)0x4b3c8c11,
487      (WORD32)0x5f1f5ea0, (WORD32)0x6ed9eba0, (WORD32)0x79bc384c,
488      (WORD32)0x7f4c7e52},
489 
490     // const WORD32 tns_max_bands_tbl_usac[(1<<LEN_SAMP_IDX)][2] =
491     {
492 
493         {
494             31, 9,
495         },  // 96000
496         {
497             31, 9,
498         },  // 88200
499         {
500             34, 10,
501         },  // 64000
502         {
503             40, 14,
504         },  // 48000
505         {
506             42, 14,
507         },  // 44100
508         {
509             51, 14,
510         },  // 32000
511         {
512             47, 15,
513         },  // 24000
514         {
515             47, 15,
516         },  // 22050
517         {
518             43, 15,
519         },  // 16000
520         {
521             43, 15,
522         },  // 12000
523         {
524             43, 15,
525         },  // 11025
526         {
527             40, 15,
528         },  // 8000
529         {
530             40, 15,
531         },  // 7350
532         {
533             0, 0,
534         },
535         {
536             0, 0,
537         },
538         {
539             0, 0,
540         }},
541 
542     // const Word8 tns_max_bands_tbl_ld[12][4] =
543     {
544         /*{*/ 31, /* 96000 */
545         /*{*/ 31, /* 88200 */
546         /*{*/ 31, /* 64000 */
547         /*{*/ 31, /* 48000 */
548         /*{*/ 32, /* 44100 */
549         /*{*/ 37, /* 32000 */
550         /*{*/ 31, /* 24000 */
551         /*{*/ 31, /* 22050 */
552         /*{*/ 31, /* 16000 */
553         /*{*/ 31, /* 12000 */
554         /*{*/ 31, /* 11025 */
555         /*{*/ 31, /*  8000 */
556     },
557     // const Word8 tns_max_bands_tbl_480[12][4] =
558     {
559         /*{*/ 31, /* 96000 */
560         /*{*/ 31, /* 88200 */
561         /*{*/ 31, /* 64000 */
562         /*{*/ 31, /* 48000 */
563         /*{*/ 32, /* 44100 */
564         /*{*/ 37, /* 32000 */
565         /*{*/ 30, /* 24000 */
566         /*{*/ 30, /* 22050 */
567         /*{*/ 30, /* 16000 */
568         /*{*/ 30, /* 12000 */
569         /*{*/ 30, /* 11025 */
570         /*{*/ 30, /*  8000 */
571     }
572 
573 };  // end of ia_aac_dec_block_tables_struct */
574 
575 const ia_aac_dec_imdct_tables_struct ixheaacd_imdct_tables = {
576     // const WORD16 cos_array_2048[512] and const WORD16 sine_array_2048[512] =
577 
578     {
579         -32767, 0,      -32767, -101,   -32767, -201,   -32767, -302,   -32766,
580         -402,   -32764, -503,   -32762, -603,   -32760, -704,   -32758, -804,
581         -32756, -905,   -32753, -1005,  -32749, -1106,  -32746, -1206,  -32742,
582         -1307,  -32738, -1407,  -32733, -1507,  -32729, -1608,  -32723, -1708,
583         -32718, -1809,  -32712, -1909,  -32706, -2009,  -32700, -2110,  -32693,
584         -2210,  -32686, -2310,  -32679, -2411,  -32672, -2511,  -32664, -2611,
585         -32656, -2711,  -32647, -2811,  -32638, -2912,  -32629, -3012,  -32620,
586         -3112,  -32610, -3212,  -32600, -3312,  -32590, -3412,  -32579, -3512,
587         -32568, -3612,  -32557, -3712,  -32546, -3812,  -32534, -3911,  -32522,
588         -4011,  -32509, -4111,  -32496, -4211,  -32483, -4310,  -32470, -4410,
589         -32456, -4510,  -32442, -4609,  -32428, -4709,  -32413, -4808,  -32398,
590         -4908,  -32383, -5007,  -32368, -5106,  -32352, -5206,  -32336, -5305,
591         -32319, -5404,  -32303, -5503,  -32286, -5602,  -32268, -5701,  -32251,
592         -5800,  -32233, -5899,  -32214, -5998,  -32196, -6097,  -32177, -6195,
593         -32158, -6294,  -32138, -6393,  -32119, -6491,  -32099, -6590,  -32078,
594         -6688,  -32058, -6787,  -32037, -6885,  -32015, -6983,  -31994, -7081,
595         -31972, -7180,  -31950, -7278,  -31927, -7376,  -31904, -7474,  -31881,
596         -7571,  -31858, -7669,  -31834, -7767,  -31810, -7864,  -31786, -7962,
597         -31761, -8059,  -31737, -8157,  -31711, -8254,  -31686, -8351,  -31660,
598         -8449,  -31634, -8546,  -31608, -8643,  -31581, -8740,  -31554, -8837,
599         -31527, -8933,  -31499, -9030,  -31471, -9127,  -31443, -9223,  -31415,
600         -9320,  -31386, -9416,  -31357, -9512,  -31328, -9608,  -31298, -9704,
601         -31268, -9800,  -31238, -9896,  -31207, -9992,  -31177, -10088, -31146,
602         -10183, -31114, -10279, -31082, -10374, -31050, -10469, -31018, -10565,
603         -30986, -10660, -30953, -10755, -30920, -10850, -30886, -10945, -30853,
604         -11039, -30819, -11134, -30784, -11228, -30750, -11323, -30715, -11417,
605         -30680, -11511, -30644, -11605, -30608, -11699, -30572, -11793, -30536,
606         -11887, -30499, -11980, -30462, -12074, -30425, -12167, -30388, -12261,
607         -30350, -12354, -30312, -12447, -30274, -12540, -30235, -12633, -30196,
608         -12725, -30157, -12818, -30118, -12910, -30078, -13003, -30038, -13095,
609         -29997, -13187, -29957, -13279, -29916, -13371, -29875, -13463, -29833,
610         -13554, -29792, -13646, -29750, -13737, -29707, -13828, -29665, -13919,
611         -29622, -14010, -29579, -14101, -29535, -14192, -29492, -14282, -29448,
612         -14373, -29404, -14463, -29359, -14553, -29314, -14643, -29269, -14733,
613         -29224, -14823, -29178, -14912, -29132, -15002, -29086, -15091, -29040,
614         -15180, -28993, -15269, -28946, -15358, -28899, -15447, -28851, -15535,
615         -28803, -15624, -28755, -15712, -28707, -15800, -28658, -15888, -28610,
616         -15976, -28560, -16064, -28511, -16151, -28461, -16239, -28411, -16326,
617         -28361, -16413, -28311, -16500, -28260, -16587, -28209, -16673, -28158,
618         -16760, -28106, -16846, -28054, -16932, -28002, -17018, -27950, -17104,
619         -27897, -17190, -27844, -17275, -27791, -17361, -27738, -17446, -27684,
620         -17531, -27630, -17616, -27576, -17700, -27522, -17785, -27467, -17869,
621         -27412, -17953, -27357, -18037, -27301, -18121, -27246, -18205, -27190,
622         -18288, -27133, -18372, -27077, -18455, -27020, -18538, -26963, -18621,
623         -26906, -18703, -26848, -18786, -26791, -18868, -26733, -18950, -26674,
624         -19032, -26616, -19114, -26557, -19195, -26498, -19277, -26439, -19358,
625         -26379, -19439, -26320, -19520, -26260, -19601, -26199, -19681, -26139,
626         -19761, -26078, -19841, -26017, -19921, -25956, -20001, -25894, -20081,
627         -25833, -20160, -25771, -20239, -25708, -20318, -25646, -20397, -25583,
628         -20475, -25520, -20554, -25457, -20632, -25394, -20710, -25330, -20788,
629         -25266, -20865, -25202, -20943, -25138, -21020, -25073, -21097, -25008,
630         -21174, -24943, -21251, -24878, -21327, -24812, -21403, -24746, -21479,
631         -24680, -21555, -24614, -21631, -24548, -21706, -24481, -21781, -24414,
632         -21856, -24347, -21931, -24280, -22006, -24212, -22080, -24144, -22154,
633         -24076, -22228, -24008, -22302, -23939, -22375, -23870, -22449, -23801,
634         -22522, -23732, -22595, -23663, -22668, -23593, -22740, -23523, -22812,
635         -23453, -22884, -23383, -22956, -23312, -23028, -23241, -23099, -23170,
636         -23170,
637     },
638 
639     // const WORD8 dig_rev_table8_long[64]
640     {0, 8,  16, 24, 32, 40, 48, 56, 1, 9,  17, 25, 33, 41, 49, 57,
641      2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59,
642      4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61,
643      6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63},
644 
645     // const WORD8 dig_rev_table8_short
646     {0, 1, 2, 3, 4, 5, 6, 7},
647 
648     // const WORD32 fft_twiddle[64 * 7] =
649     {0x00007fff, 0xfe6e7ffe, 0xfcdc7ff6, 0xfb4a7fea, 0xf9b87fd9, 0xf8277fc2,
650      0xf6957fa7, 0xf5057f87, 0xf3747f62, 0xf1e47f38, 0xf0557f0a, 0xeec67ed6,
651      0xed387e9d, 0xebab7e60, 0xea1e7e1e, 0xe8927dd6, 0xe7077d8a, 0xe57d7d3a,
652      0xe3f47ce4, 0xe26d7c89, 0xe0e67c2a, 0xdf617bc6, 0xdddc7b5d, 0xdc597aef,
653      0xdad87a7d, 0xd9587a06, 0xd7d9798a, 0xd65c790a, 0xd4e17885, 0xd36777fb,
654      0xd1ef776c, 0xd07976d9, 0xcf047642, 0xcd9275a6, 0xcc217505, 0xcab27460,
655      0xc94673b6, 0xc7db7308, 0xc6737255, 0xc50d719e, 0xc3a970e3, 0xc2487023,
656      0xc0e96f5f, 0xbf8c6e97, 0xbe326dca, 0xbcda6cf9, 0xbb856c24, 0xba336b4b,
657      0xb8e36a6e, 0xb796698c, 0xb64c68a7, 0xb50567bd, 0xb3c066d0, 0xb27f65de,
658      0xb14064e9, 0xb00563ef, 0xaecc62f2, 0xad9761f1, 0xac6560ec, 0xab365fe4,
659      0xaa0a5ed7, 0xa8e25dc8, 0xa7bd5cb4, 0xa69c5b9d, 0xa57e5a82, 0xa4635964,
660      0xa34c5843, 0xa238571e, 0xa12955f6, 0xa01c54ca, 0x9f14539b, 0x9e0f5269,
661      0x9d0e5134, 0x9c114ffb, 0x9b174ec0, 0x9a224d81, 0x99304c40, 0x98434afb,
662      0x975949b4, 0x9674486a, 0x9592471d, 0x94b545cd, 0x93dc447b, 0x93074326,
663      0x923641ce, 0x91694074, 0x90a13f17, 0x8fdd3db8, 0x8f1d3c57, 0x8e623af3,
664      0x8dab398d, 0x8cf83825, 0x8c4a36ba, 0x8ba0354e, 0x8afb33df, 0x8a5a326e,
665      0x89be30fc, 0x89272f87, 0x88942e11, 0x88052c99, 0x877b2b1f, 0x86f629a4,
666      0x86762827, 0x85fa26a8, 0x85832528, 0x851123a7, 0x84a32224, 0x843a209f,
667      0x83d61f1a, 0x83771d93, 0x831c1c0c, 0x82c61a83, 0x827618f9, 0x822a176e,
668      0x81e215e2, 0x81a01455, 0x816312c8, 0x812a113a, 0x80f60fab, 0x80c80e1c,
669      0x809e0c8c, 0x80790afb, 0x8059096b, 0x803e07d9, 0x80270648, 0x801604b6,
670      0x800a0324, 0x80020192, 0x80000000, 0x8002fe6e, 0x800afcdc, 0x8016fb4a,
671      0x8027f9b8, 0x803ef827, 0x8059f695, 0x8079f505, 0x809ef374, 0x80c8f1e4,
672      0x80f6f055, 0x812aeec6, 0x8163ed38, 0x81a0ebab, 0x81e2ea1e, 0x822ae892,
673      0x8276e707, 0x82c6e57d, 0x831ce3f4, 0x8377e26d, 0x83d6e0e6, 0x843adf61,
674      0x84a3dddc, 0x8511dc59, 0x8583dad8, 0x85fad958, 0x8676d7d9, 0x86f6d65c,
675      0x877bd4e1, 0x8805d367, 0x8894d1ef, 0x8927d079, 0x89becf04, 0x8a5acd92,
676      0x8afbcc21, 0x8ba0cab2, 0x8c4ac946, 0x8cf8c7db, 0x8dabc673, 0x8e62c50d,
677      0x8f1dc3a9, 0x8fddc248, 0x90a1c0e9, 0x9169bf8c, 0x9236be32, 0x9307bcda,
678      0x93dcbb85, 0x94b5ba33, 0x9592b8e3, 0x9674b796, 0x9759b64c, 0x9843b505,
679      0x9930b3c0, 0x9a22b27f, 0x9b17b140, 0x9c11b005, 0x9d0eaecc, 0x9e0fad97,
680      0x9f14ac65, 0xa01cab36, 0xa129aa0a, 0xa238a8e2, 0xa34ca7bd, 0xa463a69c,
681      0xa57ea57e, 0xa69ca463, 0xa7bda34c, 0xa8e2a238, 0xaa0aa129, 0xab36a01c,
682      0xac659f14, 0xad979e0f, 0xaecc9d0e, 0xb0059c11, 0xb1409b17, 0xb27f9a22,
683      0xb3c09930, 0xb5059843, 0xb64c9759, 0xb7969674, 0xb8e39592, 0xba3394b5,
684      0xbb8593dc, 0xbcda9307, 0xbe329236, 0xbf8c9169, 0xc0e990a1, 0xc2488fdd,
685      0xc3a98f1d, 0xc50d8e62, 0xc6738dab, 0xc7db8cf8, 0xc9468c4a, 0xcab28ba0,
686      0xcc218afb, 0xcd928a5a, 0xcf0489be, 0xd0798927, 0xd1ef8894, 0xd3678805,
687      0xd4e1877b, 0xd65c86f6, 0xd7d98676, 0xd95885fa, 0xdad88583, 0xdc598511,
688      0xdddc84a3, 0xdf61843a, 0xe0e683d6, 0xe26d8377, 0xe3f4831c, 0xe57d82c6,
689      0xe7078276, 0xe892822a, 0xea1e81e2, 0xebab81a0, 0xed388163, 0xeec6812a,
690      0xf05580f6, 0xf1e480c8, 0xf374809e, 0xf5058079, 0xf6958059, 0xf827803e,
691      0xf9b88027, 0xfb4a8016, 0xfcdc800a, 0xfe6e8002, 0x00008000, 0x01928002,
692      0x0324800a, 0x04b68016, 0x06488027, 0x07d9803e, 0x096b8059, 0x0afb8079,
693      0x0c8c809e, 0x0e1c80c8, 0x0fab80f6, 0x113a812a, 0x12c88163, 0x145581a0,
694      0x15e281e2, 0x176e822a, 0x18f98276, 0x1a8382c6, 0x1c0c831c, 0x1d938377,
695      0x1f1a83d6, 0x209f843a, 0x222484a3, 0x23a78511, 0x25288583, 0x26a885fa,
696      0x28278676, 0x29a486f6, 0x2b1f877b, 0x2c998805, 0x2e118894, 0x2f878927,
697      0x30fc89be, 0x326e8a5a, 0x33df8afb, 0x354e8ba0, 0x36ba8c4a, 0x38258cf8,
698      0x398d8dab, 0x3af38e62, 0x3c578f1d, 0x3db88fdd, 0x3f1790a1, 0x40749169,
699      0x41ce9236, 0x43269307, 0x447b93dc, 0x45cd94b5, 0x471d9592, 0x486a9674,
700      0x49b49759, 0x4afb9843, 0x4c409930, 0x4d819a22, 0x4ec09b17, 0x4ffb9c11,
701      0x51349d0e, 0x52699e0f, 0x539b9f14, 0x54caa01c, 0x55f6a129, 0x571ea238,
702      0x5843a34c, 0x5964a463, 0x5a82a57e, 0x5b9da69c, 0x5cb4a7bd, 0x5dc8a8e2,
703      0x5ed7aa0a, 0x5fe4ab36, 0x60ecac65, 0x61f1ad97, 0x62f2aecc, 0x63efb005,
704      0x64e9b140, 0x65deb27f, 0x66d0b3c0, 0x67bdb505, 0x68a7b64c, 0x698cb796,
705      0x6a6eb8e3, 0x6b4bba33, 0x6c24bb85, 0x6cf9bcda, 0x6dcabe32, 0x6e97bf8c,
706      0x6f5fc0e9, 0x7023c248, 0x70e3c3a9, 0x719ec50d, 0x7255c673, 0x7308c7db,
707      0x73b6c946, 0x7460cab2, 0x7505cc21, 0x75a6cd92, 0x7642cf04, 0x76d9d079,
708      0x776cd1ef, 0x77fbd367, 0x7885d4e1, 0x790ad65c, 0x798ad7d9, 0x7a06d958,
709      0x7a7ddad8, 0x7aefdc59, 0x7b5ddddc, 0x7bc6df61, 0x7c2ae0e6, 0x7c89e26d,
710      0x7ce4e3f4, 0x7d3ae57d, 0x7d8ae707, 0x7dd6e892, 0x7e1eea1e, 0x7e60ebab,
711      0x7e9ded38, 0x7ed6eec6, 0x7f0af055, 0x7f38f1e4, 0x7f62f374, 0x7f87f505,
712      0x7fa7f695, 0x7fc2f827, 0x7fd9f9b8, 0x7feafb4a, 0x7ff6fcdc, 0x7ffefe6e,
713      0x7fff0000, 0x7ffe0192, 0x7ff60324, 0x7fea04b6, 0x7fd90648, 0x7fc207d9,
714      0x7fa7096b, 0x7f870afb, 0x7f620c8c, 0x7f380e1c, 0x7f0a0fab, 0x7ed6113a,
715      0x7e9d12c8, 0x7e601455, 0x7e1e15e2, 0x7dd6176e, 0x7d8a18f9, 0x7d3a1a83,
716      0x7ce41c0c, 0x7c891d93, 0x7c2a1f1a, 0x7bc6209f, 0x7b5d2224, 0x7aef23a7,
717      0x7a7d2528, 0x7a0626a8, 0x798a2827, 0x790a29a4, 0x78852b1f, 0x77fb2c99,
718      0x776c2e11, 0x76d92f87, 0x764230fc, 0x75a6326e, 0x750533df, 0x7460354e,
719      0x73b636ba, 0x73083825, 0x7255398d, 0x719e3af3, 0x70e33c57, 0x70233db8,
720      0x6f5f3f17, 0x6e974074, 0x6dca41ce, 0x6cf94326, 0x6c24447b, 0x6b4b45cd,
721      0x6a6e471d, 0x698c486a, 0x68a749b4, 0x67bd4afb, 0x66d04c40, 0x65de4d81,
722      0x64e94ec0, 0x63ef4ffb, 0x62f25134, 0x61f15269},
723 
724     // const WORD16 only_long_window_sine[1024] =
725     {0x0019, 0x7fff, 0x004b, 0x7fff, 0x007e, 0x7fff, 0x00b0, 0x7fff, 0x00e2,
726      0x7fff, 0x0114, 0x7fff, 0x0147, 0x7ffe, 0x0179, 0x7ffe, 0x01ab, 0x7ffd,
727      0x01dd, 0x7ffd, 0x0210, 0x7ffc, 0x0242, 0x7ffb, 0x0274, 0x7ffa, 0x02a7,
728      0x7ff9, 0x02d9, 0x7ff8, 0x030b, 0x7ff7, 0x033d, 0x7ff6, 0x0370, 0x7ff4,
729      0x03a2, 0x7ff3, 0x03d4, 0x7ff1, 0x0406, 0x7ff0, 0x0439, 0x7fee, 0x046b,
730      0x7fec, 0x049d, 0x7feb, 0x04cf, 0x7fe9, 0x0501, 0x7fe7, 0x0534, 0x7fe5,
731      0x0566, 0x7fe3, 0x0598, 0x7fe1, 0x05ca, 0x7fde, 0x05fd, 0x7fdc, 0x062f,
732      0x7fda, 0x0661, 0x7fd7, 0x0693, 0x7fd5, 0x06c5, 0x7fd2, 0x06f8, 0x7fcf,
733      0x072a, 0x7fcd, 0x075c, 0x7fca, 0x078e, 0x7fc7, 0x07c0, 0x7fc4, 0x07f2,
734      0x7fc1, 0x0825, 0x7fbe, 0x0857, 0x7fba, 0x0889, 0x7fb7, 0x08bb, 0x7fb4,
735      0x08ed, 0x7fb0, 0x091f, 0x7fad, 0x0952, 0x7fa9, 0x0984, 0x7fa5, 0x09b6,
736      0x7fa2, 0x09e8, 0x7f9e, 0x0a1a, 0x7f9a, 0x0a4c, 0x7f96, 0x0a7e, 0x7f92,
737      0x0ab0, 0x7f8e, 0x0ae2, 0x7f89, 0x0b14, 0x7f85, 0x0b47, 0x7f81, 0x0b79,
738      0x7f7c, 0x0bab, 0x7f78, 0x0bdd, 0x7f73, 0x0c0f, 0x7f6e, 0x0c41, 0x7f6a,
739      0x0c73, 0x7f65, 0x0ca5, 0x7f60, 0x0cd7, 0x7f5b, 0x0d09, 0x7f56, 0x0d3b,
740      0x7f50, 0x0d6d, 0x7f4b, 0x0d9f, 0x7f46, 0x0dd1, 0x7f41, 0x0e03, 0x7f3b,
741      0x0e35, 0x7f36, 0x0e67, 0x7f30, 0x0e99, 0x7f2a, 0x0ecb, 0x7f24, 0x0efc,
742      0x7f1f, 0x0f2e, 0x7f19, 0x0f60, 0x7f13, 0x0f92, 0x7f0d, 0x0fc4, 0x7f06,
743      0x0ff6, 0x7f00, 0x1028, 0x7efa, 0x105a, 0x7ef4, 0x108c, 0x7eed, 0x10bd,
744      0x7ee7, 0x10ef, 0x7ee0, 0x1121, 0x7ed9, 0x1153, 0x7ed3, 0x1185, 0x7ecc,
745      0x11b6, 0x7ec5, 0x11e8, 0x7ebe, 0x121a, 0x7eb7, 0x124c, 0x7eb0, 0x127d,
746      0x7ea8, 0x12af, 0x7ea1, 0x12e1, 0x7e9a, 0x1313, 0x7e92, 0x1344, 0x7e8b,
747      0x1376, 0x7e83, 0x13a8, 0x7e7b, 0x13d9, 0x7e74, 0x140b, 0x7e6c, 0x143d,
748      0x7e64, 0x146e, 0x7e5c, 0x14a0, 0x7e54, 0x14d1, 0x7e4c, 0x1503, 0x7e43,
749      0x1535, 0x7e3b, 0x1566, 0x7e33, 0x1598, 0x7e2a, 0x15c9, 0x7e22, 0x15fb,
750      0x7e19, 0x162c, 0x7e11, 0x165e, 0x7e08, 0x168f, 0x7dff, 0x16c1, 0x7df6,
751      0x16f2, 0x7ded, 0x1724, 0x7de4, 0x1755, 0x7ddb, 0x1787, 0x7dd2, 0x17b8,
752      0x7dc9, 0x17e9, 0x7dbf, 0x181b, 0x7db6, 0x184c, 0x7dac, 0x187d, 0x7da3,
753      0x18af, 0x7d99, 0x18e0, 0x7d8f, 0x1911, 0x7d85, 0x1943, 0x7d7c, 0x1974,
754      0x7d72, 0x19a5, 0x7d68, 0x19d6, 0x7d5d, 0x1a08, 0x7d53, 0x1a39, 0x7d49,
755      0x1a6a, 0x7d3f, 0x1a9b, 0x7d34, 0x1acc, 0x7d2a, 0x1afe, 0x7d1f, 0x1b2f,
756      0x7d15, 0x1b60, 0x7d0a, 0x1b91, 0x7cff, 0x1bc2, 0x7cf4, 0x1bf3, 0x7ce9,
757      0x1c24, 0x7cde, 0x1c55, 0x7cd3, 0x1c86, 0x7cc8, 0x1cb7, 0x7cbd, 0x1ce8,
758      0x7cb1, 0x1d19, 0x7ca6, 0x1d4a, 0x7c9b, 0x1d7b, 0x7c8f, 0x1dac, 0x7c83,
759      0x1ddd, 0x7c78, 0x1e0e, 0x7c6c, 0x1e3e, 0x7c60, 0x1e6f, 0x7c54, 0x1ea0,
760      0x7c48, 0x1ed1, 0x7c3c, 0x1f02, 0x7c30, 0x1f32, 0x7c24, 0x1f63, 0x7c18,
761      0x1f94, 0x7c0b, 0x1fc5, 0x7bff, 0x1ff5, 0x7bf2, 0x2026, 0x7be6, 0x2057,
762      0x7bd9, 0x2087, 0x7bcc, 0x20b8, 0x7bbf, 0x20e8, 0x7bb3, 0x2119, 0x7ba6,
763      0x2149, 0x7b99, 0x217a, 0x7b8b, 0x21aa, 0x7b7e, 0x21db, 0x7b71, 0x220b,
764      0x7b64, 0x223c, 0x7b56, 0x226c, 0x7b49, 0x229d, 0x7b3b, 0x22cd, 0x7b2e,
765      0x22fd, 0x7b20, 0x232e, 0x7b12, 0x235e, 0x7b04, 0x238e, 0x7af6, 0x23bf,
766      0x7ae8, 0x23ef, 0x7ada, 0x241f, 0x7acc, 0x244f, 0x7abe, 0x2480, 0x7ab0,
767      0x24b0, 0x7aa1, 0x24e0, 0x7a93, 0x2510, 0x7a84, 0x2540, 0x7a76, 0x2570,
768      0x7a67, 0x25a0, 0x7a58, 0x25d0, 0x7a49, 0x2600, 0x7a3b, 0x2630, 0x7a2c,
769      0x2660, 0x7a1d, 0x2690, 0x7a0e, 0x26c0, 0x79fe, 0x26f0, 0x79ef, 0x2720,
770      0x79e0, 0x2750, 0x79d0, 0x2780, 0x79c1, 0x27af, 0x79b1, 0x27df, 0x79a2,
771      0x280f, 0x7992, 0x283f, 0x7982, 0x286e, 0x7972, 0x289e, 0x7962, 0x28ce,
772      0x7952, 0x28fd, 0x7942, 0x292d, 0x7932, 0x295c, 0x7922, 0x298c, 0x7912,
773      0x29bc, 0x7901, 0x29eb, 0x78f1, 0x2a1b, 0x78e1, 0x2a4a, 0x78d0, 0x2a79,
774      0x78bf, 0x2aa9, 0x78af, 0x2ad8, 0x789e, 0x2b08, 0x788d, 0x2b37, 0x787c,
775      0x2b66, 0x786b, 0x2b95, 0x785a, 0x2bc5, 0x7849, 0x2bf4, 0x7838, 0x2c23,
776      0x7826, 0x2c52, 0x7815, 0x2c81, 0x7803, 0x2cb1, 0x77f2, 0x2ce0, 0x77e0,
777      0x2d0f, 0x77cf, 0x2d3e, 0x77bd, 0x2d6d, 0x77ab, 0x2d9c, 0x7799, 0x2dcb,
778      0x7787, 0x2dfa, 0x7775, 0x2e29, 0x7763, 0x2e57, 0x7751, 0x2e86, 0x773f,
779      0x2eb5, 0x772d, 0x2ee4, 0x771a, 0x2f13, 0x7708, 0x2f41, 0x76f5, 0x2f70,
780      0x76e3, 0x2f9f, 0x76d0, 0x2fcd, 0x76bd, 0x2ffc, 0x76aa, 0x302b, 0x7698,
781      0x3059, 0x7685, 0x3088, 0x7672, 0x30b6, 0x765e, 0x30e5, 0x764b, 0x3113,
782      0x7638, 0x3141, 0x7625, 0x3170, 0x7611, 0x319e, 0x75fe, 0x31cc, 0x75ea,
783      0x31fb, 0x75d7, 0x3229, 0x75c3, 0x3257, 0x75af, 0x3285, 0x759c, 0x32b4,
784      0x7588, 0x32e2, 0x7574, 0x3310, 0x7560, 0x333e, 0x754c, 0x336c, 0x7538,
785      0x339a, 0x7523, 0x33c8, 0x750f, 0x33f6, 0x74fb, 0x3424, 0x74e6, 0x3452,
786      0x74d2, 0x3480, 0x74bd, 0x34ad, 0x74a8, 0x34db, 0x7494, 0x3509, 0x747f,
787      0x3537, 0x746a, 0x3564, 0x7455, 0x3592, 0x7440, 0x35c0, 0x742b, 0x35ed,
788      0x7416, 0x361b, 0x7401, 0x3648, 0x73eb, 0x3676, 0x73d6, 0x36a3, 0x73c1,
789      0x36d1, 0x73ab, 0x36fe, 0x7396, 0x372c, 0x7380, 0x3759, 0x736a, 0x3786,
790      0x7354, 0x37b4, 0x733f, 0x37e1, 0x7329, 0x380e, 0x7313, 0x383b, 0x72fd,
791      0x3868, 0x72e7, 0x3895, 0x72d0, 0x38c2, 0x72ba, 0x38f0, 0x72a4, 0x391d,
792      0x728d, 0x3949, 0x7277, 0x3976, 0x7260, 0x39a3, 0x724a, 0x39d0, 0x7233,
793      0x39fd, 0x721c, 0x3a2a, 0x7206, 0x3a57, 0x71ef, 0x3a83, 0x71d8, 0x3ab0,
794      0x71c1, 0x3add, 0x71aa, 0x3b09, 0x7193, 0x3b36, 0x717b, 0x3b62, 0x7164,
795      0x3b8f, 0x714d, 0x3bbb, 0x7135, 0x3be8, 0x711e, 0x3c14, 0x7106, 0x3c41,
796      0x70ef, 0x3c6d, 0x70d7, 0x3c99, 0x70bf, 0x3cc5, 0x70a7, 0x3cf2, 0x708f,
797      0x3d1e, 0x7077, 0x3d4a, 0x705f, 0x3d76, 0x7047, 0x3da2, 0x702f, 0x3dce,
798      0x7017, 0x3dfa, 0x6fff, 0x3e26, 0x6fe6, 0x3e52, 0x6fce, 0x3e7e, 0x6fb5,
799      0x3eaa, 0x6f9d, 0x3ed6, 0x6f84, 0x3f01, 0x6f6b, 0x3f2d, 0x6f53, 0x3f59,
800      0x6f3a, 0x3f84, 0x6f21, 0x3fb0, 0x6f08, 0x3fdc, 0x6eef, 0x4007, 0x6ed6,
801      0x4033, 0x6ebd, 0x405e, 0x6ea3, 0x408a, 0x6e8a, 0x40b5, 0x6e71, 0x40e0,
802      0x6e57, 0x410c, 0x6e3e, 0x4137, 0x6e24, 0x4162, 0x6e0a, 0x418d, 0x6df1,
803      0x41b9, 0x6dd7, 0x41e4, 0x6dbd, 0x420f, 0x6da3, 0x423a, 0x6d89, 0x4265,
804      0x6d6f, 0x4290, 0x6d55, 0x42bb, 0x6d3b, 0x42e6, 0x6d21, 0x4310, 0x6d06,
805      0x433b, 0x6cec, 0x4366, 0x6cd2, 0x4391, 0x6cb7, 0x43bb, 0x6c9c, 0x43e6,
806      0x6c82, 0x4411, 0x6c67, 0x443b, 0x6c4c, 0x4466, 0x6c32, 0x4490, 0x6c17,
807      0x44ba, 0x6bfc, 0x44e5, 0x6be1, 0x450f, 0x6bc6, 0x4539, 0x6baa, 0x4564,
808      0x6b8f, 0x458e, 0x6b74, 0x45b8, 0x6b59, 0x45e2, 0x6b3d, 0x460c, 0x6b22,
809      0x4636, 0x6b06, 0x4660, 0x6aeb, 0x468a, 0x6acf, 0x46b4, 0x6ab3, 0x46de,
810      0x6a97, 0x4708, 0x6a7c, 0x4732, 0x6a60, 0x475c, 0x6a44, 0x4785, 0x6a28,
811      0x47af, 0x6a0b, 0x47d9, 0x69ef, 0x4802, 0x69d3, 0x482c, 0x69b7, 0x4855,
812      0x699a, 0x487f, 0x697e, 0x48a8, 0x6961, 0x48d1, 0x6945, 0x48fb, 0x6928,
813      0x4924, 0x690c, 0x494d, 0x68ef, 0x4976, 0x68d2, 0x49a0, 0x68b5, 0x49c9,
814      0x6898, 0x49f2, 0x687b, 0x4a1b, 0x685e, 0x4a44, 0x6841, 0x4a6d, 0x6824,
815      0x4a95, 0x6806, 0x4abe, 0x67e9, 0x4ae7, 0x67cc, 0x4b10, 0x67ae, 0x4b38,
816      0x6791, 0x4b61, 0x6773, 0x4b8a, 0x6756, 0x4bb2, 0x6738, 0x4bdb, 0x671a,
817      0x4c03, 0x66fc, 0x4c2c, 0x66de, 0x4c54, 0x66c1, 0x4c7c, 0x66a3, 0x4ca5,
818      0x6684, 0x4ccd, 0x6666, 0x4cf5, 0x6648, 0x4d1d, 0x662a, 0x4d45, 0x660c,
819      0x4d6d, 0x65ed, 0x4d95, 0x65cf, 0x4dbd, 0x65b0, 0x4de5, 0x6592, 0x4e0d,
820      0x6573, 0x4e35, 0x6554, 0x4e5d, 0x6536, 0x4e84, 0x6517, 0x4eac, 0x64f8,
821      0x4ed4, 0x64d9, 0x4efb, 0x64ba, 0x4f23, 0x649b, 0x4f4a, 0x647c, 0x4f72,
822      0x645d, 0x4f99, 0x643e, 0x4fc0, 0x641e, 0x4fe8, 0x63ff, 0x500f, 0x63df,
823      0x5036, 0x63c0, 0x505d, 0x63a0, 0x5084, 0x6381, 0x50ac, 0x6361, 0x50d3,
824      0x6342, 0x50f9, 0x6322, 0x5120, 0x6302, 0x5147, 0x62e2, 0x516e, 0x62c2,
825      0x5195, 0x62a2, 0x51bb, 0x6282, 0x51e2, 0x6262, 0x5209, 0x6242, 0x522f,
826      0x6221, 0x5256, 0x6201, 0x527c, 0x61e1, 0x52a3, 0x61c0, 0x52c9, 0x61a0,
827      0x52ef, 0x617f, 0x5316, 0x615f, 0x533c, 0x613e, 0x5362, 0x611d, 0x5388,
828      0x60fd, 0x53ae, 0x60dc, 0x53d4, 0x60bb, 0x53fa, 0x609a, 0x5420, 0x6079,
829      0x5446, 0x6058, 0x546c, 0x6037, 0x5491, 0x6016, 0x54b7, 0x5ff4, 0x54dd,
830      0x5fd3, 0x5502, 0x5fb2, 0x5528, 0x5f90, 0x554e, 0x5f6f, 0x5573, 0x5f4d,
831      0x5598, 0x5f2c, 0x55be, 0x5f0a, 0x55e3, 0x5ee8, 0x5608, 0x5ec7, 0x562d,
832      0x5ea5, 0x5653, 0x5e83, 0x5678, 0x5e61, 0x569d, 0x5e3f, 0x56c2, 0x5e1d,
833      0x56e7, 0x5dfb, 0x570c, 0x5dd9, 0x5730, 0x5db7, 0x5755, 0x5d94, 0x577a,
834      0x5d72, 0x579f, 0x5d50, 0x57c3, 0x5d2d, 0x57e8, 0x5d0b, 0x580c, 0x5ce8,
835      0x5831, 0x5cc5, 0x5855, 0x5ca3, 0x5879, 0x5c80, 0x589e, 0x5c5d, 0x58c2,
836      0x5c3a, 0x58e6, 0x5c18, 0x590a, 0x5bf5, 0x592e, 0x5bd2, 0x5952, 0x5baf,
837      0x5976, 0x5b8c, 0x599a, 0x5b68, 0x59be, 0x5b45, 0x59e2, 0x5b22, 0x5a06,
838      0x5aff, 0x5a29, 0x5adb, 0x5a4d, 0x5ab8, 0x5a71, 0x5a94},
839 
840     // const WORD16 only_long_window_kbd[1024] =
841     {0x000a, 0x7fff, 0x000e, 0x7fff, 0x0012, 0x7fff, 0x0015, 0x7fff, 0x0019,
842      0x7fff, 0x001c, 0x7fff, 0x0020, 0x7fff, 0x0023, 0x7fff, 0x0026, 0x7fff,
843      0x002a, 0x7fff, 0x002d, 0x7fff, 0x0030, 0x7fff, 0x0034, 0x7fff, 0x0038,
844      0x7fff, 0x003b, 0x7fff, 0x003f, 0x7fff, 0x0043, 0x7fff, 0x0047, 0x7fff,
845      0x004b, 0x7fff, 0x004f, 0x7fff, 0x0053, 0x7fff, 0x0057, 0x7fff, 0x005b,
846      0x7fff, 0x0060, 0x7fff, 0x0064, 0x7fff, 0x0069, 0x7fff, 0x006d, 0x7fff,
847      0x0072, 0x7fff, 0x0077, 0x7fff, 0x007c, 0x7fff, 0x0081, 0x7fff, 0x0086,
848      0x7fff, 0x008b, 0x7fff, 0x0091, 0x7fff, 0x0096, 0x7fff, 0x009c, 0x7fff,
849      0x00a1, 0x7fff, 0x00a7, 0x7fff, 0x00ad, 0x7fff, 0x00b3, 0x7fff, 0x00b9,
850      0x7fff, 0x00bf, 0x7fff, 0x00c6, 0x7fff, 0x00cc, 0x7fff, 0x00d3, 0x7fff,
851      0x00da, 0x7fff, 0x00e0, 0x7fff, 0x00e7, 0x7fff, 0x00ee, 0x7fff, 0x00f5,
852      0x7fff, 0x00fd, 0x7fff, 0x0104, 0x7fff, 0x010c, 0x7fff, 0x0113, 0x7fff,
853      0x011b, 0x7fff, 0x0123, 0x7fff, 0x012b, 0x7fff, 0x0133, 0x7fff, 0x013c,
854      0x7ffe, 0x0144, 0x7ffe, 0x014d, 0x7ffe, 0x0156, 0x7ffe, 0x015f, 0x7ffe,
855      0x0168, 0x7ffe, 0x0171, 0x7ffe, 0x017a, 0x7ffe, 0x0183, 0x7ffe, 0x018d,
856      0x7ffe, 0x0197, 0x7ffd, 0x01a1, 0x7ffd, 0x01ab, 0x7ffd, 0x01b5, 0x7ffd,
857      0x01bf, 0x7ffd, 0x01ca, 0x7ffd, 0x01d4, 0x7ffd, 0x01df, 0x7ffc, 0x01ea,
858      0x7ffc, 0x01f5, 0x7ffc, 0x0200, 0x7ffc, 0x020c, 0x7ffc, 0x0217, 0x7ffc,
859      0x0223, 0x7ffb, 0x022f, 0x7ffb, 0x023b, 0x7ffb, 0x0247, 0x7ffb, 0x0253,
860      0x7ffb, 0x0260, 0x7ffa, 0x026d, 0x7ffa, 0x027a, 0x7ffa, 0x0287, 0x7ffa,
861      0x0294, 0x7ff9, 0x02a1, 0x7ff9, 0x02af, 0x7ff9, 0x02bc, 0x7ff9, 0x02ca,
862      0x7ff8, 0x02d8, 0x7ff8, 0x02e7, 0x7ff8, 0x02f5, 0x7ff7, 0x0304, 0x7ff7,
863      0x0312, 0x7ff7, 0x0321, 0x7ff6, 0x0331, 0x7ff6, 0x0340, 0x7ff5, 0x034f,
864      0x7ff5, 0x035f, 0x7ff5, 0x036f, 0x7ff4, 0x037f, 0x7ff4, 0x038f, 0x7ff3,
865      0x03a0, 0x7ff3, 0x03b0, 0x7ff2, 0x03c1, 0x7ff2, 0x03d2, 0x7ff1, 0x03e3,
866      0x7ff1, 0x03f5, 0x7ff0, 0x0406, 0x7ff0, 0x0418, 0x7fef, 0x042a, 0x7fef,
867      0x043c, 0x7fee, 0x044f, 0x7fed, 0x0461, 0x7fed, 0x0474, 0x7fec, 0x0487,
868      0x7feb, 0x049a, 0x7feb, 0x04ae, 0x7fea, 0x04c1, 0x7fe9, 0x04d5, 0x7fe9,
869      0x04e9, 0x7fe8, 0x04fd, 0x7fe7, 0x0512, 0x7fe6, 0x0527, 0x7fe5, 0x053b,
870      0x7fe5, 0x0550, 0x7fe4, 0x0566, 0x7fe3, 0x057b, 0x7fe2, 0x0591, 0x7fe1,
871      0x05a7, 0x7fe0, 0x05bd, 0x7fdf, 0x05d3, 0x7fde, 0x05ea, 0x7fdd, 0x0601,
872      0x7fdc, 0x0618, 0x7fdb, 0x062f, 0x7fda, 0x0646, 0x7fd9, 0x065e, 0x7fd7,
873      0x0676, 0x7fd6, 0x068e, 0x7fd5, 0x06a6, 0x7fd4, 0x06bf, 0x7fd2, 0x06d8,
874      0x7fd1, 0x06f1, 0x7fd0, 0x070a, 0x7fce, 0x0723, 0x7fcd, 0x073d, 0x7fcc,
875      0x0757, 0x7fca, 0x0771, 0x7fc9, 0x078c, 0x7fc7, 0x07a6, 0x7fc5, 0x07c1,
876      0x7fc4, 0x07dc, 0x7fc2, 0x07f7, 0x7fc0, 0x0813, 0x7fbf, 0x082f, 0x7fbd,
877      0x084b, 0x7fbb, 0x0867, 0x7fb9, 0x0884, 0x7fb7, 0x08a0, 0x7fb6, 0x08bd,
878      0x7fb4, 0x08da, 0x7fb2, 0x08f8, 0x7faf, 0x0916, 0x7fad, 0x0934, 0x7fab,
879      0x0952, 0x7fa9, 0x0970, 0x7fa7, 0x098f, 0x7fa5, 0x09ae, 0x7fa2, 0x09cd,
880      0x7fa0, 0x09ec, 0x7f9d, 0x0a0c, 0x7f9b, 0x0a2c, 0x7f98, 0x0a4c, 0x7f96,
881      0x0a6c, 0x7f93, 0x0a8d, 0x7f91, 0x0aae, 0x7f8e, 0x0acf, 0x7f8b, 0x0af0,
882      0x7f88, 0x0b12, 0x7f85, 0x0b33, 0x7f82, 0x0b55, 0x7f7f, 0x0b78, 0x7f7c,
883      0x0b9a, 0x7f79, 0x0bbd, 0x7f76, 0x0be0, 0x7f73, 0x0c04, 0x7f6f, 0x0c27,
884      0x7f6c, 0x0c4b, 0x7f69, 0x0c6f, 0x7f65, 0x0c93, 0x7f61, 0x0cb8, 0x7f5e,
885      0x0cdd, 0x7f5a, 0x0d02, 0x7f56, 0x0d27, 0x7f53, 0x0d4d, 0x7f4f, 0x0d73,
886      0x7f4b, 0x0d99, 0x7f47, 0x0dbf, 0x7f43, 0x0de6, 0x7f3e, 0x0e0c, 0x7f3a,
887      0x0e34, 0x7f36, 0x0e5b, 0x7f31, 0x0e83, 0x7f2d, 0x0eaa, 0x7f28, 0x0ed3,
888      0x7f24, 0x0efb, 0x7f1f, 0x0f23, 0x7f1a, 0x0f4c, 0x7f15, 0x0f75, 0x7f10,
889      0x0f9f, 0x7f0b, 0x0fc8, 0x7f06, 0x0ff2, 0x7f01, 0x101c, 0x7efb, 0x1047,
890      0x7ef6, 0x1071, 0x7ef0, 0x109c, 0x7eeb, 0x10c8, 0x7ee5, 0x10f3, 0x7edf,
891      0x111f, 0x7eda, 0x114a, 0x7ed4, 0x1177, 0x7ece, 0x11a3, 0x7ec7, 0x11d0,
892      0x7ec1, 0x11fd, 0x7ebb, 0x122a, 0x7eb4, 0x1257, 0x7eae, 0x1285, 0x7ea7,
893      0x12b3, 0x7ea0, 0x12e1, 0x7e9a, 0x130f, 0x7e93, 0x133e, 0x7e8c, 0x136d,
894      0x7e84, 0x139c, 0x7e7d, 0x13cc, 0x7e76, 0x13fb, 0x7e6e, 0x142b, 0x7e67,
895      0x145b, 0x7e5f, 0x148c, 0x7e57, 0x14bc, 0x7e4f, 0x14ed, 0x7e47, 0x151e,
896      0x7e3f, 0x1550, 0x7e37, 0x1581, 0x7e2e, 0x15b3, 0x7e26, 0x15e5, 0x7e1d,
897      0x1618, 0x7e14, 0x164a, 0x7e0b, 0x167d, 0x7e02, 0x16b0, 0x7df9, 0x16e4,
898      0x7df0, 0x1717, 0x7de6, 0x174b, 0x7ddd, 0x177f, 0x7dd3, 0x17b3, 0x7dc9,
899      0x17e8, 0x7dbf, 0x181d, 0x7db5, 0x1852, 0x7dab, 0x1887, 0x7da1, 0x18bc,
900      0x7d96, 0x18f2, 0x7d8c, 0x1928, 0x7d81, 0x195e, 0x7d76, 0x1995, 0x7d6b,
901      0x19cb, 0x7d60, 0x1a02, 0x7d54, 0x1a39, 0x7d49, 0x1a71, 0x7d3d, 0x1aa8,
902      0x7d31, 0x1ae0, 0x7d26, 0x1b18, 0x7d19, 0x1b50, 0x7d0d, 0x1b89, 0x7d01,
903      0x1bc2, 0x7cf4, 0x1bfb, 0x7ce8, 0x1c34, 0x7cdb, 0x1c6d, 0x7cce, 0x1ca7,
904      0x7cc1, 0x1ce1, 0x7cb3, 0x1d1b, 0x7ca6, 0x1d55, 0x7c98, 0x1d8f, 0x7c8a,
905      0x1dca, 0x7c7c, 0x1e05, 0x7c6e, 0x1e40, 0x7c60, 0x1e7b, 0x7c51, 0x1eb7,
906      0x7c43, 0x1ef3, 0x7c34, 0x1f2f, 0x7c25, 0x1f6b, 0x7c16, 0x1fa7, 0x7c06,
907      0x1fe4, 0x7bf7, 0x2021, 0x7be7, 0x205e, 0x7bd7, 0x209b, 0x7bc7, 0x20d8,
908      0x7bb7, 0x2116, 0x7ba6, 0x2154, 0x7b96, 0x2192, 0x7b85, 0x21d0, 0x7b74,
909      0x220e, 0x7b63, 0x224d, 0x7b52, 0x228c, 0x7b40, 0x22cb, 0x7b2e, 0x230a,
910      0x7b1c, 0x2349, 0x7b0a, 0x2389, 0x7af8, 0x23c8, 0x7ae6, 0x2408, 0x7ad3,
911      0x2448, 0x7ac0, 0x2489, 0x7aad, 0x24c9, 0x7a9a, 0x250a, 0x7a86, 0x254b,
912      0x7a73, 0x258c, 0x7a5f, 0x25cd, 0x7a4b, 0x260e, 0x7a36, 0x2650, 0x7a22,
913      0x2691, 0x7a0d, 0x26d3, 0x79f8, 0x2715, 0x79e3, 0x2757, 0x79ce, 0x279a,
914      0x79b8, 0x27dc, 0x79a3, 0x281f, 0x798d, 0x2862, 0x7977, 0x28a5, 0x7960,
915      0x28e8, 0x794a, 0x292b, 0x7933, 0x296f, 0x791c, 0x29b2, 0x7905, 0x29f6,
916      0x78ed, 0x2a3a, 0x78d6, 0x2a7e, 0x78be, 0x2ac2, 0x78a6, 0x2b07, 0x788d,
917      0x2b4b, 0x7875, 0x2b90, 0x785c, 0x2bd4, 0x7843, 0x2c19, 0x782a, 0x2c5e,
918      0x7810, 0x2ca4, 0x77f7, 0x2ce9, 0x77dd, 0x2d2e, 0x77c3, 0x2d74, 0x77a8,
919      0x2dba, 0x778e, 0x2dff, 0x7773, 0x2e45, 0x7758, 0x2e8b, 0x773d, 0x2ed2,
920      0x7721, 0x2f18, 0x7706, 0x2f5e, 0x76ea, 0x2fa5, 0x76cd, 0x2fec, 0x76b1,
921      0x3032, 0x7694, 0x3079, 0x7677, 0x30c0, 0x765a, 0x3107, 0x763d, 0x314e,
922      0x761f, 0x3196, 0x7601, 0x31dd, 0x75e3, 0x3225, 0x75c5, 0x326c, 0x75a6,
923      0x32b4, 0x7588, 0x32fc, 0x7569, 0x3344, 0x7549, 0x338c, 0x752a, 0x33d4,
924      0x750a, 0x341c, 0x74ea, 0x3464, 0x74ca, 0x34ac, 0x74a9, 0x34f5, 0x7488,
925      0x353d, 0x7467, 0x3585, 0x7446, 0x35ce, 0x7424, 0x3617, 0x7403, 0x365f,
926      0x73e1, 0x36a8, 0x73be, 0x36f1, 0x739c, 0x373a, 0x7379, 0x3783, 0x7356,
927      0x37cc, 0x7333, 0x3815, 0x730f, 0x385e, 0x72ec, 0x38a7, 0x72c8, 0x38f1,
928      0x72a3, 0x393a, 0x727f, 0x3983, 0x725a, 0x39cd, 0x7235, 0x3a16, 0x7210,
929      0x3a60, 0x71ea, 0x3aa9, 0x71c4, 0x3af3, 0x719e, 0x3b3c, 0x7178, 0x3b86,
930      0x7151, 0x3bd0, 0x712b, 0x3c19, 0x7104, 0x3c63, 0x70dc, 0x3cad, 0x70b5,
931      0x3cf7, 0x708d, 0x3d40, 0x7065, 0x3d8a, 0x703c, 0x3dd4, 0x7014, 0x3e1e,
932      0x6feb, 0x3e68, 0x6fc2, 0x3eb1, 0x6f98, 0x3efb, 0x6f6f, 0x3f45, 0x6f45,
933      0x3f8f, 0x6f1b, 0x3fd9, 0x6ef0, 0x4023, 0x6ec6, 0x406d, 0x6e9b, 0x40b6,
934      0x6e70, 0x4100, 0x6e44, 0x414a, 0x6e19, 0x4194, 0x6ded, 0x41de, 0x6dc1,
935      0x4228, 0x6d94, 0x4271, 0x6d68, 0x42bb, 0x6d3b, 0x4305, 0x6d0d, 0x434f,
936      0x6ce0, 0x4398, 0x6cb2, 0x43e2, 0x6c84, 0x442c, 0x6c56, 0x4475, 0x6c28,
937      0x44bf, 0x6bf9, 0x4508, 0x6bca, 0x4552, 0x6b9b, 0x459b, 0x6b6b, 0x45e5,
938      0x6b3c, 0x462e, 0x6b0c, 0x4678, 0x6adb, 0x46c1, 0x6aab, 0x470a, 0x6a7a,
939      0x4753, 0x6a49, 0x479c, 0x6a18, 0x47e5, 0x69e7, 0x482e, 0x69b5, 0x4877,
940      0x6983, 0x48c0, 0x6951, 0x4909, 0x691e, 0x4952, 0x68ec, 0x499b, 0x68b9,
941      0x49e3, 0x6885, 0x4a2c, 0x6852, 0x4a74, 0x681e, 0x4abd, 0x67ea, 0x4b05,
942      0x67b6, 0x4b4d, 0x6782, 0x4b95, 0x674d, 0x4bde, 0x6718, 0x4c26, 0x66e3,
943      0x4c6d, 0x66ae, 0x4cb5, 0x6678, 0x4cfd, 0x6642, 0x4d45, 0x660c, 0x4d8c,
944      0x65d6, 0x4dd4, 0x659f, 0x4e1b, 0x6568, 0x4e62, 0x6531, 0x4ea9, 0x64fa,
945      0x4ef0, 0x64c3, 0x4f37, 0x648b, 0x4f7e, 0x6453, 0x4fc5, 0x641b, 0x500b,
946      0x63e2, 0x5052, 0x63aa, 0x5098, 0x6371, 0x50df, 0x6338, 0x5125, 0x62fe,
947      0x516b, 0x62c5, 0x51b1, 0x628b, 0x51f6, 0x6251, 0x523c, 0x6217, 0x5281,
948      0x61dc, 0x52c7, 0x61a2, 0x530c, 0x6167, 0x5351, 0x612c, 0x5396, 0x60f1,
949      0x53db, 0x60b5, 0x5420, 0x6079, 0x5464, 0x603d, 0x54a9, 0x6001, 0x54ed,
950      0x5fc5, 0x5531, 0x5f88, 0x5575, 0x5f4b, 0x55b9, 0x5f0e, 0x55fc, 0x5ed1,
951      0x5640, 0x5e94, 0x5683, 0x5e56, 0x56c7, 0x5e18, 0x570a, 0x5dda, 0x574d,
952      0x5d9c, 0x578f, 0x5d5e, 0x57d2, 0x5d1f, 0x5814, 0x5ce0, 0x5856, 0x5ca1,
953      0x5899, 0x5c62, 0x58da, 0x5c23, 0x591c, 0x5be3, 0x595e, 0x5ba4, 0x599f,
954      0x5b64, 0x59e0, 0x5b24, 0x5a21, 0x5ae3, 0x5a62, 0x5aa3},
955 
956     // const WORD16 only_short_window_sine[128] =
957     {0x00c9, 0x7fff, 0x025b, 0x7ffa, 0x03ed, 0x7ff1, 0x057f, 0x7fe2, 0x0711,
958      0x7fce, 0x08a2, 0x7fb5, 0x0a33, 0x7f98, 0x0bc4, 0x7f75, 0x0d54, 0x7f4e,
959      0x0ee4, 0x7f22, 0x1073, 0x7ef0, 0x1201, 0x7eba, 0x138f, 0x7e7f, 0x151c,
960      0x7e3f, 0x16a8, 0x7dfb, 0x1833, 0x7db1, 0x19be, 0x7d63, 0x1b47, 0x7d0f,
961      0x1cd0, 0x7cb7, 0x1e57, 0x7c5a, 0x1fdd, 0x7bf9, 0x2162, 0x7b92, 0x22e5,
962      0x7b27, 0x2467, 0x7ab7, 0x25e8, 0x7a42, 0x2768, 0x79c9, 0x28e5, 0x794a,
963      0x2a62, 0x78c8, 0x2bdc, 0x7840, 0x2d55, 0x77b4, 0x2ecc, 0x7723, 0x3042,
964      0x768e, 0x31b5, 0x75f4, 0x3327, 0x7556, 0x3497, 0x74b3, 0x3604, 0x740b,
965      0x3770, 0x735f, 0x38d9, 0x72af, 0x3a40, 0x71fa, 0x3ba5, 0x7141, 0x3d08,
966      0x7083, 0x3e68, 0x6fc2, 0x3fc6, 0x6efb, 0x4121, 0x6e31, 0x427a, 0x6d62,
967      0x43d1, 0x6c8f, 0x4524, 0x6bb8, 0x4675, 0x6add, 0x47c4, 0x69fd, 0x490f,
968      0x691a, 0x4a58, 0x6832, 0x4b9e, 0x6747, 0x4ce1, 0x6657, 0x4e21, 0x6564,
969      0x4f5e, 0x646c, 0x5098, 0x6371, 0x51cf, 0x6272, 0x5303, 0x616f, 0x5433,
970      0x6068, 0x5560, 0x5f5e, 0x568a, 0x5e50, 0x57b1, 0x5d3e, 0x58d4, 0x5c29,
971      0x59f4, 0x5b10},
972 
973     // const WORD16 only_short_window_kbd[128] =
974     {0x0001, 0x7fff, 0x0004, 0x7fff, 0x0008, 0x7fff, 0x000d, 0x7fff, 0x0014,
975      0x7fff, 0x001d, 0x7fff, 0x0029, 0x7fff, 0x0039, 0x7fff, 0x004c, 0x7fff,
976      0x0063, 0x7fff, 0x0080, 0x7fff, 0x00a2, 0x7fff, 0x00cb, 0x7fff, 0x00fb,
977      0x7fff, 0x0133, 0x7fff, 0x0174, 0x7ffe, 0x01be, 0x7ffd, 0x0214, 0x7ffc,
978      0x0275, 0x7ffa, 0x02e3, 0x7ff8, 0x035e, 0x7ff5, 0x03e8, 0x7ff1, 0x0481,
979      0x7fec, 0x052b, 0x7fe5, 0x05e7, 0x7fdd, 0x06b4, 0x7fd3, 0x0795, 0x7fc6,
980      0x088a, 0x7fb7, 0x0993, 0x7fa4, 0x0ab2, 0x7f8d, 0x0be7, 0x7f72, 0x0d32,
981      0x7f51, 0x0e95, 0x7f2b, 0x100e, 0x7efd, 0x119f, 0x7ec8, 0x1347, 0x7e8a,
982      0x1507, 0x7e43, 0x16de, 0x7df1, 0x18cc, 0x7d93, 0x1ad0, 0x7d29, 0x1ceb,
983      0x7cb1, 0x1f1b, 0x7c2a, 0x215f, 0x7b93, 0x23b7, 0x7aeb, 0x2621, 0x7a30,
984      0x289c, 0x7963, 0x2b27, 0x7882, 0x2dc0, 0x778b, 0x3066, 0x767f, 0x3318,
985      0x755c, 0x35d2, 0x7422, 0x3895, 0x72d1, 0x3b5d, 0x7167, 0x3e29, 0x6fe5,
986      0x40f6, 0x6e4a, 0x43c4, 0x6c97, 0x4690, 0x6acc, 0x4957, 0x68e8, 0x4c18,
987      0x66ed, 0x4ed2, 0x64da, 0x5182, 0x62b2, 0x5426, 0x6074, 0x56bd, 0x5e22,
988      0x5945, 0x5bbc},
989 
990     // const WORD16 cos_array_2048p[512] and const WORD16 sine_array_2048p[512]
991     // =
992     {
993         32767, 0,     32767, 101,   32767, 201,   32767, 302,   32766, 402,
994         32764, 503,   32762, 603,   32760, 704,   32758, 804,   32756, 905,
995         32753, 1005,  32749, 1106,  32746, 1206,  32742, 1307,  32738, 1407,
996         32733, 1507,  32729, 1608,  32723, 1708,  32718, 1809,  32712, 1909,
997         32706, 2009,  32700, 2110,  32693, 2210,  32686, 2310,  32679, 2411,
998         32672, 2511,  32664, 2611,  32656, 2711,  32647, 2811,  32638, 2912,
999         32629, 3012,  32620, 3112,  32610, 3212,  32600, 3312,  32590, 3412,
1000         32579, 3512,  32568, 3612,  32557, 3712,  32546, 3812,  32534, 3911,
1001         32522, 4011,  32509, 4111,  32496, 4211,  32483, 4310,  32470, 4410,
1002         32456, 4510,  32442, 4609,  32428, 4709,  32413, 4808,  32398, 4908,
1003         32383, 5007,  32368, 5106,  32352, 5206,  32336, 5305,  32319, 5404,
1004         32303, 5503,  32286, 5602,  32268, 5701,  32251, 5800,  32233, 5899,
1005         32214, 5998,  32196, 6097,  32177, 6195,  32158, 6294,  32138, 6393,
1006         32119, 6491,  32099, 6590,  32078, 6688,  32058, 6787,  32037, 6885,
1007         32015, 6983,  31994, 7081,  31972, 7180,  31950, 7278,  31927, 7376,
1008         31904, 7474,  31881, 7571,  31858, 7669,  31834, 7767,  31810, 7864,
1009         31786, 7962,  31761, 8059,  31737, 8157,  31711, 8254,  31686, 8351,
1010         31660, 8449,  31634, 8546,  31608, 8643,  31581, 8740,  31554, 8837,
1011         31527, 8933,  31499, 9030,  31471, 9127,  31443, 9223,  31415, 9320,
1012         31386, 9416,  31357, 9512,  31328, 9608,  31298, 9704,  31268, 9800,
1013         31238, 9896,  31207, 9992,  31177, 10088, 31146, 10183, 31114, 10279,
1014         31082, 10374, 31050, 10469, 31018, 10565, 30986, 10660, 30953, 10755,
1015         30920, 10850, 30886, 10945, 30853, 11039, 30819, 11134, 30784, 11228,
1016         30750, 11323, 30715, 11417, 30680, 11511, 30644, 11605, 30608, 11699,
1017         30572, 11793, 30536, 11887, 30499, 11980, 30462, 12074, 30425, 12167,
1018         30388, 12261, 30350, 12354, 30312, 12447, 30274, 12540, 30235, 12633,
1019         30196, 12725, 30157, 12818, 30118, 12910, 30078, 13003, 30038, 13095,
1020         29997, 13187, 29957, 13279, 29916, 13371, 29875, 13463, 29833, 13554,
1021         29792, 13646, 29750, 13737, 29707, 13828, 29665, 13919, 29622, 14010,
1022         29579, 14101, 29535, 14192, 29492, 14282, 29448, 14373, 29404, 14463,
1023         29359, 14553, 29314, 14643, 29269, 14733, 29224, 14823, 29178, 14912,
1024         29132, 15002, 29086, 15091, 29040, 15180, 28993, 15269, 28946, 15358,
1025         28899, 15447, 28851, 15535, 28803, 15624, 28755, 15712, 28707, 15800,
1026         28658, 15888, 28610, 15976, 28560, 16064, 28511, 16151, 28461, 16239,
1027         28411, 16326, 28361, 16413, 28311, 16500, 28260, 16587, 28209, 16673,
1028         28158, 16760, 28106, 16846, 28054, 16932, 28002, 17018, 27950, 17104,
1029         27897, 17190, 27844, 17275, 27791, 17361, 27738, 17446, 27684, 17531,
1030         27630, 17616, 27576, 17700, 27522, 17785, 27467, 17869, 27412, 17953,
1031         27357, 18037, 27301, 18121, 27246, 18205, 27190, 18288, 27133, 18372,
1032         27077, 18455, 27020, 18538, 26963, 18621, 26906, 18703, 26848, 18786,
1033         26791, 18868, 26733, 18950, 26674, 19032, 26616, 19114, 26557, 19195,
1034         26498, 19277, 26439, 19358, 26379, 19439, 26320, 19520, 26260, 19601,
1035         26199, 19681, 26139, 19761, 26078, 19841, 26017, 19921, 25956, 20001,
1036         25894, 20081, 25833, 20160, 25771, 20239, 25708, 20318, 25646, 20397,
1037         25583, 20475, 25520, 20554, 25457, 20632, 25394, 20710, 25330, 20788,
1038         25266, 20865, 25202, 20943, 25138, 21020, 25073, 21097, 25008, 21174,
1039         24943, 21251, 24878, 21327, 24812, 21403, 24746, 21479, 24680, 21555,
1040         24614, 21631, 24548, 21706, 24481, 21781, 24414, 21856, 24347, 21931,
1041         24280, 22006, 24212, 22080, 24144, 22154, 24076, 22228, 24008, 22302,
1042         23939, 22375, 23870, 22449, 23801, 22522, 23732, 22595, 23663, 22668,
1043         23593, 22740, 23523, 22812, 23453, 22884, 23383, 22956, 23312, 23028,
1044         23241, 23099, 23170, 23170,
1045     },
1046 
1047     // WORD32 w1024[768]
1048     {
1049 
1050         0x00007fff, 0xff377fff, 0xfe6e7ffe, 0xfda57ffa, 0xfcdc7ff6, 0xfc137ff1,
1051         0xfb4a7fea, 0xfa817fe2, 0xf9b87fd9, 0xf8ef7fce, 0xf8277fc2, 0xf75e7fb5,
1052         0xf6957fa7, 0xf5cd7f98, 0xf5057f87, 0xf43c7f75, 0xf3747f62, 0xf2ac7f4e,
1053         0xf1e47f38, 0xf11c7f22, 0xf0557f0a, 0xef8d7ef0, 0xeec67ed6, 0xedff7eba,
1054         0xed387e9d, 0xec717e7f, 0xebab7e60, 0xeae47e3f, 0xea1e7e1e, 0xe9587dfb,
1055         0xe8927dd6, 0xe7cd7db1, 0xe7077d8a, 0xe6427d63, 0xe57d7d3a, 0xe4b97d0f,
1056         0xe3f47ce4, 0xe3307cb7, 0xe26d7c89, 0xe1a97c5a, 0xe0e67c2a, 0xe0237bf9,
1057         0xdf617bc6, 0xde9e7b92, 0xdddc7b5d, 0xdd1b7b27, 0xdc597aef, 0xdb997ab7,
1058         0xdad87a7d, 0xda187a42, 0xd9587a06, 0xd89879c9, 0xd7d9798a, 0xd71b794a,
1059         0xd65c790a, 0xd59e78c8, 0xd4e17885, 0xd4247840, 0xd36777fb, 0xd2ab77b4,
1060         0xd1ef776c, 0xd1347723, 0xd07976d9, 0xcfbe768e, 0xcf047642, 0xce4b75f4,
1061         0xcd9275a6, 0xccd97556, 0xcc217505, 0xcb6974b3, 0xcab27460, 0xc9fc740b,
1062         0xc94673b6, 0xc890735f, 0xc7db7308, 0xc72772af, 0xc6737255, 0xc5c071fa,
1063         0xc50d719e, 0xc45b7141, 0xc3a970e3, 0xc2f87083, 0xc2487023, 0xc1986fc2,
1064         0xc0e96f5f, 0xc03a6efb, 0xbf8c6e97, 0xbedf6e31, 0xbe326dca, 0xbd866d62,
1065         0xbcda6cf9, 0xbc2f6c8f, 0xbb856c24, 0xbadc6bb8, 0xba336b4b, 0xb98b6add,
1066         0xb8e36a6e, 0xb83c69fd, 0xb796698c, 0xb6f1691a, 0xb64c68a7, 0xb5a86832,
1067         0xb50567bd, 0xb4626747, 0xb3c066d0, 0xb31f6657, 0xb27f65de, 0xb1df6564,
1068         0xb14064e9, 0xb0a2646c, 0xb00563ef, 0xaf686371, 0xaecc62f2, 0xae316272,
1069         0xad9761f1, 0xacfd616f, 0xac6560ec, 0xabcd6068, 0xab365fe4, 0xaaa05f5e,
1070         0xaa0a5ed7, 0xa9765e50, 0xa8e25dc8, 0xa84f5d3e, 0xa7bd5cb4, 0xa72c5c29,
1071         0xa69c5b9d, 0xa60c5b10, 0xa57e5a82, 0xa4f059f4, 0xa4635964, 0xa3d758d4,
1072         0xa34c5843, 0xa2c257b1, 0xa238571e, 0xa1b0568a, 0xa12955f6, 0xa0a25560,
1073         0xa01c54ca, 0x9f985433, 0x9f14539b, 0x9e915303, 0x9e0f5269, 0x9d8e51cf,
1074         0x9d0e5134, 0x9c8f5098, 0x9c114ffb, 0x9b944f5e, 0x9b174ec0, 0x9a9c4e21,
1075         0x9a224d81, 0x99a94ce1, 0x99304c40, 0x98b94b9e, 0x98434afb, 0x97ce4a58,
1076         0x975949b4, 0x96e6490f, 0x9674486a, 0x960347c4, 0x9592471d, 0x95234675,
1077         0x94b545cd, 0x94484524, 0x93dc447b, 0x937143d1, 0x93074326, 0x929e427a,
1078         0x923641ce, 0x91cf4121, 0x91694074, 0x91053fc6, 0x90a13f17, 0x903e3e68,
1079         0x8fdd3db8, 0x8f7d3d08, 0x8f1d3c57, 0x8ebf3ba5, 0x8e623af3, 0x8e063a40,
1080         0x8dab398d, 0x8d5138d9, 0x8cf83825, 0x8ca13770, 0x8c4a36ba, 0x8bf53604,
1081         0x8ba0354e, 0x8b4d3497, 0x8afb33df, 0x8aaa3327, 0x8a5a326e, 0x8a0c31b5,
1082         0x89be30fc, 0x89723042, 0x89272f87, 0x88dd2ecc, 0x88942e11, 0x884c2d55,
1083         0x88052c99, 0x87c02bdc, 0x877b2b1f, 0x87382a62, 0x86f629a4, 0x86b628e5,
1084         0x86762827, 0x86372768, 0x85fa26a8, 0x85be25e8, 0x85832528, 0x85492467,
1085         0x851123a7, 0x84d922e5, 0x84a32224, 0x846e2162, 0x843a209f, 0x84071fdd,
1086         0x83d61f1a, 0x83a61e57, 0x83771d93, 0x83491cd0, 0x831c1c0c, 0x82f11b47,
1087         0x82c61a83, 0x829d19be, 0x827618f9, 0x824f1833, 0x822a176e, 0x820516a8,
1088         0x81e215e2, 0x81c1151c, 0x81a01455, 0x8181138f, 0x816312c8, 0x81461201,
1089         0x812a113a, 0x81101073, 0x80f60fab, 0x80de0ee4, 0x80c80e1c, 0x80b20d54,
1090         0x809e0c8c, 0x808b0bc4, 0x80790afb, 0x80680a33, 0x8059096b, 0x804b08a2,
1091         0x803e07d9, 0x80320711, 0x80270648, 0x801e057f, 0x801604b6, 0x800f03ed,
1092         0x800a0324, 0x8006025b, 0x80020192, 0x800100c9, 0x80000000, 0x8001ff37,
1093         0x8002fe6e, 0x8006fda5, 0x800afcdc, 0x800ffc13, 0x8016fb4a, 0x801efa81,
1094         0x8027f9b8, 0x8032f8ef, 0x803ef827, 0x804bf75e, 0x8059f695, 0x8068f5cd,
1095         0x8079f505, 0x808bf43c, 0x809ef374, 0x80b2f2ac, 0x80c8f1e4, 0x80def11c,
1096         0x80f6f055, 0x8110ef8d, 0x812aeec6, 0x8146edff, 0x8163ed38, 0x8181ec71,
1097         0x81a0ebab, 0x81c1eae4, 0x81e2ea1e, 0x8205e958, 0x822ae892, 0x824fe7cd,
1098         0x8276e707, 0x829de642, 0x82c6e57d, 0x82f1e4b9, 0x831ce3f4, 0x8349e330,
1099         0x8377e26d, 0x83a6e1a9, 0x83d6e0e6, 0x8407e023, 0x843adf61, 0x846ede9e,
1100         0x84a3dddc, 0x84d9dd1b, 0x8511dc59, 0x8549db99, 0x8583dad8, 0x85beda18,
1101         0x85fad958, 0x8637d898, 0x8676d7d9, 0x86b6d71b, 0x86f6d65c, 0x8738d59e,
1102         0x877bd4e1, 0x87c0d424, 0x8805d367, 0x884cd2ab, 0x8894d1ef, 0x88ddd134,
1103         0x8927d079, 0x8972cfbe, 0x89becf04, 0x8a0cce4b, 0x8a5acd92, 0x8aaaccd9,
1104         0x8afbcc21, 0x8b4dcb69, 0x8ba0cab2, 0x8bf5c9fc, 0x8c4ac946, 0x8ca1c890,
1105         0x8cf8c7db, 0x8d51c727, 0x8dabc673, 0x8e06c5c0, 0x8e62c50d, 0x8ebfc45b,
1106         0x8f1dc3a9, 0x8f7dc2f8, 0x8fddc248, 0x903ec198, 0x90a1c0e9, 0x9105c03a,
1107         0x9169bf8c, 0x91cfbedf, 0x9236be32, 0x929ebd86, 0x9307bcda, 0x9371bc2f,
1108         0x93dcbb85, 0x9448badc, 0x94b5ba33, 0x9523b98b, 0x9592b8e3, 0x9603b83c,
1109         0x9674b796, 0x96e6b6f1, 0x9759b64c, 0x97ceb5a8, 0x9843b505, 0x98b9b462,
1110         0x9930b3c0, 0x99a9b31f, 0x9a22b27f, 0x9a9cb1df, 0x9b17b140, 0x9b94b0a2,
1111         0x9c11b005, 0x9c8faf68, 0x9d0eaecc, 0x9d8eae31, 0x9e0fad97, 0x9e91acfd,
1112         0x9f14ac65, 0x9f98abcd, 0xa01cab36, 0xa0a2aaa0, 0xa129aa0a, 0xa1b0a976,
1113         0xa238a8e2, 0xa2c2a84f, 0xa34ca7bd, 0xa3d7a72c, 0xa463a69c, 0xa4f0a60c,
1114         0xa57ea57e, 0xa60ca4f0, 0xa69ca463, 0xa72ca3d7, 0xa7bda34c, 0xa84fa2c2,
1115         0xa8e2a238, 0xa976a1b0, 0xaa0aa129, 0xaaa0a0a2, 0xab36a01c, 0xabcd9f98,
1116         0xac659f14, 0xacfd9e91, 0xad979e0f, 0xae319d8e, 0xaecc9d0e, 0xaf689c8f,
1117         0xb0059c11, 0xb0a29b94, 0xb1409b17, 0xb1df9a9c, 0xb27f9a22, 0xb31f99a9,
1118         0xb3c09930, 0xb46298b9, 0xb5059843, 0xb5a897ce, 0xb64c9759, 0xb6f196e6,
1119         0xb7969674, 0xb83c9603, 0xb8e39592, 0xb98b9523, 0xba3394b5, 0xbadc9448,
1120         0xbb8593dc, 0xbc2f9371, 0xbcda9307, 0xbd86929e, 0xbe329236, 0xbedf91cf,
1121         0xbf8c9169, 0xc03a9105, 0xc0e990a1, 0xc198903e, 0xc2488fdd, 0xc2f88f7d,
1122         0xc3a98f1d, 0xc45b8ebf, 0xc50d8e62, 0xc5c08e06, 0xc6738dab, 0xc7278d51,
1123         0xc7db8cf8, 0xc8908ca1, 0xc9468c4a, 0xc9fc8bf5, 0xcab28ba0, 0xcb698b4d,
1124         0xcc218afb, 0xccd98aaa, 0xcd928a5a, 0xce4b8a0c, 0xcf0489be, 0xcfbe8972,
1125         0xd0798927, 0xd13488dd, 0xd1ef8894, 0xd2ab884c, 0xd3678805, 0xd42487c0,
1126         0xd4e1877b, 0xd59e8738, 0xd65c86f6, 0xd71b86b6, 0xd7d98676, 0xd8988637,
1127         0xd95885fa, 0xda1885be, 0xdad88583, 0xdb998549, 0xdc598511, 0xdd1b84d9,
1128         0xdddc84a3, 0xde9e846e, 0xdf61843a, 0xe0238407, 0xe0e683d6, 0xe1a983a6,
1129         0xe26d8377, 0xe3308349, 0xe3f4831c, 0xe4b982f1, 0xe57d82c6, 0xe642829d,
1130         0xe7078276, 0xe7cd824f, 0xe892822a, 0xe9588205, 0xea1e81e2, 0xeae481c1,
1131         0xebab81a0, 0xec718181, 0xed388163, 0xedff8146, 0xeec6812a, 0xef8d8110,
1132         0xf05580f6, 0xf11c80de, 0xf1e480c8, 0xf2ac80b2, 0xf374809e, 0xf43c808b,
1133         0xf5058079, 0xf5cd8068, 0xf6958059, 0xf75e804b, 0xf827803e, 0xf8ef8032,
1134         0xf9b88027, 0xfa81801e, 0xfb4a8016, 0xfc13800f, 0xfcdc800a, 0xfda58006,
1135         0xfe6e8002, 0xff378001, 0x00008000, 0x00c98001, 0x01928002, 0x025b8006,
1136         0x0324800a, 0x03ed800f, 0x04b68016, 0x057f801e, 0x06488027, 0x07118032,
1137         0x07d9803e, 0x08a2804b, 0x096b8059, 0x0a338068, 0x0afb8079, 0x0bc4808b,
1138         0x0c8c809e, 0x0d5480b2, 0x0e1c80c8, 0x0ee480de, 0x0fab80f6, 0x10738110,
1139         0x113a812a, 0x12018146, 0x12c88163, 0x138f8181, 0x145581a0, 0x151c81c1,
1140         0x15e281e2, 0x16a88205, 0x176e822a, 0x1833824f, 0x18f98276, 0x19be829d,
1141         0x1a8382c6, 0x1b4782f1, 0x1c0c831c, 0x1cd08349, 0x1d938377, 0x1e5783a6,
1142         0x1f1a83d6, 0x1fdd8407, 0x209f843a, 0x2162846e, 0x222484a3, 0x22e584d9,
1143         0x23a78511, 0x24678549, 0x25288583, 0x25e885be, 0x26a885fa, 0x27688637,
1144         0x28278676, 0x28e586b6, 0x29a486f6, 0x2a628738, 0x2b1f877b, 0x2bdc87c0,
1145         0x2c998805, 0x2d55884c, 0x2e118894, 0x2ecc88dd, 0x2f878927, 0x30428972,
1146         0x30fc89be, 0x31b58a0c, 0x326e8a5a, 0x33278aaa, 0x33df8afb, 0x34978b4d,
1147         0x354e8ba0, 0x36048bf5, 0x36ba8c4a, 0x37708ca1, 0x38258cf8, 0x38d98d51,
1148         0x398d8dab, 0x3a408e06, 0x3af38e62, 0x3ba58ebf, 0x3c578f1d, 0x3d088f7d,
1149         0x3db88fdd, 0x3e68903e, 0x3f1790a1, 0x3fc69105, 0x40749169, 0x412191cf,
1150         0x41ce9236, 0x427a929e, 0x43269307, 0x43d19371, 0x447b93dc, 0x45249448,
1151         0x45cd94b5, 0x46759523, 0x471d9592, 0x47c49603, 0x486a9674, 0x490f96e6,
1152         0x49b49759, 0x4a5897ce, 0x4afb9843, 0x4b9e98b9, 0x4c409930, 0x4ce199a9,
1153         0x4d819a22, 0x4e219a9c, 0x4ec09b17, 0x4f5e9b94, 0x4ffb9c11, 0x50989c8f,
1154         0x51349d0e, 0x51cf9d8e, 0x52699e0f, 0x53039e91, 0x539b9f14, 0x54339f98,
1155         0x54caa01c, 0x5560a0a2, 0x55f6a129, 0x568aa1b0, 0x571ea238, 0x57b1a2c2,
1156         0x5843a34c, 0x58d4a3d7, 0x5964a463, 0x59f4a4f0, 0x5a82a57e, 0x5b10a60c,
1157         0x5b9da69c, 0x5c29a72c, 0x5cb4a7bd, 0x5d3ea84f, 0x5dc8a8e2, 0x5e50a976,
1158         0x5ed7aa0a, 0x5f5eaaa0, 0x5fe4ab36, 0x6068abcd, 0x60ecac65, 0x616facfd,
1159         0x61f1ad97, 0x6272ae31, 0x62f2aecc, 0x6371af68, 0x63efb005, 0x646cb0a2,
1160         0x64e9b140, 0x6564b1df, 0x65deb27f, 0x6657b31f, 0x66d0b3c0, 0x6747b462,
1161         0x67bdb505, 0x6832b5a8, 0x68a7b64c, 0x691ab6f1, 0x698cb796, 0x69fdb83c,
1162         0x6a6eb8e3, 0x6addb98b, 0x6b4bba33, 0x6bb8badc, 0x6c24bb85, 0x6c8fbc2f,
1163         0x6cf9bcda, 0x6d62bd86, 0x6dcabe32, 0x6e31bedf, 0x6e97bf8c, 0x6efbc03a,
1164         0x6f5fc0e9, 0x6fc2c198, 0x7023c248, 0x7083c2f8, 0x70e3c3a9, 0x7141c45b,
1165         0x719ec50d, 0x71fac5c0, 0x7255c673, 0x72afc727, 0x7308c7db, 0x735fc890,
1166         0x73b6c946, 0x740bc9fc, 0x7460cab2, 0x74b3cb69, 0x7505cc21, 0x7556ccd9,
1167         0x75a6cd92, 0x75f4ce4b, 0x7642cf04, 0x768ecfbe, 0x76d9d079, 0x7723d134,
1168         0x776cd1ef, 0x77b4d2ab, 0x77fbd367, 0x7840d424, 0x7885d4e1, 0x78c8d59e,
1169         0x790ad65c, 0x794ad71b, 0x798ad7d9, 0x79c9d898, 0x7a06d958, 0x7a42da18,
1170         0x7a7ddad8, 0x7ab7db99, 0x7aefdc59, 0x7b27dd1b, 0x7b5ddddc, 0x7b92de9e,
1171         0x7bc6df61, 0x7bf9e023, 0x7c2ae0e6, 0x7c5ae1a9, 0x7c89e26d, 0x7cb7e330,
1172         0x7ce4e3f4, 0x7d0fe4b9, 0x7d3ae57d, 0x7d63e642, 0x7d8ae707, 0x7db1e7cd,
1173         0x7dd6e892, 0x7dfbe958, 0x7e1eea1e, 0x7e3feae4, 0x7e60ebab, 0x7e7fec71,
1174         0x7e9ded38, 0x7ebaedff, 0x7ed6eec6, 0x7ef0ef8d, 0x7f0af055, 0x7f22f11c,
1175         0x7f38f1e4, 0x7f4ef2ac, 0x7f62f374, 0x7f75f43c, 0x7f87f505, 0x7f98f5cd,
1176         0x7fa7f695, 0x7fb5f75e, 0x7fc2f827, 0x7fcef8ef, 0x7fd9f9b8, 0x7fe2fa81,
1177         0x7feafb4a, 0x7ff1fc13, 0x7ff6fcdc, 0x7ffafda5, 0x7ffefe6e, 0x7fffff37,
1178 
1179     },
1180 
1181     // WORD8 bit_rev_1024[256]=
1182     {0x00, 0x40, 0x80, 0xc0, 0x10, 0x50, 0x90, 0xd0, 0x20, 0x60, 0xa0, 0xe0,
1183      0x30, 0x70, 0xb0, 0xf0, 0x04, 0x44, 0x84, 0xc4, 0x14, 0x54, 0x94, 0xd4,
1184      0x24, 0x64, 0xa4, 0xe4, 0x34, 0x74, 0xb4, 0xf4, 0x08, 0x48, 0x88, 0xc8,
1185      0x18, 0x58, 0x98, 0xd8, 0x28, 0x68, 0xa8, 0xe8, 0x38, 0x78, 0xb8, 0xf8,
1186      0x0c, 0x4c, 0x8c, 0xcc, 0x1c, 0x5c, 0x9c, 0xdc, 0x2c, 0x6c, 0xac, 0xec,
1187      0x3c, 0x7c, 0xbc, 0xfc, 0x01, 0x41, 0x81, 0xc1, 0x11, 0x51, 0x91, 0xd1,
1188      0x21, 0x61, 0xa1, 0xe1, 0x31, 0x71, 0xb1, 0xf1, 0x05, 0x45, 0x85, 0xc5,
1189      0x15, 0x55, 0x95, 0xd5, 0x25, 0x65, 0xa5, 0xe5, 0x35, 0x75, 0xb5, 0xf5,
1190      0x09, 0x49, 0x89, 0xc9, 0x19, 0x59, 0x99, 0xd9, 0x29, 0x69, 0xa9, 0xe9,
1191      0x39, 0x79, 0xb9, 0xf9, 0x0d, 0x4d, 0x8d, 0xcd, 0x1d, 0x5d, 0x9d, 0xdd,
1192      0x2d, 0x6d, 0xad, 0xed, 0x3d, 0x7d, 0xbd, 0xfd, 0x02, 0x42, 0x82, 0xc2,
1193      0x12, 0x52, 0x92, 0xd2, 0x22, 0x62, 0xa2, 0xe2, 0x32, 0x72, 0xb2, 0xf2,
1194      0x06, 0x46, 0x86, 0xc6, 0x16, 0x56, 0x96, 0xd6, 0x26, 0x66, 0xa6, 0xe6,
1195      0x36, 0x76, 0xb6, 0xf6, 0x0a, 0x4a, 0x8a, 0xca, 0x1a, 0x5a, 0x9a, 0xda,
1196      0x2a, 0x6a, 0xaa, 0xea, 0x3a, 0x7a, 0xba, 0xfa, 0x0e, 0x4e, 0x8e, 0xce,
1197      0x1e, 0x5e, 0x9e, 0xde, 0x2e, 0x6e, 0xae, 0xee, 0x3e, 0x7e, 0xbe, 0xfe,
1198      0x03, 0x43, 0x83, 0xc3, 0x13, 0x53, 0x93, 0xd3, 0x23, 0x63, 0xa3, 0xe3,
1199      0x33, 0x73, 0xb3, 0xf3, 0x07, 0x47, 0x87, 0xc7, 0x17, 0x57, 0x97, 0xd7,
1200      0x27, 0x67, 0xa7, 0xe7, 0x37, 0x77, 0xb7, 0xf7, 0x0b, 0x4b, 0x8b, 0xcb,
1201      0x1b, 0x5b, 0x9b, 0xdb, 0x2b, 0x6b, 0xab, 0xeb, 0x3b, 0x7b, 0xbb, 0xfb,
1202      0x0f, 0x4f, 0x8f, 0xcf, 0x1f, 0x5f, 0x9f, 0xdf, 0x2f, 0x6f, 0xaf, 0xef,
1203      0x3f, 0x7f, 0xbf, 0xff},
1204 
1205     // WORD8 bit_rev_512[64]=
1206     {0x00, 0x10, 0x20, 0x30, 0x04, 0x14, 0x24, 0x34, 0x08, 0x18, 0x28,
1207      0x38, 0x0c, 0x1c, 0x2c, 0x3c, 0x01, 0x11, 0x21, 0x31, 0x05, 0x15,
1208      0x25, 0x35, 0x09, 0x19, 0x29, 0x39, 0x0d, 0x1d, 0x2d, 0x3d, 0x02,
1209      0x12, 0x22, 0x32, 0x06, 0x16, 0x26, 0x36, 0x0a, 0x1a, 0x2a, 0x3a,
1210      0x0e, 0x1e, 0x2e, 0x3e, 0x03, 0x13, 0x23, 0x33, 0x07, 0x17, 0x27,
1211      0x37, 0x0b, 0x1b, 0x2b, 0x3b, 0x0f, 0x1f, 0x2f, 0x3f},
1212 
1213     // WORD8 bit_rev_128[16]=
1214     {0x00, 0x04, 0x08, 0x0c, 0x01, 0x05, 0x09, 0x0d, 0x02, 0x06, 0x0a, 0x0e,
1215      0x03, 0x07, 0x0b, 0x0f},
1216 
1217     // WORD8 bit_rev_32[4]=
1218     {
1219         0x00, 0x01, 0x02, 0x03,
1220     },
1221     // const WORD32 w_256[504] =
1222     {
1223         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1224         0x03242abf, 0x7ff62182, 0x0647d97c, 0x7fd8878e, 0x096a9049, 0x7fa736b4,
1225         0x0647d97c, 0x7fd8878e, 0x0c8bd35e, 0x7f62368f, 0x12c8106f, 0x7e9d55fc,
1226         0x096a9049, 0x7fa736b4, 0x12c8106f, 0x7e9d55fc, 0x1c0b826b, 0x7ce3ceb2,
1227         0x0c8bd35e, 0x7f62368f, 0x18f8b83c, 0x7d8a5f40, 0x25280c5e, 0x7a7d055b,
1228         0x0fab272b, 0x7f0991c4, 0x1f19f97b, 0x7c29fbee, 0x2e110a62, 0x776c4edb,
1229         0x12c8106f, 0x7e9d55fc, 0x25280c5e, 0x7a7d055b, 0x36ba2014, 0x73b5ebd1,
1230         0x15e21445, 0x7e1d93ea, 0x2b1f34eb, 0x78848414, 0x3f1749b8, 0x6f5f02b2,
1231         0x18f8b83c, 0x7d8a5f40, 0x30fbc54d, 0x7641af3d, 0x471cece7, 0x6a6d98a4,
1232         0x1c0b826b, 0x7ce3ceb2, 0x36ba2014, 0x73b5ebd1, 0x4ebfe8a5, 0x64e88926,
1233         0x1f19f97b, 0x7c29fbee, 0x3c56ba70, 0x70e2cbc6, 0x55f5a4d2, 0x5ed77c8a,
1234         0x2223a4c5, 0x7b5d039e, 0x41ce1e65, 0x6dca0d14, 0x5cb420e0, 0x5842dd54,
1235         0x25280c5e, 0x7a7d055b, 0x471cece7, 0x6a6d98a4, 0x62f201ac, 0x5133cc94,
1236         0x2826b928, 0x798a23b1, 0x4c3fdff4, 0x66cf8120, 0x68a69e81, 0x49b41533,
1237         0x2b1f34eb, 0x78848414, 0x5133cc94, 0x62f201ac, 0x6dca0d15, 0x41ce1e64,
1238         0x2e110a62, 0x776c4edb, 0x55f5a4d2, 0x5ed77c8a, 0x72552c85, 0x398cdd32,
1239         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1240         0x33def287, 0x7504d345, 0x5ed77c8a, 0x55f5a4d2, 0x798a23b1, 0x2826b928,
1241         0x36ba2014, 0x73b5ebd1, 0x62f201ac, 0x5133cc94, 0x7c29fbee, 0x1f19f97b,
1242         0x398cdd33, 0x72552c85, 0x66cf8120, 0x4c3fdff3, 0x7e1d93ea, 0x15e21444,
1243         0x3c56ba70, 0x70e2cbc6, 0x6a6d98a4, 0x471cece6, 0x7f62368f, 0x0c8bd35e,
1244         0x3f1749b8, 0x6f5f02b2, 0x6dca0d15, 0x41ce1e64, 0x7ff62182, 0x03242abf,
1245         0x41ce1e65, 0x6dca0d14, 0x70e2cbc6, 0x3c56ba70, 0x7fd8878e, 0xf9b82684,
1246         0x447acd51, 0x6c242960, 0x73b5ebd1, 0x36ba2013, 0x7f0991c3, 0xf054d8d5,
1247         0x471cece7, 0x6a6d98a4, 0x7641af3d, 0x30fbc54d, 0x7d8a5f40, 0xe70747c4,
1248         0x49b41534, 0x68a69e81, 0x78848414, 0x2b1f34eb, 0x7b5d039d, 0xdddc5b3b,
1249         0x4c3fdff4, 0x66cf8120, 0x7a7d055b, 0x25280c5d, 0x78848414, 0xd4e0cb15,
1250         0x4ebfe8a5, 0x64e88926, 0x7c29fbee, 0x1f19f97b, 0x7504d345, 0xcc210d79,
1251         0x5133cc94, 0x62f201ac, 0x7d8a5f40, 0x18f8b83c, 0x70e2cbc6, 0xc3a94590,
1252         0x539b2af0, 0x60ec3830, 0x7e9d55fc, 0x12c8106e, 0x6c242960, 0xbb8532b0,
1253         0x55f5a4d2, 0x5ed77c8a, 0x7f62368f, 0x0c8bd35e, 0x66cf811f, 0xb3c0200d,
1254         0x5842dd55, 0x5cb420e0, 0x7fd8878e, 0x0647d97c, 0x60ec3830, 0xac64d511,
1255         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1256         0x5cb420e0, 0x5842dd54, 0x7fd8878e, 0xf9b82684, 0x539b2aef, 0x9f13c7d1,
1257         0x5ed77c8a, 0x55f5a4d2, 0x7f62368f, 0xf3742ca2, 0x4c3fdff3, 0x99307ee1,
1258         0x60ec3830, 0x539b2aef, 0x7e9d55fc, 0xed37ef92, 0x447acd50, 0x93dbd6a0,
1259         0x62f201ac, 0x5133cc94, 0x7d8a5f40, 0xe70747c4, 0x3c56ba6f, 0x8f1d343b,
1260         0x64e88926, 0x4ebfe8a4, 0x7c29fbee, 0xe0e60685, 0x33def287, 0x8afb2cbb,
1261         0x66cf8120, 0x4c3fdff3, 0x7a7d055b, 0xdad7f3a3, 0x2b1f34eb, 0x877b7bed,
1262         0x68a69e81, 0x49b41533, 0x78848414, 0xd4e0cb15, 0x2223a4c5, 0x84a2fc63,
1263         0x6a6d98a4, 0x471cece6, 0x7641af3d, 0xcf043ab3, 0x18f8b83c, 0x8275a0c1,
1264         0x6c242960, 0x447acd50, 0x73b5ebd1, 0xc945dfed, 0x0fab272a, 0x80f66e3d,
1265         0x6dca0d15, 0x41ce1e64, 0x70e2cbc6, 0xc3a94590, 0x0647d97b, 0x80277873,
1266         0x6f5f02b2, 0x3f1749b8, 0x6dca0d14, 0xbe31e19c, 0xfcdbd541, 0x8009de7f,
1267         0x70e2cbc6, 0x3c56ba70, 0x6a6d98a4, 0xb8e3131a, 0xf3742ca2, 0x809dc972,
1268         0x72552c85, 0x398cdd32, 0x66cf811f, 0xb3c0200d, 0xea1debbc, 0x81e26c17,
1269         0x73b5ebd1, 0x36ba2013, 0x62f201ac, 0xaecc336c, 0xe0e60685, 0x83d60413,
1270         0x7504d345, 0x33def287, 0x5ed77c89, 0xaa0a5b2e, 0xd7d946d8, 0x8675dc50,
1271         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1272         0x776c4edb, 0x2e110a62, 0x55f5a4d2, 0xa1288377, 0xc67322ce, 0x8daad37d,
1273         0x78848414, 0x2b1f34eb, 0x5133cc94, 0x9d0dfe54, 0xbe31e19c, 0x9235f2ed,
1274         0x798a23b1, 0x2826b928, 0x4c3fdff3, 0x99307ee1, 0xb64beacd, 0x97596181,
1275         0x7a7d055b, 0x25280c5d, 0x471cece6, 0x9592675c, 0xaecc336c, 0x9d0dfe55,
1276         0x7b5d039e, 0x2223a4c5, 0x41ce1e64, 0x9235f2ec, 0xa7bd22ac, 0xa34bdf22,
1277         0x7c29fbee, 0x1f19f97b, 0x3c56ba6f, 0x8f1d343b, 0xa1288377, 0xaa0a5b30,
1278         0x7ce3ceb2, 0x1c0b826a, 0x36ba2013, 0x8c4a1430, 0x9b1776da, 0xb140175d,
1279         0x7d8a5f40, 0x18f8b83c, 0x30fbc54d, 0x89be50c4, 0x9592675c, 0xb8e3131b,
1280         0x7e1d93ea, 0x15e21444, 0x2b1f34eb, 0x877b7bed, 0x90a0fd4f, 0xc0e8b64a,
1281         0x7e9d55fc, 0x12c8106e, 0x25280c5d, 0x8582faa6, 0x8c4a1430, 0xc945dfee,
1282         0x7f0991c4, 0x0fab272b, 0x1f19f97a, 0x83d60413, 0x8893b125, 0xd1eef5a0,
1283         0x7f62368f, 0x0c8bd35e, 0x18f8b83c, 0x8275a0c1, 0x8582faa6, 0xdad7f3a5,
1284         0x7fa736b4, 0x096a9049, 0x12c8106e, 0x8162aa05, 0x831c314f, 0xe3f47d98,
1285         0x7fd8878e, 0x0647d97c, 0x0c8bd35d, 0x809dc972, 0x8162aa05, 0xed37ef94,
1286         0x7ff62182, 0x03242abf, 0x0647d97b, 0x80277873, 0x8058c94d, 0xf6956fb9,
1287         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1288         0x0c8bd35e, 0x7f62368f, 0x18f8b83c, 0x7d8a5f40, 0x25280c5e, 0x7a7d055b,
1289         0x18f8b83c, 0x7d8a5f40, 0x30fbc54d, 0x7641af3d, 0x471cece7, 0x6a6d98a4,
1290         0x25280c5e, 0x7a7d055b, 0x471cece7, 0x6a6d98a4, 0x62f201ac, 0x5133cc94,
1291         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1292         0x3c56ba70, 0x70e2cbc6, 0x6a6d98a4, 0x471cece6, 0x7f62368f, 0x0c8bd35e,
1293         0x471cece7, 0x6a6d98a4, 0x7641af3d, 0x30fbc54d, 0x7d8a5f40, 0xe70747c4,
1294         0x5133cc94, 0x62f201ac, 0x7d8a5f40, 0x18f8b83c, 0x70e2cbc6, 0xc3a94590,
1295         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1296         0x62f201ac, 0x5133cc94, 0x7d8a5f40, 0xe70747c4, 0x3c56ba6f, 0x8f1d343b,
1297         0x6a6d98a4, 0x471cece6, 0x7641af3d, 0xcf043ab3, 0x18f8b83c, 0x8275a0c1,
1298         0x70e2cbc6, 0x3c56ba70, 0x6a6d98a4, 0xb8e3131a, 0xf3742ca2, 0x809dc972,
1299         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1300         0x7a7d055b, 0x25280c5d, 0x471cece6, 0x9592675c, 0xaecc336c, 0x9d0dfe55,
1301         0x7d8a5f40, 0x18f8b83c, 0x30fbc54d, 0x89be50c4, 0x9592675c, 0xb8e3131b,
1302         0x7f62368f, 0x0c8bd35e, 0x18f8b83c, 0x8275a0c1, 0x8582faa6, 0xdad7f3a5,
1303         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1304         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1305         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1306         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1307     },
1308 
1309     // WORD32 low_overlap_win[512];
1310     {
1311         0,          0,          0,          0,          0,          0,
1312         0,          0,          0,          0,          0,          0,
1313         0,          0,          0,          0,          0,          0,
1314         0,          0,          0,          0,          0,          0,
1315         0,          0,          0,          0,          0,          0,
1316         0,          0,          0,          0,          0,          0,
1317         0,          0,          0,          0,          0,          0,
1318         0,          0,          0,          0,          0,          0,
1319         0,          0,          0,          0,          0,          0,
1320         0,          0,          0,          0,          0,          0,
1321         0,          0,          0,          0,          0,          0,
1322         0,          0,          0,          0,          0,          0,
1323         0,          0,          0,          0,          0,          0,
1324         0,          0,          0,          0,          0,          0,
1325         0,          0,          0,          0,          0,          0,
1326         0,          0,          0,          0,          0,          0,
1327         0,          0,          0,          0,          0,          0,
1328         0,          0,          0,          0,          0,          0,
1329         0,          0,          0,          0,          0,          0,
1330         0,          0,          0,          0,          0,          0,
1331         0,          0,          0,          0,          0,          0,
1332         0,          0,          0,          0,          0,          0,
1333         0,          0,          0,          0,          0,          0,
1334         0,          0,          0,          0,          0,          0,
1335         0,          0,          0,          0,          0,          0,
1336         0,          0,          0,          0,          0,          0,
1337         0,          0,          0,          0,          0,          0,
1338         0,          0,          0,          0,          0,          0,
1339         0,          0,          0,          0,          0,          0,
1340         0,          0,          0,          0,          0,          0,
1341         0,          0,          0,          0,          0,          0,
1342         0,          0,          0,          0,          0,          0,
1343         6588355,    19764075,   32936819,   46104602,   59265442,   72417357,
1344         85558366,   98686490,   111799753,  124896178,  137973795,  151030634,
1345         164064728,  177074114,  190056834,  203010932,  215934457,  228825463,
1346         241682009,  254502159,  267283981,  280025551,  292724951,  305380267,
1347         317989594,  330551034,  343062693,  355522688,  367929143,  380280189,
1348         392573967,  404808624,  416982318,  429093217,  441139495,  453119340,
1349         465030947,  476872521,  488642280,  500338452,  511959274,  523502998,
1350         534967883,  546352205,  557654248,  568872310,  580004702,  591049747,
1351         602005783,  612871159,  623644238,  634323399,  644907034,  655393547,
1352         665781361,  676068911,  686254647,  696337035,  706314558,  716185713,
1353         725949012,  735602987,  745146182,  754577161,  763894503,  773096806,
1354         782182683,  791150766,  799999705,  808728167,  817334837,  825818420,
1355         834177638,  842411231,  850517961,  858496605,  866345963,  874064853,
1356         881652112,  889106597,  896427186,  903612776,  910662286,  917574653,
1357         924348836,  930983817,  937478594,  943832191,  950043650,  956112036,
1358         962036435,  967815955,  973449725,  978936897,  984276645,  989468165,
1359         994510674,  999403414,  1004145647, 1008736660, 1013175760, 1017462280,
1360         1021595574, 1025575020, 1029400017, 1033069991, 1036584388, 1039942680,
1361         1043144359, 1046188946, 1049075979, 1051805026, 1054375675, 1056787539,
1362         1059040255, 1061133483, 1063066908, 1064840239, 1066453209, 1067905576,
1363         1069197119, 1070327646, 1071296985, 1072104991, 1072751541, 1073236539,
1364         1073559912, 1073721611, 1073741823, 1073741823, 1073741823, 1073741823,
1365         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1366         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1367         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1368         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1369         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1370         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1371         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1372         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1373         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1374         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1375         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1376         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1377         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1378         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1379         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1380         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1381         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1382         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1383         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1384         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1385         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1386         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1387         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1388         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1389         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1390         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1391         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1392         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1393         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1394         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1395         1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1396         1073741823, 1073741823,
1397     },
1398     // WORD32 window_sine_512[512];
1399     {1647098,    4941280,    8235415,    11529473,   14823423,   18117232,
1400      21410872,   24704309,   27997515,   31290456,   34583103,   37875425,
1401      41167390,   44458968,   47750127,   51040837,   54331066,   57620784,
1402      60909960,   64198562,   67486560,   70773923,   74060620,   77346619,
1403      80631891,   83916404,   87200127,   90483029,   93765079,   97046247,
1404      100326501,  103605811,  106884146,  110161475,  113437767,  116712991,
1405      119987117,  123260113,  126531950,  129802595,  133072018,  136340189,
1406      139607077,  142872650,  146136879,  149399733,  152661180,  155921190,
1407      159179733,  162436777,  165692293,  168946249,  172198614,  175449359,
1408      178698453,  181945864,  185191563,  188435519,  191677702,  194918080,
1409      198156623,  201393302,  204628084,  207860941,  211091841,  214320755,
1410      217547651,  220772499,  223995270,  227215932,  230434456,  233650810,
1411      236864966,  240076892,  243286558,  246493934,  249698990,  252901696,
1412      256102022,  259299937,  262495411,  265688415,  268878918,  272066890,
1413      275252301,  278435122,  281615322,  284792871,  287967740,  291139898,
1414      294309315,  297475963,  300639811,  303800829,  306958987,  310114256,
1415      313266607,  316416009,  319562432,  322705848,  325846226,  328983537,
1416      332117752,  335248841,  338376774,  341501522,  344623056,  347741346,
1417      350856364,  353968078,  357076461,  360181484,  363283116,  366381328,
1418      369476092,  372567379,  375655158,  378739402,  381820081,  384897167,
1419      387970629,  391040440,  394106570,  397168990,  400227673,  403282588,
1420      406333707,  409381002,  412424443,  415464003,  418499652,  421531362,
1421      424559105,  427582851,  430602573,  433618242,  436629829,  439637307,
1422      442640646,  445639819,  448634798,  451625554,  454612059,  457594286,
1423      460572205,  463545789,  466515010,  469479840,  472440251,  475396215,
1424      478347705,  481294692,  484237149,  487175049,  490108362,  493037063,
1425      495961123,  498880515,  501795211,  504705185,  507610407,  510510852,
1426      513406492,  516297299,  519183247,  522064308,  524940455,  527811662,
1427      530677900,  533539143,  536395365,  539246537,  542092635,  544933629,
1428      547769495,  550600205,  553425732,  556246050,  559061133,  561870953,
1429      564675486,  567474703,  570268578,  573057087,  575840201,  578617895,
1430      581390144,  584156920,  586918197,  589673950,  592424154,  595168781,
1431      597907806,  600641203,  603368947,  606091011,  608807371,  611518001,
1432      614222874,  616921967,  619615253,  622302706,  624984303,  627660016,
1433      630329822,  632993695,  635651611,  638303543,  640949467,  643589358,
1434      646223192,  648850943,  651472587,  654088098,  656697454,  659300628,
1435      661897597,  664488336,  667072820,  669651025,  672222928,  674788503,
1436      677347727,  679900576,  682447025,  684987050,  687520628,  690047735,
1437      692568347,  695082441,  697589992,  700090976,  702585372,  705073154,
1438      707554300,  710028786,  712496590,  714957686,  717412054,  719859669,
1439      722300508,  724734549,  727161768,  729582143,  731995650,  734402268,
1440      736801974,  739194744,  741580557,  743959390,  746331220,  748696026,
1441      751053784,  753404474,  755748072,  758084557,  760413906,  762736098,
1442      765051111,  767358923,  769659512,  771952857,  774238936,  776517727,
1443      778789210,  781053362,  783310163,  785559591,  787801625,  790036244,
1444      792263427,  794483152,  796695400,  798900149,  801097378,  803287068,
1445      805469196,  807643743,  809810688,  811970011,  814121691,  816265708,
1446      818402043,  820530674,  822651582,  824764747,  826870150,  828967769,
1447      831057585,  833139580,  835213733,  837280024,  839338434,  841388945,
1448      843431535,  845466188,  847492882,  849511599,  851522321,  853525027,
1449      855519700,  857506321,  859484870,  861455329,  863417680,  865371905,
1450      867317984,  869255899,  871185633,  873107167,  875020482,  876925562,
1451      878822388,  880710942,  882591207,  884463164,  886326796,  888182086,
1452      890029016,  891867568,  893697726,  895519472,  897332790,  899137661,
1453      900934069,  902721997,  904501429,  906272346,  908034734,  909788575,
1454      911533853,  913270551,  914998653,  916718143,  918429004,  920131220,
1455      921824776,  923509655,  925185842,  926853321,  928512076,  930162091,
1456      931803351,  933435841,  935059545,  936674448,  938280534,  939877789,
1457      941466198,  943045745,  944616416,  946178195,  947731069,  949275023,
1458      950810041,  952336110,  953853216,  955361343,  956860478,  958350607,
1459      959831716,  961303790,  962766816,  964220780,  965665668,  967101468,
1460      968528164,  969945745,  971354195,  972753503,  974143656,  975524639,
1461      976896440,  978259046,  979612445,  980956623,  982291568,  983617267,
1462      984933708,  986240878,  987538766,  988827358,  990106643,  991376609,
1463      992637244,  993888536,  995130473,  996363043,  997586235,  998800037,
1464      1000004439, 1001199428, 1002384993, 1003561124, 1004727808, 1005885036,
1465      1007032796, 1008171077, 1009299869, 1010419161, 1011528943, 1012629204,
1466      1013719933, 1014801121, 1015872757, 1016934832, 1017987335, 1019030256,
1467      1020063585, 1021087314, 1022101431, 1023105928, 1024100795, 1025086023,
1468      1026061603, 1027027525, 1027983780, 1028930359, 1029867253, 1030794455,
1469      1031711953, 1032619741, 1033517810, 1034406151, 1035284755, 1036153615,
1470      1037012722, 1037862069, 1038701647, 1039531448, 1040351464, 1041161689,
1471      1041962114, 1042752731, 1043533533, 1044304514, 1045065665, 1045816979,
1472      1046558450, 1047290070, 1048011833, 1048723731, 1049425759, 1050117909,
1473      1050800175, 1051472550, 1052135028, 1052787603, 1053430269, 1054063020,
1474      1054685850, 1055298752, 1055901722, 1056494753, 1057077839, 1057650977,
1475      1058214159, 1058767381, 1059310637, 1059843923, 1060367233, 1060880562,
1476      1061383906, 1061877260, 1062360620, 1062833979, 1063297335, 1063750683,
1477      1064194019, 1064627337, 1065050636, 1065463909, 1065867154, 1066260366,
1478      1066643543, 1067016680, 1067379774, 1067732821, 1068075818, 1068408762,
1479      1068731650, 1069044478, 1069347245, 1069639946, 1069922579, 1070195142,
1480      1070457631, 1070710046, 1070952382, 1071184638, 1071406811, 1071618900,
1481      1071820903, 1072012817, 1072194641, 1072366373, 1072528012, 1072679556,
1482      1072821003, 1072952352, 1073073602, 1073184752, 1073285801, 1073376748,
1483      1073457591, 1073528331, 1073588967, 1073639497, 1073679922, 1073710241,
1484      1073730454, 1073740560},
1485     // WORD32 cosine_array_1024[512];
1486     {
1487         2147483008, 2147432448, 1647099,    14823777,   2147301120, 2147088896,
1488         27999896,   41174960,   2146795776, 2146421888, 54348476,   67519944,
1489         2145967232, 2145431680, 80688872,   93854760,   2144815488, 2144118400,
1490         107017112,  120175440,  2143340672, 2142482304, 133329240,  146478032,
1491         2141543168, 2140523392, 159621296,  172758544,  2139423104, 2138242176,
1492         185889296,  199013056,  2136980864, 2135639040, 212129312,  225237600,
1493         2134216832, 2132714240, 238337392,  251428208,  2131131264, 2129468160,
1494         264509568,  277580960,  2127724928, 2125901568, 290641920,  303691904,
1495         2123998080, 2122014720, 316730496,  329757120,  2119951360, 2117808256,
1496         342771360,  355772672,  2115585408, 2113282944, 368760608,  381734656,
1497         2110900864, 2108439296, 394694336,  407639136,  2105898368, 2103278208,
1498         420568608,  433482240,  2100578816, 2097800320, 446379552,  459260064,
1499         2094942848, 2092006528, 472123296,  484968736,  2088991488, 2085897728,
1500         497795904,  510604352,  2082725376, 2079474688, 523393568,  536163072,
1501         2076145792, 2072738560, 548912384,  561641024,  2069253376, 2065690368,
1502         574348544,  587034432,  2062049536, 2058331008, 599698240,  612339456,
1503         2054535040, 2050661632, 624957632,  637552256,  2046711040, 2042683520,
1504         650122880,  662668992,  2038578944, 2034397696, 675190208,  687685952,
1505         2030139904, 2025805568, 700155840,  712599360,  2021394944, 2016908288,
1506         725016064,  737405504,  2012345728, 2007707392, 749767104,  762100544,
1507         2002993408, 1998204032, 774405248,  786680768,  1993339392, 1988399744,
1508         798926720,  811142592,  1983385216, 1978296064, 823327936,  835482240,
1509         1973132416, 1967894528, 847605120,  859696064,  1962582400, 1957196544,
1510         871754688,  883780416,  1951736832, 1946203776, 895772928,  907731712,
1511         1940597376, 1934918016, 919656256,  931546240,  1929165696, 1923340800,
1512         943401152,  955220544,  1917443456, 1911473920, 967003968,  978750976,
1513         1905432448, 1899319168, 990461120,  1002134016, 1893134464, 1886878464,
1514         1013769152, 1025366080, 1880551424, 1874153600, 1036924480, 1048443776,
1515         1867685120, 1861146496, 1059923648, 1071363584, 1854537600, 1847859072,
1516         1082763264, 1094122112, 1841110784, 1834293376, 1105439744, 1116715776,
1517         1827406720, 1820451328, 1127949696, 1139141248, 1813427456, 1806335232,
1518         1150289920, 1161395200, 1799175040, 1791947136, 1172456832, 1183474304,
1519         1784651776, 1777289216, 1194447232, 1205375104, 1769859712, 1762363520,
1520         1216257664, 1227094400, 1754801024, 1747172480, 1237884928, 1248628992,
1521         1739478144, 1731718400, 1259325824, 1269975424, 1723893376, 1716003456,
1522         1280577152, 1291130624, 1708048896, 1700030080, 1301635584, 1312091392,
1523         1691947136, 1683800704, 1322497920, 1332854656, 1675590656, 1667317632,
1524         1343161088, 1353417088, 1658981888, 1650583680, 1363622016, 1373775744,
1525         1642123264, 1633601024, 1383877632, 1393927424, 1625017216, 1616372352,
1526         1403924864, 1413869312, 1607666560, 1598900352, 1423760512, 1433598208,
1527         1590073856, 1581187456, 1443381888, 1453111296, 1572241536, 1563236480,
1528         1462785920, 1472405376, 1554172544, 1545050112, 1481969536, 1491477888,
1529         1535869440, 1526631040, 1500930048, 1510325760, 1517335040, 1507982080,
1530         1519664512, 1528946048, 1498572160, 1489105920, 1538170112, 1547336192,
1531         1479583616, 1470005632, 1556444032, 1565493376, 1460372352, 1450683904,
1532         1574483712, 1583414656, 1440941056, 1431143808, 1592286080, 1601097600,
1533         1421292672, 1411388032, 1609848832, 1618539392, 1401430400, 1391419904,
1534         1627169024, 1635737344, 1381356928, 1371242112, 1644244224, 1652689152,
1535         1361075584, 1350857728, 1661071744, 1669391872, 1340589184, 1330270080,
1536         1677649152, 1685843328, 1319900928, 1309481984, 1693973888, 1702040832,
1537         1299013760, 1288496768, 1710043648, 1717981952, 1277931136, 1267317376,
1538         1725855744, 1733664512, 1256656000, 1245947264, 1741408000, 1749085824,
1539         1235191680, 1224389504, 1756697984, 1764243840, 1213541248, 1202647296,
1540         1771723392, 1779136128, 1191708032, 1180723968, 1786481920, 1793760512,
1541         1169695488, 1158622848, 1800971520, 1808114816, 1147506688, 1136347264,
1542         1815189888, 1822196736, 1125145088, 1113900544, 1829134848, 1836004224,
1543         1102614144, 1091286144, 1842804480, 1849535232, 1079917056, 1068507264,
1544         1856196480, 1862787712, 1057057344, 1045567552, 1869308928, 1875759744,
1545         1034038400, 1022470400, 1882139904, 1888449152, 1010863808, 999219200,
1546         1894687360, 1900854272, 987536960,  975817536,  1906949632, 1912973056,
1547         964061376,  952268928,  1918924544, 1924803840, 940440640,  928576960,
1548         1930610688, 1936344704, 916678272,  904745088,  1942005888, 1947593984,
1549         892777856,  880777024,  1953108736, 1958549888, 868742976,  856676288,
1550         1963917440, 1969211008, 844577280,  832446528,  1974430336, 1979575424,
1551         820284416,  808091392,  1984645888, 1989641728, 795867968,  783614592,
1552         1994562688, 1999408512, 771331712,  759019776,  2004178944, 2008874112,
1553         746679232,  734310592,  2013493504, 2018037120, 721914368,  709490880,
1554         2022504832, 2026896256, 697040768,  684564352,  2031211520, 2035450240,
1555         672062144,  659534720,  2039612288, 2043697664, 646982400,  634405696,
1556         2047705984, 2051637248, 621805184,  609181184,  2055491328, 2059267840,
1557         596534336,  583864960,  2062967040, 2066588416, 571173632,  558460736,
1558         2070132096, 2073597696, 545726912,  532972480,  2076985344, 2080294784,
1559         520197984,  507403936,  2083525888, 2086678528, 494590752,  481758976,
1560         2089752576, 2092748032, 468909024,  456041440,  2095664640, 2098502400,
1561         443156704,  430255264,  2101261056, 2103940736, 417337632,  404404288,
1562         2106541056, 2109062144, 391455712,  378492384,  2111503872, 2113865984,
1563         365514816,  352523488,  2116148608, 2118351488, 339518912,  326501504,
1564         2120474752, 2122518016, 313471840,  300430368,  2124481408, 2126364928,
1565         287377600,  274313984,  2128168320, 2129891456, 261240048,  248156272,
1566         2131534592, 2133097344, 235063168,  221961200,  2134579840, 2135982080,
1567         208850896,  195732704,  2137303808, 2138545024, 182607152,  169474736,
1568         2139705728, 2140785920, 156335920,  143191232,  2141785472, 2142704384,
1569         130041152,  116886168,  2143542656, 2144300288, 103726792,  90563504,
1570         2144977152, 2145573120, 77396808,   64227204,   2146088448, 2146523008,
1571         51055176,   37881228,   2146876672, 2147149568, 24705852,   11529547,
1572         2147341568, 2147452672,
1573     },
1574     // const WORD32 low_overlap_win_480[480]
1575     {0,          0,          0,          0,          0,          0,
1576      0,          0,          0,          0,          0,          0,
1577      0,          0,          0,          0,          0,          0,
1578      0,          0,          0,          0,          0,          0,
1579      0,          0,          0,          0,          0,          0,
1580      0,          0,          0,          0,          0,          0,
1581      0,          0,          0,          0,          0,          0,
1582      0,          0,          0,          0,          0,          0,
1583      0,          0,          0,          0,          0,          0,
1584      0,          0,          0,          0,          0,          0,
1585      0,          0,          0,          0,          0,          0,
1586      0,          0,          0,          0,          0,          0,
1587      0,          0,          0,          0,          0,          0,
1588      0,          0,          0,          0,          0,          0,
1589      0,          0,          0,          0,          0,          0,
1590      0,          0,          0,          0,          0,          0,
1591      0,          0,          0,          0,          0,          0,
1592      0,          0,          0,          0,          0,          0,
1593      0,          0,          0,          0,          0,          0,
1594      0,          0,          0,          0,          0,          0,
1595      0,          0,          0,          0,          0,          0,
1596      0,          0,          0,          0,          0,          0,
1597      0,          0,          0,          0,          0,          0,
1598      0,          0,          0,          0,          0,          0,
1599      0,          0,          0,          0,          0,          0,
1600      0,          0,          0,          0,          0,          0,
1601      0,          0,          0,          0,          0,          0,
1602      0,          0,          0,          0,          0,          0,
1603      0,          0,          0,          0,          0,          0,
1604      0,          0,          0,          0,          0,          0,
1605      7027573,    21081516,   35131847,   49176158,   63212044,   77237098,
1606      91248918,   105245103,  119223254,  133180978,  147115881,  161025577,
1607      174907682,  188759818,  202579610,  216364692,  230112700,  243821280,
1608      257488083,  271110766,  284686996,  298214446,  311690798,  325113744,
1609      338480984,  351790226,  365039191,  378225608,  391347219,  404401774,
1610      417387037,  430300783,  443140798,  455904885,  468590854,  481196532,
1611      493719760,  506158392,  518510295,  530773355,  542945470,  555024554,
1612      567008537,  578895366,  590683004,  602369432,  613952647,  625430664,
1613      636801517,  648063257,  659213956,  670251701,  681174602,  691980787,
1614      702668405,  713235624,  723680634,  734001645,  744196888,  754264618,
1615      764203108,  774010655,  783685580,  793226225,  802630954,  811898156,
1616      821026244,  830013654,  838858844,  847560301,  856116533,  864526073,
1617      872787481,  880899342,  888860265,  896668886,  904323868,  911823899,
1618      919167693,  926353993,  933381566,  940249210,  946955747,  953500027,
1619      959880930,  966097363,  972148260,  978032584,  983749328,  989297511,
1620      994676183,  999884422,  1004921336, 1009786063, 1014477767, 1018995646,
1621      1023338926, 1027506861, 1031498739, 1035313874, 1038951614, 1042411335,
1622      1045692444, 1048794379, 1051716608, 1054458631, 1057019978, 1059400211,
1623      1061598920, 1063615730, 1065450295, 1067102300, 1068571463, 1069857532,
1624      1070960286, 1071879537, 1072615126, 1073166929, 1073534850, 1073718826,
1625      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1626      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1627      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1628      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1629      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1630      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1631      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1632      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1633      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1634      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1635      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1636      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1637      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1638      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1639      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1640      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1641      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1642      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1643      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1644      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1645      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1646      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1647      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1648      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1649      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1650      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1651      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1652      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1653      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823,
1654      1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823},
1655     //   WORD32 window_sine_480[480];
1656     {1756905,    5270696,    8784431,    12298072,   15811582,   19324922,
1657      22838055,   26350943,   29863549,   33375836,   36887765,   40399299,
1658      43910400,   47421031,   50931154,   54440732,   57949727,   61458101,
1659      64965817,   68472837,   71979124,   75484640,   78989348,   82493210,
1660      85996188,   89498246,   92999345,   96499448,   99998518,   103496516,
1661      106993407,  110489151,  113983713,  117477053,  120969136,  124459923,
1662      127949377,  131437461,  134924138,  138409369,  141893118,  145375348,
1663      148856021,  152335099,  155812547,  159288325,  162762398,  166234728,
1664      169705277,  173174009,  176640887,  180105873,  183568930,  187030021,
1665      190489109,  193946157,  197401129,  200853986,  204304692,  207753211,
1666      211199504,  214643536,  218085269,  221524666,  224961691,  228396307,
1667      231828477,  235258165,  238685333,  242109944,  245531963,  248951353,
1668      252368076,  255782097,  259193379,  262601885,  266007578,  269410423,
1669      272810383,  276207421,  279601501,  282992587,  286380642,  289765631,
1670      293147516,  296526261,  299901832,  303274190,  306643301,  310009128,
1671      313371635,  316730785,  320086544,  323438875,  326787743,  330133110,
1672      333474943,  336813204,  340147858,  343478869,  346806202,  350129821,
1673      353449690,  356765774,  360078037,  363386445,  366690960,  369991549,
1674      373288175,  376580804,  379869400,  383153928,  386434352,  389710639,
1675      392982751,  396250655,  399514316,  402773698,  406028767,  409279487,
1676      412525825,  415767744,  419005212,  422238191,  425466650,  428690551,
1677      431909862,  435124547,  438334573,  441539904,  444740507,  447936347,
1678      451127389,  454313601,  457494947,  460671394,  463842908,  467009454,
1679      470170999,  473327508,  476478949,  479625287,  482766489,  485902520,
1680      489033348,  492158939,  495279259,  498394275,  501503954,  504608262,
1681      507707166,  510800633,  513888630,  516971123,  520048080,  523119468,
1682      526185253,  529245403,  532299886,  535348668,  538391717,  541429001,
1683      544460486,  547486140,  550505931,  553519827,  556527795,  559529802,
1684      562525818,  565515810,  568499745,  571477593,  574449320,  577414895,
1685      580374287,  583327463,  586274392,  589215043,  592149384,  595077383,
1686      597999010,  600914232,  603823019,  606725340,  609621163,  612510457,
1687      615393193,  618269337,  621138861,  624001732,  626857921,  629707397,
1688      632550130,  635386088,  638215242,  641037560,  643853014,  646661573,
1689      649463207,  652257885,  655045578,  657826256,  660599890,  663366449,
1690      666125903,  668878224,  671623382,  674361348,  677092091,  679815584,
1691      682531796,  685240699,  687942263,  690636460,  693323261,  696002637,
1692      698674559,  701338999,  703995929,  706645319,  709287141,  711921368,
1693      714547970,  717166920,  719778190,  722381752,  724977578,  727565639,
1694      730145909,  732718360,  735282964,  737839694,  740388522,  742929421,
1695      745462364,  747987323,  750504272,  753013184,  755514032,  758006789,
1696      760491428,  762967923,  765436247,  767896374,  770348277,  772791930,
1697      775227308,  777654383,  780073131,  782483524,  784885538,  787279146,
1698      789664323,  792041044,  794409282,  796769013,  799120211,  801462851,
1699      803796908,  806122357,  808439173,  810747332,  813046807,  815337576,
1700      817619614,  819892895,  822157396,  824413092,  826659959,  828897974,
1701      831127111,  833347348,  835558661,  837761025,  839954418,  842138815,
1702      844314194,  846480531,  848637802,  850785986,  852925058,  855054996,
1703      857175777,  859287379,  861389778,  863482952,  865566879,  867641537,
1704      869706903,  871762955,  873809671,  875847029,  877875008,  879893585,
1705      881902740,  883902450,  885892694,  887873451,  889844699,  891806418,
1706      893758587,  895701184,  897634188,  899557580,  901471339,  903375443,
1707      905269873,  907154608,  909029628,  910894913,  912750443,  914596199,
1708      916432160,  918258306,  920074619,  921881079,  923677666,  925464361,
1709      927241145,  929007999,  930764904,  932511841,  934248792,  935975738,
1710      937692661,  939399541,  941096361,  942783103,  944459749,  946126280,
1711      947782678,  949428927,  951065008,  952690904,  954306597,  955912071,
1712      957507308,  959092290,  960667001,  962231424,  963785543,  965329340,
1713      966862800,  968385905,  969898639,  971400986,  972892931,  974374457,
1714      975845548,  977306188,  978756362,  980196055,  981625250,  983043933,
1715      984452089,  985849701,  987236756,  988613239,  989979134,  991334427,
1716      992679104,  994013151,  995336552,  996649294,  997951362,  999242743,
1717      1000523424, 1001793389, 1003052626, 1004301121, 1005538861, 1006765832,
1718      1007982022, 1009187417, 1010382005, 1011565772, 1012738706, 1013900794,
1719      1015052024, 1016192384, 1017321862, 1018440444, 1019548120, 1020644877,
1720      1021730705, 1022805590, 1023869522, 1024922488, 1025964479, 1026995483,
1721      1028015488, 1029024484, 1030022460, 1031009406, 1031985310, 1032950162,
1722      1033903952, 1034846670, 1035778306, 1036698849, 1037608290, 1038506619,
1723      1039393827, 1040269903, 1041134839, 1041988625, 1042831253, 1043662712,
1724      1044482995, 1045292092, 1046089995, 1046876695, 1047652184, 1048416454,
1725      1049169495, 1049911301, 1050641864, 1051361174, 1052069226, 1052766010,
1726      1053451521, 1054125750, 1054788690, 1055440334, 1056080675, 1056709706,
1727      1057327421, 1057933812, 1058528874, 1059112600, 1059684984, 1060246020,
1728      1060795701, 1061334021, 1061860976, 1062376559, 1062880765, 1063373588,
1729      1063855024, 1064325066, 1064783710, 1065230952, 1065666785, 1066091206,
1730      1066504210, 1066905793, 1067295950, 1067674677, 1068041971, 1068397826,
1731      1068742240, 1069075208, 1069396727, 1069706794, 1070005405, 1070292558,
1732      1070568248, 1070832474, 1071085231, 1071326518, 1071556333, 1071774671,
1733      1071981532, 1072176913, 1072360812, 1072533226, 1072694155, 1072843595,
1734      1072981547, 1073108008, 1073222976, 1073326452, 1073418433, 1073498918,
1735      1073567907, 1073625399, 1073671393, 1073705890, 1073728887, 1073740386},
1736     // UWORD8 re_arr_tab_16[240];
1737     {
1738 
1739         0,   15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210,
1740         225, 16, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211,
1741         226, 1,  32, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212,
1742         227, 2,  17, 48, 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213,
1743         228, 3,  18, 33, 64, 79, 94, 109, 124, 139, 154, 169, 184, 199, 214,
1744         229, 4,  19, 34, 49, 80, 95, 110, 125, 140, 155, 170, 185, 200, 215,
1745         230, 5,  20, 35, 50, 65, 96, 111, 126, 141, 156, 171, 186, 201, 216,
1746         231, 6,  21, 36, 51, 66, 81, 112, 127, 142, 157, 172, 187, 202, 217,
1747         232, 7,  22, 37, 52, 67, 82, 97,  128, 143, 158, 173, 188, 203, 218,
1748         233, 8,  23, 38, 53, 68, 83, 98,  113, 144, 159, 174, 189, 204, 219,
1749         234, 9,  24, 39, 54, 69, 84, 99,  114, 129, 160, 175, 190, 205, 220,
1750         235, 10, 25, 40, 55, 70, 85, 100, 115, 130, 145, 176, 191, 206, 221,
1751         236, 11, 26, 41, 56, 71, 86, 101, 116, 131, 146, 161, 192, 207, 222,
1752         237, 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177, 208, 223,
1753         238, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 224,
1754         239, 14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209},
1755     // UWORD8 re_arr_tab_sml_240[MDCT_LEN >> 1] =
1756     {0,   160, 80,  96,  16,  176, 192, 112, 32,  48,  208, 128, 144, 64,  224,
1757      225, 145, 65,  81,  1,   161, 177, 97,  17,  33,  193, 113, 129, 49,  209,
1758      210, 130, 50,  66,  226, 146, 162, 82,  2,   18,  178, 98,  114, 34,  194,
1759      195, 115, 35,  51,  211, 131, 147, 67,  227, 3,   163, 83,  99,  19,  179,
1760      180, 100, 20,  36,  196, 116, 132, 52,  212, 228, 148, 68,  84,  4,   164,
1761      165, 85,  5,   21,  181, 101, 117, 37,  197, 213, 133, 53,  69,  229, 149,
1762      150, 70,  230, 6,   166, 86,  102, 22,  182, 198, 118, 38,  54,  214, 134,
1763      135, 55,  215, 231, 151, 71,  87,  7,   167, 183, 103, 23,  39,  199, 119,
1764      120, 40,  200, 216, 136, 56,  72,  232, 152, 168, 88,  8,   24,  184, 104,
1765      105, 25,  185, 201, 121, 41,  57,  217, 137, 153, 73,  233, 9,   169, 89,
1766      90,  10,  170, 186, 106, 26,  42,  202, 122, 138, 58,  218, 234, 154, 74,
1767      75,  235, 155, 171, 91,  11,  27,  187, 107, 123, 43,  203, 219, 139, 59,
1768      60,  220, 140, 156, 76,  236, 12,  172, 92,  108, 28,  188, 204, 124, 44,
1769      45,  205, 125, 141, 61,  221, 237, 157, 77,  93,  13,  173, 189, 109, 29,
1770      30,  190, 110, 126, 46,  206, 222, 142, 62,  78,  238, 158, 174, 94,  14,
1771      15,  175, 95,  111, 31,  191, 207, 127, 47,  63,  223, 143, 159, 79,  239},
1772 
1773     // WORD32 cosine_array_960[480] =
1774     {
1775         2147482880, 2147425408, 1756906,    15812012,   2147275904, 2147034496,
1776         29866440,   43919588,   2146701056, 2146275712, 57970856,   72019640,
1777         2145758336, 2145149056, 86065336,   100107352,  2144447872, 2143654912,
1778         114145072,  128177912,  2142770048, 2141793536, 142205248,  156226512,
1779         2140725120, 2139565056, 170241056,  184248336,  2138313344, 2136969984,
1780         198247712,  212238592,  2135535104, 2134008832, 226220384,  240192480,
1781         2132391040, 2130681984, 254154288,  268105216,  2128881536, 2126990080,
1782         282044640,  295972000,  2125007360, 2122933632, 309886688,  323788096,
1783         2120769024, 2118513536, 337675616,  351548704,  2116167296, 2113730432,
1784         365406720,  379249056,  2111202944, 2108585088, 393075168,  406884448,
1785         2105876864, 2103078528, 420676288,  434450112,  2100189952, 2097211520,
1786         448205344,  461941344,  2094143232, 2090985216, 475657568,  489353408,
1787         2087737600, 2084400640, 503028320,  516681664,  2080974336, 2077458944,
1788         530312864,  543921344,  2073854464, 2070161280, 557506560,  571067840,
1789         2066379264, 2062508800, 584604672,  598116480,  2058550016, 2054503040,
1790         611602688,  625062656,  2050368000, 2046145152, 638495872,  651901696,
1791         2041834752, 2037436800, 665279680,  678629120,  2032951552, 2028379264,
1792         691949440,  705240192,  2023720064, 2018974208, 718500672,  731730432,
1793         2014141824, 2009223168, 744928832,  758095296,  2004218368, 1999127808,
1794         771229312,  784330240,  1993951616, 1988690048, 797397632,  810430848,
1795         1983343232, 1977911424, 823429312,  836392576,  1972394880, 1966793856,
1796         849319936,  862210944,  1961108608, 1955339392, 875065024,  887881600,
1797         1949486464, 1943549824, 900660160,  913400192,  1937530112, 1931427328,
1798         926100992,  938762176,  1925241856, 1918973824, 951383168,  963963392,
1799         1912623616, 1906191616, 976502272,  988999360,  1899677824, 1893082624,
1800         1001454080, 1013865920, 1886406400, 1879649408, 1026234304, 1038558720,
1801         1872811776, 1865894016, 1050838720, 1063073600, 1858896256, 1851819008,
1802         1075262976, 1087406336, 1844662272, 1837426560, 1099503104, 1111552768,
1803         1830112256, 1822719360, 1123554816, 1135508736, 1815248512, 1807699840,
1804         1147414016, 1159270016, 1800073856, 1792370688, 1171076480, 1182832768,
1805         1784590720, 1776734336, 1194538496, 1206192896, 1768801792, 1760793472,
1806         1217795712, 1229346304, 1752709760, 1744551040, 1240844288, 1252289024,
1807         1736317440, 1728009600, 1263680256, 1275017216, 1719627648, 1711172096,
1808         1286299648, 1297526912, 1702643200, 1694041344, 1308698624, 1319814272,
1809         1685367040, 1676620416, 1330873472, 1341875584, 1667801984, 1658912128,
1810         1352820224, 1363706880, 1649951232, 1640919680, 1374535168, 1385304576,
1811         1631817728, 1622646016, 1396014592, 1406664832, 1613404672, 1604094336,
1812         1417254784, 1427784064, 1594715136, 1585267712, 1438252160, 1448658688,
1813         1575752448, 1566169600, 1459003136, 1469285120, 1556519680, 1546803072,
1814         1479504128, 1489659776, 1537020160, 1527171456, 1499751552, 1509779200,
1815         1517257344, 1507278336, 1519742080, 1529639936, 1497234560, 1487126784,
1816         1539472128, 1549238528, 1476955264, 1466720512, 1558938496, 1568571648,
1817         1456422784, 1446062848, 1578137728, 1587636096, 1435640832, 1425157376,
1818         1597066496, 1606428416, 1414612992, 1404007808, 1615721600, 1624945536,
1819         1393342592, 1382617728, 1634099840, 1643184256, 1371833472, 1360990592,
1820         1652198144, 1661141376, 1350089344, 1339130368, 1670013440, 1678813824,
1821         1328113920, 1317040640, 1687542400, 1696198656, 1305910912, 1294725248,
1822         1704782336, 1713292928, 1283484032, 1272188032, 1721730176, 1730093568,
1823         1260837376, 1249432832, 1738382848, 1746597760, 1237974656, 1226463488,
1824         1754737792, 1762802688, 1214899712, 1203283968, 1770792064, 1778705536,
1825         1191616768, 1179898368, 1786542976, 1794303744, 1168129536, 1156310656,
1826         1801987584, 1809594368, 1144442112, 1132524672, 1817123584, 1824574976,
1827         1120558720, 1108544640, 1831948160, 1839243008, 1096483200, 1084374784,
1828         1846458880, 1853595776, 1072219904, 1060019072, 1860653312, 1867630976,
1829         1047772800, 1035481728, 1874528768, 1881346176, 1023146240, 1010766912,
1830         1888083072, 1894739072, 998344320,  985878976,  1901313920, 1907807232,
1831         973371392,  960822080,  1914219008, 1920548608, 948231616,  935600576,
1832         1926796032, 1932960896, 922929408,  910218752,  1939042944, 1945041920,
1833         897469056,  884680960,  1950957568, 1956789632, 871854912,  858991552,
1834         1962537856, 1968202112, 846091392,  833155008,  1973782016, 1979277312,
1835         820182912,  807175680,  1984687872, 1990013440, 794133888,  781058048,
1836         1995253760, 2000408576, 767948800,  754806592,  2005477632, 2010460928,
1837         741632064,  728425792,  2015357952, 2020168832, 715188352,  701920192,
1838         2024893056, 2029530496, 688622016,  675294336,  2034081024, 2038544512,
1839         661937728,  648552768,  2042920576, 2047209216, 635140032,  621700032,
1840         2051410048, 2055523072, 608233472,  594740864,  2059548032, 2063484800,
1841         581222720,  567679680,  2067333120, 2071092864, 554112384,  540521280,
1842         2074763904, 2078346112, 526907072,  513270272,  2081839360, 2085243264,
1843         499611488,  485931296,  2088557952, 2091783168, 472230304,  458509088,
1844         2094918784, 2097964544, 444768224,  431008288,  2100920576, 2103786496,
1845         417229920,  403433664,  2106562432, 2109248000, 389620128,  375789888,
1846         2111843328, 2114348160, 361943552,  348081728,  2116762368, 2119085952,
1847         334204992,  320313920,  2121318656, 2123460608, 306409152,  292491232,
1848         2125511552, 2127471488, 278560800,  264618448,  2129340288, 2131117824,
1849         250664736,  236700304,  2132804096, 2134398976, 222725728,  208741600,
1850         2135902464, 2137314432, 194748544,  180747136,  2138634880, 2139863680,
1851         166737984,  152721696,  2141000832, 2142046208, 138698864,  124670096,
1852         2142999936, 2143861760, 110635984,  96597136,   2144631808, 2145309952,
1853         82554144,   68507616,   2145896320, 2146390656, 54458156,   40406360,
1854         2146793088, 2147103488, 26352836,   12298181,   2147321984, 2147448448,
1855     },
1856 
1857     // WORD32 w_16[24] =
1858     {
1859         0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff,
1860         0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d,
1861         0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667,
1862         0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5,
1863     },
1864 
1865     // WORD32 window_sine_480_eld[1920];
1866     {0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1867      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1868      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1869      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1870      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1871      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1872      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1873      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1874      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1875      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1876      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1877      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1878      17,    72,    118,   176,   239,   307,   378,   451,   524,   597,
1879      669,   741,   812,   883,   954,   1024,  1095,  1165,  1235,  1305,
1880      1375,  1444,  1514,  1583,  1652,  1722,  1792,  1863,  1933,  2005,
1881      2077,  2150,  2224,  2299,  2374,  2451,  2529,  2607,  2686,  2766,
1882      2847,  2928,  3009,  3091,  3174,  3256,  3339,  3423,  3507,  3591,
1883      3676,  3760,  3846,  3932,  4018,  4104,  4191,  4278,  4366,  4454,
1884      4542,  4631,  4720,  4809,  4899,  4988,  5078,  5168,  5257,  5347,
1885      5436,  5524,  5613,  5702,  5790,  5878,  5967,  6056,  6144,  6233,
1886      6321,  6410,  6498,  6586,  6673,  6761,  6848,  6934,  7020,  7106,
1887      7192,  7276,  7361,  7445,  7529,  7614,  7698,  7781,  7865,  7947,
1888      8030,  8112,  8193,  8274,  8354,  8434,  8514,  8594,  8673,  8751,
1889      8830,  8908,  8985,  9063,  9139,  9216,  9292,  9367,  9442,  9517,
1890      9621,  9695,  9769,  9842,  9915,  9988,  10060, 10132, 10203, 10274,
1891      10345, 10415, 10485, 10554, 10623, 10691, 10760, 10827, 10895, 10962,
1892      11029, 11095, 11161, 11226, 11291, 11356, 11420, 11484, 11548, 11611,
1893      11674, 11736, 11798, 11859, 11921, 11981, 12042, 12102, 12161, 12220,
1894      12279, 12337, 12395, 12452, 12509, 12565, 12621, 12677, 12732, 12787,
1895      12841, 12895, 12948, 13000, 13053, 13104, 13156, 13206, 13257, 13306,
1896      13356, 13404, 13452, 13500, 13547, 13594, 13639, 13685, 13730, 13774,
1897      13818, 13861, 13904, 13946, 13988, 14029, 14069, 14109, 14148, 14187,
1898      14225, 14263, 14300, 14336, 14372, 14408, 14443, 14477, 14511, 14544,
1899      14577, 14609, 14641, 14673, 14704, 14734, 14764, 14794, 14823, 14852,
1900      14881, 14909, 14938, 14966, 14994, 15021, 15049, 15076, 15104, 15131,
1901      15159, 15186, 15213, 15239, 15265, 15289, 15312, 15333, 15351, 15372,
1902      15382, 15386, 15392, 15398, 15404, 15411, 15418, 15425, 15431, 15438,
1903      15444, 15451, 15458, 15464, 15471, 15478, 15485, 15492, 15499, 15505,
1904      15512, 15519, 15526, 15534, 15541, 15548, 15555, 15562, 15569, 15577,
1905      15584, 15592, 15599, 15606, 15614, 15621, 15629, 15637, 15644, 15652,
1906      15660, 15668, 15675, 15683, 15691, 15699, 15707, 15715, 15723, 15731,
1907      15740, 15748, 15756, 15764, 15773, 15781, 15789, 15798, 15806, 15815,
1908      15824, 15832, 15841, 15849, 15858, 15867, 15876, 15884, 15893, 15902,
1909      15911, 15920, 15929, 15938, 15947, 15956, 15965, 15974, 15983, 15993,
1910      16002, 16011, 16020, 16030, 16039, 16048, 16057, 16067, 16076, 16086,
1911      16095, 16104, 16114, 16123, 16133, 16142, 16152, 16161, 16171, 16181,
1912      16190, 16200, 16209, 16219, 16229, 16238, 16248, 16258, 16267, 16277,
1913      16287, 16296, 16306, 16316, 16326, 16335, 16345, 16355, 16365, 16374,
1914      16394, 16403, 16413, 16423, 16433, 16443, 16452, 16462, 16472, 16482,
1915      16492, 16502, 16511, 16521, 16531, 16541, 16551, 16561, 16570, 16580,
1916      16590, 16600, 16610, 16619, 16629, 16639, 16649, 16659, 16668, 16678,
1917      16688, 16698, 16707, 16717, 16727, 16737, 16746, 16756, 16766, 16775,
1918      16785, 16795, 16804, 16814, 16823, 16833, 16842, 16852, 16861, 16871,
1919      16880, 16890, 16899, 16909, 16918, 16927, 16937, 16946, 16955, 16964,
1920      16974, 16983, 16992, 17001, 17010, 17019, 17028, 17037, 17046, 17055,
1921      17064, 17072, 17081, 17090, 17099, 17107, 17116, 17125, 17133, 17142,
1922      17150, 17159, 17167, 17175, 17184, 17192, 17200, 17209, 17217, 17225,
1923      17233, 17241, 17249, 17257, 17265, 17273, 17281, 17289, 17297, 17305,
1924      17312, 17320, 17328, 17335, 17343, 17351, 17358, 17366, 17373, 17381,
1925      17388, 17396, 17403, 17411, 17418, 17426, 17433, 17440, 17446, 17452,
1926      17454, 17449, 17444, 17437, 17428, 17418, 17407, 17396, 17385, 17374,
1927      17363, 17352, 17340, 17329, 17316, 17304, 17291, 17278, 17264, 17250,
1928      17236, 17221, 17207, 17193, 17179, 17165, 17150, 17136, 17121, 17107,
1929      17091, 17076, 17059, 17042, 17024, 17005, 16986, 16966, 16945, 16923,
1930      16901, 16878, 16855, 16831, 16807, 16783, 16759, 16734, 16709, 16684,
1931      16658, 16633, 16607, 16581, 16554, 16527, 16500, 16471, 16443, 16414,
1932      16384, 16353, 16322, 16290, 16257, 16224, 16190, 16155, 16120, 16085,
1933      16050, 16016, 15981, 15947, 15912, 15878, 15843, 15807, 15771, 15735,
1934      15697, 15659, 15621, 15581, 15542, 15502, 15461, 15421, 15380, 15339,
1935      15299, 15259, 15219, 15180, 15140, 15099, 15058, 15016, 14974, 14931,
1936      14887, 14844, 14800, 14757, 14714, 14671, 14628, 14584, 14541, 14497,
1937      14453, 14408, 14364, 14319, 14274, 14229, 14184, 14139, 14094, 14049,
1938      14004, 13958, 13912, 13865, 13819, 13772, 13725, 13678, 13631, 13584,
1939      13537, 13491, 13444, 13396, 13349, 13301, 13253, 13205, 13156, 13106,
1940      13057, 13008, 12960, 12912, 12864, 12817, 12770, 12723, 12675, 12626,
1941      12576, 12526, 12475, 12424, 12373, 12321, 12270, 12220, 12170, 12120,
1942      12071, 12022, 11974, 11926, 11878, 11829, 11780, 11730, 11679, 11627,
1943      11575, 11521, 11467, 11414, 11360, 11307, 11255, 11203, 11152, 11101,
1944      11051, 11001, 10952, 10903, 10853, 10804, 10755, 10705, 10656, 10605,
1945      10554, 10503, 10450, 10397, 10343, 10289, 10234, 10179, 10124, 10069,
1946      10014, 9960,  9907,  9854,  9803,  9752,  9703,  9654,  9606,  9559,
1947      9513,  9466,  9419,  9371,  9322,  9271,  9219,  9165,  9109,  9053,
1948      8996,  8939,  8883,  8828,  8775,  8723,  8674,  8625,  8578,  8532,
1949      8486,  8440,  8392,  8344,  8295,  8244,  8192,  8140,  8088,  8036,
1950      7983,  7931,  7879,  7829,  7779,  7731,  7682,  7634,  7586,  7537,
1951      7488,  7439,  7390,  7340,  7290,  7241,  7192,  7144,  7096,  7049,
1952      7001,  6953,  6904,  6856,  6807,  6757,  6708,  6659,  6610,  6561,
1953      6513,  6465,  6418,  6370,  6323,  6277,  6230,  6183,  6137,  6090,
1954      6044,  5997,  5951,  5905,  5858,  5812,  5766,  5720,  5674,  5628,
1955      5583,  5537,  5491,  5446,  5401,  5355,  5310,  5265,  5221,  5175,
1956      5130,  5084,  5037,  4991,  4945,  4899,  4853,  4807,  4761,  4716,
1957      4671,  4626,  4581,  4536,  4491,  4447,  4403,  4359,  4315,  4271,
1958      4228,  4185,  4142,  4099,  4056,  4014,  3972,  3929,  3887,  3846,
1959      3804,  3762,  3721,  3680,  3639,  3598,  3558,  3517,  3477,  3437,
1960      3397,  3357,  3318,  3278,  3239,  3199,  3160,  3122,  3083,  3044,
1961      3006,  2967,  2929,  2891,  2853,  2815,  2778,  2741,  2704,  2668,
1962      2620,  2585,  2550,  2515,  2481,  2447,  2413,  2380,  2347,  2314,
1963      2281,  2248,  2215,  2183,  2151,  2119,  2087,  2055,  2024,  1993,
1964      1962,  1931,  1901,  1870,  1840,  1810,  1781,  1751,  1722,  1693,
1965      1664,  1636,  1608,  1579,  1552,  1524,  1497,  1470,  1443,  1416,
1966      1390,  1364,  1338,  1312,  1287,  1261,  1236,  1212,  1187,  1163,
1967      1139,  1115,  1092,  1068,  1045,  1022,  1000,  977,   955,   934,
1968      912,   891,   869,   848,   828,   807,   787,   767,   747,   728,
1969      709,   690,   671,   652,   634,   616,   598,   581,   563,   546,
1970      529,   513,   496,   480,   464,   448,   433,   417,   402,   387,
1971      372,   358,   344,   329,   316,   302,   289,   276,   263,   251,
1972      238,   226,   214,   203,   191,   180,   169,   158,   147,   137,
1973      127,   117,   107,   97,    88,    78,    70,    61,    52,    44,
1974      36,    28,    21,    13,    6,     -2,    -9,    -16,   -23,   -30,
1975      -37,   -43,   -49,   -55,   -60,   -65,   -69,   -73,   -78,   -81,
1976      -85,   -89,   -93,   -97,   -101,  -105,  -109,  -113,  -116,  -120,
1977      -123,  -126,  -129,  -131,  -133,  -135,  -137,  -138,  -139,  -140,
1978      -141,  -142,  -143,  -143,  -144,  -144,  -145,  -145,  -146,  -146,
1979      -147,  -147,  -147,  -147,  -147,  -147,  -147,  -146,  -146,  -145,
1980      -144,  -143,  -141,  -140,  -139,  -137,  -135,  -134,  -132,  -130,
1981      -129,  -127,  -125,  -123,  -122,  -120,  -118,  -116,  -114,  -111,
1982      -109,  -107,  -104,  -102,  -99,   -96,   -94,   -91,   -88,   -86,
1983      -83,   -81,   -78,   -75,   -72,   -70,   -67,   -64,   -61,   -58,
1984      -55,   -52,   -49,   -46,   -44,   -41,   -38,   -35,   -32,   -29,
1985      -26,   -23,   -20,   -17,   -14,   -11,   -9,    -6,    -3,    0,
1986      0,     3,     6,     8,     11,    14,    17,    19,    22,    24,
1987      27,    29,    32,    34,    37,    39,    42,    44,    46,    48,
1988      50,    53,    55,    57,    59,    61,    62,    64,    66,    67,
1989      69,    71,    72,    74,    75,    76,    78,    79,    80,    81,
1990      82,    83,    84,    85,    86,    86,    87,    87,    88,    88,
1991      88,    89,    89,    89,    90,    90,    90,    90,    90,    90,
1992      90,    89,    89,    88,    88,    87,    86,    85,    85,    84,
1993      83,    82,    81,    80,    78,    77,    76,    75,    74,    73,
1994      72,    70,    69,    68,    66,    65,    63,    61,    59,    57,
1995      55,    53,    51,    49,    47,    44,    42,    40,    38,    36,
1996      34,    32,    30,    28,    26,    23,    21,    19,    16,    14,
1997      11,    8,     6,     3,     1,     -2,    -4,    -7,    -9,    -12,
1998      -14,   -17,   -20,   -22,   -25,   -27,   -30,   -32,   -35,   -38,
1999      -40,   -43,   -45,   -48,   -50,   -53,   -55,   -58,   -60,   -63,
2000      -65,   -68,   -70,   -73,   -75,   -78,   -80,   -82,   -85,   -87,
2001      -90,   -92,   -94,   -97,   -99,   -102,  -104,  -106,  -109,  -111,
2002      -113,  -116,  -118,  -121,  -123,  -125,  -128,  -130,  -133,  -135,
2003      -138,  -140,  -143,  -145,  -148,  -151,  -153,  -156,  -159,  -162,
2004      -165,  -168,  -170,  -173,  -176,  -178,  -181,  -183,  -185,  -188,
2005      -190,  -192,  -194,  -196,  -197,  -199,  -201,  -202,  -204,  -205,
2006      -206,  -208,  -209,  -210,  -211,  -212,  -213,  -214,  -214,  -215,
2007      -216,  -216,  -217,  -218,  -218,  -218,  -219,  -219,  -219,  -219,
2008      -219,  -219,  -220,  -219,  -219,  -219,  -219,  -219,  -218,  -218,
2009      -218,  -217,  -217,  -216,  -216,  -215,  -214,  -214,  -213,  -212,
2010      -214,  -214,  -213,  -212,  -211,  -211,  -210,  -209,  -208,  -207,
2011      -206,  -204,  -203,  -202,  -201,  -199,  -198,  -196,  -195,  -193,
2012      -192,  -190,  -189,  -187,  -185,  -184,  -182,  -180,  -178,  -176,
2013      -175,  -173,  -171,  -169,  -167,  -165,  -163,  -162,  -160,  -158,
2014      -156,  -154,  -152,  -150,  -149,  -147,  -145,  -143,  -142,  -140,
2015      -139,  -137,  -135,  -134,  -133,  -131,  -130,  -129,  -127,  -126,
2016      -125,  -123,  -122,  -120,  -118,  -117,  -115,  -113,  -111,  -109,
2017      -107,  -105,  -103,  -100,  -98,   -96,   -94,   -91,   -89,   -87,
2018      -84,   -82,   -79,   -77,   -75,   -72,   -70,   -67,   -65,   -63,
2019      -60,   -58,   -56,   -53,   -51,   -49,   -47,   -44,   -42,   -40,
2020      -38,   -36,   -34,   -32,   -30,   -28,   -26,   -25,   -23,   -21,
2021      -20,   -18,   -16,   -15,   -13,   -12,   -10,   -9,    -8,    -6,
2022      -5,    -4,    -3,    -2,    -1,    0,     1,     2,     3,     4,
2023      5,     6,     6,     7,     8,     8,     9,     9,     9,     10,
2024      10,    10,    11,    11,    11,    12,    12,    12,    12,    13,
2025      13,    13,    13,    13,    13,    13,    13,    13,    12,    12,
2026      12,    12,    12,    12,    11,    11,    11,    11,    11,    10,
2027      10,    10,    10,    9,     9,     9,     9,     8,     8,     8,
2028      8,     7,     7,     7,     6,     6,     6,     6,     5,     5,
2029      5,     5,     4,     4,     4,     4,     3,     3,     3,     3,
2030      3,     2,     2,     2,     2,     2,     2,     1,     1,     1,
2031      1,     1,     1,     1,     1,     1,     1,     0,     0,     0,
2032      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2033      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2034      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2035      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2036      0,     0,     0,     0,     1,     1,     1,     1,     1,     1,
2037      1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
2038      2,     2,     2,     2,     3,     3,     3,     3,     3,     3,
2039      3,     4,     4,     4,     4,     4,     4,     4,     5,     5,
2040      5,     5,     5,     5,     5,     5,     6,     6,     6,     6,
2041      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2042      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2043      6,     6,     5,     5,     5,     5,     5,     5,     4,     4,
2044      4,     4,     4,     3,     3,     3,     3,     2,     2,     2,
2045      1,     1,     1,     0,     0,     0,     -1,    -1,    -1,    -2,
2046      -2,    -2,    -3,    -3,    -4,    -4,    -5,    -5,    -5,    -6,
2047      -6,    -7,    -7,    -7,    -8,    -8,    -9,    -9,    -10,   -10,
2048      -10,   -11,   -11,   -12,   -12,   -13,   -13,   -13,   -14,   -14,
2049      -15,   -15,   -15,   -16,   -16,   -16,   -17,   -17,   -17,   -18,
2050      -18,   -18,   -19,   -19,   -19,   -19,   -20,   -20,   -20,   -20,
2051      -21,   -21,   -21,   -21,   -21,   -22,   -22,   -22,   -22,   -22,
2052      -22,   -22,   -22,   -22,   -23,   -23,   -23,   -23,   -23,   -23,
2053      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2054      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2055      -22,   -22,   -22,   -22,   -22,   -22,   -22,   -22,   -22,   -21,
2056      -21,   -21,   -21,   -21,   -21,   -20,   -20,   -20,   -20,   -20,
2057      -19,   -19,   -19,   -19,   -19,   -18,   -18,   -18,   -18,   -17},
2058     // WORD16 window_sine_512_eld[2048];
2059     {0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2060      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2061      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2062      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2064      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2065      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2066      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2067      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2068      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2069      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2070      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2071      0,     0,     0,     0,     0,     0,     0,     0,     56,    93,
2072      139,   192,   251,   314,   380,   447,   515,   583,   651,   718,
2073      784,   849,   914,   979,   1044,  1109,  1174,  1239,  1304,  1368,
2074      1433,  1498,  1563,  1628,  1693,  1758,  1824,  1890,  1956,  2022,
2075      2090,  2157,  2226,  2295,  2365,  2436,  2508,  2580,  2653,  2727,
2076      2802,  2877,  2952,  3029,  3105,  3182,  3260,  3338,  3416,  3494,
2077      3573,  3652,  3731,  3811,  3891,  3971,  4052,  4133,  4214,  4296,
2078      4378,  4460,  4542,  4625,  4708,  4791,  4874,  4957,  5041,  5125,
2079      5209,  5293,  5377,  5460,  5544,  5627,  5710,  5794,  5877,  5960,
2080      6042,  6125,  6208,  6291,  6373,  6456,  6538,  6620,  6702,  6784,
2081      6865,  6947,  7028,  7108,  7189,  7269,  7349,  7428,  7507,  7586,
2082      7665,  7743,  7821,  7899,  7976,  8054,  8131,  8207,  8283,  8359,
2083      8434,  8510,  8584,  8659,  8733,  8807,  8880,  8953,  9026,  9099,
2084      9171,  9243,  9314,  9385,  9456,  9526,  9583,  9653,  9723,  9792,
2085      9860,  9929,  9997,  10064, 10132, 10199, 10265, 10331, 10397, 10463,
2086      10528, 10593, 10657, 10721, 10785, 10849, 10912, 10974, 11037, 11099,
2087      11161, 11222, 11283, 11344, 11404, 11464, 11524, 11583, 11642, 11701,
2088      11759, 11817, 11875, 11932, 11989, 12045, 12102, 12157, 12213, 12268,
2089      12322, 12377, 12431, 12484, 12537, 12590, 12642, 12694, 12746, 12797,
2090      12848, 12898, 12948, 12997, 13046, 13095, 13143, 13191, 13238, 13285,
2091      13331, 13377, 13422, 13467, 13512, 13556, 13599, 13642, 13685, 13727,
2092      13769, 13810, 13850, 13891, 13930, 13969, 14008, 14046, 14084, 14121,
2093      14158, 14194, 14230, 14265, 14300, 14334, 14368, 14401, 14434, 14466,
2094      14498, 14530, 14561, 14591, 14621, 14651, 14680, 14709, 14738, 14766,
2095      14794, 14821, 14849, 14876, 14902, 14929, 14955, 14981, 15007, 15033,
2096      15059, 15085, 15111, 15137, 15162, 15188, 15213, 15238, 15262, 15285,
2097      15307, 15327, 15345, 15361, 15384, 15388, 15394, 15400, 15406, 15412,
2098      15418, 15425, 15431, 15437, 15443, 15449, 15456, 15462, 15468, 15475,
2099      15481, 15487, 15494, 15500, 15507, 15513, 15520, 15526, 15533, 15540,
2100      15546, 15553, 15560, 15567, 15574, 15580, 15587, 15594, 15601, 15608,
2101      15615, 15622, 15630, 15637, 15644, 15651, 15658, 15666, 15673, 15680,
2102      15688, 15695, 15703, 15710, 15718, 15725, 15733, 15741, 15748, 15756,
2103      15764, 15772, 15780, 15787, 15795, 15803, 15811, 15819, 15827, 15835,
2104      15843, 15852, 15860, 15868, 15876, 15884, 15893, 15901, 15909, 15918,
2105      15926, 15935, 15943, 15952, 15960, 15969, 15977, 15986, 15994, 16003,
2106      16012, 16020, 16029, 16038, 16046, 16055, 16064, 16073, 16081, 16090,
2107      16099, 16108, 16117, 16126, 16135, 16144, 16152, 16161, 16170, 16179,
2108      16188, 16197, 16206, 16215, 16224, 16233, 16242, 16251, 16261, 16270,
2109      16279, 16288, 16297, 16306, 16315, 16324, 16334, 16343, 16352, 16361,
2110      16370, 16379, 16389, 16398, 16407, 16416, 16425, 16435, 16444, 16453,
2111      16462, 16472, 16481, 16490, 16499, 16508, 16518, 16527, 16536, 16545,
2112      16554, 16564, 16573, 16582, 16591, 16600, 16610, 16619, 16628, 16637,
2113      16646, 16656, 16665, 16674, 16683, 16692, 16701, 16710, 16720, 16729,
2114      16738, 16747, 16756, 16765, 16774, 16783, 16792, 16801, 16810, 16819,
2115      16828, 16837, 16846, 16855, 16864, 16873, 16882, 16890, 16899, 16908,
2116      16917, 16926, 16934, 16943, 16952, 16960, 16969, 16978, 16986, 16995,
2117      17003, 17012, 17020, 17029, 17037, 17045, 17054, 17062, 17070, 17078,
2118      17087, 17095, 17103, 17111, 17119, 17127, 17135, 17143, 17151, 17159,
2119      17167, 17175, 17183, 17191, 17198, 17206, 17214, 17221, 17229, 17237,
2120      17244, 17252, 17259, 17267, 17274, 17282, 17289, 17296, 17304, 17311,
2121      17318, 17325, 17333, 17340, 17347, 17354, 17361, 17368, 17375, 17382,
2122      17389, 17396, 17403, 17410, 17417, 17424, 17431, 17438, 17444, 17449,
2123      17446, 17444, 17440, 17434, 17426, 17417, 17408, 17398, 17388, 17377,
2124      17367, 17357, 17347, 17336, 17326, 17315, 17303, 17292, 17280, 17267,
2125      17254, 17241, 17228, 17215, 17202, 17188, 17175, 17162, 17149, 17135,
2126      17122, 17108, 17094, 17080, 17065, 17049, 17033, 17016, 16999, 16980,
2127      16962, 16942, 16922, 16901, 16880, 16858, 16836, 16814, 16792, 16769,
2128      16746, 16723, 16699, 16676, 16652, 16628, 16604, 16579, 16555, 16529,
2129      16504, 16478, 16451, 16424, 16397, 16368, 16340, 16310, 16280, 16249,
2130      16218, 16186, 16154, 16121, 16088, 16055, 16023, 15990, 15958, 15926,
2131      15894, 15861, 15828, 15795, 15761, 15727, 15692, 15656, 15620, 15583,
2132      15546, 15508, 15471, 15433, 15395, 15357, 15319, 15281, 15244, 15207,
2133      15169, 15132, 15094, 15055, 15016, 14976, 14936, 14895, 14855, 14814,
2134      14773, 14733, 14692, 14652, 14611, 14570, 14530, 14488, 14447, 14406,
2135      14364, 14322, 14280, 14238, 14195, 14153, 14111, 14068, 14025, 13983,
2136      13940, 13897, 13854, 13810, 13767, 13723, 13680, 13636, 13593, 13549,
2137      13505, 13462, 13418, 13374, 13330, 13286, 13241, 13195, 13150, 13104,
2138      13058, 13013, 12968, 12923, 12879, 12835, 12792, 12748, 12703, 12658,
2139      12612, 12565, 12518, 12471, 12423, 12376, 12328, 12281, 12233, 12187,
2140      12140, 12095, 12049, 12004, 11959, 11915, 11870, 11825, 11779, 11732,
2141      11684, 11635, 11586, 11536, 11486, 11435, 11385, 11336, 11287, 11239,
2142      11191, 11143, 11096, 11050, 11003, 10957, 10911, 10865, 10819, 10773,
2143      10727, 10680, 10633, 10585, 10537, 10488, 10439, 10389, 10338, 10287,
2144      10236, 10184, 10133, 10081, 10030, 9979,  9929,  9880,  9832,  9784,
2145      9737,  9691,  9646,  9602,  9558,  9514,  9470,  9426,  9381,  9334,
2146      9286,  9237,  9186,  9134,  9081,  9028,  8974,  8921,  8869,  8818,
2147      8769,  8721,  8675,  8630,  8586,  8542,  8499,  8455,  8410,  8365,
2148      8318,  8270,  8222,  8173,  8124,  8074,  8026,  7976,  7926,  7878,
2149      7831,  7784,  7738,  7693,  7647,  7602,  7556,  7509,  7463,  7416,
2150      7369,  7322,  7275,  7228,  7182,  7137,  7091,  7046,  7001,  6955,
2151      6909,  6863,  6817,  6770,  6723,  6676,  6629,  6583,  6537,  6491,
2152      6446,  6401,  6356,  6311,  6267,  6222,  6178,  6133,  6089,  6045,
2153      6000,  5956,  5912,  5868,  5824,  5780,  5736,  5692,  5648,  5604,
2154      5560,  5516,  5473,  5429,  5386,  5343,  5300,  5257,  5214,  5171,
2155      5128,  5085,  5043,  5000,  4958,  4915,  4873,  4831,  4789,  4747,
2156      4705,  4664,  4622,  4581,  4539,  4498,  4457,  4416,  4375,  4334,
2157      4293,  4253,  4212,  4172,  4132,  4092,  4052,  4012,  3972,  3933,
2158      3893,  3854,  3815,  3776,  3737,  3699,  3660,  3622,  3583,  3545,
2159      3507,  3469,  3432,  3394,  3357,  3319,  3282,  3245,  3208,  3171,
2160      3135,  3098,  3062,  3025,  2989,  2953,  2917,  2881,  2846,  2810,
2161      2775,  2740,  2706,  2671,  2638,  2604,  2572,  2539,  2507,  2475,
2162      2443,  2411,  2380,  2349,  2318,  2287,  2256,  2226,  2195,  2165,
2163      2135,  2105,  2075,  2046,  2016,  1987,  1958,  1929,  1901,  1872,
2164      1844,  1816,  1788,  1760,  1733,  1706,  1679,  1652,  1625,  1599,
2165      1572,  1546,  1521,  1495,  1470,  1444,  1419,  1395,  1370,  1346,
2166      1322,  1298,  1274,  1250,  1227,  1204,  1181,  1158,  1136,  1114,
2167      1092,  1070,  1048,  1027,  1005,  984,   964,   943,   923,   903,
2168      883,   863,   843,   824,   805,   786,   767,   749,   730,   712,
2169      694,   677,   659,   642,   625,   608,   592,   575,   559,   543,
2170      527,   512,   496,   481,   466,   451,   436,   422,   408,   394,
2171      380,   366,   352,   339,   326,   313,   301,   288,   276,   264,
2172      252,   241,   229,   218,   207,   196,   185,   175,   165,   155,
2173      145,   135,   125,   116,   107,   98,    89,    80,    72,    63,
2174      55,    48,    40,    33,    25,    18,    11,    4,     -3,    -9,
2175      -16,   -23,   -29,   -35,   -41,   -47,   -53,   -58,   -62,   -67,
2176      -71,   -75,   -79,   -82,   -86,   -89,   -93,   -97,   -101,  -104,
2177      -108,  -112,  -115,  -118,  -122,  -125,  -127,  -130,  -132,  -134,
2178      -136,  -137,  -138,  -139,  -140,  -141,  -142,  -143,  -143,  -144,
2179      -144,  -145,  -145,  -146,  -146,  -146,  -147,  -147,  -147,  -147,
2180      -147,  -147,  -147,  -146,  -146,  -145,  -144,  -143,  -142,  -141,
2181      -140,  -138,  -137,  -135,  -134,  -132,  -130,  -129,  -127,  -126,
2182      -124,  -122,  -121,  -119,  -117,  -115,  -113,  -111,  -109,  -106,
2183      -104,  -102,  -99,   -97,   -94,   -92,   -89,   -87,   -85,   -82,
2184      -80,   -77,   -74,   -72,   -69,   -67,   -64,   -61,   -59,   -56,
2185      -53,   -50,   -48,   -45,   -42,   -39,   -37,   -34,   -31,   -28,
2186      -26,   -23,   -20,   -17,   -15,   -12,   -9,    -7,    -4,    -1,
2187      1,     4,     7,     9,     12,    14,    17,    19,    22,    24,
2188      27,    29,    31,    34,    36,    38,    40,    43,    45,    47,
2189      49,    51,    53,    55,    57,    59,    60,    62,    64,    65,
2190      67,    69,    70,    71,    73,    74,    76,    77,    78,    79,
2191      81,    82,    83,    84,    84,    85,    86,    86,    87,    88,
2192      88,    88,    89,    89,    89,    90,    90,    90,    90,    91,
2193      91,    91,    91,    90,    90,    90,    89,    89,    88,    88,
2194      87,    86,    85,    84,    83,    83,    82,    81,    80,    79,
2195      78,    77,    75,    74,    73,    72,    71,    70,    68,    67,
2196      66,    64,    62,    61,    59,    57,    55,    53,    51,    49,
2197      47,    44,    42,    40,    38,    36,    34,    33,    31,    29,
2198      27,    25,    23,    20,    18,    16,    13,    11,    8,     6,
2199      3,     1,     -1,    -4,    -6,    -9,    -11,   -13,   -16,   -18,
2200      -21,   -23,   -25,   -28,   -30,   -33,   -35,   -38,   -40,   -43,
2201      -45,   -47,   -50,   -52,   -55,   -57,   -59,   -62,   -64,   -66,
2202      -69,   -71,   -73,   -76,   -78,   -80,   -83,   -85,   -87,   -89,
2203      -92,   -94,   -96,   -99,   -101,  -103,  -105,  -107,  -110,  -112,
2204      -114,  -116,  -119,  -121,  -123,  -125,  -128,  -130,  -132,  -135,
2205      -137,  -139,  -142,  -144,  -146,  -149,  -151,  -154,  -156,  -159,
2206      -162,  -164,  -167,  -170,  -172,  -175,  -178,  -180,  -182,  -185,
2207      -187,  -189,  -191,  -193,  -195,  -197,  -199,  -201,  -202,  -204,
2208      -205,  -207,  -208,  -209,  -210,  -211,  -213,  -214,  -214,  -215,
2209      -216,  -217,  -218,  -219,  -219,  -220,  -220,  -221,  -221,  -222,
2210      -222,  -222,  -222,  -223,  -223,  -223,  -223,  -223,  -223,  -223,
2211      -223,  -222,  -222,  -222,  -222,  -221,  -221,  -220,  -220,  -219,
2212      -219,  -218,  -217,  -217,  -216,  -215,  -215,  -214,  -213,  -213,
2213      -212,  -211,  -210,  -210,  -209,  -208,  -207,  -206,  -205,  -204,
2214      -202,  -201,  -200,  -199,  -197,  -196,  -195,  -193,  -192,  -190,
2215      -189,  -187,  -185,  -184,  -182,  -181,  -179,  -177,  -176,  -174,
2216      -172,  -170,  -169,  -167,  -165,  -163,  -162,  -160,  -158,  -156,
2217      -154,  -153,  -151,  -149,  -148,  -146,  -144,  -143,  -141,  -140,
2218      -138,  -137,  -135,  -134,  -133,  -131,  -130,  -129,  -128,  -127,
2219      -125,  -124,  -123,  -121,  -120,  -118,  -116,  -115,  -113,  -111,
2220      -109,  -107,  -105,  -103,  -101,  -99,   -97,   -95,   -93,   -91,
2221      -88,   -86,   -84,   -82,   -79,   -77,   -75,   -73,   -70,   -68,
2222      -66,   -64,   -61,   -59,   -57,   -55,   -53,   -51,   -49,   -46,
2223      -44,   -42,   -40,   -39,   -37,   -35,   -33,   -31,   -29,   -28,
2224      -26,   -24,   -22,   -21,   -19,   -18,   -16,   -15,   -13,   -12,
2225      -11,   -9,    -8,    -7,    -6,    -5,    -4,    -3,    -2,    -1,
2226      0,     1,     2,     3,     4,     5,     5,     6,     7,     7,
2227      8,     8,     9,     9,     10,    10,    10,    10,    11,    11,
2228      11,    12,    12,    12,    12,    12,    13,    13,    13,    13,
2229      13,    13,    13,    13,    13,    12,    12,    12,    12,    12,
2230      12,    12,    11,    11,    11,    11,    11,    10,    10,    10,
2231      10,    9,     9,     9,     9,     9,     8,     8,     8,     7,
2232      7,     7,     7,     6,     6,     6,     6,     5,     5,     5,
2233      5,     4,     4,     4,     4,     4,     3,     3,     3,     3,
2234      3,     2,     2,     2,     2,     2,     2,     2,     1,     1,
2235      1,     1,     1,     1,     1,     1,     1,     1,     0,     0,
2236      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2237      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2238      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2239      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2240      0,     0,     0,     0,     0,     0,     0,     0,     1,     1,
2241      1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2242      2,     2,     2,     2,     2,     2,     2,     2,     3,     3,
2243      3,     3,     3,     3,     3,     4,     4,     4,     4,     4,
2244      4,     4,     4,     5,     5,     5,     5,     5,     5,     5,
2245      5,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2246      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2247      6,     6,     6,     6,     6,     6,     6,     6,     6,     6,
2248      5,     5,     5,     5,     5,     5,     4,     4,     4,     4,
2249      4,     4,     3,     3,     3,     3,     2,     2,     2,     1,
2250      1,     1,     0,     0,     0,     -1,    -1,    -1,    -2,    -2,
2251      -2,    -3,    -3,    -3,    -4,    -4,    -5,    -5,    -5,    -6,
2252      -6,    -7,    -7,    -7,    -8,    -8,    -9,    -9,    -9,    -10,
2253      -10,   -11,   -11,   -11,   -12,   -12,   -13,   -13,   -13,   -14,
2254      -14,   -14,   -15,   -15,   -16,   -16,   -16,   -17,   -17,   -17,
2255      -18,   -18,   -18,   -18,   -19,   -19,   -19,   -19,   -20,   -20,
2256      -20,   -20,   -21,   -21,   -21,   -21,   -21,   -22,   -22,   -22,
2257      -22,   -22,   -22,   -22,   -22,   -23,   -23,   -23,   -23,   -23,
2258      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2259      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,
2260      -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -23,   -22,
2261      -22,   -22,   -22,   -22,   -22,   -22,   -22,   -21,   -21,   -21,
2262      -21,   -21,   -21,   -20,   -20,   -20,   -20,   -20,   -20,   -19,
2263      -19,   -19,   -19,   -18,   -18,   -18,   -18,   -18}
2264 
2265 };
2266