• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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