org.apache.lucene.util
Class SmallFloat

java.lang.Object
  extended by 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
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-2013 Apache Software Foundation. All Rights Reserved.