OSDN Git Service

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