#![allow(clippy::unreadable_literal)]
pub const BIT_ALLOC_COST: [i16; 8] = [
52, 47, 43, 37, 29, 22, 16, 0,
];
pub const SCALE_FACTOR_BITS: [i16; 128] = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 3, 4, 6, 8, 11,
16, 23, 32, 45, 64, 91, 128, 181, 256, 362, 512, 724, 1024, 1448, 2048, 2896,
4096, 5793, 8192, 11585, 16384, 23170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 23170, 16384, 11585, 8192, 5793, 4096, 2896,
2048, 1448, 1024, 724, 512, 362, 256, 181, 128, 91, 64, 45, 32, 23, 16, 11,
8, 6, 4, 3, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
];
pub const QUANT_LEVELS_M1: [i16; 8] = [
2, 2, 2, 4, 4, 5, 5, 1,
];
pub const QUANT_NUM_COEFF: [i16; 8] = [
10, 10, 10, 5, 5, 4, 4, 20,
];
pub const QUANT_INV_STEP: [i16; 8] = [
13, 9, 6, 4, 3, 2, 1, 1,
];
pub const QUANT_STEP_SIZE: [i16; 8] = [
2341, 3277, 4682, 6554, 8193, 10923, 16385, 16385,
];
pub const QUANT_RECON_LEVELS: [[i16; 16]; 8] = [
[ 0, 1606, 3119, 4586, 6049, 7502, 8941, 10406, 11851, 13292, 14736, 16146, 17566, 19351, 0, 0],
[ 0, 2229, 4341, 6401, 8471, 10531, 12583, 14588, 16673, 18924, 0, 0, 0, 0, 0, 0],
[ 0, 3055, 5998, 8929, 11806, 14680, 17680, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 4121, 8192, 12259, 16322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 5413, 11071, 16315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 6785, 14300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 8044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 8019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
];
pub const GAIN_HUFFMAN_TREE: [[i16; 2]; 322] = [
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 0, 0],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[ 11, -12],
[ -11, -10],
[ -8, -9],
[ -7, -6],
[ -13, 12],
[ -5, -4],
[ 0, 13],
[ -3, -14],
[ -2, 14],
[ -1, 15],
[ -15, 16],
[ -16, 17],
[ -17, 18],
[ 19, 20],
[ 21, 22],
[ -18, -19],
[ -20, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ -10, -9],
[ -8, -11],
[ -7, -6],
[ 9, -5],
[ 10, -12],
[ -4, 11],
[ -13, -3],
[ 12, -2],
[ 13, -14],
[ -1, 14],
[ 15, -15],
[ 0, 16],
[ -16, 17],
[ -17, 18],
[ -18, 19],
[ 20, 21],
[ 22, -19],
[ -20, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[ -12, 11],
[ -11, -13],
[ -10, -9],
[ 12, -14],
[ -8, -7],
[ -15, -6],
[ 13, -5],
[ -16, -4],
[ 14, -17],
[ 15, -3],
[ 16, -18],
[ -2, 17],
[ 18, -19],
[ -1, 19],
[ -20, 20],
[ 0, 21],
[ 22, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ -11, -10],
[ 7, -12],
[ 8, -9],
[ 9, -13],
[ -14, 10],
[ -8, -15],
[ -16, 11],
[ -7, 12],
[ -17, -6],
[ 13, 14],
[ -18, 15],
[ -5, -4],
[ 16, 17],
[ -3, -2],
[ -19, 18],
[ -1, 19],
[ -20, 20],
[ 21, 22],
[ 0, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ -12, -11],
[ -13, 7],
[ 8, -14],
[ -10, 9],
[ 10, -15],
[ -9, 11],
[ -8, 12],
[ -16, 13],
[ -7, -6],
[ -17, 14],
[ -5, -18],
[ 15, -4],
[ 16, -19],
[ 17, -3],
[ -20, 18],
[ -2, 19],
[ -21, 20],
[ 0, 21],
[ 22, -1],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ -11, 7],
[ -12, -10],
[ -13, -9],
[ 8, 9],
[ -14, -8],
[ 10, -15],
[ -7, 11],
[ -16, 12],
[ -6, -17],
[ 13, 14],
[ -5, 15],
[ -18, 16],
[ -4, 17],
[ -3, -19],
[ 18, -2],
[ -20, 19],
[ -1, 20],
[ 0, 21],
[ 22, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, -12],
[ 6, -11],
[ -10, -13],
[ -9, 7],
[ 8, -14],
[ 9, -8],
[ -15, 10],
[ -7, -16],
[ 11, -6],
[ 12, -17],
[ 13, -5],
[ -18, 14],
[ 15, -4],
[ -19, 16],
[ 17, -3],
[ -20, 18],
[ 19, 20],
[ 21, 22],
[ 0, -2],
[ -1, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, -12],
[ 6, -13],
[ -11, -10],
[ 7, -14],
[ 8, -9],
[ 9, -15],
[ -8, 10],
[ -7, -16],
[ 11, 12],
[ -6, -17],
[ -5, 13],
[ 14, 15],
[ -18, -4],
[ -19, 16],
[ -3, 17],
[ 18, -2],
[ -20, 19],
[ 20, 21],
[ 22, 0],
[ -1, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ -11, -10],
[ -12, -9],
[ 7, 8],
[ -13, -8],
[ 9, -14],
[ -7, 10],
[ -6, -15],
[ 11, 12],
[ -5, -16],
[ 13, 14],
[ -17, 15],
[ -4, 16],
[ 17, -18],
[ 18, -3],
[ -2, 19],
[ -1, 0],
[ -19, 20],
[ -20, 21],
[ 22, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, 6],
[ -11, 7],
[ -10, -12],
[ -9, 8],
[ -8, -13],
[ 9, -7],
[ 10, -14],
[ -6, 11],
[ -15, 12],
[ -5, 13],
[ -16, -4],
[ 14, 15],
[ -17, -3],
[ -18, 16],
[ 17, -19],
[ -2, 18],
[ -20, 19],
[ -1, 20],
[ 21, 22],
[ 0, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, -12],
[ 6, -11],
[ 7, 8],
[ -10, -13],
[ -9, 9],
[ -8, -14],
[ 10, -7],
[ 11, -15],
[ -6, 12],
[ -5, 13],
[ -4, -16],
[ 14, 15],
[ -3, -17],
[ 16, 17],
[ -18, -2],
[ 18, -19],
[ -1, 19],
[ -20, 20],
[ -21, 21],
[ 22, 0],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ 5, -12],
[ -13, 6],
[ -11, 7],
[ -14, 8],
[ -10, 9],
[ -15, -9],
[ -8, 10],
[ -7, -16],
[ 11, -6],
[ 12, -5],
[ -17, 13],
[ 14, -18],
[ 15, -4],
[ 16, -19],
[ 17, -3],
[ 18, -2],
[ 19, -1],
[ -20, 20],
[ 21, 22],
[ 0, -21],
[ -22, -23],
[ 1, 2],
[ 3, 4],
[ -12, 5],
[ -11, -13],
[ 6, -14],
[ -10, 7],
[ 8, -15],
[ -9, 9],
[ -16, 10],
[ -8, -17],
[ 11, 12],
[ -7, -18],
[ -6, 13],
[ 14, -5],
[ 15, -19],
[ -4, 16],
[ -20, 17],
[ 18, 19],
[ 20, 21],
[ 22, 0],
[ -1, -3],
[ -2, -21],
[ -22, -23],
];
pub const COSINE_MOD_MATRIX: [i16; 320] = [
29400, 28676, 27246, 25145, 22425, 19153, 15409, 11286, 6885, 2314, 28676, 22425, 11286, -2314, -15409, -25145,
-29400, -27246, -19153, -6885, 27246, 11286, -11286, -27246, -27246, -11286, 11286, 27246, 27246, 11286, 25145, -2314,
-27246, -22425, 6885, 28676, 19153, -11286, -29400, -15409, 22425, -15409, -27246, 6885, 29400, 2314, -28676, -11286,
25145, 19153, 19153, -25145, -11286, 28676, 2314, -29400, 6885, 27246, -15409, -22425, 15409, -29400, 11286, 19153,
-28676, 6885, 22425, -27246, 2314, 25145, 11286, -27246, 27246, -11286, -11286, 27246, -27246, 11286, 11286, -27246,
6885, -19153, 27246, -29400, 25145, -15409, 2314, 11286, -22425, 28676, 2314, -6885, 11286, -15409, 19153, -22425,
25145, -27246, 28676, -29400, -4, 4, -5, -2, 0, -4, 6, 2, -2, -4, -3, 3,
0, 0, -2, 4, 0, 0, 3, -6, 8, 5, 4, 5, -8, 0, -2, 0,
0, -3, 3, 0, 0, 0, 1, -1, -2, 0, 0, 2, -2, -5, -2, 3,
2, -1, -1, -6, 3, 1, -7, 4, 4, 0, 1, 4, 1, 0, 1, -5,
-1, 1, -6, 0, -1, -1, 3, 0, -2, 1, 2, -4, 0, 9, 0, -3,
1, 1, 1, 0, -3, -2, -1, -4, -2, 0, 5, 2, -3, 5, 0, -2,
4, 4, 0, -6, -4, 2, 0, 0, 0, -1, -1, -2, 0, 6, 1, 0,
0, -1, 0, -4, -1, 0, -4, 1, -1, -5, 0, 1, 2, 4, 0, -8,
-4, 0, -2, -2, 2, 5, -3, -1, 1, -4, 0, 0, 0, -1, -3, 0,
-5, -4, 0, -2, 0, 7, 1, 0, 5, -2, -1, 2, 2, -2, 3, 7,
-3, 4, 1, -4, 0, 0, 3, -7, -5, 0, 0, 4, 0, -2, -1, 0,
-5, 0, 2, 0, 11, 5, -1, 0, 2, 2, -2, -2, 5, 4, -3, 1,
0, -2, 1, 3, 2, 0, 1, 0, 0, 0, 5, 6, -2, -1, 0, 2,
3, 2, 0, -3, 4, 5, 0, -1, 0, 3, 1, -2, -3, -2, -1, 2,
];
pub const FILTERBANK_COEFF_0: [i16; 20] = [
18413, -723, 18299, -2166, 18073, -3595, 17735, -5002, 17288, -6378, 16734, -7715, 16077, -9004, 15321, -10237,
14471, -11408, 13531, -12508,
];
pub const FILTERBANK_COEFF_1: [i16; 40] = [
18423, -362, 18395, -1085, 18338, -1806, 18253, -2525, 18140, -3239, 17999, -3949, 17830, -4653, 17634, -5349,
17410, -6037, 17159, -6716, 16883, -7385, 16580, -8042, 16251, -8686, 15898, -9318, 15520, -9935, 15118, -10536,
14692, -11122, 14244, -11690, 13774, -12240, 13283, -12772,
];
pub const FILTERBANK_COEFF_2: [i16; 80] = [
18426, -181, 18419, -543, 18405, -904, 18384, -1265, 18355, -1626, 18320, -1986, 18277, -2345, 18228, -2704,
18171, -3061, 18107, -3417, 18037, -3772, 17959, -4126, 17875, -4477, 17783, -4827, 17685, -5176, 17580, -5522,
17468, -5866, 17350, -6208, 17225, -6547, 17093, -6884, 16954, -7219, 16809, -7550, 16658, -7879, 16500, -8204,
16336, -8526, 16165, -8846, 15988, -9161, 15805, -9473, 15616, -9782, 15421, -10087, 15220, -10387, 15013, -10684,
14801, -10977, 14582, -11265, 14358, -11550, 14129, -11829, 13894, -12104, 13654, -12375, 13408, -12641, 13157, -12901,
];
pub const FILTERBANK_COEFF_3: [i16; 160] = [
18427, -90, 18425, -271, 18421, -452, 18416, -633, 18409, -814, 18400, -995, 18389, -1175, 18377, -1356,
18363, -1536, 18347, -1716, 18329, -1896, 18310, -2076, 18288, -2256, 18265, -2435, 18241, -2614, 18214, -2793,
18186, -2972, 18156, -3150, 18124, -3328, 18090, -3506, 18055, -3684, 18018, -3861, 17979, -4037, 17939, -4214,
17897, -4390, 17853, -4565, 17807, -4740, 17760, -4915, 17710, -5089, 17660, -5262, 17607, -5436, 17553, -5608,
17497, -5780, 17439, -5952, 17380, -6123, 17319, -6293, 17257, -6463, 17192, -6632, 17126, -6800, 17059, -6968,
16990, -7135, 16919, -7302, 16846, -7467, 16772, -7632, 16696, -7797, 16619, -7960, 16540, -8123, 16459, -8285,
16377, -8446, 16294, -8607, 16208, -8766, 16121, -8925, 16033, -9083, 15943, -9240, 15852, -9396, 15759, -9551,
15664, -9705, 15568, -9858, 15471, -10011, 15372, -10162, 15271, -10313, 15169, -10462, 15066, -10610, 14961, -10758,
14854, -10904, 14747, -11049, 14637, -11194, 14527, -11337, 14415, -11479, 14301, -11620, 14187, -11760, 14071, -11898,
13953, -12036, 13834, -12172, 13714, -12308, 13593, -12442, 13470, -12575, 13346, -12706, 13220, -12837, 13094, -12966,
];
pub const FILTERBANK_COEFF_4: [i16; 320] = [
18427, -45, 18427, -136, 18426, -226, 18424, -317, 18423, -407, 18420, -497, 18418, -588, 18415, -678,
18411, -769, 18407, -859, 18403, -949, 18398, -1040, 18392, -1130, 18387, -1220, 18380, -1310, 18374, -1401,
18367, -1491, 18359, -1581, 18351, -1671, 18343, -1761, 18334, -1851, 18324, -1941, 18315, -2031, 18305, -2121,
18294, -2211, 18283, -2301, 18271, -2390, 18259, -2480, 18247, -2570, 18234, -2659, 18221, -2749, 18207, -2838,
18193, -2927, 18178, -3017, 18163, -3106, 18148, -3195, 18132, -3284, 18116, -3373, 18099, -3462, 18082, -3551,
18064, -3639, 18046, -3728, 18027, -3816, 18009, -3905, 17989, -3993, 17969, -4081, 17949, -4170, 17928, -4258,
17907, -4346, 17886, -4434, 17864, -4521, 17841, -4609, 17818, -4696, 17795, -4784, 17772, -4871, 17747, -4958,
17723, -5045, 17698, -5132, 17672, -5219, 17647, -5306, 17620, -5392, 17594, -5479, 17567, -5565, 17539, -5651,
17511, -5737, 17483, -5823, 17454, -5909, 17425, -5994, 17395, -6080, 17365, -6165, 17335, -6250, 17304, -6335,
17272, -6420, 17241, -6505, 17208, -6590, 17176, -6674, 17143, -6758, 17110, -6842, 17076, -6926, 17042, -7010,
17007, -7093, 16972, -7177, 16937, -7260, 16901, -7343, 16864, -7426, 16828, -7509, 16791, -7591, 16753, -7674,
16715, -7756, 16677, -7838, 16638, -7919, 16599, -8001, 16560, -8082, 16520, -8164, 16480, -8245, 16439, -8325,
16398, -8406, 16357, -8486, 16315, -8567, 16272, -8647, 16230, -8726, 16187, -8806, 16143, -8885, 16100, -8964,
16055, -9043, 16011, -9122, 15966, -9200, 15920, -9279, 15875, -9357, 15829, -9435, 15782, -9512, 15735, -9589,
15688, -9667, 15640, -9744, 15592, -9820, 15544, -9897, 15495, -9973, 15446, -10049, 15396, -10124, 15347, -10200,
15296, -10275, 15246, -10350, 15195, -10425, 15143, -10499, 15092, -10573, 15040, -10647, 14987, -10721, 14934, -10794,
14881, -10868, 14828, -10941, 14774, -11013, 14719, -11086, 14665, -11158, 14610, -11230, 14555, -11301, 14499, -11372,
14443, -11444, 14387, -11514, 14330, -11585, 14273, -11655, 14216, -11725, 14158, -11795, 14100, -11864, 14041, -11933,
13983, -12002, 13924, -12070, 13864, -12138, 13804, -12206, 13744, -12274, 13684, -12341, 13623, -12408, 13562, -12475,
13501, -12541, 13439, -12608, 13377, -12673, 13314, -12739, 13252, -12804, 13189, -12869, 13125, -12934, 13062, -12998,
];
pub const FILTERBANK_COEFF_5: [i16; 640] = [
18426, -21, 18426, -66, 18426, -110, 18426, -154, 18425, -198, 18425, -242, 18424, -286, 18424, -331,
18423, -374, 18421, -419, 18421, -463, 18419, -507, 18418, -552, 18417, -595, 18415, -639, 18414, -684,
18412, -728, 18410, -772, 18408, -816, 18406, -860, 18404, -904, 18402, -949, 18400, -992, 18397, -1037,
18394, -1081, 18392, -1125, 18389, -1169, 18387, -1213, 18384, -1257, 18380, -1301, 18378, -1345, 18374, -1389,
18371, -1433, 18367, -1477, 18364, -1521, 18360, -1566, 18356, -1609, 18352, -1653, 18348, -1697, 18344, -1742,
18339, -1785, 18335, -1829, 18331, -1873, 18326, -1917, 18322, -1961, 18317, -2005, 18312, -2049, 18307, -2092,
18302, -2137, 18297, -2180, 18292, -2224, 18286, -2268, 18281, -2312, 18275, -2356, 18270, -2399, 18264, -2443,
18258, -2487, 18252, -2531, 18246, -2574, 18240, -2618, 18233, -2662, 18227, -2706, 18220, -2749, 18214, -2793,
18207, -2836, 18200, -2880, 18193, -2924, 18186, -2967, 18179, -3011, 18172, -3055, 18164, -3098, 18157, -3142,
18149, -3185, 18141, -3229, 18134, -3272, 18126, -3316, 18118, -3359, 18109, -3403, 18101, -3446, 18094, -3489,
18085, -3533, 18076, -3576, 18068, -3619, 18059, -3663, 18050, -3706, 18041, -3749, 18032, -3792, 18023, -3836,
18014, -3879, 18005, -3922, 17995, -3965, 17986, -4008, 17975, -4051, 17966, -4094, 17956, -4138, 17946, -4180,
17936, -4224, 17926, -4266, 17916, -4309, 17905, -4353, 17895, -4395, 17884, -4438, 17874, -4481, 17863, -4524,
17852, -4567, 17841, -4609, 17830, -4652, 17819, -4695, 17807, -4738, 17796, -4780, 17784, -4823, 17772, -4865,
17761, -4908, 17749, -4951, 17738, -4993, 17725, -5036, 17713, -5078, 17701, -5121, 17689, -5163, 17676, -5205,
17664, -5248, 17651, -5290, 17638, -5333, 17626, -5375, 17613, -5417, 17599, -5459, 17586, -5501, 17573, -5544,
17560, -5586, 17546, -5627, 17533, -5670, 17519, -5712, 17505, -5753, 17492, -5795, 17478, -5837, 17464, -5879,
17450, -5921, 17435, -5963, 17421, -6005, 17406, -6046, 17392, -6088, 17377, -6130, 17363, -6172, 17348, -6213,
17333, -6254, 17318, -6296, 17303, -6338, 17288, -6379, 17272, -6420, 17257, -6462, 17241, -6503, 17225, -6545,
17210, -6586, 17194, -6627, 17178, -6668, 17162, -6709, 17145, -6750, 17130, -6791, 17113, -6832, 17097, -6874,
17080, -6915, 17064, -6956, 17047, -6996, 17030, -7037, 17013, -7078, 16996, -7119, 16979, -7159, 16962, -7200,
16945, -7241, 16927, -7281, 16910, -7322, 16892, -7362, 16874, -7403, 16856, -7444, 16838, -7484, 16821, -7524,
16802, -7564, 16784, -7605, 16766, -7645, 16748, -7685, 16729, -7725, 16711, -7765, 16692, -7805, 16674, -7845,
16654, -7885, 16635, -7925, 16616, -7964, 16597, -8004, 16578, -8044, 16559, -8084, 16539, -8124, 16520, -8164,
16500, -8203, 16480, -8242, 16461, -8282, 16441, -8322, 16421, -8361, 16401, -8400, 16380, -8440, 16360, -8479,
16340, -8518, 16319, -8557, 16299, -8597, 16278, -8635, 16257, -8674, 16237, -8713, 16215, -8752, 16195, -8791,
16173, -8829, 16152, -8868, 16131, -8907, 16110, -8946, 16088, -8985, 16067, -9023, 16045, -9061, 16023, -9100,
16001, -9138, 15979, -9176, 15957, -9215, 15935, -9253, 15913, -9291, 15891, -9329, 15868, -9367, 15846, -9405,
15823, -9443, 15800, -9481, 15778, -9519, 15755, -9557, 15732, -9595, 15709, -9632, 15686, -9670, 15662, -9708,
15639, -9745, 15615, -9782, 15592, -9820, 15569, -9857, 15544, -9894, 15521, -9932, 15497, -9969, 15473, -10006,
15449, -10043, 15425, -10080, 15401, -10117, 15377, -10154, 15352, -10191, 15327, -10227, 15303, -10264, 15278, -10301,
15254, -10337, 15229, -10374, 15204, -10411, 15180, -10447, 15154, -10483, 15129, -10519, 15104, -10556, 15078, -10592,
15053, -10628, 15027, -10664, 15002, -10700, 14976, -10736, 14950, -10772, 14924, -10808, 14898, -10844, 14872, -10879,
14846, -10915, 14820, -10950, 14794, -10985, 14767, -11021, 14741, -11056, 14714, -11092, 14687, -11127, 14661, -11162,
14635, -11197, 14607, -11232, 14581, -11267, 14554, -11302, 14526, -11337, 14499, -11372, 14472, -11407, 14444, -11441,
14417, -11476, 14389, -11511, 14362, -11545, 14334, -11579, 14306, -11614, 14278, -11648, 14251, -11682, 14222, -11716,
14194, -11750, 14166, -11784, 14137, -11818, 14109, -11852, 14081, -11886, 14053, -11919, 14023, -11953, 13995, -11987,
13966, -12020, 13937, -12054, 13909, -12087, 13879, -12120, 13851, -12153, 13821, -12187, 13792, -12220, 13763, -12253,
13733, -12286, 13704, -12319, 13674, -12351, 13645, -12385, 13615, -12417, 13585, -12450, 13555, -12482, 13525, -12514,
13495, -12546, 13465, -12579, 13435, -12611, 13405, -12644, 13374, -12676, 13345, -12708, 13314, -12739, 13283, -12772,
];
pub const CODEBOOK_TREE_0: [i16; 360] = [
1, 0, 2, 3, 4, 5, 6, 7, 8, 9, -1, -14, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, -15, 20, 21, 22, 23, -28, 24, -2, 25, 26,
27, 28, 29, 30, 31, 32, -29, 33, -16, 34, -3, 35, 36, 37, -42, 38,
39, 40, 41, 42, 43, 44, -17, 45, -43, 46, 47, 48, -4, 49, -56, 50,
51, 52, 53, 54, 55, 56, -57, -5, -30, 57, 58, 59, -18, 60, 61, -70,
62, 63, 64, -6, 65, 66, -44, 67, -71, 68, 69, 70, -19, -31, -84, 71,
72, 73, 74, 75, 76, 77, -7, 78, 79, -20, 80, 81, -85, 82, -98, 83,
-58, 84, 85, -32, -99, 86, -8, 87, 88, 89, -72, -45, 90, -33, 91, -112,
-21, 92, -59, -113, -46, 93, -9, 94, -22, 95, 96, 97, 98, 99, -23, -86,
100, 101, -34, -73, 102, -126, -127, -35, 103, -47, 104, 105, 106, 107, -140, -100,
-114, -87, 108, 109, 110, 111, -141, -60, 112, -48, 113, -24, -10, -61, 114, -101,
115, 116, -74, -36, 117, -128, 118, -62, 119, 120, -37, 121, -11, -49, -88, 122,
123, -115, -154, -25, -142, 124, -155, -129, 125, -50, 126, 127, -76, -75, 128, 129,
-63, -77, -102, -39, -38, 130, -51, 131, -89, -116, -117, -156, 132, -52, -78, 133,
134, -103, 135, 136, -143, -65, 137, -64, -130, -131, -90, 138, -104, -91, -92, 139,
-169, -183, -26, -118, 140, 141, -144, -66, -12, 142, -168, 143, -105, -157, 144, -182,
145, 146, -79, 147, -53, -170, 148, 149, -27, -145, 150, -80, -106, -13, -132, -67,
-158, -40, -119, 151, 152, -107, 153, 154, -41, -184, 155, 156, -54, 157, -171, 158,
-94, 159, -134, -146, -93, -133, -159, -108, 160, -81, 161, -160, 162, -68, -120, -122,
-172, 163, -55, -95, 164, -109, -161, -82, -173, -185, 165, -69, -147, -186, 166, 167,
-121, -96, 168, -148, -174, 169, 170, -136, -83, 171, 172, 173, -135, -110, -187, 174,
-149, -150, 175, -123, -162, -163, -97, -175, -188, 176, 177, 178, 179, -111, -151, -124,
-137, -177, -176, -125, -164, -138, -189, -190,
];
pub const CODEBOOK_TREE_1: [i16; 186] = [
1, 0, 2, 3, 4, 5, 6, 7, 8, -10, -1, 9, 10, 11, 12, 13,
-11, 14, 15, 16, 17, 18, -20, -2, 19, 20, -21, 21, 22, 23, -12, 24,
25, 26, 27, 28, 29, 30, -30, 31, -31, -3, 32, -22, 33, -13, 34, 35,
36, 37, 38, 39, 40, -4, -41, -14, 41, -40, -32, 42, 43, -23, 44, 45,
46, 47, 48, -5, -51, -50, -42, 49, -33, 50, -15, 51, 52, 53, 54, -24,
55, -43, 56, -52, 57, -61, -60, 58, -25, 59, -16, -34, -6, 60, -62, 61,
-71, 62, -35, -7, 63, -72, -53, -17, 64, -44, -26, -70, 65, -45, -36, 66,
-63, 67, -80, -54, -81, 68, -27, 69, 70, -82, -18, 71, 72, -55, 73, -64,
74, -73, 75, -46, -37, 76, -91, -8, -9, 77, -90, -83, 78, -28, 79, -56,
-65, -38, -74, 80, -19, -57, -92, 81, -47, -48, 82, -66, 83, -29, -84, 84,
-75, -85, -67, -93, -39, 85, -76, 86, -58, 87, 88, -49, -94, 89, 90, -68,
91, -78, -86, -59, -77, -95, 92, -69, -87, -96,
];
pub const CODEBOOK_TREE_2: [i16; 94] = [
1, 0, 2, 3, 4, 5, 6, -7, -1, 7, -8, 8, 9, 10, 11, 12,
13, -14, -15, -9, -2, 14, 15, 16, 17, 18, 19, -16, 20, -22, -10, 21,
-21, -3, 22, 23, 24, 25, -23, -17, 26, 27, 28, -29, -11, -28, 29, 30,
-4, -24, -30, 31, 32, -18, 33, -35, -36, 34, -31, -12, 35, -25, -5, -37,
36, 37, -42, 38, -19, -43, -32, 39, -13, -38, -26, -20, 40, -6, -44, 41,
42, -39, -33, -45, 43, -27, 44, -46, 45, -34, -40, 46, -41, -47,
];
pub const CODEBOOK_TREE_3: [i16; 1038] = [
1, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, -125, 18, -1, 19, 20, 21, 22, 23, 24, 25, -5, -25, 26, 27,
-6, -150, 28, 29, 30, 31, 32, 33, 34, -30, 35, 36, 37, 38, 39, -31,
-126, -155, 40, 41, -156, 42, 43, -130, 44, -131, -151, -26, 45, 46, -250, 47,
48, 49, 50, 51, 52, -275, 53, 54, -2, -7, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, -50, 72, -180, 73, 74,
75, 76, 77, -55, 78, -175, 79, -36, 80, 81, -35, -10, 82, 83, -280, 84,
-11, 85, 86, -32, 87, 88, 89, -161, 90, -276, 91, 92, -281, 93, -8, 94,
95, 96, 97, -157, -181, -400, -132, 98, -375, 99, -160, 100, -127, 101, -27, 102,
103, -251, -56, 104, 105, -256, -300, -3, -152, -255, 106, 107, -37, 108, -305, 109,
-176, 110, -136, 111, -12, 112, 113, 114, 115, -135, 116, 117, -162, 118, -16, -51,
-186, 119, 120, 121, 122, 123, -41, 124, -61, 125, 126, 127, 128, 129, 130, -60,
131, 132, -306, 133, 134, -205, -405, 135, 136, 137, 138, 139, -185, 140, 141, -500,
-15, 142, 143, -80, -75, -40, -301, 144, 145, 146, -200, 147, 148, 149, 150, 151,
152, -525, 153, -177, -425, 154, 155, -13, -430, 156, 157, -406, 158, 159, -206, -380,
160, 161, 162, 163, 164, -182, -137, 165, -286, 166, 167, -401, 168, 169, -42, -33,
170, -166, -57, -325, 171, -187, -38, 172, 173, 174, -165, -330, -4, -282, 175, -257,
-261, -311, -376, 176, 177, 178, -28, 179, 180, -9, -285, 181, 182, 183, 184, -277,
185, -133, -310, -81, -85, 186, -158, -210, -17, 187, 188, 189, 190, -52, -141, 191,
192, -128, -191, -20, 193, -140, 194, 195, -211, -260, 196, 197, 198, 199, 200, -66,
-201, -225, -381, 201, 202, 203, 204, 205, 206, 207, -163, -287, 208, -100, 209, 210,
211, 212, 213, -252, -105, -76, 214, 215, 216, -21, -86, -62, -307, 217, -65, -455,
-550, 218, 219, 220, 221, 222, 223, 224, 225, -230, -142, 226, -302, -426, -431, 227,
228, 229, 230, -190, -402, -46, -153, -450, -505, 231, 232, 233, 234, 235, 236, 237,
238, 239, -262, -29, 240, 241, 242, 243, -167, -67, -331, -530, 244, 245, 246, 247,
248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, -336,
263, -171, -192, -207, -258, -138, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
274, -45, -335, -411, -43, -18, -265, -71, -316, -326, -350, -407, -146, -14, 275, 276,
277, 278, 279, 280, 281, -216, -34, -283, -291, -312, -410, -168, -555, 282, -70, -53,
-235, -87, -77, -183, -315, -332, -178, -58, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, -202, -226, -170, -267, -134, -290, -355, -385,
-386, -47, -526, -196, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, -111,
-231, -253, -91, -82, -172, -145, -22, -317, -90, -356, -382, -159, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, -106, -263, -278, -215, -110, -39, -101, -377, -129, -63,
-436, -195, -506, -531, 336, -212, -154, -266, -59, -288, -292, -303, -337, -432, -188, -451,
-456, -460, -501, -236, -551, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, -72, -272, -309, -333,
-340, -360, -68, -387, -184, -416, -427, -147, -435, -437, -115, -480, -510, -532, -164, -556,
408, -295, -296, -297, -107, -313, -193, -173, -320, -327, -341, -351, -352, -143, -378, -19,
-403, -412, -268, -54, -83, -441, -442, -457, -475, -44, -97, -511, -515, -208, -527, -528,
-237, -536, -552, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501,
502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
518, -104, -84, -218, -318, -319, -117, -321, -322, -323, -219, -174, -243, -328, -329, -94,
-228, -194, -240, -334, -102, -229, -169, -338, -339, -116, -289, -342, -343, -345, -346, -347,
-23, -203, -214, -353, -204, -220, -357, -358, -264, -361, -362, -363, -365, -366, -367, -92,
-245, -121, -293, -379, -108, -232, -221, -383, -384, -233, -294, -241, -388, -389, -390, -391,
-392, -393, -394, -395, -396, -397, -398, -24, -109, -149, -242, -404, -64, -79, -89, -408,
-409, -213, -120, -113, -413, -414, -415, -96, -417, -418, -419, -420, -421, -422, -423, -298,
-69, -269, -428, -429, -78, -270, -88, -433, -434, -271, -234, -259, -438, -439, -440, -227,
-179, -443, -445, -446, -447, -223, -238, -452, -453, -454, -273, -254, -246, -458, -459, -48,
-461, -462, -463, -465, -466, -467, -468, -470, -471, -304, -476, -477, -478, -112, -481, -482,
-483, -485, -486, -487, -490, -491, -103, -118, -502, -503, -504, -189, -93, -507, -508, -509,
-148, -139, -512, -513, -308, -516, -517, -518, -520, -521, -73, -98, -95, -49, -529, -222,
-217, -197, -533, -534, -535, -284, -537, -538, -540, -541, -542, -543, -545, -546, -144, -198,
-314, -553, -209, -279, -557, -558, -560, -561, -562, -563, -565, -566, -567, -575, -576, -577,
-578, -580, -581, -582, -583, -585, -586, -587, -590, -591, -600, -601, -605, -606,
];
pub const CODEBOOK_TREE_4: [i16; 416] = [
1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, -64, -1, 13,
14, -16, -4, 15, 16, 17, 18, -80, -5, 19, 20, 21, -20, 22, 23, -65,
-84, -21, -68, 24, -17, 25, 26, 27, 28, -81, -69, -85, 29, 30, 31, 32,
-128, 33, 34, 35, -2, 36, 37, 38, -144, 39, 40, -6, 41, 42, -32, 43,
44, -8, 45, -25, -96, 46, 47, -100, -9, 48, 49, -36, 50, -24, 51, 52,
53, -148, 54, 55, -22, 56, 57, 58, -132, -89, 59, 60, -101, 61, -37, 62,
-18, 63, -88, -129, -66, -70, -97, 64, -72, -73, 65, -145, -149, -86, 66, -33,
67, -133, 68, 69, 70, 71, -192, 72, 73, -160, -82, 74, -164, 75, -10, 76,
77, -208, 78, -40, 79, 80, -3, 81, -7, 82, 83, 84, -104, 85, 86, -26,
87, -105, 88, -112, 89, 90, 91, -41, 92, 93, 94, 95, -48, 96, -90, 97,
98, -28, -52, 99, -12, 100, 101, -74, -13, -116, -161, 102, 103, -29, -102, 104,
-152, -165, 105, 106, 107, 108, 109, 110, 111, -212, 112, 113, -136, 114, 115, -137,
116, -23, -19, -153, -98, -134, -196, 117, 118, 119, -38, -193, -113, -150, -209, 120,
121, -93, -83, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, -34, -146, -53,
132, 133, 134, 135, 136, 137, 138, -130, -49, 139, 140, 141, -117, -42, -67, -92,
142, -87, -77, -197, -71, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
-108, -76, -168, -169, -176, -44, -224, -56, -45, -180, -11, -106, -213, 170, 171, 172,
173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
205, 206, 207, -131, -30, -27, -43, -151, -75, -154, -156, -162, -109, -194, -198, -201,
-114, -225, -228, -229, -141, -142, -94, -124, -95, -147, -115, -125, -54, -55, -107, -58,
-39, -155, -121, -157, -158, -103, -14, -122, -163, -51, -57, -166, -167, -46, -110, -170,
-172, -173, -61, -177, -178, -99, -181, -182, -184, -185, -118, -35, -15, -195, -31, -60,
-135, -199, -200, -79, -202, -204, -205, -119, -91, -210, -211, -78, -120, -214, -215, -216,
-217, -218, -220, -221, -50, -138, -226, -139, -140, -230, -232, -233, -240, -241, -244, -245,
];
pub const CODEBOOK_TREE_5: [i16; 382] = [
1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, -81, -1, 12, 13,
14, -27, -3, -9, 15, 16, 17, 18, 19, 20, -108, 21, -4, 22, 23, -36,
-12, 24, -82, 25, 26, -84, 27, -90, -10, -30, 28, 29, 30, -28, 31, -117,
-13, 32, -39, 33, 34, -109, 35, -93, -85, -111, -37, 36, -31, 37, -91, 38,
39, 40, -40, -120, 41, 42, -118, 43, -94, 44, -112, -162, 45, 46, -2, 47,
48, 49, -121, -189, 50, -54, 51, 52, 53, -18, 54, 55, -6, 56, 57, -5,
-135, 58, 59, 60, 61, 62, -63, 63, 64, -7, -15, 65, 66, 67, -45, 68,
69, 70, 71, -21, 72, 73, 74, 75, 76, 77, -163, 78, 79, -171, -144, 80,
-48, 81, -57, 82, 83, 84, -165, 85, -16, -198, 86, 87, -11, 88, 89, -99,
90, -83, -19, 91, 92, 93, 94, 95, 96, 97, 98, 99, -87, 100, 101, 102,
-190, -66, -33, -192, 103, 104, 105, 106, -102, -42, 107, -126, 108, -29, -129, -46,
-86, -14, -114, -32, -172, 109, 110, -58, -34, -138, 111, 112, 113, 114, 115, 116,
117, 118, 119, 120, -127, -166, -174, 121, 122, 123, 124, 125, -88, -96, 126, -100,
-38, -110, -22, -136, -55, -139, -201, 127, -64, -193, 128, -49, -175, -199, 129, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
147, 148, 149, 150, -103, -92, -43, -130, -145, -147, -148, -41, -216, -115, -119, -123,
-95, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
182, 183, 184, 185, 186, 187, 188, 189, 190, -153, -180, -8, -97, -24, -122, -113,
-124, -125, -67, -44, -128, -69, -106, -131, -132, -133, -61, -73, -137, -116, -89, -140,
-141, -142, -23, -25, -146, -17, -104, -149, -150, -151, -52, -154, -156, -157, -76, -70,
-164, -51, -72, -167, -168, -169, -47, -20, -173, -59, -101, -176, -177, -178, -68, -181,
-183, -184, -35, -60, -191, -98, -56, -194, -195, -196, -75, -65, -200, -105, -202, -203,
-204, -205, -207, -208, -210, -211, -50, -217, -219, -220, -225, -226, -228, -229,
];
pub const CODEBOOK_TREE_6: [i16; 62] = [
1, 0, 2, 3, 4, 5, 6, 7, 8, -16, -1, -8, -2, -4, 9, 10,
11, 12, 13, 14, 15, 16, 17, -24, -3, -12, -6, 18, 19, -20, -10, -5,
-17, -9, -18, 20, 21, 22, 23, 24, 25, -28, 26, -7, -14, -22, -26, -11,
27, -19, -25, -13, -21, 28, 29, -30, -27, 30, -15, -29, -23, -31,
];
pub const SYNTH_OVERLAP_OFFSETS: [i16; 320] = [
44, 133, 222, 310, 399, 488, 577, 666, 754, 843, 932, 1020, 1109, 1198, 1286, 1375,
1464, 1552, 1641, 1729, 1817, 1906, 1994, 2082, 2171, 2259, 2347, 2435, 2523, 2611, 2699, 2786,
2874, 2962, 3049, 3137, 3224, 3312, 3399, 3486, 3573, 3660, 3747, 3834, 3921, 4008, 4094, 4181,
4267, 4353, 4439, 4526, 4611, 4697, 4783, 4869, 4954, 5040, 5125, 5210, 5295, 5380, 5465, 5549,
5634, 5718, 5802, 5886, 5970, 6054, 6138, 6221, 6304, 6388, 6471, 6553, 6636, 6719, 6801, 6883,
6965, 7047, 7129, 7211, 7292, 7373, 7454, 7535, 7616, 7696, 7777, 7857, 7937, 8016, 8096, 8175,
8254, 8333, 8412, 8491, 8569, 8647, 8725, 8803, 8880, 8957, 9035, 9111, 9188, 9264, 9341, 9417,
9492, 9568, 9643, 9718, 9793, 9868, 9942, 10016, 10090, 10163, 10237, 10310, 10383, 10455, 10528, 10600,
10672, 10743, 10815, 10886, 10957, 11027, 11098, 11168, 11237, 11307, 11376, 11445, 11514, 11582, 11650, 11718,
11785, 11853, 11920, 11986, 12053, 12119, 12185, 12250, 12315, 12380, 12445, 12509, 12573, 12637, 12701, 12764,
12826, 12889, 12951, 13013, 13075, 13136, 13197, 13257, 13318, 13378, 13437, 13497, 13556, 13614, 13673, 13731,
13788, 13846, 13903, 13959, 14016, 14072, 14128, 14183, 14238, 14292, 14347, 14401, 14454, 14508, 14561, 14613,
14665, 14717, 14769, 14820, 14871, 14921, 14971, 15021, 15070, 15119, 15168, 15216, 15264, 15311, 15359, 15405,
15452, 15498, 15544, 15589, 15634, 15678, 15722, 15766, 15810, 15853, 15895, 15938, 15979, 16021, 16062, 16103,
16143, 16183, 16223, 16262, 16300, 16339, 16377, 16414, 16452, 16488, 16525, 16561, 16596, 16632, 16666, 16701,
16735, 16768, 16801, 16834, 16867, 16899, 16930, 16961, 16992, 17022, 17052, 17082, 17111, 17140, 17168, 17196,
17223, 17250, 17277, 17303, 17329, 17354, 17379, 17404, 17428, 17452, 17475, 17498, 17520, 17542, 17564, 17585,
17606, 17626, 17646, 17665, 17684, 17703, 17721, 17739, 17756, 17773, 17790, 17806, 17821, 17836, 17851, 17865,
17879, 17893, 17906, 17918, 17931, 17942, 17954, 17965, 17975, 17985, 17995, 18004, 18012, 18021, 18028, 18036,
18043, 18049, 18055, 18061, 18066, 18071, 18076, 18079, 18083, 18086, 18089, 18091, 18093, 18094, 18095, 18095,
];
pub static FWD_COSINE_MOD_MATRIX: [i16; 100] = [
10453, 10196, 9688, 8941, 7973, 6810, 5479, 4013, 2448, 823,
10196, 7973, 4013, -823, -5479, -8941,-10453, -9688, -6810, -2448,
9688, 4013, -4013, -9688, -9688, -4013, 4013, 9688, 9688, 4013,
8941, -823, -9688, -7973, 2448, 10196, 6810, -4013,-10453, -5479,
7973, -5479, -9688, 2448, 10453, 823,-10196, -4013, 8941, 6810,
6810, -8941, -4013, 10196, 823,-10453, 2448, 9688, -5479, -7973,
5479,-10453, 4013, 6810,-10196, 2448, 7973, -9688, 823, 8941,
4013, -9688, 9688, -4013, -4013, 9688, -9688, 4013, 4013, -9688,
2448, -6810, 9688,-10453, 8941, -5479, 823, 4013, -7973, 10196,
823, -2448, 4013, -5479, 6810, -7973, 8941, -9688, 10196,-10453,
];
pub static FWD_FILTERBANK_COEFF_0: [i16; 20] = [
29805, -1171, 29621, -3506, 29255, -5819, 28708, -8097, 27984,-10324,
27088,-12488, 26025,-14575, 24801,-16572, 23425,-18466, 21903,-20247,
];
pub static FWD_FILTERBANK_COEFF_1: [i16; 40] = [
29822, -586, 29776, -1756, 29684, -2924, 29547, -4087, 29364, -5244,
29135, -6392, 28862, -7531, 28544, -8659, 28182, -9773, 27776,-10871,
27328,-11954, 26838,-13017, 26306,-14061, 25734,-15083, 25122,-16081,
24471,-17055, 23783,-18003, 23057,-18923, 22297,-19813, 21502,-20673,
];
pub static FWD_FILTERBANK_COEFF_2: [i16; 80] = [
29827, -293, 29815, -878, 29792, -1464, 29758, -2048, 29712, -2632,
29654, -3215, 29586, -3797, 29505, -4377, 29414, -4955, 29311, -5532,
29196, -6106, 29071, -6678, 28934, -7248, 28786, -7814, 28627, -8378,
28457, -8938, 28276, -9495, 28084,-10049, 27882,-10598, 27668,-11144,
27444,-11685, 27209,-12221, 26964,-12753, 26709,-13280, 26443,-13802,
26167,-14318, 25881,-14829, 25584,-15335, 25278,-15834, 24963,-16327,
24637,-16814, 24302,-17295, 23958,-17769, 23605,-18236, 23242,-18695,
22871,-19148, 22490,-19594, 22101,-20031, 21704,-20461, 21298,-20884,
];
pub static FWD_FILTERBANK_COEFF_3: [i16; 160] = [
29828, -146, 29825, -439, 29819, -732, 29811, -1025, 29799, -1317,
29785, -1610, 29767, -1902, 29747, -2194, 29724, -2486, 29698, -2778,
29670, -3069, 29638, -3360, 29604, -3651, 29567, -3942, 29526, -4232,
29483, -4521, 29438, -4811, 29389, -5099, 29338, -5388, 29283, -5676,
29226, -5963, 29166, -6249, 29103, -6535, 29038, -6821, 28969, -7106,
28898, -7390, 28824, -7673, 28748, -7956, 28668, -8237, 28586, -8518,
28501, -8799, 28413, -9078, 28323, -9357, 28229, -9634, 28133, -9911,
28035,-10187, 27933,-10461, 27829,-10735, 27723,-11008, 27613,-11279,
27501,-11550, 27387,-11819, 27269,-12088, 27149,-12355, 27027,-12621,
26901,-12885, 26774,-13149, 26643,-13411, 26510,-13672, 26375,-13932,
26237,-14190, 26096,-14447, 25953,-14702, 25807,-14956, 25659,-15209,
25509,-15460, 25356,-15710, 25200,-15958, 25043,-16205, 24882,-16450,
24720,-16693, 24554,-16935, 24387,-17175, 24217,-17414, 24045,-17651,
23871,-17886, 23694,-18119, 23515,-18351, 23334,-18581, 23150,-18809,
22964,-19036, 22776,-19260, 22586,-19483, 22394,-19704, 22199,-19923,
22003,-20140, 21804,-20355, 21603,-20568, 21400,-20779, 21195,-20988,
];
pub static FWD_FILTERBANK_COEFF_4: [i16; 320] = [
29828, -73, 29827, -220, 29826, -366, 29824, -512, 29821, -659,
29817, -805, 29813, -952, 29808, -1098, 29802, -1244, 29796, -1390,
29789, -1537, 29781, -1683, 29772, -1829, 29763, -1975, 29753, -2121,
29742, -2267, 29730, -2413, 29718, -2559, 29705, -2705, 29692, -2851,
29677, -2997, 29662, -3142, 29646, -3288, 29630, -3433, 29613, -3579,
29595, -3724, 29576, -3869, 29557, -4014, 29537, -4159, 29516, -4304,
29494, -4449, 29472, -4594, 29449, -4738, 29426, -4883, 29401, -5027,
29376, -5172, 29351, -5316, 29324, -5460, 29297, -5604, 29269, -5747,
29241, -5891, 29211, -6034, 29181, -6178, 29151, -6321, 29119, -6464,
29087, -6607, 29054, -6749, 29021, -6892, 28987, -7034, 28952, -7177,
28916, -7319, 28880, -7460, 28843, -7602, 28805, -7744, 28767, -7885,
28728, -8026, 28688, -8167, 28648, -8308, 28607, -8448, 28565, -8589,
28522, -8729, 28479, -8869, 28435, -9008, 28391, -9148, 28346, -9287,
28300, -9426, 28253, -9565, 28206, -9703, 28158, -9842, 28109, -9980,
28060, -10118, 28010, -10255, 27959, -10393, 27908, -10530, 27856, -10667,
27803, -10803, 27750, -10940, 27696, -11076, 27641, -11212, 27586, -11347,
27529, -11482, 27473, -11617, 27415, -11752, 27357, -11886, 27299, -12021,
27239, -12154, 27179, -12288, 27119, -12421, 27057, -12554, 26996, -12687,
26933, -12819, 26870, -12951, 26806, -13083, 26741, -13215, 26676, -13346,
26610, -13476, 26544, -13607, 26477, -13737, 26409, -13867, 26340, -13996,
26271, -14125, 26202, -14254, 26132, -14383, 26061, -14511, 25989, -14638,
25917, -14766, 25844, -14893, 25771, -15020, 25697, -15146, 25622, -15272,
25547, -15397, 25471, -15523, 25394, -15648, 25317, -15772, 25239, -15896,
25161, -16020, 25082, -16143, 25003, -16266, 24923, -16389, 24842, -16511,
24760, -16632, 24678, -16754, 24596, -16875, 24513, -16995, 24429, -17115,
24345, -17235, 24260, -17354, 24174, -17473,
24088, -17592, 24002, -17710, 23914, -17827, 23827, -17945, 23738, -18061,
23649, -18178, 23560, -18293, 23470, -18409, 23379, -18524, 23288, -18638,
23196, -18752, 23104, -18866, 23011, -18979, 22917, -19092, 22824, -19204,
22729, -19316, 22634, -19427, 22538, -19538, 22442, -19649, 22345, -19759,
22248, -19868, 22150, -19977, 22052, -20086, 21953, -20194, 21854, -20301,
21754, -20408, 21653, -20515, 21552, -20621, 21451, -20726, 21349, -20831,
21246, -20936, 21143, -21040,
];
pub static FWD_FILTERBANK_COEFF_5: [i16; 640] = [
29827, -34, 29827, -106, 29827, -177, 29827, -249, 29826, -320,
29825, -392, 29824, -463, 29823, -535, 29821, -606, 29819, -678,
29818, -750, 29816, -821, 29814, -893, 29812, -964, 29809, -1035,
29807, -1106, 29804, -1177, 29801, -1249, 29797, -1320, 29795, -1392,
29791, -1463, 29787, -1535, 29784, -1606, 29780, -1678, 29776, -1749,
29771, -1820, 29767, -1892, 29763, -1963, 29758, -2035, 29753, -2106,
29748, -2177, 29742, -2249, 29737, -2320, 29731, -2391, 29726, -2462,
29719, -2534, 29713, -2605, 29707, -2676, 29701, -2747, 29694, -2819,
29686, -2890, 29680, -2961, 29673, -3032, 29665, -3103, 29658, -3174,
29650, -3245, 29643, -3316, 29635, -3387, 29626, -3459, 29618, -3529,
29610, -3600, 29601, -3671, 29592, -3742, 29583, -3813, 29574, -3884,
29564, -3955, 29554, -4026, 29544, -4097, 29535, -4167, 29525, -4238,
29514, -4309, 29504, -4380, 29493, -4450, 29483, -4521, 29472, -4591,
29461, -4662, 29450, -4733, 29439, -4803, 29427, -4874, 29415, -4944,
29403, -5015, 29391, -5085, 29379, -5155, 29366, -5226, 29353, -5296,
29341, -5367, 29328, -5438, 29314, -5508, 29301, -5578, 29289, -5648,
29274, -5718, 29260, -5788, 29247, -5858, 29232, -5928, 29218, -5998,
29204, -6068, 29188, -6139, 29175, -6209, 29159, -6279, 29145, -6348,
29128, -6418, 29114, -6488, 29097, -6557, 29082, -6627, 29066, -6697,
29050, -6767, 29034, -6837, 29017, -6906, 29001, -6975, 28984, -7045,
28966, -7114, 28950, -7184, 28933, -7254, 28915, -7323, 28897, -7392,
28880, -7461, 28862, -7530, 28843, -7600, 28825, -7669, 28807, -7738,
28788, -7806, 28769, -7875, 28751, -7944, 28732, -8014, 28712, -8082,
28692, -8151, 28672, -8219, 28653, -8289, 28633, -8357, 28613, -8425,
28593, -8494, 28572, -8563, 28551, -8632, 28531, -8700, 28510, -8768,
28488, -8837, 28468, -8905, 28447, -8973, 28425, -9041, 28403, -9109,
28381, -9177, 28359, -9245, 28336, -9313, 28315, -9381, 28292, -9448,
28269, -9517, 28246, -9584, 28223, -9652, 28200, -9720, 28176, -9787,
28153, -9854, 28129, -9922, 28105, -9990, 28082, -10056, 28057, -10124,
28032, -10191, 28009, -10258, 27984, -10326, 27959, -10392, 27934, -10460,
27909, -10526, 27883, -10593, 27858, -10661, 27832, -10727, 27807, -10794,
27780, -10860, 27754, -10927, 27728, -10993, 27701, -11059, 27676, -11126,
27648, -11192, 27622, -11259, 27595, -11324, 27567, -11391, 27540, -11456,
27512, -11523, 27484, -11588, 27456, -11655, 27429, -11720, 27401, -11786,
27372, -11852, 27344, -11917, 27315, -11982, 27286, -12049, 27257, -12114,
27229, -12179, 27199, -12244, 27169, -12309, 27140, -12375, 27110, -12439,
27080, -12505, 27050, -12570, 27019, -12634, 26990, -12699, 26958, -12764,
26928, -12828, 26897, -12892, 26866, -12956, 26835, -13021, 26804, -13086,
26773, -13149, 26741, -13214, 26709, -13278, 26677, -13342, 26645, -13406,
26613, -13470, 26581, -13534, 26549, -13597, 26515, -13661, 26483, -13725,
26450, -13788, 26417, -13851, 26384, -13915, 26350, -13978, 26316, -14041,
26283, -14103, 26248, -14166, 26215, -14229, 26180, -14292, 26146, -14355,
26112, -14417, 26077, -14480, 26042, -14543, 26008, -14605, 25972, -14667,
25937, -14730, 25901, -14792, 25866, -14854, 25830, -14916, 25794, -14977,
25759, -15039, 25723, -15101, 25687, -15162, 25650, -15224, 25613, -15286,
25577, -15347, 25540, -15408, 25503, -15470, 25465, -15531, 25428, -15592,
25391, -15653, 25353, -15714, 25315, -15774, 25277, -15834, 25240, -15895,
25201, -15956, 25162, -16016, 25124, -16076, 25086, -16136, 25047, -16196,
25008, -16256, 24969, -16316, 24930, -16375, 24891, -16436, 24851, -16496,
24811, -16555, 24772, -16615, 24732, -16674, 24692, -16732, 24652, -16791,
24612, -16852, 24572, -16911, 24531, -16969, 24490, -17027, 24449, -17086,
24408, -17145, 24367, -17203, 24325, -17261, 24284, -17320, 24242, -17379,
24200, -17436, 24158, -17494, 24116, -17552, 24075, -17610, 24032, -17668,
23990, -17725, 23947, -17782, 23904, -17840, 23862, -17897, 23819, -17954,
23775, -18011, 23732, -18068, 23689, -18125, 23645, -18181, 23602, -18238,
23558, -18294, 23514, -18351, 23470, -18407, 23426, -18464, 23381, -18520,
23337, -18576, 23293, -18632, 23248, -18688, 23202, -18743, 23158, -18799,
23112, -18854, 23068, -18910, 23022, -18964, 22977, -19020, 22931, -19074,
22885, -19129, 22839, -19185, 22793, -19239, 22747, -19294, 22700, -19348,
22655, -19403, 22607, -19457, 22561, -19511, 22514, -19565, 22467, -19619,
22421, -19673, 22373, -19726, 22326, -19780, 22279, -19834, 22230, -19887,
22183, -19940, 22135, -19993, 22087, -20047, 22039, -20099, 21991, -20152,
21942, -20205, 21894, -20257, 21845, -20309, 21797, -20362, 21748, -20413,
21699, -20466, 21650, -20518, 21601, -20570, 21551, -20621, 21502, -20674,
];
pub static GAIN_HUFFMAN_BIT_WIDTHS: [i16; 336] = [
99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
4, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 5, 7, 8, 9, 11, 11, 12, 12, 12, 12,
10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 7, 9, 11, 12, 13, 15, 15, 15, 16, 16,
12, 10, 8, 6, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4, 4, 5, 5, 7, 9, 11, 13, 14, 14,
13, 10, 9, 9, 7, 7, 5, 5, 4, 3, 3, 3, 3, 3, 4, 4, 4, 5, 7, 9, 11, 13, 13, 13,
12, 13, 10, 8, 6, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 5, 5, 6, 7, 9, 11, 14, 14,
12, 11, 9, 8, 8, 7, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5, 7, 8, 10, 13, 14, 14,
15, 16, 15, 12, 10, 8, 6, 5, 4, 3, 3, 3, 2, 3, 4, 5, 5, 7, 9, 11, 13, 16, 16, 16,
14, 14, 11, 10, 9, 7, 7, 5, 5, 4, 3, 3, 2, 3, 3, 4, 5, 7, 9, 9, 12, 14, 15, 15,
9, 9, 9, 8, 7, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 13,
14, 12, 10, 8, 6, 6, 5, 4, 3, 3, 3, 3, 3, 3, 4, 5, 6, 8, 8, 9, 11, 14, 14, 14,
13, 10, 9, 8, 6, 6, 5, 4, 4, 4, 3, 3, 2, 3, 4, 5, 6, 8, 9, 9, 11, 12, 14, 14,
16, 13, 12, 11, 9, 6, 5, 5, 4, 4, 4, 3, 2, 3, 3, 4, 5, 7, 8, 10, 14, 16, 16, 16,
13, 14, 14, 14, 10, 8, 7, 7, 5, 4, 3, 3, 2, 3, 3, 4, 5, 5, 7, 9, 11, 14, 14, 14,
];
pub static GAIN_HUFFMAN_CODES: [i16; 336] = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 38, 18, 10, 7, 6, 3, 2, 0, 1, 7, 6, 5, 4, 11, 78, 158, 318, 1278, 1279, 2552, 2553, 2554, 2555,
36, 8, 3, 5, 0, 1, 7, 6, 4, 3, 2, 5, 3, 4, 5, 19, 74, 150, 302, 1213, 1214, 1215, 2424, 2425,
2582, 644, 160, 41, 5, 11, 7, 5, 4, 1, 0, 6, 4, 7, 3, 6, 4, 21, 81, 323, 1290, 5167, 10332, 10333,
2940, 366, 181, 180, 47, 46, 27, 10, 8, 5, 1, 0, 3, 7, 4, 9, 12, 26, 44, 182, 734, 2941, 2942, 2943,
3982, 7967, 994, 249, 63, 26, 19, 18, 14, 8, 6, 1, 0, 2, 5, 7, 12, 30, 27, 125, 496, 1990, 15932, 15933,
3254, 1626, 407, 206, 202, 100, 30, 14, 3, 5, 3, 0, 2, 4, 2, 13, 24, 31, 102, 207, 812, 6511, 13020, 13021,
1110, 2216, 1111, 139, 35, 9, 3, 20, 11, 4, 2, 1, 3, 3, 1, 0, 21, 5, 16, 68, 276, 2217, 2218, 2219,
1013, 1014, 127, 62, 29, 6, 4, 16, 0, 1, 3, 2, 3, 1, 5, 9, 17, 5, 28, 30, 252, 1015, 2024, 2025,
381, 380, 372, 191, 94, 44, 16, 10, 7, 3, 1, 0, 2, 6, 9, 17, 45, 92, 187, 746, 1494, 2991, 5980, 5981,
3036, 758, 188, 45, 43, 10, 4, 3, 6, 4, 2, 0, 3, 7, 11, 20, 42, 44, 46, 95, 378, 3037, 3038, 3039,
751, 92, 45, 20, 26, 4, 12, 7, 4, 0, 4, 1, 3, 5, 5, 3, 27, 21, 44, 47, 186, 374, 1500, 1501,
-19964, 5697, 2849, 1425, 357, 45, 23, 6, 10, 7, 2, 2, 3, 0, 4, 6, 7, 88, 179, 713, 11392, -19963, -19962, -19961,
2511, 5016, 5018, 5017, 312, 79, 38, 36, 30, 14, 6, 0, 2, 1, 3, 5, 8, 31, 37, 157, 626, 5019, 5020, 5021,
];
pub static ANALYSIS_WINDOW: [i16; 320] = [
44, 134, 224, 314, 404, 494, 584, 674, 764, 853,
943, 1033, 1123, 1213, 1302, 1392, 1482, 1571, 1661, 1750,
1840, 1929, 2019, 2108, 2197, 2286, 2376, 2465, 2554, 2643,
2732, 2821, 2909, 2998, 3087, 3175, 3264, 3352, 3441, 3529,
3617, 3705, 3793, 3881, 3969, 4057, 4144, 4232, 4319, 4407,
4494, 4581, 4668, 4755, 4842, 4928, 5015, 5101, 5188, 5274,
5360, 5446, 5532, 5617, 5703, 5788, 5873, 5959, 6043, 6128,
6213, 6297, 6382, 6466, 6550, 6634, 6718, 6801, 6885, 6968,
7051, 7134, 7217, 7299, 7382, 7464, 7546, 7628, 7709, 7791,
7872, 7953, 8034, 8115, 8195, 8276, 8356, 8436, 8515, 8595,
8674, 8753, 8832, 8911, 8989, 9068, 9146, 9223, 9301, 9378,
9455, 9532, 9609, 9685, 9762, 9838, 9913, 9989, 10064, 10139,
10214, 10288, 10363, 10437, 10510, 10584, 10657, 10730, 10803, 10875,
10948, 11020, 11091, 11163, 11234, 11305, 11375, 11446, 11516, 11586,
11655, 11724, 11793, 11862, 11930, 11998, 12066, 12134, 12201, 12268,
12334, 12401, 12467, 12532, 12598, 12663, 12728, 12792, 12857, 12920,
12984, 13047, 13110, 13173, 13235, 13297, 13359, 13420, 13481, 13542,
13602, 13662, 13722, 13782, 13841, 13899, 13958, 14016, 14074, 14131,
14188, 14245, 14301, 14357, 14413, 14468, 14523, 14578, 14632, 14686,
14739, 14793, 14845, 14898, 14950, 15002, 15053, 15104, 15155, 15205,
15255, 15305, 15354, 15403, 15451, 15500, 15547, 15595, 15642, 15688,
15734, 15780, 15826, 15871, 15916, 15960, 16004, 16047, 16091, 16133,
16176, 16218, 16259, 16300, 16341, 16382, 16422, 16461, 16501, 16540,
16578, 16616, 16654, 16691, 16728, 16764, 16800, 16836, 16871, 16906,
16940, 16974, 17008, 17041, 17074, 17106, 17138, 17170, 17201, 17232,
17262, 17292, 17321, 17350, 17379, 17407, 17435, 17462, 17489, 17516,
17542, 17567, 17593, 17617, 17642, 17666, 17689, 17713, 17735, 17758,
17779, 17801, 17822, 17842, 17863, 17882, 17901, 17920, 17939, 17957,
17974, 17991, 18008, 18024, 18040, 18055, 18070, 18085, 18099, 18113,
18126, 18139, 18151, 18163, 18174, 18185, 18196, 18206, 18216, 18225,
18234, 18242, 18250, 18257, 18265, 18271, 18277, 18283, 18288, 18293,
18298, 18302, 18305, 18308, 18311, 18313, 18315, 18316, 18317, 18317,
];
pub static QUANT_SCALE_FACTOR: [i16; 8] = [
23167, 16384, 11585, 8192, 5793, 4096, 2896, 2896,
];
pub static QUANT_SCALE_BY_GAIN: [i16; 64] = [
32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
32767, 23170, 16384, 11585, 8192, 5793, 4096, 2896,
2048, 1448, 1024, 724, 512, 362, 256, 181,
128, 91, 64, 45, 32, 23, 16, 11,
8, 6, 4, 3, 2, 1, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0,
];
pub static QUANT_ROUNDING: [i16; 8] = [
2457, 2703, 2949, 3195, 3440, 3686, 4096, 4096,
];
pub static FWD_CODEBOOK_CODES_0: [i16; 196] = [
1, 2, 1, 24, 14, 51, 9, 68, 110, 26, 218, 54, 154, 761, 3, 10,
22, 8, 58, 22, 71, 16, 30, 50, 213, 75, 94, 632, 15, 18, 52, 23,
107, 5, 54, 63, 239, 46, 276, 271, 851, 252, 28, 10, 12, 1, 22, 133,
191, 55, 105, 278, 317, 554, 310, 276, 32, 50, 94, 20, 187, 219, 13, 268,
473, 445, 145, 849, 1277, 623, 1, 14, 0, 55, 238, 121, 120, 269, 318, 530,
639, 1117, 509, 556, 24, 78, 51, 153, 62, 308, 16, 25, 68, 1058, 428, 277,
2233, 1114, 92, 108, 141, 223, 270, 381, 24, 212, 760, 35, 1063, 279, 1717, 3439,
7, 21, 152, 73, 309, 310, 95, 944, 1890, 2232, 1891, 5107, 10213, 4981, 61, 62,
9, 79, 474, 475, 848, 1059, 1056, 1716, 139, 4978, 4983, 4983, 140, 186, 76, 444,
144, 633, 1057, 838, 2237, 4472, 4473, 10212, 10212, 4983, 74, 78, 311, 213, 850, 1062,
1119, 508, 276, 277, 4982, 4473, 10212, 10212, 208, 70, 555, 418, 68, 510, 2552, 1115,
4980, 4979, 4982, 4982, 4473, 10212, 215, 71, 253, 511, 839, 1718, 2488, 6876, 6877, 4979,
4979, 4982, 4982, 4473,
];
pub static FWD_CODEBOOK_CODES_1: [i16; 100] = [
1, 2, 11, 27, 31, 9, 120, 31, 275, 310, 1, 0, 12, 5, 33, 54,
102, 111, 246, 448, 10, 14, 31, 39, 59, 100, 114, 202, 485, 969, 24, 26,
36, 52, 103, 30, 120, 242, 69, 1244, 35, 32, 14, 61, 113, 117, 233, 486,
487, 2491, 13, 12, 69, 110, 149, 35, 495, 449, 1978, 7751, 76, 75, 122, 136,
213, 68, 623, 930, 3959, 9961, 115, 16, 107, 225, 424, 850, 1936, 7916, 4981, 4981,
148, 154, 243, 407, 988, 851, 7750, 19920, 7916, 4981, 406, 274, 464, 931, 3874, 7917,
19921, 19920, 19920, 7916,
];
pub static FWD_CODEBOOK_CODES_2: [i16; 49] = [
1, 0, 10, 11, 28, 62, 363, 3, 2, 9, 8, 24, 53, 352, 7, 8,
13, 25, 89, 74, 355, 10, 23, 24, 29, 55, 354, 1449, 25, 19, 30, 52,
108, 438, 5793, 91, 36, 63, 353, 725, 11584, 23170, 180, 75, 218, 439, 2897, 23171,
11584,
];
pub static FWD_CODEBOOK_CODES_3: [i16; 625] = [
3, 8, 46, 145, 228, 4, 8, 47, 28, 455, 89, 2, 180, 5, 1335, 250, 12, 644, 1311, 139, 729, 251, 870, 2172, 2211,
5, 23, 112, 334, 1469, 21, 3, 5, 111, 2014, 88, 79, 152, 124, 2685, 297, 48, 110, 1310, 149, 501, 1231, 153, 2267, 2569,
57, 13, 653, 2587, 143, 75, 124, 118, 2611, 5242, 61, 50, 253, 3633, 2216, 476, 39, 57, 1926, 2236, 2586, 1329, 1920, 2566, 1926,
296, 233, 2590, 2240, 2217, 253, 613, 867, 144, 318, 614, 252, 2589, 2242, 2218, 872, 866, 2187, 2296, 2155, 2568, 2227, 150, 2567, 2296,
199, 2686, 2160, 2290, 19145, 232, 2680, 128, 2192, 2212, 2684, 793, 2281, 2223, 2242, 1934, 2165, 2146, 2291, 2296, 2222, 2189, 2187, 2296, 2296,
6, 4, 82, 725, 3632, 15, 21, 56, 599, 148, 3, 162, 42, 411, 2301, 735, 654, 930, 137, 2586, 869, 1334, 1931, 2300, 2213,
9, 22, 146, 1290, 5240, 5, 12, 53, 630, 875, 80, 9, 8, 86, 2002, 210, 117, 56, 2019, 2162, 146, 397, 868, 131, 2151,
77, 160, 365, 2610, 2252, 59, 54, 41, 2591, 1928, 226, 14, 121, 5792, 2295, 1197, 728, 408, 130, 2157, 3635, 155, 2573, 2587, 130,
314, 64, 144, 2173, 2176, 115, 30, 409, 153, 2590, 631, 26, 4787, 2221, 2174, 2683, 1863, 2572, 319, 2150, 2177, 2194, 2571, 2257, 319,
65, 145, 2251, 2156, 2161, 909, 864, 2193, 2197, 2246, 2588, 5797, 156, 2258, 2221, 2158, 2199, 2214, 2152, 319, 2188, 2264, 2572, 319, 319,
30, 117, 219, 865, 2263, 147, 127, 239, 410, 2247, 27, 324, 1468, 2681, 2180, 1328, 5241, 147, 142, 2237, 2241, 2245, 1921, 2262, 142,
41, 11, 505, 2682, 2591, 0, 26, 229, 2015, 2577, 464, 98, 87, 5243, 2166, 149, 2016, 5244, 2190, 2198, 9573, 11598, 11599, 2235, 2190,
144, 298, 1004, 5245, 2277, 156, 104, 254, 2560, 1922, 612, 325, 2017, 129, 2588, 2608, 1330, 871, 2144, 2145, 132, 2147, 2148, 2149, 2144,
119, 1331, 133, 2153, 2154, 211, 58, 2609, 1923, 2159, 510, 163, 5246, 2163, 2164, 1924, 134, 2167, 2168, 2168, 2169, 2170, 2171, 2168, 2168,
1332, 135, 136, 2175, 2153, 150, 873, 2178, 2179, 1923, 1925, 2181, 2182, 2183, 2163, 2184, 2185, 2186, 2168, 2168, 1924, 134, 2167, 2168, 2168,
58, 326, 2687, 138, 2191, 31, 66, 874, 2195, 2196, 151, 152, 1927, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2205,
55, 103, 1230, 140, 2215, 118, 15, 1333, 2219, 2220, 2018, 511, 141, 2224, 2225, 2226, 1929, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2229,
366, 1005, 1930, 2238, 2239, 12, 1006, 5247, 2243, 2244, 1932, 3634, 1933, 2248, 2249, 2250, 145, 146, 2253, 2253, 2254, 2255, 2256, 2253, 2253,
1291, 5793, 2259, 2260, 2261, 477, 5794, 147, 2265, 2266, 5795, 2268, 2269, 2270, 2270, 2271, 2272, 2273, 2274, 2274, 2275, 2276, 2273, 2274, 2274,
148, 2278, 2279, 2280, 2260, 1935, 2282, 2283, 2284, 2265, 2285, 2286, 2287, 2270, 2270, 2288, 2289, 2273, 2274, 2274, 2271, 2272, 2273, 2274, 2274,
233, 5796, 2292, 2293, 2294, 1292, 3724, 2297, 2298, 2299, 2000, 151, 2302, 2303, 2200, 152, 2561, 2562, 2563, 2205, 2564, 2565, 2204, 2205, 2205,
363, 154, 154, 155, 2570, 59, 3725, 2001, 2574, 2575, 2576, 157, 2578, 2579, 2224, 2580, 2581, 2582, 2583, 2229, 2584, 2585, 2228, 2229, 2229,
654, 5798, 158, 2589, 2238, 2392, 2003, 2592, 2593, 2243, 2594, 2595, 2596, 2597, 2248, 2598, 2599, 2600, 2253, 2253, 2250, 145, 146, 2253, 2253,
2601, 2602, 2603, 2604, 2260, 2605, 2606, 2607, 6336, 2265, 6337, 6338, 6339, 2270, 2270, 6340, 6341, 2273, 2274, 2274, 2271, 2272, 2273, 2274, 2274,
6342, 6343, 2259, 2260, 2260, -27248, -27247, 147, 2265, 2265, 5795, 2268, 2269, 2270, 2270, 2271, 2272, 2273, 2274, 2274, 2271, 2272, 2273, 2274, 2274,
];
pub static FWD_CODEBOOK_CODES_4: [i16; 256] = [
1, 2, 4, 572, 10, 0, 69, 712, 91, 10, 46, 9182, 1426, 1430, 30172, 30194,
9, 28, 22, 2258, 16, 25, 142, 2179, 15, 111, 719, 1521, 1131, 1437, 1520, 30196,
88, 283, 3803, 30193, 13, 236, 2856, 30166, 545, 951, 5709, 1522, 3241, 9180, 30179, 5709,
1088, 4356, 30410, 30175, 1146, 377, 30162, 30163, 8715, 30176, 30165, 5709, 30197, 30184, 5709, 5709,
1, 23, 28, 5710, 26, 14, 29, 7538, 102, 103, 1429, 1524, 3237, 7060, 30401, 30201,
15, 13, 470, 3768, 24, 15, 281, 5747, 24, 181, 1128, 30206, 5711, 3531, 30156, 30158,
116, 100, 2260, 30187, 119, 234, 1764, 30171, 716, 883, 9183, 30164, 3236, 1528, 30180, 9183,
885, 2870, 1532, 30160, 1431, 5708, 30192, 30205, 30402, 30168, 30173, 9183, 30157, 30161, 9183, 9183,
54, 25, 1621, 15211, 180, 287, 2261, 30198, 808, 811, 30411, 30413, 30414, 22986, 22987, 30411,
24, 273, 376, 30159, 137, 280, 2871, 1523, 1768, 2259, 1525, 30167, 1526, 30169, 30170, 1525,
443, 1434, 1527, 30174, 474, 1769, 30177, 30178, 3238, 3239, 30181, 30181, 30182, 30183, 30181, 30181,
3240, 30185, 30186, 1527, 9181, 30188, 30189, 30177, 30190, 30191, 30181, 30181, 3238, 3239, 30181, 30181,
440, 2857, 1529, 30195, 2294, 7061, 1530, 30199, 30200, 1531, 30202, 30411, 30203, 30204, 30411, 30411,
203, 2872, 30207, 30400, 189, 11492, 30403, 30404, 30405, 30406, 30407, 1525, 30408, 30409, 1525, 1525,
8714, 1533, 30412, 1527, 1534, 1535, 30415, 30177, 30416, 30417, 30181, 30181, 3238, 3239, 30181, 30181,
30418, 30419, 1527, 1527, 30420, 30421, 30177, 30177, 3238, 3239, 30181, 30181, 3238, 3239, 30181, 30181,
];
pub static FWD_CODEBOOK_CODES_5: [i16; 243] = [
0, 5, 220, 10, 16, 443, 390, 391, 14333, 11, 26, 1566, 26, 54, 3135, 508,
1558, 28581, 255, 1782, 28599, 885, 6208, 28578, 14335, 28579, 54, 9, 35, 3129, 27, 68,
3537, 1562, 3568, 28610, 25, 62, 4078, 58, 118, 7763, 3107, 7758, 28563, 778, 3131, 28598,
780, 7123, 28630, 28593, 28586, 118, 243, 6210, 28614, 1018, 3567, 28601, 28611, 28570, 68, 388,
6256, 28619, 1559, 28562, 28606, 28565, 28591, 118, 28594, 28571, 62, 28618, 28590, 118, 58, 118,
118, 4, 28, 1781, 31, 60, 3134, 1938, 3882, 28574, 25, 96, 7757, 49, 126, 14244,
3883, 14334, 28613, 1769, 4077, 28602, 3106, 7756, 28582, 28621, 28566, 126, 14, 61, 4079, 61,
138, 28491, 3536, 8153, 28573, 49, 96, 12442, 119, 240, 28490, 12443, 28560, 28561, 3111, 3580,
28564, 3130, 7759, 28567, 28568, 28569, 240, 444, 6209, 28572, 3569, 6211, 28575, 28576, 28577, 138,
778, 7760, 28580, 7761, 7762, 28583, 28584, 28585, 240, 14319, 28587, 96, 28588, 28589, 240, 119,
240, 240, 139, 968, 28592, 1554, 3581, 28595, 28596, 28597, 60, 971, 3560, 28600, 3582, 7132,
28603, 28604, 28605, 126, 14332, 28607, 96, 28608, 28609, 126, 49, 126, 126, 241, 1558, 28612,
1563, 6257, 28615, 28616, 28617, 138, 1559, 7133, 28620, 6220, 28622, 28623, 28624, 28625, 240, 28626,
28627, 96, 28628, 28629, 240, 119, 240, 240, 8152, 28631, 61, 28632, 28633, 138, 61, 138,
138, 28634, 28635, 96, 28636, 28637, 240, 119, 240, 240, 49, 96, 96, 119, 240, 240,
119, 240, 240,
];
pub static FWD_CODEBOOK_CODES_6: [i16; 32] = [
1, 2, 4, 2, 5, 29, 24, 101, 3, 31, 28, 105, 3, 5, 102, 424,
1, 30, 0, 107, 27, 200, 103, 806, 1, 4, 104, 402, 3, 425, 213, 807,
];
pub static FWD_CODEBOOK_WIDTHS_0: [i16; 196] = [
1, 4, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 11, 11, 4, 5,
6, 7, 7, 8, 8, 9, 9, 9, 9, 10, 11, 11, 5, 6, 7, 8,
8, 9, 9, 9, 9, 10, 10, 10, 11, 12, 6, 7, 8, 9, 9, 9,
9, 10, 10, 10, 10, 11, 12, 13, 7, 7, 8, 9, 9, 9, 10, 10,
10, 10, 11, 11, 12, 13, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11,
11, 12, 13, 14, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13,
13, 15, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13, 14, 15,
9, 9, 9, 10, 10, 10, 11, 11, 12, 13, 12, 14, 15, 16, 9, 9,
10, 10, 10, 10, 11, 12, 12, 14, 14, 16, 16, 16, 9, 9, 10, 10,
11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 10, 10, 10, 11, 11, 12,
12, 13, 15, 15, 16, 14, 15, 15, 11, 11, 11, 12, 13, 13, 13, 15,
16, 16, 16, 16, 14, 15, 11, 11, 12, 13, 13, 14, 15, 16, 16, 16,
16, 16, 16, 14,
];
pub static FWD_CODEBOOK_WIDTHS_1: [i16; 100] = [
1, 4, 5, 6, 7, 8, 8, 9, 10, 10, 4, 5, 6, 7, 7, 8,
8, 9, 9, 11, 5, 5, 6, 7, 8, 8, 9, 9, 10, 11, 6, 6,
7, 8, 8, 9, 9, 10, 11, 12, 7, 7, 8, 8, 9, 9, 10, 11,
11, 13, 8, 8, 8, 9, 9, 10, 10, 11, 12, 14, 8, 8, 8, 9,
10, 11, 11, 12, 13, 15, 9, 9, 9, 10, 11, 12, 12, 14, 14, 14,
9, 9, 9, 10, 11, 12, 14, 16, 14, 14, 10, 10, 11, 12, 13, 14,
16, 16, 16, 14,
];
pub static FWD_CODEBOOK_WIDTHS_2: [i16; 49] = [
1, 4, 5, 7, 8, 9, 10, 3, 4, 5, 7, 8, 9, 10, 5, 5,
6, 7, 8, 10, 10, 7, 6, 7, 8, 9, 10, 12, 8, 8, 8, 9,
10, 12, 14, 8, 9, 9, 10, 11, 15, 16, 9, 10, 11, 12, 13, 16,
15,
];
pub static FWD_CODEBOOK_WIDTHS_3: [i16; 625] = [
2, 4, 6, 8, 10, 5, 5, 6, 8, 10, 7, 8, 8, 10, 12, 9, 9, 10, 12, 15, 10, 11, 13, 16, 16,
5, 6, 8, 10, 11, 5, 6, 8, 10, 12, 7, 7, 8, 10, 13, 9, 9, 10, 12, 15, 12, 11, 13, 16, 16,
7, 9, 10, 12, 15, 7, 8, 10, 12, 13, 9, 9, 11, 13, 16, 11, 11, 12, 14, 16, 12, 12, 14, 16, 14,
9, 11, 12, 16, 16, 9, 10, 13, 15, 16, 10, 11, 12, 16, 16, 13, 13, 16, 16, 16, 16, 16, 15, 16, 16,
11, 13, 16, 16, 15, 11, 13, 15, 16, 16, 13, 13, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16,
4, 6, 8, 10, 13, 6, 6, 8, 10, 13, 9, 8, 10, 12, 16, 10, 10, 11, 15, 16, 13, 12, 14, 16, 16,
5, 6, 8, 11, 13, 6, 6, 8, 10, 13, 8, 8, 9, 11, 14, 10, 10, 12, 12, 16, 13, 12, 13, 15, 16,
7, 8, 9, 12, 16, 7, 8, 10, 12, 14, 9, 9, 10, 13, 16, 11, 10, 12, 15, 16, 13, 13, 16, 16, 15,
9, 11, 13, 16, 16, 9, 10, 12, 15, 16, 10, 11, 13, 16, 16, 13, 12, 16, 16, 16, 16, 16, 16, 16, 16,
11, 13, 16, 16, 16, 11, 13, 16, 16, 16, 12, 13, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
6, 8, 11, 13, 16, 8, 8, 10, 12, 16, 11, 10, 11, 13, 16, 12, 13, 13, 15, 16, 16, 16, 14, 16, 15,
6, 8, 10, 13, 16, 8, 8, 10, 12, 16, 10, 10, 11, 13, 16, 13, 12, 13, 16, 16, 14, 14, 14, 16, 16,
8, 9, 11, 13, 16, 8, 9, 11, 16, 14, 10, 10, 12, 15, 16, 12, 12, 13, 16, 16, 15, 16, 16, 16, 16,
10, 12, 15, 16, 16, 10, 12, 12, 14, 16, 12, 12, 13, 16, 16, 14, 15, 16, 16, 16, 16, 16, 16, 16, 16,
12, 15, 15, 16, 16, 13, 13, 16, 16, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 15, 16, 16, 16,
8, 10, 13, 15, 16, 10, 11, 13, 16, 16, 13, 13, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
8, 10, 11, 15, 16, 9, 10, 12, 16, 16, 12, 12, 15, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16,
9, 11, 14, 16, 16, 10, 11, 13, 16, 16, 14, 13, 14, 16, 16, 16, 15, 15, 16, 16, 16, 16, 16, 16, 16,
11, 13, 16, 16, 16, 11, 13, 15, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
15, 16, 16, 16, 16, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
9, 13, 16, 16, 16, 11, 13, 16, 16, 16, 14, 15, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
9, 13, 15, 15, 16, 12, 13, 14, 16, 16, 16, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
11, 13, 15, 16, 16, 12, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 15, 16, 16, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
];
pub static FWD_CODEBOOK_WIDTHS_4: [i16; 256] = [
2, 4, 7, 10, 4, 5, 7, 10, 7, 8, 10, 14, 11, 11, 15, 15,
4, 5, 9, 12, 5, 5, 8, 12, 8, 7, 10, 15, 11, 11, 15, 15,
7, 9, 12, 15, 8, 8, 12, 15, 10, 10, 13, 15, 14, 14, 15, 13,
11, 13, 15, 15, 11, 13, 15, 15, 14, 15, 15, 13, 15, 15, 13, 13,
4, 5, 9, 13, 5, 6, 9, 13, 9, 9, 11, 15, 14, 13, 15, 15,
4, 6, 9, 12, 5, 6, 9, 13, 9, 8, 11, 15, 13, 12, 15, 15,
7, 9, 12, 15, 7, 8, 11, 15, 10, 10, 14, 15, 14, 15, 15, 14,
10, 12, 15, 15, 11, 13, 15, 15, 15, 15, 15, 14, 15, 15, 14, 14,
6, 9, 13, 14, 8, 9, 12, 15, 12, 12, 15, 15, 15, 15, 15, 15,
7, 9, 13, 15, 8, 9, 12, 15, 11, 12, 15, 15, 15, 15, 15, 15,
9, 11, 15, 15, 9, 11, 15, 15, 14, 14, 15, 15, 15, 15, 15, 15,
14, 15, 15, 15, 14, 15, 15, 15, 15, 15, 15, 15, 14, 14, 15, 15,
9, 12, 15, 15, 12, 13, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
10, 12, 15, 15, 12, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 15, 15, 14, 14, 15, 15,
];
pub static FWD_CODEBOOK_WIDTHS_5: [i16; 243] = [
2, 4, 8, 4, 5, 9, 9, 10, 14, 4, 6, 11, 5, 6, 12, 10,
11, 15, 9, 11, 15, 10, 13, 15, 14, 15, 6, 4, 6, 12, 6, 7,
12, 12, 12, 15, 5, 7, 13, 6, 7, 13, 12, 13, 15, 10, 12, 15,
11, 13, 15, 15, 15, 7, 8, 13, 15, 11, 12, 15, 15, 15, 7, 10,
13, 15, 12, 15, 15, 15, 15, 7, 15, 15, 7, 15, 15, 7, 6, 7,
7, 4, 5, 11, 5, 7, 12, 11, 12, 15, 6, 7, 13, 7, 8, 14,
12, 14, 15, 11, 13, 15, 12, 13, 15, 15, 15, 8, 5, 6, 13, 7,
8, 15, 12, 14, 15, 6, 8, 14, 7, 8, 15, 14, 15, 15, 12, 12,
15, 12, 13, 15, 15, 15, 8, 9, 13, 15, 12, 13, 15, 15, 15, 8,
11, 13, 15, 13, 13, 15, 15, 15, 8, 14, 15, 8, 15, 15, 8, 7,
8, 8, 8, 10, 15, 11, 12, 15, 15, 15, 7, 10, 12, 15, 12, 13,
15, 15, 15, 8, 14, 15, 7, 15, 15, 8, 7, 8, 8, 8, 12, 15,
12, 13, 15, 15, 15, 8, 11, 13, 15, 13, 15, 15, 15, 15, 8, 15,
15, 8, 15, 15, 8, 7, 8, 8, 14, 15, 6, 15, 15, 8, 7, 8,
8, 15, 15, 8, 15, 15, 8, 7, 8, 8, 6, 8, 8, 7, 8, 8,
7, 8, 8,
];
pub static FWD_CODEBOOK_WIDTHS_6: [i16; 32] = [
1, 4, 4, 6, 4, 6, 6, 8, 4, 6, 6, 8, 6, 9, 8, 10,
4, 6, 7, 8, 6, 9, 8, 11, 6, 9, 8, 10, 8, 10, 9, 11,
];