diff options
author | tege <tege@gmplib.org> | 2002-04-16 19:39:25 +0200 |
---|---|---|
committer | tege <tege@gmplib.org> | 2002-04-16 19:39:25 +0200 |
commit | 47b65bb65053783b1e60a66c8e475dff9c63ca2b (patch) | |
tree | 6ecdb8d9dc7c6bafc8a1b2e59bbe08054c2a233c /mpn | |
parent | e609c26d5ee18c92531adf6149f3691825e768bd (diff) | |
download | gmp-47b65bb65053783b1e60a66c8e475dff9c63ca2b.tar.gz |
Add tables for GMP_NUMB_BITS being 28, 60, and 63.
Diffstat (limited to 'mpn')
-rw-r--r-- | mpn/mp_bases.c | 1086 |
1 files changed, 1067 insertions, 19 deletions
diff --git a/mpn/mp_bases.c b/mpn/mp_bases.c index 60909ab88..492d4c55d 100644 --- a/mpn/mp_bases.c +++ b/mpn/mp_bases.c @@ -32,7 +32,7 @@ MA 02111-1307, USA. */ #if ! GENERATE_TABLE -#if BITS_PER_MP_LIMB == 4 +#if GMP_NUMB_BITS == 4 const struct bases mp_bases[257] = { /* 0 */ {0, 0.0, 0, 0}, @@ -294,7 +294,7 @@ const struct bases mp_bases[257] = /* 256 */ {0, 0.1250000000000000, 0x8, 0x0}, }; #endif /* 4 */ -#if BITS_PER_MP_LIMB == 8 +#if GMP_NUMB_BITS == 8 const struct bases mp_bases[257] = { /* 0 */ {0, 0.0, 0, 0}, @@ -556,7 +556,7 @@ const struct bases mp_bases[257] = /* 256 */ {1, 0.1250000000000000, 0x8, 0x0}, }; #endif /* 8 */ -#if BITS_PER_MP_LIMB == 16 +#if GMP_NUMB_BITS == 16 const struct bases mp_bases[257] = { /* 0 */ {0, 0.0, 0, 0}, @@ -818,7 +818,531 @@ const struct bases mp_bases[257] = /* 256 */ {2, 0.1250000000000000, 0x8, 0x0}, }; #endif /* 16 */ -#if BITS_PER_MP_LIMB == 32 +#if GMP_NUMB_BITS == 28 +const struct bases mp_bases[257] = +{ + /* 0 */ {0, 0.0, 0, 0}, + /* 1 */ {0, 1e37, 0, 0}, + /* 2 */ {28, 1.0000000000000000, 0x1, 0x0}, + /* 3 */ {17, 0.6309297535714574, 0x7b285c3, 0xa10c2b}, + /* 4 */ {14, 0.5000000000000000, 0x2, 0x0}, + /* 5 */ {12, 0.4306765580733931, 0xe8d4a51, 0x1979981}, + /* 6 */ {10, 0.3868528072345416, 0x39aa400, 0x1c1fa5f}, + /* 7 */ {9, 0.3562071871080222, 0x267bf47, 0xa9bbb14}, + /* 8 */ {9, 0.3333333333333333, 0x3, 0x0}, + /* 9 */ {8, 0.3154648767857287, 0x290d741, 0x8f19241}, + /* 10 */ {8, 0.3010299956639812, 0x5f5e100, 0x5798ee2}, + /* 11 */ {8, 0.2890648263178878, 0xcc6db61, 0x4094d8a}, + /* 12 */ {7, 0.2789429456511298, 0x222c000, 0xdf75680}, + /* 13 */ {7, 0.2702381544273197, 0x3bd7765, 0x11ca0c0}, + /* 14 */ {7, 0.2626495350371935, 0x6487b80, 0x45f3b3b}, + /* 15 */ {7, 0.2559580248098155, 0xa2f1b6f, 0x9232f45}, + /* 16 */ {7, 0.2500000000000000, 0x4, 0x0}, + /* 17 */ {6, 0.2446505421182260, 0x1704f61, 0x63dfc22}, + /* 18 */ {6, 0.2398124665681314, 0x206fc40, 0xf91bd1b}, + /* 19 */ {6, 0.2354089133666382, 0x2cddcf9, 0x6d2c32f}, + /* 20 */ {6, 0.2313782131597592, 0x3d09000, 0xc6f7a0}, + /* 21 */ {6, 0.2276702486969530, 0x51cafe9, 0x909f102}, + /* 22 */ {6, 0.2242438242175754, 0x6c20a40, 0x2f0cb4c}, + /* 23 */ {6, 0.2210647294575037, 0x8d2d931, 0xd0354df}, + /* 24 */ {6, 0.2181042919855316, 0xb640000, 0x67980e0}, + /* 25 */ {6, 0.2153382790366965, 0xe8d4a51, 0x1979981}, + /* 26 */ {5, 0.2127460535533632, 0xb54ba0, 0x697cc3e}, + /* 27 */ {5, 0.2103099178571525, 0xdaf26b, 0x2b52db1}, + /* 28 */ {5, 0.2080145976765095, 0x1069c00, 0xf31d2b3}, + /* 29 */ {5, 0.2058468324604344, 0x138f9ad, 0xa2cb1eb}, + /* 30 */ {5, 0.2037950470905062, 0x172c9e0, 0x617ec8b}, + /* 31 */ {5, 0.2018490865820999, 0x1b4d89f, 0x2c0aa27}, + /* 32 */ {5, 0.2000000000000000, 0x5, 0x0}, + /* 33 */ {5, 0.1982398631705605, 0x25528a1, 0xb6fc484}, + /* 34 */ {5, 0.1965616322328226, 0x2b54a20, 0x7a1dbe4}, + /* 35 */ {5, 0.1949590218937863, 0x3216b93, 0x47196c8}, + /* 36 */ {5, 0.1934264036172708, 0x39aa400, 0x1c1fa5f}, + /* 37 */ {5, 0.1919587200065601, 0x4221ad5, 0xef7f4a3}, + /* 38 */ {5, 0.1905514124267734, 0x4b90860, 0xb1a47c8}, + /* 39 */ {5, 0.1892003595168700, 0x560b647, 0x7cd3817}, + /* 40 */ {5, 0.1879018247091076, 0x61a8000, 0x4f8b588}, + /* 41 */ {5, 0.1866524112389434, 0x6e7d349, 0x2892815}, + /* 42 */ {5, 0.1854490234153689, 0x7ca30a0, 0x6e8629}, + /* 43 */ {5, 0.1842888331487062, 0x8c32bbb, 0xd373dca}, + /* 44 */ {5, 0.1831692509136336, 0x9d46c00, 0xa0b1789}, + /* 45 */ {5, 0.1820879004699383, 0xaffacfd, 0x746811a}, + /* 46 */ {5, 0.1810425967800402, 0xc46bee0, 0x4da6500}, + /* 47 */ {5, 0.1800313266566926, 0xdab86ef, 0x2ba2358}, + /* 48 */ {5, 0.1790522317510414, 0xf300000, 0xdb20a8}, + /* 49 */ {4, 0.1781035935540111, 0x57f6c1, 0x74843b1}, + /* 50 */ {4, 0.1771838201355579, 0x5f5e10, 0x5798ee2}, + /* 51 */ {4, 0.1762914343888821, 0x673a91, 0x3d6e4d9}, + /* 52 */ {4, 0.1754250635819545, 0x6f9100, 0x25b55f2}, + /* 53 */ {4, 0.1745834300480449, 0x786631, 0x10294ba}, + /* 54 */ {4, 0.1737653428714400, 0x81bf10, 0xf91bd1b}, + /* 55 */ {4, 0.1729696904450771, 0x8ba0a1, 0xd55cff6}, + /* 56 */ {4, 0.1721954337940981, 0x961000, 0xb4b985c}, + /* 57 */ {4, 0.1714416005739134, 0xa11261, 0x96dfdd2}, + /* 58 */ {4, 0.1707072796637201, 0xacad10, 0x7b8813d}, + /* 59 */ {4, 0.1699916162869140, 0xb8e571, 0x627289d}, + /* 60 */ {4, 0.1692938075987814, 0xc5c100, 0x4b66dc3}, + /* 61 */ {4, 0.1686130986895011, 0xd34551, 0x3632f7a}, + /* 62 */ {4, 0.1679487789570419, 0xe17810, 0x22aa4d5}, + /* 63 */ {4, 0.1673001788101741, 0xf05f01, 0x10a523e}, + /* 64 */ {4, 0.1666666666666667, 0x6, 0x0}, + /* 65 */ {4, 0.1660476462159378, 0x1106101, 0xe136444}, + /* 66 */ {4, 0.1654425539190583, 0x1218810, 0xc4b42a8}, + /* 67 */ {4, 0.1648508567221603, 0x1337b51, 0xaa4698c}, + /* 68 */ {4, 0.1642720499620502, 0x1464100, 0x91bf9a3}, + /* 69 */ {4, 0.1637056554452156, 0x159df71, 0x7af5c98}, + /* 70 */ {4, 0.1631512196835108, 0x16e5d10, 0x65c3ceb}, + /* 71 */ {4, 0.1626083122716342, 0x183c061, 0x5207ec2}, + /* 72 */ {4, 0.1620765243931223, 0x19a1000, 0x3fa39ab}, + /* 73 */ {4, 0.1615554674429964, 0x1b152a1, 0x2e7b314}, + /* 74 */ {4, 0.1610447717564444, 0x1c98f10, 0x1e7596e}, + /* 75 */ {4, 0.1605440854340214, 0x1e2cc31, 0xf7bfe8}, + /* 76 */ {4, 0.1600530732548213, 0x1fd1100, 0x179a9f}, + /* 77 */ {4, 0.1595714156699382, 0x2186491, 0xe8b768d}, + /* 78 */ {4, 0.1590988078692941, 0x234ce10, 0xd021c5d}, + /* 79 */ {4, 0.1586349589155960, 0x25254c1, 0xb912f39}, + /* 80 */ {4, 0.1581795909397823, 0x2710000, 0xa36e2eb}, + /* 81 */ {4, 0.1577324383928644, 0x290d741, 0x8f19241}, + /* 82 */ {4, 0.1572932473495469, 0x2b1e210, 0x7bfbb5b}, + /* 83 */ {4, 0.1568617748594410, 0x2d42811, 0x69ffc49}, + /* 84 */ {4, 0.1564377883420715, 0x2f7b100, 0x5911016}, + /* 85 */ {4, 0.1560210650222250, 0x31c84b1, 0x491cc17}, + /* 86 */ {4, 0.1556113914024939, 0x342ab10, 0x3a11d83}, + /* 87 */ {4, 0.1552085627701551, 0x36a2c21, 0x2be074c}, + /* 88 */ {4, 0.1548123827357682, 0x3931000, 0x1e7a02e}, + /* 89 */ {4, 0.1544226628011101, 0x3bd5ee1, 0x11d10ed}, + /* 90 */ {4, 0.1540392219542636, 0x3e92110, 0x5d92c6}, + /* 91 */ {4, 0.1536618862898642, 0x4165ef1, 0xf50dbfb}, + /* 92 */ {4, 0.1532904886526781, 0x4452100, 0xdf9f131}, + /* 93 */ {4, 0.1529248683028321, 0x4756fd1, 0xcb52a68}, + /* 94 */ {4, 0.1525648706011593, 0x4a75410, 0xb8163e9}, + /* 95 */ {4, 0.1522103467132434, 0x4dad681, 0xa5d8f26}, + /* 96 */ {4, 0.1518611533308632, 0x5100000, 0x948b0fc}, + /* 97 */ {4, 0.1515171524096389, 0x546d981, 0x841e021}, + /* 98 */ {4, 0.1511782109217764, 0x57f6c10, 0x74843b1}, + /* 99 */ {4, 0.1508442006228941, 0x5b9c0d1, 0x65b11e6}, + /* 100 */ {4, 0.1505149978319906, 0x5f5e100, 0x5798ee2}, + /* 101 */ {4, 0.1501904832236880, 0x633d5f1, 0x4a30b99}, + /* 102 */ {4, 0.1498705416319474, 0x673a910, 0x3d6e4d9}, + /* 103 */ {4, 0.1495550618645152, 0x6b563e1, 0x314825b}, + /* 104 */ {4, 0.1492439365274121, 0x6f91000, 0x25b55f2}, + /* 105 */ {4, 0.1489370618588283, 0x73eb721, 0x1aadacc}, + /* 106 */ {4, 0.1486343375718350, 0x7866310, 0x10294ba}, + /* 107 */ {4, 0.1483356667053617, 0x7d01db1, 0x620f8f}, + /* 108 */ {4, 0.1480409554829326, 0x81bf100, 0xf91bd1b}, + /* 109 */ {4, 0.1477501131786861, 0x869e711, 0xe6d37b2}, + /* 110 */ {4, 0.1474630519902391, 0x8ba0a10, 0xd55cff6}, + /* 111 */ {4, 0.1471796869179852, 0x90c6441, 0xc4ad2db}, + /* 112 */ {4, 0.1468999356504447, 0x9610000, 0xb4b985c}, + /* 113 */ {4, 0.1466237184553111, 0x9b7e7c1, 0xa5782be}, + /* 114 */ {4, 0.1463509580758620, 0xa112610, 0x96dfdd2}, + /* 115 */ {4, 0.1460815796324244, 0xa6cc591, 0x88e7e50}, + /* 116 */ {4, 0.1458155105286054, 0xacad100, 0x7b8813d}, + /* 117 */ {4, 0.1455526803620167, 0xb2b5331, 0x6eb8b59}, + /* 118 */ {4, 0.1452930208392429, 0xb8e5710, 0x627289d}, + /* 119 */ {4, 0.1450364656948130, 0xbf3e7a1, 0x56aebc0}, + /* 120 */ {4, 0.1447829506139581, 0xc5c1000, 0x4b66dc3}, + /* 121 */ {4, 0.1445324131589439, 0xcc6db61, 0x4094d8a}, + /* 122 */ {4, 0.1442847926987864, 0xd345510, 0x3632f7a}, + /* 123 */ {4, 0.1440400303421672, 0xda48871, 0x2c3bd1f}, + /* 124 */ {4, 0.1437980688733776, 0xe178100, 0x22aa4d5}, + /* 125 */ {4, 0.1435588526911310, 0xe8d4a51, 0x1979981}, + /* 126 */ {4, 0.1433223277500932, 0xf05f010, 0x10a523e}, + /* 127 */ {4, 0.1430884415049874, 0xf817e01, 0x828a23}, + /* 128 */ {4, 0.1428571428571428, 0x7, 0x0}, + /* 129 */ {3, 0.1426283821033600, 0x20c181, 0xf42f61d}, + /* 130 */ {3, 0.1424021108869747, 0x218608, 0xe8bb1d5}, + /* 131 */ {3, 0.1421782821510107, 0x224d9b, 0xdd9fb30}, + /* 132 */ {3, 0.1419568500933153, 0x231840, 0xd2d9cbd}, + /* 133 */ {3, 0.1417377701235801, 0x23e5fd, 0xc86636f}, + /* 134 */ {3, 0.1415209988221527, 0x24b6d8, 0xbe41e7e}, + /* 135 */ {3, 0.1413064939005528, 0x258ad7, 0xb469f4a}, + /* 136 */ {3, 0.1410942141636095, 0x266200, 0xaadb93d}, + /* 137 */ {3, 0.1408841194731412, 0x273c59, 0xa1941b0}, + /* 138 */ {3, 0.1406761707131039, 0x2819e8, 0x9890fd4}, + /* 139 */ {3, 0.1404703297561400, 0x28fab3, 0x8fcfc9c}, + /* 140 */ {3, 0.1402665594314587, 0x29dec0, 0x874e2a1}, + /* 141 */ {3, 0.1400648234939879, 0x2ac615, 0x7f09e12}, + /* 142 */ {3, 0.1398650865947379, 0x2bb0b8, 0x7700c9f}, + /* 143 */ {3, 0.1396673142523192, 0x2c9eaf, 0x6f30d66}, + /* 144 */ {3, 0.1394714728255649, 0x2d9000, 0x67980e0}, + /* 145 */ {3, 0.1392775294872041, 0x2e84b1, 0x60348d4}, + /* 146 */ {3, 0.1390854521985406, 0x2f7cc8, 0x5904842}, + /* 147 */ {3, 0.1388952096850913, 0x30784b, 0x520635a}, + /* 148 */ {3, 0.1387067714131417, 0x317740, 0x4b37f67}, + /* 149 */ {3, 0.1385201075671774, 0x3279ad, 0x44982ca}, + /* 150 */ {3, 0.1383351890281539, 0x337f98, 0x3e254e4}, + /* 151 */ {3, 0.1381519873525671, 0x348907, 0x37dde12}, + /* 152 */ {3, 0.1379704747522905, 0x359600, 0x31c079d}, + /* 153 */ {3, 0.1377906240751463, 0x36a689, 0x2bcbbb0}, + /* 154 */ {3, 0.1376124087861776, 0x37baa8, 0x25fe551}, + /* 155 */ {3, 0.1374358029495937, 0x38d263, 0x2057051}, + /* 156 */ {3, 0.1372607812113589, 0x39edc0, 0x1ad4948}, + /* 157 */ {3, 0.1370873187823978, 0x3b0cc5, 0x1575d8c}, + /* 158 */ {3, 0.1369153914223921, 0x3c2f78, 0x1039b25}, + /* 159 */ {3, 0.1367449754241439, 0x3d55df, 0xb1f0c9}, + /* 160 */ {3, 0.1365760475984821, 0x3e8000, 0x624dd2}, + /* 161 */ {3, 0.1364085852596902, 0x3fade1, 0x14a239}, + /* 162 */ {3, 0.1362425662114337, 0x40df88, 0xf91bd1b}, + /* 163 */ {3, 0.1360779687331669, 0x4214fb, 0xefde7dc}, + /* 164 */ {3, 0.1359147715670014, 0x434e40, 0xe6da80c}, + /* 165 */ {3, 0.1357529539050150, 0x448b5d, 0xde0e209}, + /* 166 */ {3, 0.1355924953769864, 0x45cc58, 0xd577b2f}, + /* 167 */ {3, 0.1354333760385373, 0x471137, 0xcd159cd}, + /* 168 */ {3, 0.1352755763596663, 0x485a00, 0xc4e651e}, + /* 169 */ {3, 0.1351190772136599, 0x49a6b9, 0xbce8539}, + /* 170 */ {3, 0.1349638598663645, 0x4af768, 0xb51a30f}, + /* 171 */ {3, 0.1348099059658080, 0x4c4c13, 0xad7a85e}, + /* 172 */ {3, 0.1346571975321549, 0x4da4c0, 0xa607fa9}, + /* 173 */ {3, 0.1345057169479844, 0x4f0175, 0x9ec1430}, + /* 174 */ {3, 0.1343554469488779, 0x506238, 0x97a51ec}, + /* 175 */ {3, 0.1342063706143054, 0x51c70f, 0x90b2582}, + /* 176 */ {3, 0.1340584713587979, 0x533000, 0x89e7c3f}, + /* 177 */ {3, 0.1339117329233981, 0x549d11, 0x8344414}, + /* 178 */ {3, 0.1337661393673756, 0x560e48, 0x7cc6b8a}, + /* 179 */ {3, 0.1336216750601996, 0x5783ab, 0x766e1c1}, + /* 180 */ {3, 0.1334783246737591, 0x58fd40, 0x7039667}, + /* 181 */ {3, 0.1333360731748201, 0x5a7b0d, 0x6a279b3}, + /* 182 */ {3, 0.1331949058177136, 0x5bfd18, 0x6437c64}, + /* 183 */ {3, 0.1330548081372441, 0x5d8367, 0x5e68fb4}, + /* 184 */ {3, 0.1329157659418126, 0x5f0e00, 0x58ba55b}, + /* 185 */ {3, 0.1327777653067443, 0x609ce9, 0x532af85}, + /* 186 */ {3, 0.1326407925678156, 0x623028, 0x4dba0cf}, + /* 187 */ {3, 0.1325048343149731, 0x63c7c3, 0x4866c46}, + /* 188 */ {3, 0.1323698773862368, 0x6563c0, 0x433055f}, + /* 189 */ {3, 0.1322359088617821, 0x670425, 0x3e15ff3}, + /* 190 */ {3, 0.1321029160581950, 0x68a8f8, 0x391703e}, + /* 191 */ {3, 0.1319708865228925, 0x6a523f, 0x3432adb}, + /* 192 */ {3, 0.1318398080287045, 0x6c0000, 0x2f684bd}, + /* 193 */ {3, 0.1317096685686114, 0x6db241, 0x2ab7332}, + /* 194 */ {3, 0.1315804563506306, 0x6f6908, 0x261ebd9}, + /* 195 */ {3, 0.1314521597928493, 0x71245b, 0x219e4a4}, + /* 196 */ {3, 0.1313247675185968, 0x72e440, 0x1d353d4}, + /* 197 */ {3, 0.1311982683517524, 0x74a8bd, 0x18e2ff3}, + /* 198 */ {3, 0.1310726513121843, 0x7671d8, 0x14a6fd8}, + /* 199 */ {3, 0.1309479056113158, 0x783f97, 0x1080a9d}, + /* 200 */ {3, 0.1308240206478128, 0x7a1200, 0xc6f7a0}, + /* 201 */ {3, 0.1307009860033912, 0x7be919, 0x872e84}, + /* 202 */ {3, 0.1305787914387386, 0x7dc4e8, 0x48a727}, + /* 203 */ {3, 0.1304574268895465, 0x7fa573, 0xb59a7}, + /* 204 */ {3, 0.1303368824626505, 0x818ac0, 0xf9e7cba}, + /* 205 */ {3, 0.1302171484322746, 0x8374d5, 0xf289bb3}, + /* 206 */ {3, 0.1300982152363760, 0x8563b8, 0xeb501ca}, + /* 207 */ {3, 0.1299800734730872, 0x87576f, 0xe43a0fc}, + /* 208 */ {3, 0.1298627138972530, 0x895000, 0xdd46baa}, + /* 209 */ {3, 0.1297461274170591, 0x8b4d71, 0xd67549c}, + /* 210 */ {3, 0.1296303050907487, 0x8d4fc8, 0xcfc4ef7}, + /* 211 */ {3, 0.1295152381234257, 0x8f570b, 0xc934e40}, + /* 212 */ {3, 0.1294009178639407, 0x916340, 0xc2c4654}, + /* 213 */ {3, 0.1292873358018581, 0x93746d, 0xbc72b67}, + /* 214 */ {3, 0.1291744835645007, 0x958a98, 0xb63f203}, + /* 215 */ {3, 0.1290623529140715, 0x97a5c7, 0xb028f03}, + /* 216 */ {3, 0.1289509357448472, 0x99c600, 0xaa2f78f}, + /* 217 */ {3, 0.1288402240804449, 0x9beb49, 0xa45211d}, + /* 218 */ {3, 0.1287302100711566, 0x9e15a8, 0x9e9016e}, + /* 219 */ {3, 0.1286208859913518, 0xa04523, 0x98e8e88}, + /* 220 */ {3, 0.1285122442369443, 0xa279c0, 0x935beb8}, + /* 221 */ {3, 0.1284042773229231, 0xa4b385, 0x8de888d}, + /* 222 */ {3, 0.1282969778809442, 0xa6f278, 0x888e2da}, + /* 223 */ {3, 0.1281903386569819, 0xa9369f, 0x834c4ac}, + /* 224 */ {3, 0.1280843525090381, 0xab8000, 0x7e22551}, + /* 225 */ {3, 0.1279790124049077, 0xadcea1, 0x790fc51}, + /* 226 */ {3, 0.1278743114199984, 0xb02288, 0x741416c}, + /* 227 */ {3, 0.1277702427352035, 0xb27bbb, 0x6f2ec9c}, + /* 228 */ {3, 0.1276667996348261, 0xb4da40, 0x6a5f60f}, + /* 229 */ {3, 0.1275639755045533, 0xb73e1d, 0x65a5628}, + /* 230 */ {3, 0.1274617638294791, 0xb9a758, 0x610057c}, + /* 231 */ {3, 0.1273601581921740, 0xbc15f7, 0x5c6fcd2}, + /* 232 */ {3, 0.1272591522708010, 0xbe8a00, 0x57f351f}, + /* 233 */ {3, 0.1271587398372755, 0xc10379, 0x538a788}, + /* 234 */ {3, 0.1270589147554692, 0xc38268, 0x4f34d5f}, + /* 235 */ {3, 0.1269596709794558, 0xc606d3, 0x4af2020}, + /* 236 */ {3, 0.1268610025517973, 0xc890c0, 0x46c1971}, + /* 237 */ {3, 0.1267629036018709, 0xcb2035, 0x42a3323}, + /* 238 */ {3, 0.1266653683442337, 0xcdb538, 0x3e9672c}, + /* 239 */ {3, 0.1265683910770258, 0xd04fcf, 0x3a9afad}, + /* 240 */ {3, 0.1264719661804097, 0xd2f000, 0x36b06e7}, + /* 241 */ {3, 0.1263760881150453, 0xd595d1, 0x32d6743}, + /* 242 */ {3, 0.1262807514205999, 0xd84148, 0x2f0cb4c}, + /* 243 */ {3, 0.1261859507142915, 0xdaf26b, 0x2b52db1}, + /* 244 */ {3, 0.1260916806894653, 0xdda940, 0x27a8940}, + /* 245 */ {3, 0.1259979361142023, 0xe065cd, 0x240d8e9}, + /* 246 */ {3, 0.1259047118299582, 0xe32818, 0x20817bb}, + /* 247 */ {3, 0.1258120027502338, 0xe5f027, 0x1d040e4}, + /* 248 */ {3, 0.1257198038592741, 0xe8be00, 0x1994faf}, + /* 249 */ {3, 0.1256281102107963, 0xeb91a9, 0x1633f84}, + /* 250 */ {3, 0.1255369169267456, 0xee6b28, 0x12e0be8}, + /* 251 */ {3, 0.1254462191960791, 0xf14a83, 0xf9b07a}, + /* 252 */ {3, 0.1253560122735751, 0xf42fc0, 0xc628f5}, + /* 253 */ {3, 0.1252662914786691, 0xf71ae5, 0x93712d}, + /* 254 */ {3, 0.1251770521943144, 0xfa0bf8, 0x61850f}, + /* 255 */ {3, 0.1250882898658681, 0xfd02ff, 0x3060a0}, + /* 256 */ {3, 0.1250000000000000, 0x8, 0x0}, +}; +#endif /* 28 */ +#if GMP_NUMB_BITS == 30 +const struct bases mp_bases[257] = +{ + /* 0 */ {0, 0.0, 0, 0}, + /* 1 */ {0, 1e37, 0, 0}, + /* 2 */ {30, 1.0000000000000000, 0x1, 0x0}, + /* 3 */ {18, 0.6309297535714574, 0x17179149, 0x18b040ea}, + /* 4 */ {15, 0.5000000000000000, 0x2, 0x0}, + /* 5 */ {12, 0.4306765580733931, 0xe8d4a51, 0x65e6604}, + /* 6 */ {11, 0.3868528072345416, 0x159fd800, 0x1eb53752}, + /* 7 */ {10, 0.3562071871080222, 0x10d63af1, 0x39a35739}, + /* 8 */ {10, 0.3333333333333333, 0x3, 0x0}, + /* 9 */ {9, 0.3154648767857287, 0x17179149, 0x18b040ea}, + /* 10 */ {9, 0.3010299956639812, 0x3b9aca00, 0x4b82fa0}, + /* 11 */ {8, 0.2890648263178878, 0xcc6db61, 0x10253628}, + /* 12 */ {8, 0.2789429456511298, 0x19a10000, 0xfe8e6ad}, + /* 13 */ {8, 0.2702381544273197, 0x309f1021, 0x143e2b17}, + /* 14 */ {7, 0.2626495350371935, 0x6487b80, 0x117cecee}, + /* 15 */ {7, 0.2559580248098155, 0xa2f1b6f, 0x248cbd15}, + /* 16 */ {7, 0.2500000000000000, 0x4, 0x0}, + /* 17 */ {7, 0.2446505421182260, 0x18754571, 0x13bc2daf}, + /* 18 */ {7, 0.2398124665681314, 0x247dbc80, 0x303f1228}, + /* 19 */ {7, 0.2354089133666382, 0x3547667b, 0xce0e250}, + /* 20 */ {6, 0.2313782131597592, 0x3d09000, 0x31bde82}, + /* 21 */ {6, 0.2276702486969530, 0x51cafe9, 0x2427c40b}, + /* 22 */ {6, 0.2242438242175754, 0x6c20a40, 0xbc32d32}, + /* 23 */ {6, 0.2210647294575037, 0x8d2d931, 0x340d537f}, + /* 24 */ {6, 0.2181042919855316, 0xb640000, 0x19e60382}, + /* 25 */ {6, 0.2153382790366965, 0xe8d4a51, 0x65e6604}, + /* 26 */ {6, 0.2127460535533632, 0x1269ae40, 0x2f3a14e5}, + /* 27 */ {6, 0.2103099178571525, 0x17179149, 0x18b040ea}, + /* 28 */ {6, 0.2080145976765095, 0x1cb91000, 0x74d4f50}, + /* 29 */ {6, 0.2058468324604344, 0x23744899, 0x33877b3a}, + /* 30 */ {6, 0.2037950470905062, 0x2b73a840, 0x1e43f144}, + /* 31 */ {6, 0.2018490865820999, 0x34e63b41, 0xd6e1968}, + /* 32 */ {5, 0.2000000000000000, 0x5, 0x0}, + /* 33 */ {5, 0.1982398631705605, 0x25528a1, 0x2dbf1210}, + /* 34 */ {5, 0.1965616322328226, 0x2b54a20, 0x1e876f92}, + /* 35 */ {5, 0.1949590218937863, 0x3216b93, 0x11c65b21}, + /* 36 */ {5, 0.1934264036172708, 0x39aa400, 0x707e97d}, + /* 37 */ {5, 0.1919587200065601, 0x4221ad5, 0x3bdfd28f}, + /* 38 */ {5, 0.1905514124267734, 0x4b90860, 0x2c691f23}, + /* 39 */ {5, 0.1892003595168700, 0x560b647, 0x1f34e05f}, + /* 40 */ {5, 0.1879018247091076, 0x61a8000, 0x13e2d623}, + /* 41 */ {5, 0.1866524112389434, 0x6e7d349, 0xa24a055}, + /* 42 */ {5, 0.1854490234153689, 0x7ca30a0, 0x1ba18a7}, + /* 43 */ {5, 0.1842888331487062, 0x8c32bbb, 0x34dcf728}, + /* 44 */ {5, 0.1831692509136336, 0x9d46c00, 0x282c5e25}, + /* 45 */ {5, 0.1820879004699383, 0xaffacfd, 0x1d1a0469}, + /* 46 */ {5, 0.1810425967800402, 0xc46bee0, 0x13699403}, + /* 47 */ {5, 0.1800313266566926, 0xdab86ef, 0xae88d60}, + /* 48 */ {5, 0.1790522317510414, 0xf300000, 0x36c82a2}, + /* 49 */ {5, 0.1781035935540111, 0x10d63af1, 0x39a35739}, + /* 50 */ {5, 0.1771838201355579, 0x12a05f20, 0x2df37f67}, + /* 51 */ {5, 0.1762914343888821, 0x1490aae3, 0x23960e4c}, + /* 52 */ {5, 0.1754250635819545, 0x16a97400, 0x1a5f30fa}, + /* 53 */ {5, 0.1745834300480449, 0x18ed2825, 0x1229729b}, + /* 54 */ {5, 0.1737653428714400, 0x1b5e4d60, 0xad4b6c5}, + /* 55 */ {5, 0.1729696904450771, 0x1dff8297, 0x44561a9}, + /* 56 */ {5, 0.1721954337940981, 0x20d38000, 0x3cc74acd}, + /* 57 */ {5, 0.1714416005739134, 0x23dd1799, 0x3235db46}, + /* 58 */ {5, 0.1707072796637201, 0x271f35a0, 0x28b2c7ad}, + /* 59 */ {5, 0.1699916162869140, 0x2a9ce10b, 0x201f0fb0}, + /* 60 */ {5, 0.1692938075987814, 0x2e593c00, 0x185fb22f}, + /* 61 */ {5, 0.1686130986895011, 0x3257844d, 0x115d1b2f}, + /* 62 */ {5, 0.1679487789570419, 0x369b13e0, 0xb02a89c}, + /* 63 */ {5, 0.1673001788101741, 0x3b27613f, 0x53e4201}, + /* 64 */ {5, 0.1666666666666667, 0x6, 0x0}, + /* 65 */ {4, 0.1660476462159378, 0x1106101, 0x384d9112}, + /* 66 */ {4, 0.1654425539190583, 0x1218810, 0x312d0aa0}, + /* 67 */ {4, 0.1648508567221603, 0x1337b51, 0x2a91a631}, + /* 68 */ {4, 0.1642720499620502, 0x1464100, 0x246fe68c}, + /* 69 */ {4, 0.1637056554452156, 0x159df71, 0x1ebd7263}, + /* 70 */ {4, 0.1631512196835108, 0x16e5d10, 0x1970f3ac}, + /* 71 */ {4, 0.1626083122716342, 0x183c061, 0x1481fb08}, + /* 72 */ {4, 0.1620765243931223, 0x19a1000, 0xfe8e6ad}, + /* 73 */ {4, 0.1615554674429964, 0x1b152a1, 0xb9ecc50}, + /* 74 */ {4, 0.1610447717564444, 0x1c98f10, 0x79d65ba}, + /* 75 */ {4, 0.1605440854340214, 0x1e2cc31, 0x3deffa1}, + /* 76 */ {4, 0.1600530732548213, 0x1fd1100, 0x5e6a7d}, + /* 77 */ {4, 0.1595714156699382, 0x2186491, 0x3a2dda36}, + /* 78 */ {4, 0.1590988078692941, 0x234ce10, 0x34087174}, + /* 79 */ {4, 0.1586349589155960, 0x25254c1, 0x2e44bce7}, + /* 80 */ {4, 0.1581795909397823, 0x2710000, 0x28db8bac}, + /* 81 */ {4, 0.1577324383928644, 0x290d741, 0x23c64907}, + /* 82 */ {4, 0.1572932473495469, 0x2b1e210, 0x1efeed6d}, + /* 83 */ {4, 0.1568617748594410, 0x2d42811, 0x1a7ff126}, + /* 84 */ {4, 0.1564377883420715, 0x2f7b100, 0x1644405b}, + /* 85 */ {4, 0.1560210650222250, 0x31c84b1, 0x1247305f}, + /* 86 */ {4, 0.1556113914024939, 0x342ab10, 0xe84760e}, + /* 87 */ {4, 0.1552085627701551, 0x36a2c21, 0xaf81d33}, + /* 88 */ {4, 0.1548123827357682, 0x3931000, 0x79e80b9}, + /* 89 */ {4, 0.1544226628011101, 0x3bd5ee1, 0x47443b7}, + /* 90 */ {4, 0.1540392219542636, 0x3e92110, 0x1764b1a}, + /* 91 */ {4, 0.1536618862898642, 0x4165ef1, 0x3d436fec}, + /* 92 */ {4, 0.1532904886526781, 0x4452100, 0x37e7c4c5}, + /* 93 */ {4, 0.1529248683028321, 0x4756fd1, 0x32d4a9a1}, + /* 94 */ {4, 0.1525648706011593, 0x4a75410, 0x2e058fa5}, + /* 95 */ {4, 0.1522103467132434, 0x4dad681, 0x29763c9a}, + /* 96 */ {4, 0.1518611533308632, 0x5100000, 0x2522c3f3}, + /* 97 */ {4, 0.1515171524096389, 0x546d981, 0x21078085}, + /* 98 */ {4, 0.1511782109217764, 0x57f6c10, 0x1d210ec7}, + /* 99 */ {4, 0.1508442006228941, 0x5b9c0d1, 0x196c479b}, + /* 100 */ {4, 0.1505149978319906, 0x5f5e100, 0x15e63b88}, + /* 101 */ {4, 0.1501904832236880, 0x633d5f1, 0x128c2e66}, + /* 102 */ {4, 0.1498705416319474, 0x673a910, 0xf5b9365}, + /* 103 */ {4, 0.1495550618645152, 0x6b563e1, 0xc52096c}, + /* 104 */ {4, 0.1492439365274121, 0x6f91000, 0x96d57cb}, + /* 105 */ {4, 0.1489370618588283, 0x73eb721, 0x6ab6b32}, + /* 106 */ {4, 0.1486343375718350, 0x7866310, 0x40a52e8}, + /* 107 */ {4, 0.1483356667053617, 0x7d01db1, 0x1883e3d}, + /* 108 */ {4, 0.1480409554829326, 0x81bf100, 0x3e46f46d}, + /* 109 */ {4, 0.1477501131786861, 0x869e711, 0x39b4deca}, + /* 110 */ {4, 0.1474630519902391, 0x8ba0a10, 0x35573fdb}, + /* 111 */ {4, 0.1471796869179852, 0x90c6441, 0x312b4b6c}, + /* 112 */ {4, 0.1468999356504447, 0x9610000, 0x2d2e6173}, + /* 113 */ {4, 0.1466237184553111, 0x9b7e7c1, 0x295e0afb}, + /* 114 */ {4, 0.1463509580758620, 0xa112610, 0x25b7f74a}, + /* 115 */ {4, 0.1460815796324244, 0xa6cc591, 0x2239f942}, + /* 116 */ {4, 0.1458155105286054, 0xacad100, 0x1ee204f4}, + /* 117 */ {4, 0.1455526803620167, 0xb2b5331, 0x1bae2d65}, + /* 118 */ {4, 0.1452930208392429, 0xb8e5710, 0x189ca276}, + /* 119 */ {4, 0.1450364656948130, 0xbf3e7a1, 0x15abaf01}, + /* 120 */ {4, 0.1447829506139581, 0xc5c1000, 0x12d9b70c}, + /* 121 */ {4, 0.1445324131589439, 0xcc6db61, 0x10253628}, + /* 122 */ {4, 0.1442847926987864, 0xd345510, 0xd8cbde9}, + /* 123 */ {4, 0.1440400303421672, 0xda48871, 0xb0ef47c}, + /* 124 */ {4, 0.1437980688733776, 0xe178100, 0x8aa9357}, + /* 125 */ {4, 0.1435588526911310, 0xe8d4a51, 0x65e6604}, + /* 126 */ {4, 0.1433223277500932, 0xf05f010, 0x42948f9}, + /* 127 */ {4, 0.1430884415049874, 0xf817e01, 0x20a288d}, + /* 128 */ {4, 0.1428571428571428, 0x7, 0x0}, + /* 129 */ {4, 0.1426283821033600, 0x10818201, 0x3c13b114}, + /* 130 */ {4, 0.1424021108869747, 0x11061010, 0x384d9112}, + /* 131 */ {4, 0.1421782821510107, 0x118db651, 0x34abe562}, + /* 132 */ {4, 0.1419568500933153, 0x12188100, 0x312d0aa0}, + /* 133 */ {4, 0.1417377701235801, 0x12a67c71, 0x2dcf733d}, + /* 134 */ {4, 0.1415209988221527, 0x1337b510, 0x2a91a631}, + /* 135 */ {4, 0.1413064939005528, 0x13cc3761, 0x27723dca}, + /* 136 */ {4, 0.1410942141636095, 0x14641000, 0x246fe68c}, + /* 137 */ {4, 0.1408841194731412, 0x14ff4ba1, 0x21895e21}, + /* 138 */ {4, 0.1406761707131039, 0x159df710, 0x1ebd7263}, + /* 139 */ {4, 0.1404703297561400, 0x16401f31, 0x1c0b0068}, + /* 140 */ {4, 0.1402665594314587, 0x16e5d100, 0x1970f3ac}, + /* 141 */ {4, 0.1400648234939879, 0x178f1991, 0x16ee4540}, + /* 142 */ {4, 0.1398650865947379, 0x183c0610, 0x1481fb08}, + /* 143 */ {4, 0.1396673142523192, 0x18eca3c1, 0x122b2706}, + /* 144 */ {4, 0.1394714728255649, 0x19a10000, 0xfe8e6ad}, + /* 145 */ {4, 0.1392775294872041, 0x1a592841, 0xdba6244}, + /* 146 */ {4, 0.1390854521985406, 0x1b152a10, 0xb9ecc50}, + /* 147 */ {4, 0.1388952096850913, 0x1bd51311, 0x9956102}, + /* 148 */ {4, 0.1387067714131417, 0x1c98f100, 0x79d65ba}, + /* 149 */ {4, 0.1385201075671774, 0x1d60d1b1, 0x5b62883}, + /* 150 */ {4, 0.1383351890281539, 0x1e2cc310, 0x3deffa1}, + /* 151 */ {4, 0.1381519873525671, 0x1efcd321, 0x2174924}, + /* 152 */ {4, 0.1379704747522905, 0x1fd11000, 0x5e6a7d}, + /* 153 */ {4, 0.1377906240751463, 0x20a987e1, 0x3d67a03a}, + /* 154 */ {4, 0.1376124087861776, 0x21864910, 0x3a2dda36}, + /* 155 */ {4, 0.1374358029495937, 0x226761f1, 0x370e75b5}, + /* 156 */ {4, 0.1372607812113589, 0x234ce100, 0x34087174}, + /* 157 */ {4, 0.1370873187823978, 0x2436d4d1, 0x311ad78d}, + /* 158 */ {4, 0.1369153914223921, 0x25254c10, 0x2e44bce7}, + /* 159 */ {4, 0.1367449754241439, 0x26185581, 0x2b8540a5}, + /* 160 */ {4, 0.1365760475984821, 0x27100000, 0x28db8bac}, + /* 161 */ {4, 0.1364085852596902, 0x280c5a81, 0x2646d025}, + /* 162 */ {4, 0.1362425662114337, 0x290d7410, 0x23c64907}, + /* 163 */ {4, 0.1360779687331669, 0x2a135bd1, 0x215939ad}, + /* 164 */ {4, 0.1359147715670014, 0x2b1e2100, 0x1efeed6d}, + /* 165 */ {4, 0.1357529539050150, 0x2c2dd2f1, 0x1cb6b732}, + /* 166 */ {4, 0.1355924953769864, 0x2d428110, 0x1a7ff126}, + /* 167 */ {4, 0.1354333760385373, 0x2e5c3ae1, 0x1859fc55}, + /* 168 */ {4, 0.1352755763596663, 0x2f7b1000, 0x1644405b}, + /* 169 */ {4, 0.1351190772136599, 0x309f1021, 0x143e2b17}, + /* 170 */ {4, 0.1349638598663645, 0x31c84b10, 0x1247305f}, + /* 171 */ {4, 0.1348099059658080, 0x32f6d0b1, 0x105ec9b6}, + /* 172 */ {4, 0.1346571975321549, 0x342ab100, 0xe84760e}, + /* 173 */ {4, 0.1345057169479844, 0x3563fc11, 0xcb7b988}, + /* 174 */ {4, 0.1343554469488779, 0x36a2c210, 0xaf81d33}, + /* 175 */ {4, 0.1342063706143054, 0x37e71341, 0x9452ed6}, + /* 176 */ {4, 0.1340584713587979, 0x39310000, 0x79e80b9}, + /* 177 */ {4, 0.1339117329233981, 0x3a8098c1, 0x603a974}, + /* 178 */ {4, 0.1337661393673756, 0x3bd5ee10, 0x47443b7}, + /* 179 */ {4, 0.1336216750601996, 0x3d311091, 0x2efee23}, + /* 180 */ {4, 0.1334783246737591, 0x3e921100, 0x1764b1a}, + /* 181 */ {4, 0.1333360731748201, 0x3ff90031, 0x70093}, + /* 182 */ {3, 0.1331949058177136, 0x5bfd18, 0x190df192}, + /* 183 */ {3, 0.1330548081372441, 0x5d8367, 0x179a3ed3}, + /* 184 */ {3, 0.1329157659418126, 0x5f0e00, 0x162e956e}, + /* 185 */ {3, 0.1327777653067443, 0x609ce9, 0x14cabe14}, + /* 186 */ {3, 0.1326407925678156, 0x623028, 0x136e833f}, + /* 187 */ {3, 0.1325048343149731, 0x63c7c3, 0x1219b11b}, + /* 188 */ {3, 0.1323698773862368, 0x6563c0, 0x10cc157d}, + /* 189 */ {3, 0.1322359088617821, 0x670425, 0xf857fcd}, + /* 190 */ {3, 0.1321029160581950, 0x68a8f8, 0xe45c0fa}, + /* 191 */ {3, 0.1319708865228925, 0x6a523f, 0xd0cab6c}, + /* 192 */ {3, 0.1318398080287045, 0x6c0000, 0xbda12f6}, + /* 193 */ {3, 0.1317096685686114, 0x6db241, 0xaadccc8}, + /* 194 */ {3, 0.1315804563506306, 0x6f6908, 0x987af65}, + /* 195 */ {3, 0.1314521597928493, 0x71245b, 0x8679292}, + /* 196 */ {3, 0.1313247675185968, 0x72e440, 0x74d4f50}, + /* 197 */ {3, 0.1311982683517524, 0x74a8bd, 0x638bfcf}, + /* 198 */ {3, 0.1310726513121843, 0x7671d8, 0x529bf62}, + /* 199 */ {3, 0.1309479056113158, 0x783f97, 0x4202a74}, + /* 200 */ {3, 0.1308240206478128, 0x7a1200, 0x31bde82}, + /* 201 */ {3, 0.1307009860033912, 0x7be919, 0x21cba10}, + /* 202 */ {3, 0.1305787914387386, 0x7dc4e8, 0x1229c9d}, + /* 203 */ {3, 0.1304574268895465, 0x7fa573, 0x2d669e}, + /* 204 */ {3, 0.1303368824626505, 0x818ac0, 0x3e79f2e9}, + /* 205 */ {3, 0.1302171484322746, 0x8374d5, 0x3ca26ecc}, + /* 206 */ {3, 0.1300982152363760, 0x8563b8, 0x3ad4072a}, + /* 207 */ {3, 0.1299800734730872, 0x87576f, 0x390e83f0}, + /* 208 */ {3, 0.1298627138972530, 0x895000, 0x3751aeaa}, + /* 209 */ {3, 0.1297461274170591, 0x8b4d71, 0x359d5271}, + /* 210 */ {3, 0.1296303050907487, 0x8d4fc8, 0x33f13bdf}, + /* 211 */ {3, 0.1295152381234257, 0x8f570b, 0x324d3902}, + /* 212 */ {3, 0.1294009178639407, 0x916340, 0x30b11951}, + /* 213 */ {3, 0.1292873358018581, 0x93746d, 0x2f1cad9e}, + /* 214 */ {3, 0.1291744835645007, 0x958a98, 0x2d8fc80f}, + /* 215 */ {3, 0.1290623529140715, 0x97a5c7, 0x2c0a3c0c}, + /* 216 */ {3, 0.1289509357448472, 0x99c600, 0x2a8bde3c}, + /* 217 */ {3, 0.1288402240804449, 0x9beb49, 0x29148476}, + /* 218 */ {3, 0.1287302100711566, 0x9e15a8, 0x27a405b8}, + /* 219 */ {3, 0.1286208859913518, 0xa04523, 0x263a3a20}, + /* 220 */ {3, 0.1285122442369443, 0xa279c0, 0x24d6fae0}, + /* 221 */ {3, 0.1284042773229231, 0xa4b385, 0x237a2237}, + /* 222 */ {3, 0.1282969778809442, 0xa6f278, 0x22238b68}, + /* 223 */ {3, 0.1281903386569819, 0xa9369f, 0x20d312b1}, + /* 224 */ {3, 0.1280843525090381, 0xab8000, 0x1f889545}, + /* 225 */ {3, 0.1279790124049077, 0xadcea1, 0x1e43f144}, + /* 226 */ {3, 0.1278743114199984, 0xb02288, 0x1d0505b2}, + /* 227 */ {3, 0.1277702427352035, 0xb27bbb, 0x1bcbb272}, + /* 228 */ {3, 0.1276667996348261, 0xb4da40, 0x1a97d83e}, + /* 229 */ {3, 0.1275639755045533, 0xb73e1d, 0x196958a1}, + /* 230 */ {3, 0.1274617638294791, 0xb9a758, 0x184015f1}, + /* 231 */ {3, 0.1273601581921740, 0xbc15f7, 0x171bf348}, + /* 232 */ {3, 0.1272591522708010, 0xbe8a00, 0x15fcd47d}, + /* 233 */ {3, 0.1271587398372755, 0xc10379, 0x14e29e23}, + /* 234 */ {3, 0.1270589147554692, 0xc38268, 0x13cd357e}, + /* 235 */ {3, 0.1269596709794558, 0xc606d3, 0x12bc8080}, + /* 236 */ {3, 0.1268610025517973, 0xc890c0, 0x11b065c5}, + /* 237 */ {3, 0.1267629036018709, 0xcb2035, 0x10a8cc8c}, + /* 238 */ {3, 0.1266653683442337, 0xcdb538, 0xfa59cb3}, + /* 239 */ {3, 0.1265683910770258, 0xd04fcf, 0xea6beb4}, + /* 240 */ {3, 0.1264719661804097, 0xd2f000, 0xdac1b9c}, + /* 241 */ {3, 0.1263760881150453, 0xd595d1, 0xcb59d0c}, + /* 242 */ {3, 0.1262807514205999, 0xd84148, 0xbc32d32}, + /* 243 */ {3, 0.1261859507142915, 0xdaf26b, 0xad4b6c5}, + /* 244 */ {3, 0.1260916806894653, 0xdda940, 0x9ea2502}, + /* 245 */ {3, 0.1259979361142023, 0xe065cd, 0x90363a6}, + /* 246 */ {3, 0.1259047118299582, 0xe32818, 0x8205eef}, + /* 247 */ {3, 0.1258120027502338, 0xe5f027, 0x7410392}, + /* 248 */ {3, 0.1257198038592741, 0xe8be00, 0x6653ebd}, + /* 249 */ {3, 0.1256281102107963, 0xeb91a9, 0x58cfe11}, + /* 250 */ {3, 0.1255369169267456, 0xee6b28, 0x4b82fa0}, + /* 251 */ {3, 0.1254462191960791, 0xf14a83, 0x3e6c1e9}, + /* 252 */ {3, 0.1253560122735751, 0xf42fc0, 0x318a3d5}, + /* 253 */ {3, 0.1252662914786691, 0xf71ae5, 0x24dc4b4}, + /* 254 */ {3, 0.1251770521943144, 0xfa0bf8, 0x186143c}, + /* 255 */ {3, 0.1250882898658681, 0xfd02ff, 0xc18283}, + /* 256 */ {3, 0.1250000000000000, 0x8, 0x0}, +}; +#endif /* 30 */ +#if GMP_NUMB_BITS == 32 const struct bases mp_bases[257] = { /* 0 */ {0, 0.0, 0, 0}, @@ -1080,7 +1604,531 @@ const struct bases mp_bases[257] = /* 256 */ {4, 0.1250000000000000, 0x8, 0x0}, }; #endif /* 32 */ -#if BITS_PER_MP_LIMB == 64 +#if GMP_NUMB_BITS == 60 +const struct bases mp_bases[257] = +{ + /* 0 */ {0, 0.0, 0, 0}, + /* 1 */ {0, 1e37, 0, 0}, + /* 2 */ {60, 1.0000000000000000, 0x1, 0x0}, + /* 3 */ {37, 0.6309297535714574, CNST_LIMB(0x63fbad3a2b55473), CNST_LIMB(0x47bc3fc3ff00bd4)}, + /* 4 */ {30, 0.5000000000000000, 0x2, 0x0}, + /* 5 */ {25, 0.4306765580733931, CNST_LIMB(0x422ca8b0a00a425), CNST_LIMB(0xef2d0f5da7dd8aa)}, + /* 6 */ {23, 0.3868528072345416, CNST_LIMB(0xaf5af7425800000), CNST_LIMB(0x75bb89a67c1b79f)}, + /* 7 */ {21, 0.3562071871080222, CNST_LIMB(0x7c05a810b72a027), CNST_LIMB(0x8360313150c31e)}, + /* 8 */ {20, 0.3333333333333333, 0x3, 0x0}, + /* 9 */ {18, 0.3154648767857287, CNST_LIMB(0x2153e468b91c6d1), CNST_LIMB(0xeb9a5fa5fe811be)}, + /* 10 */ {18, 0.3010299956639812, CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x2725dd1d243aba0)}, + /* 11 */ {17, 0.2890648263178878, CNST_LIMB(0x703b564fa7a264b), CNST_LIMB(0x23f79a47d00f0c2)}, + /* 12 */ {16, 0.2789429456511298, CNST_LIMB(0x290d74100000000), CNST_LIMB(0x8f19241e28c7d75)}, + /* 13 */ {16, 0.2702381544273197, CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0xbb8db609dd29ebf)}, + /* 14 */ {15, 0.2626495350371935, CNST_LIMB(0x228b05bd21b8000), CNST_LIMB(0xda4e7e1af48bc96)}, + /* 15 */ {15, 0.2559580248098155, CNST_LIMB(0x613b62c597707ef), CNST_LIMB(0x51022b797ce7ec5)}, + /* 16 */ {15, 0.2500000000000000, 0x4, 0x0}, + /* 17 */ {14, 0.2446505421182260, CNST_LIMB(0x25632bdbc201be1), CNST_LIMB(0xb638ff2d65da0c5)}, + /* 18 */ {14, 0.2398124665681314, CNST_LIMB(0x5339ac59fcc4000), CNST_LIMB(0x89b9fb6ae9fd576)}, + /* 19 */ {14, 0.2354089133666382, CNST_LIMB(0xb16a458ef403f19), CNST_LIMB(0x7164becb502365c)}, + /* 20 */ {13, 0.2313782131597592, CNST_LIMB(0x12309ce54000000), CNST_LIMB(0xc25c268497681c2)}, + /* 21 */ {13, 0.2276702486969530, CNST_LIMB(0x224cbcf22c00b65), CNST_LIMB(0xddabc7249999b8e)}, + /* 22 */ {13, 0.2242438242175754, CNST_LIMB(0x3ecbe3fcf076000), CNST_LIMB(0x4e80efa1448b25)}, + /* 23 */ {13, 0.2210647294575037, CNST_LIMB(0x6feb266931a75b7), CNST_LIMB(0x24c8ca611d372b9)}, + /* 24 */ {13, 0.2181042919855316, CNST_LIMB(0xc29e98000000000), CNST_LIMB(0x50bd367972689db)}, + /* 25 */ {12, 0.2153382790366965, CNST_LIMB(0xd3c21bcecceda1), CNST_LIMB(0x357c299a88ea76a)}, + /* 26 */ {12, 0.2127460535533632, CNST_LIMB(0x1530821671b1000), CNST_LIMB(0x829b5a64c4f6e42)}, + /* 27 */ {12, 0.2103099178571525, CNST_LIMB(0x2153e468b91c6d1), CNST_LIMB(0xeb9a5fa5fe811be)}, + /* 28 */ {12, 0.2080145976765095, CNST_LIMB(0x339014821000000), CNST_LIMB(0x3dbf957b0ed3a56)}, + /* 29 */ {12, 0.2058468324604344, CNST_LIMB(0x4e900abb53e6b71), CNST_LIMB(0xa118034ebf7691b)}, + /* 30 */ {12, 0.2037950470905062, CNST_LIMB(0x7600ec618141000), CNST_LIMB(0x15afb9b26a5b594)}, + /* 31 */ {12, 0.2018490865820999, CNST_LIMB(0xaee5720ee830681), CNST_LIMB(0x76b6aa272e1873c)}, + /* 32 */ {11, 0.2000000000000000, 0x5, 0x0}, + /* 33 */ {11, 0.1982398631705605, CNST_LIMB(0xb38fc730f35d61), CNST_LIMB(0x6cfa4d82a2ddfd4)}, + /* 34 */ {11, 0.1965616322328226, CNST_LIMB(0xf95c61a43d8800), CNST_LIMB(0x6d0dec9b1fd6d3)}, + /* 35 */ {11, 0.1949590218937863, CNST_LIMB(0x15702f27495705b), CNST_LIMB(0x7e1f0c942ca5c40)}, + /* 36 */ {11, 0.1934264036172708, CNST_LIMB(0x1d39d3e06400000), CNST_LIMB(0x184ca73cdd149b7)}, + /* 37 */ {11, 0.1919587200065601, CNST_LIMB(0x27817226572713d), CNST_LIMB(0x9eb9baf930a652b)}, + /* 38 */ {11, 0.1905514124267734, CNST_LIMB(0x34f940402e95800), CNST_LIMB(0x3549321f8ae1234)}, + /* 39 */ {11, 0.1892003595168700, CNST_LIMB(0x467e6978c602bf7), CNST_LIMB(0xd0d5d15eec6384f)}, + /* 40 */ {11, 0.1879018247091076, CNST_LIMB(0x5d21dba00000000), CNST_LIMB(0x5fd7fe17964955f)}, + /* 41 */ {11, 0.1866524112389434, CNST_LIMB(0x7a32956ad081b79), CNST_LIMB(0xc27e62e0686fea)}, + /* 42 */ {11, 0.1854490234153689, CNST_LIMB(0x9f49aaff0e86800), CNST_LIMB(0x9b6e7507064ce7c)}, + /* 43 */ {11, 0.1842888331487062, CNST_LIMB(0xce583bb812d37b3), CNST_LIMB(0x3d9ac2bf66cfed9)}, + /* 44 */ {10, 0.1831692509136336, CNST_LIMB(0x609fdb0d900000), CNST_LIMB(0x5320a1778ddd7dc)}, + /* 45 */ {10, 0.1820879004699383, CNST_LIMB(0x78f8ddd8eaf209), CNST_LIMB(0xedf4ecb750d5f5)}, + /* 46 */ {10, 0.1810425967800402, CNST_LIMB(0x96b571f0d14400), CNST_LIMB(0xb2da18546c9c48b)}, + /* 47 */ {10, 0.1800313266566926, CNST_LIMB(0xbadea1d0691321), CNST_LIMB(0x5eb44fc612bcd70)}, + /* 48 */ {10, 0.1790522317510414, CNST_LIMB(0xe6a90000000000), CNST_LIMB(0x1c1fa5f67888450)}, + /* 49 */ {10, 0.1781035935540111, CNST_LIMB(0x11b7aa4b87e16e1), CNST_LIMB(0xce5e856164d5575)}, + /* 50 */ {10, 0.1771838201355579, CNST_LIMB(0x15af1d78b58c400), CNST_LIMB(0x79ca10c9242235d)}, + /* 51 */ {10, 0.1762914343888821, CNST_LIMB(0x1a6ec7429724549), CNST_LIMB(0x35eb3821aa2c701)}, + /* 52 */ {10, 0.1754250635819545, CNST_LIMB(0x201901a5c900000), CNST_LIMB(0xfe711d590c0df93)}, + /* 53 */ {10, 0.1745834300480449, CNST_LIMB(0x26d533a4acd9559), CNST_LIMB(0xa5e942153523d6b)}, + /* 54 */ {10, 0.1737653428714400, CNST_LIMB(0x2ed070f29e2e400), CNST_LIMB(0x5dfaa697ec6f6a1)}, + /* 55 */ {10, 0.1729696904450771, CNST_LIMB(0x383e29ba16fb511), CNST_LIMB(0x234eeafe97d6a42)}, + /* 56 */ {10, 0.1721954337940981, CNST_LIMB(0x4358ebc40000000), CNST_LIMB(0xe68d5ce46eb4155)}, + /* 57 */ {10, 0.1714416005739134, CNST_LIMB(0x50633659656d971), CNST_LIMB(0x97a014f8e3be55f)}, + /* 58 */ {10, 0.1707072796637201, CNST_LIMB(0x5fa8624c7fba400), CNST_LIMB(0x568df8b76cbf212)}, + /* 59 */ {10, 0.1699916162869140, CNST_LIMB(0x717d9faa73c5679), CNST_LIMB(0x20ba7c4b4e6ef49)}, + /* 60 */ {10, 0.1692938075987814, CNST_LIMB(0x86430aac6100000), CNST_LIMB(0xe81ee46b9ef492f)}, + /* 61 */ {10, 0.1686130986895011, CNST_LIMB(0x9e64d9944b57f29), CNST_LIMB(0x9dc0d10d5194041)}, + /* 62 */ {10, 0.1679487789570419, CNST_LIMB(0xba5ca5392cb0400), CNST_LIMB(0x5fa8ed2f450272a)}, + /* 63 */ {10, 0.1673001788101741, CNST_LIMB(0xdab2ce1d022cd81), CNST_LIMB(0x2ba9eb8c5e04e64)}, + /* 64 */ {10, 0.1666666666666667, 0x6, 0x0}, + /* 65 */ {9, 0.1660476462159378, CNST_LIMB(0x49955fff524241), CNST_LIMB(0xbd51373330291de)}, + /* 66 */ {9, 0.1654425539190583, CNST_LIMB(0x546c0815224200), CNST_LIMB(0x842530ee2db4949)}, + /* 67 */ {9, 0.1648508567221603, CNST_LIMB(0x60a832ea42b723), CNST_LIMB(0x53035ba7ebf32e8)}, + /* 68 */ {9, 0.1642720499620502, CNST_LIMB(0x6e718d92440000), CNST_LIMB(0x28b1cb81b1ef184)}, + /* 69 */ {9, 0.1637056554452156, CNST_LIMB(0x7df37c6dfc47a5), CNST_LIMB(0x42a17bd09be1ff)}, + /* 70 */ {9, 0.1631512196835108, CNST_LIMB(0x8f5d644aa40600), CNST_LIMB(0xc920a4cc42694db)}, + /* 71 */ {9, 0.1626083122716342, CNST_LIMB(0xa2e2f7eeceb187), CNST_LIMB(0x92575d910a710d4)}, + /* 72 */ {9, 0.1620765243931223, CNST_LIMB(0xb8bc8a48000000), CNST_LIMB(0x62c103a907ce14b)}, + /* 73 */ {9, 0.1615554674429964, CNST_LIMB(0xd127656d1c2389), CNST_LIMB(0x3956b266f959f77)}, + /* 74 */ {9, 0.1610447717564444, CNST_LIMB(0xec6626ab750a00), CNST_LIMB(0x1539e71bd2a52e0)}, + /* 75 */ {9, 0.1605440854340214, CNST_LIMB(0x10ac11fd5bfc76b), CNST_LIMB(0xeb5bbd5681607ad)}, + /* 76 */ {9, 0.1600530732548213, CNST_LIMB(0x12c86be0dcc0000), CNST_LIMB(0xb42437ae7ad77ab)}, + /* 77 */ {9, 0.1595714156699382, CNST_LIMB(0x1520bf6436b5bed), CNST_LIMB(0x83bbbed2c40a264)}, + /* 78 */ {9, 0.1590988078692941, CNST_LIMB(0x17bacb7a490ce00), CNST_LIMB(0x5938cc1e9f4f691)}, + /* 79 */ {9, 0.1586349589155960, CNST_LIMB(0x1a9cc643c4ebecf), CNST_LIMB(0x33d3907e4fe3d47)}, + /* 80 */ {9, 0.1581795909397823, CNST_LIMB(0x1dcd65000000000), CNST_LIMB(0x12e0be826d694b2)}, + /* 81 */ {9, 0.1577324383928644, CNST_LIMB(0x2153e468b91c6d1), CNST_LIMB(0xeb9a5fa5fe811be)}, + /* 82 */ {9, 0.1572932473495469, CNST_LIMB(0x2538117cf94d200), CNST_LIMB(0xb8347f9d0e371b9)}, + /* 83 */ {9, 0.1568617748594410, CNST_LIMB(0x298252bf5714db3), CNST_LIMB(0x8ab5784986179d5)}, + /* 84 */ {9, 0.1564377883420715, CNST_LIMB(0x2e3bb1ebfd40000), CNST_LIMB(0x6260a3cc8ced3da)}, + /* 85 */ {9, 0.1560210650222250, CNST_LIMB(0x336de62af2bca35), CNST_LIMB(0x3e92c42e000eeed)}, + /* 86 */ {9, 0.1556113914024939, CNST_LIMB(0x39235ec33d49600), CNST_LIMB(0x1ebe59130db2795)}, + /* 87 */ {9, 0.1552085627701551, CNST_LIMB(0x3f674e539585a17), CNST_LIMB(0x268859e90f51b8)}, + /* 88 */ {9, 0.1548123827357682, CNST_LIMB(0x4645b6958000000), CNST_LIMB(0xd24cde0463108cf)}, + /* 89 */ {9, 0.1544226628011101, CNST_LIMB(0x4dcb74afbc49c19), CNST_LIMB(0xa536009f37adc38)}, + /* 90 */ {9, 0.1540392219542636, CNST_LIMB(0x56064e1d18d9a00), CNST_LIMB(0x7cea06ce1c9ace1)}, + /* 91 */ {9, 0.1536618862898642, CNST_LIMB(0x5f04fe2cd8a39fb), CNST_LIMB(0x58db032e72e8ba4)}, + /* 92 */ {9, 0.1532904886526781, CNST_LIMB(0x68d74421f5c0000), CNST_LIMB(0x388cc17cae10544)}, + /* 93 */ {9, 0.1529248683028321, CNST_LIMB(0x738df1f6ab4827d), CNST_LIMB(0x1b92672857620ce)}, + /* 94 */ {9, 0.1525648706011593, CNST_LIMB(0x7f3afbc9cfb5e00), CNST_LIMB(0x18c6a9575c2ade)}, + /* 95 */ {9, 0.1522103467132434, CNST_LIMB(0x8bf187fba88f35f), CNST_LIMB(0xd44da7da8e44b24)}, + /* 96 */ {9, 0.1518611533308632, CNST_LIMB(0x99c600000000000), CNST_LIMB(0xaa2f78f1b4cc679)}, + /* 97 */ {9, 0.1515171524096389, CNST_LIMB(0xa8ce21eb6531361), CNST_LIMB(0x843c067d091ee4c)}, + /* 98 */ {9, 0.1511782109217764, CNST_LIMB(0xb92112c1a0b6200), CNST_LIMB(0x62005e1e913356e)}, + /* 99 */ {9, 0.1508442006228941, CNST_LIMB(0xcad7718b8747c43), CNST_LIMB(0x4316eed01dedd51)}, + /* 100 */ {9, 0.1505149978319906, CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x2725dd1d243aba0)}, + /* 101 */ {9, 0.1501904832236880, CNST_LIMB(0xf2d8cf5fe6d74c5), CNST_LIMB(0xddd9057c24cb54)}, + /* 102 */ {8, 0.1498705416319474, CNST_LIMB(0x29a02e14062100), CNST_LIMB(0x899a5ba9c13fafd)}, + /* 103 */ {8, 0.1495550618645152, CNST_LIMB(0x2d0134ef21cbc1), CNST_LIMB(0x6c0cfe23de23042)}, + /* 104 */ {8, 0.1492439365274121, CNST_LIMB(0x309f1021000000), CNST_LIMB(0x50f8ac5fc8f5398)}, + /* 105 */ {8, 0.1489370618588283, CNST_LIMB(0x347d6104fc3241), CNST_LIMB(0x382316831f7ee17)}, + /* 106 */ {8, 0.1486343375718350, CNST_LIMB(0x389ff6bb156100), CNST_LIMB(0x2157c761ab4163e)}, + /* 107 */ {8, 0.1483356667053617, CNST_LIMB(0x3d0acff1119461), CNST_LIMB(0xc6781d80f8224f)}, + /* 108 */ {8, 0.1480409554829326, CNST_LIMB(0x41c21cb8e10000), CNST_LIMB(0xf24f62335024a29)}, + /* 109 */ {8, 0.1477501131786861, CNST_LIMB(0x46ca406c81af21), CNST_LIMB(0xcee3d32cad2a904)}, + /* 110 */ {8, 0.1474630519902391, CNST_LIMB(0x4c27d39fa54100), CNST_LIMB(0xae46f0d94c05e93)}, + /* 111 */ {8, 0.1471796869179852, CNST_LIMB(0x51dfa61f5ad881), CNST_LIMB(0x9039ff426d3f284)}, + /* 112 */ {8, 0.1468999356504447, CNST_LIMB(0x57f6c100000000), CNST_LIMB(0x74843b1ee4c1e05)}, + /* 113 */ {8, 0.1466237184553111, CNST_LIMB(0x5e7268b9bbdf81), CNST_LIMB(0x5af23c74f9ad9fe)}, + /* 114 */ {8, 0.1463509580758620, CNST_LIMB(0x65581f53c8c100), CNST_LIMB(0x43556aa2ac262a0)}, + /* 115 */ {8, 0.1460815796324244, CNST_LIMB(0x6cada69ed07c21), CNST_LIMB(0x2d837fbe7845876)}, + /* 116 */ {8, 0.1458155105286054, CNST_LIMB(0x7479027ea10000), CNST_LIMB(0x19561984a50ff8f)}, + /* 117 */ {8, 0.1455526803620167, CNST_LIMB(0x7cc07b437ecf61), CNST_LIMB(0x6aa563e655033e)}, + /* 118 */ {8, 0.1452930208392429, CNST_LIMB(0x858aa0135be100), CNST_LIMB(0xeac0f8837fb0577)}, + /* 119 */ {8, 0.1450364656948130, CNST_LIMB(0x8ede496339f341), CNST_LIMB(0xcab755a8d01fa67)}, + /* 120 */ {8, 0.1447829506139581, CNST_LIMB(0x98c29b81000000), CNST_LIMB(0xad0326c296b4f52)}, + /* 121 */ {8, 0.1445324131589439, CNST_LIMB(0xa33f092e0b1ac1), CNST_LIMB(0x91747422be14b0b)}, + /* 122 */ {8, 0.1442847926987864, CNST_LIMB(0xae5b564ac3a100), CNST_LIMB(0x77df79e9a96c06f)}, + /* 123 */ {8, 0.1440400303421672, CNST_LIMB(0xba1f9a938041e1), CNST_LIMB(0x601c4205aebd9e4)}, + /* 124 */ {8, 0.1437980688733776, CNST_LIMB(0xc694446f010000), CNST_LIMB(0x4a0648979c838c1)}, + /* 125 */ {8, 0.1435588526911310, CNST_LIMB(0xd3c21bcecceda1), CNST_LIMB(0x357c299a88ea76a)}, + /* 126 */ {8, 0.1433223277500932, CNST_LIMB(0xe1b24521be0100), CNST_LIMB(0x225f56ceb3da9f5)}, + /* 127 */ {8, 0.1430884415049874, CNST_LIMB(0xf06e445906fc01), CNST_LIMB(0x1093d504b3cd7d9)}, + /* 128 */ {8, 0.1428571428571428, 0x7, 0x0}, + /* 129 */ {8, 0.1426283821033600, CNST_LIMB(0x11071c467070401), CNST_LIMB(0xe118a87d4cc9959)}, + /* 130 */ {8, 0.1424021108869747, CNST_LIMB(0x121ce46e1c20100), CNST_LIMB(0xc4467c0ffce9c25)}, + /* 131 */ {8, 0.1421782821510107, CNST_LIMB(0x13420a9191145a1), CNST_LIMB(0xa961da6b975bdda)}, + /* 132 */ {8, 0.1419568500933153, CNST_LIMB(0x147747c71010000), CNST_LIMB(0x90465a759f22394)}, + /* 133 */ {8, 0.1417377701235801, CNST_LIMB(0x15bd5c58309a9e1), CNST_LIMB(0x78d281ef0b3202b)}, + /* 134 */ {8, 0.1415209988221527, CNST_LIMB(0x17150ffacefa100), CNST_LIMB(0x62e783f3cb0294b)}, + /* 135 */ {8, 0.1413064939005528, CNST_LIMB(0x187f320b492d2c1), CNST_LIMB(0x4e69059f8707071)}, + /* 136 */ {8, 0.1410942141636095, CNST_LIMB(0x19fc99c81000000), CNST_LIMB(0x3b3ce839cd0e09c)}, + /* 137 */ {8, 0.1408841194731412, CNST_LIMB(0x1b8e268e915bb41), CNST_LIMB(0x294b185caf87e8b)}, + /* 138 */ {8, 0.1406761707131039, CNST_LIMB(0x1d34c01980fe100), CNST_LIMB(0x187d6197ce80fa6)}, + /* 139 */ {8, 0.1404703297561400, CNST_LIMB(0x1ef156c084ce761), CNST_LIMB(0x8bf461f03cf0bb)}, + /* 140 */ {8, 0.1402665594314587, CNST_LIMB(0x20c4e3b94a10000), CNST_LIMB(0xf3fbb43f68a32d0)}, + /* 141 */ {8, 0.1400648234939879, CNST_LIMB(0x22b0695a08ba421), CNST_LIMB(0xd84f44c48564dc1)}, + /* 142 */ {8, 0.1398650865947379, CNST_LIMB(0x24b4f35d7a4c100), CNST_LIMB(0xbe58ebcce7956ab)}, + /* 143 */ {8, 0.1396673142523192, CNST_LIMB(0x26d397284975781), CNST_LIMB(0xa5fac463c7c134b)}, + /* 144 */ {8, 0.1394714728255649, CNST_LIMB(0x290d74100000000), CNST_LIMB(0x8f19241e28c7d75)}, + /* 145 */ {8, 0.1392775294872041, CNST_LIMB(0x2b63b3a37866081), CNST_LIMB(0x799a6d046c0ae1a)}, + /* 146 */ {8, 0.1390854521985406, CNST_LIMB(0x2dd789f4d894100), CNST_LIMB(0x6566e37d746a9e4)}, + /* 147 */ {8, 0.1388952096850913, CNST_LIMB(0x306a35e51b58721), CNST_LIMB(0x526887dbfb5f788)}, + /* 148 */ {8, 0.1387067714131417, CNST_LIMB(0x331d01712e10000), CNST_LIMB(0x408af3382b8efd3)}, + /* 149 */ {8, 0.1385201075671774, CNST_LIMB(0x35f14200a827c61), CNST_LIMB(0x2fbb374806ec05f)}, + /* 150 */ {8, 0.1383351890281539, CNST_LIMB(0x38e858b62216100), CNST_LIMB(0x1fe7c0f0afce87f)}, + /* 151 */ {8, 0.1381519873525671, CNST_LIMB(0x3c03b2c13176a41), CNST_LIMB(0x11003d517540d32)}, + /* 152 */ {8, 0.1379704747522905, CNST_LIMB(0x3f44c9b21000000), CNST_LIMB(0x2f5810f98eff0d)}, + /* 153 */ {8, 0.1377906240751463, CNST_LIMB(0x42ad23cef3113c1), CNST_LIMB(0xeb72e35e7840d91)}, + /* 154 */ {8, 0.1376124087861776, CNST_LIMB(0x463e546b19a2100), CNST_LIMB(0xd27de19593dc361)}, + /* 155 */ {8, 0.1374358029495937, CNST_LIMB(0x49f9fc3f96684e1), CNST_LIMB(0xbaf391fd3e5e6fc)}, + /* 156 */ {8, 0.1372607812113589, CNST_LIMB(0x4de1c9c5dc10000), CNST_LIMB(0xa4bd38c55228c81)}, + /* 157 */ {8, 0.1370873187823978, CNST_LIMB(0x51f77994116d2a1), CNST_LIMB(0x8fc5a8de8e1de78)}, + /* 158 */ {8, 0.1369153914223921, CNST_LIMB(0x563cd6bb3398100), CNST_LIMB(0x7bf9265bea9d3a3)}, + /* 159 */ {8, 0.1367449754241439, CNST_LIMB(0x5ab3bb270beeb01), CNST_LIMB(0x69454b325983dcc)}, + /* 160 */ {8, 0.1365760475984821, CNST_LIMB(0x5f5e10000000000), CNST_LIMB(0x5798ee2308c39df)}, + /* 161 */ {8, 0.1364085852596902, CNST_LIMB(0x643dce0ec16f501), CNST_LIMB(0x46e40ba0fa66a75)}, + /* 162 */ {8, 0.1362425662114337, CNST_LIMB(0x6954fe21e3e8100), CNST_LIMB(0x3717b0870b0db3a)}, + /* 163 */ {8, 0.1360779687331669, CNST_LIMB(0x6ea5b9755f440a1), CNST_LIMB(0x2825e6775d11cde)}, + /* 164 */ {8, 0.1359147715670014, CNST_LIMB(0x74322a1c0410000), CNST_LIMB(0x1a01a1c09d1b4da)}, + /* 165 */ {8, 0.1357529539050150, CNST_LIMB(0x79fc8b6ae8a46e1), CNST_LIMB(0xc9eb0a8bebc8f3)}, + /* 166 */ {8, 0.1355924953769864, CNST_LIMB(0x80072a66d512100), CNST_LIMB(0xffe357ff59e6a00)}, + /* 167 */ {8, 0.1354333760385373, CNST_LIMB(0x86546633b42b9c1), CNST_LIMB(0xe7dfd1be05fa61a)}, + /* 168 */ {8, 0.1352755763596663, CNST_LIMB(0x8ce6b0861000000), CNST_LIMB(0xd11ed6fc78f760e)}, + /* 169 */ {8, 0.1351190772136599, CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0xbb8db609dd29ebf)}, + /* 170 */ {8, 0.1349638598663645, CNST_LIMB(0x9ae49717f026100), CNST_LIMB(0xa71aec8d1813d53)}, + /* 171 */ {8, 0.1348099059658080, CNST_LIMB(0xa25577ae24c1a61), CNST_LIMB(0x93b612a9f20fbc0)}, + /* 172 */ {8, 0.1346571975321549, CNST_LIMB(0xaa15f068e610000), CNST_LIMB(0x814fc7b19a67d31)}, + /* 173 */ {8, 0.1345057169479844, CNST_LIMB(0xb228d6bf7577921), CNST_LIMB(0x6fd9a03f2e0a4b7)}, + /* 174 */ {8, 0.1343554469488779, CNST_LIMB(0xba91158ef5c4100), CNST_LIMB(0x5f4615a38d0d316)}, + /* 175 */ {8, 0.1342063706143054, CNST_LIMB(0xc351ad9aec0b681), CNST_LIMB(0x4f8876863479a28)}, + /* 176 */ {8, 0.1340584713587979, CNST_LIMB(0xcc6db6100000000), CNST_LIMB(0x4094d8a3041b60e)}, + /* 177 */ {8, 0.1339117329233981, CNST_LIMB(0xd5e85d09025c181), CNST_LIMB(0x32600b8ed883a09)}, + /* 178 */ {8, 0.1337661393673756, CNST_LIMB(0xdfc4e816401c100), CNST_LIMB(0x24df8c6eb4b6d1f)}, + /* 179 */ {8, 0.1336216750601996, CNST_LIMB(0xea06b4c72947221), CNST_LIMB(0x18097a8ee151ace)}, + /* 180 */ {8, 0.1334783246737591, CNST_LIMB(0xf4b139365210000), CNST_LIMB(0xbd48cc8ec1cd8e)}, + /* 181 */ {8, 0.1333360731748201, CNST_LIMB(0xffc80497d520961), CNST_LIMB(0x3807a8d67485f)}, + /* 182 */ {7, 0.1331949058177136, CNST_LIMB(0x177fe3d9813980), CNST_LIMB(0x5c9a244f4c18518)}, + /* 183 */ {7, 0.1330548081372441, CNST_LIMB(0x186b1e97e165c7), CNST_LIMB(0x4f7bf65a5406fd3)}, + /* 184 */ {7, 0.1329157659418126, CNST_LIMB(0x195e306ce00000), CNST_LIMB(0x42ed6de951d7df1)}, + /* 185 */ {7, 0.1327777653067443, CNST_LIMB(0x1a5950c91f7849), CNST_LIMB(0x36e7aace69d3499)}, + /* 186 */ {7, 0.1326407925678156, CNST_LIMB(0x1b5cb8552a8a80), CNST_LIMB(0x2b6429f98f81fd2)}, + /* 187 */ {7, 0.1325048343149731, CNST_LIMB(0x1c68a0f6912e13), CNST_LIMB(0x205cc014acb5fa7)}, + /* 188 */ {7, 0.1323698773862368, CNST_LIMB(0x1d7d45d513c000), CNST_LIMB(0x15cb947675a49bc)}, + /* 189 */ {7, 0.1322359088617821, CNST_LIMB(0x1e9ae35fdc7ab5), CNST_LIMB(0xbab1c660bfb0b0)}, + /* 190 */ {7, 0.1321029160581950, CNST_LIMB(0x1fc1b752c74f80), CNST_LIMB(0x1f616a9ffc60f4)}, + /* 191 */ {7, 0.1319708865228925, CNST_LIMB(0x20f200bbb8353f), CNST_LIMB(0xf14f0ebb43148b9)}, + /* 192 */ {7, 0.1318398080287045, CNST_LIMB(0x222c0000000000), CNST_LIMB(0xdf75680feb65f48)}, + /* 193 */ {7, 0.1317096685686114, CNST_LIMB(0x236ff6e1cfd541), CNST_LIMB(0xce563fdfde5b097)}, + /* 194 */ {7, 0.1315804563506306, CNST_LIMB(0x24be2885bb5080), CNST_LIMB(0xbde91153cc61c3b)}, + /* 195 */ {7, 0.1314521597928493, CNST_LIMB(0x2616d978496bcb), CNST_LIMB(0xae25c5b512b8298)}, + /* 196 */ {7, 0.1313247675185968, CNST_LIMB(0x277a4fb3944000), CNST_LIMB(0x9f04ae5795fa503)}, + /* 197 */ {7, 0.1311982683517524, CNST_LIMB(0x28e8d2a4f7b06d), CNST_LIMB(0x907e7ee115ce78e)}, + /* 198 */ {7, 0.1310726513121843, CNST_LIMB(0x2a62ab32cf1580), CNST_LIMB(0x828c47e7ee4eb39)}, + /* 199 */ {7, 0.1309479056113158, CNST_LIMB(0x2be823c241fa37), CNST_LIMB(0x752771e3a708ada)}, + /* 200 */ {7, 0.1308240206478128, CNST_LIMB(0x2d79883d200000), CNST_LIMB(0x6849b86a12b9b01)}, + /* 201 */ {7, 0.1307009860033912, CNST_LIMB(0x2f172617cbfcb9), CNST_LIMB(0x5bed25b41eed57d)}, + /* 202 */ {7, 0.1305787914387386, CNST_LIMB(0x30c14c57366680), CNST_LIMB(0x500c0e65c7eb152)}, + /* 203 */ {7, 0.1304574268895465, CNST_LIMB(0x32784b96e72103), CNST_LIMB(0x44a10d94f46ec98)}, + /* 204 */ {7, 0.1303368824626505, CNST_LIMB(0x343c760f16c000), CNST_LIMB(0x39a7010b45fec02)}, + /* 205 */ {7, 0.1302171484322746, CNST_LIMB(0x360e1f9ad752a5), CNST_LIMB(0x2f1905bf2ebd7ee)}, + /* 206 */ {7, 0.1300982152363760, CNST_LIMB(0x37ed9dbe4ccb80), CNST_LIMB(0x24f27480dcc02d5)}, + /* 207 */ {7, 0.1299800734730872, CNST_LIMB(0x39db47acf518af), CNST_LIMB(0x1b2eded7c599bea)}, + /* 208 */ {7, 0.1298627138972530, CNST_LIMB(0x3bd77650000000), CNST_LIMB(0x11ca0c0dd3473eb)}, + /* 209 */ {7, 0.1297461274170591, CNST_LIMB(0x3de2844cb6d2b1), CNST_LIMB(0x8bff665664b19d)}, + /* 210 */ {7, 0.1296303050907487, CNST_LIMB(0x3ffcce0af40c80), CNST_LIMB(0xcc8778fd614f)}, + /* 211 */ {7, 0.1295152381234257, CNST_LIMB(0x4226b1bbaaf1bb), CNST_LIMB(0xef59b570254244a)}, + /* 212 */ {7, 0.1294009178639407, CNST_LIMB(0x44608f5f7f4000), CNST_LIMB(0xdf396239c3a44d8)}, + /* 213 */ {7, 0.1292873358018581, CNST_LIMB(0x46aac8cd6d055d), CNST_LIMB(0xcfb1f1cdf651f29)}, + /* 214 */ {7, 0.1291744835645007, CNST_LIMB(0x4905c1b980b180), CNST_LIMB(0xc0bd0d1539ed95d)}, + /* 215 */ {7, 0.1290623529140715, CNST_LIMB(0x4b71dfbb9f74a7), CNST_LIMB(0xb254a769f273bdf)}, + /* 216 */ {7, 0.1289509357448472, CNST_LIMB(0x4def8a56600000), CNST_LIMB(0xa472fadb4b9ee92)}, + /* 217 */ {7, 0.1288402240804449, CNST_LIMB(0x507f2afdf3bb29), CNST_LIMB(0x971284a44c5fa01)}, + /* 218 */ {7, 0.1287302100711566, CNST_LIMB(0x53212d1f208280), CNST_LIMB(0x8a2e01d40b763ed)}, + /* 219 */ {7, 0.1286208859913518, CNST_LIMB(0x55d5fe264b01f3), CNST_LIMB(0x7dc06c2424ca603)}, + /* 220 */ {7, 0.1285122442369443, CNST_LIMB(0x589e0d8691c000), CNST_LIMB(0x71c4f6fabd55146)}, + /* 221 */ {7, 0.1284042773229231, CNST_LIMB(0x5b79ccc0f8ec95), CNST_LIMB(0x66370c958e9407e)}, + /* 222 */ {7, 0.1282969778809442, CNST_LIMB(0x5e69af6ba70780), CNST_LIMB(0x5b124b5b9abcc4f)}, + /* 223 */ {7, 0.1281903386569819, CNST_LIMB(0x616e2b3932721f), CNST_LIMB(0x50528353507c67d)}, + /* 224 */ {7, 0.1280843525090381, CNST_LIMB(0x6487b800000000), CNST_LIMB(0x45f3b3bb0829a44)}, + /* 225 */ {7, 0.1279790124049077, CNST_LIMB(0x67b6cfc1b29a21), CNST_LIMB(0x3bf208c1e5196d8)}, + /* 226 */ {7, 0.1278743114199984, CNST_LIMB(0x6afbeeb2ac0880), CNST_LIMB(0x3249d95f446b472)}, + /* 227 */ {7, 0.1277702427352035, CNST_LIMB(0x6e5793419ef5ab), CNST_LIMB(0x28f7a546ff476a7)}, + /* 228 */ {7, 0.1276667996348261, CNST_LIMB(0x71ca3e1f324000), CNST_LIMB(0x1ff812f8e151fd7)}, + /* 229 */ {7, 0.1275639755045533, CNST_LIMB(0x75547245b5ac4d), CNST_LIMB(0x1747ede9cd245e6)}, + /* 230 */ {7, 0.1274617638294791, CNST_LIMB(0x78f6b500e80d80), CNST_LIMB(0xee424c5200e77a)}, + /* 231 */ {7, 0.1273601581921740, CNST_LIMB(0x7cb18df5cef517), CNST_LIMB(0x6c9c7c4fc52612)}, + /* 232 */ {7, 0.1272591522708010, CNST_LIMB(0x8085872aa00000), CNST_LIMB(0xfdec0e406b2cf34)}, + /* 233 */ {7, 0.1271587398372755, CNST_LIMB(0x84732d0ebbd399), CNST_LIMB(0xeecc63195d0bbaf)}, + /* 234 */ {7, 0.1270589147554692, CNST_LIMB(0x887b0e82bade80), CNST_LIMB(0xe02f65aa11369ed)}, + /* 235 */ {7, 0.1269596709794558, CNST_LIMB(0x8c9dbce08bf0e3), CNST_LIMB(0xd21025012fe853c)}, + /* 236 */ {7, 0.1268610025517973, CNST_LIMB(0x90dbcc03a4c000), CNST_LIMB(0xc469e51939b6909)}, + /* 237 */ {7, 0.1267629036018709, CNST_LIMB(0x9535d251446885), CNST_LIMB(0xb7381c6ba72222c)}, + /* 238 */ {7, 0.1266653683442337, CNST_LIMB(0x99ac68c0c80380), CNST_LIMB(0xaa7671a2f17d6cc)}, + /* 239 */ {7, 0.1265683910770258, CNST_LIMB(0x9e402ae411618f), CNST_LIMB(0x9e20b969dc1defe)}, + /* 240 */ {7, 0.1264719661804097, CNST_LIMB(0xa2f1b6f0000000), CNST_LIMB(0x9232f4566d49a5d)}, + /* 241 */ {7, 0.1263760881150453, CNST_LIMB(0xa7c1adc4fc4b91), CNST_LIMB(0x86a94cef1d4bcdf)}, + /* 242 */ {7, 0.1262807514205999, CNST_LIMB(0xacb0b2f7954480), CNST_LIMB(0x7b8015c8d7af8f0)}, + /* 243 */ {7, 0.1261859507142915, CNST_LIMB(0xb1bf6cd930979b), CNST_LIMB(0x70b3c7bc7ee0d4e)}, + /* 244 */ {7, 0.1260916806894653, CNST_LIMB(0xb6ee8480cd4000), CNST_LIMB(0x66410032b57af6a)}, + /* 245 */ {7, 0.1259979361142023, CNST_LIMB(0xbc3ea5d3d8c53d), CNST_LIMB(0x5c247f84c26d3ac)}, + /* 246 */ {7, 0.1259047118299582, CNST_LIMB(0xc1b07f8f172980), CNST_LIMB(0x525b277175ea361)}, + /* 247 */ {7, 0.1258120027502338, CNST_LIMB(0xc744c34f9d9b87), CNST_LIMB(0x48e1f9a504e1dd4)}, + /* 248 */ {7, 0.1257198038592741, CNST_LIMB(0xccfc259be00000), CNST_LIMB(0x3fb61652df9f6fb)}, + /* 249 */ {7, 0.1256281102107963, CNST_LIMB(0xd2d75decd16609), CNST_LIMB(0x36d4bae0961b6f1)}, + /* 250 */ {7, 0.1255369169267456, CNST_LIMB(0xd8d726b7177a80), CNST_LIMB(0x2e3b40a0e9b4f7d)}, + /* 251 */ {7, 0.1254462191960791, CNST_LIMB(0xdefc3d74510dd3), CNST_LIMB(0x25e71b9e3862593)}, + /* 252 */ {7, 0.1253560122735751, CNST_LIMB(0xe54762ac6fc000), CNST_LIMB(0x1dd5d973790b34e)}, + /* 253 */ {7, 0.1252662914786691, CNST_LIMB(0xebb959ff24e675), CNST_LIMB(0x160520330bb25b8)}, + /* 254 */ {7, 0.1251770521943144, CNST_LIMB(0xf252ea2d61bf80), CNST_LIMB(0xe72ad5aaa65e29)}, + /* 255 */ {7, 0.1250882898658681, CNST_LIMB(0xf914dd22eb06ff), CNST_LIMB(0x71c54d3d1a2bfc)}, + /* 256 */ {7, 0.1250000000000000, 0x8, 0x0}, +}; +#endif /* 60 */ +#if GMP_NUMB_BITS == 62 +const struct bases mp_bases[257] = +{ + /* 0 */ {0, 0.0, 0, 0}, + /* 1 */ {0, 1e37, 0, 0}, + /* 2 */ {62, 1.0000000000000000, 0x1, 0x0}, + /* 3 */ {39, 0.6309297535714574, CNST_LIMB(0x383d9170b85ff80b), CNST_LIMB(0x8d47ff2aa71f12b)}, + /* 4 */ {31, 0.5000000000000000, 0x2, 0x0}, + /* 5 */ {26, 0.4306765580733931, CNST_LIMB(0x14adf4b7320334b9), CNST_LIMB(0x23090312bb2c4eed)}, + /* 6 */ {23, 0.3868528072345416, CNST_LIMB(0xaf5af7425800000), CNST_LIMB(0x1d6ee2699f06de7c)}, + /* 7 */ {22, 0.3562071871080222, CNST_LIMB(0x3642798750226111), CNST_LIMB(0xb7d25732a95c51e)}, + /* 8 */ {20, 0.3333333333333333, 0x3, 0x0}, + /* 9 */ {19, 0.3154648767857287, CNST_LIMB(0x12bf307ae81ffd59), CNST_LIMB(0x2d3ebfebffaae9c1)}, + /* 10 */ {18, 0.3010299956639812, CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x9c97747490eae83)}, + /* 11 */ {17, 0.2890648263178878, CNST_LIMB(0x703b564fa7a264b), CNST_LIMB(0x8fde691f403c309)}, + /* 12 */ {17, 0.2789429456511298, CNST_LIMB(0x1eca170c00000000), CNST_LIMB(0x28430afb176a3e3)}, + /* 13 */ {16, 0.2702381544273197, CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0x2ee36d82774a7aff)}, + /* 14 */ {16, 0.2626495350371935, CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0x3c21203d9cad3a1)}, + /* 15 */ {15, 0.2559580248098155, CNST_LIMB(0x613b62c597707ef), CNST_LIMB(0x14408ade5f39fb15)}, + /* 16 */ {15, 0.2500000000000000, 0x4, 0x0}, + /* 17 */ {15, 0.2446505421182260, CNST_LIMB(0x27b95e997e21d9f1), CNST_LIMB(0x271c7846eac9e4c8)}, + /* 18 */ {14, 0.2398124665681314, CNST_LIMB(0x5339ac59fcc4000), CNST_LIMB(0x226e7edaba7f55d8)}, + /* 19 */ {14, 0.2354089133666382, CNST_LIMB(0xb16a458ef403f19), CNST_LIMB(0x1c592fb2d408d972)}, + /* 20 */ {14, 0.2313782131597592, CNST_LIMB(0x16bcc41e90000000), CNST_LIMB(0x1a126e1a84ae6c07)}, + /* 21 */ {14, 0.2276702486969530, CNST_LIMB(0x2d04b7fdd9c0ef49), CNST_LIMB(0x1afc25ee9729788e)}, + /* 22 */ {13, 0.2242438242175754, CNST_LIMB(0x3ecbe3fcf076000), CNST_LIMB(0x13a03be85122c95)}, + /* 23 */ {13, 0.2210647294575037, CNST_LIMB(0x6feb266931a75b7), CNST_LIMB(0x9323298474dcae4)}, + /* 24 */ {13, 0.2181042919855316, CNST_LIMB(0xc29e98000000000), CNST_LIMB(0x142f4d9e5c9a276c)}, + /* 25 */ {13, 0.2153382790366965, CNST_LIMB(0x14adf4b7320334b9), CNST_LIMB(0x23090312bb2c4eed)}, + /* 26 */ {13, 0.2127460535533632, CNST_LIMB(0x226ed36478bfa000), CNST_LIMB(0x36f4b95a15384632)}, + /* 27 */ {13, 0.2103099178571525, CNST_LIMB(0x383d9170b85ff80b), CNST_LIMB(0x8d47ff2aa71f12b)}, + /* 28 */ {12, 0.2080145976765095, CNST_LIMB(0x339014821000000), CNST_LIMB(0xf6fe55ec3b4e95b)}, + /* 29 */ {12, 0.2058468324604344, CNST_LIMB(0x4e900abb53e6b71), CNST_LIMB(0x284600d3afdda46d)}, + /* 30 */ {12, 0.2037950470905062, CNST_LIMB(0x7600ec618141000), CNST_LIMB(0x56bee6c9a96d652)}, + /* 31 */ {12, 0.2018490865820999, CNST_LIMB(0xaee5720ee830681), CNST_LIMB(0x1dadaa89cb861cf1)}, + /* 32 */ {12, 0.2000000000000000, 0x5, 0x0}, + /* 33 */ {12, 0.1982398631705605, CNST_LIMB(0x172588ad4f5f0981), CNST_LIMB(0x187abd7500b1efd3)}, + /* 34 */ {12, 0.1965616322328226, CNST_LIMB(0x211e44f7d02c1000), CNST_LIMB(0x3bad96048ffec9fb)}, + /* 35 */ {12, 0.1949590218937863, CNST_LIMB(0x2ee56725f06e5c71), CNST_LIMB(0x17578dd8b9bf7d42)}, + /* 36 */ {11, 0.1934264036172708, CNST_LIMB(0x1d39d3e06400000), CNST_LIMB(0x61329cf374526dd)}, + /* 37 */ {11, 0.1919587200065601, CNST_LIMB(0x27817226572713d), CNST_LIMB(0x27ae6ebe4c2994ae)}, + /* 38 */ {11, 0.1905514124267734, CNST_LIMB(0x34f940402e95800), CNST_LIMB(0xd524c87e2b848d0)}, + /* 39 */ {11, 0.1892003595168700, CNST_LIMB(0x467e6978c602bf7), CNST_LIMB(0x34357457bb18e13d)}, + /* 40 */ {11, 0.1879018247091076, CNST_LIMB(0x5d21dba00000000), CNST_LIMB(0x17f5ff85e592557f)}, + /* 41 */ {11, 0.1866524112389434, CNST_LIMB(0x7a32956ad081b79), CNST_LIMB(0x309f98b81a1bfab)}, + /* 42 */ {11, 0.1854490234153689, CNST_LIMB(0x9f49aaff0e86800), CNST_LIMB(0x26db9d41c19339f1)}, + /* 43 */ {11, 0.1842888331487062, CNST_LIMB(0xce583bb812d37b3), CNST_LIMB(0xf66b0afd9b3fb65)}, + /* 44 */ {11, 0.1831692509136336, CNST_LIMB(0x109b79a654c00000), CNST_LIMB(0x3b51af1433965c4a)}, + /* 45 */ {11, 0.1820879004699383, CNST_LIMB(0x1543beff214c8b95), CNST_LIMB(0x204f65f8b226e351)}, + /* 46 */ {11, 0.1810425967800402, CNST_LIMB(0x1b149a79459a3800), CNST_LIMB(0xba05d4655abe020)}, + /* 47 */ {11, 0.1800313266566926, CNST_LIMB(0x224edfb5434a830f), CNST_LIMB(0x376382a578c30262)}, + /* 48 */ {11, 0.1790522317510414, CNST_LIMB(0x2b3fb00000000000), CNST_LIMB(0x1eb53752282d6c59)}, + /* 49 */ {11, 0.1781035935540111, CNST_LIMB(0x3642798750226111), CNST_LIMB(0xb7d25732a95c51e)}, + /* 50 */ {10, 0.1771838201355579, CNST_LIMB(0x15af1d78b58c400), CNST_LIMB(0x1e72843249088d75)}, + /* 51 */ {10, 0.1762914343888821, CNST_LIMB(0x1a6ec7429724549), CNST_LIMB(0xd7ace086a8b1c05)}, + /* 52 */ {10, 0.1754250635819545, CNST_LIMB(0x201901a5c900000), CNST_LIMB(0x3f9c475643037e4d)}, + /* 53 */ {10, 0.1745834300480449, CNST_LIMB(0x26d533a4acd9559), CNST_LIMB(0x297a50854d48f5ad)}, + /* 54 */ {10, 0.1737653428714400, CNST_LIMB(0x2ed070f29e2e400), CNST_LIMB(0x177ea9a5fb1bda87)}, + /* 55 */ {10, 0.1729696904450771, CNST_LIMB(0x383e29ba16fb511), CNST_LIMB(0x8d3babfa5f5a909)}, + /* 56 */ {10, 0.1721954337940981, CNST_LIMB(0x4358ebc40000000), CNST_LIMB(0x39a357391bad0554)}, + /* 57 */ {10, 0.1714416005739134, CNST_LIMB(0x50633659656d971), CNST_LIMB(0x25e8053e38ef957c)}, + /* 58 */ {10, 0.1707072796637201, CNST_LIMB(0x5fa8624c7fba400), CNST_LIMB(0x15a37e2ddb2fc84b)}, + /* 59 */ {10, 0.1699916162869140, CNST_LIMB(0x717d9faa73c5679), CNST_LIMB(0x82e9f12d39bbd24)}, + /* 60 */ {10, 0.1692938075987814, CNST_LIMB(0x86430aac6100000), CNST_LIMB(0x3a07b91ae7bd24bd)}, + /* 61 */ {10, 0.1686130986895011, CNST_LIMB(0x9e64d9944b57f29), CNST_LIMB(0x2770344354650105)}, + /* 62 */ {10, 0.1679487789570419, CNST_LIMB(0xba5ca5392cb0400), CNST_LIMB(0x17ea3b4bd1409ca9)}, + /* 63 */ {10, 0.1673001788101741, CNST_LIMB(0xdab2ce1d022cd81), CNST_LIMB(0xaea7ae317813990)}, + /* 64 */ {10, 0.1666666666666667, 0x6, 0x0}, + /* 65 */ {10, 0.1660476462159378, CNST_LIMB(0x12aeed5fd3e2d281), CNST_LIMB(0x2d9dd673000a1efc)}, + /* 66 */ {10, 0.1654425539190583, CNST_LIMB(0x15c3da1572d50400), CNST_LIMB(0x1e1887fbadfd3b4c)}, + /* 67 */ {10, 0.1648508567221603, CNST_LIMB(0x194c05534f75ee29), CNST_LIMB(0x10f556d7dca50ef0)}, + /* 68 */ {10, 0.1642720499620502, CNST_LIMB(0x1d56299ada100000), CNST_LIMB(0x5cf7b2d93475102)}, + /* 69 */ {10, 0.1637056554452156, CNST_LIMB(0x21f2a089a4ff4f79), CNST_LIMB(0x38a7ed53f5ad81d3)}, + /* 70 */ {10, 0.1631512196835108, CNST_LIMB(0x2733896c68d9a400), CNST_LIMB(0x287c7d7084355398)}, + /* 71 */ {10, 0.1626083122716342, CNST_LIMB(0x2d2cf2c33b533c71), CNST_LIMB(0x1aab1fe6febf55ec)}, + /* 72 */ {10, 0.1620765243931223, CNST_LIMB(0x33f506e440000000), CNST_LIMB(0xed58f091e2dcbb8)}, + /* 73 */ {10, 0.1615554674429964, CNST_LIMB(0x3ba43bec1d062211), CNST_LIMB(0x4ad4dad5d3a4b46)}, + /* 74 */ {9, 0.1610447717564444, CNST_LIMB(0xec6626ab750a00), CNST_LIMB(0x54e79c6f4a94b82)}, + /* 75 */ {9, 0.1605440854340214, CNST_LIMB(0x10ac11fd5bfc76b), CNST_LIMB(0x3ad6ef55a0581eb7)}, + /* 76 */ {9, 0.1600530732548213, CNST_LIMB(0x12c86be0dcc0000), CNST_LIMB(0x2d090deb9eb5dead)}, + /* 77 */ {9, 0.1595714156699382, CNST_LIMB(0x1520bf6436b5bed), CNST_LIMB(0x20eeefb4b1028993)}, + /* 78 */ {9, 0.1590988078692941, CNST_LIMB(0x17bacb7a490ce00), CNST_LIMB(0x164e3307a7d3da47)}, + /* 79 */ {9, 0.1586349589155960, CNST_LIMB(0x1a9cc643c4ebecf), CNST_LIMB(0xcf4e41f93f8f51c)}, + /* 80 */ {9, 0.1581795909397823, CNST_LIMB(0x1dcd65000000000), CNST_LIMB(0x4b82fa09b5a52cb)}, + /* 81 */ {9, 0.1577324383928644, CNST_LIMB(0x2153e468b91c6d1), CNST_LIMB(0x3ae697e97fa046f9)}, + /* 82 */ {9, 0.1572932473495469, CNST_LIMB(0x2538117cf94d200), CNST_LIMB(0x2e0d1fe7438dc6e5)}, + /* 83 */ {9, 0.1568617748594410, CNST_LIMB(0x298252bf5714db3), CNST_LIMB(0x22ad5e126185e754)}, + /* 84 */ {9, 0.1564377883420715, CNST_LIMB(0x2e3bb1ebfd40000), CNST_LIMB(0x189828f3233b4f68)}, + /* 85 */ {9, 0.1560210650222250, CNST_LIMB(0x336de62af2bca35), CNST_LIMB(0xfa4b10b8003bbb5)}, + /* 86 */ {9, 0.1556113914024939, CNST_LIMB(0x39235ec33d49600), CNST_LIMB(0x7af9644c36c9e57)}, + /* 87 */ {9, 0.1552085627701551, CNST_LIMB(0x3f674e539585a17), CNST_LIMB(0x9a2167a43d46e2)}, + /* 88 */ {9, 0.1548123827357682, CNST_LIMB(0x4645b6958000000), CNST_LIMB(0x3493378118c4233e)}, + /* 89 */ {9, 0.1544226628011101, CNST_LIMB(0x4dcb74afbc49c19), CNST_LIMB(0x294d8027cdeb70e0)}, + /* 90 */ {9, 0.1540392219542636, CNST_LIMB(0x56064e1d18d9a00), CNST_LIMB(0x1f3a81b38726b384)}, + /* 91 */ {9, 0.1536618862898642, CNST_LIMB(0x5f04fe2cd8a39fb), CNST_LIMB(0x1636c0cb9cba2e90)}, + /* 92 */ {9, 0.1532904886526781, CNST_LIMB(0x68d74421f5c0000), CNST_LIMB(0xe23305f2b841511)}, + /* 93 */ {9, 0.1529248683028321, CNST_LIMB(0x738df1f6ab4827d), CNST_LIMB(0x6e499ca15d88338)}, + /* 94 */ {9, 0.1525648706011593, CNST_LIMB(0x7f3afbc9cfb5e00), CNST_LIMB(0x631aa55d70ab79)}, + /* 95 */ {9, 0.1522103467132434, CNST_LIMB(0x8bf187fba88f35f), CNST_LIMB(0x351369f6a3912c93)}, + /* 96 */ {9, 0.1518611533308632, CNST_LIMB(0x99c600000000000), CNST_LIMB(0x2a8bde3c6d3319e5)}, + /* 97 */ {9, 0.1515171524096389, CNST_LIMB(0xa8ce21eb6531361), CNST_LIMB(0x210f019f4247b933)}, + /* 98 */ {9, 0.1511782109217764, CNST_LIMB(0xb92112c1a0b6200), CNST_LIMB(0x18801787a44cd5b8)}, + /* 99 */ {9, 0.1508442006228941, CNST_LIMB(0xcad7718b8747c43), CNST_LIMB(0x10c5bbb4077b7546)}, + /* 100 */ {9, 0.1505149978319906, CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x9c97747490eae83)}, + /* 101 */ {9, 0.1501904832236880, CNST_LIMB(0xf2d8cf5fe6d74c5), CNST_LIMB(0x3776415f0932d53)}, + /* 102 */ {9, 0.1498705416319474, CNST_LIMB(0x1095d25bfa712600), CNST_LIMB(0x3b7bb85d69cdb4a8)}, + /* 103 */ {9, 0.1495550618645152, CNST_LIMB(0x121b7c4c3698faa7), CNST_LIMB(0x311a67cf7e2dacca)}, + /* 104 */ {9, 0.1492439365274121, CNST_LIMB(0x13c09e8d68000000), CNST_LIMB(0x27aef9f61672d69f)}, + /* 105 */ {9, 0.1489370618588283, CNST_LIMB(0x15876ccb0b709ca9), CNST_LIMB(0x1f20a2e621fac85e)}, + /* 106 */ {9, 0.1486343375718350, CNST_LIMB(0x17723c2976da2a00), CNST_LIMB(0x17594aae64006b73)}, + /* 107 */ {9, 0.1483356667053617, CNST_LIMB(0x198384e9c259048b), CNST_LIMB(0x10453c5d53975ecc)}, + /* 108 */ {9, 0.1480409554829326, CNST_LIMB(0x1bbde41dfeec0000), CNST_LIMB(0x9d2df240bdf8062)}, + /* 109 */ {9, 0.1477501131786861, CNST_LIMB(0x1e241d6e3337910d), CNST_LIMB(0x3f2783eeccb8843)}, + /* 110 */ {9, 0.1474630519902391, CNST_LIMB(0x20b91cee9901ee00), CNST_LIMB(0x3d2be8f9653e3a87)}, + /* 111 */ {9, 0.1471796869179852, CNST_LIMB(0x237ff9079863dfef), CNST_LIMB(0x336170cba7910dec)}, + /* 112 */ {9, 0.1468999356504447, CNST_LIMB(0x267bf47000000000), CNST_LIMB(0x2a6eec51f83764aa)}, + /* 113 */ {9, 0.1466237184553111, CNST_LIMB(0x29b08039fbeda7f1), CNST_LIMB(0x2240111edc3a3ae0)}, + /* 114 */ {9, 0.1463509580758620, CNST_LIMB(0x2d213df34f65f200), CNST_LIMB(0x1ac2a4ab6ab56122)}, + /* 115 */ {9, 0.1460815796324244, CNST_LIMB(0x30d201d957a7c2d3), CNST_LIMB(0x13e642b61d03c3b9)}, + /* 116 */ {9, 0.1458155105286054, CNST_LIMB(0x34c6d52160f40000), CNST_LIMB(0xd9c2a598ea34d84)}, + /* 117 */ {9, 0.1455526803620167, CNST_LIMB(0x3903f855d8f4c755), CNST_LIMB(0x7d711062015ef8f)}, + /* 118 */ {9, 0.1452930208392429, CNST_LIMB(0x3d8de5c8ec59b600), CNST_LIMB(0x28afaa55b13925d)}, + /* 119 */ {8, 0.1450364656948130, CNST_LIMB(0x8ede496339f341), CNST_LIMB(0x32add56a3407e99f)}, + /* 120 */ {8, 0.1447829506139581, CNST_LIMB(0x98c29b81000000), CNST_LIMB(0x2b40c9b0a5ad3d4a)}, + /* 121 */ {8, 0.1445324131589439, CNST_LIMB(0xa33f092e0b1ac1), CNST_LIMB(0x245d1d08af852c2c)}, + /* 122 */ {8, 0.1442847926987864, CNST_LIMB(0xae5b564ac3a100), CNST_LIMB(0x1df7de7a6a5b01bd)}, + /* 123 */ {8, 0.1440400303421672, CNST_LIMB(0xba1f9a938041e1), CNST_LIMB(0x180710816baf6791)}, + /* 124 */ {8, 0.1437980688733776, CNST_LIMB(0xc694446f010000), CNST_LIMB(0x12819225e720e306)}, + /* 125 */ {8, 0.1435588526911310, CNST_LIMB(0xd3c21bcecceda1), CNST_LIMB(0xd5f0a66a23a9da9)}, + /* 126 */ {8, 0.1433223277500932, CNST_LIMB(0xe1b24521be0100), CNST_LIMB(0x897d5b3acf6a7d7)}, + /* 127 */ {8, 0.1430884415049874, CNST_LIMB(0xf06e445906fc01), CNST_LIMB(0x424f5412cf35f64)}, + /* 128 */ {8, 0.1428571428571428, 0x7, 0x0}, + /* 129 */ {8, 0.1426283821033600, CNST_LIMB(0x11071c467070401), CNST_LIMB(0x38462a1f53326566)}, + /* 130 */ {8, 0.1424021108869747, CNST_LIMB(0x121ce46e1c20100), CNST_LIMB(0x31119f03ff3a7096)}, + /* 131 */ {8, 0.1421782821510107, CNST_LIMB(0x13420a9191145a1), CNST_LIMB(0x2a58769ae5d6f76a)}, + /* 132 */ {8, 0.1419568500933153, CNST_LIMB(0x147747c71010000), CNST_LIMB(0x2411969d67c88e50)}, + /* 133 */ {8, 0.1417377701235801, CNST_LIMB(0x15bd5c58309a9e1), CNST_LIMB(0x1e34a07bc2cc80af)}, + /* 134 */ {8, 0.1415209988221527, CNST_LIMB(0x17150ffacefa100), CNST_LIMB(0x18b9e0fcf2c0a52e)}, + /* 135 */ {8, 0.1413064939005528, CNST_LIMB(0x187f320b492d2c1), CNST_LIMB(0x139a4167e1c1c1c5)}, + /* 136 */ {8, 0.1410942141636095, CNST_LIMB(0x19fc99c81000000), CNST_LIMB(0xecf3a0e73438273)}, + /* 137 */ {8, 0.1408841194731412, CNST_LIMB(0x1b8e268e915bb41), CNST_LIMB(0xa52c6172be1fa2e)}, + /* 138 */ {8, 0.1406761707131039, CNST_LIMB(0x1d34c01980fe100), CNST_LIMB(0x61f5865f3a03e9b)}, + /* 139 */ {8, 0.1404703297561400, CNST_LIMB(0x1ef156c084ce761), CNST_LIMB(0x22fd187c0f3c2ef)}, + /* 140 */ {8, 0.1402665594314587, CNST_LIMB(0x20c4e3b94a10000), CNST_LIMB(0x3cfeed0fda28cb41)}, + /* 141 */ {8, 0.1400648234939879, CNST_LIMB(0x22b0695a08ba421), CNST_LIMB(0x3613d13121593706)}, + /* 142 */ {8, 0.1398650865947379, CNST_LIMB(0x24b4f35d7a4c100), CNST_LIMB(0x2f963af339e55aaf)}, + /* 143 */ {8, 0.1396673142523192, CNST_LIMB(0x26d397284975781), CNST_LIMB(0x297eb118f1f04d2d)}, + /* 144 */ {8, 0.1394714728255649, CNST_LIMB(0x290d74100000000), CNST_LIMB(0x23c649078a31f5d5)}, + /* 145 */ {8, 0.1392775294872041, CNST_LIMB(0x2b63b3a37866081), CNST_LIMB(0x1e669b411b02b86b)}, + /* 146 */ {8, 0.1390854521985406, CNST_LIMB(0x2dd789f4d894100), CNST_LIMB(0x1959b8df5d1aa790)}, + /* 147 */ {8, 0.1388952096850913, CNST_LIMB(0x306a35e51b58721), CNST_LIMB(0x149a21f6fed7de23)}, + /* 148 */ {8, 0.1387067714131417, CNST_LIMB(0x331d01712e10000), CNST_LIMB(0x1022bcce0ae3bf4f)}, + /* 149 */ {8, 0.1385201075671774, CNST_LIMB(0x35f14200a827c61), CNST_LIMB(0xbeecdd201bb017c)}, + /* 150 */ {8, 0.1383351890281539, CNST_LIMB(0x38e858b62216100), CNST_LIMB(0x7f9f03c2bf3a1ff)}, + /* 151 */ {8, 0.1381519873525671, CNST_LIMB(0x3c03b2c13176a41), CNST_LIMB(0x4400f545d5034cb)}, + /* 152 */ {8, 0.1379704747522905, CNST_LIMB(0x3f44c9b21000000), CNST_LIMB(0xbd6043e63bfc37)}, + /* 153 */ {8, 0.1377906240751463, CNST_LIMB(0x42ad23cef3113c1), CNST_LIMB(0x3adcb8d79e103644)}, + /* 154 */ {8, 0.1376124087861776, CNST_LIMB(0x463e546b19a2100), CNST_LIMB(0x349f786564f70d85)}, + /* 155 */ {8, 0.1374358029495937, CNST_LIMB(0x49f9fc3f96684e1), CNST_LIMB(0x2ebce47f4f979bf0)}, + /* 156 */ {8, 0.1372607812113589, CNST_LIMB(0x4de1c9c5dc10000), CNST_LIMB(0x292f4e31548a3207)}, + /* 157 */ {8, 0.1370873187823978, CNST_LIMB(0x51f77994116d2a1), CNST_LIMB(0x23f16a37a38779e0)}, + /* 158 */ {8, 0.1369153914223921, CNST_LIMB(0x563cd6bb3398100), CNST_LIMB(0x1efe4996faa74e8e)}, + /* 159 */ {8, 0.1367449754241439, CNST_LIMB(0x5ab3bb270beeb01), CNST_LIMB(0x1a5152cc9660f733)}, + /* 160 */ {8, 0.1365760475984821, CNST_LIMB(0x5f5e10000000000), CNST_LIMB(0x15e63b88c230e77e)}, + /* 161 */ {8, 0.1364085852596902, CNST_LIMB(0x643dce0ec16f501), CNST_LIMB(0x11b902e83e99a9d4)}, + /* 162 */ {8, 0.1362425662114337, CNST_LIMB(0x6954fe21e3e8100), CNST_LIMB(0xdc5ec21c2c36ce9)}, + /* 163 */ {8, 0.1360779687331669, CNST_LIMB(0x6ea5b9755f440a1), CNST_LIMB(0xa09799dd744737a)}, + /* 164 */ {8, 0.1359147715670014, CNST_LIMB(0x74322a1c0410000), CNST_LIMB(0x68068702746d36b)}, + /* 165 */ {8, 0.1357529539050150, CNST_LIMB(0x79fc8b6ae8a46e1), CNST_LIMB(0x327ac2a2faf23cf)}, + /* 166 */ {8, 0.1355924953769864, CNST_LIMB(0x80072a66d512100), CNST_LIMB(0x3ff8d5ffd679a801)}, + /* 167 */ {8, 0.1354333760385373, CNST_LIMB(0x86546633b42b9c1), CNST_LIMB(0x39f7f46f817e986a)}, + /* 168 */ {8, 0.1352755763596663, CNST_LIMB(0x8ce6b0861000000), CNST_LIMB(0x3447b5bf1e3dd839)}, + /* 169 */ {8, 0.1351190772136599, CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0x2ee36d82774a7aff)}, + /* 170 */ {8, 0.1349638598663645, CNST_LIMB(0x9ae49717f026100), CNST_LIMB(0x29c6bb234604f54c)}, + /* 171 */ {8, 0.1348099059658080, CNST_LIMB(0xa25577ae24c1a61), CNST_LIMB(0x24ed84aa7c83ef00)}, + /* 172 */ {8, 0.1346571975321549, CNST_LIMB(0xaa15f068e610000), CNST_LIMB(0x2053f1ec6699f4c5)}, + /* 173 */ {8, 0.1345057169479844, CNST_LIMB(0xb228d6bf7577921), CNST_LIMB(0x1bf6680fcb8292df)}, + /* 174 */ {8, 0.1343554469488779, CNST_LIMB(0xba91158ef5c4100), CNST_LIMB(0x17d18568e3434c5b)}, + /* 175 */ {8, 0.1342063706143054, CNST_LIMB(0xc351ad9aec0b681), CNST_LIMB(0x13e21da18d1e68a1)}, + /* 176 */ {8, 0.1340584713587979, CNST_LIMB(0xcc6db6100000000), CNST_LIMB(0x10253628c106d83a)}, + /* 177 */ {8, 0.1339117329233981, CNST_LIMB(0xd5e85d09025c181), CNST_LIMB(0xc9802e3b620e826)}, + /* 178 */ {8, 0.1337661393673756, CNST_LIMB(0xdfc4e816401c100), CNST_LIMB(0x937e31bad2db47c)}, + /* 179 */ {8, 0.1336216750601996, CNST_LIMB(0xea06b4c72947221), CNST_LIMB(0x6025ea3b8546b3b)}, + /* 180 */ {8, 0.1334783246737591, CNST_LIMB(0xf4b139365210000), CNST_LIMB(0x2f523323b073638)}, + /* 181 */ {8, 0.1333360731748201, CNST_LIMB(0xffc80497d520961), CNST_LIMB(0xe01ea359d217e)}, + /* 182 */ {8, 0.1331949058177136, CNST_LIMB(0x10b4ebfca1dee100), CNST_LIMB(0x3a95da2182d8ba36)}, + /* 183 */ {8, 0.1330548081372441, CNST_LIMB(0x117492de921fc141), CNST_LIMB(0x3553ebd6d8d71401)}, + /* 184 */ {8, 0.1329157659418126, CNST_LIMB(0x123bb2ce41000000), CNST_LIMB(0x30529588ce8dde49)}, + /* 185 */ {8, 0.1327777653067443, CNST_LIMB(0x130a8b6157bdecc1), CNST_LIMB(0x2b8e6a236df34ca7)}, + /* 186 */ {8, 0.1326407925678156, CNST_LIMB(0x13e15dede0e8a100), CNST_LIMB(0x27042f79a7be9ead)}, + /* 187 */ {8, 0.1325048343149731, CNST_LIMB(0x14c06d941c0ca7e1), CNST_LIMB(0x22b0db10a8a0d925)}, + /* 188 */ {8, 0.1323698773862368, CNST_LIMB(0x15a7ff487a810000), CNST_LIMB(0x1e918f22e13d7bd9)}, + /* 189 */ {8, 0.1322359088617821, CNST_LIMB(0x169859ddc5c697a1), CNST_LIMB(0x1aa397d6b4243f52)}, + /* 190 */ {8, 0.1321029160581950, CNST_LIMB(0x1791c60f6fed0100), CNST_LIMB(0x16e468a50d65bf15)}, + /* 191 */ {8, 0.1319708865228925, CNST_LIMB(0x18948e8c0e6fba01), CNST_LIMB(0x135199ec711a3a3c)}, + /* 192 */ {8, 0.1318398080287045, CNST_LIMB(0x19a1000000000000), CNST_LIMB(0xfe8e6ad51e6536b)}, + /* 193 */ {8, 0.1317096685686114, CNST_LIMB(0x1ab769203dafc601), CNST_LIMB(0xca82a6cbebb878a)}, + /* 194 */ {8, 0.1315804563506306, CNST_LIMB(0x1bd81ab557f30100), CNST_LIMB(0x98d5f3ab03a5a58)}, + /* 195 */ {8, 0.1314521597928493, CNST_LIMB(0x1d0367a69fed1ba1), CNST_LIMB(0x6969bd972a96167)}, + /* 196 */ {8, 0.1313247675185968, CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0x3c21203d9cad3a1)}, + /* 197 */ {8, 0.1311982683517524, CNST_LIMB(0x1f7b2a18f29ac3e1), CNST_LIMB(0x10e0cd0185584b2)}, + /* 198 */ {8, 0.1310726513121843, CNST_LIMB(0x20c850694c2aa100), CNST_LIMB(0x3cf1de5a7b92f968)}, + /* 199 */ {8, 0.1309479056113158, CNST_LIMB(0x222173cc014980c1), CNST_LIMB(0x380264f3061f17b2)}, + /* 200 */ {8, 0.1308240206478128, CNST_LIMB(0x2386f26fc1000000), CNST_LIMB(0x334aca5f6226f0ad)}, + /* 201 */ {8, 0.1307009860033912, CNST_LIMB(0x24f92ce8af296d41), CNST_LIMB(0x2ec8535419218ac8)}, + /* 202 */ {8, 0.1305787914387386, CNST_LIMB(0x2678863cd0ece100), CNST_LIMB(0x2a7869f29fa84388)}, + /* 203 */ {8, 0.1304574268895465, CNST_LIMB(0x280563f0a9472d61), CNST_LIMB(0x26589b9cace7a833)}, + /* 204 */ {8, 0.1303368824626505, CNST_LIMB(0x29a02e1406210000), CNST_LIMB(0x226696ea704febf6)}, + /* 205 */ {8, 0.1302171484322746, CNST_LIMB(0x2b494f4efe6d2e21), CNST_LIMB(0x1ea029c14e47a5bf)}, + /* 206 */ {8, 0.1300982152363760, CNST_LIMB(0x2d0134ef21cbc100), CNST_LIMB(0x1b033f88f788c10a)}, + /* 207 */ {8, 0.1299800734730872, CNST_LIMB(0x2ec84ef4da2ef581), CNST_LIMB(0x178ddf7cd6725137)}, + /* 208 */ {8, 0.1298627138972530, CNST_LIMB(0x309f102100000000), CNST_LIMB(0x143e2b17f23d4e61)}, + /* 209 */ {8, 0.1297461274170591, CNST_LIMB(0x3285ee02a1420281), CNST_LIMB(0x11125c9989e38d6d)}, + /* 210 */ {8, 0.1296303050907487, CNST_LIMB(0x347d6104fc324100), CNST_LIMB(0xe08c5a0c7dfb85d)}, + /* 211 */ {8, 0.1295152381234257, CNST_LIMB(0x3685e47dade53d21), CNST_LIMB(0xb1fcdde0cee251b)}, + /* 212 */ {8, 0.1294009178639407, CNST_LIMB(0x389ff6bb15610000), CNST_LIMB(0x855f1d86ad058fb)}, + /* 213 */ {8, 0.1292873358018581, CNST_LIMB(0x3acc1912ebb57661), CNST_LIMB(0x5a9c1c600f3126a)}, + /* 214 */ {8, 0.1291744835645007, CNST_LIMB(0x3d0acff111946100), CNST_LIMB(0x319e07603e0893f)}, + /* 215 */ {8, 0.1290623529140715, CNST_LIMB(0x3f5ca2e692eaf841), CNST_LIMB(0xa5024b4dc2a402)}, + /* 216 */ {7, 0.1289509357448472, CNST_LIMB(0x4def8a56600000), CNST_LIMB(0x291cbeb6d2e7ba4b)}, + /* 217 */ {7, 0.1288402240804449, CNST_LIMB(0x507f2afdf3bb29), CNST_LIMB(0x25c4a1291317e806)}, + /* 218 */ {7, 0.1287302100711566, CNST_LIMB(0x53212d1f208280), CNST_LIMB(0x228b807502dd8fb7)}, + /* 219 */ {7, 0.1286208859913518, CNST_LIMB(0x55d5fe264b01f3), CNST_LIMB(0x1f701b090932980e)}, + /* 220 */ {7, 0.1285122442369443, CNST_LIMB(0x589e0d8691c000), CNST_LIMB(0x1c713dbeaf554519)}, + /* 221 */ {7, 0.1284042773229231, CNST_LIMB(0x5b79ccc0f8ec95), CNST_LIMB(0x198dc32563a501fa)}, + /* 222 */ {7, 0.1282969778809442, CNST_LIMB(0x5e69af6ba70780), CNST_LIMB(0x16c492d6e6af313c)}, + /* 223 */ {7, 0.1281903386569819, CNST_LIMB(0x616e2b3932721f), CNST_LIMB(0x1414a0d4d41f19f7)}, + /* 224 */ {7, 0.1280843525090381, CNST_LIMB(0x6487b800000000), CNST_LIMB(0x117ceceec20a6912)}, + /* 225 */ {7, 0.1279790124049077, CNST_LIMB(0x67b6cfc1b29a21), CNST_LIMB(0xefc823079465b63)}, + /* 226 */ {7, 0.1278743114199984, CNST_LIMB(0x6afbeeb2ac0880), CNST_LIMB(0xc927657d11ad1ca)}, + /* 227 */ {7, 0.1277702427352035, CNST_LIMB(0x6e5793419ef5ab), CNST_LIMB(0xa3de951bfd1da9c)}, + /* 228 */ {7, 0.1276667996348261, CNST_LIMB(0x71ca3e1f324000), CNST_LIMB(0x7fe04be38547f5c)}, + /* 229 */ {7, 0.1275639755045533, CNST_LIMB(0x75547245b5ac4d), CNST_LIMB(0x5d1fb7a7349179b)}, + /* 230 */ {7, 0.1274617638294791, CNST_LIMB(0x78f6b500e80d80), CNST_LIMB(0x3b9093148039de8)}, + /* 231 */ {7, 0.1273601581921740, CNST_LIMB(0x7cb18df5cef517), CNST_LIMB(0x1b271f13f14984b)}, + /* 232 */ {7, 0.1272591522708010, CNST_LIMB(0x8085872aa00000), CNST_LIMB(0x3f7b03901acb3cd3)}, + /* 233 */ {7, 0.1271587398372755, CNST_LIMB(0x84732d0ebbd399), CNST_LIMB(0x3bb318c65742eebf)}, + /* 234 */ {7, 0.1270589147554692, CNST_LIMB(0x887b0e82bade80), CNST_LIMB(0x380bd96a844da7b6)}, + /* 235 */ {7, 0.1269596709794558, CNST_LIMB(0x8c9dbce08bf0e3), CNST_LIMB(0x348409404bfa14f0)}, + /* 236 */ {7, 0.1268610025517973, CNST_LIMB(0x90dbcc03a4c000), CNST_LIMB(0x311a79464e6da427)}, + /* 237 */ {7, 0.1267629036018709, CNST_LIMB(0x9535d251446885), CNST_LIMB(0x2dce071ae9c888b1)}, + /* 238 */ {7, 0.1266653683442337, CNST_LIMB(0x99ac68c0c80380), CNST_LIMB(0x2a9d9c68bc5f5b32)}, + /* 239 */ {7, 0.1265683910770258, CNST_LIMB(0x9e402ae411618f), CNST_LIMB(0x27882e5a77077bfb)}, + /* 240 */ {7, 0.1264719661804097, CNST_LIMB(0xa2f1b6f0000000), CNST_LIMB(0x248cbd159b526975)}, + /* 241 */ {7, 0.1263760881150453, CNST_LIMB(0xa7c1adc4fc4b91), CNST_LIMB(0x21aa533bc752f37f)}, + /* 242 */ {7, 0.1262807514205999, CNST_LIMB(0xacb0b2f7954480), CNST_LIMB(0x1ee0057235ebe3c2)}, + /* 243 */ {7, 0.1261859507142915, CNST_LIMB(0xb1bf6cd930979b), CNST_LIMB(0x1c2cf1ef1fb8353b)}, + /* 244 */ {7, 0.1260916806894653, CNST_LIMB(0xb6ee8480cd4000), CNST_LIMB(0x1990400cad5ebda8)}, + /* 245 */ {7, 0.1259979361142023, CNST_LIMB(0xbc3ea5d3d8c53d), CNST_LIMB(0x17091fe1309b4eb2)}, + /* 246 */ {7, 0.1259047118299582, CNST_LIMB(0xc1b07f8f172980), CNST_LIMB(0x1496c9dc5d7a8d86)}, + /* 247 */ {7, 0.1258120027502338, CNST_LIMB(0xc744c34f9d9b87), CNST_LIMB(0x12387e6941387751)}, + /* 248 */ {7, 0.1257198038592741, CNST_LIMB(0xccfc259be00000), CNST_LIMB(0xfed8594b7e7dbed)}, + /* 249 */ {7, 0.1256281102107963, CNST_LIMB(0xd2d75decd16609), CNST_LIMB(0xdb52eb82586dbc6)}, + /* 250 */ {7, 0.1255369169267456, CNST_LIMB(0xd8d726b7177a80), CNST_LIMB(0xb8ed0283a6d3df7)}, + /* 251 */ {7, 0.1254462191960791, CNST_LIMB(0xdefc3d74510dd3), CNST_LIMB(0x979c6e78e18964c)}, + /* 252 */ {7, 0.1253560122735751, CNST_LIMB(0xe54762ac6fc000), CNST_LIMB(0x775765cde42cd38)}, + /* 253 */ {7, 0.1252662914786691, CNST_LIMB(0xebb959ff24e675), CNST_LIMB(0x581480cc2ec96e0)}, + /* 254 */ {7, 0.1251770521943144, CNST_LIMB(0xf252ea2d61bf80), CNST_LIMB(0x39cab56aa9978a6)}, + /* 255 */ {7, 0.1250882898658681, CNST_LIMB(0xf914dd22eb06ff), CNST_LIMB(0x1c71534f468aff3)}, + /* 256 */ {7, 0.1250000000000000, 0x8, 0x0}, +}; +#endif /* 62 */ +#if GMP_NUMB_BITS == 64 const struct bases mp_bases[257] = { /* 0 */ {0, 0.0, 0, 0}, @@ -1363,29 +2411,29 @@ ulog2 (x) } void -generate (int bits_per_mp_limb, int i) +generate (int numb_bits, int i) { fdig = 0.69314718055994530942 / log ((double) i); - idig = floor (bits_per_mp_limb * fdig); + idig = floor (numb_bits * fdig); mpz_ui_pow_ui (big_base, (unsigned long int) i, (unsigned long int) idig); - normalization_steps = bits_per_mp_limb - mpz_sizeinbase (big_base, 2); + normalization_steps = numb_bits - mpz_sizeinbase (big_base, 2); mpz_set_ui (t, 1L); - mpz_mul_2exp (t, t, 2 * bits_per_mp_limb - normalization_steps); + mpz_mul_2exp (t, t, 2 * numb_bits - normalization_steps); mpz_tdiv_q (big_base_inverted, t, big_base); mpz_set_ui (t, 1L); - mpz_mul_2exp (t, t, bits_per_mp_limb); + mpz_mul_2exp (t, t, numb_bits); mpz_sub (big_base_inverted, big_base_inverted, t); } void -one_table (int bits_per_mp_limb) +one_table (int numb_bits) { int i; char *cnst_limb_str1, *cnst_limb_str2; - if (bits_per_mp_limb >= 64) + if (numb_bits > 32) { cnst_limb_str1 = "CNST_LIMB("; cnst_limb_str2 = ")"; @@ -1396,13 +2444,13 @@ one_table (int bits_per_mp_limb) cnst_limb_str2 = ""; } - printf ("#if BITS_PER_MP_LIMB == %d\n", bits_per_mp_limb); + printf ("#if GMP_NUMB_BITS == %d\n", numb_bits); puts ("const struct bases mp_bases[257] =\n{"); puts (" /* 0 */ {0, 0.0, 0, 0},"); puts (" /* 1 */ {0, 1e37, 0, 0},"); for (i = 2; i <= 256; i++) { - generate (bits_per_mp_limb, i); + generate (numb_bits, i); if ((i & (i - 1)) == 0) { printf (" /* %2u */ {%u, %.16f, 0x%x, 0x0},\n", @@ -1417,16 +2465,16 @@ one_table (int bits_per_mp_limb) } puts ("};"); - printf ("#endif /* %d */\n", bits_per_mp_limb); + printf ("#endif /* %d */\n", numb_bits); } void -one_header (int bits_per_mp_limb) +one_header (int numb_bits) { char *cnst_limb_str1, *cnst_limb_str2; - if (bits_per_mp_limb >= 64) + if (numb_bits > 32) { cnst_limb_str1 = "CNST_LIMB("; cnst_limb_str2 = ")"; @@ -1437,9 +2485,9 @@ one_header (int bits_per_mp_limb) cnst_limb_str2 = ""; } - generate (bits_per_mp_limb, 10); + generate (numb_bits, 10); - printf ("#if BITS_PER_MP_LIMB == %d\n", bits_per_mp_limb); + printf ("#if GMP_NUMB_BITS == %d\n", numb_bits); printf ("#define MP_BASES_CHARS_PER_LIMB_10 %d\n", idig); printf ("#define MP_BASES_BIG_BASE_10 CNST_LIMB(0x"); mpz_out_str (0, 16, big_base); |