|  | 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.76. Operator *
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.00025 (0.797425s) | 1.97726 (2.96998s) | 1.86844 (6.73224s) | 1.96608 (14.4259s) | 
| mpq_rational | 1 (0.398662s) | 1 (1.50207s) | 1 (3.60314s) | 1 (7.3374s) | 
Table 1.77. Operator *(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.88073 (0.0637195s) | 1.93184 (0.0917847s) | 2.15609 (0.118274s) | 2.4236 (0.218283s) | 
| mpq_rational | 1 (0.0338803s) | 1 (0.0475114s) | 1 (0.0548556s) | 1 (0.0900656s) | 
Table 1.78. Operator *(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.60877 (0.161844s) | 2.33429 (0.240069s) | 1.8835 (0.298935s) | 2.70338 (0.448194s) | 
| mpq_rational | 1 (0.100601s) | 1 (0.102844s) | 1 (0.158713s) | 1 (0.16579s) | 
Table 1.79. Operator *(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.97503 (0.408791s) | 2.42069 (0.600225s) | 2.65138 (0.803009s) | 4.65673 (1.54645s) | 
| mpq_rational | 1 (0.20698s) | 1 (0.247956s) | 1 (0.302865s) | 1 (0.332089s) | 
Table 1.80. Operator *=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.97207 (0.211848s) | 2.18482 (0.226179s) | 2.43682 (0.319695s) | 2.69933 (0.485819s) | 
| mpq_rational | 1 (0.107424s) | 1 (0.103523s) | 1 (0.131194s) | 1 (0.179978s) | 
Table 1.81. Operator *=(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.95211 (0.40255s) | 2.60942 (0.629302s) | 2.83854 (0.8029s) | 4.34054 (1.37083s) | 
| mpq_rational | 1 (0.206213s) | 1 (0.241165s) | 1 (0.282857s) | 1 (0.31582s) | 
Table 1.82. Operator +
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.20364 (0.415006s) | 1.97574 (1.53458s) | 1.75945 (3.41194s) | 2.11634 (8.04044s) | 
| mpq_rational | 1 (0.188327s) | 1 (0.776716s) | 1 (1.93921s) | 1 (3.79923s) | 
Table 1.83. Operator +(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.06836 (0.0177811s) | 1.80334 (0.0183744s) | 1.38442 (0.020452s) | 1.81894 (0.0449351s) | 
| mpq_rational | 1 (0.00859669s) | 1 (0.0101891s) | 1 (0.014773s) | 1 (0.024704s) | 
Table 1.84. Operator +(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.07187 (0.0177151s) | 2.3005 (0.0241089s) | 1.81397 (0.0297836s) | 1.72202 (0.046594s) | 
| mpq_rational | 1 (0.0085503s) | 1 (0.0104799s) | 1 (0.016419s) | 1 (0.0270577s) | 
Table 1.85. Operator +(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.2805 (0.0265647s) | 1.59353 (0.0391054s) | 1.26613 (0.044067s) | 1.95307 (0.105801s) | 
| mpq_rational | 1 (0.0207456s) | 1 (0.0245401s) | 1 (0.0348044s) | 1 (0.0541719s) | 
Table 1.86. Operator +=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 7.29749 (0.0565983s) | 3.77253 (0.0371419s) | 2.72128 (0.0556987s) | 2.01495 (0.0662456s) | 
| mpq_rational | 1 (0.00775585s) | 1 (0.00984535s) | 1 (0.0204678s) | 1 (0.032877s) | 
Table 1.87. Operator +=(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.92025 (0.0335896s) | 2.08321 (0.0422867s) | 1.587 (0.0564267s) | 1.85357 (0.0840696s) | 
| mpq_rational | 1 (0.0174923s) | 1 (0.0202988s) | 1 (0.0355556s) | 1 (0.0453556s) | 
Table 1.88. Operator -
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.38126 (0.471759s) | 1.92631 (1.52484s) | 1.76181 (3.49648s) | 2.03462 (7.71926s) | 
| mpq_rational | 1 (0.198113s) | 1 (0.791584s) | 1 (1.98459s) | 1 (3.79396s) | 
Table 1.89. Operator -(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.44447 (0.0292894s) | 2.54602 (0.0346718s) | 1.4869 (0.035503s) | 1.95344 (0.0577029s) | 
| mpq_rational | 1 (0.0119819s) | 1 (0.013618s) | 1 (0.0238773s) | 1 (0.0295391s) | 
Table 1.90. Operator -(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.93654 (0.0296698s) | 4.23087 (0.0496956s) | 1.68041 (0.0461985s) | 1.4455 (0.0581714s) | 
| mpq_rational | 1 (0.0101037s) | 1 (0.0117459s) | 1 (0.0274924s) | 1 (0.040243s) | 
Table 1.91. Operator -(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.69242 (0.0408789s) | 1.5205 (0.0467416s) | 1.31525 (0.0548939s) | 2.16115 (0.103471s) | 
| mpq_rational | 1 (0.0241541s) | 1 (0.030741s) | 1 (0.0417365s) | 1 (0.0478777s) | 
Table 1.92. Operator -=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 3.69509 (0.0366534s) | 3.7306 (0.0439181s) | 1.8352 (0.0491612s) | 1.86662 (0.071761s) | 
| mpq_rational | 1 (0.00991947s) | 1 (0.0117724s) | 1 (0.0267879s) | 1 (0.0384444s) | 
Table 1.93. Operator -=(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.76299 (0.0421283s) | 2.03803 (0.0490152s) | 1.84864 (0.053198s) | 2.10533 (0.0881228s) | 
| mpq_rational | 1 (0.023896s) | 1 (0.0240502s) | 1 (0.0287769s) | 1 (0.041857s) | 
Table 1.94. Operator /
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 2.03433 (2.28881s) | 2.24309 (6.34454s) | 2.1203 (13.2036s) | 2.36142 (29.3236s) | 
| mpq_rational | 1 (1.12509s) | 1 (2.82848s) | 1 (6.22726s) | 1 (12.4178s) | 
Table 1.95. Operator /(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.035134s) | 1.08556 (0.0774619s) | 1.08797 (0.104628s) | 1.29134 (0.207067s) | 
| mpq_rational | 1.85049 (0.0650149s) | 1 (0.0713565s) | 1 (0.0961679s) | 1 (0.16035s) | 
Table 1.96. Operator /(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.31397 (0.170727s) | 1.63747 (0.216019s) | 1.68581 (0.292536s) | 1.76695 (0.435259s) | 
| mpq_rational | 1 (0.129932s) | 1 (0.131923s) | 1 (0.173528s) | 1 (0.246334s) | 
Table 1.97. Operator /(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.82473 (0.431612s) | 2.20261 (0.596248s) | 2.45848 (0.809662s) | 3.88675 (1.38001s) | 
| mpq_rational | 1 (0.236534s) | 1 (0.270701s) | 1 (0.329335s) | 1 (0.355055s) | 
Table 1.98. Operator /=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.58868 (0.216252s) | 1.71288 (0.235781s) | 1.78218 (0.314161s) | 1.98715 (0.460033s) | 
| mpq_rational | 1 (0.136121s) | 1 (0.137652s) | 1 (0.176279s) | 1 (0.231505s) | 
Table 1.99. Operator /=(value_type)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1.72896 (0.40369s) | 2.55949 (0.689514s) | 2.4929 (0.832288s) | 3.51238 (1.37478s) | 
| mpq_rational | 1 (0.233487s) | 1 (0.269395s) | 1 (0.333863s) | 1 (0.391409s) | 
Table 1.100. Operator construct
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.0135822s) | 1 (0.00935293s) | 1 (0.0083784s) | 1 (0.00962697s) | 
| mpq_rational | 1.44264 (0.0195942s) | 2.18249 (0.0204126s) | 2.64725 (0.0221797s) | 2.87767 (0.0277033s) | 
Table 1.101. Operator construct(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.00806026s) | 1 (0.00960336s) | 1 (0.00769898s) | 1 (0.0176689s) | 
| mpq_rational | 4.87225 (0.0392716s) | 5.91987 (0.0568506s) | 9.03811 (0.0695842s) | 3.68339 (0.0650815s) | 
Table 1.102. Operator construct(unsigned)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 1 (0.00672081s) | 1 (0.0064826s) | 1 (0.00618635s) | 1 (0.00923644s) | 
| mpq_rational | 6.47138 (0.0434929s) | 7.48645 (0.0485316s) | 8.2942 (0.0513108s) | 5.77363 (0.0533278s) | 
Table 1.103. Operator str
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_rational | 6.17439 (0.00168424s) | 7.6748 (0.0033367s) | 6.38435 (0.00662873s) | 9.07696 (0.0174979s) | 
| mpq_rational | 1 (0.000272779s) | 1 (0.000434761s) | 1 (0.00103828s) | 1 (0.00192772s) | 
Table 1.104. Platform Details
| Version | |
|---|---|
| Compiler | GNU C++ version 10.3.0 | 
| GMP | 6.2.0 | 
| MPFR | 262146 | 
| Boost | 107800 | 
| Run date | Sep 30 2021 |