Package org.locationtech.jts.precision
Class CommonBits
java.lang.Object
org.locationtech.jts.precision.CommonBits
Determines the maximum number of common most-significant
bits in the mantissa of one or numbers.
Can be used to compute the double-precision number which
is represented by the common bits.
If there are no common bits, the number computed is 0.0.
- Version:
- 1.7
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
private int
private long
private boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(double num) static int
getBit
(long bits, int i) Extracts the i'th bit of a bitstring.double
static int
numCommonMostSigMantissaBits
(long num1, long num2) This computes the number of common most-significant bits in the mantissas of two double-precision numbers.static long
signExpBits
(long num) Computes the bit pattern for the sign and exponent of a double-precision number.toString
(long bits) A representation of the Double bits formatted for easy readabilitystatic long
zeroLowerBits
(long bits, int nBits) Zeroes the lower n bits of a bitstring.
-
Field Details
-
isFirst
private boolean isFirst -
commonMantissaBitsCount
private int commonMantissaBitsCount -
commonBits
private long commonBits -
commonSignExp
private long commonSignExp
-
-
Constructor Details
-
CommonBits
public CommonBits()
-
-
Method Details
-
signExpBits
public static long signExpBits(long num) Computes the bit pattern for the sign and exponent of a double-precision number.- Parameters:
num
-- Returns:
- the bit pattern for the sign and exponent
-
numCommonMostSigMantissaBits
public static int numCommonMostSigMantissaBits(long num1, long num2) This computes the number of common most-significant bits in the mantissas of two double-precision numbers. 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:
num1
- the first numbernum2
- the second number- Returns:
- the number of common most-significant mantissa bits
-
zeroLowerBits
public static long zeroLowerBits(long bits, int nBits) Zeroes the lower n bits of a bitstring.- Parameters:
bits
- the bitstring to alter- Returns:
- the zeroed bitstring
-
getBit
public static int getBit(long bits, int i) Extracts the i'th bit of a bitstring.- Parameters:
bits
- the bitstring to extract fromi
- the bit to extract- Returns:
- the value of the extracted bit
-
add
public void add(double num) -
getCommon
public double getCommon() -
toString
A representation of the Double bits formatted for easy readability
-