For floating point math is this why I see "/2" written as "*0.5" all the time, and is that really necessary and can't compilers figure that out?
`a / b` is completely equivalent to `a * (1 / b)` when both b and 1/b are perfectly representable in floating point without rounding, which is the case for 2 and 0.5