OSDN Git Service

* trans-decl.c (gfc_build_qualified_array): Don't skip generation
[pf3gnuchains/gcc-fork.git] / libgcc / config / libbid / bid_decimal_data.c
1 /* Copyright (C) 2007, 2009  Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
5 GCC is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 3, or (at your option) any later
8 version.
9
10 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13 for more details.
14
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
18
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
22 <http://www.gnu.org/licenses/>.  */
23
24 #include "bid_internal.h"
25
26 UINT64 round_const_table[][19] = {
27   {     // RN
28    0ull,        // 0 extra digits
29    5ull,        // 1 extra digits
30    50ull,       // 2 extra digits
31    500ull,      // 3 extra digits
32    5000ull,     // 4 extra digits
33    50000ull,    // 5 extra digits
34    500000ull,   // 6 extra digits
35    5000000ull,  // 7 extra digits
36    50000000ull, // 8 extra digits
37    500000000ull,        // 9 extra digits
38    5000000000ull,       // 10 extra digits
39    50000000000ull,      // 11 extra digits
40    500000000000ull,     // 12 extra digits
41    5000000000000ull,    // 13 extra digits
42    50000000000000ull,   // 14 extra digits
43    500000000000000ull,  // 15 extra digits
44    5000000000000000ull, // 16 extra digits
45    50000000000000000ull,        // 17 extra digits
46    500000000000000000ull        // 18 extra digits
47    }
48   ,
49   {     // RD
50    0ull,        // 0 extra digits
51    0ull,        // 1 extra digits
52    0ull,        // 2 extra digits
53    00ull,       // 3 extra digits
54    000ull,      // 4 extra digits
55    0000ull,     // 5 extra digits
56    00000ull,    // 6 extra digits
57    000000ull,   // 7 extra digits
58    0000000ull,  // 8 extra digits
59    00000000ull, // 9 extra digits
60    000000000ull,        // 10 extra digits
61    0000000000ull,       // 11 extra digits
62    00000000000ull,      // 12 extra digits
63    000000000000ull,     // 13 extra digits
64    0000000000000ull,    // 14 extra digits
65    00000000000000ull,   // 15 extra digits
66    000000000000000ull,  // 16 extra digits
67    0000000000000000ull, // 17 extra digits
68    00000000000000000ull // 18 extra digits
69    }
70   ,
71   {     // round to Inf
72    0ull,        // 0 extra digits
73    9ull,        // 1 extra digits
74    99ull,       // 2 extra digits
75    999ull,      // 3 extra digits
76    9999ull,     // 4 extra digits
77    99999ull,    // 5 extra digits
78    999999ull,   // 6 extra digits
79    9999999ull,  // 7 extra digits
80    99999999ull, // 8 extra digits
81    999999999ull,        // 9 extra digits
82    9999999999ull,       // 10 extra digits
83    99999999999ull,      // 11 extra digits
84    999999999999ull,     // 12 extra digits
85    9999999999999ull,    // 13 extra digits
86    99999999999999ull,   // 14 extra digits
87    999999999999999ull,  // 15 extra digits
88    9999999999999999ull, // 16 extra digits
89    99999999999999999ull,        // 17 extra digits
90    999999999999999999ull        // 18 extra digits
91    }
92   ,
93   {     // RZ
94    0ull,        // 0 extra digits
95    0ull,        // 1 extra digits
96    0ull,        // 2 extra digits
97    00ull,       // 3 extra digits
98    000ull,      // 4 extra digits
99    0000ull,     // 5 extra digits
100    00000ull,    // 6 extra digits
101    000000ull,   // 7 extra digits
102    0000000ull,  // 8 extra digits
103    00000000ull, // 9 extra digits
104    000000000ull,        // 10 extra digits
105    0000000000ull,       // 11 extra digits
106    00000000000ull,      // 12 extra digits
107    000000000000ull,     // 13 extra digits
108    0000000000000ull,    // 14 extra digits
109    00000000000000ull,   // 15 extra digits
110    000000000000000ull,  // 16 extra digits
111    0000000000000000ull, // 17 extra digits
112    00000000000000000ull // 18 extra digits
113    }
114   ,
115   {     // round ties away from 0
116    0ull,        // 0 extra digits
117    5ull,        // 1 extra digits
118    50ull,       // 2 extra digits
119    500ull,      // 3 extra digits
120    5000ull,     // 4 extra digits
121    50000ull,    // 5 extra digits
122    500000ull,   // 6 extra digits
123    5000000ull,  // 7 extra digits
124    50000000ull, // 8 extra digits
125    500000000ull,        // 9 extra digits
126    5000000000ull,       // 10 extra digits
127    50000000000ull,      // 11 extra digits
128    500000000000ull,     // 12 extra digits
129    5000000000000ull,    // 13 extra digits
130    50000000000000ull,   // 14 extra digits
131    500000000000000ull,  // 15 extra digits
132    5000000000000000ull, // 16 extra digits
133    50000000000000000ull,        // 17 extra digits
134    500000000000000000ull        // 18 extra digits
135    }
136   ,
137 };
138
139 UINT128 round_const_table_128[][36] = {
140   {     //RN
141    {{0ull, 0ull}
142     }
143    ,    // 0 extra digits
144    {{5ull, 0ull}
145     }
146    ,    // 1 extra digits
147    {{50ull, 0ull}
148     }
149    ,    // 2 extra digits
150    {{500ull, 0ull}
151     }
152    ,    // 3 extra digits
153    {{5000ull, 0ull}
154     }
155    ,    // 4 extra digits
156    {{50000ull, 0ull}
157     }
158    ,    // 5 extra digits
159    {{500000ull, 0ull}
160     }
161    ,    // 6 extra digits
162    {{5000000ull, 0ull}
163     }
164    ,    // 7 extra digits
165    {{50000000ull, 0ull}
166     }
167    ,    // 8 extra digits
168    {{500000000ull, 0ull}
169     }
170    ,    // 9 extra digits
171    {{5000000000ull, 0ull}
172     }
173    ,    // 10 extra digits
174    {{50000000000ull, 0ull}
175     }
176    ,    // 11 extra digits
177    {{500000000000ull, 0ull}
178     }
179    ,    // 12 extra digits
180    {{5000000000000ull, 0ull}
181     }
182    ,    // 13 extra digits
183    {{50000000000000ull, 0ull}
184     }
185    ,    // 14 extra digits
186    {{500000000000000ull, 0ull}
187     }
188    ,    // 15 extra digits
189    {{5000000000000000ull, 0ull}
190     }
191    ,    // 16 extra digits
192    {{50000000000000000ull, 0ull}
193     }
194    ,    // 17 extra digits
195    {{500000000000000000ull, 0ull}
196     }
197    ,    // 18 extra digits
198    {{5000000000000000000ull, 0ull}
199     }
200    ,    // 19 extra digits
201    {{0xb5e3af16b1880000ull, 2ull}
202     }
203    ,    //20
204    {{0x1ae4d6e2ef500000ull, 27ull}
205     }
206    ,    //21
207    {{0xcf064dd59200000ull, 271ull}
208     }
209    ,    //22
210    {{0x8163f0a57b400000ull, 2710ull}
211     }
212    ,    //23
213    {{0xde76676d0800000ull, 27105ull}
214     }
215    ,    //24
216    {{0x8b0a00a425000000ull, 0x422caull}
217     }
218    ,    //25
219    {{0x6e64066972000000ull, 0x295be9ull}
220     }
221    ,    //26
222    {{0x4fe8401e74000000ull, 0x19d971eull}
223     }
224    ,    //27
225    {{0x1f12813088000000ull, 0x1027e72full}
226     }
227    ,    //28
228    {{0x36b90be550000000ull, 0xa18f07d7ull}
229     }
230    ,    //29
231    {{0x233a76f520000000ull, 0x64f964e68ull}
232     }
233    ,    //30
234    {{0x6048a59340000000ull, 0x3f1bdf1011ull}
235     }
236    ,    //31
237    {{0xc2d677c080000000ull, 0x27716b6a0adull}
238     }
239    ,    //32
240    {{0x9c60ad8500000000ull, 0x18a6e32246c9ull}
241     }
242    ,    //33
243    {{0x1bc6c73200000000ull, 0xf684df56c3e0ull}
244     }
245    ,    //34
246    {{0x15c3c7f400000000ull, 0x9a130b963a6c1ull}
247     }
248    ,    //35
249    }
250   ,
251   {     //RD
252    {{0ull, 0ull}
253     }
254    ,    // 0 extra digits
255    {{0ull, 0ull}
256     }
257    ,    // 1 extra digits
258    {{0ull, 0ull}
259     }
260    ,    // 2 extra digits
261    {{00ull, 0ull}
262     }
263    ,    // 3 extra digits
264    {{000ull, 0ull}
265     }
266    ,    // 4 extra digits
267    {{0000ull, 0ull}
268     }
269    ,    // 5 extra digits
270    {{00000ull, 0ull}
271     }
272    ,    // 6 extra digits
273    {{000000ull, 0ull}
274     }
275    ,    // 7 extra digits
276    {{0000000ull, 0ull}
277     }
278    ,    // 8 extra digits
279    {{00000000ull, 0ull}
280     }
281    ,    // 9 extra digits
282    {{000000000ull, 0ull}
283     }
284    ,    // 10 extra digits
285    {{0000000000ull, 0ull}
286     }
287    ,    // 11 extra digits
288    {{00000000000ull, 0ull}
289     }
290    ,    // 12 extra digits
291    {{000000000000ull, 0ull}
292     }
293    ,    // 13 extra digits
294    {{0000000000000ull, 0ull}
295     }
296    ,    // 14 extra digits
297    {{00000000000000ull, 0ull}
298     }
299    ,    // 15 extra digits
300    {{000000000000000ull, 0ull}
301     }
302    ,    // 16 extra digits
303    {{0000000000000000ull, 0ull}
304     }
305    ,    // 17 extra digits
306    {{00000000000000000ull, 0ull}
307     }
308    ,    // 18 extra digits
309    {{000000000000000000ull, 0ull}
310     }
311    ,    // 19 extra digits
312    {{0ull, 0ull}
313     }
314    ,    //20
315    {{0ull, 0ull}
316     }
317    ,    //21
318    {{0ull, 0ull}
319     }
320    ,    //22
321    {{0ull, 0ull}
322     }
323    ,    //23
324    {{0ull, 0ull}
325     }
326    ,    //24
327    {{0ull, 0ull}
328     }
329    ,    //25
330    {{0ull, 0ull}
331     }
332    ,    //26
333    {{0ull, 0ull}
334     }
335    ,    //27
336    {{0ull, 0ull}
337     }
338    ,    //28
339    {{0ull, 0ull}
340     }
341    ,    //29
342    {{0ull, 0ull}
343     }
344    ,    //30
345    {{0ull, 0ull}
346     }
347    ,    //31
348    {{0ull, 0ull}
349     }
350    ,    //32
351    {{0ull, 0ull}
352     }
353    ,    //33
354    {{0ull, 0ull}
355     }
356    ,    //34
357    {{0ull, 0ull}
358     }
359    ,    //35
360    }
361   ,
362   {     //RU
363    {{0ull, 0ull}
364     }
365    ,    // 0 extra digits
366    {{9ull, 0ull}
367     }
368    ,    // 1 extra digits
369    {{99ull, 0ull}
370     }
371    ,    // 2 extra digits
372    {{999ull, 0ull}
373     }
374    ,    // 3 extra digits
375    {{9999ull, 0ull}
376     }
377    ,    // 4 extra digits
378    {{99999ull, 0ull}
379     }
380    ,    // 5 extra digits
381    {{999999ull, 0ull}
382     }
383    ,    // 6 extra digits
384    {{9999999ull, 0ull}
385     }
386    ,    // 7 extra digits
387    {{99999999ull, 0ull}
388     }
389    ,    // 8 extra digits
390    {{999999999ull, 0ull}
391     }
392    ,    // 9 extra digits
393    {{9999999999ull, 0ull}
394     }
395    ,    // 10 extra digits
396    {{99999999999ull, 0ull}
397     }
398    ,    // 11 extra digits
399    {{999999999999ull, 0ull}
400     }
401    ,    // 12 extra digits
402    {{9999999999999ull, 0ull}
403     }
404    ,    // 13 extra digits
405    {{99999999999999ull, 0ull}
406     }
407    ,    // 14 extra digits
408    {{999999999999999ull, 0ull}
409     }
410    ,    // 15 extra digits
411    {{9999999999999999ull, 0ull}
412     }
413    ,    // 16 extra digits
414    {{99999999999999999ull, 0ull}
415     }
416    ,    // 17 extra digits
417    {{999999999999999999ull, 0ull}
418     }
419    ,    // 18 extra digits
420    {{9999999999999999999ull, 0ull}
421     }
422    ,    // 19 extra digits
423    {{0x6BC75E2D630FFFFFull, 0x5ull}
424     }
425    ,    //20
426    {{0x35C9ADC5DE9FFFFFull, 0x36ull}
427     }
428    ,    //21
429    {{0x19E0C9BAB23FFFFFull, 0x21eull}
430     }
431    ,    //22
432    {{0x2C7E14AF67FFFFFull, 0x152dull}
433     }
434    ,    //23
435    {{0x1BCECCEDA0FFFFFFull, 0xd3c2ull}
436     }
437    ,    //24
438    {{0x1614014849FFFFFFull, 0x84595ull}
439     }
440    ,    //25
441    {{0xDCC80CD2E3FFFFFFull, 0x52b7d2ull}
442     }
443    ,    //26
444    {{0x9FD0803CE7FFFFFFull, 0x33B2E3Cull}
445     }
446    ,    //27
447    {{0x3E2502610FFFFFFFull, 0x204FCE5Eull}
448     }
449    ,    //28
450    {{0x6D7217CA9FFFFFFFull, 0x1431E0FAEull}
451     }
452    ,    //29
453    {{0x4674EDEA3FFFFFFFull, 0xC9F2C9CD0ull}
454     }
455    ,    //30
456    {{0xC0914B267FFFFFFFull, 0x7E37BE2022ull}
457     }
458    ,    //31
459    {{0x85ACEF80FFFFFFFFull, 0x4EE2D6D415Bull}
460     }
461    ,    //32
462    {{0x38c15b09ffffffffull, 0x314dc6448d93ull}
463     }
464    ,    //33
465    {{0x378d8e63ffffffffull, 0x1ed09bead87c0ull}
466     }
467    ,    //34
468    {{0x2b878fe7ffffffffull, 0x13426172c74d82ull}
469     }
470    ,    //35
471    }
472   ,
473   {     //RZ
474    {{0ull, 0ull}
475     }
476    ,    // 0 extra digits
477    {{0ull, 0ull}
478     }
479    ,    // 1 extra digits
480    {{0ull, 0ull}
481     }
482    ,    // 2 extra digits
483    {{00ull, 0ull}
484     }
485    ,    // 3 extra digits
486    {{000ull, 0ull}
487     }
488    ,    // 4 extra digits
489    {{0000ull, 0ull}
490     }
491    ,    // 5 extra digits
492    {{00000ull, 0ull}
493     }
494    ,    // 6 extra digits
495    {{000000ull, 0ull}
496     }
497    ,    // 7 extra digits
498    {{0000000ull, 0ull}
499     }
500    ,    // 8 extra digits
501    {{00000000ull, 0ull}
502     }
503    ,    // 9 extra digits
504    {{000000000ull, 0ull}
505     }
506    ,    // 10 extra digits
507    {{0000000000ull, 0ull}
508     }
509    ,    // 11 extra digits
510    {{00000000000ull, 0ull}
511     }
512    ,    // 12 extra digits
513    {{000000000000ull, 0ull}
514     }
515    ,    // 13 extra digits
516    {{0000000000000ull, 0ull}
517     }
518    ,    // 14 extra digits
519    {{00000000000000ull, 0ull}
520     }
521    ,    // 15 extra digits
522    {{000000000000000ull, 0ull}
523     }
524    ,    // 16 extra digits
525    {{0000000000000000ull, 0ull}
526     }
527    ,    // 17 extra digits
528    {{00000000000000000ull, 0ull}
529     }
530    ,    // 18 extra digits
531    {{000000000000000000ull, 0ull}
532     }
533    ,    // 19 extra digits
534    {{0ull, 0ull}
535     }
536    ,    //20
537    {{0ull, 0ull}
538     }
539    ,    //21
540    {{0ull, 0ull}
541     }
542    ,    //22
543    {{0ull, 0ull}
544     }
545    ,    //23
546    {{0ull, 0ull}
547     }
548    ,    //24
549    {{0ull, 0ull}
550     }
551    ,    //25
552    {{0ull, 0ull}
553     }
554    ,    //26
555    {{0ull, 0ull}
556     }
557    ,    //27
558    {{0ull, 0ull}
559     }
560    ,    //28
561    {{0ull, 0ull}
562     }
563    ,    //29
564    {{0ull, 0ull}
565     }
566    ,    //30
567    {{0ull, 0ull}
568     }
569    ,    //31
570    {{0ull, 0ull}
571     }
572    ,    //32
573    {{0ull, 0ull}
574     }
575    ,    //33
576    {{0ull, 0ull}
577     }
578    ,    //34
579    {{0ull, 0ull}
580     }
581    ,    //35
582    }
583   ,
584   {     //RN, ties away
585    {{0ull, 0ull}
586     }
587    ,    // 0 extra digits
588    {{5ull, 0ull}
589     }
590    ,    // 1 extra digits
591    {{50ull, 0ull}
592     }
593    ,    // 2 extra digits
594    {{500ull, 0ull}
595     }
596    ,    // 3 extra digits
597    {{5000ull, 0ull}
598     }
599    ,    // 4 extra digits
600    {{50000ull, 0ull}
601     }
602    ,    // 5 extra digits
603    {{500000ull, 0ull}
604     }
605    ,    // 6 extra digits
606    {{5000000ull, 0ull}
607     }
608    ,    // 7 extra digits
609    {{50000000ull, 0ull}
610     }
611    ,    // 8 extra digits
612    {{500000000ull, 0ull}
613     }
614    ,    // 9 extra digits
615    {{5000000000ull, 0ull}
616     }
617    ,    // 10 extra digits
618    {{50000000000ull, 0ull}
619     }
620    ,    // 11 extra digits
621    {{500000000000ull, 0ull}
622     }
623    ,    // 12 extra digits
624    {{5000000000000ull, 0ull}
625     }
626    ,    // 13 extra digits
627    {{50000000000000ull, 0ull}
628     }
629    ,    // 14 extra digits
630    {{500000000000000ull, 0ull}
631     }
632    ,    // 15 extra digits
633    {{5000000000000000ull, 0ull}
634     }
635    ,    // 16 extra digits
636    {{50000000000000000ull, 0ull}
637     }
638    ,    // 17 extra digits
639    {{500000000000000000ull, 0ull}
640     }
641    ,    // 18 extra digits
642    {{5000000000000000000ull, 0ull}
643     }
644    ,    // 19 extra digits
645    {{0xb5e3af16b1880000ull, 2ull}
646     }
647    ,    //20
648    {{0x1ae4d6e2ef500000ull, 27ull}
649     }
650    ,    //21
651    {{0xcf064dd59200000ull, 271ull}
652     }
653    ,    //22
654    {{0x8163f0a57b400000ull, 2710ull}
655     }
656    ,    //23
657    {{0xde76676d0800000ull, 27105ull}
658     }
659    ,    //24
660    {{0x8b0a00a425000000ull, 0x422caull}
661     }
662    ,    //25
663    {{0x6e64066972000000ull, 0x295be9ull}
664     }
665    ,    //26
666    {{0x4fe8401e74000000ull, 0x19d971eull}
667     }
668    ,    //27
669    {{0x1f12813088000000ull, 0x1027e72full}
670     }
671    ,    //28
672    {{0x36b90be550000000ull, 0xa18f07d7ull}
673     }
674    ,    //29
675    {{0x233a76f520000000ull, 0x64f964e68ull}
676     }
677    ,    //30
678    {{0x6048a59340000000ull, 0x3f1bdf1011ull}
679     }
680    ,    //31
681    {{0xc2d677c080000000ull, 0x27716b6a0adull}
682     }
683    ,    //32
684    {{0x9c60ad8500000000ull, 0x18a6e32246c9ull}
685     }
686    ,    //33
687    {{0x1bc6c73200000000ull, 0xf684df56c3e0ull}
688     }
689    ,    //34
690    {{0x15c3c7f400000000ull, 0x9a130b963a6c1ull}
691     }
692    ,    //35
693    }
694 };
695
696
697 UINT128 reciprocals10_128[] = {
698   {{0ull, 0ull}
699    }
700   ,     // 0 extra digits
701   {{0x3333333333333334ull, 0x3333333333333333ull}
702    }
703   ,     // 1 extra digit
704   {{0x51eb851eb851eb86ull, 0x051eb851eb851eb8ull}
705    }
706   ,     // 2 extra digits
707   {{0x3b645a1cac083127ull, 0x0083126e978d4fdfull}
708    }
709   ,     // 3 extra digits
710   {{0x4af4f0d844d013aaULL, 0x00346dc5d6388659ULL}
711    }
712   ,     //  10^(-4) * 2^131
713   {{0x08c3f3e0370cdc88ULL, 0x0029f16b11c6d1e1ULL}
714    }
715   ,     //  10^(-5) * 2^134
716   {{0x6d698fe69270b06dULL, 0x00218def416bdb1aULL}
717    }
718   ,     //  10^(-6) * 2^137
719   {{0xaf0f4ca41d811a47ULL, 0x0035afe535795e90ULL}
720    }
721   ,     //  10^(-7) * 2^141
722   {{0xbf3f70834acdaea0ULL, 0x002af31dc4611873ULL}
723    }
724   ,     //  10^(-8) * 2^144
725   {{0x65cc5a02a23e254dULL, 0x00225c17d04dad29ULL}
726    }
727   ,     //  10^(-9) * 2^147
728   {{0x6fad5cd10396a214ULL, 0x0036f9bfb3af7b75ULL}
729    }
730   ,     // 10^(-10) * 2^151
731   {{0xbfbde3da69454e76ULL, 0x002bfaffc2f2c92aULL}
732    }
733   ,     // 10^(-11) * 2^154
734   {{0x32fe4fe1edd10b92ULL, 0x00232f33025bd422ULL}
735    }
736   ,     // 10^(-12) * 2^157
737   {{0x84ca19697c81ac1cULL, 0x00384b84d092ed03ULL}
738    }
739   ,     // 10^(-13) * 2^161
740   {{0x03d4e1213067bce4ULL, 0x002d09370d425736ULL}
741    }
742   ,     // 10^(-14) * 2^164
743   {{0x3643e74dc052fd83ULL, 0x0024075f3dceac2bULL}
744    }
745   ,     // 10^(-15) * 2^167
746   {{0x56d30baf9a1e626bULL, 0x0039a5652fb11378ULL}
747    }
748   ,     // 10^(-16) * 2^171
749   {{0x12426fbfae7eb522ULL, 0x002e1dea8c8da92dULL}
750    }
751   ,     // 10^(-17) * 2^174
752   {{0x41cebfcc8b9890e8ULL, 0x0024e4bba3a48757ULL}
753    }
754   ,     // 10^(-18) * 2^177
755   {{0x694acc7a78f41b0dULL, 0x003b07929f6da558ULL}
756    }
757   ,     // 10^(-19) * 2^181
758   {{0xbaa23d2ec729af3eULL, 0x002f394219248446ULL}
759    }
760   ,     // 10^(-20) * 2^184
761   {{0xfbb4fdbf05baf298ULL, 0x0025c768141d369eULL}
762    }
763   ,     // 10^(-21) * 2^187
764   {{0x2c54c931a2c4b759ULL, 0x003c7240202ebdcbULL}
765    }
766   ,     // 10^(-22) * 2^191
767   {{0x89dd6dc14f03c5e1ULL, 0x00305b66802564a2ULL}
768    }
769   ,     // 10^(-23) * 2^194
770   {{0xd4b1249aa59c9e4eULL, 0x0026af8533511d4eULL}
771    }
772   ,     // 10^(-24) * 2^197
773   {{0x544ea0f76f60fd49ULL, 0x003de5a1ebb4fbb1ULL}
774    }
775   ,     // 10^(-25) * 2^201
776   {{0x76a54d92bf80caa1ULL, 0x00318481895d9627ULL}
777    }
778   ,     // 10^(-26) * 2^204
779   {{0x921dd7a89933d54eULL, 0x00279d346de4781fULL}
780    }
781   ,     // 10^(-27) * 2^207
782   {{0x8362f2a75b862215ULL, 0x003f61ed7ca0c032ULL}
783    }
784   ,     // 10^(-28) * 2^211
785   {{0xcf825bb91604e811ULL, 0x0032b4bdfd4d668eULL}
786    }
787   ,     // 10^(-29) * 2^214
788   {{0x0c684960de6a5341ULL, 0x00289097fdd7853fULL}
789    }
790   ,     // 10^(-30) * 2^217
791   {{0x3d203ab3e521dc34ULL, 0x002073accb12d0ffULL}
792    }
793   ,     // 10^(-31) * 2^220
794   {{0x2e99f7863b696053ULL, 0x0033ec47ab514e65ULL}
795    }
796   ,     // 10^(-32) * 2^224
797   {{0x587b2c6b62bab376ULL, 0x002989d2ef743eb7ULL}
798    }
799   ,     // 10^(-33) * 2^227
800   {{0xad2f56bc4efbc2c5ULL, 0x00213b0f25f69892ULL}
801    }
802   ,     // 10^(-34) * 2^230
803   {{0x0f2abc9d8c9689d1ull, 0x01a95a5b7f87a0efull}
804    }
805   ,     // 35 extra digits
806 };
807
808
809 int recip_scale[] = {
810   129 - 128,    // 1
811   129 - 128,    // 1/10
812   129 - 128,    // 1/10^2
813   129 - 128,    // 1/10^3
814   3,    // 131 - 128
815   6,    // 134 - 128
816   9,    // 137 - 128
817   13,   // 141 - 128
818   16,   // 144 - 128
819   19,   // 147 - 128
820   23,   // 151 - 128
821   26,   // 154 - 128
822   29,   // 157 - 128
823   33,   // 161 - 128
824   36,   // 164 - 128
825   39,   // 167 - 128
826   43,   // 171 - 128
827   46,   // 174 - 128
828   49,   // 177 - 128
829   53,   // 181 - 128
830   56,   // 184 - 128
831   59,   // 187 - 128
832   63,   // 191 - 128
833
834   66,   // 194 - 128
835   69,   // 197 - 128
836   73,   // 201 - 128
837   76,   // 204 - 128
838   79,   // 207 - 128
839   83,   // 211 - 128
840   86,   // 214 - 128
841   89,   // 217 - 128
842   92,   // 220 - 128
843   96,   // 224 - 128
844   99,   // 227 - 128
845   102,  // 230 - 128
846   109,  // 237 - 128, 1/10^35
847 };
848
849
850 // tables used in computation
851 int estimate_decimal_digits[129] = {
852   1,    //2^0 =1     < 10^0
853   1,    //2^1 =2     < 10^1
854   1,    //2^2 =4     < 10^1
855   1,    //2^3 =8     < 10^1
856   2,    //2^4 =16    < 10^2
857   2,    //2^5 =32    < 10^2
858   2,    //2^6 =64    < 10^2
859   3,    //2^7 =128   < 10^3
860   3,    //2^8 =256   < 10^3
861   3,    //2^9 =512   < 10^3
862   4,    //2^10=1024  < 10^4
863   4,    //2^11=2048  < 10^4
864   4,    //2^12=4096  < 10^4
865   4,    //2^13=8192  < 10^4
866   5,    //2^14=16384 < 10^5
867   5,    //2^15=32768 < 10^5
868
869   5,    //2^16=65536     < 10^5
870   6,    //2^17=131072    < 10^6
871   6,    //2^18=262144    < 10^6
872   6,    //2^19=524288    < 10^6
873   7,    //2^20=1048576   < 10^7
874   7,    //2^21=2097152   < 10^7
875   7,    //2^22=4194304   < 10^7
876   7,    //2^23=8388608   < 10^7
877   8,    //2^24=16777216  < 10^8
878   8,    //2^25=33554432  < 10^8
879   8,    //2^26=67108864  < 10^8
880   9,    //2^27=134217728 < 10^9
881   9,    //2^28=268435456 < 10^9
882   9,    //2^29=536870912 < 10^9
883   10,   //2^30=1073741824< 10^10
884   10,   //2^31=2147483648< 10^10
885
886   10,   //2^32=4294967296     < 10^10
887   10,   //2^33=8589934592     < 10^10
888   11,   //2^34=17179869184    < 10^11
889   11,   //2^35=34359738368    < 10^11
890   11,   //2^36=68719476736    < 10^11
891   12,   //2^37=137438953472   < 10^12
892   12,   //2^38=274877906944   < 10^12
893   12,   //2^39=549755813888   < 10^12
894   13,   //2^40=1099511627776  < 10^13
895   13,   //2^41=2199023255552  < 10^13
896   13,   //2^42=4398046511104  < 10^13
897   13,   //2^43=8796093022208  < 10^13
898   14,   //2^44=17592186044416 < 10^14
899   14,   //2^45=35184372088832 < 10^14
900   14,   //2^46=70368744177664 < 10^14
901   15,   //2^47=140737488355328< 10^15
902
903   15,   //2^48=281474976710656    < 10^15
904   15,   //2^49=562949953421312    < 10^15
905   16,   //2^50=1125899906842624   < 10^16
906   16,   //2^51=2251799813685248   < 10^16
907   16,   //2^52=4503599627370496   < 10^16
908   16,   //2^53=9007199254740992   < 10^16
909   17,   //2^54=18014398509481984  < 10^17
910   17,   //2^55=36028797018963968  < 10^17
911   17,   //2^56=72057594037927936  < 10^17
912   18,   //2^57=144115188075855872 < 10^18
913   18,   //2^58=288230376151711744 < 10^18
914   18,   //2^59=576460752303423488 < 10^18
915   19,   //2^60=1152921504606846976< 10^19
916   19,   //2^61=2305843009213693952< 10^19
917   19,   //2^62=4611686018427387904< 10^19
918   19,   //2^63=9223372036854775808< 10^19
919
920   20,   //2^64=18446744073709551616
921   20,   //2^65=36893488147419103232
922   20,   //2^66=73786976294838206464
923   21,   //2^67=147573952589676412928
924   21,   //2^68=295147905179352825856
925   21,   //2^69=590295810358705651712
926   22,   //2^70=1180591620717411303424
927   22,   //2^71=2361183241434822606848
928   22,   //2^72=4722366482869645213696
929   22,   //2^73=9444732965739290427392
930   23,   //2^74=18889465931478580854784
931   23,   //2^75=37778931862957161709568
932   23,   //2^76=75557863725914323419136
933   24,   //2^77=151115727451828646838272
934   24,   //2^78=302231454903657293676544
935   24,   //2^79=604462909807314587353088
936
937   25,   //2^80=1208925819614629174706176
938   25,   //2^81=2417851639229258349412352
939   25,   //2^82=4835703278458516698824704
940   25,   //2^83=9671406556917033397649408
941   26,   //2^84=19342813113834066795298816
942   26,   //2^85=38685626227668133590597632
943   26,   //2^86=77371252455336267181195264
944   27,   //2^87=154742504910672534362390528
945   27,   //2^88=309485009821345068724781056
946   27,   //2^89=618970019642690137449562112
947   28,   //2^90=1237940039285380274899124224
948   28,   //2^91=2475880078570760549798248448
949   28,   //2^92=4951760157141521099596496896
950   28,   //2^93=9903520314283042199192993792
951   29,   //2^94=19807040628566084398385987584
952   29,   //2^95=39614081257132168796771975168
953   29,   //2^96=79228162514264337593543950336
954
955   30,   //2^97=158456325028528675187087900672
956   30,   //2^98=316912650057057350374175801344
957   30,   //2^99=633825300114114700748351602688
958   31,   //2^100=1267650600228229401496703205376
959   31,   //2^101=2535301200456458802993406410752
960   31,   //2^102=5070602400912917605986812821504
961   32,   //2^103=10141204801825835211973625643008
962   32,   //2^104=20282409603651670423947251286016
963   32,   //2^105=40564819207303340847894502572032
964   32,   //2^106=81129638414606681695789005144064
965   33,   //2^107=162259276829213363391578010288128
966   33,   // 2^108
967   33,   // 2^109
968   34,   // 2^110
969   34,   // 2^111
970   34,   // 2^112
971   35,   // 2^113
972   35,   // 2^114
973   35,   // 2^115
974   35,   // 2^116
975   36,   // 2^117
976   36,   // 2^118
977   36,   // 2^119
978   37,   // 2^120
979   37,   // 2^121
980   37,   // 2^122
981   38,   // 2^123
982   38,   // 2^124
983   38,   // 2^125
984   38,   // 2^126
985   39,   // 2^127
986   39    // 2^128
987 };
988
989
990 UINT128 power10_table_128[] = {
991   {{0x0000000000000001ull, 0x0000000000000000ull}},     // 10^0
992   {{0x000000000000000aull, 0x0000000000000000ull}},     // 10^1
993   {{0x0000000000000064ull, 0x0000000000000000ull}},     // 10^2
994   {{0x00000000000003e8ull, 0x0000000000000000ull}},     // 10^3
995   {{0x0000000000002710ull, 0x0000000000000000ull}},     // 10^4
996   {{0x00000000000186a0ull, 0x0000000000000000ull}},     // 10^5
997   {{0x00000000000f4240ull, 0x0000000000000000ull}},     // 10^6
998   {{0x0000000000989680ull, 0x0000000000000000ull}},     // 10^7
999   {{0x0000000005f5e100ull, 0x0000000000000000ull}},     // 10^8
1000   {{0x000000003b9aca00ull, 0x0000000000000000ull}},     // 10^9
1001   {{0x00000002540be400ull, 0x0000000000000000ull}},     // 10^10
1002   {{0x000000174876e800ull, 0x0000000000000000ull}},     // 10^11
1003   {{0x000000e8d4a51000ull, 0x0000000000000000ull}},     // 10^12
1004   {{0x000009184e72a000ull, 0x0000000000000000ull}},     // 10^13
1005   {{0x00005af3107a4000ull, 0x0000000000000000ull}},     // 10^14
1006   {{0x00038d7ea4c68000ull, 0x0000000000000000ull}},     // 10^15
1007   {{0x002386f26fc10000ull, 0x0000000000000000ull}},     // 10^16
1008   {{0x016345785d8a0000ull, 0x0000000000000000ull}},     // 10^17
1009   {{0x0de0b6b3a7640000ull, 0x0000000000000000ull}},     // 10^18
1010   {{0x8ac7230489e80000ull, 0x0000000000000000ull}},     // 10^19
1011   {{0x6bc75e2d63100000ull, 0x0000000000000005ull}},     // 10^20
1012   {{0x35c9adc5dea00000ull, 0x0000000000000036ull}},     // 10^21
1013   {{0x19e0c9bab2400000ull, 0x000000000000021eull}},     // 10^22
1014   {{0x02c7e14af6800000ull, 0x000000000000152dull}},     // 10^23
1015   {{0x1bcecceda1000000ull, 0x000000000000d3c2ull}},     // 10^24
1016   {{0x161401484a000000ull, 0x0000000000084595ull}},     // 10^25
1017   {{0xdcc80cd2e4000000ull, 0x000000000052b7d2ull}},     // 10^26
1018   {{0x9fd0803ce8000000ull, 0x00000000033b2e3cull}},     // 10^27
1019   {{0x3e25026110000000ull, 0x00000000204fce5eull}},     // 10^28
1020   {{0x6d7217caa0000000ull, 0x00000001431e0faeull}},     // 10^29
1021   {{0x4674edea40000000ull, 0x0000000c9f2c9cd0ull}},     // 10^30
1022   {{0xc0914b2680000000ull, 0x0000007e37be2022ull}},     // 10^31
1023   {{0x85acef8100000000ull, 0x000004ee2d6d415bull}},     // 10^32
1024   {{0x38c15b0a00000000ull, 0x0000314dc6448d93ull}},     // 10^33
1025   {{0x378d8e6400000000ull, 0x0001ed09bead87c0ull}},     // 10^34
1026   {{0x2b878fe800000000ull, 0x0013426172c74d82ull}},     // 10^35
1027   {{0xb34b9f1000000000ull, 0x00c097ce7bc90715ull}},     // 10^36
1028   {{0x00f436a000000000ull, 0x0785ee10d5da46d9ull}},     // 10^37
1029   {{0x098a224000000000ull, 0x4b3b4ca85a86c47aull}},     // 10^38
1030 };
1031
1032
1033 int estimate_bin_expon[] = {
1034   0,    // 10^0
1035   3,    // 10^1
1036   6,    // 10^2
1037   9,    // 10^3
1038   13,   // 10^4
1039   16,   // 10^5
1040   19,   // 10^6
1041   23,   // 10^7
1042   26,   // 10^8
1043   29,   // 10^9
1044   33,   // 10^10
1045   36,   // 10^11
1046   39,   // 10^12
1047   43,   // 10^13
1048   46,   // 10^14
1049   49,   // 10^15
1050   53    // 10^16
1051 };
1052
1053
1054 UINT64 power10_index_binexp[] = {
1055   0x000000000000000aull,
1056   0x000000000000000aull,
1057   0x000000000000000aull,
1058   0x000000000000000aull,
1059   0x0000000000000064ull,
1060   0x0000000000000064ull,
1061   0x0000000000000064ull,
1062   0x00000000000003e8ull,
1063   0x00000000000003e8ull,
1064   0x00000000000003e8ull,
1065   0x0000000000002710ull,
1066   0x0000000000002710ull,
1067   0x0000000000002710ull,
1068   0x0000000000002710ull,
1069   0x00000000000186a0ull,
1070   0x00000000000186a0ull,
1071   0x00000000000186a0ull,
1072   0x00000000000f4240ull,
1073   0x00000000000f4240ull,
1074   0x00000000000f4240ull,
1075   0x0000000000989680ull,
1076   0x0000000000989680ull,
1077   0x0000000000989680ull,
1078   0x0000000000989680ull,
1079   0x0000000005f5e100ull,
1080   0x0000000005f5e100ull,
1081   0x0000000005f5e100ull,
1082   0x000000003b9aca00ull,
1083   0x000000003b9aca00ull,
1084   0x000000003b9aca00ull,
1085   0x00000002540be400ull,
1086   0x00000002540be400ull,
1087   0x00000002540be400ull,
1088   0x00000002540be400ull,
1089   0x000000174876e800ull,
1090   0x000000174876e800ull,
1091   0x000000174876e800ull,
1092   0x000000e8d4a51000ull,
1093   0x000000e8d4a51000ull,
1094   0x000000e8d4a51000ull,
1095   0x000009184e72a000ull,
1096   0x000009184e72a000ull,
1097   0x000009184e72a000ull,
1098   0x000009184e72a000ull,
1099   0x00005af3107a4000ull,
1100   0x00005af3107a4000ull,
1101   0x00005af3107a4000ull,
1102   0x00038d7ea4c68000ull,
1103   0x00038d7ea4c68000ull,
1104   0x00038d7ea4c68000ull,
1105   0x002386f26fc10000ull,
1106   0x002386f26fc10000ull,
1107   0x002386f26fc10000ull,
1108   0x002386f26fc10000ull,
1109   0x016345785d8a0000ull,
1110   0x016345785d8a0000ull,
1111   0x016345785d8a0000ull,
1112   0x0de0b6b3a7640000ull,
1113   0x0de0b6b3a7640000ull,
1114   0x0de0b6b3a7640000ull,
1115   0x8ac7230489e80000ull,
1116   0x8ac7230489e80000ull,
1117   0x8ac7230489e80000ull,
1118   0x8ac7230489e80000ull
1119 };
1120
1121
1122 int short_recip_scale[] = {
1123   1,
1124   65 - 64,
1125   69 - 64,
1126   71 - 64,
1127   75 - 64,
1128   78 - 64,
1129   81 - 64,
1130   85 - 64,
1131   88 - 64,
1132   91 - 64,
1133   95 - 64,
1134   98 - 64,
1135   101 - 64,
1136   105 - 64,
1137   108 - 64,
1138   111 - 64,
1139   115 - 64,     //114 - 64
1140   118 - 64
1141 };
1142
1143
1144 UINT64 reciprocals10_64[] = {
1145   1ull, // dummy value for 0 extra digits
1146   0x3333333333333334ull,        // 1 extra digit
1147   0x51eb851eb851eb86ull,
1148   0x20c49ba5e353f7cfull,
1149   0x346dc5d63886594bull,
1150   0x29f16b11c6d1e109ull,
1151   0x218def416bdb1a6eull,
1152   0x35afe535795e90b0ull,
1153   0x2af31dc4611873c0ull,
1154   0x225c17d04dad2966ull,
1155   0x36f9bfb3af7b7570ull,
1156   0x2bfaffc2f2c92ac0ull,
1157   0x232f33025bd42233ull,
1158   0x384b84d092ed0385ull,
1159   0x2d09370d42573604ull,
1160   0x24075f3dceac2b37ull,
1161   0x39a5652fb1137857ull,
1162   0x2e1dea8c8da92d13ull
1163 };
1164
1165
1166
1167 UINT128 power10_index_binexp_128[] = {
1168   {{0x000000000000000aull, 0x0000000000000000ull}},
1169   {{0x000000000000000aull, 0x0000000000000000ull}},
1170   {{0x000000000000000aull, 0x0000000000000000ull}},
1171   {{0x000000000000000aull, 0x0000000000000000ull}},
1172   {{0x0000000000000064ull, 0x0000000000000000ull}},
1173   {{0x0000000000000064ull, 0x0000000000000000ull}},
1174   {{0x0000000000000064ull, 0x0000000000000000ull}},
1175   {{0x00000000000003e8ull, 0x0000000000000000ull}},
1176   {{0x00000000000003e8ull, 0x0000000000000000ull}},
1177   {{0x00000000000003e8ull, 0x0000000000000000ull}},
1178   {{0x0000000000002710ull, 0x0000000000000000ull}},
1179   {{0x0000000000002710ull, 0x0000000000000000ull}},
1180   {{0x0000000000002710ull, 0x0000000000000000ull}},
1181   {{0x0000000000002710ull, 0x0000000000000000ull}},
1182   {{0x00000000000186a0ull, 0x0000000000000000ull}},
1183   {{0x00000000000186a0ull, 0x0000000000000000ull}},
1184   {{0x00000000000186a0ull, 0x0000000000000000ull}},
1185   {{0x00000000000f4240ull, 0x0000000000000000ull}},
1186   {{0x00000000000f4240ull, 0x0000000000000000ull}},
1187   {{0x00000000000f4240ull, 0x0000000000000000ull}},
1188   {{0x0000000000989680ull, 0x0000000000000000ull}},
1189   {{0x0000000000989680ull, 0x0000000000000000ull}},
1190   {{0x0000000000989680ull, 0x0000000000000000ull}},
1191   {{0x0000000000989680ull, 0x0000000000000000ull}},
1192   {{0x0000000005f5e100ull, 0x0000000000000000ull}},
1193   {{0x0000000005f5e100ull, 0x0000000000000000ull}},
1194   {{0x0000000005f5e100ull, 0x0000000000000000ull}},
1195   {{0x000000003b9aca00ull, 0x0000000000000000ull}},
1196   {{0x000000003b9aca00ull, 0x0000000000000000ull}},
1197   {{0x000000003b9aca00ull, 0x0000000000000000ull}},
1198   {{0x00000002540be400ull, 0x0000000000000000ull}},
1199   {{0x00000002540be400ull, 0x0000000000000000ull}},
1200   {{0x00000002540be400ull, 0x0000000000000000ull}},
1201   {{0x00000002540be400ull, 0x0000000000000000ull}},
1202   {{0x000000174876e800ull, 0x0000000000000000ull}},
1203   {{0x000000174876e800ull, 0x0000000000000000ull}},
1204   {{0x000000174876e800ull, 0x0000000000000000ull}},
1205   {{0x000000e8d4a51000ull, 0x0000000000000000ull}},
1206   {{0x000000e8d4a51000ull, 0x0000000000000000ull}},
1207   {{0x000000e8d4a51000ull, 0x0000000000000000ull}},
1208   {{0x000009184e72a000ull, 0x0000000000000000ull}},
1209   {{0x000009184e72a000ull, 0x0000000000000000ull}},
1210   {{0x000009184e72a000ull, 0x0000000000000000ull}},
1211   {{0x000009184e72a000ull, 0x0000000000000000ull}},
1212   {{0x00005af3107a4000ull, 0x0000000000000000ull}},
1213   {{0x00005af3107a4000ull, 0x0000000000000000ull}},
1214   {{0x00005af3107a4000ull, 0x0000000000000000ull}},
1215   {{0x00038d7ea4c68000ull, 0x0000000000000000ull}},
1216   {{0x00038d7ea4c68000ull, 0x0000000000000000ull}},
1217   {{0x00038d7ea4c68000ull, 0x0000000000000000ull}},
1218   {{0x002386f26fc10000ull, 0x0000000000000000ull}},
1219   {{0x002386f26fc10000ull, 0x0000000000000000ull}},
1220   {{0x002386f26fc10000ull, 0x0000000000000000ull}},
1221   {{0x002386f26fc10000ull, 0x0000000000000000ull}},
1222   {{0x016345785d8a0000ull, 0x0000000000000000ull}},
1223   {{0x016345785d8a0000ull, 0x0000000000000000ull}},
1224   {{0x016345785d8a0000ull, 0x0000000000000000ull}},
1225   {{0x0de0b6b3a7640000ull, 0x0000000000000000ull}},
1226   {{0x0de0b6b3a7640000ull, 0x0000000000000000ull}},
1227   {{0x0de0b6b3a7640000ull, 0x0000000000000000ull}},
1228   {{0x8ac7230489e80000ull, 0x0000000000000000ull}},
1229   {{0x8ac7230489e80000ull, 0x0000000000000000ull}},
1230   {{0x8ac7230489e80000ull, 0x0000000000000000ull}},
1231   {{0x8ac7230489e80000ull, 0x0000000000000000ull}},
1232   {{0x6bc75e2d63100000ull, 0x0000000000000005ull}},     // 10^20
1233   {{0x6bc75e2d63100000ull, 0x0000000000000005ull}},     // 10^20
1234   {{0x6bc75e2d63100000ull, 0x0000000000000005ull}},     // 10^20
1235   {{0x35c9adc5dea00000ull, 0x0000000000000036ull}},     // 10^21
1236   {{0x35c9adc5dea00000ull, 0x0000000000000036ull}},     // 10^21
1237   {{0x35c9adc5dea00000ull, 0x0000000000000036ull}},     // 10^21
1238   {{0x19e0c9bab2400000ull, 0x000000000000021eull}},     // 10^22
1239   {{0x19e0c9bab2400000ull, 0x000000000000021eull}},     // 10^22
1240   {{0x19e0c9bab2400000ull, 0x000000000000021eull}},     // 10^22
1241   {{0x19e0c9bab2400000ull, 0x000000000000021eull}},     // 10^22
1242   {{0x02c7e14af6800000ull, 0x000000000000152dull}},     // 10^23
1243   {{0x02c7e14af6800000ull, 0x000000000000152dull}},     // 10^23
1244   {{0x02c7e14af6800000ull, 0x000000000000152dull}},     // 10^23
1245   {{0x1bcecceda1000000ull, 0x000000000000d3c2ull}},     // 10^24
1246   {{0x1bcecceda1000000ull, 0x000000000000d3c2ull}},     // 10^24
1247   {{0x1bcecceda1000000ull, 0x000000000000d3c2ull}},     // 10^24
1248   {{0x161401484a000000ull, 0x0000000000084595ull}},     // 10^25
1249   {{0x161401484a000000ull, 0x0000000000084595ull}},     // 10^25
1250   {{0x161401484a000000ull, 0x0000000000084595ull}},     // 10^25
1251   {{0x161401484a000000ull, 0x0000000000084595ull}},     // 10^25
1252   {{0xdcc80cd2e4000000ull, 0x000000000052b7d2ull}},     // 10^26
1253   {{0xdcc80cd2e4000000ull, 0x000000000052b7d2ull}},     // 10^26
1254   {{0xdcc80cd2e4000000ull, 0x000000000052b7d2ull}},     // 10^26
1255   {{0x9fd0803ce8000000ull, 0x00000000033b2e3cull}},     // 10^27
1256   {{0x9fd0803ce8000000ull, 0x00000000033b2e3cull}},     // 10^27
1257   {{0x9fd0803ce8000000ull, 0x00000000033b2e3cull}},     // 10^27
1258   {{0x3e25026110000000ull, 0x00000000204fce5eull}},     // 10^28
1259   {{0x3e25026110000000ull, 0x00000000204fce5eull}},     // 10^28
1260   {{0x3e25026110000000ull, 0x00000000204fce5eull}},     // 10^28
1261   {{0x3e25026110000000ull, 0x00000000204fce5eull}},     // 10^28
1262   {{0x6d7217caa0000000ull, 0x00000001431e0faeull}},     // 10^29
1263   {{0x6d7217caa0000000ull, 0x00000001431e0faeull}},     // 10^29
1264   {{0x6d7217caa0000000ull, 0x00000001431e0faeull}},     // 10^29
1265   {{0x4674edea40000000ull, 0x0000000c9f2c9cd0ull}},     // 10^30
1266   {{0x4674edea40000000ull, 0x0000000c9f2c9cd0ull}},     // 10^30
1267   {{0x4674edea40000000ull, 0x0000000c9f2c9cd0ull}},     // 10^30
1268   {{0xc0914b2680000000ull, 0x0000007e37be2022ull}},     // 10^31
1269   {{0xc0914b2680000000ull, 0x0000007e37be2022ull}},     // 10^31
1270   {{0xc0914b2680000000ull, 0x0000007e37be2022ull}},     // 10^31
1271   {{0x85acef8100000000ull, 0x000004ee2d6d415bull}},     // 10^32
1272   {{0x85acef8100000000ull, 0x000004ee2d6d415bull}},     // 10^32
1273   {{0x85acef8100000000ull, 0x000004ee2d6d415bull}},     // 10^32
1274   {{0x85acef8100000000ull, 0x000004ee2d6d415bull}},     // 10^32
1275   {{0x38c15b0a00000000ull, 0x0000314dc6448d93ull}},     // 10^33
1276   {{0x38c15b0a00000000ull, 0x0000314dc6448d93ull}},     // 10^33
1277   {{0x38c15b0a00000000ull, 0x0000314dc6448d93ull}},     // 10^33, entry 112
1278   {{0x378d8e6400000000ull, 0x0001ed09bead87c0ull}},     // 10^34
1279   {{0x378d8e6400000000ull, 0x0001ed09bead87c0ull}},     // 10^34
1280   {{0x378d8e6400000000ull, 0x0001ed09bead87c0ull}},     // 10^34
1281   {{0x2b878fe800000000ull, 0x0013426172c74d82ull}},     // 10^35
1282   {{0x2b878fe800000000ull, 0x0013426172c74d82ull}},     // 10^35
1283   {{0x2b878fe800000000ull, 0x0013426172c74d82ull}},     // 10^35
1284   {{0x2b878fe800000000ull, 0x0013426172c74d82ull}},     // 10^35
1285   {{0xb34b9f1000000000ull, 0x00c097ce7bc90715ull}},     // 10^36
1286   {{0x00f436a000000000ull, 0x0785ee10d5da46d9ull}},     // 10^37
1287   {{0x00f436a000000000ull, 0x0785ee10d5da46d9ull}},     // 10^37
1288   {{0x00f436a000000000ull, 0x0785ee10d5da46d9ull}},     // 10^37
1289   {{0x098a224000000000ull, 0x4b3b4ca85a86c47aull}},     // 10^38
1290   {{0x098a224000000000ull, 0x4b3b4ca85a86c47aull}},     // 10^38
1291   {{0x098a224000000000ull, 0x4b3b4ca85a86c47aull}},     // 10^38
1292   {{0x098a224000000000ull, 0x4b3b4ca85a86c47aull}},     // 10^38
1293 };