|  | Home | Libraries | People | FAQ | More | 
Note that these tests are carefully designed to test performance of the underlying algorithms and not memory allocation or variable copying. As usual, performance results should be taken with a healthy dose of scepticism, and real-world performance may vary widely depending upon the specifics of the program. In each table relative times are given first, with the best performer given a score of 1. Total actual times are given in brackets, measured in seconds for 500000 operations.
Table 1.72. Operator *
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.59318 (1.11835s) | 3.74332 (6.61855s) | 4.71871 (18.5981s) | 5.48511 (47.0022s) | 
| mpq_rational | 1 (0.431264s) | 1 (1.7681s) | 1 (3.94136s) | 1 (8.56905s) | 
Table 1.73. Operator *(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 5.63431 (0.612884s) | 25.5205 (2.83784s) | 64.6798 (7.61151s) | 135.335 (19.4821s) | 
| mpq_rational | 1 (0.108777s) | 1 (0.111198s) | 1 (0.11768s) | 1 (0.143955s) | 
Table 1.74. Operator *(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 4.44786 (0.691659s) | 18.4155 (2.97414s) | 44.4009 (7.64879s) | 98.4603 (19.5719s) | 
| mpq_rational | 1 (0.155504s) | 1 (0.161502s) | 1 (0.172267s) | 1 (0.19878s) | 
Table 1.75. Operator *=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 4.12301 (0.690473s) | 20.2597 (3.35519s) | 42.8043 (7.47312s) | 94.2742 (19.3092s) | 
| mpq_rational | 1 (0.167468s) | 1 (0.165609s) | 1 (0.174588s) | 1 (0.20482s) | 
Table 1.76. Operator +
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 8.51825 (1.97719s) | 7.8609 (7.34254s) | 9.73008 (21.2507s) | 11.1497 (49.7843s) | 
| mpq_rational | 1 (0.232113s) | 1 (0.93406s) | 1 (2.18402s) | 1 (4.46507s) | 
Table 1.77. Operator +(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 7.17647 (0.669913s) | 29.8489 (2.91217s) | 75.7668 (7.40631s) | 254.371 (29.7057s) | 
| mpq_rational | 1 (0.0933486s) | 1 (0.0975637s) | 1 (0.0977514s) | 1 (0.116781s) | 
Table 1.78. Operator +(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 12.4996 (1.16835s) | 33.6691 (3.37438s) | 82.0167 (8.08959s) | 171.692 (19.9733s) | 
| mpq_rational | 1 (0.0934708s) | 1 (0.100222s) | 1 (0.0986335s) | 1 (0.116332s) | 
Table 1.79. Operator +=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 11.7663 (1.14891s) | 34.4202 (3.45541s) | 78.1856 (8.17612s) | 161.351 (20.0733s) | 
| mpq_rational | 1 (0.0976436s) | 1 (0.100389s) | 1 (0.104573s) | 1 (0.124408s) | 
Table 1.80. Operator -
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 8.56942 (2.0234s) | 7.88071 (7.38282s) | 9.54207 (19.913s) | 11.4343 (50.8786s) | 
| mpq_rational | 1 (0.236118s) | 1 (0.936822s) | 1 (2.08686s) | 1 (4.44964s) | 
Table 1.81. Operator -(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 6.62286 (0.62794s) | 30.6629 (2.96506s) | 75.926 (7.56072s) | 199.475 (23.42s) | 
| mpq_rational | 1 (0.094814s) | 1 (0.0966986s) | 1 (0.0995801s) | 1 (0.117408s) | 
Table 1.82. Operator -(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 12.3835 (1.16081s) | 36.0761 (3.40187s) | 83.3673 (8.26011s) | 169.239 (20.5682s) | 
| mpq_rational | 1 (0.0937381s) | 1 (0.094297s) | 1 (0.099081s) | 1 (0.121534s) | 
Table 1.83. Operator -=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 11.6833 (1.16049s) | 36.6427 (3.64132s) | 77.0952 (8.10257s) | 160.444 (20.0829s) | 
| mpq_rational | 1 (0.0993285s) | 1 (0.0993737s) | 1 (0.105098s) | 1 (0.12517s) | 
Table 1.84. Operator /
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 5.67626 (6.66075s) | 5.99288 (21.0634s) | 8.08809 (55.0195s) | 10.5818 (149.774s) | 
| mpq_rational | 1 (1.17344s) | 1 (3.51474s) | 1 (6.80254s) | 1 (14.1539s) | 
Table 1.85. Operator /(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 5.9046 (0.64166s) | 25.5252 (2.84312s) | 65.4027 (7.74325s) | 134.42 (19.5619s) | 
| mpq_rational | 1 (0.108671s) | 1 (0.111385s) | 1 (0.118393s) | 1 (0.145528s) | 
Table 1.86. Operator /(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 4.35172 (0.691696s) | 18.2795 (2.94678s) | 44.2487 (7.48547s) | 99.1392 (19.5526s) | 
| mpq_rational | 1 (0.158948s) | 1 (0.161207s) | 1 (0.169168s) | 1 (0.197224s) | 
Table 1.87. Operator /=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 4.14511 (0.685733s) | 18.3237 (3.08065s) | 43.3784 (7.43555s) | 94.2547 (19.2754s) | 
| mpq_rational | 1 (0.165432s) | 1 (0.168124s) | 1 (0.171411s) | 1 (0.204503s) | 
Table 1.88. Operator construct
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.00323537s) | 1 (0.00328614s) | 1 (0.0032946s) | 1 (0.00333283s) | 
| mpq_rational | 28.9199 (0.0935664s) | 28.1463 (0.0924926s) | 28.2564 (0.0930936s) | 27.5848 (0.0919355s) | 
Table 1.89. Operator construct(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.00333944s) | 1 (0.00335336s) | 1 (0.00348777s) | 1 (0.00345967s) | 
| mpq_rational | 29.1785 (0.09744s) | 29.1475 (0.097742s) | 27.4732 (0.0958203s) | 28.6655 (0.099173s) | 
Table 1.90. Operator construct(unsigned)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.00321917s) | 1 (0.00319471s) | 1 (0.00327131s) | 1 (0.00366486s) | 
| mpq_rational | 30.8553 (0.0993283s) | 30.5973 (0.0977495s) | 29.5866 (0.0967869s) | 28.3432 (0.103874s) | 
Table 1.91. Operator str
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 5.80834 (0.00206821s) | 11.5273 (0.00645497s) | 18.1686 (0.0156602s) | 38.1095 (0.0705044s) | 
| mpq_rational | 1 (0.000356077s) | 1 (0.000559971s) | 1 (0.000861937s) | 1 (0.00185005s) | 
Table 1.92. Platform Details
| Platform | Linux 5.3.0-24-generic, version #26-Ubuntu SMP Thu Nov 14 01:33:18 UTC 2019, x86_64 | 
|---|---|
| Compiler | GNU C++ version 9.2.1 20191008 | 
| GMP | 6.1.2 | 
| MPFR | 262146 | 
| Boost | 107200 | 
| Run date | Dec 13 2019 |