// ██▀▀█▀▀██▀▀▀▀▀▀▀█▀▀█ ▄▄ ▄▄ // ██ ▀ █▄ ▀██▄ ▀ ▄█ ▄█▄█ ▄▀██ ██▀ ██▄ // █ █ █ ▀▀ ▄█ █ █ ██ █ ▀▄██ ▀█▄▄ ██ █ // ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ // ───────────────────────────────────────────────────────────────────────────── // MSXmath 1.8.2 by Guillaume "Aoineko" Blanchard // under CC-BY-SA free license // // Parameters: Entries=1024, Bytes=2 (16-bits), Shift=8 (Q8.8) // ───────────────────────────────────────────────────────────────────────────── // SquareRoot table. Range [0:N[ const unsigned short g_SquareRoot1024[] = { 0x0000, 0x0100, 0x016A, 0x01BB, 0x0200, 0x023C, 0x0273, 0x02A5, 0x02D4, 0x0300, 0x032A, 0x0351, 0x0377, 0x039B, 0x03BE, 0x03DF, 0x0400, 0x0420, 0x043E, 0x045C, 0x0479, 0x0495, 0x04B1, 0x04CC, 0x04E6, 0x0500, 0x0519, 0x0532, 0x054B, 0x0563, 0x057A, 0x0591, 0x05A8, 0x05BF, 0x05D5, 0x05EB, 0x0600, 0x0615, 0x062A, 0x063F, 0x0653, 0x0667, 0x067B, 0x068F, 0x06A2, 0x06B5, 0x06C8, 0x06DB, 0x06EE, 0x0700, 0x0712, 0x0724, 0x0736, 0x0748, 0x0759, 0x076B, 0x077C, 0x078D, 0x079E, 0x07AE, 0x07BF, 0x07CF, 0x07E0, 0x07F0, 0x0800, 0x0810, 0x0820, 0x082F, 0x083F, 0x084E, 0x085E, 0x086D, 0x087C, 0x088B, 0x089A, 0x08A9, 0x08B8, 0x08C6, 0x08D5, 0x08E3, 0x08F2, 0x0900, 0x090E, 0x091C, 0x092A, 0x0938, 0x0946, 0x0954, 0x0961, 0x096F, 0x097D, 0x098A, 0x0997, 0x09A5, 0x09B2, 0x09BF, 0x09CC, 0x09D9, 0x09E6, 0x09F3, 0x0A00, 0x0A0D, 0x0A19, 0x0A26, 0x0A33, 0x0A3F, 0x0A4C, 0x0A58, 0x0A64, 0x0A71, 0x0A7D, 0x0A89, 0x0A95, 0x0AA1, 0x0AAD, 0x0AB9, 0x0AC5, 0x0AD1, 0x0ADD, 0x0AE9, 0x0AF4, 0x0B00, 0x0B0C, 0x0B17, 0x0B23, 0x0B2E, 0x0B3A, 0x0B45, 0x0B50, 0x0B5C, 0x0B67, 0x0B72, 0x0B7D, 0x0B88, 0x0B93, 0x0B9E, 0x0BA9, 0x0BB4, 0x0BBF, 0x0BCA, 0x0BD5, 0x0BE0, 0x0BEB, 0x0BF5, 0x0C00, 0x0C0B, 0x0C15, 0x0C20, 0x0C2A, 0x0C35, 0x0C3F, 0x0C4A, 0x0C54, 0x0C5F, 0x0C69, 0x0C73, 0x0C7D, 0x0C88, 0x0C92, 0x0C9C, 0x0CA6, 0x0CB0, 0x0CBA, 0x0CC4, 0x0CCE, 0x0CD8, 0x0CE2, 0x0CEC, 0x0CF6, 0x0D00, 0x0D0A, 0x0D14, 0x0D1D, 0x0D27, 0x0D31, 0x0D3B, 0x0D44, 0x0D4E, 0x0D57, 0x0D61, 0x0D6B, 0x0D74, 0x0D7E, 0x0D87, 0x0D91, 0x0D9A, 0x0DA3, 0x0DAD, 0x0DB6, 0x0DBF, 0x0DC9, 0x0DD2, 0x0DDB, 0x0DE4, 0x0DEE, 0x0DF7, 0x0E00, 0x0E09, 0x0E12, 0x0E1B, 0x0E24, 0x0E2D, 0x0E36, 0x0E3F, 0x0E48, 0x0E51, 0x0E5A, 0x0E63, 0x0E6C, 0x0E75, 0x0E7E, 0x0E87, 0x0E8F, 0x0E98, 0x0EA1, 0x0EAA, 0x0EB2, 0x0EBB, 0x0EC4, 0x0ECC, 0x0ED5, 0x0EDE, 0x0EE6, 0x0EEF, 0x0EF7, 0x0F00, 0x0F09, 0x0F11, 0x0F1A, 0x0F22, 0x0F2A, 0x0F33, 0x0F3B, 0x0F44, 0x0F4C, 0x0F54, 0x0F5D, 0x0F65, 0x0F6D, 0x0F76, 0x0F7E, 0x0F86, 0x0F8E, 0x0F97, 0x0F9F, 0x0FA7, 0x0FAF, 0x0FB7, 0x0FBF, 0x0FC8, 0x0FD0, 0x0FD8, 0x0FE0, 0x0FE8, 0x0FF0, 0x0FF8, 0x1000, 0x1008, 0x1010, 0x1018, 0x1020, 0x1028, 0x1030, 0x1038, 0x1040, 0x1047, 0x104F, 0x1057, 0x105F, 0x1067, 0x106F, 0x1076, 0x107E, 0x1086, 0x108E, 0x1095, 0x109D, 0x10A5, 0x10AC, 0x10B4, 0x10BC, 0x10C3, 0x10CB, 0x10D3, 0x10DA, 0x10E2, 0x10E9, 0x10F1, 0x10F8, 0x1100, 0x1108, 0x110F, 0x1117, 0x111E, 0x1125, 0x112D, 0x1134, 0x113C, 0x1143, 0x114B, 0x1152, 0x1159, 0x1161, 0x1168, 0x1170, 0x1177, 0x117E, 0x1185, 0x118D, 0x1194, 0x119B, 0x11A3, 0x11AA, 0x11B1, 0x11B8, 0x11C0, 0x11C7, 0x11CE, 0x11D5, 0x11DC, 0x11E3, 0x11EB, 0x11F2, 0x11F9, 0x1200, 0x1207, 0x120E, 0x1215, 0x121C, 0x1223, 0x122A, 0x1232, 0x1239, 0x1240, 0x1247, 0x124E, 0x1255, 0x125C, 0x1263, 0x1269, 0x1270, 0x1277, 0x127E, 0x1285, 0x128C, 0x1293, 0x129A, 0x12A1, 0x12A8, 0x12AE, 0x12B5, 0x12BC, 0x12C3, 0x12CA, 0x12D1, 0x12D7, 0x12DE, 0x12E5, 0x12EC, 0x12F3, 0x12F9, 0x1300, 0x1307, 0x130D, 0x1314, 0x131B, 0x1322, 0x1328, 0x132F, 0x1336, 0x133C, 0x1343, 0x134A, 0x1350, 0x1357, 0x135D, 0x1364, 0x136B, 0x1371, 0x1378, 0x137E, 0x1385, 0x138B, 0x1392, 0x1399, 0x139F, 0x13A6, 0x13AC, 0x13B3, 0x13B9, 0x13C0, 0x13C6, 0x13CD, 0x13D3, 0x13D9, 0x13E0, 0x13E6, 0x13ED, 0x13F3, 0x13FA, 0x1400, 0x1406, 0x140D, 0x1413, 0x141A, 0x1420, 0x1426, 0x142D, 0x1433, 0x1439, 0x1440, 0x1446, 0x144C, 0x1453, 0x1459, 0x145F, 0x1465, 0x146C, 0x1472, 0x1478, 0x147E, 0x1485, 0x148B, 0x1491, 0x1497, 0x149E, 0x14A4, 0x14AA, 0x14B0, 0x14B6, 0x14BD, 0x14C3, 0x14C9, 0x14CF, 0x14D5, 0x14DB, 0x14E1, 0x14E8, 0x14EE, 0x14F4, 0x14FA, 0x1500, 0x1506, 0x150C, 0x1512, 0x1518, 0x151E, 0x1524, 0x152A, 0x1531, 0x1537, 0x153D, 0x1543, 0x1549, 0x154F, 0x1555, 0x155B, 0x1561, 0x1567, 0x156D, 0x1573, 0x1579, 0x157F, 0x1584, 0x158A, 0x1590, 0x1596, 0x159C, 0x15A2, 0x15A8, 0x15AE, 0x15B4, 0x15BA, 0x15C0, 0x15C6, 0x15CB, 0x15D1, 0x15D7, 0x15DD, 0x15E3, 0x15E9, 0x15EF, 0x15F4, 0x15FA, 0x1600, 0x1606, 0x160C, 0x1611, 0x1617, 0x161D, 0x1623, 0x1629, 0x162E, 0x1634, 0x163A, 0x1640, 0x1645, 0x164B, 0x1651, 0x1657, 0x165C, 0x1662, 0x1668, 0x166D, 0x1673, 0x1679, 0x167F, 0x1684, 0x168A, 0x1690, 0x1695, 0x169B, 0x16A1, 0x16A6, 0x16AC, 0x16B2, 0x16B7, 0x16BD, 0x16C2, 0x16C8, 0x16CE, 0x16D3, 0x16D9, 0x16DF, 0x16E4, 0x16EA, 0x16EF, 0x16F5, 0x16FA, 0x1700, 0x1706, 0x170B, 0x1711, 0x1716, 0x171C, 0x1721, 0x1727, 0x172C, 0x1732, 0x1737, 0x173D, 0x1742, 0x1748, 0x174D, 0x1753, 0x1758, 0x175E, 0x1763, 0x1769, 0x176E, 0x1774, 0x1779, 0x177F, 0x1784, 0x178A, 0x178F, 0x1794, 0x179A, 0x179F, 0x17A5, 0x17AA, 0x17AF, 0x17B5, 0x17BA, 0x17C0, 0x17C5, 0x17CA, 0x17D0, 0x17D5, 0x17DB, 0x17E0, 0x17E5, 0x17EB, 0x17F0, 0x17F5, 0x17FB, 0x1800, 0x1805, 0x180B, 0x1810, 0x1815, 0x181B, 0x1820, 0x1825, 0x182B, 0x1830, 0x1835, 0x183A, 0x1840, 0x1845, 0x184A, 0x184F, 0x1855, 0x185A, 0x185F, 0x1865, 0x186A, 0x186F, 0x1874, 0x1879, 0x187F, 0x1884, 0x1889, 0x188E, 0x1894, 0x1899, 0x189E, 0x18A3, 0x18A8, 0x18AE, 0x18B3, 0x18B8, 0x18BD, 0x18C2, 0x18C7, 0x18CD, 0x18D2, 0x18D7, 0x18DC, 0x18E1, 0x18E6, 0x18EB, 0x18F1, 0x18F6, 0x18FB, 0x1900, 0x1905, 0x190A, 0x190F, 0x1914, 0x191A, 0x191F, 0x1924, 0x1929, 0x192E, 0x1933, 0x1938, 0x193D, 0x1942, 0x1947, 0x194C, 0x1951, 0x1956, 0x195C, 0x1961, 0x1966, 0x196B, 0x1970, 0x1975, 0x197A, 0x197F, 0x1984, 0x1989, 0x198E, 0x1993, 0x1998, 0x199D, 0x19A2, 0x19A7, 0x19AC, 0x19B1, 0x19B6, 0x19BB, 0x19C0, 0x19C5, 0x19CA, 0x19CF, 0x19D4, 0x19D8, 0x19DD, 0x19E2, 0x19E7, 0x19EC, 0x19F1, 0x19F6, 0x19FB, 0x1A00, 0x1A05, 0x1A0A, 0x1A0F, 0x1A14, 0x1A19, 0x1A1D, 0x1A22, 0x1A27, 0x1A2C, 0x1A31, 0x1A36, 0x1A3B, 0x1A40, 0x1A45, 0x1A49, 0x1A4E, 0x1A53, 0x1A58, 0x1A5D, 0x1A62, 0x1A67, 0x1A6B, 0x1A70, 0x1A75, 0x1A7A, 0x1A7F, 0x1A84, 0x1A88, 0x1A8D, 0x1A92, 0x1A97, 0x1A9C, 0x1AA1, 0x1AA5, 0x1AAA, 0x1AAF, 0x1AB4, 0x1AB9, 0x1ABD, 0x1AC2, 0x1AC7, 0x1ACC, 0x1AD0, 0x1AD5, 0x1ADA, 0x1ADF, 0x1AE3, 0x1AE8, 0x1AED, 0x1AF2, 0x1AF7, 0x1AFB, 0x1B00, 0x1B05, 0x1B09, 0x1B0E, 0x1B13, 0x1B18, 0x1B1C, 0x1B21, 0x1B26, 0x1B2B, 0x1B2F, 0x1B34, 0x1B39, 0x1B3D, 0x1B42, 0x1B47, 0x1B4B, 0x1B50, 0x1B55, 0x1B59, 0x1B5E, 0x1B63, 0x1B68, 0x1B6C, 0x1B71, 0x1B76, 0x1B7A, 0x1B7F, 0x1B83, 0x1B88, 0x1B8D, 0x1B91, 0x1B96, 0x1B9B, 0x1B9F, 0x1BA4, 0x1BA9, 0x1BAD, 0x1BB2, 0x1BB6, 0x1BBB, 0x1BC0, 0x1BC4, 0x1BC9, 0x1BCE, 0x1BD2, 0x1BD7, 0x1BDB, 0x1BE0, 0x1BE5, 0x1BE9, 0x1BEE, 0x1BF2, 0x1BF7, 0x1BFB, 0x1C00, 0x1C05, 0x1C09, 0x1C0E, 0x1C12, 0x1C17, 0x1C1B, 0x1C20, 0x1C24, 0x1C29, 0x1C2E, 0x1C32, 0x1C37, 0x1C3B, 0x1C40, 0x1C44, 0x1C49, 0x1C4D, 0x1C52, 0x1C56, 0x1C5B, 0x1C5F, 0x1C64, 0x1C68, 0x1C6D, 0x1C71, 0x1C76, 0x1C7A, 0x1C7F, 0x1C83, 0x1C88, 0x1C8C, 0x1C91, 0x1C95, 0x1C9A, 0x1C9E, 0x1CA3, 0x1CA7, 0x1CAC, 0x1CB0, 0x1CB5, 0x1CB9, 0x1CBD, 0x1CC2, 0x1CC6, 0x1CCB, 0x1CCF, 0x1CD4, 0x1CD8, 0x1CDD, 0x1CE1, 0x1CE5, 0x1CEA, 0x1CEE, 0x1CF3, 0x1CF7, 0x1CFC, 0x1D00, 0x1D04, 0x1D09, 0x1D0D, 0x1D12, 0x1D16, 0x1D1A, 0x1D1F, 0x1D23, 0x1D28, 0x1D2C, 0x1D30, 0x1D35, 0x1D39, 0x1D3E, 0x1D42, 0x1D46, 0x1D4B, 0x1D4F, 0x1D53, 0x1D58, 0x1D5C, 0x1D60, 0x1D65, 0x1D69, 0x1D6E, 0x1D72, 0x1D76, 0x1D7B, 0x1D7F, 0x1D83, 0x1D88, 0x1D8C, 0x1D90, 0x1D95, 0x1D99, 0x1D9D, 0x1DA2, 0x1DA6, 0x1DAA, 0x1DAF, 0x1DB3, 0x1DB7, 0x1DBB, 0x1DC0, 0x1DC4, 0x1DC8, 0x1DCD, 0x1DD1, 0x1DD5, 0x1DDA, 0x1DDE, 0x1DE2, 0x1DE6, 0x1DEB, 0x1DEF, 0x1DF3, 0x1DF7, 0x1DFC, 0x1E00, 0x1E04, 0x1E09, 0x1E0D, 0x1E11, 0x1E15, 0x1E1A, 0x1E1E, 0x1E22, 0x1E26, 0x1E2B, 0x1E2F, 0x1E33, 0x1E37, 0x1E3C, 0x1E40, 0x1E44, 0x1E48, 0x1E4C, 0x1E51, 0x1E55, 0x1E59, 0x1E5D, 0x1E62, 0x1E66, 0x1E6A, 0x1E6E, 0x1E72, 0x1E77, 0x1E7B, 0x1E7F, 0x1E83, 0x1E87, 0x1E8C, 0x1E90, 0x1E94, 0x1E98, 0x1E9C, 0x1EA0, 0x1EA5, 0x1EA9, 0x1EAD, 0x1EB1, 0x1EB5, 0x1EB9, 0x1EBE, 0x1EC2, 0x1EC6, 0x1ECA, 0x1ECE, 0x1ED2, 0x1ED7, 0x1EDB, 0x1EDF, 0x1EE3, 0x1EE7, 0x1EEB, 0x1EEF, 0x1EF4, 0x1EF8, 0x1EFC, 0x1F00, 0x1F04, 0x1F08, 0x1F0C, 0x1F10, 0x1F15, 0x1F19, 0x1F1D, 0x1F21, 0x1F25, 0x1F29, 0x1F2D, 0x1F31, 0x1F35, 0x1F3A, 0x1F3E, 0x1F42, 0x1F46, 0x1F4A, 0x1F4E, 0x1F52, 0x1F56, 0x1F5A, 0x1F5E, 0x1F62, 0x1F67, 0x1F6B, 0x1F6F, 0x1F73, 0x1F77, 0x1F7B, 0x1F7F, 0x1F83, 0x1F87, 0x1F8B, 0x1F8F, 0x1F93, 0x1F97, 0x1F9B, 0x1F9F, 0x1FA3, 0x1FA8, 0x1FAC, 0x1FB0, 0x1FB4, 0x1FB8, 0x1FBC, 0x1FC0, 0x1FC4, 0x1FC8, 0x1FCC, 0x1FD0, 0x1FD4, 0x1FD8, 0x1FDC, 0x1FE0, 0x1FE4, 0x1FE8, 0x1FEC, 0x1FF0, 0x1FF4, 0x1FF8, 0x1FFC, }; // Size: 2048 bytes