I’ve been wondering this for some time. As the title say, which is faster, the actual function or simply raising to the half power?
This is not a matter of premature optimization. This is simply a question of how the underlying code actually works. What is the theory of how Python code works?
I sent Guido van Rossum an email cause I really wanted to know the differences in these methods.
There are at least 3 ways to do a square root in Python: math.sqrt, the
‘**’ operator and pow(x,.5). I’m just curious as to the differences in
the implementation of each of these. When it comes to efficiency which
pow and ** are equivalent; math.sqrt doesn’t work for complex numbers,
and links to the C sqrt() function. As to which one is
faster, I have no idea…
math.sqrt(x) is significantly faster than
import math N = 1000000
%%timeit for i in range(N): z=i**.5
10 loops, best of 3: 156 ms per loop
%%timeit for i in range(N): z=math.sqrt(i)
10 loops, best of 3: 91.1 ms per loop
Using Python 3.6.9 (notebook).
Answered By – Claudiu
Answer Checked By – Marie Seifert (BugsFixing Admin)