|  | 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.18. Operator *
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 4.30817 (0.0408401s) | 1.75015 (0.0653409s) | 2.16485 (0.597984s) | 
| cpp_dec_float | 3.35696 (0.031823s) | 1.77364 (0.0662176s) | 1.74752 (0.482708s) | 
| gmp_float | 2.01455 (0.0190973s) | 1 (0.0373344s) | 1 (0.276224s) | 
| mpfr_float | 1 (0.00947969s) | 1.21316 (0.0452924s) | 2.13364 (0.589363s) | 
Table 1.19. Operator *(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 2.98031 (0.0223518s) | 4.27803 (0.0313689s) | 4.54817 (0.0632425s) | 
| cpp_dec_float | 4.25141 (0.0318849s) | 7.59768 (0.0557104s) | 33.1653 (0.461166s) | 
| gmp_float | 1 (0.00749984s) | 1 (0.00733255s) | 1 (0.0139051s) | 
| mpfr_float | 2.98089 (0.0223562s) | 3.32286 (0.0243651s) | 3.7808 (0.0525722s) | 
Table 1.20. Operator *(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 3.38766 (0.0235916s) | 5.87158 (0.0423397s) | 5.05723 (0.0709145s) | 
| cpp_dec_float | 5.0049 (0.0348541s) | 8.47648 (0.0611235s) | 32.4907 (0.455598s) | 
| gmp_float | 1 (0.00696399s) | 1 (0.00721095s) | 1 (0.0140224s) | 
| mpfr_float | 3.03806 (0.0211571s) | 3.50941 (0.0253062s) | 3.44633 (0.0483258s) | 
Table 1.21. Operator *=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1.56351 (0.0230891s) | 2.0073 (0.031993s) | 3.62925 (0.0772075s) | 
| cpp_dec_float | 2.55656 (0.0377542s) | 4.10056 (0.0653562s) | 21.6642 (0.460876s) | 
| gmp_float | 1 (0.0147675s) | 1 (0.0159383s) | 1 (0.0212737s) | 
| mpfr_float | 2.23026 (0.0329355s) | 2.40387 (0.0383137s) | 2.64077 (0.0561789s) | 
Table 1.22. Operator +
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 3.91168 (0.0381834s) | 4.16297 (0.0642049s) | 4.90051 (0.102092s) | 
| cpp_dec_float | 2.23696 (0.0218359s) | 1.69854 (0.0261964s) | 6.06882 (0.126431s) | 
| gmp_float | 1.50164 (0.0146581s) | 1 (0.0154229s) | 1 (0.0208329s) | 
| mpfr_float | 1 (0.0097614s) | 1.21982 (0.0188131s) | 1.81579 (0.0378282s) | 
Table 1.23. Operator +(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 5.27328 (0.0381889s) | 6.85509 (0.0518618s) | 10.4988 (0.104875s) | 
| cpp_dec_float | 3.50749 (0.0254011s) | 4.07503 (0.0308294s) | 12.8481 (0.128342s) | 
| gmp_float | 1 (0.00724196s) | 1 (0.00756543s) | 1 (0.00998923s) | 
| mpfr_float | 4.51538 (0.0327002s) | 4.54647 (0.034396s) | 5.25239 (0.0524673s) | 
Table 1.24. Operator +(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 5.93334 (0.044578s) | 9.73575 (0.0758362s) | 11.0837 (0.112203s) | 
| cpp_dec_float | 3.99501 (0.030015s) | 4.07581 (0.0317483s) | 9.33811 (0.0945316s) | 
| gmp_float | 1 (0.00751313s) | 1 (0.00778945s) | 1 (0.0101232s) | 
| mpfr_float | 4.28797 (0.0322161s) | 4.83393 (0.0376537s) | 5.2035 (0.052676s) | 
Table 1.25. Operator +=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 2.97171 (0.045722s) | 3.78495 (0.0640784s) | 5.16221 (0.117755s) | 
| cpp_dec_float | 1.93543 (0.0297781s) | 3.12436 (0.0528949s) | 4.83179 (0.110218s) | 
| gmp_float | 1 (0.0153858s) | 1 (0.0169298s) | 1 (0.022811s) | 
| mpfr_float | 3.42442 (0.0526874s) | 3.32428 (0.0562794s) | 3.25356 (0.0742172s) | 
Table 1.26. Operator -
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 4.15367 (0.0409089s) | 2.64914 (0.0485095s) | 4.23345 (0.103383s) | 
| cpp_dec_float | 2.29639 (0.0226168s) | 1.72571 (0.0316003s) | 8.13523 (0.198666s) | 
| gmp_float | 1.77498 (0.0174816s) | 1 (0.0183114s) | 1 (0.0244205s) | 
| mpfr_float | 1 (0.00984886s) | 1.02493 (0.0187679s) | 1.56348 (0.0381809s) | 
Table 1.27. Operator -(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 2.32581 (0.0423205s) | 2.99906 (0.0550403s) | 4.83118 (0.105425s) | 
| cpp_dec_float | 1.90239 (0.0346161s) | 2.19948 (0.0403659s) | 5.37782 (0.117354s) | 
| gmp_float | 1 (0.0181961s) | 1 (0.0183525s) | 1 (0.0218218s) | 
| mpfr_float | 2.30468 (0.041936s) | 2.36758 (0.043451s) | 2.94644 (0.0642965s) | 
Table 1.28. Operator -(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 3.256 (0.057902s) | 4.0869 (0.075218s) | 5.533 (0.116255s) | 
| cpp_dec_float | 2.20586 (0.0392273s) | 1.80053 (0.0331383s) | 4.29622 (0.0902684s) | 
| gmp_float | 1 (0.0177832s) | 1 (0.0184047s) | 1 (0.0210111s) | 
| mpfr_float | 2.51778 (0.0447741s) | 2.70809 (0.0498416s) | 3.44152 (0.0723102s) | 
Table 1.29. Operator -=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1.95294 (0.0470344s) | 2.41267 (0.0618181s) | 4.10529 (0.124911s) | 
| cpp_dec_float | 1.22584 (0.029523s) | 1.42773 (0.0365817s) | 3.11172 (0.0946795s) | 
| gmp_float | 1 (0.0240839s) | 1 (0.0256223s) | 1 (0.0304267s) | 
| mpfr_float | 2.41227 (0.0580968s) | 2.55229 (0.0653955s) | 2.75369 (0.0837856s) | 
Table 1.30. Operator /
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 4.03031 (0.472005s) | 7.46615 (1.06338s) | 13.3123 (5.3577s) | 
| cpp_dec_float | 4.96983 (0.582036s) | 7.16767 (1.02087s) | 14.7936 (5.95388s) | 
| gmp_float | 1 (0.117114s) | 1 (0.142427s) | 1 (0.402463s) | 
| mpfr_float | 1.70874 (0.200117s) | 1.79749 (0.256012s) | 3.50914 (1.4123s) | 
Table 1.31. Operator /(int)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 4.81369 (0.0938506s) | 7.27806 (0.162749s) | 9.67195 (0.551804s) | 
| cpp_dec_float | 15.0254 (0.292944s) | 21.5761 (0.482477s) | 51.7469 (2.95226s) | 
| gmp_float | 1 (0.0194966s) | 1 (0.0223617s) | 1 (0.0570519s) | 
| mpfr_float | 1.38183 (0.0269409s) | 1.44879 (0.0323974s) | 1.52094 (0.0867728s) | 
Table 1.32. Operator /(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 5.35966 (0.101822s) | 8.88121 (0.190303s) | 12.708 (0.717622s) | 
| cpp_dec_float | 14.7735 (0.280663s) | 22.4928 (0.481967s) | 51.6265 (2.91535s) | 
| gmp_float | 1 (0.0189978s) | 1 (0.0214276s) | 1 (0.0564701s) | 
| mpfr_float | 1.41678 (0.0269157s) | 1.6855 (0.0361161s) | 1.52543 (0.0861411s) | 
Table 1.33. Operator /=(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 4.84585 (0.125006s) | 6.82926 (0.208589s) | 10.3294 (0.662579s) | 
| cpp_dec_float | 10.7166 (0.276449s) | 16.1194 (0.492342s) | 44.3971 (2.84786s) | 
| gmp_float | 1 (0.0257964s) | 1 (0.0305434s) | 1 (0.0641451s) | 
| mpfr_float | 1.50909 (0.0389292s) | 1.49032 (0.0455194s) | 1.70466 (0.109346s) | 
Table 1.34. Operator construct
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1 (0.00303111s) | 1 (0.00357506s) | 1 (0.0113051s) | 
| cpp_dec_float | 1.00185 (0.00303671s) | 1.15155 (0.00411687s) | 1.26796 (0.0143345s) | 
| gmp_float | 16.5683 (0.0502204s) | 14.0851 (0.0503551s) | 9.67268 (0.109351s) | 
| mpfr_float | 28.144 (0.0853075s) | 24.8244 (0.0887486s) | 10.3544 (0.117058s) | 
Table 1.35. Operator construct(unsigned long long)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1 (0.00524853s) | 1 (0.00566609s) | 1 (0.0278919s) | 
| cpp_dec_float | 2.97185 (0.0155978s) | 1.49757 (0.00848537s) | 1.03141 (0.0287679s) | 
| gmp_float | 10.4626 (0.0549133s) | 9.63997 (0.054621s) | 3.98862 (0.11125s) | 
| mpfr_float | 20.7883 (0.109108s) | 20.2715 (0.11486s) | 5.17847 (0.144437s) | 
Table 1.36. Operator construct(unsigned)
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 1 (0.00519769s) | 1 (0.0054342s) | 1 (0.0275892s) | 
| cpp_dec_float | 1.67001 (0.0086802s) | 1.5305 (0.00831702s) | 1.05641 (0.0291456s) | 
| gmp_float | 10.6639 (0.0554274s) | 10.2395 (0.0556435s) | 4.03533 (0.111332s) | 
| mpfr_float | 25.0325 (0.130111s) | 20.8688 (0.113405s) | 6.29649 (0.173715s) | 
Table 1.37. Operator str
| Backend | 50 Bits | 100 Bits | 500 Bits | 
|---|---|---|---|
| cpp_bin_float | 3.98982 (0.00249639s) | 5.55423 (0.00505412s) | 10.5272 (0.0320983s) | 
| cpp_dec_float | 4.83686 (0.00302637s) | 4.39789 (0.0040019s) | 3.38032 (0.0103068s) | 
| gmp_float | 1 (0.000625689s) | 1 (0.000909959s) | 1 (0.00304907s) | 
| mpfr_float | 1.95049 (0.0012204s) | 1.61297 (0.00146774s) | 1.52133 (0.00463864s) | 
Table 1.38. 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 |