Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which is faster: x*x or x**2?

I am trying to optimize my Python code. Between:

y = x*x

or

y = x**2

if I need one trillion iterations in a speed-critical program, which one should I choose?

like image 723
kmonsoor Avatar asked Dec 25 '13 20:12

kmonsoor


1 Answers

x**2 is faster than x*x.

Implementation of exponent has some overhead in Python, so it is usually faster to use your custom multiplication O(n) with small multiplication count. x*x*x*x*x is way faster than x**5. Exponent time is a sort of constant. Your multiplication time is increasing with exponent parameter, so with a large parameter it is better to use exponent. However, with really very small parameter (2, in your case), exponent is faster than multiplication. And x**2 is faster than x*x, although x**3 is way slower than x*x*x. You can find a nice benchmark in this answer.

like image 109
gthacoder Avatar answered Oct 29 '22 23:10

gthacoder