# HG changeset patch # User vitor # Date 1220797854 0 # Node ID 3cdedd7f00174b7dd759183cd262d7a72097422a # Parent 0bd07f3d3556b4c5d0f07486aab970f9c70d1255 Convert tables to signed and decimal. diff -r 0bd07f3d3556 -r 3cdedd7f0017 mace.c --- a/mace.c Sun Sep 07 13:55:26 2008 +0000 +++ b/mace.c Sun Sep 07 14:30:54 2008 +0000 @@ -36,202 +36,202 @@ static const uint16_t MACEtab3[] = { 0xffee, 0x008c, 0x008c, 0xffee }; -static const uint16_t MACEtab2[][8] = { - { 0x0025, 0x0074, 0x00CE, 0x014A, 0xFEB5, 0xFF31, 0xFF8B, 0xFFDA }, - { 0x0027, 0x0079, 0x00D8, 0x015A, 0xFEA5, 0xFF27, 0xFF86, 0xFFD8 }, - { 0x0029, 0x007F, 0x00E1, 0x0169, 0xFE96, 0xFF1E, 0xFF80, 0xFFD6 }, - { 0x002A, 0x0084, 0x00EB, 0x0179, 0xFE86, 0xFF14, 0xFF7B, 0xFFD5 }, - { 0x002C, 0x0089, 0x00F5, 0x0188, 0xFE77, 0xFF0A, 0xFF76, 0xFFD3 }, - { 0x002E, 0x0090, 0x0100, 0x019A, 0xFE65, 0xFEFF, 0xFF6F, 0xFFD1 }, - { 0x0030, 0x0096, 0x010B, 0x01AC, 0xFE53, 0xFEF4, 0xFF69, 0xFFCF }, - { 0x0033, 0x009D, 0x0118, 0x01C1, 0xFE3E, 0xFEE7, 0xFF62, 0xFFCC }, - { 0x0035, 0x00A5, 0x0125, 0x01D6, 0xFE29, 0xFEDA, 0xFF5A, 0xFFCA }, - { 0x0037, 0x00AC, 0x0132, 0x01EA, 0xFE15, 0xFECD, 0xFF53, 0xFFC8 }, - { 0x003A, 0x00B3, 0x013F, 0x01FF, 0xFE00, 0xFEC0, 0xFF4C, 0xFFC5 }, - { 0x003C, 0x00BB, 0x014D, 0x0216, 0xFDE9, 0xFEB2, 0xFF44, 0xFFC3 }, - { 0x003F, 0x00C3, 0x015C, 0x022D, 0xFDD2, 0xFEA3, 0xFF3C, 0xFFC0 }, - { 0x0042, 0x00CD, 0x016C, 0x0247, 0xFDB8, 0xFE93, 0xFF32, 0xFFBD }, - { 0x0045, 0x00D6, 0x017C, 0x0261, 0xFD9E, 0xFE83, 0xFF29, 0xFFBA }, - { 0x0048, 0x00DF, 0x018C, 0x027B, 0xFD84, 0xFE73, 0xFF20, 0xFFB7 }, - { 0x004B, 0x00E9, 0x019E, 0x0297, 0xFD68, 0xFE61, 0xFF16, 0xFFB4 }, - { 0x004F, 0x00F4, 0x01B1, 0x02B6, 0xFD49, 0xFE4E, 0xFF0B, 0xFFB0 }, - { 0x0052, 0x00FE, 0x01C5, 0x02D5, 0xFD2A, 0xFE3A, 0xFF01, 0xFFAD }, - { 0x0056, 0x0109, 0x01D8, 0x02F4, 0xFD0B, 0xFE27, 0xFEF6, 0xFFA9 }, - { 0x005A, 0x0116, 0x01EF, 0x0318, 0xFCE7, 0xFE10, 0xFEE9, 0xFFA5 }, - { 0x005E, 0x0122, 0x0204, 0x033A, 0xFCC5, 0xFDFB, 0xFEDD, 0xFFA1 }, - { 0x0062, 0x012F, 0x021A, 0x035E, 0xFCA1, 0xFDE5, 0xFED0, 0xFF9D }, - { 0x0066, 0x013C, 0x0232, 0x0385, 0xFC7A, 0xFDCD, 0xFEC3, 0xFF99 }, - { 0x006B, 0x014B, 0x024C, 0x03AE, 0xFC51, 0xFDB3, 0xFEB4, 0xFF94 }, - { 0x0070, 0x0159, 0x0266, 0x03D7, 0xFC28, 0xFD99, 0xFEA6, 0xFF8F }, - { 0x0075, 0x0169, 0x0281, 0x0403, 0xFBFC, 0xFD7E, 0xFE96, 0xFF8A }, - { 0x007A, 0x0179, 0x029E, 0x0432, 0xFBCD, 0xFD61, 0xFE86, 0xFF85 }, - { 0x007F, 0x018A, 0x02BD, 0x0463, 0xFB9C, 0xFD42, 0xFE75, 0xFF80 }, - { 0x0085, 0x019B, 0x02DC, 0x0494, 0xFB6B, 0xFD23, 0xFE64, 0xFF7A }, - { 0x008B, 0x01AE, 0x02FC, 0x04C8, 0xFB37, 0xFD03, 0xFE51, 0xFF74 }, - { 0x0091, 0x01C1, 0x031F, 0x0500, 0xFAFF, 0xFCE0, 0xFE3E, 0xFF6E }, - { 0x0098, 0x01D5, 0x0343, 0x0539, 0xFAC6, 0xFCBC, 0xFE2A, 0xFF67 }, - { 0x009F, 0x01EA, 0x0368, 0x0575, 0xFA8A, 0xFC97, 0xFE15, 0xFF60 }, - { 0x00A6, 0x0200, 0x038F, 0x05B3, 0xFA4C, 0xFC70, 0xFDFF, 0xFF59 }, - { 0x00AD, 0x0217, 0x03B7, 0x05F3, 0xFA0C, 0xFC48, 0xFDE8, 0xFF52 }, - { 0x00B5, 0x022E, 0x03E1, 0x0636, 0xF9C9, 0xFC1E, 0xFDD1, 0xFF4A }, - { 0x00BD, 0x0248, 0x040E, 0x067F, 0xF980, 0xFBF1, 0xFDB7, 0xFF42 }, - { 0x00C5, 0x0262, 0x043D, 0x06CA, 0xF935, 0xFBC2, 0xFD9D, 0xFF3A }, - { 0x00CE, 0x027D, 0x046D, 0x0717, 0xF8E8, 0xFB92, 0xFD82, 0xFF31 }, - { 0x00D7, 0x0299, 0x049F, 0x0767, 0xF898, 0xFB60, 0xFD66, 0xFF28 }, - { 0x00E1, 0x02B7, 0x04D5, 0x07BC, 0xF843, 0xFB2A, 0xFD48, 0xFF1E }, - { 0x00EB, 0x02D6, 0x050B, 0x0814, 0xF7EB, 0xFAF4, 0xFD29, 0xFF14 }, - { 0x00F6, 0x02F7, 0x0545, 0x0871, 0xF78E, 0xFABA, 0xFD08, 0xFF09 }, - { 0x0101, 0x0318, 0x0581, 0x08D1, 0xF72E, 0xFA7E, 0xFCE7, 0xFEFE }, - { 0x010C, 0x033C, 0x05C0, 0x0935, 0xF6CA, 0xFA3F, 0xFCC3, 0xFEF3 }, - { 0x0118, 0x0361, 0x0602, 0x099F, 0xF660, 0xF9FD, 0xFC9E, 0xFEE7 }, - { 0x0125, 0x0387, 0x0646, 0x0A0C, 0xF5F3, 0xF9B9, 0xFC78, 0xFEDA }, - { 0x0132, 0x03B0, 0x068E, 0x0A80, 0xF57F, 0xF971, 0xFC4F, 0xFECD }, - { 0x013F, 0x03DA, 0x06D9, 0x0AF7, 0xF508, 0xF926, 0xFC25, 0xFEC0 }, - { 0x014E, 0x0406, 0x0728, 0x0B75, 0xF48A, 0xF8D7, 0xFBF9, 0xFEB1 }, - { 0x015D, 0x0434, 0x077A, 0x0BF9, 0xF406, 0xF885, 0xFBCB, 0xFEA2 }, - { 0x016C, 0x0464, 0x07CF, 0x0C82, 0xF37D, 0xF830, 0xFB9B, 0xFE93 }, - { 0x017C, 0x0496, 0x0828, 0x0D10, 0xF2EF, 0xF7D7, 0xFB69, 0xFE83 }, - { 0x018E, 0x04CB, 0x0886, 0x0DA6, 0xF259, 0xF779, 0xFB34, 0xFE71 }, - { 0x019F, 0x0501, 0x08E6, 0x0E41, 0xF1BE, 0xF719, 0xFAFE, 0xFE60 }, - { 0x01B2, 0x053B, 0x094C, 0x0EE3, 0xF11C, 0xF6B3, 0xFAC4, 0xFE4D }, - { 0x01C5, 0x0576, 0x09B6, 0x0F8E, 0xF071, 0xF649, 0xFA89, 0xFE3A }, - { 0x01D9, 0x05B5, 0x0A26, 0x1040, 0xEFBF, 0xF5D9, 0xFA4A, 0xFE26 }, - { 0x01EF, 0x05F6, 0x0A9A, 0x10FA, 0xEF05, 0xF565, 0xFA09, 0xFE10 }, - { 0x0205, 0x063A, 0x0B13, 0x11BC, 0xEE43, 0xF4EC, 0xF9C5, 0xFDFA }, - { 0x021C, 0x0681, 0x0B91, 0x1285, 0xED7A, 0xF46E, 0xF97E, 0xFDE3 }, - { 0x0234, 0x06CC, 0x0C15, 0x1359, 0xECA6, 0xF3EA, 0xF933, 0xFDCB }, - { 0x024D, 0x071A, 0x0CA0, 0x1437, 0xEBC8, 0xF35F, 0xF8E5, 0xFDB2 }, - { 0x0267, 0x076A, 0x0D2F, 0x151D, 0xEAE2, 0xF2D0, 0xF895, 0xFD98 }, - { 0x0283, 0x07C0, 0x0DC7, 0x160F, 0xE9F0, 0xF238, 0xF83F, 0xFD7C }, - { 0x029F, 0x0818, 0x0E63, 0x170A, 0xE8F5, 0xF19C, 0xF7E7, 0xFD60 }, - { 0x02BD, 0x0874, 0x0F08, 0x1811, 0xE7EE, 0xF0F7, 0xF78B, 0xFD42 }, - { 0x02DD, 0x08D5, 0x0FB4, 0x1926, 0xE6D9, 0xF04B, 0xF72A, 0xFD22 }, - { 0x02FE, 0x093A, 0x1067, 0x1A44, 0xE5BB, 0xEF98, 0xF6C5, 0xFD01 }, - { 0x0320, 0x09A3, 0x1122, 0x1B70, 0xE48F, 0xEEDD, 0xF65C, 0xFCDF }, - { 0x0344, 0x0A12, 0x11E7, 0x1CAB, 0xE354, 0xEE18, 0xF5ED, 0xFCBB }, - { 0x0369, 0x0A84, 0x12B2, 0x1DF0, 0xE20F, 0xED4D, 0xF57B, 0xFC96 }, - { 0x0390, 0x0AFD, 0x1389, 0x1F48, 0xE0B7, 0xEC76, 0xF502, 0xFC6F }, - { 0x03B8, 0x0B7A, 0x1467, 0x20AC, 0xDF53, 0xEB98, 0xF485, 0xFC47 }, - { 0x03E3, 0x0BFE, 0x1551, 0x2223, 0xDDDC, 0xEAAE, 0xF401, 0xFC1C }, - { 0x040F, 0x0C87, 0x1645, 0x23A9, 0xDC56, 0xE9BA, 0xF378, 0xFBF0 }, - { 0x043E, 0x0D16, 0x1744, 0x2541, 0xDABE, 0xE8BB, 0xF2E9, 0xFBC1 }, - { 0x046E, 0x0DAB, 0x184C, 0x26E8, 0xD917, 0xE7B3, 0xF254, 0xFB91 }, - { 0x04A1, 0x0E47, 0x1961, 0x28A4, 0xD75B, 0xE69E, 0xF1B8, 0xFB5E }, - { 0x04D6, 0x0EEA, 0x1A84, 0x2A75, 0xD58A, 0xE57B, 0xF115, 0xFB29 }, - { 0x050D, 0x0F95, 0x1BB3, 0x2C5B, 0xD3A4, 0xE44C, 0xF06A, 0xFAF2 }, - { 0x0547, 0x1046, 0x1CEF, 0x2E55, 0xD1AA, 0xE310, 0xEFB9, 0xFAB8 }, - { 0x0583, 0x1100, 0x1E3A, 0x3066, 0xCF99, 0xE1C5, 0xEEFF, 0xFA7C }, - { 0x05C2, 0x11C3, 0x1F94, 0x3292, 0xCD6D, 0xE06B, 0xEE3C, 0xFA3D }, - { 0x0604, 0x128E, 0x20FC, 0x34D2, 0xCB2D, 0xDF03, 0xED71, 0xF9FB }, - { 0x0649, 0x1362, 0x2275, 0x372E, 0xC8D1, 0xDD8A, 0xEC9D, 0xF9B6 }, - { 0x0690, 0x143F, 0x23FF, 0x39A4, 0xC65B, 0xDC00, 0xEBC0, 0xF96F }, - { 0x06DC, 0x1527, 0x259A, 0x3C37, 0xC3C8, 0xDA65, 0xEAD8, 0xF923 }, - { 0x072A, 0x1619, 0x2749, 0x3EE8, 0xC117, 0xD8B6, 0xE9E6, 0xF8D5 }, - { 0x077C, 0x1715, 0x2909, 0x41B6, 0xBE49, 0xD6F6, 0xE8EA, 0xF883 }, - { 0x07D1, 0x181D, 0x2ADF, 0x44A6, 0xBB59, 0xD520, 0xE7E2, 0xF82E }, - { 0x082B, 0x1930, 0x2CC7, 0x47B4, 0xB84B, 0xD338, 0xE6CF, 0xF7D4 }, - { 0x0888, 0x1A50, 0x2EC6, 0x4AE7, 0xB518, 0xD139, 0xE5AF, 0xF777 }, - { 0x08EA, 0x1B7D, 0x30DE, 0x4E40, 0xB1BF, 0xCF21, 0xE482, 0xF715 }, - { 0x094F, 0x1CB7, 0x330C, 0x51BE, 0xAE41, 0xCCF3, 0xE348, 0xF6B0 }, - { 0x09BA, 0x1DFF, 0x3554, 0x5565, 0xAA9A, 0xCAAB, 0xE200, 0xF645 }, - { 0x0A29, 0x1F55, 0x37B4, 0x5932, 0xA6CD, 0xC84B, 0xE0AA, 0xF5D6 }, - { 0x0A9D, 0x20BC, 0x3A31, 0x5D2E, 0xA2D1, 0xC5CE, 0xDF43, 0xF562 }, - { 0x0B16, 0x2231, 0x3CC9, 0x6156, 0x9EA9, 0xC336, 0xDDCE, 0xF4E9 }, - { 0x0B95, 0x23B8, 0x3F80, 0x65AF, 0x9A50, 0xC07F, 0xDC47, 0xF46A }, - { 0x0C19, 0x2551, 0x4256, 0x6A39, 0x95C6, 0xBDA9, 0xDAAE, 0xF3E6 }, - { 0x0CA4, 0x26FB, 0x454C, 0x6EF7, 0x9108, 0xBAB3, 0xD904, 0xF35B }, - { 0x0D34, 0x28B8, 0x4864, 0x73EB, 0x8C14, 0xB79B, 0xD747, 0xF2CB }, - { 0x0DCB, 0x2A8A, 0x4B9F, 0x7918, 0x86E7, 0xB460, 0xD575, 0xF234 }, - { 0x0E68, 0x2C6F, 0x4EFE, 0x7E7E, 0x8181, 0xB101, 0xD390, 0xF197 }, - { 0x0F0D, 0x2E6B, 0x5285, 0x7FFF, 0x8000, 0xAD7A, 0xD194, 0xF0F2 }, - { 0x0FB9, 0x307E, 0x5635, 0x7FFF, 0x8000, 0xA9CA, 0xCF81, 0xF046 }, - { 0x106D, 0x32A7, 0x5A0D, 0x7FFF, 0x8000, 0xA5F2, 0xCD58, 0xEF92 }, - { 0x1128, 0x34EA, 0x5E12, 0x7FFF, 0x8000, 0xA1ED, 0xCB15, 0xEED7 }, - { 0x11ED, 0x3747, 0x6245, 0x7FFF, 0x8000, 0x9DBA, 0xC8B8, 0xEE12 }, - { 0x12B9, 0x39BF, 0x66A8, 0x7FFF, 0x8000, 0x9957, 0xC640, 0xED46 }, - { 0x138F, 0x3C52, 0x6B3C, 0x7FFF, 0x8000, 0x94C3, 0xC3AD, 0xEC70 }, - { 0x146F, 0x3F04, 0x7006, 0x7FFF, 0x8000, 0x8FF9, 0xC0FB, 0xEB90 }, - { 0x1558, 0x41D3, 0x7505, 0x7FFF, 0x8000, 0x8AFA, 0xBE2C, 0xEAA7 }, - { 0x164C, 0x44C3, 0x7A3E, 0x7FFF, 0x8000, 0x85C1, 0xBB3C, 0xE9B3 }, - { 0x174B, 0x47D5, 0x7FB3, 0x7FFF, 0x8000, 0x804C, 0xB82A, 0xE8B4 }, - { 0x1855, 0x4B0A, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0xB4F5, 0xE7AA }, - { 0x196B, 0x4E63, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0xB19C, 0xE694 }, - { 0x1A8D, 0x51E3, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0xAE1C, 0xE572 }, - { 0x1BBD, 0x558B, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0xAA74, 0xE442 }, - { 0x1CFA, 0x595C, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0xA6A3, 0xE305 }, - { 0x1E45, 0x5D59, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0xA2A6, 0xE1BA }, - { 0x1F9F, 0x6184, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0x9E7B, 0xE060 }, - { 0x2108, 0x65DE, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0x9A21, 0xDEF7 }, - { 0x2281, 0x6A6A, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0x9595, 0xDD7E }, - { 0x240C, 0x6F29, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0x90D6, 0xDBF3 }, - { 0x25A7, 0x741F, 0x7FFF, 0x7FFF, 0x8000, 0x8000, 0x8BE0, 0xDA58 }, +static const int16_t MACEtab2[][8] = { + { 37, 116, 206, 330, -331, -207, -117, -38}, + { 39, 121, 216, 346, -347, -217, -122, -40}, + { 41, 127, 225, 361, -362, -226, -128, -42}, + { 42, 132, 235, 377, -378, -236, -133, -43}, + { 44, 137, 245, 392, -393, -246, -138, -45}, + { 46, 144, 256, 410, -411, -257, -145, -47}, + { 48, 150, 267, 428, -429, -268, -151, -49}, + { 51, 157, 280, 449, -450, -281, -158, -52}, + { 53, 165, 293, 470, -471, -294, -166, -54}, + { 55, 172, 306, 490, -491, -307, -173, -56}, + { 58, 179, 319, 511, -512, -320, -180, -59}, + { 60, 187, 333, 534, -535, -334, -188, -61}, + { 63, 195, 348, 557, -558, -349, -196, -64}, + { 66, 205, 364, 583, -584, -365, -206, -67}, + { 69, 214, 380, 609, -610, -381, -215, -70}, + { 72, 223, 396, 635, -636, -397, -224, -73}, + { 75, 233, 414, 663, -664, -415, -234, -76}, + { 79, 244, 433, 694, -695, -434, -245, -80}, + { 82, 254, 453, 725, -726, -454, -255, -83}, + { 86, 265, 472, 756, -757, -473, -266, -87}, + { 90, 278, 495, 792, -793, -496, -279, -91}, + { 94, 290, 516, 826, -827, -517, -291, -95}, + { 98, 303, 538, 862, -863, -539, -304, -99}, + { 102, 316, 562, 901, -902, -563, -317, -103}, + { 107, 331, 588, 942, -943, -589, -332, -108}, + { 112, 345, 614, 983, -984, -615, -346, -113}, + { 117, 361, 641, 1027, -1028, -642, -362, -118}, + { 122, 377, 670, 1074, -1075, -671, -378, -123}, + { 127, 394, 701, 1123, -1124, -702, -395, -128}, + { 133, 411, 732, 1172, -1173, -733, -412, -134}, + { 139, 430, 764, 1224, -1225, -765, -431, -140}, + { 145, 449, 799, 1280, -1281, -800, -450, -146}, + { 152, 469, 835, 1337, -1338, -836, -470, -153}, + { 159, 490, 872, 1397, -1398, -873, -491, -160}, + { 166, 512, 911, 1459, -1460, -912, -513, -167}, + { 173, 535, 951, 1523, -1524, -952, -536, -174}, + { 181, 558, 993, 1590, -1591, -994, -559, -182}, + { 189, 584, 1038, 1663, -1664, -1039, -585, -190}, + { 197, 610, 1085, 1738, -1739, -1086, -611, -198}, + { 206, 637, 1133, 1815, -1816, -1134, -638, -207}, + { 215, 665, 1183, 1895, -1896, -1184, -666, -216}, + { 225, 695, 1237, 1980, -1981, -1238, -696, -226}, + { 235, 726, 1291, 2068, -2069, -1292, -727, -236}, + { 246, 759, 1349, 2161, -2162, -1350, -760, -247}, + { 257, 792, 1409, 2257, -2258, -1410, -793, -258}, + { 268, 828, 1472, 2357, -2358, -1473, -829, -269}, + { 280, 865, 1538, 2463, -2464, -1539, -866, -281}, + { 293, 903, 1606, 2572, -2573, -1607, -904, -294}, + { 306, 944, 1678, 2688, -2689, -1679, -945, -307}, + { 319, 986, 1753, 2807, -2808, -1754, -987, -320}, + { 334, 1030, 1832, 2933, -2934, -1833, -1031, -335}, + { 349, 1076, 1914, 3065, -3066, -1915, -1077, -350}, + { 364, 1124, 1999, 3202, -3203, -2000, -1125, -365}, + { 380, 1174, 2088, 3344, -3345, -2089, -1175, -381}, + { 398, 1227, 2182, 3494, -3495, -2183, -1228, -399}, + { 415, 1281, 2278, 3649, -3650, -2279, -1282, -416}, + { 434, 1339, 2380, 3811, -3812, -2381, -1340, -435}, + { 453, 1398, 2486, 3982, -3983, -2487, -1399, -454}, + { 473, 1461, 2598, 4160, -4161, -2599, -1462, -474}, + { 495, 1526, 2714, 4346, -4347, -2715, -1527, -496}, + { 517, 1594, 2835, 4540, -4541, -2836, -1595, -518}, + { 540, 1665, 2961, 4741, -4742, -2962, -1666, -541}, + { 564, 1740, 3093, 4953, -4954, -3094, -1741, -565}, + { 589, 1818, 3232, 5175, -5176, -3233, -1819, -590}, + { 615, 1898, 3375, 5405, -5406, -3376, -1899, -616}, + { 643, 1984, 3527, 5647, -5648, -3528, -1985, -644}, + { 671, 2072, 3683, 5898, -5899, -3684, -2073, -672}, + { 701, 2164, 3848, 6161, -6162, -3849, -2165, -702}, + { 733, 2261, 4020, 6438, -6439, -4021, -2262, -734}, + { 766, 2362, 4199, 6724, -6725, -4200, -2363, -767}, + { 800, 2467, 4386, 7024, -7025, -4387, -2468, -801}, + { 836, 2578, 4583, 7339, -7340, -4584, -2579, -837}, + { 873, 2692, 4786, 7664, -7665, -4787, -2693, -874}, + { 912, 2813, 5001, 8008, -8009, -5002, -2814, -913}, + { 952, 2938, 5223, 8364, -8365, -5224, -2939, -953}, + { 995, 3070, 5457, 8739, -8740, -5458, -3071, -996}, + { 1039, 3207, 5701, 9129, -9130, -5702, -3208, -1040}, + { 1086, 3350, 5956, 9537, -9538, -5957, -3351, -1087}, + { 1134, 3499, 6220, 9960, -9961, -6221, -3500, -1135}, + { 1185, 3655, 6497, 10404, -10405, -6498, -3656, -1186}, + { 1238, 3818, 6788, 10869, -10870, -6789, -3819, -1239}, + { 1293, 3989, 7091, 11355, -11356, -7092, -3990, -1294}, + { 1351, 4166, 7407, 11861, -11862, -7408, -4167, -1352}, + { 1411, 4352, 7738, 12390, -12391, -7739, -4353, -1412}, + { 1474, 4547, 8084, 12946, -12947, -8085, -4548, -1475}, + { 1540, 4750, 8444, 13522, -13523, -8445, -4751, -1541}, + { 1609, 4962, 8821, 14126, -14127, -8822, -4963, -1610}, + { 1680, 5183, 9215, 14756, -14757, -9216, -5184, -1681}, + { 1756, 5415, 9626, 15415, -15416, -9627, -5416, -1757}, + { 1834, 5657, 10057, 16104, -16105, -10058, -5658, -1835}, + { 1916, 5909, 10505, 16822, -16823, -10506, -5910, -1917}, + { 2001, 6173, 10975, 17574, -17575, -10976, -6174, -2002}, + { 2091, 6448, 11463, 18356, -18357, -11464, -6449, -2092}, + { 2184, 6736, 11974, 19175, -19176, -11975, -6737, -2185}, + { 2282, 7037, 12510, 20032, -20033, -12511, -7038, -2283}, + { 2383, 7351, 13068, 20926, -20927, -13069, -7352, -2384}, + { 2490, 7679, 13652, 21861, -21862, -13653, -7680, -2491}, + { 2601, 8021, 14260, 22834, -22835, -14261, -8022, -2602}, + { 2717, 8380, 14897, 23854, -23855, -14898, -8381, -2718}, + { 2838, 8753, 15561, 24918, -24919, -15562, -8754, -2839}, + { 2965, 9144, 16256, 26031, -26032, -16257, -9145, -2966}, + { 3097, 9553, 16982, 27193, -27194, -16983, -9554, -3098}, + { 3236, 9979, 17740, 28407, -28408, -17741, -9980, -3237}, + { 3380, 10424, 18532, 29675, -29676, -18533, -10425, -3381}, + { 3531, 10890, 19359, 31000, -31001, -19360, -10891, -3532}, + { 3688, 11375, 20222, 32382, -32383, -20223, -11376, -3689}, + { 3853, 11883, 21125, 32767, -32768, -21126, -11884, -3854}, + { 4025, 12414, 22069, 32767, -32768, -22070, -12415, -4026}, + { 4205, 12967, 23053, 32767, -32768, -23054, -12968, -4206}, + { 4392, 13546, 24082, 32767, -32768, -24083, -13547, -4393}, + { 4589, 14151, 25157, 32767, -32768, -25158, -14152, -4590}, + { 4793, 14783, 26280, 32767, -32768, -26281, -14784, -4794}, + { 5007, 15442, 27452, 32767, -32768, -27453, -15443, -5008}, + { 5231, 16132, 28678, 32767, -32768, -28679, -16133, -5232}, + { 5464, 16851, 29957, 32767, -32768, -29958, -16852, -5465}, + { 5708, 17603, 31294, 32767, -32768, -31295, -17604, -5709}, + { 5963, 18389, 32691, 32767, -32768, -32692, -18390, -5964}, + { 6229, 19210, 32767, 32767, -32768, -32768, -19211, -6230}, + { 6507, 20067, 32767, 32767, -32768, -32768, -20068, -6508}, + { 6797, 20963, 32767, 32767, -32768, -32768, -20964, -6798}, + { 7101, 21899, 32767, 32767, -32768, -32768, -21900, -7102}, + { 7418, 22876, 32767, 32767, -32768, -32768, -22877, -7419}, + { 7749, 23897, 32767, 32767, -32768, -32768, -23898, -7750}, + { 8095, 24964, 32767, 32767, -32768, -32768, -24965, -8096}, + { 8456, 26078, 32767, 32767, -32768, -32768, -26079, -8457}, + { 8833, 27242, 32767, 32767, -32768, -32768, -27243, -8834}, + { 9228, 28457, 32767, 32767, -32768, -32768, -28458, -9229}, + { 9639, 29727, 32767, 32767, -32768, -32768, -29728, -9640} }; -static const uint16_t MACEtab4[][4] = { - { 0x0040, 0x00D8, 0xFF27, 0xFFBF }, { 0x0043, 0x00E2, 0xFF1D, 0xFFBC }, - { 0x0046, 0x00EC, 0xFF13, 0xFFB9 }, { 0x004A, 0x00F6, 0xFF09, 0xFFB5 }, - { 0x004D, 0x0101, 0xFEFE, 0xFFB2 }, { 0x0050, 0x010C, 0xFEF3, 0xFFAF }, - { 0x0054, 0x0118, 0xFEE7, 0xFFAB }, { 0x0058, 0x0126, 0xFED9, 0xFFA7 }, - { 0x005C, 0x0133, 0xFECC, 0xFFA3 }, { 0x0060, 0x0141, 0xFEBE, 0xFF9F }, - { 0x0064, 0x014E, 0xFEB1, 0xFF9B }, { 0x0068, 0x015E, 0xFEA1, 0xFF97 }, - { 0x006D, 0x016D, 0xFE92, 0xFF92 }, { 0x0072, 0x017E, 0xFE81, 0xFF8D }, - { 0x0077, 0x018F, 0xFE70, 0xFF88 }, { 0x007C, 0x01A0, 0xFE5F, 0xFF83 }, - { 0x0082, 0x01B2, 0xFE4D, 0xFF7D }, { 0x0088, 0x01C6, 0xFE39, 0xFF77 }, - { 0x008E, 0x01DB, 0xFE24, 0xFF71 }, { 0x0094, 0x01EF, 0xFE10, 0xFF6B }, - { 0x009B, 0x0207, 0xFDF8, 0xFF64 }, { 0x00A2, 0x021D, 0xFDE2, 0xFF5D }, - { 0x00A9, 0x0234, 0xFDCB, 0xFF56 }, { 0x00B0, 0x024E, 0xFDB1, 0xFF4F }, - { 0x00B9, 0x0269, 0xFD96, 0xFF46 }, { 0x00C1, 0x0284, 0xFD7B, 0xFF3E }, - { 0x00C9, 0x02A1, 0xFD5E, 0xFF36 }, { 0x00D2, 0x02BF, 0xFD40, 0xFF2D }, - { 0x00DC, 0x02DF, 0xFD20, 0xFF23 }, { 0x00E6, 0x02FF, 0xFD00, 0xFF19 }, - { 0x00F0, 0x0321, 0xFCDE, 0xFF0F }, { 0x00FB, 0x0346, 0xFCB9, 0xFF04 }, - { 0x0106, 0x036C, 0xFC93, 0xFEF9 }, { 0x0112, 0x0392, 0xFC6D, 0xFEED }, - { 0x011E, 0x03BB, 0xFC44, 0xFEE1 }, { 0x012B, 0x03E5, 0xFC1A, 0xFED4 }, - { 0x0138, 0x0411, 0xFBEE, 0xFEC7 }, { 0x0146, 0x0441, 0xFBBE, 0xFEB9 }, - { 0x0155, 0x0472, 0xFB8D, 0xFEAA }, { 0x0164, 0x04A4, 0xFB5B, 0xFE9B }, - { 0x0174, 0x04D9, 0xFB26, 0xFE8B }, { 0x0184, 0x0511, 0xFAEE, 0xFE7B }, - { 0x0196, 0x054A, 0xFAB5, 0xFE69 }, { 0x01A8, 0x0587, 0xFA78, 0xFE57 }, - { 0x01BB, 0x05C6, 0xFA39, 0xFE44 }, { 0x01CE, 0x0608, 0xF9F7, 0xFE31 }, - { 0x01E3, 0x064D, 0xF9B2, 0xFE1C }, { 0x01F9, 0x0694, 0xF96B, 0xFE06 }, - { 0x020F, 0x06E0, 0xF91F, 0xFDF0 }, { 0x0227, 0x072E, 0xF8D1, 0xFDD8 }, - { 0x0240, 0x0781, 0xF87E, 0xFDBF }, { 0x0259, 0x07D7, 0xF828, 0xFDA6 }, - { 0x0274, 0x0831, 0xF7CE, 0xFD8B }, { 0x0290, 0x088E, 0xF771, 0xFD6F }, - { 0x02AE, 0x08F0, 0xF70F, 0xFD51 }, { 0x02CC, 0x0955, 0xF6AA, 0xFD33 }, - { 0x02EC, 0x09C0, 0xF63F, 0xFD13 }, { 0x030D, 0x0A2F, 0xF5D0, 0xFCF2 }, - { 0x0330, 0x0AA4, 0xF55B, 0xFCCF }, { 0x0355, 0x0B1E, 0xF4E1, 0xFCAA }, - { 0x037B, 0x0B9D, 0xF462, 0xFC84 }, { 0x03A2, 0x0C20, 0xF3DF, 0xFC5D }, - { 0x03CC, 0x0CAB, 0xF354, 0xFC33 }, { 0x03F8, 0x0D3D, 0xF2C2, 0xFC07 }, - { 0x0425, 0x0DD3, 0xF22C, 0xFBDA }, { 0x0454, 0x0E72, 0xF18D, 0xFBAB }, - { 0x0486, 0x0F16, 0xF0E9, 0xFB79 }, { 0x04B9, 0x0FC3, 0xF03C, 0xFB46 }, - { 0x04F0, 0x1078, 0xEF87, 0xFB0F }, { 0x0528, 0x1133, 0xEECC, 0xFAD7 }, - { 0x0563, 0x11F7, 0xEE08, 0xFA9C }, { 0x05A1, 0x12C6, 0xED39, 0xFA5E }, - { 0x05E1, 0x139B, 0xEC64, 0xFA1E }, { 0x0624, 0x147C, 0xEB83, 0xF9DB }, - { 0x066A, 0x1565, 0xEA9A, 0xF995 }, { 0x06B3, 0x165A, 0xE9A5, 0xF94C }, - { 0x0700, 0x175A, 0xE8A5, 0xF8FF }, { 0x0750, 0x1865, 0xE79A, 0xF8AF }, - { 0x07A3, 0x197A, 0xE685, 0xF85C }, { 0x07FB, 0x1A9D, 0xE562, 0xF804 }, - { 0x0856, 0x1BCE, 0xE431, 0xF7A9 }, { 0x08B5, 0x1D0C, 0xE2F3, 0xF74A }, - { 0x0919, 0x1E57, 0xE1A8, 0xF6E6 }, { 0x0980, 0x1FB2, 0xE04D, 0xF67F }, - { 0x09ED, 0x211D, 0xDEE2, 0xF612 }, { 0x0A5F, 0x2296, 0xDD69, 0xF5A0 }, - { 0x0AD5, 0x2422, 0xDBDD, 0xF52A }, { 0x0B51, 0x25BF, 0xDA40, 0xF4AE }, - { 0x0BD2, 0x276E, 0xD891, 0xF42D }, { 0x0C5A, 0x2932, 0xD6CD, 0xF3A5 }, - { 0x0CE7, 0x2B08, 0xD4F7, 0xF318 }, { 0x0D7A, 0x2CF4, 0xD30B, 0xF285 }, - { 0x0E14, 0x2EF4, 0xD10B, 0xF1EB }, { 0x0EB5, 0x310C, 0xCEF3, 0xF14A }, - { 0x0F5D, 0x333E, 0xCCC1, 0xF0A2 }, { 0x100C, 0x3587, 0xCA78, 0xEFF3 }, - { 0x10C4, 0x37EB, 0xC814, 0xEF3B }, { 0x1183, 0x3A69, 0xC596, 0xEE7C }, - { 0x124B, 0x3D05, 0xC2FA, 0xEDB4 }, { 0x131C, 0x3FBE, 0xC041, 0xECE3 }, - { 0x13F7, 0x4296, 0xBD69, 0xEC08 }, { 0x14DB, 0x458F, 0xBA70, 0xEB24 }, - { 0x15C9, 0x48AA, 0xB755, 0xEA36 }, { 0x16C2, 0x4BE9, 0xB416, 0xE93D }, - { 0x17C6, 0x4F4C, 0xB0B3, 0xE839 }, { 0x18D6, 0x52D5, 0xAD2A, 0xE729 }, - { 0x19F2, 0x5688, 0xA977, 0xE60D }, { 0x1B1A, 0x5A65, 0xA59A, 0xE4E5 }, - { 0x1C50, 0x5E6D, 0xA192, 0xE3AF }, { 0x1D93, 0x62A4, 0x9D5B, 0xE26C }, - { 0x1EE5, 0x670C, 0x98F3, 0xE11A }, { 0x2046, 0x6BA5, 0x945A, 0xDFB9 }, - { 0x21B7, 0x7072, 0x8F8D, 0xDE48 }, { 0x2338, 0x7578, 0x8A87, 0xDCC7 }, - { 0x24CB, 0x7AB5, 0x854A, 0xDB34 }, { 0x266F, 0x7FFF, 0x8000, 0xD990 }, - { 0x2826, 0x7FFF, 0x8000, 0xD7D9 }, { 0x29F1, 0x7FFF, 0x8000, 0xD60E }, - { 0x2BD0, 0x7FFF, 0x8000, 0xD42F }, { 0x2DC5, 0x7FFF, 0x8000, 0xD23A }, - { 0x2FD0, 0x7FFF, 0x8000, 0xD02F }, { 0x31F2, 0x7FFF, 0x8000, 0xCE0D }, - { 0x342C, 0x7FFF, 0x8000, 0xCBD3 }, { 0x3681, 0x7FFF, 0x8000, 0xC97E }, - { 0x38F0, 0x7FFF, 0x8000, 0xC70F }, { 0x3B7A, 0x7FFF, 0x8000, 0xC485 }, - { 0x3E22, 0x7FFF, 0x8000, 0xC1DD }, { 0x40E7, 0x7FFF, 0x8000, 0xBF18 }, +static const int16_t MACEtab4[][4] = { + { 64, 216, -217, -65}, { 67, 226, -227, -68}, + { 70, 236, -237, -71}, { 74, 246, -247, -75}, + { 77, 257, -258, -78}, { 80, 268, -269, -81}, + { 84, 280, -281, -85}, { 88, 294, -295, -89}, + { 92, 307, -308, -93}, { 96, 321, -322, -97}, + { 100, 334, -335, -101}, { 104, 350, -351, -105}, + { 109, 365, -366, -110}, { 114, 382, -383, -115}, + { 119, 399, -400, -120}, { 124, 416, -417, -125}, + { 130, 434, -435, -131}, { 136, 454, -455, -137}, + { 142, 475, -476, -143}, { 148, 495, -496, -149}, + { 155, 519, -520, -156}, { 162, 541, -542, -163}, + { 169, 564, -565, -170}, { 176, 590, -591, -177}, + { 185, 617, -618, -186}, { 193, 644, -645, -194}, + { 201, 673, -674, -202}, { 210, 703, -704, -211}, + { 220, 735, -736, -221}, { 230, 767, -768, -231}, + { 240, 801, -802, -241}, { 251, 838, -839, -252}, + { 262, 876, -877, -263}, { 274, 914, -915, -275}, + { 286, 955, -956, -287}, { 299, 997, -998, -300}, + { 312, 1041, -1042, -313}, { 326, 1089, -1090, -327}, + { 341, 1138, -1139, -342}, { 356, 1188, -1189, -357}, + { 372, 1241, -1242, -373}, { 388, 1297, -1298, -389}, + { 406, 1354, -1355, -407}, { 424, 1415, -1416, -425}, + { 443, 1478, -1479, -444}, { 462, 1544, -1545, -463}, + { 483, 1613, -1614, -484}, { 505, 1684, -1685, -506}, + { 527, 1760, -1761, -528}, { 551, 1838, -1839, -552}, + { 576, 1921, -1922, -577}, { 601, 2007, -2008, -602}, + { 628, 2097, -2098, -629}, { 656, 2190, -2191, -657}, + { 686, 2288, -2289, -687}, { 716, 2389, -2390, -717}, + { 748, 2496, -2497, -749}, { 781, 2607, -2608, -782}, + { 816, 2724, -2725, -817}, { 853, 2846, -2847, -854}, + { 891, 2973, -2974, -892}, { 930, 3104, -3105, -931}, + { 972, 3243, -3244, -973}, { 1016, 3389, -3390, -1017}, + { 1061, 3539, -3540, -1062}, { 1108, 3698, -3699, -1109}, + { 1158, 3862, -3863, -1159}, { 1209, 4035, -4036, -1210}, + { 1264, 4216, -4217, -1265}, { 1320, 4403, -4404, -1321}, + { 1379, 4599, -4600, -1380}, { 1441, 4806, -4807, -1442}, + { 1505, 5019, -5020, -1506}, { 1572, 5244, -5245, -1573}, + { 1642, 5477, -5478, -1643}, { 1715, 5722, -5723, -1716}, + { 1792, 5978, -5979, -1793}, { 1872, 6245, -6246, -1873}, + { 1955, 6522, -6523, -1956}, { 2043, 6813, -6814, -2044}, + { 2134, 7118, -7119, -2135}, { 2229, 7436, -7437, -2230}, + { 2329, 7767, -7768, -2330}, { 2432, 8114, -8115, -2433}, + { 2541, 8477, -8478, -2542}, { 2655, 8854, -8855, -2656}, + { 2773, 9250, -9251, -2774}, { 2897, 9663, -9664, -2898}, + { 3026, 10094, -10095, -3027}, { 3162, 10546, -10547, -3163}, + { 3303, 11016, -11017, -3304}, { 3450, 11508, -11509, -3451}, + { 3604, 12020, -12021, -3605}, { 3765, 12556, -12557, -3766}, + { 3933, 13118, -13119, -3934}, { 4108, 13703, -13704, -4109}, + { 4292, 14315, -14316, -4293}, { 4483, 14953, -14954, -4484}, + { 4683, 15621, -15622, -4684}, { 4892, 16318, -16319, -4893}, + { 5111, 17046, -17047, -5112}, { 5339, 17807, -17808, -5340}, + { 5577, 18602, -18603, -5578}, { 5826, 19433, -19434, -5827}, + { 6086, 20300, -20301, -6087}, { 6358, 21205, -21206, -6359}, + { 6642, 22152, -22153, -6643}, { 6938, 23141, -23142, -6939}, + { 7248, 24173, -24174, -7249}, { 7571, 25252, -25253, -7572}, + { 7909, 26380, -26381, -7910}, { 8262, 27557, -27558, -8263}, + { 8631, 28786, -28787, -8632}, { 9016, 30072, -30073, -9017}, + { 9419, 31413, -31414, -9420}, { 9839, 32767, -32768, -9840}, + { 10278, 32767, -32768, -10279}, { 10737, 32767, -32768, -10738}, + { 11216, 32767, -32768, -11217}, { 11717, 32767, -32768, -11718}, + { 12240, 32767, -32768, -12241}, { 12786, 32767, -32768, -12787}, + { 13356, 32767, -32768, -13357}, { 13953, 32767, -32768, -13954}, + { 14576, 32767, -32768, -14577}, { 15226, 32767, -32768, -15227}, + { 15906, 32767, -32768, -15907}, { 16615, 32767, -32768, -16616} }; #define QT_8S_2_16S(x) (((x) & 0xFF00) | (((x) >> 8) & 0xFF))