Literally the question.
I want to understand the reason for i**2
being slower than i*i
.
Have a look here: https://colab.research.google.com/drive/14697AMb8q-8FWvMlL2gQWzdWaqbAs3DM?usp=sharing
import time
arr = [10**i for i in range(9)]
for itr in arr:
t1 = time.time()
for i in range(itr):
j = i**2
t2 = time.time() - t1
t3 = time.time()
for i in range(itr):
j = i*i
t4 = time.time() - t3
if t4 < t2:
print('For size: ' + str(itr) + ' i*i is faster than i**2 by: ' + str(t2/t4))
else:
print('For size: ' + str(itr) + ' i*i is slower than i**2 by: ' + str(t2/t4))
For size: 1 i*i is faster than i**2 by: 2.3333333333333335
For size: 10 i*i is faster than i**2 by: 2.357142857142857
For size: 100 i*i is faster than i**2 by: 2.2268041237113403
For size: 1000 i*i is faster than i**2 by: 2.3355555555555556
For size: 10000 i*i is faster than i**2 by: 2.298842476094615
For size: 100000 i*i is faster than i**2 by: 2.1292789271958488
For size: 1000000 i*i is faster than i**2 by: 2.9631206809049386
For size: 10000000 i*i is faster than i**2 by: 2.4860016655891393
For size: 100000000 i*i is faster than i**2 by: 2.5626412357255153