https://www.crockford.com/trig.html