Wrapper around strtod.c to compile as strtof_l.
[glibc/history.git] / stdlib / fpioconst.c
blobd8c5fda9560839688b22668b929e034d9801732e
1 /* Table of MP integer constants 10^(2^i), used for floating point <-> decimal.
2 Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public License as
7 published by the Free Software Foundation; either version 2 of the
8 License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public
16 License along with the GNU C Library; see the file COPYING.LIB. If not,
17 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. */
20 #include "fpioconst.h"
21 #include <gmp-mparam.h> /* This defines BITS_PER_MP_LIMB. */
23 /* First page : 32-bit limbs
24 Second page : 64-bit limbs
25 Last page : table of pointers
28 #if BITS_PER_MP_LIMB == 32
30 /* Table with constants of 10^(2^i), i=0..12 for 32-bit limbs. */
32 static const mp_limb_t _ten_p0[] =
33 { 0x00000000, 0x00000000, 0x0000000a };
34 static const mp_limb_t _ten_p1[] =
35 { 0x00000000, 0x00000000, 0x00000064 };
36 static const mp_limb_t _ten_p2[] =
37 { 0x00000000, 0x00000000, 0x00002710 };
38 static const mp_limb_t _ten_p3[] =
39 { 0x00000000, 0x00000000, 0x05f5e100 };
40 static const mp_limb_t _ten_p4[] =
41 { 0x00000000, 0x00000000, 0x6fc10000, 0x002386f2 };
42 static const mp_limb_t _ten_p5[] =
43 { 0x00000000, 0x00000000, 0x00000000, 0x85acef81, 0x2d6d415b, 0x000004ee };
44 static const mp_limb_t _ten_p6[] =
45 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xbf6a1f01, 0x6e38ed64,
46 0xdaa797ed, 0xe93ff9f4, 0x00184f03 };
47 static const mp_limb_t _ten_p7[] =
48 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
49 0x2e953e01, 0x03df9909, 0x0f1538fd, 0x2374e42f, 0xd3cff5ec, 0xc404dc08,
50 0xbccdb0da, 0xa6337f19, 0xe91f2603, 0x0000024e };
51 static const mp_limb_t _ten_p8[] =
52 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
53 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x982e7c01, 0xbed3875b,
54 0xd8d99f72, 0x12152f87, 0x6bde50c6, 0xcf4a6e70, 0xd595d80f, 0x26b2716e,
55 0xadc666b0, 0x1d153624, 0x3c42d35a, 0x63ff540e, 0xcc5573c0, 0x65f9ef17,
56 0x55bc28f2, 0x80dcc7f7, 0xf46eeddc, 0x5fdcefce, 0x000553f7 };
57 static const mp_limb_t _ten_p9[] =
58 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
59 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
60 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
61 0xfc6cf801, 0x77f27267, 0x8f9546dc, 0x5d96976f, 0xb83a8a97, 0xc31e1ad9,
62 0x46c40513, 0x94e65747, 0xc88976c1, 0x4475b579, 0x28f8733b, 0xaa1da1bf,
63 0x703ed321, 0x1e25cfea, 0xb21a2f22, 0xbc51fb2e, 0x96e14f5d, 0xbfa3edac,
64 0x329c57ae, 0xe7fc7153, 0xc3fc0695, 0x85a91924, 0xf95f635e, 0xb2908ee0,
65 0x93abade4, 0x1366732a, 0x9449775c, 0x69be5b0e, 0x7343afac, 0xb099bc81,
66 0x45a71d46, 0xa2699748, 0x8cb07303, 0x8a0b1f13, 0x8cab8a97, 0xc1d238d9,
67 0x633415d4, 0x0000001c };
68 static const mp_limb_t _ten_p10[] =
69 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
70 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
71 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
72 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
73 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
74 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2919f001, 0xf55b2b72,
75 0x6e7c215b, 0x1ec29f86, 0x991c4e87, 0x15c51a88, 0x140ac535, 0x4c7d1e1a,
76 0xcc2cd819, 0x0ed1440e, 0x896634ee, 0x7de16cfb, 0x1e43f61f, 0x9fce837d,
77 0x231d2b9c, 0x233e55c7, 0x65dc60d7, 0xf451218b, 0x1c5cd134, 0xc9635986,
78 0x922bbb9f, 0xa7e89431, 0x9f9f2a07, 0x62be695a, 0x8e1042c4, 0x045b7a74,
79 0x1abe1de3, 0x8ad822a5, 0xba34c411, 0xd814b505, 0xbf3fdeb3, 0x8fc51a16,
80 0xb1b896bc, 0xf56deeec, 0x31fb6bfd, 0xb6f4654b, 0x101a3616, 0x6b7595fb,
81 0xdc1a47fe, 0x80d98089, 0x80bda5a5, 0x9a202882, 0x31eb0f66, 0xfc8f1f90,
82 0x976a3310, 0xe26a7b7e, 0xdf68368a, 0x3ce3a0b8, 0x8e4262ce, 0x75a351a2,
83 0x6cb0b6c9, 0x44597583, 0x31b5653f, 0xc356e38a, 0x35faaba6, 0x0190fba0,
84 0x9fc4ed52, 0x88bc491b, 0x1640114a, 0x005b8041, 0xf4f3235e, 0x1e8d4649,
85 0x36a8de06, 0x73c55349, 0xa7e6bd2a, 0xc1a6970c, 0x47187094, 0xd2db49ef,
86 0x926c3f5b, 0xae6209d4, 0x2d433949, 0x34f4a3c6, 0xd4305d94, 0xd9d61a05,
87 0x00000325 };
88 static const mp_limb_t _ten_p11[] =
89 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
90 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
91 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
92 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
93 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
94 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
95 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
96 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
97 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
98 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
99 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
100 0x1333e001, 0xe3096865, 0xb27d4d3f, 0x49e28dcf, 0xec2e4721, 0xee87e354,
101 0xb6067584, 0x368b8abb, 0xa5e5a191, 0x2ed56d55, 0xfd827773, 0xea50d142,
102 0x51b78db2, 0x98342c9e, 0xc850dabc, 0x866ed6f1, 0x19342c12, 0x92794987,
103 0xd2f869c2, 0x66912e4a, 0x71c7fd8f, 0x57a7842d, 0x235552eb, 0xfb7fedcc,
104 0xf3861ce0, 0x38209ce1, 0x9713b449, 0x34c10134, 0x8c6c54de, 0xa7a8289c,
105 0x2dbb6643, 0xe3cb64f3, 0x8074ff01, 0xe3892ee9, 0x10c17f94, 0xa8f16f92,
106 0xa8281ed6, 0x967abbb3, 0x5a151440, 0x9952fbed, 0x13b41e44, 0xafe609c3,
107 0xa2bca416, 0xf111821f, 0xfb1264b4, 0x91bac974, 0xd6c7d6ab, 0x8e48ff35,
108 0x4419bd43, 0xc4a65665, 0x685e5510, 0x33554c36, 0xab498697, 0x0dbd21fe,
109 0x3cfe491d, 0x982da466, 0xcbea4ca7, 0x9e110c7b, 0x79c56b8a, 0x5fc5a047,
110 0x84d80e2e, 0x1aa9f444, 0x730f203c, 0x6a57b1ab, 0xd752f7a6, 0x87a7dc62,
111 0x944545ff, 0x40660460, 0x77c1a42f, 0xc9ac375d, 0xe866d7ef, 0x744695f0,
112 0x81428c85, 0xa1fc6b96, 0xd7917c7b, 0x7bf03c19, 0x5b33eb41, 0x5715f791,
113 0x8f6cae5f, 0xdb0708fd, 0xb125ac8e, 0x785ce6b7, 0x56c6815b, 0x6f46eadb,
114 0x4eeebeee, 0x195355d8, 0xa244de3c, 0x9d7389c0, 0x53761abd, 0xcf99d019,
115 0xde9ec24b, 0x0d76ce39, 0x70beb181, 0x2e55ecee, 0xd5f86079, 0xf56d9d4b,
116 0xfb8886fb, 0x13ef5a83, 0x408f43c5, 0x3f3389a4, 0xfad37943, 0x58ccf45c,
117 0xf82df846, 0x415c7f3e, 0x2915e818, 0x8b3d5cf4, 0x6a445f27, 0xf8dbb57a,
118 0xca8f0070, 0x8ad803ec, 0xb2e87c34, 0x038f9245, 0xbedd8a6c, 0xc7c9dee0,
119 0x0eac7d56, 0x2ad3fa14, 0xe0de0840, 0xf775677c, 0xf1bd0ad5, 0x92be221e,
120 0x87fa1fb9, 0xce9d04a4, 0xd2c36fa9, 0x3f6f7024, 0xb028af62, 0x907855ee,
121 0xd83e49d6, 0x4efac5dc, 0xe7151aab, 0x77cd8c6b, 0x0a753b7d, 0x0af908b4,
122 0x8c983623, 0xe50f3027, 0x94222771, 0x1d08e2d6, 0xf7e928e6, 0xf2ee5ca6,
123 0x1b61b93c, 0x11eb962b, 0x9648b21c, 0xce2bcba1, 0x34f77154, 0x7bbebe30,
124 0xe526a319, 0x8ce329ac, 0xde4a74d2, 0xb5dc53d5, 0x0009e8b3 };
125 static const mp_limb_t _ten_p12[] =
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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
131 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
132 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
133 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
134 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
135 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
136 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
137 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
138 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
139 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
140 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
141 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
142 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
143 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
144 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
145 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
146 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
147 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a67c001, 0xd4724e8d,
148 0x8efe7ae7, 0xf89a1e90, 0xef084117, 0x54e05154, 0x13b1bb51, 0x506be829,
149 0xfb29b172, 0xe599574e, 0xf0da6146, 0x806c0ed3, 0xb86ae5be, 0x45155e93,
150 0xc0591cc2, 0x7e1e7c34, 0x7c4823da, 0x1d1f4cce, 0x9b8ba1e8, 0xd6bfdf75,
151 0xe341be10, 0xc2dfae78, 0x016b67b2, 0x0f237f1a, 0x3dbeabcd, 0xaf6a2574,
152 0xcab3e6d7, 0x142e0e80, 0x61959127, 0x2c234811, 0x87009701, 0xcb4bf982,
153 0xf8169c84, 0x88052f8c, 0x68dde6d4, 0xbc131761, 0xff0b0905, 0x54ab9c41,
154 0x7613b224, 0x1a1c304e, 0x3bfe167b, 0x441c2d47, 0x4f6cea9c, 0x78f06181,
155 0xeb659fb8, 0x30c7ae41, 0x947e0d0e, 0xa1ebcad7, 0xd97d9556, 0x2130504d,
156 0x1a8309cb, 0xf2acd507, 0x3f8ec72a, 0xfd82373a, 0x95a842bc, 0x280f4d32,
157 0xf3618ac0, 0x811a4f04, 0x6dc3a5b4, 0xd3967a1b, 0x15b8c898, 0xdcfe388f,
158 0x454eb2a0, 0x8738b909, 0x10c4e996, 0x2bd9cc11, 0x3297cd0c, 0x655fec30,
159 0xae0725b1, 0xf4090ee8, 0x037d19ee, 0x398c6fed, 0x3b9af26b, 0xc994a450,
160 0xb5341743, 0x75a697b2, 0xac50b9c1, 0x3ccb5b92, 0xffe06205, 0xa8329761,
161 0xdfea5242, 0xeb83cadb, 0xe79dadf7, 0x3c20ee69, 0x1e0a6817, 0x7021b97a,
162 0x743074fa, 0x176ca776, 0x77fb8af6, 0xeca19beb, 0x92baf1de, 0xaf63b712,
163 0xde35c88b, 0xa4eb8f8c, 0xe137d5e9, 0x40b464a0, 0x87d1cde8, 0x42923bbd,
164 0xcd8f62ff, 0x2e2690f3, 0x095edc16, 0x59c89f1b, 0x1fa8fd5d, 0x5138753d,
165 0x390a2b29, 0x80152f18, 0x2dd8d925, 0xf984d83e, 0x7a872e74, 0xc19e1faf,
166 0xed4d542d, 0xecf9b5d0, 0x9462ea75, 0xc53c0adf, 0x0caea134, 0x37a2d439,
167 0xc8fa2e8a, 0x2181327e, 0x6e7bb827, 0x2d240820, 0x50be10e0, 0x5893d4b8,
168 0xab312bb9, 0x1f2b2322, 0x440b3f25, 0xbf627ede, 0x72dac789, 0xb608b895,
169 0x78787e2a, 0x86deb3f0, 0x6fee7aab, 0xbb9373f4, 0x27ecf57b, 0xf7d8b57e,
170 0xfca26a9f, 0x3d04e8d2, 0xc9df13cb, 0x3172826a, 0xcd9e8d7c, 0xa8fcd8e0,
171 0xb2c39497, 0x307641d9, 0x1cc939c1, 0x2608c4cf, 0xb6d1c7bf, 0x3d326a7e,
172 0xeeaf19e6, 0x8e13e25f, 0xee63302b, 0x2dfe6d97, 0x25971d58, 0xe41d3cc4,
173 0x0a80627c, 0xab8db59a, 0x9eea37c8, 0xe90afb77, 0x90ca19cf, 0x9ee3352c,
174 0x3613c850, 0xfe78d682, 0x788f6e50, 0x5b060904, 0xb71bd1a4, 0x3fecb534,
175 0xb32c450c, 0x20c33857, 0xa6e9cfda, 0x0239f4ce, 0x48497187, 0xa19adb95,
176 0xb492ed8a, 0x95aca6a8, 0x4dcd6cd9, 0xcf1b2350, 0xfbe8b12a, 0x1a67778c,
177 0x38eb3acc, 0xc32da383, 0xfb126ab1, 0xa03f40a8, 0xed5bf546, 0xe9ce4724,
178 0x4c4a74fd, 0x73a130d8, 0xd9960e2d, 0xa2ebd6c1, 0x94ab6feb, 0x6f233b7c,
179 0x49126080, 0x8e7b9a73, 0x4b8c9091, 0xd298f999, 0x35e836b5, 0xa96ddeff,
180 0x96119b31, 0x6b0dd9bc, 0xc6cc3f8d, 0x282566fb, 0x72b882e7, 0xd6769f3b,
181 0xa674343d, 0x00fc509b, 0xdcbf7789, 0xd6266a3f, 0xae9641fd, 0x4e89541b,
182 0x11953407, 0x53400d03, 0x8e0dd75a, 0xe5b53345, 0x108f19ad, 0x108b89bc,
183 0x41a4c954, 0xe03b2b63, 0x437b3d7f, 0x97aced8e, 0xcbd66670, 0x2c5508c2,
184 0x650ebc69, 0x5c4f2ef0, 0x904ff6bf, 0x9985a2df, 0x9faddd9e, 0x5ed8d239,
185 0x25585832, 0xe3e51cb9, 0x0ff4f1d4, 0x56c02d9a, 0x8c4ef804, 0xc1a08a13,
186 0x13fd01c8, 0xe6d27671, 0xa7c234f4, 0x9d0176cc, 0xd0d73df2, 0x4d8bfa89,
187 0x544f10cd, 0x2b17e0b2, 0xb70a5c7d, 0xfd86fe49, 0xdf373f41, 0x214495bb,
188 0x84e857fd, 0x00d313d5, 0x0496fcbe, 0xa4ba4744, 0xe8cac982, 0xaec29e6e,
189 0x87ec7038, 0x7000a519, 0xaeee333b, 0xff66e42c, 0x8afd6b25, 0x03b4f63b,
190 0xbd7991dc, 0x5ab8d9c7, 0x2ed4684e, 0x48741a6c, 0xaf06940d, 0x2fdc6349,
191 0xb03d7ecd, 0xe974996f, 0xac7867f9, 0x52ec8721, 0xbcdd9d4a, 0x8edd2d00,
192 0x3557de06, 0x41c759f8, 0x3956d4b9, 0xa75409f2, 0x123cd8a1, 0xb6100fab,
193 0x3e7b21e2, 0x2e8d623b, 0x92959da2, 0xbca35f77, 0x200c03a5, 0x35fcb457,
194 0x1bb6c6e4, 0xf74eb928, 0x3d5d0b54, 0x87cc1d21, 0x4964046f, 0x18ae4240,
195 0xd868b275, 0x8bd2b496, 0x1c5563f4, 0xc234d8f5, 0xf868e970, 0xf9151fff,
196 0xae7be4a2, 0x271133ee, 0xbb0fd922, 0x25254932, 0xa60a9fc0, 0x104bcd64,
197 0x30290145, 0x00000062 };
199 /* This value is the index of the last array element. */
200 #define _LAST_POW10 12
202 #elif BITS_PER_MP_LIMB == 64
204 /* Table with constants of 10^(2^i), i=0..12 for 64-bit limbs. */
206 static const mp_limb_t _ten_p0[] =
207 { 0x0000000000000000, 0x000000000000000a };
208 static const mp_limb_t _ten_p1[] =
209 { 0x0000000000000000, 0x0000000000000064 };
210 static const mp_limb_t _ten_p2[] =
211 { 0x0000000000000000, 0x0000000000002710 };
212 static const mp_limb_t _ten_p3[] =
213 { 0x0000000000000000, 0x0000000005f5e100 };
214 static const mp_limb_t _ten_p4[] =
215 { 0x0000000000000000, 0x002386f26fc10000 };
216 static const mp_limb_t _ten_p5[] =
217 { 0x0000000000000000, 0x85acef8100000000, 0x000004ee2d6d415b };
218 static const mp_limb_t _ten_p6[] =
219 { 0x0000000000000000, 0x0000000000000000, 0x6e38ed64bf6a1f01,
220 0xe93ff9f4daa797ed, 0x0000000000184f03 };
221 static const mp_limb_t _ten_p7[] =
222 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
223 0x03df99092e953e01, 0x2374e42f0f1538fd, 0xc404dc08d3cff5ec,
224 0xa6337f19bccdb0da, 0x0000024ee91f2603 };
225 static const mp_limb_t _ten_p8[] =
226 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
227 0x0000000000000000, 0x0000000000000000, 0xbed3875b982e7c01,
228 0x12152f87d8d99f72, 0xcf4a6e706bde50c6, 0x26b2716ed595d80f,
229 0x1d153624adc666b0, 0x63ff540e3c42d35a, 0x65f9ef17cc5573c0,
230 0x80dcc7f755bc28f2, 0x5fdcefcef46eeddc, 0x00000000000553f7 };
231 static const mp_limb_t _ten_p9[] =
232 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
233 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
234 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
235 0x77f27267fc6cf801, 0x5d96976f8f9546dc, 0xc31e1ad9b83a8a97,
236 0x94e6574746c40513, 0x4475b579c88976c1, 0xaa1da1bf28f8733b,
237 0x1e25cfea703ed321, 0xbc51fb2eb21a2f22, 0xbfa3edac96e14f5d,
238 0xe7fc7153329c57ae, 0x85a91924c3fc0695, 0xb2908ee0f95f635e,
239 0x1366732a93abade4, 0x69be5b0e9449775c, 0xb099bc817343afac,
240 0xa269974845a71d46, 0x8a0b1f138cb07303, 0xc1d238d98cab8a97,
241 0x0000001c633415d4 };
242 static const mp_limb_t _ten_p10[] =
243 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
244 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
245 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
246 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
247 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
248 0x0000000000000000, 0x0000000000000000, 0xf55b2b722919f001,
249 0x1ec29f866e7c215b, 0x15c51a88991c4e87, 0x4c7d1e1a140ac535,
250 0x0ed1440ecc2cd819, 0x7de16cfb896634ee, 0x9fce837d1e43f61f,
251 0x233e55c7231d2b9c, 0xf451218b65dc60d7, 0xc96359861c5cd134,
252 0xa7e89431922bbb9f, 0x62be695a9f9f2a07, 0x045b7a748e1042c4,
253 0x8ad822a51abe1de3, 0xd814b505ba34c411, 0x8fc51a16bf3fdeb3,
254 0xf56deeecb1b896bc, 0xb6f4654b31fb6bfd, 0x6b7595fb101a3616,
255 0x80d98089dc1a47fe, 0x9a20288280bda5a5, 0xfc8f1f9031eb0f66,
256 0xe26a7b7e976a3310, 0x3ce3a0b8df68368a, 0x75a351a28e4262ce,
257 0x445975836cb0b6c9, 0xc356e38a31b5653f, 0x0190fba035faaba6,
258 0x88bc491b9fc4ed52, 0x005b80411640114a, 0x1e8d4649f4f3235e,
259 0x73c5534936a8de06, 0xc1a6970ca7e6bd2a, 0xd2db49ef47187094,
260 0xae6209d4926c3f5b, 0x34f4a3c62d433949, 0xd9d61a05d4305d94,
261 0x0000000000000325 };
262 static const mp_limb_t _ten_p11[] =
263 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
264 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
265 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
266 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
267 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
268 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
269 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
270 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
271 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
272 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
273 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
274 0xe30968651333e001, 0x49e28dcfb27d4d3f, 0xee87e354ec2e4721,
275 0x368b8abbb6067584, 0x2ed56d55a5e5a191, 0xea50d142fd827773,
276 0x98342c9e51b78db2, 0x866ed6f1c850dabc, 0x9279498719342c12,
277 0x66912e4ad2f869c2, 0x57a7842d71c7fd8f, 0xfb7fedcc235552eb,
278 0x38209ce1f3861ce0, 0x34c101349713b449, 0xa7a8289c8c6c54de,
279 0xe3cb64f32dbb6643, 0xe3892ee98074ff01, 0xa8f16f9210c17f94,
280 0x967abbb3a8281ed6, 0x9952fbed5a151440, 0xafe609c313b41e44,
281 0xf111821fa2bca416, 0x91bac974fb1264b4, 0x8e48ff35d6c7d6ab,
282 0xc4a656654419bd43, 0x33554c36685e5510, 0x0dbd21feab498697,
283 0x982da4663cfe491d, 0x9e110c7bcbea4ca7, 0x5fc5a04779c56b8a,
284 0x1aa9f44484d80e2e, 0x6a57b1ab730f203c, 0x87a7dc62d752f7a6,
285 0x40660460944545ff, 0xc9ac375d77c1a42f, 0x744695f0e866d7ef,
286 0xa1fc6b9681428c85, 0x7bf03c19d7917c7b, 0x5715f7915b33eb41,
287 0xdb0708fd8f6cae5f, 0x785ce6b7b125ac8e, 0x6f46eadb56c6815b,
288 0x195355d84eeebeee, 0x9d7389c0a244de3c, 0xcf99d01953761abd,
289 0x0d76ce39de9ec24b, 0x2e55ecee70beb181, 0xf56d9d4bd5f86079,
290 0x13ef5a83fb8886fb, 0x3f3389a4408f43c5, 0x58ccf45cfad37943,
291 0x415c7f3ef82df846, 0x8b3d5cf42915e818, 0xf8dbb57a6a445f27,
292 0x8ad803ecca8f0070, 0x038f9245b2e87c34, 0xc7c9dee0bedd8a6c,
293 0x2ad3fa140eac7d56, 0xf775677ce0de0840, 0x92be221ef1bd0ad5,
294 0xce9d04a487fa1fb9, 0x3f6f7024d2c36fa9, 0x907855eeb028af62,
295 0x4efac5dcd83e49d6, 0x77cd8c6be7151aab, 0x0af908b40a753b7d,
296 0xe50f30278c983623, 0x1d08e2d694222771, 0xf2ee5ca6f7e928e6,
297 0x11eb962b1b61b93c, 0xce2bcba19648b21c, 0x7bbebe3034f77154,
298 0x8ce329ace526a319, 0xb5dc53d5de4a74d2, 0x000000000009e8b3 };
299 static const mp_limb_t _ten_p12[] =
300 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
301 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
302 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
303 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
304 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
305 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
306 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
307 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
308 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
309 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
310 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
311 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
312 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
313 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
314 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
315 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
316 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
317 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
318 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
319 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
320 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
321 0x0000000000000000, 0x0000000000000000, 0xd4724e8d2a67c001,
322 0xf89a1e908efe7ae7, 0x54e05154ef084117, 0x506be82913b1bb51,
323 0xe599574efb29b172, 0x806c0ed3f0da6146, 0x45155e93b86ae5be,
324 0x7e1e7c34c0591cc2, 0x1d1f4cce7c4823da, 0xd6bfdf759b8ba1e8,
325 0xc2dfae78e341be10, 0x0f237f1a016b67b2, 0xaf6a25743dbeabcd,
326 0x142e0e80cab3e6d7, 0x2c23481161959127, 0xcb4bf98287009701,
327 0x88052f8cf8169c84, 0xbc13176168dde6d4, 0x54ab9c41ff0b0905,
328 0x1a1c304e7613b224, 0x441c2d473bfe167b, 0x78f061814f6cea9c,
329 0x30c7ae41eb659fb8, 0xa1ebcad7947e0d0e, 0x2130504dd97d9556,
330 0xf2acd5071a8309cb, 0xfd82373a3f8ec72a, 0x280f4d3295a842bc,
331 0x811a4f04f3618ac0, 0xd3967a1b6dc3a5b4, 0xdcfe388f15b8c898,
332 0x8738b909454eb2a0, 0x2bd9cc1110c4e996, 0x655fec303297cd0c,
333 0xf4090ee8ae0725b1, 0x398c6fed037d19ee, 0xc994a4503b9af26b,
334 0x75a697b2b5341743, 0x3ccb5b92ac50b9c1, 0xa8329761ffe06205,
335 0xeb83cadbdfea5242, 0x3c20ee69e79dadf7, 0x7021b97a1e0a6817,
336 0x176ca776743074fa, 0xeca19beb77fb8af6, 0xaf63b71292baf1de,
337 0xa4eb8f8cde35c88b, 0x40b464a0e137d5e9, 0x42923bbd87d1cde8,
338 0x2e2690f3cd8f62ff, 0x59c89f1b095edc16, 0x5138753d1fa8fd5d,
339 0x80152f18390a2b29, 0xf984d83e2dd8d925, 0xc19e1faf7a872e74,
340 0xecf9b5d0ed4d542d, 0xc53c0adf9462ea75, 0x37a2d4390caea134,
341 0x2181327ec8fa2e8a, 0x2d2408206e7bb827, 0x5893d4b850be10e0,
342 0x1f2b2322ab312bb9, 0xbf627ede440b3f25, 0xb608b89572dac789,
343 0x86deb3f078787e2a, 0xbb9373f46fee7aab, 0xf7d8b57e27ecf57b,
344 0x3d04e8d2fca26a9f, 0x3172826ac9df13cb, 0xa8fcd8e0cd9e8d7c,
345 0x307641d9b2c39497, 0x2608c4cf1cc939c1, 0x3d326a7eb6d1c7bf,
346 0x8e13e25feeaf19e6, 0x2dfe6d97ee63302b, 0xe41d3cc425971d58,
347 0xab8db59a0a80627c, 0xe90afb779eea37c8, 0x9ee3352c90ca19cf,
348 0xfe78d6823613c850, 0x5b060904788f6e50, 0x3fecb534b71bd1a4,
349 0x20c33857b32c450c, 0x0239f4cea6e9cfda, 0xa19adb9548497187,
350 0x95aca6a8b492ed8a, 0xcf1b23504dcd6cd9, 0x1a67778cfbe8b12a,
351 0xc32da38338eb3acc, 0xa03f40a8fb126ab1, 0xe9ce4724ed5bf546,
352 0x73a130d84c4a74fd, 0xa2ebd6c1d9960e2d, 0x6f233b7c94ab6feb,
353 0x8e7b9a7349126080, 0xd298f9994b8c9091, 0xa96ddeff35e836b5,
354 0x6b0dd9bc96119b31, 0x282566fbc6cc3f8d, 0xd6769f3b72b882e7,
355 0x00fc509ba674343d, 0xd6266a3fdcbf7789, 0x4e89541bae9641fd,
356 0x53400d0311953407, 0xe5b533458e0dd75a, 0x108b89bc108f19ad,
357 0xe03b2b6341a4c954, 0x97aced8e437b3d7f, 0x2c5508c2cbd66670,
358 0x5c4f2ef0650ebc69, 0x9985a2df904ff6bf, 0x5ed8d2399faddd9e,
359 0xe3e51cb925585832, 0x56c02d9a0ff4f1d4, 0xc1a08a138c4ef804,
360 0xe6d2767113fd01c8, 0x9d0176cca7c234f4, 0x4d8bfa89d0d73df2,
361 0x2b17e0b2544f10cd, 0xfd86fe49b70a5c7d, 0x214495bbdf373f41,
362 0x00d313d584e857fd, 0xa4ba47440496fcbe, 0xaec29e6ee8cac982,
363 0x7000a51987ec7038, 0xff66e42caeee333b, 0x03b4f63b8afd6b25,
364 0x5ab8d9c7bd7991dc, 0x48741a6c2ed4684e, 0x2fdc6349af06940d,
365 0xe974996fb03d7ecd, 0x52ec8721ac7867f9, 0x8edd2d00bcdd9d4a,
366 0x41c759f83557de06, 0xa75409f23956d4b9, 0xb6100fab123cd8a1,
367 0x2e8d623b3e7b21e2, 0xbca35f7792959da2, 0x35fcb457200c03a5,
368 0xf74eb9281bb6c6e4, 0x87cc1d213d5d0b54, 0x18ae42404964046f,
369 0x8bd2b496d868b275, 0xc234d8f51c5563f4, 0xf9151ffff868e970,
370 0x271133eeae7be4a2, 0x25254932bb0fd922, 0x104bcd64a60a9fc0,
371 0x0000006230290145 };
373 /* This value is the index of the last array element. */
374 #define _LAST_POW10 12
376 #else
377 # error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
378 #endif
381 /* Each of array variable above defines one mpn integer which is a power of 10.
382 This table points to those variables, indexed by the exponent. */
384 const struct mp_power _fpioconst_pow10[_LAST_POW10 + 1] =
386 { _ten_p0, sizeof (_ten_p0) / sizeof (_ten_p0[0]), 4, },
387 { _ten_p1, sizeof (_ten_p1) / sizeof (_ten_p1[0]), 7, 4 },
388 { _ten_p2, sizeof (_ten_p2) / sizeof (_ten_p2[0]), 14, 10 },
389 { _ten_p3, sizeof (_ten_p3) / sizeof (_ten_p3[0]), 27, 24 },
390 { _ten_p4, sizeof (_ten_p4) / sizeof (_ten_p4[0]), 54, 50 },
391 { _ten_p5, sizeof (_ten_p5) / sizeof (_ten_p5[0]), 107, 103 },
392 { _ten_p6, sizeof (_ten_p6) / sizeof (_ten_p6[0]), 213, 210 },
393 { _ten_p7, sizeof (_ten_p7) / sizeof (_ten_p7[0]), 426, 422 },
394 { _ten_p8, sizeof (_ten_p8) / sizeof (_ten_p8[0]), 851, 848 },
395 { _ten_p9, sizeof (_ten_p9) / sizeof (_ten_p9[0]), 1701, 1698 },
396 { _ten_p10, sizeof (_ten_p10) / sizeof (_ten_p10[0]), 3402, 3399 },
397 { _ten_p11, sizeof (_ten_p11) / sizeof (_ten_p11[0]), 6804, 6800 },
398 { _ten_p12, sizeof (_ten_p12) / sizeof (_ten_p12[0]), 13607, 13604 }
401 #if LAST_POW10 > _LAST_POW10
402 #error "Need to expand 10^(2^i) table for i up to" LAST_POW10
403 #endif