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