1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Rational Type Performance</title> 5<link rel="stylesheet" href="../../multiprecision.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../index.html" title="Chapter 1. Boost.Multiprecision"> 8<link rel="up" href="../perf.html" title="Performance Comparison"> 9<link rel="prev" href="integer_performance.html" title="Integer Algorithm Performance"> 10<link rel="next" href="../map.html" title="Roadmap"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="integer_performance.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../map.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h3 class="title"> 27<a name="boost_multiprecision.perf.rational_performance"></a><a class="link" href="rational_performance.html" title="Rational Type Performance">Rational 28 Type Performance</a> 29</h3></div></div></div> 30<p> 31 Note that these tests are carefully designed to test performance of the underlying 32 algorithms and not memory allocation or variable copying. As usual, performance 33 results should be taken with a healthy dose of scepticism, and real-world 34 performance may vary widely depending upon the specifics of the program. 35 In each table relative times are given first, with the best performer given 36 a score of 1. Total actual times are given in brackets, measured in seconds 37 for 500000 operations. 38 </p> 39<div class="table"> 40<a name="boost_multiprecision.perf.rational_performance.operator"></a><p class="title"><b>Table 1.72. Operator *</b></p> 41<div class="table-contents"><table class="table" summary="Operator *"> 42<colgroup> 43<col> 44<col> 45<col> 46<col> 47<col> 48</colgroup> 49<thead><tr> 50<th> 51 <p> 52 Backend 53 </p> 54 </th> 55<th> 56 <p> 57 128 Bits 58 </p> 59 </th> 60<th> 61 <p> 62 256 Bits 63 </p> 64 </th> 65<th> 66 <p> 67 512 Bits 68 </p> 69 </th> 70<th> 71 <p> 72 1024 Bits 73 </p> 74 </th> 75</tr></thead> 76<tbody> 77<tr> 78<td> 79 <p> 80 cpp_rational 81 </p> 82 </td> 83<td> 84 <p> 85 2.59318 (1.11835s) 86 </p> 87 </td> 88<td> 89 <p> 90 3.74332 (6.61855s) 91 </p> 92 </td> 93<td> 94 <p> 95 4.71871 (18.5981s) 96 </p> 97 </td> 98<td> 99 <p> 100 5.48511 (47.0022s) 101 </p> 102 </td> 103</tr> 104<tr> 105<td> 106 <p> 107 mpq_rational 108 </p> 109 </td> 110<td> 111 <p> 112 <span class="bold"><strong>1</strong></span> (0.431264s) 113 </p> 114 </td> 115<td> 116 <p> 117 <span class="bold"><strong>1</strong></span> (1.7681s) 118 </p> 119 </td> 120<td> 121 <p> 122 <span class="bold"><strong>1</strong></span> (3.94136s) 123 </p> 124 </td> 125<td> 126 <p> 127 <span class="bold"><strong>1</strong></span> (8.56905s) 128 </p> 129 </td> 130</tr> 131</tbody> 132</table></div> 133</div> 134<br class="table-break"><div class="table"> 135<a name="boost_multiprecision.perf.rational_performance.operator_int"></a><p class="title"><b>Table 1.73. Operator *(int)</b></p> 136<div class="table-contents"><table class="table" summary="Operator *(int)"> 137<colgroup> 138<col> 139<col> 140<col> 141<col> 142<col> 143</colgroup> 144<thead><tr> 145<th> 146 <p> 147 Backend 148 </p> 149 </th> 150<th> 151 <p> 152 128 Bits 153 </p> 154 </th> 155<th> 156 <p> 157 256 Bits 158 </p> 159 </th> 160<th> 161 <p> 162 512 Bits 163 </p> 164 </th> 165<th> 166 <p> 167 1024 Bits 168 </p> 169 </th> 170</tr></thead> 171<tbody> 172<tr> 173<td> 174 <p> 175 cpp_rational 176 </p> 177 </td> 178<td> 179 <p> 180 5.63431 (0.612884s) 181 </p> 182 </td> 183<td> 184 <p> 185 25.5205 (2.83784s) 186 </p> 187 </td> 188<td> 189 <p> 190 64.6798 (7.61151s) 191 </p> 192 </td> 193<td> 194 <p> 195 135.335 (19.4821s) 196 </p> 197 </td> 198</tr> 199<tr> 200<td> 201 <p> 202 mpq_rational 203 </p> 204 </td> 205<td> 206 <p> 207 <span class="bold"><strong>1</strong></span> (0.108777s) 208 </p> 209 </td> 210<td> 211 <p> 212 <span class="bold"><strong>1</strong></span> (0.111198s) 213 </p> 214 </td> 215<td> 216 <p> 217 <span class="bold"><strong>1</strong></span> (0.11768s) 218 </p> 219 </td> 220<td> 221 <p> 222 <span class="bold"><strong>1</strong></span> (0.143955s) 223 </p> 224 </td> 225</tr> 226</tbody> 227</table></div> 228</div> 229<br class="table-break"><div class="table"> 230<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long"></a><p class="title"><b>Table 1.74. Operator *(unsigned long long)</b></p> 231<div class="table-contents"><table class="table" summary="Operator *(unsigned long long)"> 232<colgroup> 233<col> 234<col> 235<col> 236<col> 237<col> 238</colgroup> 239<thead><tr> 240<th> 241 <p> 242 Backend 243 </p> 244 </th> 245<th> 246 <p> 247 128 Bits 248 </p> 249 </th> 250<th> 251 <p> 252 256 Bits 253 </p> 254 </th> 255<th> 256 <p> 257 512 Bits 258 </p> 259 </th> 260<th> 261 <p> 262 1024 Bits 263 </p> 264 </th> 265</tr></thead> 266<tbody> 267<tr> 268<td> 269 <p> 270 cpp_rational 271 </p> 272 </td> 273<td> 274 <p> 275 4.44786 (0.691659s) 276 </p> 277 </td> 278<td> 279 <p> 280 18.4155 (2.97414s) 281 </p> 282 </td> 283<td> 284 <p> 285 44.4009 (7.64879s) 286 </p> 287 </td> 288<td> 289 <p> 290 98.4603 (19.5719s) 291 </p> 292 </td> 293</tr> 294<tr> 295<td> 296 <p> 297 mpq_rational 298 </p> 299 </td> 300<td> 301 <p> 302 <span class="bold"><strong>1</strong></span> (0.155504s) 303 </p> 304 </td> 305<td> 306 <p> 307 <span class="bold"><strong>1</strong></span> (0.161502s) 308 </p> 309 </td> 310<td> 311 <p> 312 <span class="bold"><strong>1</strong></span> (0.172267s) 313 </p> 314 </td> 315<td> 316 <p> 317 <span class="bold"><strong>1</strong></span> (0.19878s) 318 </p> 319 </td> 320</tr> 321</tbody> 322</table></div> 323</div> 324<br class="table-break"><div class="table"> 325<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long0"></a><p class="title"><b>Table 1.75. Operator *=(unsigned long long)</b></p> 326<div class="table-contents"><table class="table" summary="Operator *=(unsigned long long)"> 327<colgroup> 328<col> 329<col> 330<col> 331<col> 332<col> 333</colgroup> 334<thead><tr> 335<th> 336 <p> 337 Backend 338 </p> 339 </th> 340<th> 341 <p> 342 128 Bits 343 </p> 344 </th> 345<th> 346 <p> 347 256 Bits 348 </p> 349 </th> 350<th> 351 <p> 352 512 Bits 353 </p> 354 </th> 355<th> 356 <p> 357 1024 Bits 358 </p> 359 </th> 360</tr></thead> 361<tbody> 362<tr> 363<td> 364 <p> 365 cpp_rational 366 </p> 367 </td> 368<td> 369 <p> 370 4.12301 (0.690473s) 371 </p> 372 </td> 373<td> 374 <p> 375 20.2597 (3.35519s) 376 </p> 377 </td> 378<td> 379 <p> 380 42.8043 (7.47312s) 381 </p> 382 </td> 383<td> 384 <p> 385 94.2742 (19.3092s) 386 </p> 387 </td> 388</tr> 389<tr> 390<td> 391 <p> 392 mpq_rational 393 </p> 394 </td> 395<td> 396 <p> 397 <span class="bold"><strong>1</strong></span> (0.167468s) 398 </p> 399 </td> 400<td> 401 <p> 402 <span class="bold"><strong>1</strong></span> (0.165609s) 403 </p> 404 </td> 405<td> 406 <p> 407 <span class="bold"><strong>1</strong></span> (0.174588s) 408 </p> 409 </td> 410<td> 411 <p> 412 <span class="bold"><strong>1</strong></span> (0.20482s) 413 </p> 414 </td> 415</tr> 416</tbody> 417</table></div> 418</div> 419<br class="table-break"><div class="table"> 420<a name="boost_multiprecision.perf.rational_performance.operator0"></a><p class="title"><b>Table 1.76. Operator +</b></p> 421<div class="table-contents"><table class="table" summary="Operator +"> 422<colgroup> 423<col> 424<col> 425<col> 426<col> 427<col> 428</colgroup> 429<thead><tr> 430<th> 431 <p> 432 Backend 433 </p> 434 </th> 435<th> 436 <p> 437 128 Bits 438 </p> 439 </th> 440<th> 441 <p> 442 256 Bits 443 </p> 444 </th> 445<th> 446 <p> 447 512 Bits 448 </p> 449 </th> 450<th> 451 <p> 452 1024 Bits 453 </p> 454 </th> 455</tr></thead> 456<tbody> 457<tr> 458<td> 459 <p> 460 cpp_rational 461 </p> 462 </td> 463<td> 464 <p> 465 8.51825 (1.97719s) 466 </p> 467 </td> 468<td> 469 <p> 470 7.8609 (7.34254s) 471 </p> 472 </td> 473<td> 474 <p> 475 9.73008 (21.2507s) 476 </p> 477 </td> 478<td> 479 <p> 480 11.1497 (49.7843s) 481 </p> 482 </td> 483</tr> 484<tr> 485<td> 486 <p> 487 mpq_rational 488 </p> 489 </td> 490<td> 491 <p> 492 <span class="bold"><strong>1</strong></span> (0.232113s) 493 </p> 494 </td> 495<td> 496 <p> 497 <span class="bold"><strong>1</strong></span> (0.93406s) 498 </p> 499 </td> 500<td> 501 <p> 502 <span class="bold"><strong>1</strong></span> (2.18402s) 503 </p> 504 </td> 505<td> 506 <p> 507 <span class="bold"><strong>1</strong></span> (4.46507s) 508 </p> 509 </td> 510</tr> 511</tbody> 512</table></div> 513</div> 514<br class="table-break"><div class="table"> 515<a name="boost_multiprecision.perf.rational_performance.operator_int0"></a><p class="title"><b>Table 1.77. Operator +(int)</b></p> 516<div class="table-contents"><table class="table" summary="Operator +(int)"> 517<colgroup> 518<col> 519<col> 520<col> 521<col> 522<col> 523</colgroup> 524<thead><tr> 525<th> 526 <p> 527 Backend 528 </p> 529 </th> 530<th> 531 <p> 532 128 Bits 533 </p> 534 </th> 535<th> 536 <p> 537 256 Bits 538 </p> 539 </th> 540<th> 541 <p> 542 512 Bits 543 </p> 544 </th> 545<th> 546 <p> 547 1024 Bits 548 </p> 549 </th> 550</tr></thead> 551<tbody> 552<tr> 553<td> 554 <p> 555 cpp_rational 556 </p> 557 </td> 558<td> 559 <p> 560 7.17647 (0.669913s) 561 </p> 562 </td> 563<td> 564 <p> 565 29.8489 (2.91217s) 566 </p> 567 </td> 568<td> 569 <p> 570 75.7668 (7.40631s) 571 </p> 572 </td> 573<td> 574 <p> 575 254.371 (29.7057s) 576 </p> 577 </td> 578</tr> 579<tr> 580<td> 581 <p> 582 mpq_rational 583 </p> 584 </td> 585<td> 586 <p> 587 <span class="bold"><strong>1</strong></span> (0.0933486s) 588 </p> 589 </td> 590<td> 591 <p> 592 <span class="bold"><strong>1</strong></span> (0.0975637s) 593 </p> 594 </td> 595<td> 596 <p> 597 <span class="bold"><strong>1</strong></span> (0.0977514s) 598 </p> 599 </td> 600<td> 601 <p> 602 <span class="bold"><strong>1</strong></span> (0.116781s) 603 </p> 604 </td> 605</tr> 606</tbody> 607</table></div> 608</div> 609<br class="table-break"><div class="table"> 610<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long1"></a><p class="title"><b>Table 1.78. Operator +(unsigned long long)</b></p> 611<div class="table-contents"><table class="table" summary="Operator +(unsigned long long)"> 612<colgroup> 613<col> 614<col> 615<col> 616<col> 617<col> 618</colgroup> 619<thead><tr> 620<th> 621 <p> 622 Backend 623 </p> 624 </th> 625<th> 626 <p> 627 128 Bits 628 </p> 629 </th> 630<th> 631 <p> 632 256 Bits 633 </p> 634 </th> 635<th> 636 <p> 637 512 Bits 638 </p> 639 </th> 640<th> 641 <p> 642 1024 Bits 643 </p> 644 </th> 645</tr></thead> 646<tbody> 647<tr> 648<td> 649 <p> 650 cpp_rational 651 </p> 652 </td> 653<td> 654 <p> 655 12.4996 (1.16835s) 656 </p> 657 </td> 658<td> 659 <p> 660 33.6691 (3.37438s) 661 </p> 662 </td> 663<td> 664 <p> 665 82.0167 (8.08959s) 666 </p> 667 </td> 668<td> 669 <p> 670 171.692 (19.9733s) 671 </p> 672 </td> 673</tr> 674<tr> 675<td> 676 <p> 677 mpq_rational 678 </p> 679 </td> 680<td> 681 <p> 682 <span class="bold"><strong>1</strong></span> (0.0934708s) 683 </p> 684 </td> 685<td> 686 <p> 687 <span class="bold"><strong>1</strong></span> (0.100222s) 688 </p> 689 </td> 690<td> 691 <p> 692 <span class="bold"><strong>1</strong></span> (0.0986335s) 693 </p> 694 </td> 695<td> 696 <p> 697 <span class="bold"><strong>1</strong></span> (0.116332s) 698 </p> 699 </td> 700</tr> 701</tbody> 702</table></div> 703</div> 704<br class="table-break"><div class="table"> 705<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long2"></a><p class="title"><b>Table 1.79. Operator +=(unsigned long long)</b></p> 706<div class="table-contents"><table class="table" summary="Operator +=(unsigned long long)"> 707<colgroup> 708<col> 709<col> 710<col> 711<col> 712<col> 713</colgroup> 714<thead><tr> 715<th> 716 <p> 717 Backend 718 </p> 719 </th> 720<th> 721 <p> 722 128 Bits 723 </p> 724 </th> 725<th> 726 <p> 727 256 Bits 728 </p> 729 </th> 730<th> 731 <p> 732 512 Bits 733 </p> 734 </th> 735<th> 736 <p> 737 1024 Bits 738 </p> 739 </th> 740</tr></thead> 741<tbody> 742<tr> 743<td> 744 <p> 745 cpp_rational 746 </p> 747 </td> 748<td> 749 <p> 750 11.7663 (1.14891s) 751 </p> 752 </td> 753<td> 754 <p> 755 34.4202 (3.45541s) 756 </p> 757 </td> 758<td> 759 <p> 760 78.1856 (8.17612s) 761 </p> 762 </td> 763<td> 764 <p> 765 161.351 (20.0733s) 766 </p> 767 </td> 768</tr> 769<tr> 770<td> 771 <p> 772 mpq_rational 773 </p> 774 </td> 775<td> 776 <p> 777 <span class="bold"><strong>1</strong></span> (0.0976436s) 778 </p> 779 </td> 780<td> 781 <p> 782 <span class="bold"><strong>1</strong></span> (0.100389s) 783 </p> 784 </td> 785<td> 786 <p> 787 <span class="bold"><strong>1</strong></span> (0.104573s) 788 </p> 789 </td> 790<td> 791 <p> 792 <span class="bold"><strong>1</strong></span> (0.124408s) 793 </p> 794 </td> 795</tr> 796</tbody> 797</table></div> 798</div> 799<br class="table-break"><div class="table"> 800<a name="boost_multiprecision.perf.rational_performance.operator1"></a><p class="title"><b>Table 1.80. Operator -</b></p> 801<div class="table-contents"><table class="table" summary="Operator -"> 802<colgroup> 803<col> 804<col> 805<col> 806<col> 807<col> 808</colgroup> 809<thead><tr> 810<th> 811 <p> 812 Backend 813 </p> 814 </th> 815<th> 816 <p> 817 128 Bits 818 </p> 819 </th> 820<th> 821 <p> 822 256 Bits 823 </p> 824 </th> 825<th> 826 <p> 827 512 Bits 828 </p> 829 </th> 830<th> 831 <p> 832 1024 Bits 833 </p> 834 </th> 835</tr></thead> 836<tbody> 837<tr> 838<td> 839 <p> 840 cpp_rational 841 </p> 842 </td> 843<td> 844 <p> 845 8.56942 (2.0234s) 846 </p> 847 </td> 848<td> 849 <p> 850 7.88071 (7.38282s) 851 </p> 852 </td> 853<td> 854 <p> 855 9.54207 (19.913s) 856 </p> 857 </td> 858<td> 859 <p> 860 11.4343 (50.8786s) 861 </p> 862 </td> 863</tr> 864<tr> 865<td> 866 <p> 867 mpq_rational 868 </p> 869 </td> 870<td> 871 <p> 872 <span class="bold"><strong>1</strong></span> (0.236118s) 873 </p> 874 </td> 875<td> 876 <p> 877 <span class="bold"><strong>1</strong></span> (0.936822s) 878 </p> 879 </td> 880<td> 881 <p> 882 <span class="bold"><strong>1</strong></span> (2.08686s) 883 </p> 884 </td> 885<td> 886 <p> 887 <span class="bold"><strong>1</strong></span> (4.44964s) 888 </p> 889 </td> 890</tr> 891</tbody> 892</table></div> 893</div> 894<br class="table-break"><div class="table"> 895<a name="boost_multiprecision.perf.rational_performance.operator_int1"></a><p class="title"><b>Table 1.81. Operator -(int)</b></p> 896<div class="table-contents"><table class="table" summary="Operator -(int)"> 897<colgroup> 898<col> 899<col> 900<col> 901<col> 902<col> 903</colgroup> 904<thead><tr> 905<th> 906 <p> 907 Backend 908 </p> 909 </th> 910<th> 911 <p> 912 128 Bits 913 </p> 914 </th> 915<th> 916 <p> 917 256 Bits 918 </p> 919 </th> 920<th> 921 <p> 922 512 Bits 923 </p> 924 </th> 925<th> 926 <p> 927 1024 Bits 928 </p> 929 </th> 930</tr></thead> 931<tbody> 932<tr> 933<td> 934 <p> 935 cpp_rational 936 </p> 937 </td> 938<td> 939 <p> 940 6.62286 (0.62794s) 941 </p> 942 </td> 943<td> 944 <p> 945 30.6629 (2.96506s) 946 </p> 947 </td> 948<td> 949 <p> 950 75.926 (7.56072s) 951 </p> 952 </td> 953<td> 954 <p> 955 199.475 (23.42s) 956 </p> 957 </td> 958</tr> 959<tr> 960<td> 961 <p> 962 mpq_rational 963 </p> 964 </td> 965<td> 966 <p> 967 <span class="bold"><strong>1</strong></span> (0.094814s) 968 </p> 969 </td> 970<td> 971 <p> 972 <span class="bold"><strong>1</strong></span> (0.0966986s) 973 </p> 974 </td> 975<td> 976 <p> 977 <span class="bold"><strong>1</strong></span> (0.0995801s) 978 </p> 979 </td> 980<td> 981 <p> 982 <span class="bold"><strong>1</strong></span> (0.117408s) 983 </p> 984 </td> 985</tr> 986</tbody> 987</table></div> 988</div> 989<br class="table-break"><div class="table"> 990<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long3"></a><p class="title"><b>Table 1.82. Operator -(unsigned long long)</b></p> 991<div class="table-contents"><table class="table" summary="Operator -(unsigned long long)"> 992<colgroup> 993<col> 994<col> 995<col> 996<col> 997<col> 998</colgroup> 999<thead><tr> 1000<th> 1001 <p> 1002 Backend 1003 </p> 1004 </th> 1005<th> 1006 <p> 1007 128 Bits 1008 </p> 1009 </th> 1010<th> 1011 <p> 1012 256 Bits 1013 </p> 1014 </th> 1015<th> 1016 <p> 1017 512 Bits 1018 </p> 1019 </th> 1020<th> 1021 <p> 1022 1024 Bits 1023 </p> 1024 </th> 1025</tr></thead> 1026<tbody> 1027<tr> 1028<td> 1029 <p> 1030 cpp_rational 1031 </p> 1032 </td> 1033<td> 1034 <p> 1035 12.3835 (1.16081s) 1036 </p> 1037 </td> 1038<td> 1039 <p> 1040 36.0761 (3.40187s) 1041 </p> 1042 </td> 1043<td> 1044 <p> 1045 83.3673 (8.26011s) 1046 </p> 1047 </td> 1048<td> 1049 <p> 1050 169.239 (20.5682s) 1051 </p> 1052 </td> 1053</tr> 1054<tr> 1055<td> 1056 <p> 1057 mpq_rational 1058 </p> 1059 </td> 1060<td> 1061 <p> 1062 <span class="bold"><strong>1</strong></span> (0.0937381s) 1063 </p> 1064 </td> 1065<td> 1066 <p> 1067 <span class="bold"><strong>1</strong></span> (0.094297s) 1068 </p> 1069 </td> 1070<td> 1071 <p> 1072 <span class="bold"><strong>1</strong></span> (0.099081s) 1073 </p> 1074 </td> 1075<td> 1076 <p> 1077 <span class="bold"><strong>1</strong></span> (0.121534s) 1078 </p> 1079 </td> 1080</tr> 1081</tbody> 1082</table></div> 1083</div> 1084<br class="table-break"><div class="table"> 1085<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long4"></a><p class="title"><b>Table 1.83. Operator -=(unsigned long long)</b></p> 1086<div class="table-contents"><table class="table" summary="Operator -=(unsigned long long)"> 1087<colgroup> 1088<col> 1089<col> 1090<col> 1091<col> 1092<col> 1093</colgroup> 1094<thead><tr> 1095<th> 1096 <p> 1097 Backend 1098 </p> 1099 </th> 1100<th> 1101 <p> 1102 128 Bits 1103 </p> 1104 </th> 1105<th> 1106 <p> 1107 256 Bits 1108 </p> 1109 </th> 1110<th> 1111 <p> 1112 512 Bits 1113 </p> 1114 </th> 1115<th> 1116 <p> 1117 1024 Bits 1118 </p> 1119 </th> 1120</tr></thead> 1121<tbody> 1122<tr> 1123<td> 1124 <p> 1125 cpp_rational 1126 </p> 1127 </td> 1128<td> 1129 <p> 1130 11.6833 (1.16049s) 1131 </p> 1132 </td> 1133<td> 1134 <p> 1135 36.6427 (3.64132s) 1136 </p> 1137 </td> 1138<td> 1139 <p> 1140 77.0952 (8.10257s) 1141 </p> 1142 </td> 1143<td> 1144 <p> 1145 160.444 (20.0829s) 1146 </p> 1147 </td> 1148</tr> 1149<tr> 1150<td> 1151 <p> 1152 mpq_rational 1153 </p> 1154 </td> 1155<td> 1156 <p> 1157 <span class="bold"><strong>1</strong></span> (0.0993285s) 1158 </p> 1159 </td> 1160<td> 1161 <p> 1162 <span class="bold"><strong>1</strong></span> (0.0993737s) 1163 </p> 1164 </td> 1165<td> 1166 <p> 1167 <span class="bold"><strong>1</strong></span> (0.105098s) 1168 </p> 1169 </td> 1170<td> 1171 <p> 1172 <span class="bold"><strong>1</strong></span> (0.12517s) 1173 </p> 1174 </td> 1175</tr> 1176</tbody> 1177</table></div> 1178</div> 1179<br class="table-break"><div class="table"> 1180<a name="boost_multiprecision.perf.rational_performance.operator2"></a><p class="title"><b>Table 1.84. Operator /</b></p> 1181<div class="table-contents"><table class="table" summary="Operator /"> 1182<colgroup> 1183<col> 1184<col> 1185<col> 1186<col> 1187<col> 1188</colgroup> 1189<thead><tr> 1190<th> 1191 <p> 1192 Backend 1193 </p> 1194 </th> 1195<th> 1196 <p> 1197 128 Bits 1198 </p> 1199 </th> 1200<th> 1201 <p> 1202 256 Bits 1203 </p> 1204 </th> 1205<th> 1206 <p> 1207 512 Bits 1208 </p> 1209 </th> 1210<th> 1211 <p> 1212 1024 Bits 1213 </p> 1214 </th> 1215</tr></thead> 1216<tbody> 1217<tr> 1218<td> 1219 <p> 1220 cpp_rational 1221 </p> 1222 </td> 1223<td> 1224 <p> 1225 5.67626 (6.66075s) 1226 </p> 1227 </td> 1228<td> 1229 <p> 1230 5.99288 (21.0634s) 1231 </p> 1232 </td> 1233<td> 1234 <p> 1235 8.08809 (55.0195s) 1236 </p> 1237 </td> 1238<td> 1239 <p> 1240 10.5818 (149.774s) 1241 </p> 1242 </td> 1243</tr> 1244<tr> 1245<td> 1246 <p> 1247 mpq_rational 1248 </p> 1249 </td> 1250<td> 1251 <p> 1252 <span class="bold"><strong>1</strong></span> (1.17344s) 1253 </p> 1254 </td> 1255<td> 1256 <p> 1257 <span class="bold"><strong>1</strong></span> (3.51474s) 1258 </p> 1259 </td> 1260<td> 1261 <p> 1262 <span class="bold"><strong>1</strong></span> (6.80254s) 1263 </p> 1264 </td> 1265<td> 1266 <p> 1267 <span class="bold"><strong>1</strong></span> (14.1539s) 1268 </p> 1269 </td> 1270</tr> 1271</tbody> 1272</table></div> 1273</div> 1274<br class="table-break"><div class="table"> 1275<a name="boost_multiprecision.perf.rational_performance.operator_int2"></a><p class="title"><b>Table 1.85. Operator /(int)</b></p> 1276<div class="table-contents"><table class="table" summary="Operator /(int)"> 1277<colgroup> 1278<col> 1279<col> 1280<col> 1281<col> 1282<col> 1283</colgroup> 1284<thead><tr> 1285<th> 1286 <p> 1287 Backend 1288 </p> 1289 </th> 1290<th> 1291 <p> 1292 128 Bits 1293 </p> 1294 </th> 1295<th> 1296 <p> 1297 256 Bits 1298 </p> 1299 </th> 1300<th> 1301 <p> 1302 512 Bits 1303 </p> 1304 </th> 1305<th> 1306 <p> 1307 1024 Bits 1308 </p> 1309 </th> 1310</tr></thead> 1311<tbody> 1312<tr> 1313<td> 1314 <p> 1315 cpp_rational 1316 </p> 1317 </td> 1318<td> 1319 <p> 1320 5.9046 (0.64166s) 1321 </p> 1322 </td> 1323<td> 1324 <p> 1325 25.5252 (2.84312s) 1326 </p> 1327 </td> 1328<td> 1329 <p> 1330 65.4027 (7.74325s) 1331 </p> 1332 </td> 1333<td> 1334 <p> 1335 134.42 (19.5619s) 1336 </p> 1337 </td> 1338</tr> 1339<tr> 1340<td> 1341 <p> 1342 mpq_rational 1343 </p> 1344 </td> 1345<td> 1346 <p> 1347 <span class="bold"><strong>1</strong></span> (0.108671s) 1348 </p> 1349 </td> 1350<td> 1351 <p> 1352 <span class="bold"><strong>1</strong></span> (0.111385s) 1353 </p> 1354 </td> 1355<td> 1356 <p> 1357 <span class="bold"><strong>1</strong></span> (0.118393s) 1358 </p> 1359 </td> 1360<td> 1361 <p> 1362 <span class="bold"><strong>1</strong></span> (0.145528s) 1363 </p> 1364 </td> 1365</tr> 1366</tbody> 1367</table></div> 1368</div> 1369<br class="table-break"><div class="table"> 1370<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long5"></a><p class="title"><b>Table 1.86. Operator /(unsigned long long)</b></p> 1371<div class="table-contents"><table class="table" summary="Operator /(unsigned long long)"> 1372<colgroup> 1373<col> 1374<col> 1375<col> 1376<col> 1377<col> 1378</colgroup> 1379<thead><tr> 1380<th> 1381 <p> 1382 Backend 1383 </p> 1384 </th> 1385<th> 1386 <p> 1387 128 Bits 1388 </p> 1389 </th> 1390<th> 1391 <p> 1392 256 Bits 1393 </p> 1394 </th> 1395<th> 1396 <p> 1397 512 Bits 1398 </p> 1399 </th> 1400<th> 1401 <p> 1402 1024 Bits 1403 </p> 1404 </th> 1405</tr></thead> 1406<tbody> 1407<tr> 1408<td> 1409 <p> 1410 cpp_rational 1411 </p> 1412 </td> 1413<td> 1414 <p> 1415 4.35172 (0.691696s) 1416 </p> 1417 </td> 1418<td> 1419 <p> 1420 18.2795 (2.94678s) 1421 </p> 1422 </td> 1423<td> 1424 <p> 1425 44.2487 (7.48547s) 1426 </p> 1427 </td> 1428<td> 1429 <p> 1430 99.1392 (19.5526s) 1431 </p> 1432 </td> 1433</tr> 1434<tr> 1435<td> 1436 <p> 1437 mpq_rational 1438 </p> 1439 </td> 1440<td> 1441 <p> 1442 <span class="bold"><strong>1</strong></span> (0.158948s) 1443 </p> 1444 </td> 1445<td> 1446 <p> 1447 <span class="bold"><strong>1</strong></span> (0.161207s) 1448 </p> 1449 </td> 1450<td> 1451 <p> 1452 <span class="bold"><strong>1</strong></span> (0.169168s) 1453 </p> 1454 </td> 1455<td> 1456 <p> 1457 <span class="bold"><strong>1</strong></span> (0.197224s) 1458 </p> 1459 </td> 1460</tr> 1461</tbody> 1462</table></div> 1463</div> 1464<br class="table-break"><div class="table"> 1465<a name="boost_multiprecision.perf.rational_performance.operator_unsigned_long_long6"></a><p class="title"><b>Table 1.87. Operator /=(unsigned long long)</b></p> 1466<div class="table-contents"><table class="table" summary="Operator /=(unsigned long long)"> 1467<colgroup> 1468<col> 1469<col> 1470<col> 1471<col> 1472<col> 1473</colgroup> 1474<thead><tr> 1475<th> 1476 <p> 1477 Backend 1478 </p> 1479 </th> 1480<th> 1481 <p> 1482 128 Bits 1483 </p> 1484 </th> 1485<th> 1486 <p> 1487 256 Bits 1488 </p> 1489 </th> 1490<th> 1491 <p> 1492 512 Bits 1493 </p> 1494 </th> 1495<th> 1496 <p> 1497 1024 Bits 1498 </p> 1499 </th> 1500</tr></thead> 1501<tbody> 1502<tr> 1503<td> 1504 <p> 1505 cpp_rational 1506 </p> 1507 </td> 1508<td> 1509 <p> 1510 4.14511 (0.685733s) 1511 </p> 1512 </td> 1513<td> 1514 <p> 1515 18.3237 (3.08065s) 1516 </p> 1517 </td> 1518<td> 1519 <p> 1520 43.3784 (7.43555s) 1521 </p> 1522 </td> 1523<td> 1524 <p> 1525 94.2547 (19.2754s) 1526 </p> 1527 </td> 1528</tr> 1529<tr> 1530<td> 1531 <p> 1532 mpq_rational 1533 </p> 1534 </td> 1535<td> 1536 <p> 1537 <span class="bold"><strong>1</strong></span> (0.165432s) 1538 </p> 1539 </td> 1540<td> 1541 <p> 1542 <span class="bold"><strong>1</strong></span> (0.168124s) 1543 </p> 1544 </td> 1545<td> 1546 <p> 1547 <span class="bold"><strong>1</strong></span> (0.171411s) 1548 </p> 1549 </td> 1550<td> 1551 <p> 1552 <span class="bold"><strong>1</strong></span> (0.204503s) 1553 </p> 1554 </td> 1555</tr> 1556</tbody> 1557</table></div> 1558</div> 1559<br class="table-break"><div class="table"> 1560<a name="boost_multiprecision.perf.rational_performance.operator_construct"></a><p class="title"><b>Table 1.88. Operator construct</b></p> 1561<div class="table-contents"><table class="table" summary="Operator construct"> 1562<colgroup> 1563<col> 1564<col> 1565<col> 1566<col> 1567<col> 1568</colgroup> 1569<thead><tr> 1570<th> 1571 <p> 1572 Backend 1573 </p> 1574 </th> 1575<th> 1576 <p> 1577 128 Bits 1578 </p> 1579 </th> 1580<th> 1581 <p> 1582 256 Bits 1583 </p> 1584 </th> 1585<th> 1586 <p> 1587 512 Bits 1588 </p> 1589 </th> 1590<th> 1591 <p> 1592 1024 Bits 1593 </p> 1594 </th> 1595</tr></thead> 1596<tbody> 1597<tr> 1598<td> 1599 <p> 1600 cpp_rational 1601 </p> 1602 </td> 1603<td> 1604 <p> 1605 <span class="bold"><strong>1</strong></span> (0.00323537s) 1606 </p> 1607 </td> 1608<td> 1609 <p> 1610 <span class="bold"><strong>1</strong></span> (0.00328614s) 1611 </p> 1612 </td> 1613<td> 1614 <p> 1615 <span class="bold"><strong>1</strong></span> (0.0032946s) 1616 </p> 1617 </td> 1618<td> 1619 <p> 1620 <span class="bold"><strong>1</strong></span> (0.00333283s) 1621 </p> 1622 </td> 1623</tr> 1624<tr> 1625<td> 1626 <p> 1627 mpq_rational 1628 </p> 1629 </td> 1630<td> 1631 <p> 1632 28.9199 (0.0935664s) 1633 </p> 1634 </td> 1635<td> 1636 <p> 1637 28.1463 (0.0924926s) 1638 </p> 1639 </td> 1640<td> 1641 <p> 1642 28.2564 (0.0930936s) 1643 </p> 1644 </td> 1645<td> 1646 <p> 1647 27.5848 (0.0919355s) 1648 </p> 1649 </td> 1650</tr> 1651</tbody> 1652</table></div> 1653</div> 1654<br class="table-break"><div class="table"> 1655<a name="boost_multiprecision.perf.rational_performance.operator_construct_unsigned_long"></a><p class="title"><b>Table 1.89. Operator construct(unsigned long long)</b></p> 1656<div class="table-contents"><table class="table" summary="Operator construct(unsigned long long)"> 1657<colgroup> 1658<col> 1659<col> 1660<col> 1661<col> 1662<col> 1663</colgroup> 1664<thead><tr> 1665<th> 1666 <p> 1667 Backend 1668 </p> 1669 </th> 1670<th> 1671 <p> 1672 128 Bits 1673 </p> 1674 </th> 1675<th> 1676 <p> 1677 256 Bits 1678 </p> 1679 </th> 1680<th> 1681 <p> 1682 512 Bits 1683 </p> 1684 </th> 1685<th> 1686 <p> 1687 1024 Bits 1688 </p> 1689 </th> 1690</tr></thead> 1691<tbody> 1692<tr> 1693<td> 1694 <p> 1695 cpp_rational 1696 </p> 1697 </td> 1698<td> 1699 <p> 1700 <span class="bold"><strong>1</strong></span> (0.00333944s) 1701 </p> 1702 </td> 1703<td> 1704 <p> 1705 <span class="bold"><strong>1</strong></span> (0.00335336s) 1706 </p> 1707 </td> 1708<td> 1709 <p> 1710 <span class="bold"><strong>1</strong></span> (0.00348777s) 1711 </p> 1712 </td> 1713<td> 1714 <p> 1715 <span class="bold"><strong>1</strong></span> (0.00345967s) 1716 </p> 1717 </td> 1718</tr> 1719<tr> 1720<td> 1721 <p> 1722 mpq_rational 1723 </p> 1724 </td> 1725<td> 1726 <p> 1727 29.1785 (0.09744s) 1728 </p> 1729 </td> 1730<td> 1731 <p> 1732 29.1475 (0.097742s) 1733 </p> 1734 </td> 1735<td> 1736 <p> 1737 27.4732 (0.0958203s) 1738 </p> 1739 </td> 1740<td> 1741 <p> 1742 28.6655 (0.099173s) 1743 </p> 1744 </td> 1745</tr> 1746</tbody> 1747</table></div> 1748</div> 1749<br class="table-break"><div class="table"> 1750<a name="boost_multiprecision.perf.rational_performance.operator_construct_unsigned"></a><p class="title"><b>Table 1.90. Operator construct(unsigned)</b></p> 1751<div class="table-contents"><table class="table" summary="Operator construct(unsigned)"> 1752<colgroup> 1753<col> 1754<col> 1755<col> 1756<col> 1757<col> 1758</colgroup> 1759<thead><tr> 1760<th> 1761 <p> 1762 Backend 1763 </p> 1764 </th> 1765<th> 1766 <p> 1767 128 Bits 1768 </p> 1769 </th> 1770<th> 1771 <p> 1772 256 Bits 1773 </p> 1774 </th> 1775<th> 1776 <p> 1777 512 Bits 1778 </p> 1779 </th> 1780<th> 1781 <p> 1782 1024 Bits 1783 </p> 1784 </th> 1785</tr></thead> 1786<tbody> 1787<tr> 1788<td> 1789 <p> 1790 cpp_rational 1791 </p> 1792 </td> 1793<td> 1794 <p> 1795 <span class="bold"><strong>1</strong></span> (0.00321917s) 1796 </p> 1797 </td> 1798<td> 1799 <p> 1800 <span class="bold"><strong>1</strong></span> (0.00319471s) 1801 </p> 1802 </td> 1803<td> 1804 <p> 1805 <span class="bold"><strong>1</strong></span> (0.00327131s) 1806 </p> 1807 </td> 1808<td> 1809 <p> 1810 <span class="bold"><strong>1</strong></span> (0.00366486s) 1811 </p> 1812 </td> 1813</tr> 1814<tr> 1815<td> 1816 <p> 1817 mpq_rational 1818 </p> 1819 </td> 1820<td> 1821 <p> 1822 30.8553 (0.0993283s) 1823 </p> 1824 </td> 1825<td> 1826 <p> 1827 30.5973 (0.0977495s) 1828 </p> 1829 </td> 1830<td> 1831 <p> 1832 29.5866 (0.0967869s) 1833 </p> 1834 </td> 1835<td> 1836 <p> 1837 28.3432 (0.103874s) 1838 </p> 1839 </td> 1840</tr> 1841</tbody> 1842</table></div> 1843</div> 1844<br class="table-break"><div class="table"> 1845<a name="boost_multiprecision.perf.rational_performance.operator_str"></a><p class="title"><b>Table 1.91. Operator str</b></p> 1846<div class="table-contents"><table class="table" summary="Operator str"> 1847<colgroup> 1848<col> 1849<col> 1850<col> 1851<col> 1852<col> 1853</colgroup> 1854<thead><tr> 1855<th> 1856 <p> 1857 Backend 1858 </p> 1859 </th> 1860<th> 1861 <p> 1862 128 Bits 1863 </p> 1864 </th> 1865<th> 1866 <p> 1867 256 Bits 1868 </p> 1869 </th> 1870<th> 1871 <p> 1872 512 Bits 1873 </p> 1874 </th> 1875<th> 1876 <p> 1877 1024 Bits 1878 </p> 1879 </th> 1880</tr></thead> 1881<tbody> 1882<tr> 1883<td> 1884 <p> 1885 cpp_rational 1886 </p> 1887 </td> 1888<td> 1889 <p> 1890 5.80834 (0.00206821s) 1891 </p> 1892 </td> 1893<td> 1894 <p> 1895 11.5273 (0.00645497s) 1896 </p> 1897 </td> 1898<td> 1899 <p> 1900 18.1686 (0.0156602s) 1901 </p> 1902 </td> 1903<td> 1904 <p> 1905 38.1095 (0.0705044s) 1906 </p> 1907 </td> 1908</tr> 1909<tr> 1910<td> 1911 <p> 1912 mpq_rational 1913 </p> 1914 </td> 1915<td> 1916 <p> 1917 <span class="bold"><strong>1</strong></span> (0.000356077s) 1918 </p> 1919 </td> 1920<td> 1921 <p> 1922 <span class="bold"><strong>1</strong></span> (0.000559971s) 1923 </p> 1924 </td> 1925<td> 1926 <p> 1927 <span class="bold"><strong>1</strong></span> (0.000861937s) 1928 </p> 1929 </td> 1930<td> 1931 <p> 1932 <span class="bold"><strong>1</strong></span> (0.00185005s) 1933 </p> 1934 </td> 1935</tr> 1936</tbody> 1937</table></div> 1938</div> 1939<br class="table-break"><div class="table"> 1940<a name="boost_multiprecision.perf.rational_performance.platform"></a><p class="title"><b>Table 1.92. Platform Details</b></p> 1941<div class="table-contents"><table class="table" summary="Platform Details"> 1942<colgroup> 1943<col> 1944<col> 1945</colgroup> 1946<thead><tr> 1947<th> 1948 <p> 1949 Platform 1950 </p> 1951 </th> 1952<th> 1953 <p> 1954 Linux 5.3.0-24-generic, version #26-Ubuntu SMP Thu Nov 14 01:33:18 1955 UTC 2019, x86_64 1956 </p> 1957 </th> 1958</tr></thead> 1959<tbody> 1960<tr> 1961<td> 1962 <p> 1963 Compiler 1964 </p> 1965 </td> 1966<td> 1967 <p> 1968 GNU C++ version 9.2.1 20191008 1969 </p> 1970 </td> 1971</tr> 1972<tr> 1973<td> 1974 <p> 1975 GMP 1976 </p> 1977 </td> 1978<td> 1979 <p> 1980 6.1.2 1981 </p> 1982 </td> 1983</tr> 1984<tr> 1985<td> 1986 <p> 1987 MPFR 1988 </p> 1989 </td> 1990<td> 1991 <p> 1992 262146 1993 </p> 1994 </td> 1995</tr> 1996<tr> 1997<td> 1998 <p> 1999 Boost 2000 </p> 2001 </td> 2002<td> 2003 <p> 2004 107200 2005 </p> 2006 </td> 2007</tr> 2008<tr> 2009<td> 2010 <p> 2011 Run date 2012 </p> 2013 </td> 2014<td> 2015 <p> 2016 Dec 13 2019 2017 </p> 2018 </td> 2019</tr> 2020</tbody> 2021</table></div> 2022</div> 2023<br class="table-break"> 2024</div> 2025<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 2026<td align="left"></td> 2027<td align="right"><div class="copyright-footer">Copyright © 2002-2020 John 2028 Maddock and Christopher Kormanyos<p> 2029 Distributed under the Boost Software License, Version 1.0. (See accompanying 2030 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 2031 </p> 2032</div></td> 2033</tr></table> 2034<hr> 2035<div class="spirit-nav"> 2036<a accesskey="p" href="integer_performance.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../map.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 2037</div> 2038</body> 2039</html> 2040