When porting a javascript library to Python, I found this code:
return Math.atan2( Math.sqrt( (_ = cosφ1 * sinΔλ) * _ + (_ = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * _ ), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ );
Am I mistaken or (_ = cosφ1 * sinΔλ) * _ can be written as Math.pow(cosφ1 * sinΔλ, 2) ?
I think the author is trying to avoid using Math.pow, is it expensive in javascript compared to temporary use?
[update]
As of the end of 2016, with Chrome 53.0 (64-bit) it looks like the difference is not as big as before.
source share