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.43. Operator %
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
1.51155 (0.0481508s) |
1.60666 (0.0825917s) |
1.75956 (0.127209s) |
1.87154 (0.171986s) |
2.58143 (0.368469s) |
1 (0.512768s) |
1.42429 (1.03083s) |
1 (1.96988s) |
cpp_int(fixed) |
1 (0.0318553s) |
1.2913 (0.0663805s) |
1.33672 (0.0966394s) |
1.97924 (0.181883s) |
||||
gmp_int |
1.4659 (0.0466966s) |
1 (0.0514059s) |
1 (0.0722958s) |
1 (0.0918952s) |
1 (0.142738s) |
1 (0.24073s) |
1.17701 (0.603534s) |
1 (0.723753s) |
tommath_int |
27.46 (0.874748s) |
20.1749 (1.03711s) |
17.9774 (1.29969s) |
19.0867 (1.75398s) |
23.3789 (3.33706s) |
26.6546 (6.41658s) |
33.4553 (17.1548s) |
70.788 (51.233s) |
Table 1.44. Operator %(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
1 (0.00790481s) |
1.45288 (0.0215141s) |
2.71488 (0.065874s) |
4.05695 (0.1044s) |
6.59285 (0.288068s) |
3.58045 (0.429244s) |
6.18417 (0.851447s) |
1 (1.57951s) |
cpp_int(fixed) |
2.18748 (0.0172916s) |
1.67119 (0.0247468s) |
2.83861 (0.0688759s) |
4.3186 (0.111133s) |
||||
gmp_int |
1.50165 (0.0118703s) |
1 (0.0148079s) |
1 (0.024264s) |
1 (0.0257336s) |
1 (0.0436939s) |
1 (0.0571251s) |
1 (0.119886s) |
1 (0.137682s) |
tommath_int |
68.9623 (0.545134s) |
54.52 (0.807325s) |
38.3573 (0.930702s) |
53.0833 (1.36603s) |
59.6958 (2.60834s) |
103.597 (5.91797s) |
133.648 (16.0225s) |
392.812 (54.083s) |
Table 1.45. Operator &
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.82137 (0.0101034s) |
3.08842 (0.0128886s) |
3.46566 (0.018172s) |
2.55025 (0.0204051s) |
2.97241 (0.0461406s) |
1 (0.0440714s) |
1 (0.0811524s) |
1 (0.146531s) |
cpp_int(fixed) |
1 (0.00358104s) |
1.5374 (0.00641591s) |
1.70378 (0.0089337s) |
2.40825 (0.019269s) |
||||
gmp_int |
1.10071 (0.00394167s) |
1 (0.00417321s) |
1 (0.00524347s) |
1 (0.00800121s) |
1 (0.015523s) |
1.04806 (0.0384586s) |
2.0133 (0.0887291s) |
1.38531 (0.112421s) |
tommath_int |
2.18066 (0.00780901s) |
2.22528 (0.00928657s) |
2.15567 (0.0113032s) |
3.05906 (0.0244762s) |
2.34741 (0.0364387s) |
1.50551 (0.0552444s) |
2.29355 (0.10108s) |
3.0313 (0.245997s) |
Table 1.46. Operator &(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
3.24695 (0.0124861s) |
1.81002 (0.0114113s) |
2.11984 (0.0179186s) |
2.56949 (0.0262296s) |
3.62157 (0.063826s) |
3.95427 (0.0593859s) |
4.84754 (0.102968s) |
1 (0.168385s) |
cpp_int(fixed) |
1 (0.0038455s) |
1 (0.00630453s) |
1 (0.00845281s) |
2.20848 (0.0225444s) |
||||
gmp_int |
3.87448 (0.0148993s) |
1.50343 (0.00947844s) |
1.59793 (0.013507s) |
1 (0.0102081s) |
1 (0.0176239s) |
1 (0.0121449s) |
1 (0.0150182s) |
1 (0.0212413s) |
tommath_int |
25.1094 (0.0965583s) |
15.7147 (0.0990734s) |
9.65097 (0.0815778s) |
8.5208 (0.0869813s) |
5.74798 (0.101302s) |
10.598 (0.128712s) |
12.0534 (0.18102s) |
13.0183 (0.276527s) |
Table 1.47. Operator *
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
12.4201 (0.0145016s) |
1.838 (0.0246772s) |
2.10406 (0.0631704s) |
2.22846 (0.224062s) |
2.53789 (0.918685s) |
1 (2.65154s) |
1 (7.83314s) |
1 (26.1836s) |
cpp_int(fixed) |
1 (0.00116759s) |
1.76789 (0.0237359s) |
1.58515 (0.047591s) |
1.52628 (0.153461s) |
||||
gmp_int |
4.80091 (0.00560549s) |
1 (0.0134261s) |
1 (0.0300231s) |
1 (0.100546s) |
1 (0.361988s) |
1 (1.11701s) |
2.08347 (5.52441s) |
1.44767 (11.3398s) |
tommath_int |
16.9604 (0.0198027s) |
2.43157 (0.0326465s) |
2.82213 (0.0847288s) |
1.67653 (0.168568s) |
1.27293 (0.460786s) |
1.41678 (1.58255s) |
2.69181 (7.13744s) |
3.30421 (25.8824s) |
Table 1.48. Operator *(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
10.9781 (0.0072726s) |
1.52901 (0.00991594s) |
3.35266 (0.0194072s) |
2.30215 (0.0214459s) |
1.95214 (0.047049s) |
1 (0.0576663s) |
1 (0.0955853s) |
1 (0.167493s) |
cpp_int(fixed) |
1 (0.000662467s) |
1 (0.00648519s) |
1.52643 (0.0088359s) |
2.26708 (0.0211192s) |
||||
gmp_int |
7.14641 (0.00473426s) |
1.74133 (0.0112929s) |
1 (0.00578859s) |
1 (0.00931559s) |
1 (0.0241013s) |
1.12075 (0.0477494s) |
1.96831 (0.113505s) |
1.44107 (0.137745s) |
tommath_int |
156.154 (0.103447s) |
14.5292 (0.0942242s) |
16.82 (0.0973642s) |
11.9029 (0.110883s) |
5.61803 (0.135402s) |
4.61241 (0.196512s) |
5.30415 (0.30587s) |
5.73424 (0.548109s) |
Table 1.49. Operator *(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
8.98335 (0.00669928s) |
1.79861 (0.00820918s) |
1.86924 (0.0119122s) |
1.71773 (0.0175683s) |
2.57826 (0.0539343s) |
1 (0.0432066s) |
1 (0.0813634s) |
1 (0.159452s) |
cpp_int(fixed) |
1 (0.000745744s) |
1.07211 (0.00489332s) |
1.19888 (0.00764018s) |
1.53618 (0.0157115s) |
||||
gmp_int |
4.97741 (0.00371188s) |
1 (0.00456418s) |
1 (0.00637276s) |
1 (0.0102277s) |
1 (0.0209189s) |
1 (0.0321931s) |
2.05197 (0.0886586s) |
1.59261 (0.12958s) |
tommath_int |
143.938 (0.107341s) |
24.0751 (0.109883s) |
16.9325 (0.107907s) |
11.5473 (0.118102s) |
8.08283 (0.169084s) |
6.84808 (0.220461s) |
8.37134 (0.361697s) |
8.20104 (0.667264s) |
Table 1.50. Operator *=(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
15.7803 (0.0131299s) |
1.67116 (0.00790233s) |
1.66661 (0.0119079s) |
1.51408 (0.0203561s) |
1.23815 (0.0373067s) |
1 (0.0424701s) |
1 (0.0946934s) |
1 (0.177219s) |
cpp_int(fixed) |
1 (0.000832044s) |
1 (0.00472864s) |
1 (0.00714494s) |
1 (0.0134446s) |
||||
gmp_int |
6.73473 (0.00560359s) |
1.81651 (0.00858963s) |
1.36813 (0.00977523s) |
1.00404 (0.0134989s) |
1 (0.0301309s) |
1 (0.0457849s) |
2.56449 (0.108914s) |
2.20384 (0.208689s) |
tommath_int |
115.266 (0.0959064s) |
24.7701 (0.117129s) |
15.9941 (0.114277s) |
11.3798 (0.152996s) |
5.69861 (0.171704s) |
5.47882 (0.250847s) |
10.6875 (0.453899s) |
7.29439 (0.690731s) |
Table 1.51. Operator +
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
9.80738 (0.0086037s) |
2.34204 (0.0160922s) |
1.00627 (0.0131305s) |
1.67865 (0.0163002s) |
1.88916 (0.033949s) |
1 (0.0412289s) |
1 (0.083134s) |
1 (0.190174s) |
cpp_int(fixed) |
1 (0.000877268s) |
1 (0.00687102s) |
1.82016 (0.0237507s) |
1.90391 (0.0184876s) |
||||
gmp_int |
5.87168 (0.00515104s) |
1.45191 (0.00997612s) |
1 (0.0130487s) |
1 (0.00971031s) |
1 (0.0179704s) |
1 (0.0300729s) |
1.96754 (0.0811195s) |
1.62045 (0.134715s) |
tommath_int |
13.6707 (0.0119929s) |
1.03266 (0.00709542s) |
1.02249 (0.0133422s) |
1.4749 (0.0143218s) |
1.17551 (0.0211244s) |
1.08462 (0.0326177s) |
1.47125 (0.060658s) |
2.75813 (0.229295s) |
Table 1.52. Operator +(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
7.65014 (0.00534018s) |
1.8992 (0.0063589s) |
1.56778 (0.00666443s) |
1.29719 (0.00836612s) |
1.73231 (0.0204874s) |
1 (0.0198385s) |
1 (0.0338486s) |
1 (0.0760202s) |
cpp_int(fixed) |
1 (0.000698051s) |
1.72665 (0.00578118s) |
1.57164 (0.00668085s) |
1.90796 (0.0123052s) |
||||
gmp_int |
4.97679 (0.00347405s) |
1 (0.0033482s) |
1 (0.00425087s) |
1 (0.0064494s) |
1 (0.0118266s) |
1 (0.0195694s) |
3.53343 (0.0700979s) |
2.28146 (0.0772241s) |
tommath_int |
127.407 (0.0889366s) |
24.8716 (0.0832749s) |
20.4864 (0.0870848s) |
12.5462 (0.0809152s) |
7.07209 (0.083639s) |
4.79434 (0.0938225s) |
5.93694 (0.11778s) |
5.20775 (0.176275s) |
Table 1.53. Operator +(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
9.92952 (0.00893714s) |
2.68575 (0.0136811s) |
1.73024 (0.0102989s) |
1.43961 (0.0115471s) |
1.46556 (0.0237404s) |
1 (0.0253811s) |
1 (0.0350422s) |
1 (0.0761856s) |
cpp_int(fixed) |
1 (0.000900057s) |
1.27396 (0.00648945s) |
1.38787 (0.008261s) |
1.56798 (0.0125768s) |
||||
gmp_int |
5.22669 (0.00470432s) |
1 (0.00509394s) |
1 (0.00595229s) |
1 (0.00802101s) |
1 (0.0161988s) |
1 (0.0174726s) |
1.83602 (0.0466003s) |
1.90731 (0.0668364s) |
tommath_int |
100.859 (0.0907784s) |
19.2654 (0.0981367s) |
14.4537 (0.0860324s) |
10.0594 (0.0806864s) |
5.71755 (0.0926177s) |
6.23483 (0.108939s) |
4.63528 (0.117648s) |
5.01743 (0.175822s) |
Table 1.54. Operator +=(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
12.2366 (0.0106404s) |
1.48157 (0.00996803s) |
1.58862 (0.0108279s) |
2.06658 (0.0131949s) |
1.1631 (0.0186902s) |
1 (0.0218483s) |
1 (0.0394761s) |
1 (0.0783171s) |
cpp_int(fixed) |
1 (0.000869555s) |
1.34779 (0.00906799s) |
1 (0.00681593s) |
1 (0.00638493s) |
||||
gmp_int |
11.3522 (0.00987134s) |
1 (0.00672804s) |
1.27495 (0.00868995s) |
2.42237 (0.0154667s) |
1 (0.0160693s) |
1.09672 (0.0221405s) |
2.61199 (0.0570676s) |
2.13093 (0.0841208s) |
tommath_int |
88.4252 (0.0768906s) |
14.139 (0.0951277s) |
11.6282 (0.0792569s) |
14.5551 (0.0929332s) |
6.86867 (0.110375s) |
5.67471 (0.11456s) |
7.29502 (0.159384s) |
5.733 (0.226317s) |
Table 1.55. Operator -
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
4.45457 (0.00859678s) |
1.28478 (0.013219s) |
1.27873 (0.0117779s) |
1.43649 (0.0151597s) |
2.82516 (0.0507822s) |
1 (0.0463464s) |
1 (0.0813138s) |
1 (0.191562s) |
cpp_int(fixed) |
1 (0.00192988s) |
1 (0.010289s) |
1 (0.00921062s) |
1.5372 (0.0162226s) |
||||
gmp_int |
3.4436 (0.00664573s) |
1.25045 (0.0128659s) |
1.10953 (0.0102195s) |
1 (0.0105533s) |
1 (0.017975s) |
1 (0.0321962s) |
2.54862 (0.11812s) |
1.83623 (0.14931s) |
tommath_int |
9.3224 (0.0179911s) |
1.08796 (0.011194s) |
1.93265 (0.017801s) |
1.82306 (0.0192393s) |
1.55663 (0.0279804s) |
1.6544 (0.0532653s) |
1.90928 (0.0884881s) |
4.41259 (0.358805s) |
Table 1.56. Operator -(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
3.07164 (0.00347144s) |
1.38957 (0.00531251s) |
1.29053 (0.00548206s) |
1.35239 (0.00759591s) |
1.50007 (0.0176467s) |
1 (0.0209158s) |
1 (0.0402632s) |
1 (0.0674681s) |
cpp_int(fixed) |
1 (0.00113016s) |
1.26281 (0.00482789s) |
1.25074 (0.00531307s) |
3.3923 (0.0190533s) |
||||
gmp_int |
3.22069 (0.00363988s) |
1 (0.00382312s) |
1 (0.00424793s) |
1 (0.00561665s) |
1 (0.0117639s) |
1 (0.0225873s) |
2.75829 (0.0576919s) |
2.03214 (0.0818204s) |
tommath_int |
81.1433 (0.0917047s) |
21.4543 (0.0820224s) |
19.3098 (0.0820267s) |
16.2994 (0.0915478s) |
7.23608 (0.0851246s) |
4.48441 (0.101291s) |
5.51882 (0.115431s) |
4.44737 (0.179066s) |
Table 1.57. Operator -(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
7.02787 (0.00807189s) |
1.85949 (0.00922027s) |
1.40179 (0.00830959s) |
1.22546 (0.00988039s) |
1.27526 (0.0235442s) |
1 (0.0242017s) |
1 (0.0317445s) |
1 (0.0783054s) |
cpp_int(fixed) |
1 (0.00114855s) |
1.03947 (0.00515424s) |
1.22566 (0.00726552s) |
1.56568 (0.0126235s) |
||||
gmp_int |
7.54669 (0.00866778s) |
1 (0.0049585s) |
1 (0.00592785s) |
1 (0.00806262s) |
1 (0.0184622s) |
1 (0.0220616s) |
1.79985 (0.0435595s) |
2.08427 (0.0661641s) |
tommath_int |
72.1332 (0.0828488s) |
18.985 (0.0941371s) |
13.9301 (0.0825755s) |
9.93889 (0.0801335s) |
5.42256 (0.100113s) |
4.58437 (0.101139s) |
4.91664 (0.118991s) |
5.5407 (0.175887s) |
Table 1.58. Operator -=(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
10.8565 (0.0103583s) |
2.00541 (0.0102937s) |
1.73348 (0.0103591s) |
2.53718 (0.0189898s) |
1.21308 (0.0265754s) |
1 (0.0249248s) |
1 (0.0377524s) |
1 (0.070851s) |
cpp_int(fixed) |
1 (0.000954108s) |
1 (0.00513296s) |
1 (0.00597589s) |
1 (0.00748462s) |
||||
gmp_int |
6.6602 (0.00635455s) |
1.61345 (0.00828179s) |
1.41745 (0.00847054s) |
1.41728 (0.0106078s) |
1 (0.0219074s) |
1 (0.0250737s) |
2.12439 (0.05295s) |
2.51074 (0.0947863s) |
tommath_int |
88.858 (0.0847801s) |
18.6448 (0.0957029s) |
13.7283 (0.0820388s) |
13.4423 (0.100611s) |
4.83335 (0.105886s) |
4.6829 (0.117418s) |
7.59449 (0.189292s) |
5.86189 (0.2213s) |
Table 1.59. Operator /
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
3.20876 (0.0878919s) |
3.17469 (0.181536s) |
3.14517 (0.250544s) |
4.14655 (0.365546s) |
4.70812 (0.702366s) |
2.28619 (1.18106s) |
3.54663 (2.26453s) |
1 (4.52755s) |
cpp_int(fixed) |
1 (0.0273912s) |
1.72404 (0.098585s) |
2.12584 (0.169344s) |
3.71442 (0.327451s) |
||||
gmp_int |
1.70383 (0.04667s) |
1 (0.0571824s) |
1 (0.0796599s) |
1 (0.0881567s) |
1 (0.149182s) |
1 (0.208719s) |
1 (0.516606s) |
1 (0.638503s) |
tommath_int |
40.8044 (1.11768s) |
17.2975 (0.989116s) |
17.4097 (1.38686s) |
20.9668 (1.84837s) |
20.6415 (3.07934s) |
31.5839 (6.59216s) |
33.0087 (17.0525s) |
81.0894 (51.7759s) |
Table 1.60. Operator /(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
4.50037 (0.0520677s) |
6.30243 (0.108097s) |
8.34437 (0.193637s) |
7.02879 (0.296939s) |
6.47793 (0.630264s) |
2.64044 (1.08346s) |
3.92627 (2.33772s) |
1 (4.22641s) |
cpp_int(fixed) |
1.27227 (0.0147198s) |
4.34067 (0.0744498s) |
6.08699 (0.141253s) |
6.56549 (0.277366s) |
||||
gmp_int |
1 (0.0115696s) |
1 (0.0171517s) |
1 (0.0232057s) |
1 (0.0422461s) |
1 (0.0972941s) |
1 (0.156597s) |
1 (0.410334s) |
1 (0.595404s) |
tommath_int |
60.4712 (0.69963s) |
44.8464 (0.769191s) |
40.4334 (0.938285s) |
35.0752 (1.48179s) |
26.8178 (2.60921s) |
37.2616 (5.83504s) |
37.7146 (15.4756s) |
84.1326 (50.0929s) |
Table 1.61. Operator /(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
6.09203 (0.0582351s) |
6.42997 (0.0982056s) |
6.2137 (0.151642s) |
6.62408 (0.281298s) |
9.30105 (0.706562s) |
3.66307 (1.0584s) |
4.10257 (2.14867s) |
1 (4.2547s) |
cpp_int(fixed) |
1.76794 (0.0169001s) |
3.59379 (0.0548884s) |
5.55499 (0.135566s) |
6.36274 (0.2702s) |
||||
gmp_int |
1 (0.00955921s) |
1 (0.0152731s) |
1 (0.0244044s) |
1 (0.042466s) |
1 (0.0759658s) |
1 (0.125208s) |
1 (0.288938s) |
1 (0.523737s) |
tommath_int |
63.2738 (0.604848s) |
57.3767 (0.876321s) |
43.9301 (1.07209s) |
40.0122 (1.69916s) |
41.1147 (3.12331s) |
57.9739 (7.25882s) |
68.6676 (19.8407s) |
109.312 (57.2509s) |
Table 1.62. Operator /=(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
5.21402 (0.0701172s) |
4.76442 (0.105309s) |
5.1245 (0.171387s) |
7.39587 (0.299993s) |
6.88568 (0.632889s) |
3.2993 (1.05399s) |
3.52936 (2.14442s) |
1 (4.37618s) |
cpp_int(fixed) |
1.68246 (0.0226255s) |
3.12633 (0.0691018s) |
3.98733 (0.133354s) |
6.62903 (0.268888s) |
||||
gmp_int |
1 (0.0134478s) |
1 (0.0221032s) |
1 (0.0334445s) |
1 (0.0405622s) |
1 (0.0919138s) |
1 (0.14699s) |
1 (0.319457s) |
1 (0.607595s) |
tommath_int |
46.0731 (0.619583s) |
43.6571 (0.964961s) |
30.1861 (1.00956s) |
41.4936 (1.68307s) |
32.6785 (3.0036s) |
48.2935 (7.09868s) |
64.9093 (20.7357s) |
111.801 (67.9296s) |
Table 1.63. Operator <<
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
9.93178 (0.0116142s) |
1.74005 (0.0147029s) |
2.68859 (0.0238748s) |
2.04419 (0.0394659s) |
2.15112 (0.0859331s) |
1 (0.0889652s) |
1 (0.190562s) |
1 (0.32803s) |
cpp_int(fixed) |
1 (0.00116939s) |
1 (0.00844969s) |
1.94851 (0.0173029s) |
1.55242 (0.0299716s) |
||||
gmp_int |
4.60815 (0.00538874s) |
1.02939 (0.00869801s) |
1 (0.00888006s) |
1 (0.0193064s) |
1 (0.039948s) |
1 (0.0597248s) |
1.65224 (0.146992s) |
1.08567 (0.206887s) |
tommath_int |
10.7935 (0.0126218s) |
2.38166 (0.0201243s) |
2.42444 (0.0215291s) |
1.87488 (0.0361972s) |
1.73489 (0.0693055s) |
1.93177 (0.115375s) |
2.49667 (0.222116s) |
2.82346 (0.538044s) |
Table 1.64. Operator >>
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
12.5304 (0.011709s) |
6.85524 (0.0153366s) |
8.77866 (0.0209131s) |
3.21549 (0.0146098s) |
4.04361 (0.0183489s) |
3.04276 (0.0219967s) |
8.19636 (0.0537598s) |
1 (0.0745484s) |
cpp_int(fixed) |
1 (0.000934446s) |
6.55349 (0.0146615s) |
6.51353 (0.0155169s) |
4.90631 (0.0222922s) |
||||
gmp_int |
2.59712 (0.00242687s) |
1 (0.0022372s) |
1 (0.00238226s) |
1 (0.00454358s) |
1 (0.00453774s) |
1 (0.00313265s) |
1 (0.00722919s) |
1 (0.00655899s) |
tommath_int |
102.662 (0.0959319s) |
42.5337 (0.0951565s) |
39.1437 (0.0932504s) |
21.0397 (0.0955953s) |
29.6104 (0.134364s) |
62.7092 (0.196446s) |
49.6167 (0.358689s) |
137.105 (0.899272s) |
Table 1.65. Operator ^
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.8103 (0.0101384s) |
4.11932 (0.0282768s) |
2.25923 (0.0139063s) |
1.94172 (0.0187085s) |
1.66067 (0.0405646s) |
1 (0.0369865s) |
1 (0.0918676s) |
1 (0.150955s) |
cpp_int(fixed) |
1 (0.00360758s) |
1 (0.00686442s) |
1.50683 (0.00927498s) |
1.79076 (0.0172541s) |
||||
gmp_int |
1.35398 (0.0048846s) |
1.00969 (0.00693092s) |
1 (0.00615531s) |
1 (0.00963503s) |
1 (0.0244266s) |
1 (0.0429561s) |
2.17737 (0.0805332s) |
1.3521 (0.124214s) |
tommath_int |
2.28701 (0.00825059s) |
1.65996 (0.0113947s) |
2.06089 (0.0126854s) |
2.03244 (0.0195826s) |
1.4173 (0.0346198s) |
1.32237 (0.0568037s) |
2.69468 (0.0996668s) |
2.55626 (0.234837s) |
Table 1.66. Operator ^(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.67312 (0.00991885s) |
1.57246 (0.0115174s) |
2.50193 (0.0198209s) |
1 (0.0153479s) |
1 (0.0264078s) |
1 (0.0235546s) |
1 (0.0392727s) |
1 (0.0657809s) |
cpp_int(fixed) |
1 (0.00371059s) |
1 (0.0073244s) |
1 (0.00792226s) |
1.04763 (0.0160789s) |
||||
gmp_int |
2.86377 (0.0106263s) |
2.18619 (0.0160125s) |
2.18777 (0.0173321s) |
1.01844 (0.0156309s) |
1.13176 (0.0298873s) |
1.9665 (0.0406408s) |
3.34613 (0.0788165s) |
3.54952 (0.139399s) |
tommath_int |
26.101 (0.0968501s) |
14.6444 (0.107261s) |
10.0538 (0.079649s) |
5.64392 (0.0866224s) |
3.8806 (0.102478s) |
6.36386 (0.131519s) |
8.07216 (0.190136s) |
8.01428 (0.314742s) |
Table 1.67. Operator construct
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
3.24638 (0.00190752s) |
1.06172 (0.00258002s) |
1 (0.00248269s) |
1 (0.00191598s) |
1 (0.00273948s) |
1 (0.0017072s) |
1 (0.00191549s) |
1 (0.0016635s) |
cpp_int(fixed) |
1 (0.000587582s) |
1 (0.00243004s) |
1.51116 (0.00375174s) |
4.66482 (0.00893771s) |
||||
gmp_int |
5.61558 (0.00329962s) |
1.52898 (0.0037155s) |
2.51713 (0.00624925s) |
1.755 (0.00336255s) |
1.40183 (0.00384029s) |
1.60131 (0.00385483s) |
4.7818 (0.0081635s) |
2.07779 (0.00397999s) |
tommath_int |
251.1 (0.147542s) |
63.6186 (0.154596s) |
54.6947 (0.13579s) |
66.8839 (0.128148s) |
47.8098 (0.130974s) |
54.8252 (0.13198s) |
74.1436 (0.126578s) |
83.945 (0.160796s) |
Table 1.68. Operator construct(unsigned long long)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.12644 (0.00192028s) |
1 (0.00200418s) |
1 (0.00223886s) |
1 (0.00189442s) |
1 (0.00190833s) |
1 (0.00199036s) |
1 (0.00200998s) |
1 (0.00168004s) |
cpp_int(fixed) |
1 (0.000903049s) |
1.26395 (0.00253319s) |
1.78621 (0.00399907s) |
5.10701 (0.0096748s) |
||||
gmp_int |
27.1389 (0.0245077s) |
10.3593 (0.020762s) |
9.02272 (0.0202006s) |
9.96334 (0.0188747s) |
15.2262 (0.0290565s) |
8.50239 (0.0244927s) |
35.6564 (0.0709692s) |
10.9129 (0.0219346s) |
tommath_int |
183.484 (0.165695s) |
83.0709 (0.166489s) |
69.5984 (0.155821s) |
75.8903 (0.143768s) |
85.5979 (0.163349s) |
50.8174 (0.146389s) |
70.0602 (0.139445s) |
95.4952 (0.191943s) |
Table 1.69. Operator construct(unsigned)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.00349 (0.00174712s) |
1 (0.00225895s) |
1 (0.00241092s) |
1 (0.00177047s) |
1 (0.00304865s) |
1 (0.0018378s) |
1 (0.0017583s) |
1 (0.00197229s) |
cpp_int(fixed) |
1 (0.000872038s) |
1.1805 (0.0026667s) |
1.66167 (0.00400614s) |
5.54475 (0.00981681s) |
||||
gmp_int |
27.6419 (0.0241048s) |
10.0723 (0.0227529s) |
7.60577 (0.0183369s) |
10.2725 (0.0181871s) |
9.38419 (0.0286091s) |
9.10394 (0.0220052s) |
34.6032 (0.0635939s) |
15.7134 (0.0276289s) |
tommath_int |
207.462 (0.180915s) |
84.5379 (0.190967s) |
65.2109 (0.157218s) |
84.8572 (0.150237s) |
47.0682 (0.143494s) |
59.4466 (0.143689s) |
78.5549 (0.144368s) |
103.519 (0.182018s) |
Table 1.70. Operator gcd
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.10743 (0.358587s) |
1.8778 (1.42989s) |
2.03859 (3.30534s) |
2.01435 (7.01715s) |
2.16957 (17.7583s) |
1 (32.2572s) |
1 (76.6459s) |
1 (201.791s) |
cpp_int(fixed) |
3.65486 (0.621889s) |
1.78424 (1.35865s) |
2.02664 (3.28597s) |
1.95328 (6.8044s) |
||||
gmp_int |
1 (0.170154s) |
1 (0.761472s) |
1 (1.62139s) |
1 (3.48358s) |
1 (8.18516s) |
1 (18.7879s) |
1.82325 (58.8129s) |
1.59356 (122.14s) |
tommath_int |
8.01966 (1.36458s) |
4.44226 (3.38266s) |
4.55056 (7.37824s) |
4.42983 (15.4317s) |
5.23788 (42.8729s) |
7.25799 (136.362s) |
14.6265 (471.81s) |
23.1025 (1770.72s) |
Table 1.71. Operator powm
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
---|---|---|---|---|
cpp_int |
14.8198 (0.565871s) |
13.2096 (2.0199s) |
11.8233 (9.06469s) |
9.12533 (46.9932s) |
cpp_int(fixed) |
9.40069 (0.35895s) |
10.0395 (1.53516s) |
10.5353 (8.07714s) |
8.49678 (43.7564s) |
gmp_int |
1 (0.0381833s) |
1 (0.152912s) |
1 (0.766677s) |
1 (5.14976s) |
tommath_int |
11.0485 (0.421869s) |
8.44037 (1.29063s) |
4.18756 (3.21051s) |
2.45216 (12.628s) |
Table 1.72. Operator str
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
1.47697 (0.000264092s) |
2.87174 (0.000644609s) |
2.28911 (0.00141073s) |
4.92453 (0.00383604s) |
5.61647 (0.0137593s) |
1.87264 (0.0491109s) |
4.29909 (0.171316s) |
1 (0.595522s) |
cpp_int(fixed) |
4.73326 (0.00084634s) |
1.78742 (0.000401216s) |
1.68455 (0.00103815s) |
4.30889 (0.00335647s) |
||||
gmp_int |
1 (0.000178807s) |
1 (0.000224466s) |
1 (0.00061628s) |
1 (0.000778966s) |
1 (0.00244981s) |
1 (0.00486654s) |
1 (0.0262254s) |
1 (0.0398493s) |
tommath_int |
16.7304 (0.00299152s) |
26.6015 (0.00597113s) |
30.9815 (0.0190933s) |
74.7467 (0.0582251s) |
82.4773 (0.202054s) |
154.996 (0.754295s) |
107.534 (2.82013s) |
279.178 (11.1251s) |
Table 1.73. Operator |
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.26845 (0.00991773s) |
1.955 (0.00939722s) |
2.01122 (0.012635s) |
1.76421 (0.0152013s) |
1.92162 (0.0293243s) |
1 (0.0377549s) |
1 (0.0916779s) |
1 (0.152323s) |
cpp_int(fixed) |
1.00452 (0.0043918s) |
1.37689 (0.00661838s) |
1.3138 (0.00825362s) |
1.71906 (0.0148123s) |
||||
gmp_int |
1 (0.00437203s) |
1 (0.00480677s) |
1 (0.00628228s) |
1 (0.00861647s) |
1 (0.0152602s) |
1.09283 (0.0365187s) |
2.43832 (0.0920584s) |
1.21204 (0.111118s) |
tommath_int |
1.69103 (0.00739324s) |
1.85402 (0.00891185s) |
1.78526 (0.0112155s) |
1.86487 (0.0160686s) |
1.75184 (0.0267336s) |
1.44011 (0.0481236s) |
2.33195 (0.0880424s) |
2.33204 (0.213797s) |
Table 1.74. Operator |(int)
Backend |
128 Bits |
256 Bits |
512 Bits |
1024 Bits |
2048 Bits |
4096 Bits |
8192 Bits |
16384 Bits |
---|---|---|---|---|---|---|---|---|
cpp_int |
2.11741 (0.00805945s) |
2.16753 (0.0119795s) |
1.5717 (0.012189s) |
1.10016 (0.0134288s) |
1.11289 (0.0309032s) |
1 (0.0232284s) |
1 (0.042441s) |
1 (0.0711061s) |
cpp_int(fixed) |
1 (0.00380628s) |
1 (0.00552682s) |
1 (0.00775532s) |
1 (0.0122062s) |
||||
gmp_int |
2.62934 (0.010008s) |
1.86878 (0.0103284s) |
3.19589 (0.0247852s) |
1.1073 (0.0135159s) |
1 (0.0277685s) |
1.67609 (0.0360071s) |
3.76493 (0.0874534s) |
2.72382 (0.115602s) |
tommath_int |
22.0502 (0.0839291s) |
18.6272 (0.102949s) |
9.99323 (0.0775007s) |
6.28905 (0.0767652s) |
3.28821 (0.0913086s) |
5.0968 (0.109494s) |
6.47865 (0.150489s) |
4.8474 (0.205729s) |
Table 1.75. Platform Details
Version |
|
---|---|
Compiler |
GNU C++ version 10.3.0 |
GMP |
6.2.0 |
MPFR |
262146 |
Boost |
107800 |
Run date |
Sep 30 2021 |