Package org.apache.lucene.util
Class SmallFloat
java.lang.Object
org.apache.lucene.util.SmallFloat
Floating point numbers smaller than 32 bits.
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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.125static byte
floatToByte52
(float f) floatToByte(b, mantissaBits=5, zeroExponent=2)
smallest nonzero value = 0.033203125
largest value = 1984.0
epsilon = 0.03125
-
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 exponentzeroExp
- 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)
-