java.lang.Object
org.jfree.svg.util.RyuDouble
An implementation of Ryu for double.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static boolean
private static final int
private static final int
private static final int
private static final int
private static final long
private static final int
private static final int
private static final BigInteger[]
private static final int
private static final BigInteger[]
private static final int
private static final int
private static final int[][]
private static final int
private static final int[][]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static int
decimalLength
(long v) static String
doubleToString
(double value) static String
doubleToString
(double value, RoundingMode roundingMode) private static long
mulPow5divPow2
(long m, int i, int j) Compute the high digits of m * 5^p / 10^q = m * 5^(p - q) / 2^q = m * 5^i / 2^j, with q chosen such that m * 5^i / 2^j has sufficiently many decimal digits to represent the original floating point number.private static long
mulPow5InvDivPow2
(long m, int i, int j) Compute the high digits of m / 5^i / 2^j such that the result is accurate to at least 9 decimal digits.private static boolean
multipleOfPowerOf5
(long value, int q) private static int
pow5bits
(int e) private static int
pow5Factor
(long value)
-
Field Details
-
DEBUG
private static boolean DEBUG -
DOUBLE_MANTISSA_BITS
private static final int DOUBLE_MANTISSA_BITS- See Also:
-
DOUBLE_MANTISSA_MASK
private static final long DOUBLE_MANTISSA_MASK- See Also:
-
DOUBLE_EXPONENT_BITS
private static final int DOUBLE_EXPONENT_BITS- See Also:
-
DOUBLE_EXPONENT_MASK
private static final int DOUBLE_EXPONENT_MASK- See Also:
-
DOUBLE_EXPONENT_BIAS
private static final int DOUBLE_EXPONENT_BIAS- See Also:
-
POS_TABLE_SIZE
private static final int POS_TABLE_SIZE- See Also:
-
NEG_TABLE_SIZE
private static final int NEG_TABLE_SIZE- See Also:
-
POW5
-
POW5_INV
-
POW5_BITCOUNT
private static final int POW5_BITCOUNT- See Also:
-
POW5_QUARTER_BITCOUNT
private static final int POW5_QUARTER_BITCOUNT- See Also:
-
POW5_SPLIT
private static final int[][] POW5_SPLIT -
POW5_INV_BITCOUNT
private static final int POW5_INV_BITCOUNT- See Also:
-
POW5_INV_QUARTER_BITCOUNT
private static final int POW5_INV_QUARTER_BITCOUNT- See Also:
-
POW5_INV_SPLIT
private static final int[][] POW5_INV_SPLIT
-
-
Constructor Details
-
RyuDouble
public RyuDouble()
-
-
Method Details
-
doubleToString
-
doubleToString
-
pow5bits
private static int pow5bits(int e) -
decimalLength
private static int decimalLength(long v) -
multipleOfPowerOf5
private static boolean multipleOfPowerOf5(long value, int q) -
pow5Factor
private static int pow5Factor(long value) -
mulPow5divPow2
private static long mulPow5divPow2(long m, int i, int j) Compute the high digits of m * 5^p / 10^q = m * 5^(p - q) / 2^q = m * 5^i / 2^j, with q chosen such that m * 5^i / 2^j has sufficiently many decimal digits to represent the original floating point number. -
mulPow5InvDivPow2
private static long mulPow5InvDivPow2(long m, int i, int j) Compute the high digits of m / 5^i / 2^j such that the result is accurate to at least 9 decimal digits. i and j are already chosen appropriately.
-