"Cevahir Demirkiran" <cevo...@gmail.com> wrote in message news:3f74e020908251648k7b391a09g78b155507b2f2...@mail.gmail.com...
Hi,

I would like to do a floor division by a power of 2 in python to make it
faster than / (modular division in 2.x).
However, it is slower.
What is the reason of that?
I checked them via:

def f2(x,n):
   t1 = clock()
   r = x/pow(2,n)
   t2 = clock()
   print (t2-t1)
   print r
   t2 = clock()
   r = x>>n
   t3 = clock()
   print (t3-t2)
   print r


It's not slower on my system, but note the inconsistent results also:

f2(1024,5)
3.47396033483e-06
32
2.19077375482e-06
32
f2(1024,5)
4.84135603429e-06
32
3.08499440393e-06
32
f2(1024,5)
4.6782844052e-06
32
3.77604384028e-06
32

Time it with timeit...

C:\>python -m timeit -n 10000000 -s x=1024 "x>>5"
10000000 loops, best of 3: 0.113 usec per loop

C:\>python -m timeit -n 10000000 -s x=1024 "x/pow(2,5)"
10000000 loops, best of 3: 0.468 usec per loop

Right-shift is over 4x faster.

-Mark


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to