Package gnu.math

Class RatNum

All Implemented Interfaces:
Serializable, Comparable
Direct Known Subclasses:
IntFraction, IntNum

public abstract class RatNum extends RealNum
The abstract class of rational numbers.
See Also:
  • Field Details

    • ten_exp_9

      public static final IntNum ten_exp_9
  • Constructor Details

    • RatNum

      public RatNum()
  • Method Details

    • numerator

      public abstract IntNum numerator()
    • denominator

      public abstract IntNum denominator()
    • classifyFinite

      public int classifyFinite()
      Description copied from class: Complex
      Check if value is finite, infinite, or NaN.
      Overrides:
      classifyFinite in class RealNum
      Returns:
      1 if finite; 0 if infinite; -1 if NaN.
    • make

      public static RatNum make(IntNum num, IntNum den)
    • valueOf

      public static RatNum valueOf(BigDecimal value)
    • asRatNumOrNull

      public static RatNum asRatNumOrNull(Object value)
    • isExact

      public boolean isExact()
      Overrides:
      isExact in class Complex
    • isZero

      public boolean isZero()
      Overrides:
      isZero in class RealNum
    • rneg

      public final RatNum rneg()
      Overrides:
      rneg in class RealNum
    • infinity

      public static RatNum infinity(int sign)
      Return exact "rational" infinity.
      Parameters:
      sign - either 1 or -1 for positive or negative infinity
    • compare

      public static int compare(RatNum x, RatNum y)
    • equals

      public static boolean equals(RatNum x, RatNum y)
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Complex
    • add

      public static RatNum add(RatNum x, RatNum y, int k)
    • neg

      public static RatNum neg(RatNum x)
    • times

      public static RatNum times(RatNum x, RatNum y)
    • divide

      public static RatNum divide(RatNum x, RatNum y)
    • power

      public Numeric power(IntNum y)
      Description copied from class: Numeric
      Return this raised to an integer power. Implemented by repeated squaring and multiplication. If y < 0, returns div_inv of the result.
      Overrides:
      power in class Numeric
    • toExact

      public final RatNum toExact()
      Description copied from class: RealNum
      Convert to an exact number. Implements the Scheme inexact->exact (for real numbers).
      Overrides:
      toExact in class RealNum
    • toInt

      public RealNum toInt(int rounding_mode)
      Description copied from class: RealNum
      Converts a real to an integer, according to a specified rounding mode. Note an inexact argument gives an inexact result, following Scheme. See also toExactInt.
      Overrides:
      toInt in class RealNum
    • toExactInt

      public IntNum toExactInt(int rounding_mode)
      Description copied from class: RealNum
      Converts to an exact integer, with specified rounding mode.
      Overrides:
      toExactInt in class RealNum
    • rationalize

      public static RealNum rationalize(RealNum x, RealNum y)
      Calcaulte the simplest rational between two reals.