Home | History | Annotate | Download | only in celt
      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