Consistently reduce to single precision floating point the rotation code.

This causes some slight variation in the output depending on the available
instruction set but still produces a perfectly valid output.