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