Class RyuDouble

java.lang.Object
org.jfree.svg.util.RyuDouble

public final class RyuDouble extends Object
An implementation of Ryu for double.
  • 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

      private static final BigInteger[] POW5
    • POW5_INV

      private static final BigInteger[] 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

      public static String doubleToString(double value)
    • doubleToString

      public static String doubleToString(double value, RoundingMode roundingMode)
    • 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.