1 /* The contents of this file was automatically generated by dump_modes.c
2    with arguments: 48000 960
3    It contains static definitions for some pre-defined modes. */
4 #include "modes.h"
5 #include "rate.h"
6 
7 #ifndef DEF_WINDOW120
8 #define DEF_WINDOW120
9 static const opus_val16 window120[120] = {
10 2, 20, 55, 108, 178,
11 266, 372, 494, 635, 792,
12 966, 1157, 1365, 1590, 1831,
13 2089, 2362, 2651, 2956, 3276,
14 3611, 3961, 4325, 4703, 5094,
15 5499, 5916, 6346, 6788, 7241,
16 7705, 8179, 8663, 9156, 9657,
17 10167, 10684, 11207, 11736, 12271,
18 12810, 13353, 13899, 14447, 14997,
19 15547, 16098, 16648, 17197, 17744,
20 18287, 18827, 19363, 19893, 20418,
21 20936, 21447, 21950, 22445, 22931,
22 23407, 23874, 24330, 24774, 25208,
23 25629, 26039, 26435, 26819, 27190,
24 27548, 27893, 28224, 28541, 28845,
25 29135, 29411, 29674, 29924, 30160,
26 30384, 30594, 30792, 30977, 31151,
27 31313, 31463, 31602, 31731, 31849,
28 31958, 32057, 32148, 32229, 32303,
29 32370, 32429, 32481, 32528, 32568,
30 32604, 32634, 32661, 32683, 32701,
31 32717, 32729, 32740, 32748, 32754,
32 32758, 32762, 32764, 32766, 32767,
33 32767, 32767, 32767, 32767, 32767,
34 };
35 #endif
36 
37 #ifndef DEF_LOGN400
38 #define DEF_LOGN400
39 static const opus_int16 logN400[21] = {
40 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 16, 16, 16, 21, 21, 24, 29, 34, 36, };
41 #endif
42 
43 #ifndef DEF_PULSE_CACHE50
44 #define DEF_PULSE_CACHE50
45 static const opus_int16 cache_index50[105] = {
46 -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 41, 41, 41,
47 82, 82, 123, 164, 200, 222, 0, 0, 0, 0, 0, 0, 0, 0, 41,
48 41, 41, 41, 123, 123, 123, 164, 164, 240, 266, 283, 295, 41, 41, 41,
49 41, 41, 41, 41, 41, 123, 123, 123, 123, 240, 240, 240, 266, 266, 305,
50 318, 328, 336, 123, 123, 123, 123, 123, 123, 123, 123, 240, 240, 240, 240,
51 305, 305, 305, 318, 318, 343, 351, 358, 364, 240, 240, 240, 240, 240, 240,
52 240, 240, 305, 305, 305, 305, 343, 343, 343, 351, 351, 370, 376, 382, 387,
53 };
54 static const unsigned char cache_bits50[392] = {
55 40, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
56 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
57 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 40, 15, 23, 28,
58 31, 34, 36, 38, 39, 41, 42, 43, 44, 45, 46, 47, 47, 49, 50,
59 51, 52, 53, 54, 55, 55, 57, 58, 59, 60, 61, 62, 63, 63, 65,
60 66, 67, 68, 69, 70, 71, 71, 40, 20, 33, 41, 48, 53, 57, 61,
61 64, 66, 69, 71, 73, 75, 76, 78, 80, 82, 85, 87, 89, 91, 92,
62 94, 96, 98, 101, 103, 105, 107, 108, 110, 112, 114, 117, 119, 121, 123,
63 124, 126, 128, 40, 23, 39, 51, 60, 67, 73, 79, 83, 87, 91, 94,
64 97, 100, 102, 105, 107, 111, 115, 118, 121, 124, 126, 129, 131, 135, 139,
65 142, 145, 148, 150, 153, 155, 159, 163, 166, 169, 172, 174, 177, 179, 35,
66 28, 49, 65, 78, 89, 99, 107, 114, 120, 126, 132, 136, 141, 145, 149,
67 153, 159, 165, 171, 176, 180, 185, 189, 192, 199, 205, 211, 216, 220, 225,
68 229, 232, 239, 245, 251, 21, 33, 58, 79, 97, 112, 125, 137, 148, 157,
69 166, 174, 182, 189, 195, 201, 207, 217, 227, 235, 243, 251, 17, 35, 63,
70 86, 106, 123, 139, 152, 165, 177, 187, 197, 206, 214, 222, 230, 237, 250,
71 25, 31, 55, 75, 91, 105, 117, 128, 138, 146, 154, 161, 168, 174, 180,
72 185, 190, 200, 208, 215, 222, 229, 235, 240, 245, 255, 16, 36, 65, 89,
73 110, 128, 144, 159, 173, 185, 196, 207, 217, 226, 234, 242, 250, 11, 41,
74 74, 103, 128, 151, 172, 191, 209, 225, 241, 255, 9, 43, 79, 110, 138,
75 163, 186, 207, 227, 246, 12, 39, 71, 99, 123, 144, 164, 182, 198, 214,
76 228, 241, 253, 9, 44, 81, 113, 142, 168, 192, 214, 235, 255, 7, 49,
77 90, 127, 160, 191, 220, 247, 6, 51, 95, 134, 170, 203, 234, 7, 47,
78 87, 123, 155, 184, 212, 237, 6, 52, 97, 137, 174, 208, 240, 5, 57,
79 106, 151, 192, 231, 5, 59, 111, 158, 202, 243, 5, 55, 103, 147, 187,
80 224, 5, 60, 113, 161, 206, 248, 4, 65, 122, 175, 224, 4, 67, 127,
81 182, 234, };
82 static const unsigned char cache_caps50[168] = {
83 224, 224, 224, 224, 224, 224, 224, 224, 160, 160, 160, 160, 185, 185, 185,
84 178, 178, 168, 134, 61, 37, 224, 224, 224, 224, 224, 224, 224, 224, 240,
85 240, 240, 240, 207, 207, 207, 198, 198, 183, 144, 66, 40, 160, 160, 160,
86 160, 160, 160, 160, 160, 185, 185, 185, 185, 193, 193, 193, 183, 183, 172,
87 138, 64, 38, 240, 240, 240, 240, 240, 240, 240, 240, 207, 207, 207, 207,
88 204, 204, 204, 193, 193, 180, 143, 66, 40, 185, 185, 185, 185, 185, 185,
89 185, 185, 193, 193, 193, 193, 193, 193, 193, 183, 183, 172, 138, 65, 39,
90 207, 207, 207, 207, 207, 207, 207, 207, 204, 204, 204, 204, 201, 201, 201,
91 188, 188, 176, 141, 66, 40, 193, 193, 193, 193, 193, 193, 193, 193, 193,
92 193, 193, 193, 194, 194, 194, 184, 184, 173, 139, 65, 39, 204, 204, 204,
93 204, 204, 204, 204, 204, 201, 201, 201, 201, 198, 198, 198, 187, 187, 175,
94 140, 66, 40, };
95 #endif
96 
97 #ifndef FFT_TWIDDLES48000_960
98 #define FFT_TWIDDLES48000_960
99 static const kiss_twiddle_cpx fft_twiddles48000_960[480] = {
100 {32767, 0}, {32766, -429},
101 {32757, -858}, {32743, -1287},
102 {32724, -1715}, {32698, -2143},
103 {32667, -2570}, {32631, -2998},
104 {32588, -3425}, {32541, -3851},
105 {32488, -4277}, {32429, -4701},
106 {32364, -5125}, {32295, -5548},
107 {32219, -5971}, {32138, -6393},
108 {32051, -6813}, {31960, -7231},
109 {31863, -7650}, {31760, -8067},
110 {31652, -8481}, {31539, -8895},
111 {31419, -9306}, {31294, -9716},
112 {31165, -10126}, {31030, -10532},
113 {30889, -10937}, {30743, -11340},
114 {30592, -11741}, {30436, -12141},
115 {30274, -12540}, {30107, -12935},
116 {29936, -13328}, {29758, -13718},
117 {29577, -14107}, {29390, -14493},
118 {29197, -14875}, {29000, -15257},
119 {28797, -15635}, {28590, -16010},
120 {28379, -16384}, {28162, -16753},
121 {27940, -17119}, {27714, -17484},
122 {27482, -17845}, {27246, -18205},
123 {27006, -18560}, {26760, -18911},
124 {26510, -19260}, {26257, -19606},
125 {25997, -19947}, {25734, -20286},
126 {25466, -20621}, {25194, -20952},
127 {24918, -21281}, {24637, -21605},
128 {24353, -21926}, {24063, -22242},
129 {23770, -22555}, {23473, -22865},
130 {23171, -23171}, {22866, -23472},
131 {22557, -23769}, {22244, -24063},
132 {21927, -24352}, {21606, -24636},
133 {21282, -24917}, {20954, -25194},
134 {20622, -25465}, {20288, -25733},
135 {19949, -25997}, {19607, -26255},
136 {19261, -26509}, {18914, -26760},
137 {18561, -27004}, {18205, -27246},
138 {17846, -27481}, {17485, -27713},
139 {17122, -27940}, {16755, -28162},
140 {16385, -28378}, {16012, -28590},
141 {15636, -28797}, {15258, -28999},
142 {14878, -29197}, {14494, -29389},
143 {14108, -29576}, {13720, -29757},
144 {13329, -29934}, {12937, -30107},
145 {12540, -30274}, {12142, -30435},
146 {11744, -30592}, {11342, -30743},
147 {10939, -30889}, {10534, -31030},
148 {10127, -31164}, {9718, -31294},
149 {9307, -31418}, {8895, -31537},
150 {8482, -31652}, {8067, -31759},
151 {7650, -31862}, {7233, -31960},
152 {6815, -32051}, {6393, -32138},
153 {5973, -32219}, {5549, -32294},
154 {5127, -32364}, {4703, -32429},
155 {4278, -32487}, {3852, -32541},
156 {3426, -32588}, {2999, -32630},
157 {2572, -32667}, {2144, -32698},
158 {1716, -32724}, {1287, -32742},
159 {860, -32757}, {430, -32766},
160 {0, -32767}, {-429, -32766},
161 {-858, -32757}, {-1287, -32743},
162 {-1715, -32724}, {-2143, -32698},
163 {-2570, -32667}, {-2998, -32631},
164 {-3425, -32588}, {-3851, -32541},
165 {-4277, -32488}, {-4701, -32429},
166 {-5125, -32364}, {-5548, -32295},
167 {-5971, -32219}, {-6393, -32138},
168 {-6813, -32051}, {-7231, -31960},
169 {-7650, -31863}, {-8067, -31760},
170 {-8481, -31652}, {-8895, -31539},
171 {-9306, -31419}, {-9716, -31294},
172 {-10126, -31165}, {-10532, -31030},
173 {-10937, -30889}, {-11340, -30743},
174 {-11741, -30592}, {-12141, -30436},
175 {-12540, -30274}, {-12935, -30107},
176 {-13328, -29936}, {-13718, -29758},
177 {-14107, -29577}, {-14493, -29390},
178 {-14875, -29197}, {-15257, -29000},
179 {-15635, -28797}, {-16010, -28590},
180 {-16384, -28379}, {-16753, -28162},
181 {-17119, -27940}, {-17484, -27714},
182 {-17845, -27482}, {-18205, -27246},
183 {-18560, -27006}, {-18911, -26760},
184 {-19260, -26510}, {-19606, -26257},
185 {-19947, -25997}, {-20286, -25734},
186 {-20621, -25466}, {-20952, -25194},
187 {-21281, -24918}, {-21605, -24637},
188 {-21926, -24353}, {-22242, -24063},
189 {-22555, -23770}, {-22865, -23473},
190 {-23171, -23171}, {-23472, -22866},
191 {-23769, -22557}, {-24063, -22244},
192 {-24352, -21927}, {-24636, -21606},
193 {-24917, -21282}, {-25194, -20954},
194 {-25465, -20622}, {-25733, -20288},
195 {-25997, -19949}, {-26255, -19607},
196 {-26509, -19261}, {-26760, -18914},
197 {-27004, -18561}, {-27246, -18205},
198 {-27481, -17846}, {-27713, -17485},
199 {-27940, -17122}, {-28162, -16755},
200 {-28378, -16385}, {-28590, -16012},
201 {-28797, -15636}, {-28999, -15258},
202 {-29197, -14878}, {-29389, -14494},
203 {-29576, -14108}, {-29757, -13720},
204 {-29934, -13329}, {-30107, -12937},
205 {-30274, -12540}, {-30435, -12142},
206 {-30592, -11744}, {-30743, -11342},
207 {-30889, -10939}, {-31030, -10534},
208 {-31164, -10127}, {-31294, -9718},
209 {-31418, -9307}, {-31537, -8895},
210 {-31652, -8482}, {-31759, -8067},
211 {-31862, -7650}, {-31960, -7233},
212 {-32051, -6815}, {-32138, -6393},
213 {-32219, -5973}, {-32294, -5549},
214 {-32364, -5127}, {-32429, -4703},
215 {-32487, -4278}, {-32541, -3852},
216 {-32588, -3426}, {-32630, -2999},
217 {-32667, -2572}, {-32698, -2144},
218 {-32724, -1716}, {-32742, -1287},
219 {-32757, -860}, {-32766, -430},
220 {-32767, 0}, {-32766, 429},
221 {-32757, 858}, {-32743, 1287},
222 {-32724, 1715}, {-32698, 2143},
223 {-32667, 2570}, {-32631, 2998},
224 {-32588, 3425}, {-32541, 3851},
225 {-32488, 4277}, {-32429, 4701},
226 {-32364, 5125}, {-32295, 5548},
227 {-32219, 5971}, {-32138, 6393},
228 {-32051, 6813}, {-31960, 7231},
229 {-31863, 7650}, {-31760, 8067},
230 {-31652, 8481}, {-31539, 8895},
231 {-31419, 9306}, {-31294, 9716},
232 {-31165, 10126}, {-31030, 10532},
233 {-30889, 10937}, {-30743, 11340},
234 {-30592, 11741}, {-30436, 12141},
235 {-30274, 12540}, {-30107, 12935},
236 {-29936, 13328}, {-29758, 13718},
237 {-29577, 14107}, {-29390, 14493},
238 {-29197, 14875}, {-29000, 15257},
239 {-28797, 15635}, {-28590, 16010},
240 {-28379, 16384}, {-28162, 16753},
241 {-27940, 17119}, {-27714, 17484},
242 {-27482, 17845}, {-27246, 18205},
243 {-27006, 18560}, {-26760, 18911},
244 {-26510, 19260}, {-26257, 19606},
245 {-25997, 19947}, {-25734, 20286},
246 {-25466, 20621}, {-25194, 20952},
247 {-24918, 21281}, {-24637, 21605},
248 {-24353, 21926}, {-24063, 22242},
249 {-23770, 22555}, {-23473, 22865},
250 {-23171, 23171}, {-22866, 23472},
251 {-22557, 23769}, {-22244, 24063},
252 {-21927, 24352}, {-21606, 24636},
253 {-21282, 24917}, {-20954, 25194},
254 {-20622, 25465}, {-20288, 25733},
255 {-19949, 25997}, {-19607, 26255},
256 {-19261, 26509}, {-18914, 26760},
257 {-18561, 27004}, {-18205, 27246},
258 {-17846, 27481}, {-17485, 27713},
259 {-17122, 27940}, {-16755, 28162},
260 {-16385, 28378}, {-16012, 28590},
261 {-15636, 28797}, {-15258, 28999},
262 {-14878, 29197}, {-14494, 29389},
263 {-14108, 29576}, {-13720, 29757},
264 {-13329, 29934}, {-12937, 30107},
265 {-12540, 30274}, {-12142, 30435},
266 {-11744, 30592}, {-11342, 30743},
267 {-10939, 30889}, {-10534, 31030},
268 {-10127, 31164}, {-9718, 31294},
269 {-9307, 31418}, {-8895, 31537},
270 {-8482, 31652}, {-8067, 31759},
271 {-7650, 31862}, {-7233, 31960},
272 {-6815, 32051}, {-6393, 32138},
273 {-5973, 32219}, {-5549, 32294},
274 {-5127, 32364}, {-4703, 32429},
275 {-4278, 32487}, {-3852, 32541},
276 {-3426, 32588}, {-2999, 32630},
277 {-2572, 32667}, {-2144, 32698},
278 {-1716, 32724}, {-1287, 32742},
279 {-860, 32757}, {-430, 32766},
280 {0, 32767}, {429, 32766},
281 {858, 32757}, {1287, 32743},
282 {1715, 32724}, {2143, 32698},
283 {2570, 32667}, {2998, 32631},
284 {3425, 32588}, {3851, 32541},
285 {4277, 32488}, {4701, 32429},
286 {5125, 32364}, {5548, 32295},
287 {5971, 32219}, {6393, 32138},
288 {6813, 32051}, {7231, 31960},
289 {7650, 31863}, {8067, 31760},
290 {8481, 31652}, {8895, 31539},
291 {9306, 31419}, {9716, 31294},
292 {10126, 31165}, {10532, 31030},
293 {10937, 30889}, {11340, 30743},
294 {11741, 30592}, {12141, 30436},
295 {12540, 30274}, {12935, 30107},
296 {13328, 29936}, {13718, 29758},
297 {14107, 29577}, {14493, 29390},
298 {14875, 29197}, {15257, 29000},
299 {15635, 28797}, {16010, 28590},
300 {16384, 28379}, {16753, 28162},
301 {17119, 27940}, {17484, 27714},
302 {17845, 27482}, {18205, 27246},
303 {18560, 27006}, {18911, 26760},
304 {19260, 26510}, {19606, 26257},
305 {19947, 25997}, {20286, 25734},
306 {20621, 25466}, {20952, 25194},
307 {21281, 24918}, {21605, 24637},
308 {21926, 24353}, {22242, 24063},
309 {22555, 23770}, {22865, 23473},
310 {23171, 23171}, {23472, 22866},
311 {23769, 22557}, {24063, 22244},
312 {24352, 21927}, {24636, 21606},
313 {24917, 21282}, {25194, 20954},
314 {25465, 20622}, {25733, 20288},
315 {25997, 19949}, {26255, 19607},
316 {26509, 19261}, {26760, 18914},
317 {27004, 18561}, {27246, 18205},
318 {27481, 17846}, {27713, 17485},
319 {27940, 17122}, {28162, 16755},
320 {28378, 16385}, {28590, 16012},
321 {28797, 15636}, {28999, 15258},
322 {29197, 14878}, {29389, 14494},
323 {29576, 14108}, {29757, 13720},
324 {29934, 13329}, {30107, 12937},
325 {30274, 12540}, {30435, 12142},
326 {30592, 11744}, {30743, 11342},
327 {30889, 10939}, {31030, 10534},
328 {31164, 10127}, {31294, 9718},
329 {31418, 9307}, {31537, 8895},
330 {31652, 8482}, {31759, 8067},
331 {31862, 7650}, {31960, 7233},
332 {32051, 6815}, {32138, 6393},
333 {32219, 5973}, {32294, 5549},
334 {32364, 5127}, {32429, 4703},
335 {32487, 4278}, {32541, 3852},
336 {32588, 3426}, {32630, 2999},
337 {32667, 2572}, {32698, 2144},
338 {32724, 1716}, {32742, 1287},
339 {32757, 860}, {32766, 430},
340 };
341 #ifndef FFT_BITREV480
342 #define FFT_BITREV480
343 static const opus_int16 fft_bitrev480[480] = {
344 0, 120, 240, 360, 30, 150, 270, 390, 60, 180, 300, 420, 90, 210, 330,
345 450, 15, 135, 255, 375, 45, 165, 285, 405, 75, 195, 315, 435, 105, 225,
346 345, 465, 5, 125, 245, 365, 35, 155, 275, 395, 65, 185, 305, 425, 95,
347 215, 335, 455, 20, 140, 260, 380, 50, 170, 290, 410, 80, 200, 320, 440,
348 110, 230, 350, 470, 10, 130, 250, 370, 40, 160, 280, 400, 70, 190, 310,
349 430, 100, 220, 340, 460, 25, 145, 265, 385, 55, 175, 295, 415, 85, 205,
350 325, 445, 115, 235, 355, 475, 1, 121, 241, 361, 31, 151, 271, 391, 61,
351 181, 301, 421, 91, 211, 331, 451, 16, 136, 256, 376, 46, 166, 286, 406,
352 76, 196, 316, 436, 106, 226, 346, 466, 6, 126, 246, 366, 36, 156, 276,
353 396, 66, 186, 306, 426, 96, 216, 336, 456, 21, 141, 261, 381, 51, 171,
354 291, 411, 81, 201, 321, 441, 111, 231, 351, 471, 11, 131, 251, 371, 41,
355 161, 281, 401, 71, 191, 311, 431, 101, 221, 341, 461, 26, 146, 266, 386,
356 56, 176, 296, 416, 86, 206, 326, 446, 116, 236, 356, 476, 2, 122, 242,
357 362, 32, 152, 272, 392, 62, 182, 302, 422, 92, 212, 332, 452, 17, 137,
358 257, 377, 47, 167, 287, 407, 77, 197, 317, 437, 107, 227, 347, 467, 7,
359 127, 247, 367, 37, 157, 277, 397, 67, 187, 307, 427, 97, 217, 337, 457,
360 22, 142, 262, 382, 52, 172, 292, 412, 82, 202, 322, 442, 112, 232, 352,
361 472, 12, 132, 252, 372, 42, 162, 282, 402, 72, 192, 312, 432, 102, 222,
362 342, 462, 27, 147, 267, 387, 57, 177, 297, 417, 87, 207, 327, 447, 117,
363 237, 357, 477, 3, 123, 243, 363, 33, 153, 273, 393, 63, 183, 303, 423,
364 93, 213, 333, 453, 18, 138, 258, 378, 48, 168, 288, 408, 78, 198, 318,
365 438, 108, 228, 348, 468, 8, 128, 248, 368, 38, 158, 278, 398, 68, 188,
366 308, 428, 98, 218, 338, 458, 23, 143, 263, 383, 53, 173, 293, 413, 83,
367 203, 323, 443, 113, 233, 353, 473, 13, 133, 253, 373, 43, 163, 283, 403,
368 73, 193, 313, 433, 103, 223, 343, 463, 28, 148, 268, 388, 58, 178, 298,
369 418, 88, 208, 328, 448, 118, 238, 358, 478, 4, 124, 244, 364, 34, 154,
370 274, 394, 64, 184, 304, 424, 94, 214, 334, 454, 19, 139, 259, 379, 49,
371 169, 289, 409, 79, 199, 319, 439, 109, 229, 349, 469, 9, 129, 249, 369,
372 39, 159, 279, 399, 69, 189, 309, 429, 99, 219, 339, 459, 24, 144, 264,
373 384, 54, 174, 294, 414, 84, 204, 324, 444, 114, 234, 354, 474, 14, 134,
374 254, 374, 44, 164, 284, 404, 74, 194, 314, 434, 104, 224, 344, 464, 29,
375 149, 269, 389, 59, 179, 299, 419, 89, 209, 329, 449, 119, 239, 359, 479,
376 };
377 #endif
378 
379 #ifndef FFT_BITREV240
380 #define FFT_BITREV240
381 static const opus_int16 fft_bitrev240[240] = {
382 0, 60, 120, 180, 15, 75, 135, 195, 30, 90, 150, 210, 45, 105, 165,
383 225, 5, 65, 125, 185, 20, 80, 140, 200, 35, 95, 155, 215, 50, 110,
384 170, 230, 10, 70, 130, 190, 25, 85, 145, 205, 40, 100, 160, 220, 55,
385 115, 175, 235, 1, 61, 121, 181, 16, 76, 136, 196, 31, 91, 151, 211,
386 46, 106, 166, 226, 6, 66, 126, 186, 21, 81, 141, 201, 36, 96, 156,
387 216, 51, 111, 171, 231, 11, 71, 131, 191, 26, 86, 146, 206, 41, 101,
388 161, 221, 56, 116, 176, 236, 2, 62, 122, 182, 17, 77, 137, 197, 32,
389 92, 152, 212, 47, 107, 167, 227, 7, 67, 127, 187, 22, 82, 142, 202,
390 37, 97, 157, 217, 52, 112, 172, 232, 12, 72, 132, 192, 27, 87, 147,
391 207, 42, 102, 162, 222, 57, 117, 177, 237, 3, 63, 123, 183, 18, 78,
392 138, 198, 33, 93, 153, 213, 48, 108, 168, 228, 8, 68, 128, 188, 23,
393 83, 143, 203, 38, 98, 158, 218, 53, 113, 173, 233, 13, 73, 133, 193,
394 28, 88, 148, 208, 43, 103, 163, 223, 58, 118, 178, 238, 4, 64, 124,
395 184, 19, 79, 139, 199, 34, 94, 154, 214, 49, 109, 169, 229, 9, 69,
396 129, 189, 24, 84, 144, 204, 39, 99, 159, 219, 54, 114, 174, 234, 14,
397 74, 134, 194, 29, 89, 149, 209, 44, 104, 164, 224, 59, 119, 179, 239,
398 };
399 #endif
400 
401 #ifndef FFT_BITREV120
402 #define FFT_BITREV120
403 static const opus_int16 fft_bitrev120[120] = {
404 0, 30, 60, 90, 15, 45, 75, 105, 5, 35, 65, 95, 20, 50, 80,
405 110, 10, 40, 70, 100, 25, 55, 85, 115, 1, 31, 61, 91, 16, 46,
406 76, 106, 6, 36, 66, 96, 21, 51, 81, 111, 11, 41, 71, 101, 26,
407 56, 86, 116, 2, 32, 62, 92, 17, 47, 77, 107, 7, 37, 67, 97,
408 22, 52, 82, 112, 12, 42, 72, 102, 27, 57, 87, 117, 3, 33, 63,
409 93, 18, 48, 78, 108, 8, 38, 68, 98, 23, 53, 83, 113, 13, 43,
410 73, 103, 28, 58, 88, 118, 4, 34, 64, 94, 19, 49, 79, 109, 9,
411 39, 69, 99, 24, 54, 84, 114, 14, 44, 74, 104, 29, 59, 89, 119,
412 };
413 #endif
414 
415 #ifndef FFT_BITREV60
416 #define FFT_BITREV60
417 static const opus_int16 fft_bitrev60[60] = {
418 0, 15, 30, 45, 5, 20, 35, 50, 10, 25, 40, 55, 1, 16, 31,
419 46, 6, 21, 36, 51, 11, 26, 41, 56, 2, 17, 32, 47, 7, 22,
420 37, 52, 12, 27, 42, 57, 3, 18, 33, 48, 8, 23, 38, 53, 13,
421 28, 43, 58, 4, 19, 34, 49, 9, 24, 39, 54, 14, 29, 44, 59,
422 };
423 #endif
424 
425 #ifndef FFT_STATE48000_960_0
426 #define FFT_STATE48000_960_0
427 static const kiss_fft_state fft_state48000_960_0 = {
428 480,    /* nfft */
429 -1,     /* shift */
430 {4, 120, 4, 30, 2, 15, 3, 5, 5, 1, 0, 0, 0, 0, 0, 0, }, /* factors */
431 fft_bitrev480,  /* bitrev */
432 fft_twiddles48000_960,  /* bitrev */
433 };
434 #endif
435 
436 #ifndef FFT_STATE48000_960_1
437 #define FFT_STATE48000_960_1
438 static const kiss_fft_state fft_state48000_960_1 = {
439 240,    /* nfft */
440 1,      /* shift */
441 {4, 60, 4, 15, 3, 5, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, },   /* factors */
442 fft_bitrev240,  /* bitrev */
443 fft_twiddles48000_960,  /* bitrev */
444 };
445 #endif
446 
447 #ifndef FFT_STATE48000_960_2
448 #define FFT_STATE48000_960_2
449 static const kiss_fft_state fft_state48000_960_2 = {
450 120,    /* nfft */
451 2,      /* shift */
452 {4, 30, 2, 15, 3, 5, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, },   /* factors */
453 fft_bitrev120,  /* bitrev */
454 fft_twiddles48000_960,  /* bitrev */
455 };
456 #endif
457 
458 #ifndef FFT_STATE48000_960_3
459 #define FFT_STATE48000_960_3
460 static const kiss_fft_state fft_state48000_960_3 = {
461 60,     /* nfft */
462 3,      /* shift */
463 {4, 15, 3, 5, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },    /* factors */
464 fft_bitrev60,   /* bitrev */
465 fft_twiddles48000_960,  /* bitrev */
466 };
467 #endif
468 
469 #endif
470 
471 #ifndef MDCT_TWIDDLES960
472 #define MDCT_TWIDDLES960
473 static const opus_val16 mdct_twiddles960[481] = {
474 32767, 32767, 32767, 32767, 32766,
475 32763, 32762, 32759, 32757, 32753,
476 32751, 32747, 32743, 32738, 32733,
477 32729, 32724, 32717, 32711, 32705,
478 32698, 32690, 32683, 32676, 32667,
479 32658, 32650, 32640, 32631, 32620,
480 32610, 32599, 32588, 32577, 32566,
481 32554, 32541, 32528, 32515, 32502,
482 32487, 32474, 32459, 32444, 32429,
483 32413, 32397, 32381, 32364, 32348,
484 32331, 32313, 32294, 32277, 32257,
485 32239, 32219, 32200, 32180, 32159,
486 32138, 32118, 32096, 32074, 32051,
487 32029, 32006, 31984, 31960, 31936,
488 31912, 31888, 31863, 31837, 31812,
489 31786, 31760, 31734, 31707, 31679,
490 31652, 31624, 31596, 31567, 31539,
491 31508, 31479, 31450, 31419, 31388,
492 31357, 31326, 31294, 31262, 31230,
493 31198, 31164, 31131, 31097, 31063,
494 31030, 30994, 30959, 30924, 30889,
495 30853, 30816, 30779, 30743, 30705,
496 30668, 30629, 30592, 30553, 30515,
497 30475, 30435, 30396, 30356, 30315,
498 30274, 30233, 30191, 30149, 30107,
499 30065, 30022, 29979, 29936, 29891,
500 29847, 29803, 29758, 29713, 29668,
501 29622, 29577, 29529, 29483, 29436,
502 29390, 29341, 29293, 29246, 29197,
503 29148, 29098, 29050, 29000, 28949,
504 28899, 28848, 28797, 28746, 28694,
505 28642, 28590, 28537, 28485, 28432,
506 28378, 28324, 28271, 28217, 28162,
507 28106, 28051, 27995, 27940, 27884,
508 27827, 27770, 27713, 27657, 27598,
509 27540, 27481, 27423, 27365, 27305,
510 27246, 27187, 27126, 27066, 27006,
511 26945, 26883, 26822, 26760, 26698,
512 26636, 26574, 26510, 26448, 26383,
513 26320, 26257, 26191, 26127, 26062,
514 25997, 25931, 25866, 25800, 25734,
515 25667, 25601, 25533, 25466, 25398,
516 25330, 25262, 25194, 25125, 25056,
517 24987, 24917, 24848, 24778, 24707,
518 24636, 24566, 24495, 24424, 24352,
519 24280, 24208, 24135, 24063, 23990,
520 23917, 23842, 23769, 23695, 23622,
521 23546, 23472, 23398, 23322, 23246,
522 23171, 23095, 23018, 22942, 22866,
523 22788, 22711, 22634, 22557, 22478,
524 22400, 22322, 22244, 22165, 22085,
525 22006, 21927, 21846, 21766, 21687,
526 21606, 21524, 21443, 21363, 21282,
527 21199, 21118, 21035, 20954, 20870,
528 20788, 20705, 20621, 20538, 20455,
529 20371, 20286, 20202, 20118, 20034,
530 19947, 19863, 19777, 19692, 19606,
531 19520, 19434, 19347, 19260, 19174,
532 19088, 18999, 18911, 18825, 18737,
533 18648, 18560, 18472, 18384, 18294,
534 18205, 18116, 18025, 17936, 17846,
535 17757, 17666, 17576, 17485, 17395,
536 17303, 17212, 17122, 17030, 16937,
537 16846, 16755, 16662, 16569, 16477,
538 16385, 16291, 16198, 16105, 16012,
539 15917, 15824, 15730, 15636, 15541,
540 15447, 15352, 15257, 15162, 15067,
541 14973, 14875, 14781, 14685, 14589,
542 14493, 14396, 14300, 14204, 14107,
543 14010, 13914, 13815, 13718, 13621,
544 13524, 13425, 13328, 13230, 13133,
545 13033, 12935, 12836, 12738, 12638,
546 12540, 12441, 12341, 12241, 12142,
547 12044, 11943, 11843, 11744, 11643,
548 11542, 11442, 11342, 11241, 11139,
549 11039, 10939, 10836, 10736, 10635,
550 10534, 10431, 10330, 10228, 10127,
551 10024, 9921, 9820, 9718, 9614,
552 9512, 9410, 9306, 9204, 9101,
553 8998, 8895, 8791, 8689, 8585,
554 8481, 8377, 8274, 8171, 8067,
555 7962, 7858, 7753, 7650, 7545,
556 7441, 7336, 7231, 7129, 7023,
557 6917, 6813, 6709, 6604, 6498,
558 6393, 6288, 6182, 6077, 5973,
559 5867, 5760, 5656, 5549, 5445,
560 5339, 5232, 5127, 5022, 4914,
561 4809, 4703, 4596, 4490, 4384,
562 4278, 4171, 4065, 3958, 3852,
563 3745, 3640, 3532, 3426, 3318,
564 3212, 3106, 2998, 2891, 2786,
565 2679, 2570, 2465, 2358, 2251,
566 2143, 2037, 1929, 1823, 1715,
567 1609, 1501, 1393, 1287, 1180,
568 1073, 964, 858, 751, 644,
569 535, 429, 322, 214, 107,
570 0, };
571 #endif
572 
573 static const CELTMode mode48000_960_120 = {
574 48000,  /* Fs */
575 120,    /* overlap */
576 21,     /* nbEBands */
577 21,     /* effEBands */
578 {27853, 0, 4096, 8192, },       /* preemph */
579 eband5ms,       /* eBands */
580 3,      /* maxLM */
581 8,      /* nbShortMdcts */
582 120,    /* shortMdctSize */
583 11,     /* nbAllocVectors */
584 band_allocation,        /* allocVectors */
585 logN400,        /* logN */
586 window120,      /* window */
587 {1920, 3, {&fft_state48000_960_0, &fft_state48000_960_1, &fft_state48000_960_2, &fft_state48000_960_3, }, mdct_twiddles960},    /* mdct */
588 {392, cache_index50, cache_bits50, cache_caps50},       /* cache */
589 };
590 
591 /* List of all the available modes */
592 #define TOTAL_MODES 1
593 static const CELTMode * const static_mode_list[TOTAL_MODES] = {
594 &mode48000_960_120,
595 };
596