org.apache.lucene.util

## Class SmallFloat

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

-     public class SmallFloat
      extends Object

  Floating point numbers smaller than 32 bits.
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and 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

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.