Do it somewhat more sensible.
Trigonometric functions; gcd, lcm; shortened type checks