I'll toss in my benchmark results. :-) GMPY performance benchmark
Decimal string to mpz: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000021 sec 0.00000022 sec 100 digits: 0.00000063 sec 0.00000066 sec 500 digits: 0.00000318 sec 0.00000302 sec 1000 digits: 0.00000716 sec 0.00000693 sec 5000 digits: 0.00008661 sec 0.00006298 sec 10000 digits: 0.00026616 sec 0.00016775 sec 50000 digits: 0.00265514 sec 0.00168555 sec 100000 digits: 0.00651324 sec 0.00444604 sec 500000 digits: 0.04866513 sec 0.03830050 sec 1000000 digits: 0.11429363 sec 0.09162606 sec 10000000 digits: 2.31600404 sec 1.59257817 sec Mpz to decimal string: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000034 sec 0.00000035 sec 100 digits: 0.00000105 sec 0.00000101 sec 500 digits: 0.00000717 sec 0.00000589 sec 1000 digits: 0.00001586 sec 0.00001262 sec 5000 digits: 0.00014800 sec 0.00010783 sec 10000 digits: 0.00041150 sec 0.00029588 sec 50000 digits: 0.00420932 sec 0.00338085 sec 100000 digits: 0.01185473 sec 0.00920948 sec 500000 digits: 0.12125288 sec 0.08355007 sec 1000000 digits: 0.31727976 sec 0.20738387 sec 10000000 digits: 7.70821309 sec 3.94376493 sec Mpz addition: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000010 sec 0.00000009 sec 100 digits: 0.00000010 sec 0.00000010 sec 500 digits: 0.00000012 sec 0.00000011 sec 1000 digits: 0.00000014 sec 0.00000013 sec 5000 digits: 0.00000051 sec 0.00000050 sec 10000 digits: 0.00000073 sec 0.00000073 sec 50000 digits: 0.00000430 sec 0.00000429 sec 100000 digits: 0.00000822 sec 0.00000818 sec 500000 digits: 0.00003971 sec 0.00003959 sec 1000000 digits: 0.00007838 sec 0.00007884 sec 10000000 digits: 0.00357354 sec 0.00354370 sec 100000000 digits: 0.05413541 sec 0.05324940 sec 1NxN mpz multiplication: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000009 sec 0.00000009 sec 100 digits: 0.00000017 sec 0.00000018 sec 500 digits: 0.00000124 sec 0.00000126 sec 1000 digits: 0.00000414 sec 0.00000378 sec 5000 digits: 0.00004730 sec 0.00004805 sec 10000 digits: 0.00012850 sec 0.00012088 sec 50000 digits: 0.00123085 sec 0.00109137 sec 100000 digits: 0.00290135 sec 0.00280582 sec 500000 digits: 0.01663006 sec 0.01763764 sec 1000000 digits: 0.03379822 sec 0.03994881 sec 10000000 digits: 0.68572044 sec 0.61115754 sec 100000000 digits: 6.44622898 sec 7.93841791 sec 5NxN mpz multiplication: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000011 sec 0.00000010 sec 100 digits: 0.00000038 sec 0.00000040 sec 500 digits: 0.00000604 sec 0.00000652 sec 1000 digits: 0.00002064 sec 0.00001863 sec 5000 digits: 0.00023417 sec 0.00021708 sec 10000 digits: 0.00064239 sec 0.00058681 sec 50000 digits: 0.00608666 sec 0.00436574 sec 100000 digits: 0.00847080 sec 0.00917852 sec 500000 digits: 0.05356821 sec 0.06811212 sec 1000000 digits: 0.12863311 sec 0.14648414 sec 10000000 digits: 2.27829909 sec 2.17810798 sec 100000000 digits: 21.30186605 sec 27.38823199 sec 17NxN mpz multiplication: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000010 sec 0.00000011 sec 100 digits: 0.00000113 sec 0.00000108 sec 500 digits: 0.00002057 sec 0.00002183 sec 1000 digits: 0.00007094 sec 0.00006423 sec 5000 digits: 0.00081254 sec 0.00071725 sec 10000 digits: 0.00217992 sec 0.00197989 sec 50000 digits: 0.02072028 sec 0.01620061 sec 100000 digits: 0.02676870 sec 0.03553003 sec 500000 digits: 0.20828125 sec 0.23191699 sec 1000000 digits: 0.42618978 sec 0.52746260 sec 10000000 digits: 5.84609008 sec 7.77125812 sec 100000000 digits: 74.05822110 sec 100.53587508 sec 2N/N mpz quotient: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000018 sec 0.00000018 sec 100 digits: 0.00000041 sec 0.00000037 sec 500 digits: 0.00000234 sec 0.00000203 sec 1000 digits: 0.00000729 sec 0.00000638 sec 5000 digits: 0.00009662 sec 0.00009747 sec 10000 digits: 0.00029030 sec 0.00029359 sec 50000 digits: 0.00329851 sec 0.00279975 sec 100000 digits: 0.00912671 sec 0.00663861 sec 500000 digits: 0.07756643 sec 0.04376046 sec 1000000 digits: 0.18805614 sec 0.10166769 sec 10000000 digits: 3.46835899 sec 1.65955496 sec 100000000 digits: 57.28032804 sec 21.36209702 sec 5N/N mpz quotient: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000021 sec 0.00000020 sec 100 digits: 0.00000095 sec 0.00000085 sec 500 digits: 0.00000846 sec 0.00000747 sec 1000 digits: 0.00002843 sec 0.00002508 sec 5000 digits: 0.00038293 sec 0.00038840 sec 10000 digits: 0.00115942 sec 0.00117106 sec 50000 digits: 0.01321486 sec 0.00858406 sec 100000 digits: 0.03642362 sec 0.02081330 sec 500000 digits: 0.31158978 sec 0.13223937 sec 1000000 digits: 0.75152898 sec 0.30322999 sec 10000000 digits: 13.88208699 sec 4.75602698 sec 100000000 digits: 228.71033311 sec 60.81353498 sec 17N/N mpz quotient: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000028 sec 0.00000026 sec 100 digits: 0.00000343 sec 0.00000287 sec 500 digits: 0.00003360 sec 0.00002929 sec 1000 digits: 0.00011155 sec 0.00010037 sec 5000 digits: 0.00153300 sec 0.00132398 sec 10000 digits: 0.00462759 sec 0.00346040 sec 50000 digits: 0.05275750 sec 0.02910585 sec 100000 digits: 0.14589587 sec 0.07089074 sec 500000 digits: 1.24625611 sec 0.44447249 sec 1000000 digits: 2.99730897 sec 1.01921391 sec 10000000 digits: 55.43707895 sec 15.77324915 sec 100000000 digits: 915.73236585 sec 200.43964195 sec 2N/N mpz quot & rem: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000026 sec 0.00000025 sec 100 digits: 0.00000049 sec 0.00000045 sec 500 digits: 0.00000242 sec 0.00000207 sec 1000 digits: 0.00000738 sec 0.00000648 sec 5000 digits: 0.00009728 sec 0.00009805 sec 10000 digits: 0.00029146 sec 0.00029408 sec 50000 digits: 0.00330097 sec 0.00279113 sec 100000 digits: 0.00913051 sec 0.00663646 sec 500000 digits: 0.07772918 sec 0.04375675 sec 1000000 digits: 0.18767852 sec 0.10160725 sec 10000000 digits: 3.47579503 sec 1.65892482 sec 100000000 digits: 57.20885682 sec 21.33134699 sec Mpz squaring: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000015 sec 0.00000013 sec 100 digits: 0.00000025 sec 0.00000019 sec 500 digits: 0.00000102 sec 0.00000090 sec 1000 digits: 0.00000288 sec 0.00000267 sec 5000 digits: 0.00003559 sec 0.00003249 sec 10000 digits: 0.00009700 sec 0.00008516 sec 50000 digits: 0.00088845 sec 0.00078422 sec 100000 digits: 0.00201402 sec 0.00190495 sec 500000 digits: 0.01089044 sec 0.01193870 sec 1000000 digits: 0.02389035 sec 0.02675930 sec 10000000 digits: 0.49165547 sec 0.42553878 sec 100000000 digits: 4.66965413 sec 5.35446501 sec Mpz square root & rem: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000030 sec 0.00000026 sec 100 digits: 0.00000058 sec 0.00000051 sec 500 digits: 0.00000167 sec 0.00000139 sec 1000 digits: 0.00000316 sec 0.00000244 sec 5000 digits: 0.00002410 sec 0.00002248 sec 10000 digits: 0.00007203 sec 0.00006785 sec 50000 digits: 0.00083096 sec 0.00080454 sec 100000 digits: 0.00236414 sec 0.00226395 sec 500000 digits: 0.02368536 sec 0.01876901 sec 1000000 digits: 0.06033419 sec 0.04411175 sec 10000000 digits: 1.18814492 sec 0.72805297 sec 100000000 digits: 21.50279713 sec 10.78387809 sec Mpz cube root: MPIR 1.3.0 GMP 5.0.0 10 digits: 0.00000107 sec 0.00000127 sec 100 digits: 0.00000274 sec 0.00000230 sec 500 digits: 0.00000606 sec 0.00000347 sec 1000 digits: 0.00001043 sec 0.00000497 sec 5000 digits: 0.00007458 sec 0.00002220 sec 10000 digits: 0.00021136 sec 0.00005912 sec 50000 digits: 0.00224647 sec 0.00065954 sec 100000 digits: 0.00607530 sec 0.00181209 sec 500000 digits: 0.04742103 sec 0.01574672 sec 1000000 digits: 0.10733093 sec 0.03698403 sec 10000000 digits: 1.85199785 sec 0.60995245 sec 100000000 digits: 27.63473392 sec 9.01733184 sec Mpz next_prime 10000000th prime: 69.74 sec 183.40 sec This is from a Python program I hacked together last night. The unit of measurement is decimal digits. I'll upload the program after I make a few changes: sizes in bits, more tests, and parser friendly output. casevh
-- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-de...@googlegroups.com. To unsubscribe from this group, send email to mpir-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en.