/* Copyright (c) 2026 Lynne */ /* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* This file is grid-generated. Do not edit. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "celt_tx_tables.h" #if defined(NEED_CELT_TX_TABLES) typedef kiss_fft_cpx cpx; const opus_int16 celt_tx_mdct_map_120[120] = { 80, 40, 0, 56, 32, 8, 104, 16, 112, 88, 64, 96, 72, 48, 24, 110, 70, 30, 86, 62, 38, 14, 46, 22, 118, 94, 6, 102, 78, 54, 20, 100, 60, 116, 92, 68, 44, 76, 52, 28, 4, 36, 12, 108, 84, 50, 10, 90, 26, 2, 98, 74, 106, 82, 58, 34, 66, 42, 18, 114, 2, 49, 40, 26, 5, 46, 42, 21, 7, 58, 30, 23, 14, 48, 39, 17, 4, 55, 41, 20, 1, 57, 36, 22, 13, 45, 38, 29, 3, 54, 32, 19, 10, 56, 35, 16, 12, 51, 37, 28, 0, 53, 44, 18, 9, 47, 34, 25, 11, 50, 31, 27, 6, 52, 43, 15, 8, 59, 33, 24, }; const opus_int16 celt_tx_pfa_map_60[60] = { 0, 5, 10, 15, 16, 21, 26, 31, 32, 37, 42, 47, 48, 53, 58, 3, 4, 9, 14, 19, 20, 25, 30, 35, 36, 41, 46, 51, 52, 57, 2, 7, 8, 13, 18, 23, 24, 29, 34, 39, 40, 45, 50, 55, 56, 1, 6, 11, 12, 17, 22, 27, 28, 33, 38, 43, 44, 49, 54, 59, }; const opus_int16 celt_tx_p2_map_4[4] = { 0, 3, 2, 1, }; const opus_int16 celt_tx_mdct_map_240[240] = { 160, 80, 0, 112, 64, 16, 208, 32, 224, 176, 128, 192, 144, 96, 48, 190, 110, 30, 142, 94, 46, 238, 62, 14, 206, 158, 222, 174, 126, 78, 220, 140, 60, 172, 124, 76, 28, 92, 44, 236, 188, 12, 204, 156, 108, 10, 170, 90, 202, 154, 106, 58, 122, 74, 26, 218, 42, 234, 186, 138, 40, 200, 120, 232, 184, 136, 88, 152, 104, 56, 8, 72, 24, 216, 168, 70, 230, 150, 22, 214, 166, 118, 182, 134, 86, 38, 102, 54, 6, 198, 100, 20, 180, 52, 4, 196, 148, 212, 164, 116, 68, 132, 84, 36, 228, 130, 50, 210, 82, 34, 226, 178, 2, 194, 146, 98, 162, 114, 66, 18, 2, 112, 94, 88, 70, 45, 41, 23, 5, 119, 91, 78, 72, 54, 36, 17, 7, 109, 103, 85, 60, 56, 38, 20, 14, 106, 93, 87, 69, 51, 32, 22, 4, 118, 100, 75, 71, 53, 35, 29, 1, 108, 102, 84, 66, 47, 37, 19, 13, 115, 90, 86, 68, 50, 44, 16, 3, 117, 99, 81, 62, 52, 34, 28, 10, 105, 101, 83, 65, 59, 31, 18, 12, 114, 96, 77, 67, 49, 43, 25, 0, 116, 98, 80, 74, 46, 33, 27, 9, 111, 92, 82, 64, 58, 40, 15, 11, 113, 95, 89, 61, 48, 42, 24, 6, 107, 97, 79, 73, 55, 30, 26, 8, 110, 104, 76, 63, 57, 39, 21, }; const opus_int16 celt_tx_pfa_map_120[120] = { 0, 9, 18, 27, 36, 45, 54, 63, 64, 73, 82, 91, 100, 109, 118, 7, 8, 17, 26, 35, 44, 53, 62, 71, 72, 81, 90, 99, 108, 117, 6, 15, 16, 25, 34, 43, 52, 61, 70, 79, 80, 89, 98, 107, 116, 5, 14, 23, 24, 33, 42, 51, 60, 69, 78, 87, 88, 97, 106, 115, 4, 13, 22, 31, 32, 41, 50, 59, 68, 77, 86, 95, 96, 105, 114, 3, 12, 21, 30, 39, 40, 49, 58, 67, 76, 85, 94, 103, 104, 113, 2, 11, 20, 29, 38, 47, 48, 57, 66, 75, 84, 93, 102, 111, 112, 1, 10, 19, 28, 37, 46, 55, 56, 65, 74, 83, 92, 101, 110, 119, }; const opus_int16 celt_tx_p2_map_8[8] = { 0, 3, 5, 6, 4, 7, 1, 2, }; const opus_int16 celt_tx_mdct_map_480[480] = { 320, 160, 0, 224, 128, 32, 416, 64, 448, 352, 256, 384, 288, 192, 96, 350, 190, 30, 254, 158, 62, 446, 94, 478, 382, 286, 414, 318, 222, 126, 380, 220, 60, 284, 188, 92, 476, 124, 28, 412, 316, 444, 348, 252, 156, 410, 250, 90, 314, 218, 122, 26, 154, 58, 442, 346, 474, 378, 282, 186, 440, 280, 120, 344, 248, 152, 56, 184, 88, 472, 376, 24, 408, 312, 216, 470, 310, 150, 374, 278, 182, 86, 214, 118, 22, 406, 54, 438, 342, 246, 20, 340, 180, 404, 308, 212, 116, 244, 148, 52, 436, 84, 468, 372, 276, 50, 370, 210, 434, 338, 242, 146, 274, 178, 82, 466, 114, 18, 402, 306, 80, 400, 240, 464, 368, 272, 176, 304, 208, 112, 16, 144, 48, 432, 336, 110, 430, 270, 14, 398, 302, 206, 334, 238, 142, 46, 174, 78, 462, 366, 140, 460, 300, 44, 428, 332, 236, 364, 268, 172, 76, 204, 108, 12, 396, 170, 10, 330, 74, 458, 362, 266, 394, 298, 202, 106, 234, 138, 42, 426, 200, 40, 360, 104, 8, 392, 296, 424, 328, 232, 136, 264, 168, 72, 456, 230, 70, 390, 134, 38, 422, 326, 454, 358, 262, 166, 294, 198, 102, 6, 260, 100, 420, 164, 68, 452, 356, 4, 388, 292, 196, 324, 228, 132, 36, 290, 130, 450, 194, 98, 2, 386, 34, 418, 322, 226, 354, 258, 162, 66, 2, 230, 217, 209, 184, 166, 163, 138, 130, 117, 90, 84, 71, 51, 38, 17, 5, 232, 224, 199, 181, 178, 153, 145, 132, 105, 99, 86, 66, 53, 32, 20, 7, 239, 214, 196, 193, 168, 160, 147, 120, 114, 101, 81, 68, 47, 35, 22, 14, 229, 211, 208, 183, 175, 162, 135, 129, 116, 96, 83, 62, 50, 37, 29, 4, 226, 223, 198, 190, 177, 150, 144, 131, 111, 98, 77, 65, 52, 44, 19, 1, 238, 213, 205, 192, 165, 159, 146, 126, 113, 92, 80, 67, 59, 34, 16, 13, 228, 220, 207, 180, 174, 161, 141, 128, 107, 95, 82, 74, 49, 31, 28, 3, 235, 222, 195, 189, 176, 156, 143, 122, 110, 97, 89, 64, 46, 43, 18, 10, 237, 210, 204, 191, 171, 158, 137, 125, 112, 104, 79, 61, 58, 33, 25, 12, 225, 219, 206, 186, 173, 152, 140, 127, 119, 94, 76, 73, 48, 40, 27, 0, 234, 221, 201, 188, 167, 155, 142, 134, 109, 91, 88, 63, 55, 42, 15, 9, 236, 216, 203, 182, 170, 157, 149, 124, 106, 103, 78, 70, 57, 30, 24, 11, 231, 218, 197, 185, 172, 164, 139, 121, 118, 93, 85, 72, 45, 39, 26, 6, 233, 212, 200, 187, 179, 154, 136, 133, 108, 100, 87, 60, 54, 41, 21, 8, 227, 215, 202, 194, 169, 151, 148, 123, 115, 102, 75, 69, 56, 36, 23, }; const opus_int16 celt_tx_pfa_map_240[240] = { 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 15, 16, 33, 50, 67, 84, 101, 118, 135, 152, 169, 186, 203, 220, 237, 14, 31, 32, 49, 66, 83, 100, 117, 134, 151, 168, 185, 202, 219, 236, 13, 30, 47, 48, 65, 82, 99, 116, 133, 150, 167, 184, 201, 218, 235, 12, 29, 46, 63, 64, 81, 98, 115, 132, 149, 166, 183, 200, 217, 234, 11, 28, 45, 62, 79, 80, 97, 114, 131, 148, 165, 182, 199, 216, 233, 10, 27, 44, 61, 78, 95, 96, 113, 130, 147, 164, 181, 198, 215, 232, 9, 26, 43, 60, 77, 94, 111, 112, 129, 146, 163, 180, 197, 214, 231, 8, 25, 42, 59, 76, 93, 110, 127, 128, 145, 162, 179, 196, 213, 230, 7, 24, 41, 58, 75, 92, 109, 126, 143, 144, 161, 178, 195, 212, 229, 6, 23, 40, 57, 74, 91, 108, 125, 142, 159, 160, 177, 194, 211, 228, 5, 22, 39, 56, 73, 90, 107, 124, 141, 158, 175, 176, 193, 210, 227, 4, 21, 38, 55, 72, 89, 106, 123, 140, 157, 174, 191, 192, 209, 226, 3, 20, 37, 54, 71, 88, 105, 122, 139, 156, 173, 190, 207, 208, 225, 2, 19, 36, 53, 70, 87, 104, 121, 138, 155, 172, 189, 206, 223, 224, 1, 18, 35, 52, 69, 86, 103, 120, 137, 154, 171, 188, 205, 222, 239, }; const opus_int16 celt_tx_p2_map_16[16] = { 0, 12, 3, 11, 5, 15, 6, 10, 4, 14, 7, 9, 1, 13, 2, 8, }; const opus_int16 celt_tx_mdct_map_960[960] = { 640, 320, 0, 448, 256, 64, 832, 128, 896, 704, 512, 768, 576, 384, 192, 670, 350, 30, 478, 286, 94, 862, 158, 926, 734, 542, 798, 606, 414, 222, 700, 380, 60, 508, 316, 124, 892, 188, 956, 764, 572, 828, 636, 444, 252, 730, 410, 90, 538, 346, 154, 922, 218, 26, 794, 602, 858, 666, 474, 282, 760, 440, 120, 568, 376, 184, 952, 248, 56, 824, 632, 888, 696, 504, 312, 790, 470, 150, 598, 406, 214, 22, 278, 86, 854, 662, 918, 726, 534, 342, 820, 500, 180, 628, 436, 244, 52, 308, 116, 884, 692, 948, 756, 564, 372, 850, 530, 210, 658, 466, 274, 82, 338, 146, 914, 722, 18, 786, 594, 402, 880, 560, 240, 688, 496, 304, 112, 368, 176, 944, 752, 48, 816, 624, 432, 910, 590, 270, 718, 526, 334, 142, 398, 206, 14, 782, 78, 846, 654, 462, 940, 620, 300, 748, 556, 364, 172, 428, 236, 44, 812, 108, 876, 684, 492, 10, 650, 330, 778, 586, 394, 202, 458, 266, 74, 842, 138, 906, 714, 522, 40, 680, 360, 808, 616, 424, 232, 488, 296, 104, 872, 168, 936, 744, 552, 70, 710, 390, 838, 646, 454, 262, 518, 326, 134, 902, 198, 6, 774, 582, 100, 740, 420, 868, 676, 484, 292, 548, 356, 164, 932, 228, 36, 804, 612, 130, 770, 450, 898, 706, 514, 322, 578, 386, 194, 2, 258, 66, 834, 642, 160, 800, 480, 928, 736, 544, 352, 608, 416, 224, 32, 288, 96, 864, 672, 190, 830, 510, 958, 766, 574, 382, 638, 446, 254, 62, 318, 126, 894, 702, 220, 860, 540, 28, 796, 604, 412, 668, 476, 284, 92, 348, 156, 924, 732, 250, 890, 570, 58, 826, 634, 442, 698, 506, 314, 122, 378, 186, 954, 762, 280, 920, 600, 88, 856, 664, 472, 728, 536, 344, 152, 408, 216, 24, 792, 310, 950, 630, 118, 886, 694, 502, 758, 566, 374, 182, 438, 246, 54, 822, 340, 20, 660, 148, 916, 724, 532, 788, 596, 404, 212, 468, 276, 84, 852, 370, 50, 690, 178, 946, 754, 562, 818, 626, 434, 242, 498, 306, 114, 882, 400, 80, 720, 208, 16, 784, 592, 848, 656, 464, 272, 528, 336, 144, 912, 430, 110, 750, 238, 46, 814, 622, 878, 686, 494, 302, 558, 366, 174, 942, 460, 140, 780, 268, 76, 844, 652, 908, 716, 524, 332, 588, 396, 204, 12, 490, 170, 810, 298, 106, 874, 682, 938, 746, 554, 362, 618, 426, 234, 42, 520, 200, 840, 328, 136, 904, 712, 8, 776, 584, 392, 648, 456, 264, 72, 550, 230, 870, 358, 166, 934, 742, 38, 806, 614, 422, 678, 486, 294, 102, 580, 260, 900, 388, 196, 4, 772, 68, 836, 644, 452, 708, 516, 324, 132, 610, 290, 930, 418, 226, 34, 802, 98, 866, 674, 482, 738, 546, 354, 162, 2, 235, 455, 207, 427, 165, 404, 144, 364, 116, 331, 81, 313, 53, 273, 17, 250, 470, 222, 442, 180, 419, 159, 379, 131, 346, 96, 328, 68, 288, 32, 265, 5, 237, 457, 195, 434, 174, 394, 146, 361, 111, 343, 83, 303, 47, 280, 20, 252, 472, 210, 449, 189, 409, 161, 376, 126, 358, 98, 318, 62, 295, 35, 267, 7, 225, 464, 204, 424, 176, 391, 141, 373, 113, 333, 77, 310, 50, 282, 22, 240, 479, 219, 439, 191, 406, 156, 388, 128, 348, 92, 325, 65, 297, 37, 255, 14, 234, 454, 206, 421, 171, 403, 143, 363, 107, 340, 80, 312, 52, 270, 29, 249, 469, 221, 436, 186, 418, 158, 378, 122, 355, 95, 327, 67, 285, 44, 264, 4, 236, 451, 201, 433, 173, 393, 137, 370, 110, 342, 82, 300, 59, 279, 19, 251, 466, 216, 448, 188, 408, 152, 385, 125, 357, 97, 315, 74, 294, 34, 266, 1, 231, 463, 203, 423, 167, 400, 140, 372, 112, 330, 89, 309, 49, 281, 16, 246, 478, 218, 438, 182, 415, 155, 387, 127, 345, 104, 324, 64, 296, 31, 261, 13, 233, 453, 197, 430, 170, 402, 142, 360, 119, 339, 79, 311, 46, 276, 28, 248, 468, 212, 445, 185, 417, 157, 375, 134, 354, 94, 326, 61, 291, 43, 263, 3, 227, 460, 200, 432, 172, 390, 149, 369, 109, 341, 76, 306, 58, 278, 18, 242, 475, 215, 447, 187, 405, 164, 384, 124, 356, 91, 321, 73, 293, 33, 257, 10, 230, 462, 202, 420, 179, 399, 139, 371, 106, 336, 88, 308, 48, 272, 25, 245, 477, 217, 435, 194, 414, 154, 386, 121, 351, 103, 323, 63, 287, 40, 260, 12, 232, 450, 209, 429, 169, 401, 136, 366, 118, 338, 78, 302, 55, 275, 27, 247, 465, 224, 444, 184, 416, 151, 381, 133, 353, 93, 317, 70, 290, 42, 262, 0, 239, 459, 199, 431, 166, 396, 148, 368, 108, 332, 85, 305, 57, 277, 15, 254, 474, 214, 446, 181, 411, 163, 383, 123, 347, 100, 320, 72, 292, 30, 269, 9, 229, 461, 196, 426, 178, 398, 138, 362, 115, 335, 87, 307, 45, 284, 24, 244, 476, 211, 441, 193, 413, 153, 377, 130, 350, 102, 322, 60, 299, 39, 259, 11, 226, 456, 208, 428, 168, 392, 145, 365, 117, 337, 75, 314, 54, 274, 26, 241, 471, 223, 443, 183, 407, 160, 380, 132, 352, 90, 329, 69, 289, 41, 256, 6, 238, 458, 198, 422, 175, 395, 147, 367, 105, 344, 84, 304, 56, 271, 21, 253, 473, 213, 437, 190, 410, 162, 382, 120, 359, 99, 319, 71, 286, 36, 268, 8, 228, 452, 205, 425, 177, 397, 135, 374, 114, 334, 86, 301, 51, 283, 23, 243, 467, 220, 440, 192, 412, 150, 389, 129, 349, 101, 316, 66, 298, 38, 258, }; const opus_int16 celt_tx_pfa_map_480[480] = { 0, 33, 66, 99, 132, 165, 198, 231, 264, 297, 330, 363, 396, 429, 462, 15, 48, 81, 114, 147, 180, 213, 246, 279, 312, 345, 378, 411, 444, 477, 30, 63, 64, 97, 130, 163, 196, 229, 262, 295, 328, 361, 394, 427, 460, 13, 46, 79, 112, 145, 178, 211, 244, 277, 310, 343, 376, 409, 442, 475, 28, 61, 94, 127, 128, 161, 194, 227, 260, 293, 326, 359, 392, 425, 458, 11, 44, 77, 110, 143, 176, 209, 242, 275, 308, 341, 374, 407, 440, 473, 26, 59, 92, 125, 158, 191, 192, 225, 258, 291, 324, 357, 390, 423, 456, 9, 42, 75, 108, 141, 174, 207, 240, 273, 306, 339, 372, 405, 438, 471, 24, 57, 90, 123, 156, 189, 222, 255, 256, 289, 322, 355, 388, 421, 454, 7, 40, 73, 106, 139, 172, 205, 238, 271, 304, 337, 370, 403, 436, 469, 22, 55, 88, 121, 154, 187, 220, 253, 286, 319, 320, 353, 386, 419, 452, 5, 38, 71, 104, 137, 170, 203, 236, 269, 302, 335, 368, 401, 434, 467, 20, 53, 86, 119, 152, 185, 218, 251, 284, 317, 350, 383, 384, 417, 450, 3, 36, 69, 102, 135, 168, 201, 234, 267, 300, 333, 366, 399, 432, 465, 18, 51, 84, 117, 150, 183, 216, 249, 282, 315, 348, 381, 414, 447, 448, 1, 34, 67, 100, 133, 166, 199, 232, 265, 298, 331, 364, 397, 430, 463, 16, 49, 82, 115, 148, 181, 214, 247, 280, 313, 346, 379, 412, 445, 478, 31, 32, 65, 98, 131, 164, 197, 230, 263, 296, 329, 362, 395, 428, 461, 14, 47, 80, 113, 146, 179, 212, 245, 278, 311, 344, 377, 410, 443, 476, 29, 62, 95, 96, 129, 162, 195, 228, 261, 294, 327, 360, 393, 426, 459, 12, 45, 78, 111, 144, 177, 210, 243, 276, 309, 342, 375, 408, 441, 474, 27, 60, 93, 126, 159, 160, 193, 226, 259, 292, 325, 358, 391, 424, 457, 10, 43, 76, 109, 142, 175, 208, 241, 274, 307, 340, 373, 406, 439, 472, 25, 58, 91, 124, 157, 190, 223, 224, 257, 290, 323, 356, 389, 422, 455, 8, 41, 74, 107, 140, 173, 206, 239, 272, 305, 338, 371, 404, 437, 470, 23, 56, 89, 122, 155, 188, 221, 254, 287, 288, 321, 354, 387, 420, 453, 6, 39, 72, 105, 138, 171, 204, 237, 270, 303, 336, 369, 402, 435, 468, 21, 54, 87, 120, 153, 186, 219, 252, 285, 318, 351, 352, 385, 418, 451, 4, 37, 70, 103, 136, 169, 202, 235, 268, 301, 334, 367, 400, 433, 466, 19, 52, 85, 118, 151, 184, 217, 250, 283, 316, 349, 382, 415, 416, 449, 2, 35, 68, 101, 134, 167, 200, 233, 266, 299, 332, 365, 398, 431, 464, 17, 50, 83, 116, 149, 182, 215, 248, 281, 314, 347, 380, 413, 446, 479, }; const opus_int16 celt_tx_p2_map_32[32] = { 0, 24, 12, 19, 3, 27, 11, 21, 5, 29, 15, 22, 6, 30, 10, 20, 4, 28, 14, 23, 7, 31, 9, 17, 1, 25, 13, 18, 2, 26, 8, 16, }; #ifdef ENABLE_QEXT const opus_int16 celt_tx_mdct_map_1920[1920] = { 1280, 640, 0, 896, 512, 128, 1664, 256, 1792, 1408, 1024, 1536, 1152, 768, 384, 1310, 670, 30, 926, 542, 158, 1694, 286, 1822, 1438, 1054, 1566, 1182, 798, 414, 1340, 700, 60, 956, 572, 188, 1724, 316, 1852, 1468, 1084, 1596, 1212, 828, 444, 1370, 730, 90, 986, 602, 218, 1754, 346, 1882, 1498, 1114, 1626, 1242, 858, 474, 1400, 760, 120, 1016, 632, 248, 1784, 376, 1912, 1528, 1144, 1656, 1272, 888, 504, 1430, 790, 150, 1046, 662, 278, 1814, 406, 22, 1558, 1174, 1686, 1302, 918, 534, 1460, 820, 180, 1076, 692, 308, 1844, 436, 52, 1588, 1204, 1716, 1332, 948, 564, 1490, 850, 210, 1106, 722, 338, 1874, 466, 82, 1618, 1234, 1746, 1362, 978, 594, 1520, 880, 240, 1136, 752, 368, 1904, 496, 112, 1648, 1264, 1776, 1392, 1008, 624, 1550, 910, 270, 1166, 782, 398, 14, 526, 142, 1678, 1294, 1806, 1422, 1038, 654, 1580, 940, 300, 1196, 812, 428, 44, 556, 172, 1708, 1324, 1836, 1452, 1068, 684, 1610, 970, 330, 1226, 842, 458, 74, 586, 202, 1738, 1354, 1866, 1482, 1098, 714, 1640, 1000, 360, 1256, 872, 488, 104, 616, 232, 1768, 1384, 1896, 1512, 1128, 744, 1670, 1030, 390, 1286, 902, 518, 134, 646, 262, 1798, 1414, 6, 1542, 1158, 774, 1700, 1060, 420, 1316, 932, 548, 164, 676, 292, 1828, 1444, 36, 1572, 1188, 804, 1730, 1090, 450, 1346, 962, 578, 194, 706, 322, 1858, 1474, 66, 1602, 1218, 834, 1760, 1120, 480, 1376, 992, 608, 224, 736, 352, 1888, 1504, 96, 1632, 1248, 864, 1790, 1150, 510, 1406, 1022, 638, 254, 766, 382, 1918, 1534, 126, 1662, 1278, 894, 1820, 1180, 540, 1436, 1052, 668, 284, 796, 412, 28, 1564, 156, 1692, 1308, 924, 1850, 1210, 570, 1466, 1082, 698, 314, 826, 442, 58, 1594, 186, 1722, 1338, 954, 1880, 1240, 600, 1496, 1112, 728, 344, 856, 472, 88, 1624, 216, 1752, 1368, 984, 1910, 1270, 630, 1526, 1142, 758, 374, 886, 502, 118, 1654, 246, 1782, 1398, 1014, 20, 1300, 660, 1556, 1172, 788, 404, 916, 532, 148, 1684, 276, 1812, 1428, 1044, 50, 1330, 690, 1586, 1202, 818, 434, 946, 562, 178, 1714, 306, 1842, 1458, 1074, 80, 1360, 720, 1616, 1232, 848, 464, 976, 592, 208, 1744, 336, 1872, 1488, 1104, 110, 1390, 750, 1646, 1262, 878, 494, 1006, 622, 238, 1774, 366, 1902, 1518, 1134, 140, 1420, 780, 1676, 1292, 908, 524, 1036, 652, 268, 1804, 396, 12, 1548, 1164, 170, 1450, 810, 1706, 1322, 938, 554, 1066, 682, 298, 1834, 426, 42, 1578, 1194, 200, 1480, 840, 1736, 1352, 968, 584, 1096, 712, 328, 1864, 456, 72, 1608, 1224, 230, 1510, 870, 1766, 1382, 998, 614, 1126, 742, 358, 1894, 486, 102, 1638, 1254, 260, 1540, 900, 1796, 1412, 1028, 644, 1156, 772, 388, 4, 516, 132, 1668, 1284, 290, 1570, 930, 1826, 1442, 1058, 674, 1186, 802, 418, 34, 546, 162, 1698, 1314, 320, 1600, 960, 1856, 1472, 1088, 704, 1216, 832, 448, 64, 576, 192, 1728, 1344, 350, 1630, 990, 1886, 1502, 1118, 734, 1246, 862, 478, 94, 606, 222, 1758, 1374, 380, 1660, 1020, 1916, 1532, 1148, 764, 1276, 892, 508, 124, 636, 252, 1788, 1404, 410, 1690, 1050, 26, 1562, 1178, 794, 1306, 922, 538, 154, 666, 282, 1818, 1434, 440, 1720, 1080, 56, 1592, 1208, 824, 1336, 952, 568, 184, 696, 312, 1848, 1464, 470, 1750, 1110, 86, 1622, 1238, 854, 1366, 982, 598, 214, 726, 342, 1878, 1494, 500, 1780, 1140, 116, 1652, 1268, 884, 1396, 1012, 628, 244, 756, 372, 1908, 1524, 530, 1810, 1170, 146, 1682, 1298, 914, 1426, 1042, 658, 274, 786, 402, 18, 1554, 560, 1840, 1200, 176, 1712, 1328, 944, 1456, 1072, 688, 304, 816, 432, 48, 1584, 590, 1870, 1230, 206, 1742, 1358, 974, 1486, 1102, 718, 334, 846, 462, 78, 1614, 620, 1900, 1260, 236, 1772, 1388, 1004, 1516, 1132, 748, 364, 876, 492, 108, 1644, 650, 10, 1290, 266, 1802, 1418, 1034, 1546, 1162, 778, 394, 906, 522, 138, 1674, 680, 40, 1320, 296, 1832, 1448, 1064, 1576, 1192, 808, 424, 936, 552, 168, 1704, 710, 70, 1350, 326, 1862, 1478, 1094, 1606, 1222, 838, 454, 966, 582, 198, 1734, 740, 100, 1380, 356, 1892, 1508, 1124, 1636, 1252, 868, 484, 996, 612, 228, 1764, 770, 130, 1410, 386, 2, 1538, 1154, 1666, 1282, 898, 514, 1026, 642, 258, 1794, 800, 160, 1440, 416, 32, 1568, 1184, 1696, 1312, 928, 544, 1056, 672, 288, 1824, 830, 190, 1470, 446, 62, 1598, 1214, 1726, 1342, 958, 574, 1086, 702, 318, 1854, 860, 220, 1500, 476, 92, 1628, 1244, 1756, 1372, 988, 604, 1116, 732, 348, 1884, 890, 250, 1530, 506, 122, 1658, 1274, 1786, 1402, 1018, 634, 1146, 762, 378, 1914, 920, 280, 1560, 536, 152, 1688, 1304, 1816, 1432, 1048, 664, 1176, 792, 408, 24, 950, 310, 1590, 566, 182, 1718, 1334, 1846, 1462, 1078, 694, 1206, 822, 438, 54, 980, 340, 1620, 596, 212, 1748, 1364, 1876, 1492, 1108, 724, 1236, 852, 468, 84, 1010, 370, 1650, 626, 242, 1778, 1394, 1906, 1522, 1138, 754, 1266, 882, 498, 114, 1040, 400, 1680, 656, 272, 1808, 1424, 16, 1552, 1168, 784, 1296, 912, 528, 144, 1070, 430, 1710, 686, 302, 1838, 1454, 46, 1582, 1198, 814, 1326, 942, 558, 174, 1100, 460, 1740, 716, 332, 1868, 1484, 76, 1612, 1228, 844, 1356, 972, 588, 204, 1130, 490, 1770, 746, 362, 1898, 1514, 106, 1642, 1258, 874, 1386, 1002, 618, 234, 1160, 520, 1800, 776, 392, 8, 1544, 136, 1672, 1288, 904, 1416, 1032, 648, 264, 1190, 550, 1830, 806, 422, 38, 1574, 166, 1702, 1318, 934, 1446, 1062, 678, 294, 1220, 580, 1860, 836, 452, 68, 1604, 196, 1732, 1348, 964, 1476, 1092, 708, 324, 1250, 610, 1890, 866, 482, 98, 1634, 226, 1762, 1378, 994, 1506, 1122, 738, 354, 2, 709, 460, 206, 905, 646, 402, 141, 847, 598, 330, 83, 794, 528, 279, 17, 724, 475, 221, 920, 661, 417, 156, 862, 613, 345, 98, 809, 543, 294, 32, 739, 490, 236, 935, 676, 432, 171, 877, 628, 360, 113, 824, 558, 309, 47, 754, 505, 251, 950, 691, 447, 186, 892, 643, 375, 128, 839, 573, 324, 62, 769, 520, 266, 5, 706, 462, 201, 907, 658, 390, 143, 854, 588, 339, 77, 784, 535, 281, 20, 721, 477, 216, 922, 673, 405, 158, 869, 603, 354, 92, 799, 550, 296, 35, 736, 492, 231, 937, 688, 420, 173, 884, 618, 369, 107, 814, 565, 311, 50, 751, 507, 246, 952, 703, 435, 188, 899, 633, 384, 122, 829, 580, 326, 65, 766, 522, 261, 7, 718, 450, 203, 914, 648, 399, 137, 844, 595, 341, 80, 781, 537, 276, 22, 733, 465, 218, 929, 663, 414, 152, 859, 610, 356, 95, 796, 552, 291, 37, 748, 480, 233, 944, 678, 429, 167, 874, 625, 371, 110, 811, 567, 306, 52, 763, 495, 248, 959, 693, 444, 182, 889, 640, 386, 125, 826, 582, 321, 67, 778, 510, 263, 14, 708, 459, 197, 904, 655, 401, 140, 841, 597, 336, 82, 793, 525, 278, 29, 723, 474, 212, 919, 670, 416, 155, 856, 612, 351, 97, 808, 540, 293, 44, 738, 489, 227, 934, 685, 431, 170, 871, 627, 366, 112, 823, 555, 308, 59, 753, 504, 242, 949, 700, 446, 185, 886, 642, 381, 127, 838, 570, 323, 74, 768, 519, 257, 4, 715, 461, 200, 901, 657, 396, 142, 853, 585, 338, 89, 783, 534, 272, 19, 730, 476, 215, 916, 672, 411, 157, 868, 600, 353, 104, 798, 549, 287, 34, 745, 491, 230, 931, 687, 426, 172, 883, 615, 368, 119, 813, 564, 302, 49, 760, 506, 245, 946, 702, 441, 187, 898, 630, 383, 134, 828, 579, 317, 64, 775, 521, 260, 1, 717, 456, 202, 913, 645, 398, 149, 843, 594, 332, 79, 790, 536, 275, 16, 732, 471, 217, 928, 660, 413, 164, 858, 609, 347, 94, 805, 551, 290, 31, 747, 486, 232, 943, 675, 428, 179, 873, 624, 362, 109, 820, 566, 305, 46, 762, 501, 247, 958, 690, 443, 194, 888, 639, 377, 124, 835, 581, 320, 61, 777, 516, 262, 13, 705, 458, 209, 903, 654, 392, 139, 850, 596, 335, 76, 792, 531, 277, 28, 720, 473, 224, 918, 669, 407, 154, 865, 611, 350, 91, 807, 546, 292, 43, 735, 488, 239, 933, 684, 422, 169, 880, 626, 365, 106, 822, 561, 307, 58, 750, 503, 254, 948, 699, 437, 184, 895, 641, 380, 121, 837, 576, 322, 73, 765, 518, 269, 3, 714, 452, 199, 910, 656, 395, 136, 852, 591, 337, 88, 780, 533, 284, 18, 729, 467, 214, 925, 671, 410, 151, 867, 606, 352, 103, 795, 548, 299, 33, 744, 482, 229, 940, 686, 425, 166, 882, 621, 367, 118, 810, 563, 314, 48, 759, 497, 244, 955, 701, 440, 181, 897, 636, 382, 133, 825, 578, 329, 63, 774, 512, 259, 10, 716, 455, 196, 912, 651, 397, 148, 840, 593, 344, 78, 789, 527, 274, 25, 731, 470, 211, 927, 666, 412, 163, 855, 608, 359, 93, 804, 542, 289, 40, 746, 485, 226, 942, 681, 427, 178, 870, 623, 374, 108, 819, 557, 304, 55, 761, 500, 241, 957, 696, 442, 193, 885, 638, 389, 123, 834, 572, 319, 70, 776, 515, 256, 12, 711, 457, 208, 900, 653, 404, 138, 849, 587, 334, 85, 791, 530, 271, 27, 726, 472, 223, 915, 668, 419, 153, 864, 602, 349, 100, 806, 545, 286, 42, 741, 487, 238, 930, 683, 434, 168, 879, 617, 364, 115, 821, 560, 301, 57, 756, 502, 253, 945, 698, 449, 183, 894, 632, 379, 130, 836, 575, 316, 72, 771, 517, 268, 0, 713, 464, 198, 909, 647, 394, 145, 851, 590, 331, 87, 786, 532, 283, 15, 728, 479, 213, 924, 662, 409, 160, 866, 605, 346, 102, 801, 547, 298, 30, 743, 494, 228, 939, 677, 424, 175, 881, 620, 361, 117, 816, 562, 313, 45, 758, 509, 243, 954, 692, 439, 190, 896, 635, 376, 132, 831, 577, 328, 60, 773, 524, 258, 9, 707, 454, 205, 911, 650, 391, 147, 846, 592, 343, 75, 788, 539, 273, 24, 722, 469, 220, 926, 665, 406, 162, 861, 607, 358, 90, 803, 554, 288, 39, 737, 484, 235, 941, 680, 421, 177, 876, 622, 373, 105, 818, 569, 303, 54, 752, 499, 250, 956, 695, 436, 192, 891, 637, 388, 120, 833, 584, 318, 69, 767, 514, 265, 11, 710, 451, 207, 906, 652, 403, 135, 848, 599, 333, 84, 782, 529, 280, 26, 725, 466, 222, 921, 667, 418, 150, 863, 614, 348, 99, 797, 544, 295, 41, 740, 481, 237, 936, 682, 433, 165, 878, 629, 363, 114, 812, 559, 310, 56, 755, 496, 252, 951, 697, 448, 180, 893, 644, 378, 129, 827, 574, 325, 71, 770, 511, 267, 6, 712, 463, 195, 908, 659, 393, 144, 842, 589, 340, 86, 785, 526, 282, 21, 727, 478, 210, 923, 674, 408, 159, 857, 604, 355, 101, 800, 541, 297, 36, 742, 493, 225, 938, 689, 423, 174, 872, 619, 370, 116, 815, 556, 312, 51, 757, 508, 240, 953, 704, 438, 189, 887, 634, 385, 131, 830, 571, 327, 66, 772, 523, 255, 8, 719, 453, 204, 902, 649, 400, 146, 845, 586, 342, 81, 787, 538, 270, 23, 734, 468, 219, 917, 664, 415, 161, 860, 601, 357, 96, 802, 553, 285, 38, 749, 483, 234, 932, 679, 430, 176, 875, 616, 372, 111, 817, 568, 300, 53, 764, 498, 249, 947, 694, 445, 191, 890, 631, 387, 126, 832, 583, 315, 68, 779, 513, 264, }; const opus_int16 celt_tx_pfa_map_960[960] = { 0, 65, 130, 195, 260, 325, 390, 455, 520, 585, 650, 715, 780, 845, 910, 15, 80, 145, 210, 275, 340, 405, 470, 535, 600, 665, 730, 795, 860, 925, 30, 95, 160, 225, 290, 355, 420, 485, 550, 615, 680, 745, 810, 875, 940, 45, 110, 175, 240, 305, 370, 435, 500, 565, 630, 695, 760, 825, 890, 955, 60, 125, 190, 255, 256, 321, 386, 451, 516, 581, 646, 711, 776, 841, 906, 11, 76, 141, 206, 271, 336, 401, 466, 531, 596, 661, 726, 791, 856, 921, 26, 91, 156, 221, 286, 351, 416, 481, 546, 611, 676, 741, 806, 871, 936, 41, 106, 171, 236, 301, 366, 431, 496, 561, 626, 691, 756, 821, 886, 951, 56, 121, 186, 251, 316, 381, 446, 511, 512, 577, 642, 707, 772, 837, 902, 7, 72, 137, 202, 267, 332, 397, 462, 527, 592, 657, 722, 787, 852, 917, 22, 87, 152, 217, 282, 347, 412, 477, 542, 607, 672, 737, 802, 867, 932, 37, 102, 167, 232, 297, 362, 427, 492, 557, 622, 687, 752, 817, 882, 947, 52, 117, 182, 247, 312, 377, 442, 507, 572, 637, 702, 767, 768, 833, 898, 3, 68, 133, 198, 263, 328, 393, 458, 523, 588, 653, 718, 783, 848, 913, 18, 83, 148, 213, 278, 343, 408, 473, 538, 603, 668, 733, 798, 863, 928, 33, 98, 163, 228, 293, 358, 423, 488, 553, 618, 683, 748, 813, 878, 943, 48, 113, 178, 243, 308, 373, 438, 503, 568, 633, 698, 763, 828, 893, 958, 63, 64, 129, 194, 259, 324, 389, 454, 519, 584, 649, 714, 779, 844, 909, 14, 79, 144, 209, 274, 339, 404, 469, 534, 599, 664, 729, 794, 859, 924, 29, 94, 159, 224, 289, 354, 419, 484, 549, 614, 679, 744, 809, 874, 939, 44, 109, 174, 239, 304, 369, 434, 499, 564, 629, 694, 759, 824, 889, 954, 59, 124, 189, 254, 319, 320, 385, 450, 515, 580, 645, 710, 775, 840, 905, 10, 75, 140, 205, 270, 335, 400, 465, 530, 595, 660, 725, 790, 855, 920, 25, 90, 155, 220, 285, 350, 415, 480, 545, 610, 675, 740, 805, 870, 935, 40, 105, 170, 235, 300, 365, 430, 495, 560, 625, 690, 755, 820, 885, 950, 55, 120, 185, 250, 315, 380, 445, 510, 575, 576, 641, 706, 771, 836, 901, 6, 71, 136, 201, 266, 331, 396, 461, 526, 591, 656, 721, 786, 851, 916, 21, 86, 151, 216, 281, 346, 411, 476, 541, 606, 671, 736, 801, 866, 931, 36, 101, 166, 231, 296, 361, 426, 491, 556, 621, 686, 751, 816, 881, 946, 51, 116, 181, 246, 311, 376, 441, 506, 571, 636, 701, 766, 831, 832, 897, 2, 67, 132, 197, 262, 327, 392, 457, 522, 587, 652, 717, 782, 847, 912, 17, 82, 147, 212, 277, 342, 407, 472, 537, 602, 667, 732, 797, 862, 927, 32, 97, 162, 227, 292, 357, 422, 487, 552, 617, 682, 747, 812, 877, 942, 47, 112, 177, 242, 307, 372, 437, 502, 567, 632, 697, 762, 827, 892, 957, 62, 127, 128, 193, 258, 323, 388, 453, 518, 583, 648, 713, 778, 843, 908, 13, 78, 143, 208, 273, 338, 403, 468, 533, 598, 663, 728, 793, 858, 923, 28, 93, 158, 223, 288, 353, 418, 483, 548, 613, 678, 743, 808, 873, 938, 43, 108, 173, 238, 303, 368, 433, 498, 563, 628, 693, 758, 823, 888, 953, 58, 123, 188, 253, 318, 383, 384, 449, 514, 579, 644, 709, 774, 839, 904, 9, 74, 139, 204, 269, 334, 399, 464, 529, 594, 659, 724, 789, 854, 919, 24, 89, 154, 219, 284, 349, 414, 479, 544, 609, 674, 739, 804, 869, 934, 39, 104, 169, 234, 299, 364, 429, 494, 559, 624, 689, 754, 819, 884, 949, 54, 119, 184, 249, 314, 379, 444, 509, 574, 639, 640, 705, 770, 835, 900, 5, 70, 135, 200, 265, 330, 395, 460, 525, 590, 655, 720, 785, 850, 915, 20, 85, 150, 215, 280, 345, 410, 475, 540, 605, 670, 735, 800, 865, 930, 35, 100, 165, 230, 295, 360, 425, 490, 555, 620, 685, 750, 815, 880, 945, 50, 115, 180, 245, 310, 375, 440, 505, 570, 635, 700, 765, 830, 895, 896, 1, 66, 131, 196, 261, 326, 391, 456, 521, 586, 651, 716, 781, 846, 911, 16, 81, 146, 211, 276, 341, 406, 471, 536, 601, 666, 731, 796, 861, 926, 31, 96, 161, 226, 291, 356, 421, 486, 551, 616, 681, 746, 811, 876, 941, 46, 111, 176, 241, 306, 371, 436, 501, 566, 631, 696, 761, 826, 891, 956, 61, 126, 191, 192, 257, 322, 387, 452, 517, 582, 647, 712, 777, 842, 907, 12, 77, 142, 207, 272, 337, 402, 467, 532, 597, 662, 727, 792, 857, 922, 27, 92, 157, 222, 287, 352, 417, 482, 547, 612, 677, 742, 807, 872, 937, 42, 107, 172, 237, 302, 367, 432, 497, 562, 627, 692, 757, 822, 887, 952, 57, 122, 187, 252, 317, 382, 447, 448, 513, 578, 643, 708, 773, 838, 903, 8, 73, 138, 203, 268, 333, 398, 463, 528, 593, 658, 723, 788, 853, 918, 23, 88, 153, 218, 283, 348, 413, 478, 543, 608, 673, 738, 803, 868, 933, 38, 103, 168, 233, 298, 363, 428, 493, 558, 623, 688, 753, 818, 883, 948, 53, 118, 183, 248, 313, 378, 443, 508, 573, 638, 703, 704, 769, 834, 899, 4, 69, 134, 199, 264, 329, 394, 459, 524, 589, 654, 719, 784, 849, 914, 19, 84, 149, 214, 279, 344, 409, 474, 539, 604, 669, 734, 799, 864, 929, 34, 99, 164, 229, 294, 359, 424, 489, 554, 619, 684, 749, 814, 879, 944, 49, 114, 179, 244, 309, 374, 439, 504, 569, 634, 699, 764, 829, 894, 959, }; const opus_int16 celt_tx_p2_map_64[64] = { 0, 48, 24, 44, 12, 60, 19, 35, 3, 51, 27, 43, 11, 59, 21, 37, 5, 53, 29, 47, 15, 63, 22, 38, 6, 54, 30, 42, 10, 58, 20, 36, 4, 52, 28, 46, 14, 62, 23, 39, 7, 55, 31, 41, 9, 57, 17, 33, 1, 49, 25, 45, 13, 61, 18, 34, 2, 50, 26, 40, 8, 56, 16, 32, }; #endif #if defined(CUSTOM_MODES) const opus_int16 celt_tx_mdct_map_64[64] = { 0, 48, 56, 8, 32, 16, 24, 40, 60, 44, 28, 12, 4, 52, 36, 20, 62, 46, 54, 6, 30, 14, 22, 38, 2, 50, 58, 10, 34, 18, 26, 42, 0, 24, 12, 19, 3, 27, 11, 21, 5, 29, 15, 22, 6, 30, 10, 20, 4, 28, 14, 23, 7, 31, 9, 17, 1, 25, 13, 18, 2, 26, 8, 16, }; const opus_int16 celt_tx_mdct_map_128[128] = { 0, 96, 112, 16, 64, 32, 48, 80, 120, 88, 56, 24, 8, 104, 72, 40, 124, 92, 108, 12, 60, 28, 44, 76, 4, 100, 116, 20, 68, 36, 52, 84, 126, 94, 110, 14, 62, 30, 46, 78, 118, 86, 54, 22, 6, 102, 70, 38, 2, 98, 114, 18, 66, 34, 50, 82, 122, 90, 58, 26, 10, 106, 74, 42, 0, 48, 24, 44, 12, 60, 19, 35, 3, 51, 27, 43, 11, 59, 21, 37, 5, 53, 29, 47, 15, 63, 22, 38, 6, 54, 30, 42, 10, 58, 20, 36, 4, 52, 28, 46, 14, 62, 23, 39, 7, 55, 31, 41, 9, 57, 17, 33, 1, 49, 25, 45, 13, 61, 18, 34, 2, 50, 26, 40, 8, 56, 16, 32, }; const opus_int16 celt_tx_mdct_map_256[256] = { 0, 192, 224, 32, 128, 64, 96, 160, 240, 176, 112, 48, 16, 208, 144, 80, 248, 184, 216, 24, 120, 56, 88, 152, 8, 200, 232, 40, 136, 72, 104, 168, 252, 188, 220, 28, 124, 60, 92, 156, 236, 172, 108, 44, 12, 204, 140, 76, 4, 196, 228, 36, 132, 68, 100, 164, 244, 180, 116, 52, 20, 212, 148, 84, 254, 190, 222, 30, 126, 62, 94, 158, 238, 174, 110, 46, 14, 206, 142, 78, 246, 182, 214, 22, 118, 54, 86, 150, 6, 198, 230, 38, 134, 70, 102, 166, 2, 194, 226, 34, 130, 66, 98, 162, 242, 178, 114, 50, 18, 210, 146, 82, 250, 186, 218, 26, 122, 58, 90, 154, 10, 202, 234, 42, 138, 74, 106, 170, 0, 96, 48, 88, 24, 120, 44, 76, 12, 108, 60, 83, 19, 115, 35, 67, 3, 99, 51, 91, 27, 123, 43, 75, 11, 107, 59, 85, 21, 117, 37, 69, 5, 101, 53, 93, 29, 125, 47, 79, 15, 111, 63, 86, 22, 118, 38, 70, 6, 102, 54, 94, 30, 126, 42, 74, 10, 106, 58, 84, 20, 116, 36, 68, 4, 100, 52, 92, 28, 124, 46, 78, 14, 110, 62, 87, 23, 119, 39, 71, 7, 103, 55, 95, 31, 127, 41, 73, 9, 105, 57, 81, 17, 113, 33, 65, 1, 97, 49, 89, 25, 121, 45, 77, 13, 109, 61, 82, 18, 114, 34, 66, 2, 98, 50, 90, 26, 122, 40, 72, 8, 104, 56, 80, 16, 112, 32, 64, }; const opus_int16 celt_tx_mdct_map_512[512] = { 0, 384, 448, 64, 256, 128, 192, 320, 480, 352, 224, 96, 32, 416, 288, 160, 496, 368, 432, 48, 240, 112, 176, 304, 16, 400, 464, 80, 272, 144, 208, 336, 504, 376, 440, 56, 248, 120, 184, 312, 472, 344, 216, 88, 24, 408, 280, 152, 8, 392, 456, 72, 264, 136, 200, 328, 488, 360, 232, 104, 40, 424, 296, 168, 508, 380, 444, 60, 252, 124, 188, 316, 476, 348, 220, 92, 28, 412, 284, 156, 492, 364, 428, 44, 236, 108, 172, 300, 12, 396, 460, 76, 268, 140, 204, 332, 4, 388, 452, 68, 260, 132, 196, 324, 484, 356, 228, 100, 36, 420, 292, 164, 500, 372, 436, 52, 244, 116, 180, 308, 20, 404, 468, 84, 276, 148, 212, 340, 510, 382, 446, 62, 254, 126, 190, 318, 478, 350, 222, 94, 30, 414, 286, 158, 494, 366, 430, 46, 238, 110, 174, 302, 14, 398, 462, 78, 270, 142, 206, 334, 502, 374, 438, 54, 246, 118, 182, 310, 470, 342, 214, 86, 22, 406, 278, 150, 6, 390, 454, 70, 262, 134, 198, 326, 486, 358, 230, 102, 38, 422, 294, 166, 2, 386, 450, 66, 258, 130, 194, 322, 482, 354, 226, 98, 34, 418, 290, 162, 498, 370, 434, 50, 242, 114, 178, 306, 18, 402, 466, 82, 274, 146, 210, 338, 506, 378, 442, 58, 250, 122, 186, 314, 474, 346, 218, 90, 26, 410, 282, 154, 10, 394, 458, 74, 266, 138, 202, 330, 490, 362, 234, 106, 42, 426, 298, 170, 0, 192, 96, 176, 48, 240, 88, 152, 24, 216, 120, 172, 44, 236, 76, 140, 12, 204, 108, 188, 60, 252, 83, 147, 19, 211, 115, 163, 35, 227, 67, 131, 3, 195, 99, 179, 51, 243, 91, 155, 27, 219, 123, 171, 43, 235, 75, 139, 11, 203, 107, 187, 59, 251, 85, 149, 21, 213, 117, 165, 37, 229, 69, 133, 5, 197, 101, 181, 53, 245, 93, 157, 29, 221, 125, 175, 47, 239, 79, 143, 15, 207, 111, 191, 63, 255, 86, 150, 22, 214, 118, 166, 38, 230, 70, 134, 6, 198, 102, 182, 54, 246, 94, 158, 30, 222, 126, 170, 42, 234, 74, 138, 10, 202, 106, 186, 58, 250, 84, 148, 20, 212, 116, 164, 36, 228, 68, 132, 4, 196, 100, 180, 52, 244, 92, 156, 28, 220, 124, 174, 46, 238, 78, 142, 14, 206, 110, 190, 62, 254, 87, 151, 23, 215, 119, 167, 39, 231, 71, 135, 7, 199, 103, 183, 55, 247, 95, 159, 31, 223, 127, 169, 41, 233, 73, 137, 9, 201, 105, 185, 57, 249, 81, 145, 17, 209, 113, 161, 33, 225, 65, 129, 1, 193, 97, 177, 49, 241, 89, 153, 25, 217, 121, 173, 45, 237, 77, 141, 13, 205, 109, 189, 61, 253, 82, 146, 18, 210, 114, 162, 34, 226, 66, 130, 2, 194, 98, 178, 50, 242, 90, 154, 26, 218, 122, 168, 40, 232, 72, 136, 8, 200, 104, 184, 56, 248, 80, 144, 16, 208, 112, 160, 32, 224, 64, 128, }; const opus_int16 celt_tx_mdct_map_1024[1024] = { 0, 768, 896, 128, 512, 256, 384, 640, 960, 704, 448, 192, 64, 832, 576, 320, 992, 736, 864, 96, 480, 224, 352, 608, 32, 800, 928, 160, 544, 288, 416, 672, 1008, 752, 880, 112, 496, 240, 368, 624, 944, 688, 432, 176, 48, 816, 560, 304, 16, 784, 912, 144, 528, 272, 400, 656, 976, 720, 464, 208, 80, 848, 592, 336, 1016, 760, 888, 120, 504, 248, 376, 632, 952, 696, 440, 184, 56, 824, 568, 312, 984, 728, 856, 88, 472, 216, 344, 600, 24, 792, 920, 152, 536, 280, 408, 664, 8, 776, 904, 136, 520, 264, 392, 648, 968, 712, 456, 200, 72, 840, 584, 328, 1000, 744, 872, 104, 488, 232, 360, 616, 40, 808, 936, 168, 552, 296, 424, 680, 1020, 764, 892, 124, 508, 252, 380, 636, 956, 700, 444, 188, 60, 828, 572, 316, 988, 732, 860, 92, 476, 220, 348, 604, 28, 796, 924, 156, 540, 284, 412, 668, 1004, 748, 876, 108, 492, 236, 364, 620, 940, 684, 428, 172, 44, 812, 556, 300, 12, 780, 908, 140, 524, 268, 396, 652, 972, 716, 460, 204, 76, 844, 588, 332, 4, 772, 900, 132, 516, 260, 388, 644, 964, 708, 452, 196, 68, 836, 580, 324, 996, 740, 868, 100, 484, 228, 356, 612, 36, 804, 932, 164, 548, 292, 420, 676, 1012, 756, 884, 116, 500, 244, 372, 628, 948, 692, 436, 180, 52, 820, 564, 308, 20, 788, 916, 148, 532, 276, 404, 660, 980, 724, 468, 212, 84, 852, 596, 340, 1022, 766, 894, 126, 510, 254, 382, 638, 958, 702, 446, 190, 62, 830, 574, 318, 990, 734, 862, 94, 478, 222, 350, 606, 30, 798, 926, 158, 542, 286, 414, 670, 1006, 750, 878, 110, 494, 238, 366, 622, 942, 686, 430, 174, 46, 814, 558, 302, 14, 782, 910, 142, 526, 270, 398, 654, 974, 718, 462, 206, 78, 846, 590, 334, 1014, 758, 886, 118, 502, 246, 374, 630, 950, 694, 438, 182, 54, 822, 566, 310, 982, 726, 854, 86, 470, 214, 342, 598, 22, 790, 918, 150, 534, 278, 406, 662, 6, 774, 902, 134, 518, 262, 390, 646, 966, 710, 454, 198, 70, 838, 582, 326, 998, 742, 870, 102, 486, 230, 358, 614, 38, 806, 934, 166, 550, 294, 422, 678, 2, 770, 898, 130, 514, 258, 386, 642, 962, 706, 450, 194, 66, 834, 578, 322, 994, 738, 866, 98, 482, 226, 354, 610, 34, 802, 930, 162, 546, 290, 418, 674, 1010, 754, 882, 114, 498, 242, 370, 626, 946, 690, 434, 178, 50, 818, 562, 306, 18, 786, 914, 146, 530, 274, 402, 658, 978, 722, 466, 210, 82, 850, 594, 338, 1018, 762, 890, 122, 506, 250, 378, 634, 954, 698, 442, 186, 58, 826, 570, 314, 986, 730, 858, 90, 474, 218, 346, 602, 26, 794, 922, 154, 538, 282, 410, 666, 10, 778, 906, 138, 522, 266, 394, 650, 970, 714, 458, 202, 74, 842, 586, 330, 1002, 746, 874, 106, 490, 234, 362, 618, 42, 810, 938, 170, 554, 298, 426, 682, 0, 384, 192, 352, 96, 480, 176, 304, 48, 432, 240, 344, 88, 472, 152, 280, 24, 408, 216, 376, 120, 504, 172, 300, 44, 428, 236, 332, 76, 460, 140, 268, 12, 396, 204, 364, 108, 492, 188, 316, 60, 444, 252, 339, 83, 467, 147, 275, 19, 403, 211, 371, 115, 499, 163, 291, 35, 419, 227, 323, 67, 451, 131, 259, 3, 387, 195, 355, 99, 483, 179, 307, 51, 435, 243, 347, 91, 475, 155, 283, 27, 411, 219, 379, 123, 507, 171, 299, 43, 427, 235, 331, 75, 459, 139, 267, 11, 395, 203, 363, 107, 491, 187, 315, 59, 443, 251, 341, 85, 469, 149, 277, 21, 405, 213, 373, 117, 501, 165, 293, 37, 421, 229, 325, 69, 453, 133, 261, 5, 389, 197, 357, 101, 485, 181, 309, 53, 437, 245, 349, 93, 477, 157, 285, 29, 413, 221, 381, 125, 509, 175, 303, 47, 431, 239, 335, 79, 463, 143, 271, 15, 399, 207, 367, 111, 495, 191, 319, 63, 447, 255, 342, 86, 470, 150, 278, 22, 406, 214, 374, 118, 502, 166, 294, 38, 422, 230, 326, 70, 454, 134, 262, 6, 390, 198, 358, 102, 486, 182, 310, 54, 438, 246, 350, 94, 478, 158, 286, 30, 414, 222, 382, 126, 510, 170, 298, 42, 426, 234, 330, 74, 458, 138, 266, 10, 394, 202, 362, 106, 490, 186, 314, 58, 442, 250, 340, 84, 468, 148, 276, 20, 404, 212, 372, 116, 500, 164, 292, 36, 420, 228, 324, 68, 452, 132, 260, 4, 388, 196, 356, 100, 484, 180, 308, 52, 436, 244, 348, 92, 476, 156, 284, 28, 412, 220, 380, 124, 508, 174, 302, 46, 430, 238, 334, 78, 462, 142, 270, 14, 398, 206, 366, 110, 494, 190, 318, 62, 446, 254, 343, 87, 471, 151, 279, 23, 407, 215, 375, 119, 503, 167, 295, 39, 423, 231, 327, 71, 455, 135, 263, 7, 391, 199, 359, 103, 487, 183, 311, 55, 439, 247, 351, 95, 479, 159, 287, 31, 415, 223, 383, 127, 511, 169, 297, 41, 425, 233, 329, 73, 457, 137, 265, 9, 393, 201, 361, 105, 489, 185, 313, 57, 441, 249, 337, 81, 465, 145, 273, 17, 401, 209, 369, 113, 497, 161, 289, 33, 417, 225, 321, 65, 449, 129, 257, 1, 385, 193, 353, 97, 481, 177, 305, 49, 433, 241, 345, 89, 473, 153, 281, 25, 409, 217, 377, 121, 505, 173, 301, 45, 429, 237, 333, 77, 461, 141, 269, 13, 397, 205, 365, 109, 493, 189, 317, 61, 445, 253, 338, 82, 466, 146, 274, 18, 402, 210, 370, 114, 498, 162, 290, 34, 418, 226, 322, 66, 450, 130, 258, 2, 386, 194, 354, 98, 482, 178, 306, 50, 434, 242, 346, 90, 474, 154, 282, 26, 410, 218, 378, 122, 506, 168, 296, 40, 424, 232, 328, 72, 456, 136, 264, 8, 392, 200, 360, 104, 488, 184, 312, 56, 440, 248, 336, 80, 464, 144, 272, 16, 400, 208, 368, 112, 496, 160, 288, 32, 416, 224, 320, 64, 448, 128, 256, }; #endif #ifndef FIXED_POINT /* FFT Twiddle Tables (Float) */ const kiss_twiddle_scalar celt_tx_tab_53[12] = { 0.309017003f, 0.309017003f, 0.809017003f, 0.809017003f, 0.95105654f, 0.95105654f, 0.587785244f, 0.587785244f, 0.866025388f, 0.866025388f, 0.5f, -0.5f, }; const kiss_twiddle_scalar celt_tx_tab_32[9] = { 1.0f, 0.980785251f, 0.923879504f, 0.831469595f, 0.707106769f, 0.555570245f, 0.382683426f, 0.195090324f, 0.0f, }; const kiss_twiddle_scalar celt_tx_tab_64[17] = { 1.0f, 0.99518472f, 0.980785251f, 0.956940353f, 0.923879504f, 0.881921291f, 0.831469595f, 0.773010433f, 0.707106769f, 0.634393275f, 0.555570245f, 0.471396744f, 0.382683426f, 0.290284663f, 0.195090324f, 0.0980171412f, 0.0f, }; #if defined(CUSTOM_MODES) const kiss_twiddle_scalar celt_tx_tab_128[33] = { 1.0f, 0.99879545f, 0.99518472f, 0.989176512f, 0.980785251f, 0.970031261f, 0.956940353f, 0.941544056f, 0.923879504f, 0.903989315f, 0.881921291f, 0.857728601f, 0.831469595f, 0.803207517f, 0.773010433f, 0.740951121f, 0.707106769f, 0.671558976f, 0.634393275f, 0.59569931f, 0.555570245f, 0.514102757f, 0.471396744f, 0.427555084f, 0.382683426f, 0.336889863f, 0.290284663f, 0.242980182f, 0.195090324f, 0.146730468f, 0.0980171412f, 0.0490676761f, 0.0f, }; const kiss_twiddle_scalar celt_tx_tab_256[65] = { 1.0f, 0.999698818f, 0.99879545f, 0.997290432f, 0.99518472f, 0.992479563f, 0.989176512f, 0.985277653f, 0.980785251f, 0.975702107f, 0.970031261f, 0.963776052f, 0.956940353f, 0.949528158f, 0.941544056f, 0.932992816f, 0.923879504f, 0.914209783f, 0.903989315f, 0.893224299f, 0.881921291f, 0.870086968f, 0.857728601f, 0.84485358f, 0.831469595f, 0.817584813f, 0.803207517f, 0.78834641f, 0.773010433f, 0.757208824f, 0.740951121f, 0.724247098f, 0.707106769f, 0.689540565f, 0.671558976f, 0.653172851f, 0.634393275f, 0.615231574f, 0.59569931f, 0.575808167f, 0.555570245f, 0.534997642f, 0.514102757f, 0.492898196f, 0.471396744f, 0.449611336f, 0.427555084f, 0.405241311f, 0.382683426f, 0.359895051f, 0.336889863f, 0.313681751f, 0.290284663f, 0.266712755f, 0.242980182f, 0.219101235f, 0.195090324f, 0.170961887f, 0.146730468f, 0.122410677f, 0.0980171412f, 0.0735645667f, 0.0490676761f, 0.024541229f, 0.0f, }; const kiss_twiddle_scalar celt_tx_tab_512[129] = { 1.0f, 0.999924719f, 0.999698818f, 0.999322355f, 0.99879545f, 0.998118103f, 0.997290432f, 0.996312618f, 0.99518472f, 0.993906975f, 0.992479563f, 0.990902662f, 0.989176512f, 0.987301409f, 0.985277653f, 0.983105481f, 0.980785251f, 0.97831738f, 0.975702107f, 0.972939968f, 0.970031261f, 0.966976464f, 0.963776052f, 0.960430503f, 0.956940353f, 0.953306019f, 0.949528158f, 0.945607305f, 0.941544056f, 0.937339008f, 0.932992816f, 0.928506076f, 0.923879504f, 0.919113874f, 0.914209783f, 0.909168005f, 0.903989315f, 0.898674488f, 0.893224299f, 0.887639642f, 0.881921291f, 0.876070082f, 0.870086968f, 0.863972843f, 0.857728601f, 0.851355195f, 0.84485358f, 0.838224709f, 0.831469595f, 0.824589312f, 0.817584813f, 0.81045717f, 0.803207517f, 0.795836926f, 0.78834641f, 0.780737221f, 0.773010433f, 0.765167236f, 0.757208824f, 0.749136388f, 0.740951121f, 0.732654274f, 0.724247098f, 0.715730846f, 0.707106769f, 0.698376238f, 0.689540565f, 0.680601001f, 0.671558976f, 0.662415802f, 0.653172851f, 0.643831551f, 0.634393275f, 0.624859512f, 0.615231574f, 0.605511069f, 0.59569931f, 0.585797846f, 0.575808167f, 0.565731823f, 0.555570245f, 0.545324981f, 0.534997642f, 0.524589658f, 0.514102757f, 0.50353837f, 0.492898196f, 0.482183784f, 0.471396744f, 0.460538715f, 0.449611336f, 0.438616246f, 0.427555084f, 0.416429549f, 0.405241311f, 0.393992037f, 0.382683426f, 0.371317208f, 0.359895051f, 0.348418683f, 0.336889863f, 0.32531029f, 0.313681751f, 0.302005947f, 0.290284663f, 0.27851969f, 0.266712755f, 0.254865646f, 0.242980182f, 0.231058106f, 0.219101235f, 0.207111374f, 0.195090324f, 0.183039889f, 0.170961887f, 0.15885815f, 0.146730468f, 0.134580702f, 0.122410677f, 0.110222206f, 0.0980171412f, 0.0857973099f, 0.0735645667f, 0.061320737f, 0.0490676761f, 0.0368072242f, 0.024541229f, 0.0122715384f, 0.0f, }; #endif #else /* FIXED_POINT */ # ifdef ENABLE_QEXT /* FFT Twiddle Tables (Fixed32 - Q31) */ const kiss_twiddle_scalar celt_tx_tab_53[12] = { 663608942L, 663608942L, 1737350766L, 1737350766L, 2042378317L, 2042378317L, 1262259218L, 1262259218L, 1859775393L, 1859775393L, 1073741824L, -1073741824L, }; const kiss_twiddle_scalar celt_tx_tab_32[9] = { 2147483647L, 2106220289L, 1984016128L, 1785567359L, 1518500224L, 1193078016L, 821806400L, 418953281L, 0L, }; const kiss_twiddle_scalar celt_tx_tab_64[17] = { 2147483647L, 2137142913L, 2106220289L, 2055013760L, 1984016128L, 1893911551L, 1785567359L, 1660027265L, 1518500224L, 1362349184L, 1193078016L, 1012316799L, 821806400L, 623381567L, 418953281L, 210490208L, 0L, }; #if defined(CUSTOM_MODES) const kiss_twiddle_scalar celt_tx_tab_128[33] = { 2147483647L, 2144896897L, 2137142913L, 2124240385L, 2106220289L, 2083126271L, 2055013760L, 2021950464L, 1984016128L, 1941302272L, 1893911551L, 1841958145L, 1785567359L, 1724875009L, 1660027265L, 1591180416L, 1518500224L, 1442161920L, 1362349184L, 1279254527L, 1193078016L, 1104027264L, 1012316799L, 918167552L, 821806400L, 723465472L, 623381567L, 521795968L, 418953281L, 315101281L, 210490208L, 105372032L, 0L, }; const kiss_twiddle_scalar celt_tx_tab_256[65] = { 2147483647L, 2146836865L, 2144896897L, 2141664895L, 2137142913L, 2131333633L, 2124240385L, 2115867649L, 2106220289L, 2095304320L, 2083126271L, 2069693312L, 2055013760L, 2039096193L, 2021950464L, 2003586816L, 1984016128L, 1963250560L, 1941302272L, 1918184576L, 1893911551L, 1868497536L, 1841958145L, 1814309248L, 1785567359L, 1755750017L, 1724875009L, 1692961024L, 1660027265L, 1626093568L, 1591180416L, 1555308800L, 1518500224L, 1480777088L, 1442161920L, 1402678017L, 1362349184L, 1321199745L, 1279254527L, 1236538623L, 1193078016L, 1148898688L, 1104027264L, 1058490816L, 1012316799L, 965532992L, 918167552L, 870249089L, 821806400L, 772868737L, 723465472L, 673626431L, 623381567L, 572761280L, 521795968L, 470516319L, 418953281L, 367137857L, 315101281L, 262874927L, 210490208L, 157978704L, 105372032L, 52701888L, 0L, }; const kiss_twiddle_scalar celt_tx_tab_512[129] = { 2147483647L, 2147321983L, 2146836865L, 2146028416L, 2144896897L, 2143442305L, 2141664895L, 2139565055L, 2137142913L, 2134398976L, 2131333633L, 2127947263L, 2124240385L, 2120213631L, 2115867649L, 2111202945L, 2106220289L, 2100920576L, 2095304320L, 2089372672L, 2083126271L, 2076566144L, 2069693312L, 2062508800L, 2055013760L, 2047209087L, 2039096193L, 2030676225L, 2021950464L, 2012920192L, 2003586816L, 1993951615L, 1984016128L, 1973782015L, 1963250560L, 1952423424L, 1941302272L, 1929888768L, 1918184576L, 1906191617L, 1893911551L, 1881346176L, 1868497536L, 1855367553L, 1841958145L, 1828271360L, 1814309248L, 1800073856L, 1785567359L, 1770792064L, 1755750017L, 1740443520L, 1724875009L, 1709046785L, 1692961024L, 1676620415L, 1660027265L, 1643184127L, 1626093568L, 1608758143L, 1591180416L, 1573363073L, 1555308800L, 1537020288L, 1518500224L, 1499751551L, 1480777088L, 1461579520L, 1442161920L, 1422527103L, 1402678017L, 1382617728L, 1362349184L, 1341875584L, 1321199745L, 1300325119L, 1279254527L, 1257991295L, 1236538623L, 1214899839L, 1193078016L, 1171076480L, 1148898688L, 1126547712L, 1104027264L, 1081340416L, 1058490816L, 1035481791L, 1012316799L, 988999360L, 965532992L, 941921216L, 918167552L, 894275647L, 870249089L, 846091457L, 821806400L, 797397632L, 772868737L, 748223424L, 723465472L, 698598528L, 673626431L, 648552833L, 623381567L, 598116480L, 572761280L, 547319807L, 521795968L, 496193504L, 470516319L, 444768289L, 418953281L, 393075169L, 367137857L, 341145279L, 315101281L, 289009857L, 262874927L, 236700385L, 210490208L, 184248320L, 157978704L, 131685280L, 105372032L, 79042912L, 52701888L, 26352928L, 0L, }; #endif # else /* !ENABLE_QEXT */ /* FFT Twiddle Tables (Fixed16 - Q15) */ const kiss_twiddle_scalar celt_tx_tab_53[12] = { 10126, 10126, 26510, 26510, 31164, 31164, 19261, 19261, 28378, 28378, 16384, -16384, }; const kiss_twiddle_scalar celt_tx_tab_32[9] = { 32767, 32138, 30274, 27246, 23170, 18205, 12540, 6393, 0, }; const kiss_twiddle_scalar celt_tx_tab_64[17] = { 32767, 32610, 32138, 31357, 30274, 28899, 27246, 25330, 23170, 20788, 18205, 15447, 12540, 9512, 6393, 3212, 0, }; #if defined(CUSTOM_MODES) const kiss_twiddle_scalar celt_tx_tab_128[33] = { 32767, 32729, 32610, 32413, 32138, 31786, 31357, 30853, 30274, 29622, 28899, 28106, 27246, 26320, 25330, 24279, 23170, 22006, 20788, 19520, 18205, 16846, 15447, 14010, 12540, 11039, 9512, 7962, 6393, 4808, 3212, 1608, 0, }; const kiss_twiddle_scalar celt_tx_tab_256[65] = { 32767, 32758, 32729, 32679, 32610, 32522, 32413, 32286, 32138, 31972, 31786, 31581, 31357, 31114, 30853, 30572, 30274, 29957, 29622, 29269, 28899, 28511, 28106, 27684, 27246, 26791, 26320, 25833, 25330, 24812, 24279, 23732, 23170, 22595, 22006, 21403, 20788, 20160, 19520, 18868, 18205, 17531, 16846, 16151, 15447, 14733, 14010, 13279, 12540, 11793, 11039, 10279, 9512, 8740, 7962, 7180, 6393, 5602, 4808, 4011, 3212, 2411, 1608, 804, 0, }; const kiss_twiddle_scalar celt_tx_tab_512[129] = { 32767, 32766, 32758, 32746, 32729, 32706, 32679, 32647, 32610, 32568, 32522, 32470, 32413, 32352, 32286, 32214, 32138, 32058, 31972, 31881, 31786, 31686, 31581, 31471, 31357, 31238, 31114, 30986, 30853, 30715, 30572, 30425, 30274, 30118, 29957, 29792, 29622, 29448, 29269, 29086, 28899, 28707, 28511, 28311, 28106, 27897, 27684, 27467, 27246, 27020, 26791, 26557, 26320, 26078, 25833, 25583, 25330, 25073, 24812, 24548, 24279, 24008, 23732, 23453, 23170, 22884, 22595, 22302, 22006, 21706, 21403, 21097, 20788, 20475, 20160, 19841, 19520, 19195, 18868, 18538, 18205, 17869, 17531, 17190, 16846, 16500, 16151, 15800, 15447, 15091, 14733, 14373, 14010, 13646, 13279, 12910, 12540, 12167, 11793, 11417, 11039, 10660, 10279, 9896, 9512, 9127, 8740, 8351, 7962, 7571, 7180, 6787, 6393, 5998, 5602, 5205, 4808, 4410, 4011, 3612, 3212, 2811, 2411, 2009, 1608, 1206, 804, 402, 0, }; #endif # endif /* ENABLE_QEXT */ #endif /* FIXED_POINT */ #endif /* NEED_CELT_TX_TABLES */