gmp_float 50 + 0.0180885 gmp_float 50 - 0.0227712 gmp_float 50 * 0.0567584 gmp_float 50 / 0.289062 gmp_float 50 str 0.00354863 gmp_float 50 +(int)0.0129337 gmp_float 50 -(int)0.0256267 gmp_float 50 *(int)0.0197258 gmp_float 50 /(int)0.087785 gmp_float 100 + 0.0196977 gmp_float 100 - 0.024745 gmp_float 100 * 0.0972 gmp_float 100 / 0.393792 gmp_float 100 str 0.00528245 gmp_float 100 +(int)0.0154802 gmp_float 100 -(int)0.0242376 gmp_float 100 *(int)0.0251239 gmp_float 100 /(int)0.100588 gmp_float 500 + 0.034133 gmp_float 500 - 0.0411447 gmp_float 500 * 0.938779 gmp_float 500 / 1.5973 gmp_float 500 str 0.0406575 gmp_float 500 +(int)0.0220839 gmp_float 500 -(int)0.0310849 gmp_float 500 *(int)0.046899 gmp_float 500 /(int)0.240511 gmp_int 128 + 0.0236625 gmp_int 128 - 0.0255431 gmp_int 128 * 0.0164612 gmp_int 128 / 0.20205 gmp_int 128 str 0.000397397 gmp_int 128 +(int)0.00907029 gmp_int 128 -(int)0.0120936 gmp_int 128 *(int)0.0139764 gmp_int 128 /(int)0.061181 gmp_int 128 % 0.167724 gmp_int 128 | 0.0126627 gmp_int 128 & 0.0129377 gmp_int 128 ^ 0.0136018 gmp_int 128 << 0.0109566 gmp_int 128 >> 0.0107283 gmp_int 128 %(int)0.0408971 gmp_int 128 |(int)0.0463637 gmp_int 128 &(int)0.0502028 gmp_int 128 ^(int)0.047593 gmp_int 128 gcd 0.452707 gmp_int 256 + 0.0257277 gmp_int 256 - 0.0314085 gmp_int 256 * 0.0495293 gmp_int 256 / 0.242695 gmp_int 256 str 0.000617745 gmp_int 256 +(int)0.0129046 gmp_int 256 -(int)0.0163165 gmp_int 256 *(int)0.0153128 gmp_int 256 /(int)0.0730963 gmp_int 256 % 0.203102 gmp_int 256 | 0.0149383 gmp_int 256 & 0.0170717 gmp_int 256 ^ 0.0160796 gmp_int 256 << 0.0146023 gmp_int 256 >> 0.010293 gmp_int 256 %(int)0.0525884 gmp_int 256 |(int)0.0501017 gmp_int 256 &(int)0.0508389 gmp_int 256 ^(int)0.0498771 gmp_int 256 gcd 2.17179 gmp_int 512 + 0.0283556 gmp_int 512 - 0.0398509 gmp_int 512 * 0.104633 gmp_int 512 / 0.294206 gmp_int 512 str 0.00125749 gmp_int 512 +(int)0.0156938 gmp_int 512 -(int)0.0204795 gmp_int 512 *(int)0.0190714 gmp_int 512 /(int)0.09638 gmp_int 512 % 0.23687 gmp_int 512 | 0.0244134 gmp_int 512 & 0.0209509 gmp_int 512 ^ 0.0266707 gmp_int 512 << 0.0178981 gmp_int 512 >> 0.0122496 gmp_int 512 %(int)0.0655264 gmp_int 512 |(int)0.0536497 gmp_int 512 &(int)0.0532932 gmp_int 512 ^(int)0.0540655 gmp_int 512 gcd 4.86569 gmp_int 1024 + 0.0417292 gmp_int 1024 - 0.0504965 gmp_int 1024 * 0.330741 gmp_int 1024 / 0.376529 gmp_int 1024 str 0.00295526 gmp_int 1024 +(int)0.0258726 gmp_int 1024 -(int)0.0235972 gmp_int 1024 *(int)0.0326542 gmp_int 1024 /(int)0.148103 gmp_int 1024 % 0.301177 gmp_int 1024 | 0.0262977 gmp_int 1024 & 0.0235786 gmp_int 1024 ^ 0.0254182 gmp_int 1024 << 0.0206225 gmp_int 1024 >> 0.012848 gmp_int 1024 %(int)0.0765616 gmp_int 1024 |(int)0.0495613 gmp_int 1024 &(int)0.0512979 gmp_int 1024 ^(int)0.0491785 gmp_int 1024 gcd 10.2899 cpp_int 128 + 0.0226262 cpp_int 128 - 0.0256171 cpp_int 128 * 0.0363846 cpp_int 128 / 0.227187 cpp_int 128 str 0.000703371 cpp_int 128 +(int)0.0156956 cpp_int 128 -(int)0.0122229 cpp_int 128 *(int)0.0257193 cpp_int 128 /(int)0.129609 cpp_int 128 % 0.226534 cpp_int 128 | 0.0242976 cpp_int 128 & 0.0244482 cpp_int 128 ^ 0.0243197 cpp_int 128 << 0.0182175 cpp_int 128 >> 0.0215535 cpp_int 128 %(int)0.181554 cpp_int 128 |(int)0.0454215 cpp_int 128 &(int)0.0426893 cpp_int 128 ^(int)0.0404509 cpp_int 128 gcd 4.16823 cpp_int 256 + 0.0275581 cpp_int 256 - 0.0305114 cpp_int 256 * 0.100083 cpp_int 256 / 0.467116 cpp_int 256 str 0.00181769 cpp_int 256 +(int)0.017033 cpp_int 256 -(int)0.0143035 cpp_int 256 *(int)0.0294836 cpp_int 256 /(int)0.303922 cpp_int 256 % 0.435207 cpp_int 256 | 0.0281237 cpp_int 256 & 0.028049 cpp_int 256 ^ 0.0280192 cpp_int 256 << 0.0210768 cpp_int 256 >> 0.0175781 cpp_int 256 %(int)0.279274 cpp_int 256 |(int)0.0323883 cpp_int 256 &(int)0.0338674 cpp_int 256 ^(int)0.0299941 cpp_int 256 gcd 8.51244 cpp_int 512 + 0.033691 cpp_int 512 - 0.0422701 cpp_int 512 * 0.343683 cpp_int 512 / 0.755608 cpp_int 512 str 0.00434022 cpp_int 512 +(int)0.0196755 cpp_int 512 -(int)0.0171212 cpp_int 512 *(int)0.039305 cpp_int 512 /(int)0.535727 cpp_int 512 % 0.719958 cpp_int 512 | 0.0339623 cpp_int 512 & 0.0342017 cpp_int 512 ^ 0.033929 cpp_int 512 << 0.0269161 cpp_int 512 >> 0.0216914 cpp_int 512 %(int)0.53345 cpp_int 512 |(int)0.0324562 cpp_int 512 &(int)0.0424884 cpp_int 512 ^(int)0.0323887 cpp_int 512 gcd 19.489 cpp_int 1024 + 0.0456764 cpp_int 1024 - 0.0574919 cpp_int 1024 * 1.28548 cpp_int 1024 / 1.30086 cpp_int 1024 str 0.0122363 cpp_int 1024 +(int)0.0241476 cpp_int 1024 -(int)0.0212992 cpp_int 1024 *(int)0.0540818 cpp_int 1024 /(int)1.00179 cpp_int 1024 % 1.27181 cpp_int 1024 | 0.0457886 cpp_int 1024 & 0.0456006 cpp_int 1024 ^ 0.0456494 cpp_int 1024 << 0.0394128 cpp_int 1024 >> 0.0294462 cpp_int 1024 %(int)0.962651 cpp_int 1024 |(int)0.0372077 cpp_int 1024 &(int)0.0577198 cpp_int 1024 ^(int)0.0372218 cpp_int 1024 gcd 47.7651 cpp_int(fixed) 128 + 0.0183948 cpp_int(fixed) 128 - 0.0182905 cpp_int(fixed) 128 * 0.0201727 cpp_int(fixed) 128 / 0.206852 cpp_int(fixed) 128 str 0.000630107 cpp_int(fixed) 128 +(int)0.00967714 cpp_int(fixed) 128 -(int)0.00810627 cpp_int(fixed) 128 *(int)0.0183201 cpp_int(fixed) 128 /(int)0.111309 cpp_int(fixed) 128 % 0.204164 cpp_int(fixed) 128 | 0.0136789 cpp_int(fixed) 128 & 0.0143848 cpp_int(fixed) 128 ^ 0.0137773 cpp_int(fixed) 128 << 0.0131154 cpp_int(fixed) 128 >> 0.00912176 cpp_int(fixed) 128 %(int)0.115583 cpp_int(fixed) 128 |(int)0.0164462 cpp_int(fixed) 128 &(int)0.0169816 cpp_int(fixed) 128 ^(int)0.014607 cpp_int(fixed) 128 gcd 2.87326 cpp_int(fixed) 256 + 0.0217614 cpp_int(fixed) 256 - 0.0208437 cpp_int(fixed) 256 * 0.0385279 cpp_int(fixed) 256 / 0.321272 cpp_int(fixed) 256 str 0.00149991 cpp_int(fixed) 256 +(int)0.0102395 cpp_int(fixed) 256 -(int)0.00923316 cpp_int(fixed) 256 *(int)0.021549 cpp_int(fixed) 256 /(int)0.219146 cpp_int(fixed) 256 % 0.321039 cpp_int(fixed) 256 | 0.0154596 cpp_int(fixed) 256 & 0.0156443 cpp_int(fixed) 256 ^ 0.015493 cpp_int(fixed) 256 << 0.0169546 cpp_int(fixed) 256 >> 0.0114138 cpp_int(fixed) 256 %(int)0.238857 cpp_int(fixed) 256 |(int)0.015725 cpp_int(fixed) 256 &(int)0.021641 cpp_int(fixed) 256 ^(int)0.0163443 cpp_int(fixed) 256 gcd 6.68597 cpp_int(fixed) 512 + 0.0284799 cpp_int(fixed) 512 - 0.028304 cpp_int(fixed) 512 * 0.119904 cpp_int(fixed) 512 / 0.616699 cpp_int(fixed) 512 str 0.00415653 cpp_int(fixed) 512 +(int)0.0122821 cpp_int(fixed) 512 -(int)0.0110103 cpp_int(fixed) 512 *(int)0.0283635 cpp_int(fixed) 512 /(int)0.451373 cpp_int(fixed) 512 % 0.620217 cpp_int(fixed) 512 | 0.0189862 cpp_int(fixed) 512 & 0.0192657 cpp_int(fixed) 512 ^ 0.018973 cpp_int(fixed) 512 << 0.0188263 cpp_int(fixed) 512 >> 0.0152103 cpp_int(fixed) 512 %(int)0.491398 cpp_int(fixed) 512 |(int)0.0182191 cpp_int(fixed) 512 &(int)0.0277722 cpp_int(fixed) 512 ^(int)0.0182565 cpp_int(fixed) 512 gcd 16.1788 cpp_int(fixed) 1024 + 0.0396571 cpp_int(fixed) 1024 - 0.0413187 cpp_int(fixed) 1024 * 0.371065 cpp_int(fixed) 1024 / 1.09072 cpp_int(fixed) 1024 str 0.011546 cpp_int(fixed) 1024 +(int)0.0254102 cpp_int(fixed) 1024 -(int)0.020939 cpp_int(fixed) 1024 *(int)0.0494233 cpp_int(fixed) 1024 /(int)0.870306 cpp_int(fixed) 1024 % 1.09888 cpp_int(fixed) 1024 | 0.0393824 cpp_int(fixed) 1024 & 0.0397966 cpp_int(fixed) 1024 ^ 0.0394082 cpp_int(fixed) 1024 << 0.0392477 cpp_int(fixed) 1024 >> 0.0214742 cpp_int(fixed) 1024 %(int)0.941513 cpp_int(fixed) 1024 |(int)0.0304613 cpp_int(fixed) 1024 &(int)0.0497983 cpp_int(fixed) 1024 ^(int)0.0333848 cpp_int(fixed) 1024 gcd 41.9178 cpp_rational 128 + 8.33358 cpp_rational 128 - 8.3543 cpp_rational 128 * 15.3196 cpp_rational 128 / 31.794 cpp_rational 128 str 0.00980984 cpp_rational 128 +(int)1.14042 cpp_rational 128 -(int)1.13947 cpp_rational 128 *(int)1.3425 cpp_rational 128 /(int)1.35276 cpp_rational 256 + 24.5753 cpp_rational 256 - 24.3831 cpp_rational 256 * 45.9283 cpp_rational 256 / 80.7871 cpp_rational 256 str 0.0288878 cpp_rational 256 +(int)1.54697 cpp_rational 256 -(int)1.55711 cpp_rational 256 *(int)2.05921 cpp_rational 256 /(int)2.12933 cpp_rational 512 + 58.1983 cpp_rational 512 - 58.3044 cpp_rational 512 * 111.528 cpp_rational 512 / 184.73 cpp_rational 512 str 0.067039 cpp_rational 512 +(int)1.83113 cpp_rational 512 -(int)1.82889 cpp_rational 512 *(int)2.75206 cpp_rational 512 /(int)2.75885 cpp_rational 1024 + 139.884 cpp_rational 1024 - 139.665 cpp_rational 1024 * 270.253 cpp_rational 1024 / 436.471 cpp_rational 1024 str 0.165057 cpp_rational 1024 +(int)2.65768 cpp_rational 1024 -(int)2.68279 cpp_rational 1024 *(int)4.26866 cpp_rational 1024 /(int)4.27228 mpq_rational 128 + 0.518878 mpq_rational 128 - 0.520249 mpq_rational 128 * 0.940549 mpq_rational 128 / 2.63335 mpq_rational 128 str 0.000732008 mpq_rational 128 +(int)0.145745 mpq_rational 128 -(int)0.142505 mpq_rational 128 *(int)0.173305 mpq_rational 128 /(int)0.178914 mpq_rational 256 + 2.2747 mpq_rational 256 - 2.27886 mpq_rational 256 * 4.27402 mpq_rational 256 / 8.07149 mpq_rational 256 str 0.00123256 mpq_rational 256 +(int)0.164417 mpq_rational 256 -(int)0.161741 mpq_rational 256 *(int)0.193095 mpq_rational 256 /(int)0.202255 mpq_rational 512 + 5.09463 mpq_rational 512 - 5.09757 mpq_rational 512 * 9.6481 mpq_rational 512 / 16.9064 mpq_rational 512 str 0.00244388 mpq_rational 512 +(int)0.202901 mpq_rational 512 -(int)0.200644 mpq_rational 512 *(int)0.248942 mpq_rational 512 /(int)0.251928 mpq_rational 1024 + 11.2492 mpq_rational 1024 - 11.2528 mpq_rational 1024 * 21.0227 mpq_rational 1024 / 35.7647 mpq_rational 1024 str 0.00559869 mpq_rational 1024 +(int)0.287349 mpq_rational 1024 -(int)0.28136 mpq_rational 1024 *(int)0.337805 mpq_rational 1024 /(int)0.351164 tommath_int 128 + 0.0169999 tommath_int 128 - 0.025088 tommath_int 128 * 0.0608098 tommath_int 128 / 1.14807 tommath_int 128 str 0.00864677 tommath_int 128 +(int)0.170239 tommath_int 128 -(int)0.169805 tommath_int 128 *(int)0.18998 tommath_int 128 /(int)0.936106 tommath_int 128 % 1.10993 tommath_int 128 | 0.0742258 tommath_int 128 & 0.0747022 tommath_int 128 ^ 0.0734074 tommath_int 128 << 0.0316344 tommath_int 128 >> 0.139155 tommath_int 128 %(int)0.871093 tommath_int 128 |(int)0.249135 tommath_int 128 &(int)0.224394 tommath_int 128 ^(int)0.248407 tommath_int 128 gcd 7.6073 tommath_int 256 + 0.0191462 tommath_int 256 - 0.0267191 tommath_int 256 * 0.0843842 tommath_int 256 / 1.34052 tommath_int 256 str 0.0212684 tommath_int 256 +(int)0.173633 tommath_int 256 -(int)0.173084 tommath_int 256 *(int)0.20074 tommath_int 256 /(int)1.17192 tommath_int 256 % 1.33781 tommath_int 256 | 0.0740269 tommath_int 256 & 0.0747001 tommath_int 256 ^ 0.0741847 tommath_int 256 << 0.0379471 tommath_int 256 >> 0.14164 tommath_int 256 %(int)1.52193 tommath_int 256 |(int)0.251418 tommath_int 256 &(int)0.230435 tommath_int 256 ^(int)0.249516 tommath_int 256 gcd 15.8851 tommath_int 512 + 0.0241933 tommath_int 512 - 0.032154 tommath_int 512 * 0.195855 tommath_int 512 / 2.061 tommath_int 512 str 0.0827649 tommath_int 512 +(int)0.25223 tommath_int 512 -(int)0.25482 tommath_int 512 *(int)0.305608 tommath_int 512 /(int)1.76155 tommath_int 512 % 1.97453 tommath_int 512 | 0.0795209 tommath_int 512 & 0.0815029 tommath_int 512 ^ 0.0793004 tommath_int 512 << 0.0449753 tommath_int 512 >> 0.149597 tommath_int 512 %(int)1.74258 tommath_int 512 |(int)0.253519 tommath_int 512 &(int)0.235246 tommath_int 512 ^(int)0.261762 tommath_int 512 gcd 33.8904 tommath_int 1024 + 0.0356467 tommath_int 1024 - 0.0426379 tommath_int 1024 * 0.563154 tommath_int 1024 / 3.3106 tommath_int 1024 str 0.200351 tommath_int 1024 +(int)0.183982 tommath_int 1024 -(int)0.182348 tommath_int 1024 *(int)0.265242 tommath_int 1024 /(int)2.99248 tommath_int 1024 % 3.36442 tommath_int 1024 | 0.0935681 tommath_int 1024 & 0.0990244 tommath_int 1024 ^ 0.0948247 tommath_int 1024 << 0.0671463 tommath_int 1024 >> 0.167341 tommath_int 1024 %(int)2.8911 tommath_int 1024 |(int)0.26358 tommath_int 1024 &(int)0.244976 tommath_int 1024 ^(int)0.261357 tommath_int 1024 gcd 67.1657 cpp_dec_float 50 + 0.0139248 cpp_dec_float 50 - 0.0142418 cpp_dec_float 50 * 0.118247 cpp_dec_float 50 / 1.82747 cpp_dec_float 50 str 0.00932849 cpp_dec_float 50 +(int)0.0253923 cpp_dec_float 50 -(int)0.0248418 cpp_dec_float 50 *(int)0.0371704 cpp_dec_float 50 /(int)0.199883 cpp_dec_float 100 + 0.0171021 cpp_dec_float 100 - 0.0176287 cpp_dec_float 100 * 0.237033 cpp_dec_float 100 / 3.63766 cpp_dec_float 100 str 0.0201057 cpp_dec_float 100 +(int)0.0330663 cpp_dec_float 100 -(int)0.0332922 cpp_dec_float 100 *(int)0.0606472 cpp_dec_float 100 /(int)0.343778 cpp_dec_float 500 + 0.043194 cpp_dec_float 500 - 0.0443422 cpp_dec_float 500 * 2.12299 cpp_dec_float 500 / 25.7245 cpp_dec_float 500 str 0.0655127 cpp_dec_float 500 +(int)0.0706977 cpp_dec_float 500 -(int)0.0727089 cpp_dec_float 500 *(int)0.239796 cpp_dec_float 500 /(int)1.39609 mpfr_float 50 + 0.019179 mpfr_float 50 - 0.0225632 mpfr_float 50 * 0.0588765 mpfr_float 50 / 0.317276 mpfr_float 50 str 0.00725414 mpfr_float 50 +(int)0.0286079 mpfr_float 50 -(int)0.0465151 mpfr_float 50 *(int)0.0362579 mpfr_float 50 /(int)0.0888645 mpfr_float 100 + 0.0210236 mpfr_float 100 - 0.0250703 mpfr_float 100 * 0.0946262 mpfr_float 100 / 0.456375 mpfr_float 100 str 0.00900848 mpfr_float 100 +(int)0.0320443 mpfr_float 100 -(int)0.0487733 mpfr_float 100 *(int)0.0437034 mpfr_float 100 /(int)0.154203 mpfr_float 500 + 0.033691 mpfr_float 500 - 0.0371954 mpfr_float 500 * 0.851721 mpfr_float 500 / 2.7946 mpfr_float 500 str 0.0342011 mpfr_float 500 +(int)0.0414774 mpfr_float 500 -(int)0.0616173 mpfr_float 500 *(int)0.0826485 mpfr_float 500 /(int)0.254227 [section:float_performance Float Type Perfomance] [table Operator * [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][2.08334 (0.118247s)][2.50494 (0.237033s)][2.49259 (2.12299s)]] [[gmp_float][[*1] (0.0567584s)][1.0272 (0.0972s)][1.10221 (0.938779s)]] [[mpfr_float][1.03732 (0.0588765s)][[*1] (0.0946262s)][[*1] (0.851721s)]] ] [table Operator *(int) [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][1.88436 (0.0371704s)][2.41392 (0.0606472s)][5.11303 (0.239796s)]] [[gmp_float][[*1] (0.0197258s)][[*1] (0.0251239s)][[*1] (0.046899s)]] [[mpfr_float][1.8381 (0.0362579s)][1.73951 (0.0437034s)][1.76227 (0.0826485s)]] ] [table Operator + [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][[*1] (0.0139248s)][[*1] (0.0171021s)][1.28206 (0.043194s)]] [[gmp_float][1.29901 (0.0180885s)][1.15177 (0.0196977s)][1.01312 (0.034133s)]] [[mpfr_float][1.37732 (0.019179s)][1.2293 (0.0210236s)][[*1] (0.033691s)]] ] [table Operator +(int) [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][1.96327 (0.0253923s)][2.13604 (0.0330663s)][3.20133 (0.0706977s)]] [[gmp_float][[*1] (0.0129337s)][[*1] (0.0154802s)][[*1] (0.0220839s)]] [[mpfr_float][2.21189 (0.0286079s)][2.07002 (0.0320443s)][1.87818 (0.0414774s)]] ] [table Operator - [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][[*1] (0.0142418s)][[*1] (0.0176287s)][1.19214 (0.0443422s)]] [[gmp_float][1.5989 (0.0227712s)][1.40368 (0.024745s)][1.10618 (0.0411447s)]] [[mpfr_float][1.5843 (0.0225632s)][1.42213 (0.0250703s)][[*1] (0.0371954s)]] ] [table Operator -(int) [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][[*1] (0.0248418s)][1.37357 (0.0332922s)][2.33904 (0.0727089s)]] [[gmp_float][1.03159 (0.0256267s)][[*1] (0.0242376s)][[*1] (0.0310849s)]] [[mpfr_float][1.87245 (0.0465151s)][2.0123 (0.0487733s)][1.98223 (0.0616173s)]] ] [table Operator / [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][6.32206 (1.82747s)][9.23752 (3.63766s)][16.1049 (25.7245s)]] [[gmp_float][[*1] (0.289062s)][[*1] (0.393792s)][[*1] (1.5973s)]] [[mpfr_float][1.09761 (0.317276s)][1.15892 (0.456375s)][1.74957 (2.7946s)]] ] [table Operator /(int) [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][2.27696 (0.199883s)][3.41769 (0.343778s)][5.8047 (1.39609s)]] [[gmp_float][[*1] (0.087785s)][[*1] (0.100588s)][[*1] (0.240511s)]] [[mpfr_float][1.0123 (0.0888645s)][1.53302 (0.154203s)][1.05703 (0.254227s)]] ] [table Operator str [[Backend][50 Bits][100 Bits][500 Bits]] [[cpp_dec_float][2.62876 (0.00932849s)][3.80613 (0.0201057s)][1.91552 (0.0655127s)]] [[gmp_float][[*1] (0.00354863s)][[*1] (0.00528245s)][1.18878 (0.0406575s)]] [[mpfr_float][2.04421 (0.00725414s)][1.70536 (0.00900848s)][[*1] (0.0342011s)]] ] [endsect] [section:integer_performance Integer Type Perfomance] [table Operator % [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.35064 (0.226534s)][2.1428 (0.435207s)][3.03946 (0.719958s)][4.22281 (1.27181s)]] [[cpp_int(fixed)][1.21726 (0.204164s)][1.58068 (0.321039s)][2.61838 (0.620217s)][3.6486 (1.09888s)]] [[gmp_int][[*1] (0.167724s)][[*1] (0.203102s)][[*1] (0.23687s)][[*1] (0.301177s)]] [[tommath_int][6.61759 (1.10993s)][6.58689 (1.33781s)][8.33593 (1.97453s)][11.1709 (3.36442s)]] ] [table Operator %(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][4.43928 (0.181554s)][5.31056 (0.279274s)][8.141 (0.53345s)][12.5735 (0.962651s)]] [[cpp_int(fixed)][2.82619 (0.115583s)][4.54202 (0.238857s)][7.49924 (0.491398s)][12.2974 (0.941513s)]] [[gmp_int][[*1] (0.0408971s)][[*1] (0.0525884s)][[*1] (0.0655264s)][[*1] (0.0765616s)]] [[tommath_int][21.2996 (0.871093s)][28.9405 (1.52193s)][26.5936 (1.74258s)][37.7618 (2.8911s)]] ] [table Operator & [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.88968 (0.0244482s)][1.79292 (0.028049s)][1.77526 (0.0342017s)][1.93398 (0.0456006s)]] [[cpp_int(fixed)][1.11185 (0.0143848s)][[*1] (0.0156443s)][[*1] (0.0192657s)][1.68783 (0.0397966s)]] [[gmp_int][[*1] (0.0129377s)][1.09124 (0.0170717s)][1.08747 (0.0209509s)][[*1] (0.0235786s)]] [[tommath_int][5.77397 (0.0747022s)][4.7749 (0.0747001s)][4.23046 (0.0815029s)][4.19976 (0.0990244s)]] ] [table Operator &(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][2.51385 (0.0426893s)][1.56497 (0.0338674s)][1.52989 (0.0424884s)][1.15907 (0.0577198s)]] [[cpp_int(fixed)][[*1] (0.0169816s)][[*1] (0.021641s)][[*1] (0.0277722s)][[*1] (0.0497983s)]] [[gmp_int][2.9563 (0.0502028s)][2.3492 (0.0508389s)][1.91894 (0.0532932s)][1.03011 (0.0512979s)]] [[tommath_int][13.2139 (0.224394s)][10.6481 (0.230435s)][8.47057 (0.235246s)][4.91936 (0.244976s)]] ] [table Operator * [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][2.21032 (0.0363846s)][2.59769 (0.100083s)][3.28466 (0.343683s)][3.88666 (1.28548s)]] [[cpp_int(fixed)][1.22547 (0.0201727s)][[*1] (0.0385279s)][1.14595 (0.119904s)][1.12192 (0.371065s)]] [[gmp_int][[*1] (0.0164612s)][1.28554 (0.0495293s)][[*1] (0.104633s)][[*1] (0.330741s)]] [[tommath_int][3.69412 (0.0608098s)][2.19021 (0.0843842s)][1.87184 (0.195855s)][1.70271 (0.563154s)]] ] [table Operator *(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.8402 (0.0257193s)][1.92542 (0.0294836s)][2.06094 (0.039305s)][1.6562 (0.0540818s)]] [[cpp_int(fixed)][1.3108 (0.0183201s)][1.40725 (0.021549s)][1.48723 (0.0283635s)][1.51354 (0.0494233s)]] [[gmp_int][[*1] (0.0139764s)][[*1] (0.0153128s)][[*1] (0.0190714s)][[*1] (0.0326542s)]] [[tommath_int][13.593 (0.18998s)][13.1093 (0.20074s)][16.0244 (0.305608s)][8.12274 (0.265242s)]] ] [table Operator + [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.33096 (0.0226262s)][1.43935 (0.0275581s)][1.39258 (0.033691s)][1.28136 (0.0456764s)]] [[cpp_int(fixed)][1.08205 (0.0183948s)][1.13659 (0.0217614s)][1.17718 (0.0284799s)][1.1125 (0.0396571s)]] [[gmp_int][1.39192 (0.0236625s)][1.34375 (0.0257277s)][1.17204 (0.0283556s)][1.17063 (0.0417292s)]] [[tommath_int][[*1] (0.0169999s)][[*1] (0.0191462s)][[*1] (0.0241933s)][[*1] (0.0356467s)]] ] [table Operator +(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.73044 (0.0156956s)][1.66346 (0.017033s)][1.60196 (0.0196755s)][[*1] (0.0241476s)]] [[cpp_int(fixed)][1.06691 (0.00967714s)][[*1] (0.0102395s)][[*1] (0.0122821s)][1.05229 (0.0254102s)]] [[gmp_int][[*1] (0.00907029s)][1.26028 (0.0129046s)][1.27777 (0.0156938s)][1.07144 (0.0258726s)]] [[tommath_int][18.7688 (0.170239s)][16.9572 (0.173633s)][20.5363 (0.25223s)][7.61905 (0.183982s)]] ] [table Operator - [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.40057 (0.0256171s)][1.46382 (0.0305114s)][1.49343 (0.0422701s)][1.39142 (0.0574919s)]] [[cpp_int(fixed)][[*1] (0.0182905s)][[*1] (0.0208437s)][[*1] (0.028304s)][[*1] (0.0413187s)]] [[gmp_int][1.39653 (0.0255431s)][1.50686 (0.0314085s)][1.40796 (0.0398509s)][1.22212 (0.0504965s)]] [[tommath_int][1.37164 (0.025088s)][1.28188 (0.0267191s)][1.13602 (0.032154s)][1.03193 (0.0426379s)]] ] [table Operator -(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.50784 (0.0122229s)][1.54914 (0.0143035s)][1.55501 (0.0171212s)][1.0172 (0.0212992s)]] [[cpp_int(fixed)][[*1] (0.00810627s)][[*1] (0.00923316s)][[*1] (0.0110103s)][[*1] (0.020939s)]] [[gmp_int][1.49189 (0.0120936s)][1.76716 (0.0163165s)][1.86002 (0.0204795s)][1.12695 (0.0235972s)]] [[tommath_int][20.9474 (0.169805s)][18.7459 (0.173084s)][23.1437 (0.25482s)][8.70855 (0.182348s)]] ] [table Operator / [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.12441 (0.227187s)][1.92471 (0.467116s)][2.5683 (0.755608s)][3.45487 (1.30086s)]] [[cpp_int(fixed)][1.02377 (0.206852s)][1.32377 (0.321272s)][2.09615 (0.616699s)][2.89679 (1.09072s)]] [[gmp_int][[*1] (0.20205s)][[*1] (0.242695s)][[*1] (0.294206s)][[*1] (0.376529s)]] [[tommath_int][5.68214 (1.14807s)][5.52349 (1.34052s)][7.00529 (2.061s)][8.79242 (3.3106s)]] ] [table Operator /(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][2.11845 (0.129609s)][4.15783 (0.303922s)][5.55849 (0.535727s)][6.76415 (1.00179s)]] [[cpp_int(fixed)][1.81934 (0.111309s)][2.99804 (0.219146s)][4.68327 (0.451373s)][5.87635 (0.870306s)]] [[gmp_int][[*1] (0.061181s)][[*1] (0.0730963s)][[*1] (0.09638s)][[*1] (0.148103s)]] [[tommath_int][15.3006 (0.936106s)][16.0325 (1.17192s)][18.2771 (1.76155s)][20.2054 (2.99248s)]] ] [table Operator << [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.66271 (0.0182175s)][1.44338 (0.0210768s)][1.50386 (0.0269161s)][1.91115 (0.0394128s)]] [[cpp_int(fixed)][1.19703 (0.0131154s)][1.16109 (0.0169546s)][1.05186 (0.0188263s)][1.90315 (0.0392477s)]] [[gmp_int][[*1] (0.0109566s)][[*1] (0.0146023s)][[*1] (0.0178981s)][[*1] (0.0206225s)]] [[tommath_int][2.88726 (0.0316344s)][2.5987 (0.0379471s)][2.51285 (0.0449753s)][3.25597 (0.0671463s)]] ] [table Operator >> [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][2.36287 (0.0215535s)][1.70778 (0.0175781s)][1.77078 (0.0216914s)][2.29189 (0.0294462s)]] [[cpp_int(fixed)][[*1] (0.00912176s)][1.10889 (0.0114138s)][1.2417 (0.0152103s)][1.6714 (0.0214742s)]] [[gmp_int][1.17612 (0.0107283s)][[*1] (0.010293s)][[*1] (0.0122496s)][[*1] (0.012848s)]] [[tommath_int][15.2553 (0.139155s)][13.7608 (0.14164s)][12.2124 (0.149597s)][13.0247 (0.167341s)]] ] [table Operator ^ [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.78798 (0.0243197s)][1.8085 (0.0280192s)][1.78828 (0.033929s)][1.79594 (0.0456494s)]] [[cpp_int(fixed)][1.0129 (0.0137773s)][[*1] (0.015493s)][[*1] (0.018973s)][1.5504 (0.0394082s)]] [[gmp_int][[*1] (0.0136018s)][1.03786 (0.0160796s)][1.40572 (0.0266707s)][[*1] (0.0254182s)]] [[tommath_int][5.39689 (0.0734074s)][4.78827 (0.0741847s)][4.17964 (0.0793004s)][3.73059 (0.0948247s)]] ] [table Operator ^(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][2.76928 (0.0404509s)][1.83515 (0.0299941s)][1.77409 (0.0323887s)][1.11493 (0.0372218s)]] [[cpp_int(fixed)][[*1] (0.014607s)][[*1] (0.0163443s)][[*1] (0.0182565s)][[*1] (0.0333848s)]] [[gmp_int][3.25823 (0.047593s)][3.05166 (0.0498771s)][2.96144 (0.0540655s)][1.47308 (0.0491785s)]] [[tommath_int][17.006 (0.248407s)][15.2663 (0.249516s)][14.338 (0.261762s)][7.82864 (0.261357s)]] ] [table Operator gcd [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][9.20736 (4.16823s)][3.91955 (8.51244s)][4.00539 (19.489s)][4.64192 (47.7651s)]] [[cpp_int(fixed)][6.34685 (2.87326s)][3.07855 (6.68597s)][3.32507 (16.1788s)][4.07366 (41.9178s)]] [[gmp_int][[*1] (0.452707s)][[*1] (2.17179s)][[*1] (4.86569s)][[*1] (10.2899s)]] [[tommath_int][16.804 (7.6073s)][7.31428 (15.8851s)][6.96518 (33.8904s)][6.52732 (67.1657s)]] ] [table Operator str [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.76995 (0.000703371s)][2.94246 (0.00181769s)][3.45149 (0.00434022s)][4.14052 (0.0122363s)]] [[cpp_int(fixed)][1.58559 (0.000630107s)][2.42804 (0.00149991s)][3.30542 (0.00415653s)][3.90693 (0.011546s)]] [[gmp_int][[*1] (0.000397397s)][[*1] (0.000617745s)][[*1] (0.00125749s)][[*1] (0.00295526s)]] [[tommath_int][21.7585 (0.00864677s)][34.4291 (0.0212684s)][65.8175 (0.0827649s)][67.7946 (0.200351s)]] ] [table Operator | [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][1.91883 (0.0242976s)][1.88265 (0.0281237s)][1.78879 (0.0339623s)][1.74117 (0.0457886s)]] [[cpp_int(fixed)][1.08025 (0.0136789s)][1.03489 (0.0154596s)][[*1] (0.0189862s)][1.49756 (0.0393824s)]] [[gmp_int][[*1] (0.0126627s)][[*1] (0.0149383s)][1.28585 (0.0244134s)][[*1] (0.0262977s)]] [[tommath_int][5.86177 (0.0742258s)][4.9555 (0.0740269s)][4.18835 (0.0795209s)][3.55804 (0.0935681s)]] ] [table Operator |(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_int][2.76183 (0.0454215s)][2.05967 (0.0323883s)][1.78143 (0.0324562s)][1.22147 (0.0372077s)]] [[cpp_int(fixed)][[*1] (0.0164462s)][[*1] (0.015725s)][[*1] (0.0182191s)][[*1] (0.0304613s)]] [[gmp_int][2.81912 (0.0463637s)][3.18611 (0.0501017s)][2.94469 (0.0536497s)][1.62702 (0.0495613s)]] [[tommath_int][15.1485 (0.249135s)][15.9884 (0.251418s)][13.915 (0.253519s)][8.65293 (0.26358s)]] ] [endsect] [section:rational_performance Rational Type Perfomance] [table Operator * [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][16.2879 (15.3196s)][10.7459 (45.9283s)][11.5596 (111.528s)][12.8553 (270.253s)]] [[mpq_rational][[*1] (0.940549s)][[*1] (4.27402s)][[*1] (9.6481s)][[*1] (21.0227s)]] ] [table Operator *(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][7.7465 (1.3425s)][10.6643 (2.05921s)][11.055 (2.75206s)][12.6365 (4.26866s)]] [[mpq_rational][[*1] (0.173305s)][[*1] (0.193095s)][[*1] (0.248942s)][[*1] (0.337805s)]] ] [table Operator + [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][16.0608 (8.33358s)][10.8037 (24.5753s)][11.4235 (58.1983s)][12.435 (139.884s)]] [[mpq_rational][[*1] (0.518878s)][[*1] (2.2747s)][[*1] (5.09463s)][[*1] (11.2492s)]] ] [table Operator +(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][7.82472 (1.14042s)][9.40883 (1.54697s)][9.02478 (1.83113s)][9.24894 (2.65768s)]] [[mpq_rational][[*1] (0.145745s)][[*1] (0.164417s)][[*1] (0.202901s)][[*1] (0.287349s)]] ] [table Operator - [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][16.0583 (8.3543s)][10.6997 (24.3831s)][11.4377 (58.3044s)][12.4116 (139.665s)]] [[mpq_rational][[*1] (0.520249s)][[*1] (2.27886s)][[*1] (5.09757s)][[*1] (11.2528s)]] ] [table Operator -(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][7.99602 (1.13947s)][9.62717 (1.55711s)][9.1151 (1.82889s)][9.53508 (2.68279s)]] [[mpq_rational][[*1] (0.142505s)][[*1] (0.161741s)][[*1] (0.200644s)][[*1] (0.28136s)]] ] [table Operator / [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][12.0736 (31.794s)][10.0089 (80.7871s)][10.9267 (184.73s)][12.204 (436.471s)]] [[mpq_rational][[*1] (2.63335s)][[*1] (8.07149s)][[*1] (16.9064s)][[*1] (35.7647s)]] ] [table Operator /(int) [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][7.56092 (1.35276s)][10.5279 (2.12933s)][10.9509 (2.75885s)][12.166 (4.27228s)]] [[mpq_rational][[*1] (0.178914s)][[*1] (0.202255s)][[*1] (0.251928s)][[*1] (0.351164s)]] ] [table Operator str [[Backend][128 Bits][256 Bits][512 Bits][1024 Bits]] [[cpp_rational][13.4013 (0.00980984s)][23.4372 (0.0288878s)][27.4314 (0.067039s)][29.4814 (0.165057s)]] [[mpq_rational][[*1] (0.000732008s)][[*1] (0.00123256s)][[*1] (0.00244388s)][[*1] (0.00559869s)]] ] [endsect]