Class SmallFloat

java.lang.Object
org.apache.lucene.util.SmallFloat

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

    Modifier and Type
    Method
    Description
    static float
    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • 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)