Klaus Alexander Seistrup wrote: > Pekka Karjalainen wrote: > > > You can omit the call to math.sqrt if you test this instead. > > > > y*y > x > > > > in place of if y > maxfact: . > > Or use > > sqrt = lambda x: x ** .5
Test it: $ python -m timeit -s "from math import sqrt" "sqrt(5.6)" 1000000 loops, best of 3: 0.445 usec per loop $ python -m timeit -s "sqrt = lambda x: x**.5" "sqrt(5.6)" 1000000 loops, best of 3: 0.782 usec per loop Note that this overhead is almost entirely in function calls; calling an empty lambda is more expensive than a c-level sqrt: $ python -m timeit -s "sqrt = lambda x: x" "sqrt(5.6)" 1000000 loops, best of 3: 0.601 usec per loop Just math ops: $ python -m timeit -s "x = 5.6" "x*x" 10000000 loops, best of 3: 0.215 usec per loop $ python -m timeit -s "x = 5.6" "x**.5" 1000000 loops, best of 3: 0.438 usec per loop Of course, who knows that psyco does with this under the hood. -Mike -- http://mail.python.org/mailman/listinfo/python-list