|  | 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.22. Operator *
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 4.45465 (0.0720574s) | 4.33995 (0.111688s) | 2.90491 (0.850904s) | 
| cpp_dec_float | 3.82572 (0.061884s) | 5.06288 (0.130292s) | 5.77019 (1.6902s) | 
| gmp_float | 1.28958 (0.02086s) | 1 (0.0257348s) | 1 (0.292919s) | 
| mpfr_float | 1 (0.0161758s) | 2.57159 (0.0661794s) | 1.09888 (0.321884s) | 
Table 1.23. Operator *(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 7.78457 (0.0399504s) | 8.32801 (0.0464923s) | 5.78369 (0.12206s) | 
| cpp_dec_float | 12.2836 (0.0630393s) | 22.4215 (0.125171s) | 115.745 (2.44271s) | 
| gmp_float | 1 (0.00513201s) | 1 (0.00558264s) | 1 (0.0211042s) | 
| mpfr_float | 6.55686 (0.0336498s) | 6.08531 (0.0339721s) | 3.75579 (0.0792629s) | 
Table 1.24. Operator *(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 3.96061 (0.0508387s) | 9.0225 (0.0540758s) | 3.84877 (0.0843974s) | 
| cpp_dec_float | 5.80905 (0.0745654s) | 24.6321 (0.147631s) | 122.419 (2.68446s) | 
| gmp_float | 1 (0.0128361s) | 1 (0.00599344s) | 1 (0.0219284s) | 
| mpfr_float | 2.15124 (0.0276134s) | 4.61073 (0.0276341s) | 2.31056 (0.0506668s) | 
Table 1.25. Operator *=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 6.54027 (0.0500366s) | 5.58857 (0.0547429s) | 3.33593 (0.0987612s) | 
| cpp_dec_float | 9.23894 (0.0706828s) | 17.6238 (0.172634s) | 81.1437 (2.40228s) | 
| gmp_float | 1 (0.00765054s) | 1 (0.00979552s) | 1 (0.0296053s) | 
| mpfr_float | 2.99517 (0.0229147s) | 3.55395 (0.0348128s) | 2.42098 (0.0716736s) | 
Table 1.26. Operator +
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 2.61482 (0.0479759s) | 6.91285 (0.0901201s) | 8.04302 (0.219881s) | 
| cpp_dec_float | 1.08384 (0.0198859s) | 1.6631 (0.0216812s) | 7.59843 (0.207727s) | 
| gmp_float | 1.00042 (0.0183555s) | 1 (0.0130366s) | 1 (0.0273382s) | 
| mpfr_float | 1 (0.0183477s) | 1.4588 (0.0190178s) | 2.22935 (0.0609463s) | 
Table 1.27. Operator +(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 11.8195 (0.0524679s) | 13.9144 (0.0871804s) | 13.6745 (0.165014s) | 
| cpp_dec_float | 3.22445 (0.0143136s) | 2.703 (0.0169356s) | 12.5227 (0.151114s) | 
| gmp_float | 1 (0.00443909s) | 1 (0.00626549s) | 1 (0.0120673s) | 
| mpfr_float | 5.78563 (0.0256829s) | 4.78942 (0.0300081s) | 5.21353 (0.062913s) | 
Table 1.28. Operator +(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 21.4259 (0.109321s) | 16.4546 (0.128103s) | 14.7256 (0.16427s) | 
| cpp_dec_float | 4.53931 (0.0231609s) | 3.75913 (0.0292658s) | 13.3516 (0.148942s) | 
| gmp_float | 1 (0.0051023s) | 1 (0.00778526s) | 1 (0.0111554s) | 
| mpfr_float | 5.11905 (0.0261189s) | 3.73777 (0.0290995s) | 5.52758 (0.0616622s) | 
Table 1.29. Operator +=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 6.6778 (0.109847s) | 6.84045 (0.0942496s) | 9.09759 (0.157162s) | 
| cpp_dec_float | 1.06799 (0.017568s) | 1.71962 (0.0236933s) | 10.7777 (0.186187s) | 
| gmp_float | 1 (0.0164496s) | 1 (0.0137783s) | 1 (0.0172751s) | 
| mpfr_float | 3.47654 (0.0571878s) | 3.64857 (0.0502709s) | 4.56004 (0.0787754s) | 
Table 1.30. Operator -
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 5.04597 (0.0688937s) | 4.65775 (0.0896788s) | 7.55005 (0.196627s) | 
| cpp_dec_float | 1.42357 (0.0194363s) | 1.62766 (0.0313385s) | 8.16298 (0.21259s) | 
| gmp_float | 1 (0.0136532s) | 1 (0.0192537s) | 1 (0.0260432s) | 
| mpfr_float | 1.76726 (0.0241287s) | 2.05663 (0.0395976s) | 2.48295 (0.0646638s) | 
Table 1.31. Operator -(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 6.31633 (0.0848243s) | 7.07646 (0.084402s) | 6.65523 (0.181209s) | 
| cpp_dec_float | 1.6139 (0.0216737s) | 2.20945 (0.0263524s) | 5.27802 (0.14371s) | 
| gmp_float | 1 (0.0134294s) | 1 (0.0119272s) | 1 (0.0272281s) | 
| mpfr_float | 5.1551 (0.0692297s) | 5.48391 (0.0654074s) | 2.6116 (0.0711089s) | 
Table 1.32. Operator -(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 9.08373 (0.102878s) | 4.54284 (0.0883961s) | 7.01771 (0.185162s) | 
| cpp_dec_float | 2.19345 (0.0248419s) | 1.47898 (0.0287785s) | 5.71248 (0.150724s) | 
| gmp_float | 1 (0.0113255s) | 1 (0.0194584s) | 1 (0.026385s) | 
| mpfr_float | 5.35926 (0.0606961s) | 2.92255 (0.056868s) | 3.43277 (0.0905736s) | 
Table 1.33. Operator -=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 8.73347 (0.129938s) | 4.58762 (0.101449s) | 5.43827 (0.163157s) | 
| cpp_dec_float | 1.67927 (0.0249846s) | 1.79526 (0.0396995s) | 6.63379 (0.199025s) | 
| gmp_float | 1 (0.0148782s) | 1 (0.0221136s) | 1 (0.0300017s) | 
| mpfr_float | 3.96488 (0.0589902s) | 3.30899 (0.0731736s) | 3.51566 (0.105476s) | 
Table 1.34. Operator /
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 5.40221 (0.549759s) | 10.0182 (1.39191s) | 12.3684 (5.32129s) | 
| cpp_dec_float | 8.16505 (0.83092s) | 12.483 (1.73437s) | 52.8644 (22.744s) | 
| gmp_float | 1 (0.101766s) | 1 (0.138938s) | 1 (0.430233s) | 
| mpfr_float | 1.6699 (0.169939s) | 2.16251 (0.300455s) | 2.82683 (1.2162s) | 
Table 1.35. Operator /(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 5.81464 (0.141651s) | 12.2991 (0.271491s) | 8.20246 (0.643802s) | 
| cpp_dec_float | 16.4865 (0.40163s) | 39.0331 (0.861622s) | 164 (12.8722s) | 
| gmp_float | 1 (0.0243611s) | 1 (0.0220741s) | 1 (0.0784889s) | 
| mpfr_float | 2.25501 (0.0549347s) | 2.6832 (0.0592293s) | 1.60852 (0.126251s) | 
Table 1.36. Operator /(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 10.879 (0.19558s) | 10.4845 (0.244599s) | 8.82445 (0.621615s) | 
| cpp_dec_float | 22.028 (0.396014s) | 42.4784 (0.991001s) | 201.351 (14.1836s) | 
| gmp_float | 1 (0.0179778s) | 1 (0.0233296s) | 1 (0.0704423s) | 
| mpfr_float | 2.89723 (0.0520857s) | 2.6935 (0.0628383s) | 1.67233 (0.117803s) | 
Table 1.37. Operator /=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 11.0264 (0.215322s) | 7.78235 (0.256093s) | 8.31638 (0.638041s) | 
| cpp_dec_float | 20.9412 (0.408938s) | 38.8146 (1.27727s) | 142.377 (10.9233s) | 
| gmp_float | 1 (0.0195279s) | 1 (0.032907s) | 1 (0.076721s) | 
| mpfr_float | 2.67894 (0.0523141s) | 2.16678 (0.071302s) | 1.5964 (0.122477s) | 
Table 1.38. Operator construct
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1 (0.0030982s) | 1.37355 (0.00608929s) | 1 (0.0152335s) | 
| cpp_dec_float | 1.23911 (0.00383901s) | 1 (0.00443324s) | 1.6806 (0.0256013s) | 
| gmp_float | 7.50258 (0.0232445s) | 5.47554 (0.0242744s) | 5.81062 (0.0885159s) | 
| mpfr_float | 24.9598 (0.0773304s) | 19.5526 (0.0866815s) | 5.00378 (0.0762248s) | 
Table 1.39. Operator construct(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 2.08541 (0.0175206s) | 3.12821 (0.0267453s) | 1.32687 (0.0570308s) | 
| cpp_dec_float | 1 (0.00840151s) | 1 (0.00854971s) | 1 (0.0429815s) | 
| gmp_float | 3.08163 (0.0258903s) | 2.44895 (0.0209379s) | 2.12806 (0.0914671s) | 
| mpfr_float | 10.6814 (0.08974s) | 8.42482 (0.0720298s) | 1.8282 (0.0785786s) | 
Table 1.40. Operator construct(unsigned)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1.04974 (0.00808983s) | 1.38823 (0.0120486s) | 1.16321 (0.0530205s) | 
| cpp_dec_float | 1 (0.00770653s) | 1 (0.00867913s) | 1 (0.0455813s) | 
| gmp_float | 3.88496 (0.0299395s) | 2.90503 (0.0252132s) | 1.82072 (0.0829907s) | 
| mpfr_float | 13.3088 (0.102564s) | 8.41333 (0.0730204s) | 1.78408 (0.0813206s) | 
Table 1.41. Operator str
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 6.09659 (0.00301165s) | 4.71882 (0.0051705s) | 12.4899 (0.043165s) | 
| cpp_dec_float | 2.94087 (0.00145276s) | 1.64843 (0.00180621s) | 3.16004 (0.0109211s) | 
| gmp_float | 1 (0.000493989s) | 1 (0.00109572s) | 1 (0.00345598s) | 
| mpfr_float | 4.60349 (0.00227407s) | 1.21213 (0.00132816s) | 1.41569 (0.0048926s) | 
Table 1.42. Platform Details
| Version | |
|---|---|
| Compiler | GNU C++ version 10.3.0 | 
| GMP | 6.2.0 | 
| MPFR | 262146 | 
| Boost | 107800 | 
| Run date | Sep 30 2021 |