1/* Copyright (C) 2007-2015 Free Software Foundation, Inc. 2 3This file is part of GCC. 4 5GCC is free software; you can redistribute it and/or modify it under 6the terms of the GNU General Public License as published by the Free 7Software Foundation; either version 3, or (at your option) any later 8version. 9 10GCC is distributed in the hope that it will be useful, but WITHOUT ANY 11WARRANTY; without even the implied warranty of MERCHANTABILITY or 12FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13for more details. 14 15Under Section 7 of GPL version 3, you are granted additional 16permissions described in the GCC Runtime Library Exception, version 173.1, as published by the Free Software Foundation. 18 19You should have received a copy of the GNU General Public License and 20a copy of the GCC Runtime Library Exception along with this program; 21see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 22<http://www.gnu.org/licenses/>. */ 23 24#include "bid_internal.h" 25 26UINT64 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 139UINT128 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 697UINT128 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 809int 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 851int 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 990UINT128 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 1033int 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 1054UINT64 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 1122int 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 1144UINT64 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 1167UINT128 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}; 1294