1 /* Table of MP integer constants 10^(2^i), used for floating point <-> decimal.
2 Copyright (C) 1995, 1996, 1997, 1998 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 #ifndef __NO_LONG_DOUBLE_MATH
58 static const mp_limb_t _ten_p9
[] =
59 { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
60 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
61 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
62 0xfc6cf801, 0x77f27267, 0x8f9546dc, 0x5d96976f, 0xb83a8a97, 0xc31e1ad9,
63 0x46c40513, 0x94e65747, 0xc88976c1, 0x4475b579, 0x28f8733b, 0xaa1da1bf,
64 0x703ed321, 0x1e25cfea, 0xb21a2f22, 0xbc51fb2e, 0x96e14f5d, 0xbfa3edac,
65 0x329c57ae, 0xe7fc7153, 0xc3fc0695, 0x85a91924, 0xf95f635e, 0xb2908ee0,
66 0x93abade4, 0x1366732a, 0x9449775c, 0x69be5b0e, 0x7343afac, 0xb099bc81,
67 0x45a71d46, 0xa2699748, 0x8cb07303, 0x8a0b1f13, 0x8cab8a97, 0xc1d238d9,
68 0x633415d4, 0x0000001c };
69 static const mp_limb_t _ten_p10
[] =
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, 0x00000000, 0x00000000,
75 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2919f001, 0xf55b2b72,
76 0x6e7c215b, 0x1ec29f86, 0x991c4e87, 0x15c51a88, 0x140ac535, 0x4c7d1e1a,
77 0xcc2cd819, 0x0ed1440e, 0x896634ee, 0x7de16cfb, 0x1e43f61f, 0x9fce837d,
78 0x231d2b9c, 0x233e55c7, 0x65dc60d7, 0xf451218b, 0x1c5cd134, 0xc9635986,
79 0x922bbb9f, 0xa7e89431, 0x9f9f2a07, 0x62be695a, 0x8e1042c4, 0x045b7a74,
80 0x1abe1de3, 0x8ad822a5, 0xba34c411, 0xd814b505, 0xbf3fdeb3, 0x8fc51a16,
81 0xb1b896bc, 0xf56deeec, 0x31fb6bfd, 0xb6f4654b, 0x101a3616, 0x6b7595fb,
82 0xdc1a47fe, 0x80d98089, 0x80bda5a5, 0x9a202882, 0x31eb0f66, 0xfc8f1f90,
83 0x976a3310, 0xe26a7b7e, 0xdf68368a, 0x3ce3a0b8, 0x8e4262ce, 0x75a351a2,
84 0x6cb0b6c9, 0x44597583, 0x31b5653f, 0xc356e38a, 0x35faaba6, 0x0190fba0,
85 0x9fc4ed52, 0x88bc491b, 0x1640114a, 0x005b8041, 0xf4f3235e, 0x1e8d4649,
86 0x36a8de06, 0x73c55349, 0xa7e6bd2a, 0xc1a6970c, 0x47187094, 0xd2db49ef,
87 0x926c3f5b, 0xae6209d4, 0x2d433949, 0x34f4a3c6, 0xd4305d94, 0xd9d61a05,
89 static const mp_limb_t _ten_p11
[] =
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 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
101 0x1333e001, 0xe3096865, 0xb27d4d3f, 0x49e28dcf, 0xec2e4721, 0xee87e354,
102 0xb6067584, 0x368b8abb, 0xa5e5a191, 0x2ed56d55, 0xfd827773, 0xea50d142,
103 0x51b78db2, 0x98342c9e, 0xc850dabc, 0x866ed6f1, 0x19342c12, 0x92794987,
104 0xd2f869c2, 0x66912e4a, 0x71c7fd8f, 0x57a7842d, 0x235552eb, 0xfb7fedcc,
105 0xf3861ce0, 0x38209ce1, 0x9713b449, 0x34c10134, 0x8c6c54de, 0xa7a8289c,
106 0x2dbb6643, 0xe3cb64f3, 0x8074ff01, 0xe3892ee9, 0x10c17f94, 0xa8f16f92,
107 0xa8281ed6, 0x967abbb3, 0x5a151440, 0x9952fbed, 0x13b41e44, 0xafe609c3,
108 0xa2bca416, 0xf111821f, 0xfb1264b4, 0x91bac974, 0xd6c7d6ab, 0x8e48ff35,
109 0x4419bd43, 0xc4a65665, 0x685e5510, 0x33554c36, 0xab498697, 0x0dbd21fe,
110 0x3cfe491d, 0x982da466, 0xcbea4ca7, 0x9e110c7b, 0x79c56b8a, 0x5fc5a047,
111 0x84d80e2e, 0x1aa9f444, 0x730f203c, 0x6a57b1ab, 0xd752f7a6, 0x87a7dc62,
112 0x944545ff, 0x40660460, 0x77c1a42f, 0xc9ac375d, 0xe866d7ef, 0x744695f0,
113 0x81428c85, 0xa1fc6b96, 0xd7917c7b, 0x7bf03c19, 0x5b33eb41, 0x5715f791,
114 0x8f6cae5f, 0xdb0708fd, 0xb125ac8e, 0x785ce6b7, 0x56c6815b, 0x6f46eadb,
115 0x4eeebeee, 0x195355d8, 0xa244de3c, 0x9d7389c0, 0x53761abd, 0xcf99d019,
116 0xde9ec24b, 0x0d76ce39, 0x70beb181, 0x2e55ecee, 0xd5f86079, 0xf56d9d4b,
117 0xfb8886fb, 0x13ef5a83, 0x408f43c5, 0x3f3389a4, 0xfad37943, 0x58ccf45c,
118 0xf82df846, 0x415c7f3e, 0x2915e818, 0x8b3d5cf4, 0x6a445f27, 0xf8dbb57a,
119 0xca8f0070, 0x8ad803ec, 0xb2e87c34, 0x038f9245, 0xbedd8a6c, 0xc7c9dee0,
120 0x0eac7d56, 0x2ad3fa14, 0xe0de0840, 0xf775677c, 0xf1bd0ad5, 0x92be221e,
121 0x87fa1fb9, 0xce9d04a4, 0xd2c36fa9, 0x3f6f7024, 0xb028af62, 0x907855ee,
122 0xd83e49d6, 0x4efac5dc, 0xe7151aab, 0x77cd8c6b, 0x0a753b7d, 0x0af908b4,
123 0x8c983623, 0xe50f3027, 0x94222771, 0x1d08e2d6, 0xf7e928e6, 0xf2ee5ca6,
124 0x1b61b93c, 0x11eb962b, 0x9648b21c, 0xce2bcba1, 0x34f77154, 0x7bbebe30,
125 0xe526a319, 0x8ce329ac, 0xde4a74d2, 0xb5dc53d5, 0x0009e8b3 };
126 static const mp_limb_t _ten_p12
[] =
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, 0x00000000, 0x00000000,
148 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2a67c001, 0xd4724e8d,
149 0x8efe7ae7, 0xf89a1e90, 0xef084117, 0x54e05154, 0x13b1bb51, 0x506be829,
150 0xfb29b172, 0xe599574e, 0xf0da6146, 0x806c0ed3, 0xb86ae5be, 0x45155e93,
151 0xc0591cc2, 0x7e1e7c34, 0x7c4823da, 0x1d1f4cce, 0x9b8ba1e8, 0xd6bfdf75,
152 0xe341be10, 0xc2dfae78, 0x016b67b2, 0x0f237f1a, 0x3dbeabcd, 0xaf6a2574,
153 0xcab3e6d7, 0x142e0e80, 0x61959127, 0x2c234811, 0x87009701, 0xcb4bf982,
154 0xf8169c84, 0x88052f8c, 0x68dde6d4, 0xbc131761, 0xff0b0905, 0x54ab9c41,
155 0x7613b224, 0x1a1c304e, 0x3bfe167b, 0x441c2d47, 0x4f6cea9c, 0x78f06181,
156 0xeb659fb8, 0x30c7ae41, 0x947e0d0e, 0xa1ebcad7, 0xd97d9556, 0x2130504d,
157 0x1a8309cb, 0xf2acd507, 0x3f8ec72a, 0xfd82373a, 0x95a842bc, 0x280f4d32,
158 0xf3618ac0, 0x811a4f04, 0x6dc3a5b4, 0xd3967a1b, 0x15b8c898, 0xdcfe388f,
159 0x454eb2a0, 0x8738b909, 0x10c4e996, 0x2bd9cc11, 0x3297cd0c, 0x655fec30,
160 0xae0725b1, 0xf4090ee8, 0x037d19ee, 0x398c6fed, 0x3b9af26b, 0xc994a450,
161 0xb5341743, 0x75a697b2, 0xac50b9c1, 0x3ccb5b92, 0xffe06205, 0xa8329761,
162 0xdfea5242, 0xeb83cadb, 0xe79dadf7, 0x3c20ee69, 0x1e0a6817, 0x7021b97a,
163 0x743074fa, 0x176ca776, 0x77fb8af6, 0xeca19beb, 0x92baf1de, 0xaf63b712,
164 0xde35c88b, 0xa4eb8f8c, 0xe137d5e9, 0x40b464a0, 0x87d1cde8, 0x42923bbd,
165 0xcd8f62ff, 0x2e2690f3, 0x095edc16, 0x59c89f1b, 0x1fa8fd5d, 0x5138753d,
166 0x390a2b29, 0x80152f18, 0x2dd8d925, 0xf984d83e, 0x7a872e74, 0xc19e1faf,
167 0xed4d542d, 0xecf9b5d0, 0x9462ea75, 0xc53c0adf, 0x0caea134, 0x37a2d439,
168 0xc8fa2e8a, 0x2181327e, 0x6e7bb827, 0x2d240820, 0x50be10e0, 0x5893d4b8,
169 0xab312bb9, 0x1f2b2322, 0x440b3f25, 0xbf627ede, 0x72dac789, 0xb608b895,
170 0x78787e2a, 0x86deb3f0, 0x6fee7aab, 0xbb9373f4, 0x27ecf57b, 0xf7d8b57e,
171 0xfca26a9f, 0x3d04e8d2, 0xc9df13cb, 0x3172826a, 0xcd9e8d7c, 0xa8fcd8e0,
172 0xb2c39497, 0x307641d9, 0x1cc939c1, 0x2608c4cf, 0xb6d1c7bf, 0x3d326a7e,
173 0xeeaf19e6, 0x8e13e25f, 0xee63302b, 0x2dfe6d97, 0x25971d58, 0xe41d3cc4,
174 0x0a80627c, 0xab8db59a, 0x9eea37c8, 0xe90afb77, 0x90ca19cf, 0x9ee3352c,
175 0x3613c850, 0xfe78d682, 0x788f6e50, 0x5b060904, 0xb71bd1a4, 0x3fecb534,
176 0xb32c450c, 0x20c33857, 0xa6e9cfda, 0x0239f4ce, 0x48497187, 0xa19adb95,
177 0xb492ed8a, 0x95aca6a8, 0x4dcd6cd9, 0xcf1b2350, 0xfbe8b12a, 0x1a67778c,
178 0x38eb3acc, 0xc32da383, 0xfb126ab1, 0xa03f40a8, 0xed5bf546, 0xe9ce4724,
179 0x4c4a74fd, 0x73a130d8, 0xd9960e2d, 0xa2ebd6c1, 0x94ab6feb, 0x6f233b7c,
180 0x49126080, 0x8e7b9a73, 0x4b8c9091, 0xd298f999, 0x35e836b5, 0xa96ddeff,
181 0x96119b31, 0x6b0dd9bc, 0xc6cc3f8d, 0x282566fb, 0x72b882e7, 0xd6769f3b,
182 0xa674343d, 0x00fc509b, 0xdcbf7789, 0xd6266a3f, 0xae9641fd, 0x4e89541b,
183 0x11953407, 0x53400d03, 0x8e0dd75a, 0xe5b53345, 0x108f19ad, 0x108b89bc,
184 0x41a4c954, 0xe03b2b63, 0x437b3d7f, 0x97aced8e, 0xcbd66670, 0x2c5508c2,
185 0x650ebc69, 0x5c4f2ef0, 0x904ff6bf, 0x9985a2df, 0x9faddd9e, 0x5ed8d239,
186 0x25585832, 0xe3e51cb9, 0x0ff4f1d4, 0x56c02d9a, 0x8c4ef804, 0xc1a08a13,
187 0x13fd01c8, 0xe6d27671, 0xa7c234f4, 0x9d0176cc, 0xd0d73df2, 0x4d8bfa89,
188 0x544f10cd, 0x2b17e0b2, 0xb70a5c7d, 0xfd86fe49, 0xdf373f41, 0x214495bb,
189 0x84e857fd, 0x00d313d5, 0x0496fcbe, 0xa4ba4744, 0xe8cac982, 0xaec29e6e,
190 0x87ec7038, 0x7000a519, 0xaeee333b, 0xff66e42c, 0x8afd6b25, 0x03b4f63b,
191 0xbd7991dc, 0x5ab8d9c7, 0x2ed4684e, 0x48741a6c, 0xaf06940d, 0x2fdc6349,
192 0xb03d7ecd, 0xe974996f, 0xac7867f9, 0x52ec8721, 0xbcdd9d4a, 0x8edd2d00,
193 0x3557de06, 0x41c759f8, 0x3956d4b9, 0xa75409f2, 0x123cd8a1, 0xb6100fab,
194 0x3e7b21e2, 0x2e8d623b, 0x92959da2, 0xbca35f77, 0x200c03a5, 0x35fcb457,
195 0x1bb6c6e4, 0xf74eb928, 0x3d5d0b54, 0x87cc1d21, 0x4964046f, 0x18ae4240,
196 0xd868b275, 0x8bd2b496, 0x1c5563f4, 0xc234d8f5, 0xf868e970, 0xf9151fff,
197 0xae7be4a2, 0x271133ee, 0xbb0fd922, 0x25254932, 0xa60a9fc0, 0x104bcd64,
198 0x30290145, 0x00000062 };
199 #endif /* !__NO_LONG_DOUBLE_MATH */
201 #elif BITS_PER_MP_LIMB == 64
203 /* Table with constants of 10^(2^i), i=0..12 for 64-bit limbs. */
205 static const mp_limb_t _ten_p0
[] =
206 { 0x0000000000000000, 0x000000000000000a };
207 static const mp_limb_t _ten_p1
[] =
208 { 0x0000000000000000, 0x0000000000000064 };
209 static const mp_limb_t _ten_p2
[] =
210 { 0x0000000000000000, 0x0000000000002710 };
211 static const mp_limb_t _ten_p3
[] =
212 { 0x0000000000000000, 0x0000000005f5e100 };
213 static const mp_limb_t _ten_p4
[] =
214 { 0x0000000000000000, 0x002386f26fc10000 };
215 static const mp_limb_t _ten_p5
[] =
216 { 0x0000000000000000, 0x85acef8100000000, 0x000004ee2d6d415b };
217 static const mp_limb_t _ten_p6
[] =
218 { 0x0000000000000000, 0x0000000000000000, 0x6e38ed64bf6a1f01,
219 0xe93ff9f4daa797ed, 0x0000000000184f03 };
220 static const mp_limb_t _ten_p7
[] =
221 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
222 0x03df99092e953e01, 0x2374e42f0f1538fd, 0xc404dc08d3cff5ec,
223 0xa6337f19bccdb0da, 0x0000024ee91f2603 };
224 static const mp_limb_t _ten_p8
[] =
225 { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
226 0x0000000000000000, 0x0000000000000000, 0xbed3875b982e7c01,
227 0x12152f87d8d99f72, 0xcf4a6e706bde50c6, 0x26b2716ed595d80f,
228 0x1d153624adc666b0, 0x63ff540e3c42d35a, 0x65f9ef17cc5573c0,
229 0x80dcc7f755bc28f2, 0x5fdcefcef46eeddc, 0x00000000000553f7 };
230 #ifndef __NO_LONG_DOUBLE_MATH
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 };
375 # error "mp_limb_t size " BITS_PER_MP_LIMB "not accounted for"
378 #ifndef __NO_LONG_DOUBLE_MATH
379 /* This value is the index of the last array element. */
380 # define _LAST_POW10 12
382 # define _LAST_POW10 8
385 /* Each of array variable above defines one mpn integer which is a power of 10.
386 This table points to those variables, indexed by the exponent. */
388 const struct mp_power _fpioconst_pow10
[_LAST_POW10
+ 1] =
390 { _ten_p0
, sizeof (_ten_p0
) / sizeof (_ten_p0
[0]), 4, },
391 { _ten_p1
, sizeof (_ten_p1
) / sizeof (_ten_p1
[0]), 7, 4 },
392 { _ten_p2
, sizeof (_ten_p2
) / sizeof (_ten_p2
[0]), 14, 10 },
393 { _ten_p3
, sizeof (_ten_p3
) / sizeof (_ten_p3
[0]), 27, 24 },
394 { _ten_p4
, sizeof (_ten_p4
) / sizeof (_ten_p4
[0]), 54, 50 },
395 { _ten_p5
, sizeof (_ten_p5
) / sizeof (_ten_p5
[0]), 107, 103 },
396 { _ten_p6
, sizeof (_ten_p6
) / sizeof (_ten_p6
[0]), 213, 210 },
397 { _ten_p7
, sizeof (_ten_p7
) / sizeof (_ten_p7
[0]), 426, 422 },
398 { _ten_p8
, sizeof (_ten_p8
) / sizeof (_ten_p8
[0]), 851, 848 },
399 #ifndef __NO_LONG_DOUBLE_MATH
400 { _ten_p9
, sizeof (_ten_p9
) / sizeof (_ten_p9
[0]), 1701, 1698 },
401 { _ten_p10
, sizeof (_ten_p10
) / sizeof (_ten_p10
[0]), 3402, 3399 },
402 { _ten_p11
, sizeof (_ten_p11
) / sizeof (_ten_p11
[0]), 6804, 6800 },
403 { _ten_p12
, sizeof (_ten_p12
) / sizeof (_ten_p12
[0]), 13607, 13604 }
407 #if LAST_POW10 > _LAST_POW10
408 # error "Need to expand 10^(2^i) table for i up to" LAST_POW10