Class SmallFloat


  • public class SmallFloat
    extends Object
    Floating point numbers smaller than 32 bits.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static float byte315ToFloat​(byte b)
      byteToFloat(b, mantissaBits=3, zeroExponent=15)
      static float byte52ToFloat​(byte b)
      byteToFloat(b, mantissaBits=5, zeroExponent=2)
      static float byteToFloat​(byte b, int numMantissaBits, int zeroExp)
      Converts an 8 bit float to a 32 bit float.
      static byte floatToByte​(float f, int numMantissaBits, int zeroExp)
      Converts a 32 bit float to an 8 bit float.
      static byte floatToByte315​(float f)
      floatToByte(b, mantissaBits=3, zeroExponent=15)
      smallest non-zero value = 5.820766E-10
      largest value = 7.5161928E9
      epsilon = 0.125
      static byte floatToByte52​(float f)
      floatToByte(b, mantissaBits=5, zeroExponent=2)
      smallest nonzero value = 0.033203125
      largest value = 1984.0
      epsilon = 0.03125
    • Method Detail

      • floatToByte

        public static byte floatToByte​(float f,
                                       int numMantissaBits,
                                       int zeroExp)
        Converts a 32 bit float to an 8 bit float.
        Values less than zero are all mapped to zero.
        Values are truncated (rounded down) to the nearest 8 bit value.
        Values between zero and the smallest representable value are rounded up.
        Parameters:
        f - the 32 bit float to be converted to an 8 bit float (byte)
        numMantissaBits - the number of mantissa bits to use in the byte, with the remainder to be used in the exponent
        zeroExp - the zero-point in the range of exponent values
        Returns:
        the 8 bit float representation
      • byteToFloat

        public static float byteToFloat​(byte b,
                                        int numMantissaBits,
                                        int zeroExp)
        Converts an 8 bit float to a 32 bit float.
      • floatToByte315

        public static byte floatToByte315​(float f)
        floatToByte(b, mantissaBits=3, zeroExponent=15)
        smallest non-zero value = 5.820766E-10
        largest value = 7.5161928E9
        epsilon = 0.125
      • byte315ToFloat

        public static float byte315ToFloat​(byte b)
        byteToFloat(b, mantissaBits=3, zeroExponent=15)
      • floatToByte52

        public static byte floatToByte52​(float f)
        floatToByte(b, mantissaBits=5, zeroExponent=2)
        smallest nonzero value = 0.033203125
        largest value = 1984.0
        epsilon = 0.03125
      • byte52ToFloat

        public static float byte52ToFloat​(byte b)
        byteToFloat(b, mantissaBits=5, zeroExponent=2)