float precision. This fixes some double rounding problems for subnormals and simplifies things a bit.