|  | 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.39. Operator %
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 2.61392 (0.0864932s) | 2.33601 (0.180207s) | 3.10832 (0.265481s) | 4.4334 (0.437939s) | 6.58635 (1.84456s) | 8.03034 (3.52132s) | 
| cpp_int(fixed) | 1 (0.0330895s) | 1.41347 (0.10904s) | 2.16247 (0.184697s) | 3.54449 (0.350131s) | ||
| gmp_int | 1.92882 (0.0638235s) | 1 (0.0771433s) | 1 (0.0854098s) | 1 (0.0987817s) | 1 (0.280057s) | 1 (0.438501s) | 
| tommath_int | 29.1866 (0.96577s) | 15.4935 (1.19522s) | 17.3239 (1.47963s) | 21.5351 (2.12727s) | 30.686 (8.59385s) | 46.9089 (20.5696s) | 
Table 1.40. Operator %(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 3.96358 (0.0411513s) | 5.50428 (0.0824453s) | 9.42287 (0.158338s) | 15.8329 (0.324245s) | 30.9984 (1.64821s) | 45.0524 (3.18758s) | 
| cpp_int(fixed) | 1.94108 (0.020153s) | 4.67128 (0.0699684s) | 7.70602 (0.129488s) | 13.4197 (0.274825s) | ||
| gmp_int | 1 (0.0103823s) | 1 (0.0149784s) | 1 (0.0168035s) | 1 (0.0204792s) | 1 (0.0531708s) | 1 (0.0707528s) | 
| tommath_int | 63.4583 (0.658846s) | 60.8321 (0.911168s) | 71.7106 (1.20499s) | 94.0003 (1.92505s) | 158.133 (8.40805s) | 281.804 (19.9384s) | 
Table 1.41. Operator &
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 5.80585 (0.0183659s) | 2.61424 (0.0152432s) | 1.92953 (0.0150612s) | 2.06584 (0.0169715s) | 2.76807 (0.0908961s) | 2.71967 (0.150675s) | 
| cpp_int(fixed) | 1 (0.00316334s) | 2.07888 (0.0121216s) | 1.66677 (0.0130102s) | 2.13 (0.0174986s) | ||
| gmp_int | 1.92975 (0.00610446s) | 1 (0.00583083s) | 1 (0.00780563s) | 1 (0.00821528s) | 1 (0.0328374s) | 1 (0.055402s) | 
| tommath_int | 12.8579 (0.0406739s) | 7.3359 (0.0427744s) | 5.45721 (0.0425969s) | 5.59908 (0.0459981s) | 2.0162 (0.0662069s) | 1.89937 (0.105229s) | 
Table 1.42. Operator &(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 6.35169 (0.022195s) | 1.23274 (0.0225044s) | 1.14828 (0.022403s) | 1 (0.0249629s) | 3.1254 (0.114785s) | 5.12161 (0.162092s) | 
| cpp_int(fixed) | 1 (0.00349434s) | 1 (0.0182556s) | 1 (0.0195101s) | 1.2174 (0.0303898s) | ||
| gmp_int | 8.90744 (0.0311256s) | 1.66139 (0.0303296s) | 1.65728 (0.0323335s) | 1.22673 (0.0306228s) | 1 (0.0367266s) | 1 (0.0316487s) | 
| tommath_int | 41.7082 (0.145742s) | 8.3058 (0.151627s) | 7.92746 (0.154665s) | 6.17442 (0.154131s) | 5.61372 (0.206173s) | 7.94642 (0.251494s) | 
Table 1.43. Operator *
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 31.2488 (0.0300171s) | 1.30604 (0.0236033s) | 1.54672 (0.0566226s) | 1.99827 (0.200935s) | 1.86646 (3.97724s) | 3.28041 (15.8254s) | 
| cpp_int(fixed) | 1 (0.000960586s) | 1.05101 (0.0189943s) | 1.40113 (0.0512925s) | 1.32791 (0.133528s) | ||
| gmp_int | 6.99778 (0.00672197s) | 1 (0.0180725s) | 1 (0.0366081s) | 1 (0.100555s) | 1 (2.13089s) | 1 (4.82421s) | 
| tommath_int | 25.6654 (0.0246539s) | 1.93625 (0.0349929s) | 1.53585 (0.0562246s) | 1.40261 (0.141039s) | 1.24172 (2.64598s) | 1.99971 (9.64701s) | 
Table 1.44. Operator *(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 12.9191 (0.00819119s) | 1.8286 (0.00975751s) | 2.09136 (0.0145601s) | 2.10205 (0.0199823s) | 1.62628 (0.0692257s) | 2.08177 (0.122618s) | 
| cpp_int(fixed) | 1 (0.000634036s) | 1 (0.00533605s) | 1.25356 (0.0087273s) | 1.82259 (0.0173257s) | ||
| gmp_int | 9.40263 (0.00596161s) | 1.07614 (0.00574233s) | 1 (0.00696202s) | 1 (0.00950608s) | 1 (0.0425668s) | 1 (0.0589007s) | 
| tommath_int | 186.507 (0.118252s) | 23.4915 (0.125352s) | 18.6669 (0.129959s) | 17.1434 (0.162966s) | 6.11737 (0.260397s) | 6.03792 (0.355638s) | 
Table 1.45. Operator *(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 9.1035 (0.00634192s) | 1.61555 (0.00682732s) | 1.38506 (0.00820436s) | 1.28658 (0.012381s) | 1.28916 (0.0410419s) | 1.44948 (0.0850577s) | 
| cpp_int(fixed) | 1 (0.000696646s) | 1 (0.00422601s) | 1 (0.00592347s) | 1.35631 (0.013052s) | ||
| gmp_int | 8.26494 (0.00575774s) | 1.31029 (0.00553729s) | 1.19721 (0.00709163s) | 1 (0.00962312s) | 1 (0.0318361s) | 1 (0.0586816s) | 
| tommath_int | 381.793 (0.265975s) | 69.3609 (0.29312s) | 50.6122 (0.2998s) | 32.8061 (0.315697s) | 13.3579 (0.425264s) | 10.2399 (0.600894s) | 
Table 1.46. Operator *=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 16.5844 (0.0124159s) | 1.25396 (0.0117921s) | 1.25877 (0.0140258s) | 1.25408 (0.017396s) | 3.09966 (0.135787s) | 2.63342 (0.222949s) | 
| cpp_int(fixed) | 1 (0.000748647s) | 1 (0.00940387s) | 1 (0.0111425s) | 1 (0.0138715s) | ||
| gmp_int | 13.2789 (0.00994121s) | 1.10899 (0.0104288s) | 1.05822 (0.0117912s) | 1.01821 (0.0141241s) | 1 (0.043807s) | 1 (0.0846612s) | 
| tommath_int | 382.992 (0.286726s) | 30.337 (0.285285s) | 29.1674 (0.324997s) | 31.5038 (0.437006s) | 10.9188 (0.478321s) | 15.7365 (1.33227s) | 
Table 1.47. Operator +
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 15.9318 (0.013332s) | 2.10124 (0.0143298s) | 2.20691 (0.0167551s) | 2.35301 (0.0233641s) | 1.33275 (0.0544877s) | 2.16492 (0.108428s) | 
| cpp_int(fixed) | 1 (0.000836815s) | 1 (0.00681969s) | 1.41379 (0.0107337s) | 2.07286 (0.0205823s) | ||
| gmp_int | 7.69219 (0.00643694s) | 1.1551 (0.00787741s) | 1 (0.00759213s) | 1 (0.00992945s) | 1.23736 (0.050588s) | 1 (0.0500843s) | 
| tommath_int | 8.11368 (0.00678965s) | 1.17124 (0.00798749s) | 1.38788 (0.0105369s) | 1.62714 (0.0161566s) | 1 (0.0408838s) | 1.74073 (0.0871834s) | 
Table 1.48. Operator +(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 12.8717 (0.00838402s) | 2.30046 (0.00932673s) | 2.45998 (0.00974958s) | 1.81876 (0.0103926s) | 1 (0.0217559s) | 1.1339 (0.0382453s) | 
| cpp_int(fixed) | 1 (0.000651354s) | 2.26453 (0.00918106s) | 2.24994 (0.00891717s) | 2.34592 (0.0134049s) | ||
| gmp_int | 5.64809 (0.00367891s) | 1 (0.00405429s) | 1 (0.00396328s) | 1 (0.00571412s) | 1.34135 (0.0291824s) | 1 (0.033729s) | 
| tommath_int | 163.863 (0.106733s) | 27.8217 (0.112797s) | 28.2173 (0.111833s) | 24.3745 (0.139279s) | 6.8073 (0.148099s) | 5.34674 (0.18034s) | 
Table 1.49. Operator +(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 10.1497 (0.00642975s) | 1.57663 (0.00645253s) | 1.42461 (0.00641131s) | 1.47836 (0.00821865s) | 1.25785 (0.0236995s) | 1.1786 (0.0416466s) | 
| cpp_int(fixed) | 1 (0.00063349s) | 2.25723 (0.00923798s) | 2.14091 (0.00963492s) | 2.49596 (0.0138758s) | ||
| gmp_int | 6.32948 (0.00400966s) | 1 (0.00409262s) | 1 (0.00450039s) | 1 (0.0055593s) | 1 (0.0188413s) | 1 (0.0353357s) | 
| tommath_int | 401.541 (0.254372s) | 67.4121 (0.275892s) | 62.2763 (0.280267s) | 53.4937 (0.297388s) | 16.2934 (0.306988s) | 10.8628 (0.383846s) | 
Table 1.50. Operator +=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 20.6678 (0.0119696s) | 1.49971 (0.0116516s) | 1.42955 (0.0113839s) | 1.45605 (0.0125775s) | 2.06272 (0.0473177s) | 1.40574 (0.0700083s) | 
| cpp_int(fixed) | 1 (0.000579142s) | 1 (0.00776928s) | 1 (0.00796329s) | 1 (0.00863808s) | ||
| gmp_int | 13.7619 (0.00797012s) | 1.0168 (0.00789978s) | 1.01968 (0.00812s) | 1.05837 (0.00914227s) | 1 (0.0229395s) | 1 (0.0498017s) | 
| tommath_int | 445.395 (0.257947s) | 35.5299 (0.276042s) | 34.9701 (0.278477s) | 64.4794 (0.556978s) | 14.0169 (0.32154s) | 17.3947 (0.866288s) | 
Table 1.51. Operator -
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 12.3892 (0.013267s) | 1.54334 (0.0143848s) | 1.75333 (0.0168786s) | 2.27597 (0.0248697s) | 1.33198 (0.0615975s) | 2.25424 (0.124313s) | 
| cpp_int(fixed) | 1 (0.00107085s) | 1 (0.00932056s) | 1.17586 (0.0113195s) | 1.94907 (0.0212976s) | ||
| gmp_int | 8.69616 (0.00931231s) | 1.01107 (0.00942373s) | 1 (0.00962656s) | 1 (0.0109271s) | 1 (0.0462452s) | 1 (0.0551462s) | 
| tommath_int | 11.546 (0.0123641s) | 1.60814 (0.0149887s) | 1.63067 (0.0156977s) | 1.69241 (0.018493s) | 1.13529 (0.0525017s) | 1.80318 (0.0994384s) | 
Table 1.52. Operator -(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 7.3164 (0.00718041s) | 1.97509 (0.00764735s) | 1.99047 (0.00793413s) | 1.70452 (0.00889396s) | 1 (0.0198067s) | 1.04883 (0.0351681s) | 
| cpp_int(fixed) | 1 (0.000981414s) | 2.01105 (0.00778659s) | 1.99052 (0.0079343s) | 2.35869 (0.0123073s) | ||
| gmp_int | 3.83069 (0.00375949s) | 1 (0.00387191s) | 1 (0.00398606s) | 1 (0.00521786s) | 1.56189 (0.0309358s) | 1 (0.0335308s) | 
| tommath_int | 115.787 (0.113635s) | 29.9688 (0.116037s) | 28.9647 (0.115455s) | 27.5319 (0.143658s) | 7.75868 (0.153674s) | 5.42319 (0.181844s) | 
Table 1.53. Operator -(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 7.7478 (0.00750847s) | 1.95546 (0.00771183s) | 1.80328 (0.00832029s) | 1.56695 (0.00851748s) | 1.11271 (0.0205857s) | 1.19378 (0.0402243s) | 
| cpp_int(fixed) | 1 (0.00096911s) | 2.13061 (0.00840261s) | 1.91132 (0.00881879s) | 2.37174 (0.0128921s) | ||
| gmp_int | 4.80618 (0.00465772s) | 1 (0.00394375s) | 1 (0.00461397s) | 1 (0.00543571s) | 1 (0.0185005s) | 1 (0.0336949s) | 
| tommath_int | 267.937 (0.259661s) | 71.5531 (0.282188s) | 60.4257 (0.278803s) | 53.979 (0.293414s) | 17.7584 (0.32854s) | 10.8218 (0.364638s) | 
Table 1.54. Operator -=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 16.3509 (0.0131613s) | 1.83102 (0.0134809s) | 1.68407 (0.0129795s) | 1.64352 (0.0140383s) | 2.37302 (0.051436s) | 1.47693 (0.0544701s) | 
| cpp_int(fixed) | 1 (0.000804926s) | 1 (0.00736247s) | 1 (0.00770724s) | 1 (0.0085416s) | ||
| gmp_int | 10.0648 (0.0081014s) | 1.09612 (0.00807013s) | 1.09758 (0.00845934s) | 1.10598 (0.00944683s) | 1 (0.0216753s) | 1 (0.0368808s) | 
| tommath_int | 319.944 (0.257531s) | 37.1214 (0.273305s) | 38.1176 (0.293781s) | 66.8689 (0.571167s) | 15.141 (0.328186s) | 22.6158 (0.834089s) | 
Table 1.55. Operator /
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 3.7053 (0.120457s) | 2.31282 (0.256283s) | 2.98148 (0.342198s) | 4.15769 (0.552845s) | 5.66579 (1.93033s) | 9.54675 (3.77425s) | 
| cpp_int(fixed) | 1 (0.0325094s) | 1.01212 (0.112153s) | 1.63455 (0.187605s) | 2.67551 (0.355761s) | ||
| gmp_int | 2.62651 (0.0853863s) | 1 (0.11081s) | 1 (0.114775s) | 1 (0.132969s) | 1 (0.340699s) | 1 (0.395344s) | 
| tommath_int | 30.2016 (0.981836s) | 10.7299 (1.18898s) | 12.8954 (1.48007s) | 16.5608 (2.20208s) | 25.7963 (8.78879s) | 53.4042 (21.113s) | 
Table 1.56. Operator /(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 5.43796 (0.0610196s) | 8.7229 (0.114124s) | 9.80894 (0.188141s) | 10.9464 (0.347422s) | 8.94304 (1.5446s) | 11.4148 (3.04214s) | 
| cpp_int(fixed) | 1.66282 (0.0186586s) | 5.28422 (0.0691348s) | 6.70321 (0.128571s) | 8.47034 (0.268837s) | ||
| gmp_int | 1 (0.0112211s) | 1 (0.0130833s) | 1 (0.0191805s) | 1 (0.0317386s) | 1 (0.172715s) | 1 (0.266509s) | 
| tommath_int | 65.6123 (0.736239s) | 74.4427 (0.973953s) | 64.7215 (1.24139s) | 60.0008 (1.90434s) | 47.3896 (8.18491s) | 73.3451 (19.5472s) | 
Table 1.57. Operator /(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 5.69361 (0.0679437s) | 8.63227 (0.118515s) | 10.4819 (0.19782s) | 11.652 (0.36737s) | 12.6501 (1.71211s) | 12.4658 (3.49901s) | 
| cpp_int(fixed) | 1.71873 (0.0205101s) | 5.54771 (0.0761662s) | 7.87722 (0.148664s) | 9.73978 (0.307082s) | ||
| gmp_int | 1 (0.0119333s) | 1 (0.0137293s) | 1 (0.0188726s) | 1 (0.0315286s) | 1 (0.135343s) | 1 (0.28069s) | 
| tommath_int | 70.3948 (0.840045s) | 73.9467 (1.01524s) | 78.9032 (1.48911s) | 74.5804 (2.35142s) | 69.6519 (9.42692s) | 104.536 (29.3423s) | 
Table 1.58. Operator /=(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 4.81054 (0.0787575s) | 8.57398 (0.16217s) | 10.886 (0.247055s) | 11.2718 (0.405759s) | 12.5937 (1.88874s) | 12.21 (3.63347s) | 
| cpp_int(fixed) | 1.20166 (0.0196733s) | 4.32475 (0.0817993s) | 6.58644 (0.149478s) | 8.32497 (0.29968s) | ||
| gmp_int | 1 (0.0163719s) | 1 (0.0189142s) | 1 (0.0226949s) | 1 (0.0359977s) | 1 (0.149975s) | 1 (0.297582s) | 
| tommath_int | 53.9084 (0.88258s) | 53.1273 (1.00486s) | 71.1404 (1.61452s) | 67.5031 (2.42996s) | 65.7108 (9.85499s) | 101.244 (30.1285s) | 
Table 1.59. Operator <<
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 19.177 (0.0162764s) | 2.61717 (0.0163378s) | 2.37674 (0.021464s) | 2.09019 (0.0286746s) | 2.56897 (0.164462s) | 2.63407 (0.258076s) | 
| cpp_int(fixed) | 1 (0.000848746s) | 1 (0.00624253s) | 1 (0.00903085s) | 1 (0.0137187s) | ||
| gmp_int | 13.6905 (0.0116198s) | 1.91174 (0.0119341s) | 1.66888 (0.0150714s) | 1.41131 (0.0193613s) | 1 (0.0640186s) | 1 (0.0979761s) | 
| tommath_int | 24.7233 (0.0209838s) | 4.59302 (0.028672s) | 3.68238 (0.033255s) | 2.98058 (0.0408897s) | 1.84398 (0.118049s) | 2.21298 (0.216819s) | 
Table 1.60. Operator >>
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 20.232 (0.0162325s) | 4.69783 (0.0157363s) | 4.50992 (0.0149173s) | 4.86912 (0.0162095s) | 13.239 (0.0539071s) | 12.1827 (0.0524954s) | 
| cpp_int(fixed) | 1 (0.000802316s) | 1.58991 (0.00532573s) | 2.13899 (0.00707508s) | 4.21178 (0.0140212s) | ||
| gmp_int | 4.29127 (0.00344295s) | 1 (0.0033497s) | 1 (0.00330767s) | 1 (0.00332904s) | 1 (0.00407185s) | 1 (0.00430902s) | 
| tommath_int | 67.6824 (0.0543026s) | 17.5897 (0.05892s) | 17.6963 (0.0585334s) | 17.7611 (0.0591272s) | 40.2804 (0.164016s) | 45.6107 (0.196537s) | 
Table 1.61. Operator ^
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 5.21469 (0.0176691s) | 1.76461 (0.0151583s) | 1.54944 (0.01576s) | 1.66733 (0.0166044s) | 2.67895 (0.0907825s) | 2.85374 (0.147776s) | 
| cpp_int(fixed) | 1 (0.00338833s) | 1.61335 (0.013859s) | 1.5785 (0.0160556s) | 1.8238 (0.0181626s) | ||
| gmp_int | 2.65843 (0.00900763s) | 1 (0.00859017s) | 1 (0.0101714s) | 1 (0.00995865s) | 1 (0.0338873s) | 1 (0.0517833s) | 
| tommath_int | 11.7662 (0.0398677s) | 4.97263 (0.0427158s) | 4.173 (0.0424452s) | 4.36742 (0.0434936s) | 1.87208 (0.0634399s) | 2.15704 (0.111699s) | 
Table 1.62. Operator ^(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 4.47727 (0.0154762s) | 1.1548 (0.0152722s) | 1.29522 (0.0149375s) | 1 (0.0152534s) | 1.16178 (0.062951s) | 1 (0.0542065s) | 
| cpp_int(fixed) | 1 (0.00345661s) | 1 (0.013225s) | 1 (0.0115328s) | 1.35474 (0.0206643s) | ||
| gmp_int | 9.96342 (0.0344397s) | 2.54169 (0.0336138s) | 3.0636 (0.0353319s) | 2.2878 (0.0348967s) | 1 (0.0541849s) | 1.14922 (0.0622954s) | 
| tommath_int | 39.5678 (0.136771s) | 11.1605 (0.147598s) | 12.3859 (0.142844s) | 9.57606 (0.146067s) | 3.32237 (0.180022s) | 3.89337 (0.211046s) | 
Table 1.63. Operator construct
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 2.70048 (0.00154337s) | 1 (0.00165673s) | 1 (0.00160871s) | 1 (0.00172862s) | 1 (0.00156009s) | 1 (0.00174205s) | 
| cpp_int(fixed) | 1 (0.000571519s) | 1.23543 (0.00204677s) | 1.9796 (0.00318462s) | 4.48025 (0.00774465s) | ||
| gmp_int | 85.6322 (0.0489404s) | 29.2571 (0.0484711s) | 30.662 (0.0493265s) | 27.83 (0.0481075s) | 40.363 (0.0629698s) | 27.9451 (0.048682s) | 
| tommath_int | 201.724 (0.115289s) | 58.7441 (0.0973229s) | 52.7386 (0.0848414s) | 44.5608 (0.0770287s) | 50.8452 (0.079323s) | 47.1258 (0.0820957s) | 
Table 1.64. Operator construct(unsigned long long)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 2.39475 (0.00192516s) | 1 (0.00189599s) | 1 (0.00183399s) | 1 (0.00196715s) | 1 (0.00191441s) | 1 (0.0018252s) | 
| cpp_int(fixed) | 1 (0.000803908s) | 1.19809 (0.00227157s) | 1.88086 (0.00344948s) | 3.8843 (0.007641s) | ||
| gmp_int | 65.7819 (0.0528826s) | 27.1474 (0.0514712s) | 29.3096 (0.0537536s) | 26.2945 (0.0517252s) | 72.2795 (0.138372s) | 27.9893 (0.0510862s) | 
| tommath_int | 434.327 (0.349159s) | 188.668 (0.357713s) | 186.415 (0.341884s) | 173.347 (0.341s) | 183.361 (0.351027s) | 175.369 (0.320084s) | 
Table 1.65. Operator construct(unsigned)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 2.14911 (0.00163907s) | 1 (0.00163286s) | 1 (0.00171255s) | 1 (0.0017176s) | 1 (0.00167292s) | 1 (0.00156985s) | 
| cpp_int(fixed) | 1 (0.000762672s) | 1.36862 (0.00223478s) | 2.03741 (0.00348916s) | 4.53966 (0.00779734s) | ||
| gmp_int | 68.2442 (0.0520479s) | 31.4026 (0.0512762s) | 30.7091 (0.0525909s) | 30.032 (0.0515831s) | 41.5223 (0.0694635s) | 32.5392 (0.0510816s) | 
| tommath_int | 331.014 (0.252455s) | 151.468 (0.247326s) | 132.724 (0.227296s) | 128.015 (0.219878s) | 131.833 (0.220546s) | 143.372 (0.225072s) | 
Table 1.66. Operator gcd
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 2.07031 (0.395833s) | 3.50598 (2.95518s) | 4.44198 (8.63567s) | 5.59809 (22.6997s) | 9.49572 (269.4s) | 15.722 (962.995s) | 
| cpp_int(fixed) | 3.47569 (0.664533s) | 1.70521 (1.43732s) | 2.31892 (4.50823s) | 3.55661 (14.4217s) | ||
| gmp_int | 1 (0.191195s) | 1 (0.842898s) | 1 (1.9441s) | 1 (4.0549s) | 1 (28.3707s) | 1 (61.2516s) | 
| tommath_int | 10.8111 (2.06703s) | 5.12095 (4.31644s) | 4.59174 (8.92681s) | 5.01043 (20.3168s) | 7.52621 (213.524s) | 12.3495 (756.428s) | 
Table 1.67. Operator powm
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 
|---|---|---|---|---|
| cpp_int | 10.6592 (0.802191s) | 13.9407 (2.61537s) | 12.912 (10.4205s) | 10.8568 (51.2302s) | 
| cpp_int(fixed) | 5.82971 (0.438734s) | 8.89247 (1.66829s) | 9.93013 (8.01404s) | 8.83073 (41.6696s) | 
| gmp_int | 1 (0.0752583s) | 1 (0.187607s) | 1 (0.807043s) | 1 (4.7187s) | 
| tommath_int | 6.1085 (0.459715s) | 5.83038 (1.09382s) | 3.80545 (3.07116s) | 3.02859 (14.291s) | 
Table 1.68. Operator str
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 1.92305 (0.000421266s) | 3.20633 (0.000851021s) | 3.65142 (0.00169768s) | 5.16642 (0.00504001s) | 11.2543 (0.0811042s) | 20.2913 (0.313789s) | 
| cpp_int(fixed) | 5.11756 (0.00112106s) | 1.92296 (0.00051039s) | 2.45213 (0.00114008s) | 3.72073 (0.00362969s) | ||
| gmp_int | 1 (0.000219061s) | 1 (0.000265419s) | 1 (0.000464936s) | 1 (0.000975531s) | 1 (0.00720651s) | 1 (0.0154642s) | 
| tommath_int | 21.587 (0.00472888s) | 39.7234 (0.0105433s) | 55.2128 (0.0256704s) | 81.4207 (0.0794284s) | 169.04 (1.21819s) | 302.626 (4.67986s) | 
Table 1.69. Operator |
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 5.25873 (0.0172824s) | 1.96305 (0.0151621s) | 1.75036 (0.015208s) | 1.87423 (0.017812s) | 2.78566 (0.0913325s) | 2.88264 (0.14832s) | 
| cpp_int(fixed) | 1 (0.00328643s) | 1.45652 (0.0112498s) | 1.45925 (0.0126787s) | 1.95487 (0.0185784s) | ||
| gmp_int | 2.49444 (0.00819781s) | 1 (0.00772371s) | 1 (0.00868852s) | 1 (0.00950363s) | 1 (0.0327866s) | 1 (0.0514528s) | 
| tommath_int | 11.7763 (0.038702s) | 5.50066 (0.0424855s) | 4.90757 (0.0426395s) | 4.5757 (0.0434857s) | 1.88223 (0.061712s) | 2.0004 (0.102926s) | 
Table 1.70. Operator |(int)
| Backend | 128 Bits | 256 Bits | 512 Bits | 1024 Bits | 5120 Bits | 10240 Bits | 
|---|---|---|---|---|---|---|
| cpp_int | 4.53358 (0.0155813s) | 1.37758 (0.015007s) | 1.27482 (0.0145389s) | 1 (0.0155149s) | 1.17798 (0.0620504s) | 1 (0.0526689s) | 
| cpp_int(fixed) | 1 (0.00343686s) | 1 (0.0108938s) | 1 (0.0114047s) | 1.3214 (0.0205014s) | ||
| gmp_int | 9.60058 (0.0329958s) | 3.00706 (0.0327581s) | 3.05453 (0.034836s) | 2.20715 (0.0342437s) | 1 (0.0526751s) | 1.17671 (0.0619762s) | 
| tommath_int | 39.7055 (0.136462s) | 13.0365 (0.142016s) | 14.0596 (0.160345s) | 9.31086 (0.144457s) | 3.38341 (0.178221s) | 3.81403 (0.200881s) | 
Table 1.71. 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 |