Read somewhere in my adventure in optimizing my mandelbrot program that if you are for example squaring something. Using the mandelbrot equation as the example that 
z * z is faster than z**2. Is this true, and if it is why is this so? Is it due to the fact that z**2 still computes trivial cases such as 0?
            Asked
            
        
        
            Active
            
        
            Viewed 1,492 times
        
    0
            
            
        
        Dunes
        
- 37,291
 - 7
 - 81
 - 97
 
1 Answers
2
            
            
        I am one of the people who have suggested the optimization and yes, it is true.  In the example below, squaring with * is over 3 times as fast as with **2.
from timeit import repeat
print(repeat('z*z', 'z=.54321 + .56789j'))
print(repeat('z**2', 'z=.54321 + .56789j'))
# prints
[0.07780417092306088, 0.05484807785182001, 0.05577646621573226]
[0.2081317598277747, 0.19060335713839965, 0.1913974058615736]
Since both operations give the same answer
>>> z*z
(-0.02742194800000003+0.6169670537999999j)
>>> z**2
(-0.02742194800000003+0.6169670537999999j)
the second must eventually do the first (plus whatever else it does.
        Terry Jan Reedy
        
- 18,414
 - 3
 - 40
 - 52