1 /* Table of MP integer constants 10^(2^i), used for floating point <-> decimal. 2 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2002, 2003 3 Free Software Foundation, Inc. 4 This file is part of the GNU C Library. 5 6 The GNU C Library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Lesser General Public 8 License as published by the Free Software Foundation; either 9 version 2.1 of the License, or (at your option) any later version. 10 11 The GNU C Library is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Lesser General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public 17 License along with the GNU C Library; if not, write to the Free 18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 19 02111-1307 USA. */ 20 21 #if 0 /* vstr */ 22 #include "fpioconst.h" 23 #include <gmp-mparam.h> /* This defines BITS_PER_MP_LIMB. */ 24 #endif /* vstr */ 25 26 /* First page : 32-bit limbs 27 Second page : 64-bit limbs 28 Last page : table of pointers 29 */ 30 31 #if BITS_PER_MP_LIMB == 32 32 33 /* Table with constants of 10^(2^i), i=0..12 for 32-bit limbs. */ 34 35 const mp_limb_t __tens[] = 36 { 37 #define TENS_P0_IDX 0 38 #define TENS_P0_SIZE 3 39 [TENS_P0_IDX] = 0x00000000, 0x00000000, 0x0000000a, 40 41 #define TENS_P1_IDX (TENS_P0_IDX + TENS_P0_SIZE) 42 #define TENS_P1_SIZE 3 43 [TENS_P1_IDX] = 0x00000000, 0x00000000, 0x00000064, 44 45 #define TENS_P2_IDX (TENS_P1_IDX + TENS_P1_SIZE) 46 #define TENS_P2_SIZE 3 47 [TENS_P2_IDX] = 0x00000000, 0x00000000, 0x00002710, 48 49 #define TENS_P3_IDX (TENS_P2_IDX + TENS_P2_SIZE) 50 #define TENS_P3_SIZE 3 51 [TENS_P3_IDX] = 0x00000000, 0x00000000, 0x05f5e100, 52 53 #define TENS_P4_IDX (TENS_P3_IDX + TENS_P3_SIZE) 54 #define TENS_P4_SIZE 4 55 [TENS_P4_IDX] = 0x00000000, 0x00000000, 0x6fc10000, 0x002386f2, 56 57 #define TENS_P5_IDX (TENS_P4_IDX + TENS_P4_SIZE) 58 #define TENS_P5_SIZE 6 59 [TENS_P5_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x85acef81, 0x2d6d415b, 60 0x000004ee, 61 62 #define TENS_P6_IDX (TENS_P5_IDX + TENS_P5_SIZE) 63 #define TENS_P6_SIZE 9 64 [TENS_P6_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xbf6a1f01, 65 0x6e38ed64, 0xdaa797ed, 0xe93ff9f4, 0x00184f03, 66 67 #define TENS_P7_IDX (TENS_P6_IDX + TENS_P6_SIZE) 68 #define TENS_P7_SIZE 16 69 [TENS_P7_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 70 0x00000000, 0x2e953e01, 0x03df9909, 0x0f1538fd, 0x2374e42f, 0xd3cff5ec, 71 0xc404dc08, 0xbccdb0da, 0xa6337f19, 0xe91f2603, 0x0000024e, 72 73 #define TENS_P8_IDX (TENS_P7_IDX + TENS_P7_SIZE) 74 #define TENS_P8_SIZE 29 75 [TENS_P8_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 76 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x982e7c01, 77 0xbed3875b, 0xd8d99f72, 0x12152f87, 0x6bde50c6, 0xcf4a6e70, 0xd595d80f, 78 0x26b2716e, 0xadc666b0, 0x1d153624, 0x3c42d35a, 0x63ff540e, 0xcc5573c0, 79 0x65f9ef17, 0x55bc28f2, 0x80dcc7f7, 0xf46eeddc, 0x5fdcefce, 0x000553f7, 80 81 #ifndef __NO_LONG_DOUBLE_MATH 82 # define TENS_P9_IDX (TENS_P8_IDX + TENS_P8_SIZE) 83 # define TENS_P9_SIZE 56 84 [TENS_P9_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 85 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 86 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 87 0x00000000, 0xfc6cf801, 0x77f27267, 0x8f9546dc, 0x5d96976f, 0xb83a8a97, 88 0xc31e1ad9, 0x46c40513, 0x94e65747, 0xc88976c1, 0x4475b579, 0x28f8733b, 89 0xaa1da1bf, 0x703ed321, 0x1e25cfea, 0xb21a2f22, 0xbc51fb2e, 0x96e14f5d, 90 0xbfa3edac, 0x329c57ae, 0xe7fc7153, 0xc3fc0695, 0x85a91924, 0xf95f635e, 91 0xb2908ee0, 0x93abade4, 0x1366732a, 0x9449775c, 0x69be5b0e, 0x7343afac, 92 0xb099bc81, 0x45a71d46, 0xa2699748, 0x8cb07303, 0x8a0b1f13, 0x8cab8a97, 93 0xc1d238d9, 0x633415d4, 0x0000001c, 94 95 # define TENS_P10_IDX (TENS_P9_IDX + TENS_P9_SIZE) 96 # define TENS_P10_SIZE 109 97 [TENS_P10_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 98 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 99 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 100 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 101 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 102 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2919f001, 103 0xf55b2b72, 0x6e7c215b, 0x1ec29f86, 0x991c4e87, 0x15c51a88, 0x140ac535, 104 0x4c7d1e1a, 0xcc2cd819, 0x0ed1440e, 0x896634ee, 0x7de16cfb, 0x1e43f61f, 105 0x9fce837d, 0x231d2b9c, 0x233e55c7, 0x65dc60d7, 0xf451218b, 0x1c5cd134, 106 0xc9635986, 0x922bbb9f, 0xa7e89431, 0x9f9f2a07, 0x62be695a, 0x8e1042c4, 107 0x045b7a74, 0x1abe1de3, 0x8ad822a5, 0xba34c411, 0xd814b505, 0xbf3fdeb3, 108 0x8fc51a16, 0xb1b896bc, 0xf56deeec, 0x31fb6bfd, 0xb6f4654b, 0x101a3616, 109 0x6b7595fb, 0xdc1a47fe, 0x80d98089, 0x80bda5a5, 0x9a202882, 0x31eb0f66, 110 0xfc8f1f90, 0x976a3310, 0xe26a7b7e, 0xdf68368a, 0x3ce3a0b8, 0x8e4262ce, 111 0x75a351a2, 0x6cb0b6c9, 0x44597583, 0x31b5653f, 0xc356e38a, 0x35faaba6, 112 0x0190fba0, 0x9fc4ed52, 0x88bc491b, 0x1640114a, 0x005b8041, 0xf4f3235e, 113 0x1e8d4649, 0x36a8de06, 0x73c55349, 0xa7e6bd2a, 0xc1a6970c, 0x47187094, 114 0xd2db49ef, 0x926c3f5b, 0xae6209d4, 0x2d433949, 0x34f4a3c6, 0xd4305d94, 115 0xd9d61a05, 0x00000325, 116 117 # define TENS_P11_IDX (TENS_P10_IDX + TENS_P10_SIZE) 118 # define TENS_P11_SIZE 215 119 [TENS_P11_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 120 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 121 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 122 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 123 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 124 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 125 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 126 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 127 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 128 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 129 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 130 0x00000000, 0x1333e001, 0xe3096865, 0xb27d4d3f, 0x49e28dcf, 0xec2e4721, 131 0xee87e354, 0xb6067584, 0x368b8abb, 0xa5e5a191, 0x2ed56d55, 0xfd827773, 132 0xea50d142, 0x51b78db2, 0x98342c9e, 0xc850dabc, 0x866ed6f1, 0x19342c12, 133 0x92794987, 0xd2f869c2, 0x66912e4a, 0x71c7fd8f, 0x57a7842d, 0x235552eb, 134 0xfb7fedcc, 0xf3861ce0, 0x38209ce1, 0x9713b449, 0x34c10134, 0x8c6c54de, 135 0xa7a8289c, 0x2dbb6643, 0xe3cb64f3, 0x8074ff01, 0xe3892ee9, 0x10c17f94, 136 0xa8f16f92, 0xa8281ed6, 0x967abbb3, 0x5a151440, 0x9952fbed, 0x13b41e44, 137 0xafe609c3, 0xa2bca416, 0xf111821f, 0xfb1264b4, 0x91bac974, 0xd6c7d6ab, 138 0x8e48ff35, 0x4419bd43, 0xc4a65665, 0x685e5510, 0x33554c36, 0xab498697, 139 0x0dbd21fe, 0x3cfe491d, 0x982da466, 0xcbea4ca7, 0x9e110c7b, 0x79c56b8a, 140 0x5fc5a047, 0x84d80e2e, 0x1aa9f444, 0x730f203c, 0x6a57b1ab, 0xd752f7a6, 141 0x87a7dc62, 0x944545ff, 0x40660460, 0x77c1a42f, 0xc9ac375d, 0xe866d7ef, 142 0x744695f0, 0x81428c85, 0xa1fc6b96, 0xd7917c7b, 0x7bf03c19, 0x5b33eb41, 143 0x5715f791, 0x8f6cae5f, 0xdb0708fd, 0xb125ac8e, 0x785ce6b7, 0x56c6815b, 144 0x6f46eadb, 0x4eeebeee, 0x195355d8, 0xa244de3c, 0x9d7389c0, 0x53761abd, 145 0xcf99d019, 0xde9ec24b, 0x0d76ce39, 0x70beb181, 0x2e55ecee, 0xd5f86079, 146 0xf56d9d4b, 0xfb8886fb, 0x13ef5a83, 0x408f43c5, 0x3f3389a4, 0xfad37943, 147 0x58ccf45c, 0xf82df846, 0x415c7f3e, 0x2915e818, 0x8b3d5cf4, 0x6a445f27, 148 0xf8dbb57a, 0xca8f0070, 0x8ad803ec, 0xb2e87c34, 0x038f9245, 0xbedd8a6c, 149 0xc7c9dee0, 0x0eac7d56, 0x2ad3fa14, 0xe0de0840, 0xf775677c, 0xf1bd0ad5, 150 0x92be221e, 0x87fa1fb9, 0xce9d04a4, 0xd2c36fa9, 0x3f6f7024, 0xb028af62, 151 0x907855ee, 0xd83e49d6, 0x4efac5dc, 0xe7151aab, 0x77cd8c6b, 0x0a753b7d, 152 0x0af908b4, 0x8c983623, 0xe50f3027, 0x94222771, 0x1d08e2d6, 0xf7e928e6, 153 0xf2ee5ca6, 0x1b61b93c, 0x11eb962b, 0x9648b21c, 0xce2bcba1, 0x34f77154, 154 0x7bbebe30, 0xe526a319, 0x8ce329ac, 0xde4a74d2, 0xb5dc53d5, 0x0009e8b3, 155 156 # define TENS_P12_IDX (TENS_P11_IDX + TENS_P11_SIZE) 157 # define TENS_P12_SIZE 428 158 [TENS_P12_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 159 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 160 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 161 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 162 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 163 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 164 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 165 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 166 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 167 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 168 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 169 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 170 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 171 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 172 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 173 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 174 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 175 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 176 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 177 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 178 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 179 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a67c001, 180 0xd4724e8d, 0x8efe7ae7, 0xf89a1e90, 0xef084117, 0x54e05154, 0x13b1bb51, 181 0x506be829, 0xfb29b172, 0xe599574e, 0xf0da6146, 0x806c0ed3, 0xb86ae5be, 182 0x45155e93, 0xc0591cc2, 0x7e1e7c34, 0x7c4823da, 0x1d1f4cce, 0x9b8ba1e8, 183 0xd6bfdf75, 0xe341be10, 0xc2dfae78, 0x016b67b2, 0x0f237f1a, 0x3dbeabcd, 184 0xaf6a2574, 0xcab3e6d7, 0x142e0e80, 0x61959127, 0x2c234811, 0x87009701, 185 0xcb4bf982, 0xf8169c84, 0x88052f8c, 0x68dde6d4, 0xbc131761, 0xff0b0905, 186 0x54ab9c41, 0x7613b224, 0x1a1c304e, 0x3bfe167b, 0x441c2d47, 0x4f6cea9c, 187 0x78f06181, 0xeb659fb8, 0x30c7ae41, 0x947e0d0e, 0xa1ebcad7, 0xd97d9556, 188 0x2130504d, 0x1a8309cb, 0xf2acd507, 0x3f8ec72a, 0xfd82373a, 0x95a842bc, 189 0x280f4d32, 0xf3618ac0, 0x811a4f04, 0x6dc3a5b4, 0xd3967a1b, 0x15b8c898, 190 0xdcfe388f, 0x454eb2a0, 0x8738b909, 0x10c4e996, 0x2bd9cc11, 0x3297cd0c, 191 0x655fec30, 0xae0725b1, 0xf4090ee8, 0x037d19ee, 0x398c6fed, 0x3b9af26b, 192 0xc994a450, 0xb5341743, 0x75a697b2, 0xac50b9c1, 0x3ccb5b92, 0xffe06205, 193 0xa8329761, 0xdfea5242, 0xeb83cadb, 0xe79dadf7, 0x3c20ee69, 0x1e0a6817, 194 0x7021b97a, 0x743074fa, 0x176ca776, 0x77fb8af6, 0xeca19beb, 0x92baf1de, 195 0xaf63b712, 0xde35c88b, 0xa4eb8f8c, 0xe137d5e9, 0x40b464a0, 0x87d1cde8, 196 0x42923bbd, 0xcd8f62ff, 0x2e2690f3, 0x095edc16, 0x59c89f1b, 0x1fa8fd5d, 197 0x5138753d, 0x390a2b29, 0x80152f18, 0x2dd8d925, 0xf984d83e, 0x7a872e74, 198 0xc19e1faf, 0xed4d542d, 0xecf9b5d0, 0x9462ea75, 0xc53c0adf, 0x0caea134, 199 0x37a2d439, 0xc8fa2e8a, 0x2181327e, 0x6e7bb827, 0x2d240820, 0x50be10e0, 200 0x5893d4b8, 0xab312bb9, 0x1f2b2322, 0x440b3f25, 0xbf627ede, 0x72dac789, 201 0xb608b895, 0x78787e2a, 0x86deb3f0, 0x6fee7aab, 0xbb9373f4, 0x27ecf57b, 202 0xf7d8b57e, 0xfca26a9f, 0x3d04e8d2, 0xc9df13cb, 0x3172826a, 0xcd9e8d7c, 203 0xa8fcd8e0, 0xb2c39497, 0x307641d9, 0x1cc939c1, 0x2608c4cf, 0xb6d1c7bf, 204 0x3d326a7e, 0xeeaf19e6, 0x8e13e25f, 0xee63302b, 0x2dfe6d97, 0x25971d58, 205 0xe41d3cc4, 0x0a80627c, 0xab8db59a, 0x9eea37c8, 0xe90afb77, 0x90ca19cf, 206 0x9ee3352c, 0x3613c850, 0xfe78d682, 0x788f6e50, 0x5b060904, 0xb71bd1a4, 207 0x3fecb534, 0xb32c450c, 0x20c33857, 0xa6e9cfda, 0x0239f4ce, 0x48497187, 208 0xa19adb95, 0xb492ed8a, 0x95aca6a8, 0x4dcd6cd9, 0xcf1b2350, 0xfbe8b12a, 209 0x1a67778c, 0x38eb3acc, 0xc32da383, 0xfb126ab1, 0xa03f40a8, 0xed5bf546, 210 0xe9ce4724, 0x4c4a74fd, 0x73a130d8, 0xd9960e2d, 0xa2ebd6c1, 0x94ab6feb, 211 0x6f233b7c, 0x49126080, 0x8e7b9a73, 0x4b8c9091, 0xd298f999, 0x35e836b5, 212 0xa96ddeff, 0x96119b31, 0x6b0dd9bc, 0xc6cc3f8d, 0x282566fb, 0x72b882e7, 213 0xd6769f3b, 0xa674343d, 0x00fc509b, 0xdcbf7789, 0xd6266a3f, 0xae9641fd, 214 0x4e89541b, 0x11953407, 0x53400d03, 0x8e0dd75a, 0xe5b53345, 0x108f19ad, 215 0x108b89bc, 0x41a4c954, 0xe03b2b63, 0x437b3d7f, 0x97aced8e, 0xcbd66670, 216 0x2c5508c2, 0x650ebc69, 0x5c4f2ef0, 0x904ff6bf, 0x9985a2df, 0x9faddd9e, 217 0x5ed8d239, 0x25585832, 0xe3e51cb9, 0x0ff4f1d4, 0x56c02d9a, 0x8c4ef804, 218 0xc1a08a13, 0x13fd01c8, 0xe6d27671, 0xa7c234f4, 0x9d0176cc, 0xd0d73df2, 219 0x4d8bfa89, 0x544f10cd, 0x2b17e0b2, 0xb70a5c7d, 0xfd86fe49, 0xdf373f41, 220 0x214495bb, 0x84e857fd, 0x00d313d5, 0x0496fcbe, 0xa4ba4744, 0xe8cac982, 221 0xaec29e6e, 0x87ec7038, 0x7000a519, 0xaeee333b, 0xff66e42c, 0x8afd6b25, 222 0x03b4f63b, 0xbd7991dc, 0x5ab8d9c7, 0x2ed4684e, 0x48741a6c, 0xaf06940d, 223 0x2fdc6349, 0xb03d7ecd, 0xe974996f, 0xac7867f9, 0x52ec8721, 0xbcdd9d4a, 224 0x8edd2d00, 0x3557de06, 0x41c759f8, 0x3956d4b9, 0xa75409f2, 0x123cd8a1, 225 0xb6100fab, 0x3e7b21e2, 0x2e8d623b, 0x92959da2, 0xbca35f77, 0x200c03a5, 226 0x35fcb457, 0x1bb6c6e4, 0xf74eb928, 0x3d5d0b54, 0x87cc1d21, 0x4964046f, 227 0x18ae4240, 0xd868b275, 0x8bd2b496, 0x1c5563f4, 0xc234d8f5, 0xf868e970, 228 0xf9151fff, 0xae7be4a2, 0x271133ee, 0xbb0fd922, 0x25254932, 0xa60a9fc0, 229 0x104bcd64, 0x30290145, 0x00000062 230 #endif /* !__NO_LONG_DOUBLE_MATH */ 231 }; 232 233 #elif BITS_PER_MP_LIMB == 64 234 235 /* Table with constants of 10^(2^i), i=0..12 for 64-bit limbs. */ 236 237 const mp_limb_t __tens[] = 238 { 239 #define TENS_P0_IDX 0 240 #define TENS_P0_SIZE 2 241 [TENS_P0_IDX] = 0x0000000000000000ull, 0x000000000000000aull, 242 243 #define TENS_P1_IDX (TENS_P0_IDX + TENS_P0_SIZE) 244 #define TENS_P1_SIZE 2 245 [TENS_P1_IDX] = 0x0000000000000000ull, 0x0000000000000064ull, 246 247 #define TENS_P2_IDX (TENS_P1_IDX + TENS_P1_SIZE) 248 #define TENS_P2_SIZE 2 249 [TENS_P2_IDX] = 0x0000000000000000ull, 0x0000000000002710ull, 250 251 #define TENS_P3_IDX (TENS_P2_IDX + TENS_P2_SIZE) 252 #define TENS_P3_SIZE 2 253 [TENS_P3_IDX] = 0x0000000000000000ull, 0x0000000005f5e100ull, 254 255 #define TENS_P4_IDX (TENS_P3_IDX + TENS_P3_SIZE) 256 #define TENS_P4_SIZE 2 257 [TENS_P4_IDX] = 0x0000000000000000ull, 0x002386f26fc10000ull, 258 259 #define TENS_P5_IDX (TENS_P4_IDX + TENS_P4_SIZE) 260 #define TENS_P5_SIZE 3 261 [TENS_P5_IDX] = 0x0000000000000000ull, 0x85acef8100000000ull, 262 0x000004ee2d6d415bull, 263 264 #define TENS_P6_IDX (TENS_P5_IDX + TENS_P5_SIZE) 265 #define TENS_P6_SIZE 5 266 [TENS_P6_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 267 0x6e38ed64bf6a1f01ull, 0xe93ff9f4daa797edull, 0x0000000000184f03ull, 268 269 #define TENS_P7_IDX (TENS_P6_IDX + TENS_P6_SIZE) 270 #define TENS_P7_SIZE 8 271 [TENS_P7_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 272 0x0000000000000000ull, 0x03df99092e953e01ull, 0x2374e42f0f1538fdull, 273 0xc404dc08d3cff5ecull, 0xa6337f19bccdb0daull, 0x0000024ee91f2603ull, 274 275 #define TENS_P8_IDX (TENS_P7_IDX + TENS_P7_SIZE) 276 #define TENS_P8_SIZE 15 277 [TENS_P8_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 278 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 279 0xbed3875b982e7c01ull, 0x12152f87d8d99f72ull, 0xcf4a6e706bde50c6ull, 280 0x26b2716ed595d80full, 0x1d153624adc666b0ull, 0x63ff540e3c42d35aull, 281 0x65f9ef17cc5573c0ull, 0x80dcc7f755bc28f2ull, 0x5fdcefcef46eeddcull, 282 0x00000000000553f7ull, 283 #if!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024 284 # define TENS_P9_IDX (TENS_P8_IDX + TENS_P8_SIZE) 285 # define TENS_P9_SIZE 28 286 [TENS_P9_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 287 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 288 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 289 0x0000000000000000ull, 0x77f27267fc6cf801ull, 0x5d96976f8f9546dcull, 290 0xc31e1ad9b83a8a97ull, 0x94e6574746c40513ull, 0x4475b579c88976c1ull, 291 0xaa1da1bf28f8733bull, 0x1e25cfea703ed321ull, 0xbc51fb2eb21a2f22ull, 292 0xbfa3edac96e14f5dull, 0xe7fc7153329c57aeull, 0x85a91924c3fc0695ull, 293 0xb2908ee0f95f635eull, 0x1366732a93abade4ull, 0x69be5b0e9449775cull, 294 0xb099bc817343afacull, 0xa269974845a71d46ull, 0x8a0b1f138cb07303ull, 295 0xc1d238d98cab8a97ull, 0x0000001c633415d4ull, 296 297 # define TENS_P10_IDX (TENS_P9_IDX + TENS_P9_SIZE) 298 # define TENS_P10_SIZE 55 299 [TENS_P10_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 300 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 301 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 302 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 303 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 304 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 305 0xf55b2b722919f001ull, 0x1ec29f866e7c215bull, 0x15c51a88991c4e87ull, 306 0x4c7d1e1a140ac535ull, 0x0ed1440ecc2cd819ull, 0x7de16cfb896634eeull, 307 0x9fce837d1e43f61full, 0x233e55c7231d2b9cull, 0xf451218b65dc60d7ull, 308 0xc96359861c5cd134ull, 0xa7e89431922bbb9full, 0x62be695a9f9f2a07ull, 309 0x045b7a748e1042c4ull, 0x8ad822a51abe1de3ull, 0xd814b505ba34c411ull, 310 0x8fc51a16bf3fdeb3ull, 0xf56deeecb1b896bcull, 0xb6f4654b31fb6bfdull, 311 0x6b7595fb101a3616ull, 0x80d98089dc1a47feull, 0x9a20288280bda5a5ull, 312 0xfc8f1f9031eb0f66ull, 0xe26a7b7e976a3310ull, 0x3ce3a0b8df68368aull, 313 0x75a351a28e4262ceull, 0x445975836cb0b6c9ull, 0xc356e38a31b5653full, 314 0x0190fba035faaba6ull, 0x88bc491b9fc4ed52ull, 0x005b80411640114aull, 315 0x1e8d4649f4f3235eull, 0x73c5534936a8de06ull, 0xc1a6970ca7e6bd2aull, 316 0xd2db49ef47187094ull, 0xae6209d4926c3f5bull, 0x34f4a3c62d433949ull, 317 0xd9d61a05d4305d94ull, 0x0000000000000325ull, 318 319 # define TENS_P11_IDX (TENS_P10_IDX + TENS_P10_SIZE) 320 # define TENS_P11_SIZE 108 321 [TENS_P11_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 322 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 323 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 324 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 325 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 326 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 327 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 328 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 329 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 330 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 331 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 332 0x0000000000000000ull, 0xe30968651333e001ull, 0x49e28dcfb27d4d3full, 333 0xee87e354ec2e4721ull, 0x368b8abbb6067584ull, 0x2ed56d55a5e5a191ull, 334 0xea50d142fd827773ull, 0x98342c9e51b78db2ull, 0x866ed6f1c850dabcull, 335 0x9279498719342c12ull, 0x66912e4ad2f869c2ull, 0x57a7842d71c7fd8full, 336 0xfb7fedcc235552ebull, 0x38209ce1f3861ce0ull, 0x34c101349713b449ull, 337 0xa7a8289c8c6c54deull, 0xe3cb64f32dbb6643ull, 0xe3892ee98074ff01ull, 338 0xa8f16f9210c17f94ull, 0x967abbb3a8281ed6ull, 0x9952fbed5a151440ull, 339 0xafe609c313b41e44ull, 0xf111821fa2bca416ull, 0x91bac974fb1264b4ull, 340 0x8e48ff35d6c7d6abull, 0xc4a656654419bd43ull, 0x33554c36685e5510ull, 341 0x0dbd21feab498697ull, 0x982da4663cfe491dull, 0x9e110c7bcbea4ca7ull, 342 0x5fc5a04779c56b8aull, 0x1aa9f44484d80e2eull, 0x6a57b1ab730f203cull, 343 0x87a7dc62d752f7a6ull, 0x40660460944545ffull, 0xc9ac375d77c1a42full, 344 0x744695f0e866d7efull, 0xa1fc6b9681428c85ull, 0x7bf03c19d7917c7bull, 345 0x5715f7915b33eb41ull, 0xdb0708fd8f6cae5full, 0x785ce6b7b125ac8eull, 346 0x6f46eadb56c6815bull, 0x195355d84eeebeeeull, 0x9d7389c0a244de3cull, 347 0xcf99d01953761abdull, 0x0d76ce39de9ec24bull, 0x2e55ecee70beb181ull, 348 0xf56d9d4bd5f86079ull, 0x13ef5a83fb8886fbull, 0x3f3389a4408f43c5ull, 349 0x58ccf45cfad37943ull, 0x415c7f3ef82df846ull, 0x8b3d5cf42915e818ull, 350 0xf8dbb57a6a445f27ull, 0x8ad803ecca8f0070ull, 0x038f9245b2e87c34ull, 351 0xc7c9dee0bedd8a6cull, 0x2ad3fa140eac7d56ull, 0xf775677ce0de0840ull, 352 0x92be221ef1bd0ad5ull, 0xce9d04a487fa1fb9ull, 0x3f6f7024d2c36fa9ull, 353 0x907855eeb028af62ull, 0x4efac5dcd83e49d6ull, 0x77cd8c6be7151aabull, 354 0x0af908b40a753b7dull, 0xe50f30278c983623ull, 0x1d08e2d694222771ull, 355 0xf2ee5ca6f7e928e6ull, 0x11eb962b1b61b93cull, 0xce2bcba19648b21cull, 356 0x7bbebe3034f77154ull, 0x8ce329ace526a319ull, 0xb5dc53d5de4a74d2ull, 357 0x000000000009e8b3ull, 358 359 # define TENS_P12_IDX (TENS_P11_IDX + TENS_P11_SIZE) 360 # define TENS_P12_SIZE 214 361 [TENS_P12_IDX] = 0x0000000000000000ull, 0x0000000000000000ull, 362 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 363 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 364 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 365 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 366 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 367 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 368 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 369 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 370 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 371 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 372 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 373 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 374 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 375 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 376 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 377 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 378 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 379 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 380 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 381 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 382 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull, 383 0xd4724e8d2a67c001ull, 0xf89a1e908efe7ae7ull, 0x54e05154ef084117ull, 384 0x506be82913b1bb51ull, 0xe599574efb29b172ull, 0x806c0ed3f0da6146ull, 385 0x45155e93b86ae5beull, 0x7e1e7c34c0591cc2ull, 0x1d1f4cce7c4823daull, 386 0xd6bfdf759b8ba1e8ull, 0xc2dfae78e341be10ull, 0x0f237f1a016b67b2ull, 387 0xaf6a25743dbeabcdull, 0x142e0e80cab3e6d7ull, 0x2c23481161959127ull, 388 0xcb4bf98287009701ull, 0x88052f8cf8169c84ull, 0xbc13176168dde6d4ull, 389 0x54ab9c41ff0b0905ull, 0x1a1c304e7613b224ull, 0x441c2d473bfe167bull, 390 0x78f061814f6cea9cull, 0x30c7ae41eb659fb8ull, 0xa1ebcad7947e0d0eull, 391 0x2130504dd97d9556ull, 0xf2acd5071a8309cbull, 0xfd82373a3f8ec72aull, 392 0x280f4d3295a842bcull, 0x811a4f04f3618ac0ull, 0xd3967a1b6dc3a5b4ull, 393 0xdcfe388f15b8c898ull, 0x8738b909454eb2a0ull, 0x2bd9cc1110c4e996ull, 394 0x655fec303297cd0cull, 0xf4090ee8ae0725b1ull, 0x398c6fed037d19eeull, 395 0xc994a4503b9af26bull, 0x75a697b2b5341743ull, 0x3ccb5b92ac50b9c1ull, 396 0xa8329761ffe06205ull, 0xeb83cadbdfea5242ull, 0x3c20ee69e79dadf7ull, 397 0x7021b97a1e0a6817ull, 0x176ca776743074faull, 0xeca19beb77fb8af6ull, 398 0xaf63b71292baf1deull, 0xa4eb8f8cde35c88bull, 0x40b464a0e137d5e9ull, 399 0x42923bbd87d1cde8ull, 0x2e2690f3cd8f62ffull, 0x59c89f1b095edc16ull, 400 0x5138753d1fa8fd5dull, 0x80152f18390a2b29ull, 0xf984d83e2dd8d925ull, 401 0xc19e1faf7a872e74ull, 0xecf9b5d0ed4d542dull, 0xc53c0adf9462ea75ull, 402 0x37a2d4390caea134ull, 0x2181327ec8fa2e8aull, 0x2d2408206e7bb827ull, 403 0x5893d4b850be10e0ull, 0x1f2b2322ab312bb9ull, 0xbf627ede440b3f25ull, 404 0xb608b89572dac789ull, 0x86deb3f078787e2aull, 0xbb9373f46fee7aabull, 405 0xf7d8b57e27ecf57bull, 0x3d04e8d2fca26a9full, 0x3172826ac9df13cbull, 406 0xa8fcd8e0cd9e8d7cull, 0x307641d9b2c39497ull, 0x2608c4cf1cc939c1ull, 407 0x3d326a7eb6d1c7bfull, 0x8e13e25feeaf19e6ull, 0x2dfe6d97ee63302bull, 408 0xe41d3cc425971d58ull, 0xab8db59a0a80627cull, 0xe90afb779eea37c8ull, 409 0x9ee3352c90ca19cfull, 0xfe78d6823613c850ull, 0x5b060904788f6e50ull, 410 0x3fecb534b71bd1a4ull, 0x20c33857b32c450cull, 0x0239f4cea6e9cfdaull, 411 0xa19adb9548497187ull, 0x95aca6a8b492ed8aull, 0xcf1b23504dcd6cd9ull, 412 0x1a67778cfbe8b12aull, 0xc32da38338eb3accull, 0xa03f40a8fb126ab1ull, 413 0xe9ce4724ed5bf546ull, 0x73a130d84c4a74fdull, 0xa2ebd6c1d9960e2dull, 414 0x6f233b7c94ab6febull, 0x8e7b9a7349126080ull, 0xd298f9994b8c9091ull, 415 0xa96ddeff35e836b5ull, 0x6b0dd9bc96119b31ull, 0x282566fbc6cc3f8dull, 416 0xd6769f3b72b882e7ull, 0x00fc509ba674343dull, 0xd6266a3fdcbf7789ull, 417 0x4e89541bae9641fdull, 0x53400d0311953407ull, 0xe5b533458e0dd75aull, 418 0x108b89bc108f19adull, 0xe03b2b6341a4c954ull, 0x97aced8e437b3d7full, 419 0x2c5508c2cbd66670ull, 0x5c4f2ef0650ebc69ull, 0x9985a2df904ff6bfull, 420 0x5ed8d2399faddd9eull, 0xe3e51cb925585832ull, 0x56c02d9a0ff4f1d4ull, 421 0xc1a08a138c4ef804ull, 0xe6d2767113fd01c8ull, 0x9d0176cca7c234f4ull, 422 0x4d8bfa89d0d73df2ull, 0x2b17e0b2544f10cdull, 0xfd86fe49b70a5c7dull, 423 0x214495bbdf373f41ull, 0x00d313d584e857fdull, 0xa4ba47440496fcbeull, 424 0xaec29e6ee8cac982ull, 0x7000a51987ec7038ull, 0xff66e42caeee333bull, 425 0x03b4f63b8afd6b25ull, 0x5ab8d9c7bd7991dcull, 0x48741a6c2ed4684eull, 426 0x2fdc6349af06940dull, 0xe974996fb03d7ecdull, 0x52ec8721ac7867f9ull, 427 0x8edd2d00bcdd9d4aull, 0x41c759f83557de06ull, 0xa75409f23956d4b9ull, 428 0xb6100fab123cd8a1ull, 0x2e8d623b3e7b21e2ull, 0xbca35f7792959da2ull, 429 0x35fcb457200c03a5ull, 0xf74eb9281bb6c6e4ull, 0x87cc1d213d5d0b54ull, 430 0x18ae42404964046full, 0x8bd2b496d868b275ull, 0xc234d8f51c5563f4ull, 431 0xf9151ffff868e970ull, 0x271133eeae7be4a2ull, 0x25254932bb0fd922ull, 432 0x104bcd64a60a9fc0ull, 0x0000006230290145ull 433 #endif 434 }; 435 436 #else 437 # error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for" 438 #endif 439 440 /* Each of array variable above defines one mpn integer which is a power of 10. 441 This table points to those variables, indexed by the exponent. */ 442 443 const struct mp_power _fpioconst_pow10[LDBL_MAX_10_EXP_LOG + 1] = 444 { 445 { TENS_P0_IDX, TENS_P0_SIZE, 4, 0 }, 446 { TENS_P1_IDX, TENS_P1_SIZE, 7, 4 }, 447 { TENS_P2_IDX, TENS_P2_SIZE, 14, 10 }, 448 { TENS_P3_IDX, TENS_P3_SIZE, 27, 24 }, 449 { TENS_P4_IDX, TENS_P4_SIZE, 54, 50 }, 450 { TENS_P5_IDX, TENS_P5_SIZE, 107, 103 }, 451 { TENS_P6_IDX, TENS_P6_SIZE, 213, 210 }, 452 { TENS_P7_IDX, TENS_P7_SIZE, 426, 422 }, 453 { TENS_P8_IDX, TENS_P8_SIZE, 851, 848 }, 454 #if!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024 455 { TENS_P9_IDX, TENS_P9_SIZE, 1701, 1698 }, 456 { TENS_P10_IDX, TENS_P10_SIZE, 3402, 3399 }, 457 { TENS_P11_IDX, TENS_P11_SIZE, 6804, 6800 }, 458 { TENS_P12_IDX, TENS_P12_SIZE, 13607, 13604 } 459 #endif 460 }; 461 462 #if 0 /* vstr -- can't fid this ?? */ 463 #if LAST_POW10 > _LAST_POW10 464 # error "Need to expand 10^(2^i) table for i up to" LAST_POW10 465 #endif 466 #endif /* vstr */ 467