Thanks for the answer.
Run it with a big number:
f2(9230821908403878236537264867326482638462035732098490238409328947638257462745672354627356427356742563256745362772537532756732673275732,9)

I had this result:

8.1015883211e-06
1.06158743591e-05
512

2009/8/26 Mark Tolonen <metolone+gm...@gmail.com<metolone%2bgm...@gmail.com>
>

>
> "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
>



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

Reply via email to