summaryrefslogtreecommitdiff
path: root/mpn
diff options
context:
space:
mode:
authortege <tege@gmplib.org>2002-04-16 19:39:25 +0200
committertege <tege@gmplib.org>2002-04-16 19:39:25 +0200
commit47b65bb65053783b1e60a66c8e475dff9c63ca2b (patch)
tree6ecdb8d9dc7c6bafc8a1b2e59bbe08054c2a233c /mpn
parente609c26d5ee18c92531adf6149f3691825e768bd (diff)
downloadgmp-47b65bb65053783b1e60a66c8e475dff9c63ca2b.tar.gz
Add tables for GMP_NUMB_BITS being 28, 60, and 63.
Diffstat (limited to 'mpn')
-rw-r--r--mpn/mp_bases.c1086
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);