com.vividsolutions.jts.index.quadtree
Class DoubleBits
java.lang.Object
com.vividsolutions.jts.index.quadtree.DoubleBits
public class DoubleBits
extends java.lang.Object
DoubleBits manipulates Double numbers
by using bit manipulation and bit-field extraction.
For some operations (such as determining the exponent)
this is more accurate than using mathematical operations
(which suffer from round-off error).
The algorithms and constants in this class
apply only to IEEE-754 double-precision floating point format.
EXPONENT_BIAS
public static final int EXPONENT_BIAS
DoubleBits
public DoubleBits(double x)
biasedExponent
public int biasedExponent()
Determines the exponent for the number
exponent
public static int exponent(double d)
getBit
public int getBit(int i)
getDouble
public double getDouble()
getExponent
public int getExponent()
Determines the exponent for the number
maximumCommonMantissa
public static double maximumCommonMantissa(double d1,
double d2)
numCommonMantissaBits
public int numCommonMantissaBits(DoubleBits db)
This computes the number of common most-significant bits in the mantissa.
It does not count the hidden bit, which is always 1.
It does not determine whether the numbers have the same exponent - if they do
not, the value computed by this function is meaningless.
- the number of common most-significant mantissa bits
powerOf2
public static double powerOf2(int exp)
toBinaryString
public static String toBinaryString(double d)
toString
public String toString()
A representation of the Double bits formatted for easy readability
truncateToPowerOfTwo
public static double truncateToPowerOfTwo(double d)
zeroLowerBits
public void zeroLowerBits(int nBits)