http://sage.math.washington.edu:8100/william_32bit_add?edit {{{ if is_64_bit: word = 64 else: word = 32 }}} {{{ def testpy(n, op): a = long(ZZ.random(2^(word*n))) b = long(ZZ.random(2^(word*n))) N = 1000000 t = cputime() for i in range(N): c = op(a, b) return cputime(t) }}} {{{ def testgmp(n, op): a = ZZ.random(2^(word*n)) b = ZZ.random(2^(word*n)) N = 1000000 t = cputime() for i in range(N): c = op(a, b) return cputime(t) }}} {{{ op=operator.add for n in range(1,20): print 4*n, testpy(4*n,op) / testgmp(4*n,op) /// 4 0.336633663366 8 0.378640776699 12 0.388349514563 16 0.450980392157 20 0.509803921569 24 0.509259259259 28 0.527272727273 32 0.504587155963 36 0.653846153846 40 0.590476190476 44 0.681818181818 48 0.718181818182 52 0.654867256637 56 0.648648648649 60 0.973451327434 64 0.956896551724 68 0.920353982301 72 1.07894736842 76 1.04347826087 }}} {{{ op=operator.mul for n in range(1,10): print n, testpy(n,op) / testgmp(n,op) /// 1 0.475 2 0.5 3 0.527777777778 4 0.663716814159 5 0.801724137931 6 0.991596638655 7 1.21551724138 8 1.41176470588 9 1.56589147287 }}}
http://sage.math.washington.edu:8100/william_64bit_add {{{ if is_64_bit: word = 64 else: word = 32 print word /// 64 }}} {{{ def testpy(n, op): a = long(ZZ.random(2^(word*n))) b = long(ZZ.random(2^(word*n))) N = 1000000 t = cputime() for i in range(N): c = op(a, b) return cputime(t) }}} {{{ def testgmp(n, op): a = ZZ.random(2^(word*n)) b = ZZ.random(2^(word*n)) N = 1000000 t = cputime() for i in range(N): c = op(a, b) return cputime(t) }}} {{{ op=operator.add for n in range(1,20): print 4*n, testpy(4*n,op) / testgmp(4*n,op) /// 4 0.478991596639 8 0.5 12 0.526717557252 16 0.55905511811 20 0.5859375 24 0.615384615385 28 0.709923664122 32 0.731884057971 36 0.833333333333 40 0.873134328358 44 0.878571428571 48 0.85401459854 52 0.950704225352 56 1.1 60 1.12121212121 64 0.977941176471 68 }}} {{{ op=operator.mul for n in range(1,10): print n, testpy(n,op) / testgmp(n,op) /// 1 0.487179487179 2 0.747826086957 3 1.13913043478 4 1.56896551724 5 2.0859375 6 2.63846153846 7 3.35384615385 8 4.38636363636 9 5.0962962963 }}}
See About this document... for information on suggesting changes.