com.vividsolutions.jts.index.quadtree

Class 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.

Version:
1.6

Field Summary

static int
EXPONENT_BIAS

Constructor Summary

DoubleBits(double x)

Method Summary

int
biasedExponent()
Determines the exponent for the number
static int
exponent(double d)
int
getBit(int i)
double
getDouble()
int
getExponent()
Determines the exponent for the number
static double
maximumCommonMantissa(double d1, double d2)
int
numCommonMantissaBits(DoubleBits db)
This computes the number of common most-significant bits in the mantissa.
static double
powerOf2(int exp)
static String
toBinaryString(double d)
String
toString()
A representation of the Double bits formatted for easy readability
static double
truncateToPowerOfTwo(double d)
void
zeroLowerBits(int nBits)

Field Details

EXPONENT_BIAS

public static final int EXPONENT_BIAS
Field Value:
1023

Constructor Details

DoubleBits

public DoubleBits(double x)

Method Details

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.
Parameters:
db -
Returns:
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)