gnu.math

Class RatNum

Implemented Interfaces:
Comparable
Known Direct Subclasses:
IntFraction, IntNum

public abstract class RatNum
extends RealNum

The abstract class of rational numbers.

Field Summary

Fields inherited from class gnu.math.Numeric

CEILING, FLOOR, ROUND, TRUNCATE

Method Summary

static RatNum
add(RatNum x, RatNum y, int k)
static int
compare(RatNum x, RatNum y)
abstract IntNum
denominator()
static RatNum
divide(RatNum x, RatNum y)
boolean
equals(Object obj)
static boolean
equals(RatNum x, RatNum y)
static RatNum
infinity(int sign)
Return exact "rational" infinity.
boolean
isExact()
boolean
isZero()
static RatNum
make(IntNum num, IntNum den)
abstract IntNum
numerator()
Numeric
power(IntNum y)
Return this raised to an integer power.
static RealNum
rationalize(RealNum x, RealNum y)
Calcaulte the simplest rational between two reals.
static RatNum
times(RatNum x, RatNum y)
RatNum
toExact()
IntNum
toExactInt(int rounding_mode)
RealNum
toInt(int rounding_mode)

Methods inherited from class gnu.math.RealNum

abs, add, add, compareTo, div, divide, exp, im, isNegative, isZero, log, max, min, mul, re, rneg, sign, sin, sqrt, times, toExact, toExactInt, toExactInt, toExactInt, toInt, toInt, toScaledInt, toScaledInt, toScaledInt

Methods inherited from class gnu.math.Complex

abs, add, add, addReversed, angle, compare, compare, div, divReversed, divide, doubleImagValue, doubleRealValue, doubleValue, equals, equals, exp, imMinusOne, imOne, isExact, isZero, log, longValue, make, make, mul, mulReversed, neg, neg, number, polar, polar, power, sqrt, times, toString

Methods inherited from class gnu.math.Quantity

abs, add, add, addReversed, compare, compare, compareReversed, dimensions, div, divReversed, divide, doubleImagValue, doubleValue, im, imValue, make, make, make, mul, mulReversed, neg, number, re, reValue, times, toString, unit

Methods inherited from class gnu.math.Numeric

abs, add, add, addReversed, compare, compareReversed, div, divReversed, div_inv, equals, floatValue, geq, grt, intValue, isExact, isZero, longValue, mul, mulReversed, mul_ident, neg, power, sub, toString, toString

Method Details

add

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

compare

public static int compare(RatNum x,
                          RatNum y)

denominator

public abstract IntNum denominator()

divide

public static RatNum divide(RatNum x,
                            RatNum y)

equals

public boolean equals(Object obj)
Overrides:
equals in interface Complex

equals

public static boolean equals(RatNum x,
                             RatNum y)

infinity

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

isExact

public boolean isExact()
Overrides:
isExact in interface Complex

isZero

public boolean isZero()
Overrides:
isZero in interface RealNum

make

public static RatNum make(IntNum num,
                          IntNum den)

numerator

public abstract IntNum numerator()

power

public Numeric power(IntNum y)
Return this raised to an integer power. Implemented by repeated squaring and multiplication. If y <320, returns div_inv of the result.
Overrides:
power in interface Numeric

rationalize

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

times

public static RatNum times(RatNum x,
                           RatNum y)

toExact

public final RatNum toExact()
Overrides:
toExact in interface RealNum

toExactInt

public IntNum toExactInt(int rounding_mode)
Overrides:
toExactInt in interface RealNum

toInt

public RealNum toInt(int rounding_mode)
Overrides:
toInt in interface RealNum