Package org.jscience.mathematics.number
Class Rational
- java.lang.Object
-
- java.lang.Number
-
- org.jscience.mathematics.number.Number<Rational>
-
- org.jscience.mathematics.number.Rational
-
- All Implemented Interfaces:
Serializable
,Comparable<Rational>
,javolution.lang.Immutable
,javolution.lang.Realtime
,javolution.lang.ValueType
,javolution.xml.XMLSerializable
,Field<Rational>
,GroupAdditive<Rational>
,GroupMultiplicative<Rational>
,Ring<Rational>
,Structure<Rational>
public final class Rational extends Number<Rational> implements Field<Rational>
This class represents the ratio of two
LargeInteger
numbers.Instances of this class are immutable and can be used to find exact solutions to linear equations with the
Matrix
class.- See Also:
- Wikipedia: Rational Numbers, Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Rational
abs()
Returns the absolute value of this rational number.int
compareTo(Rational that)
Compares two rational number numerically.Rational
copy()
Returns a copy of this numberallocated
by the calling thread (possibly on the stack).Rational
divide(Rational that)
Returns this rational number divided by the one specified.double
doubleValue()
Returns the value of this rational number as adouble
.boolean
equals(Object that)
Compares this rational number against the specified object.LargeInteger
getDividend()
Returns the smallest dividend of the fraction representing this rational number.LargeInteger
getDivisor()
Returns the smallest divisor of the fraction representing this rational (always positive).int
hashCode()
Returns the hash code for this rational number.Rational
inverse()
Returns the inverse of this rational number.boolean
isLargerThan(Rational that)
Compares the absolute value of two rational numbers.boolean
isNegative()
Indicates if this rational number is less than zero.boolean
isPositive()
Indicates if this rational number is greater than zero.boolean
isZero()
Indicates if this rational number is equal to zero.long
longValue()
Returns the value of this rational number as along
.Rational
minus(Rational that)
Returns the difference between this rational number and the one specified.Rational
opposite()
Returns the opposite of this rational number.Rational
plus(Rational that)
Returns the sum of this rational number with the one specified.LargeInteger
round()
Returns the closest integer value to this rational number.Rational
times(long multiplier)
Returns the product of this rational number with the specifiedlong
multiplier.Rational
times(Rational that)
Returns the product of this rational number with the one specified.javolution.text.Text
toText()
Returns the decimal text representation of this number.static Rational
valueOf(long dividend, long divisor)
Returns the rational number for the specified integer dividend and divisor.static Rational
valueOf(CharSequence chars)
Returns the rational number for the specified character sequence.static Rational
valueOf(LargeInteger dividend, LargeInteger divisor)
Returns the rational number for the specified large integer dividend and divisor.-
Methods inherited from class org.jscience.mathematics.number.Number
byteValue, floatValue, intValue, isGreaterThan, isLessThan, pow, shortValue, toString
-
-
-
-
Method Detail
-
valueOf
public static Rational valueOf(long dividend, long divisor)
Returns the rational number for the specified integer dividend and divisor.- Parameters:
dividend
- the dividend value.divisor
- the divisor value.- Returns:
dividend / divisor
- Throws:
ArithmeticException
- ifdivisor == 0
-
valueOf
public static Rational valueOf(LargeInteger dividend, LargeInteger divisor)
Returns the rational number for the specified large integer dividend and divisor.- Parameters:
dividend
- the dividend value.divisor
- the divisor value.- Returns:
dividend / divisor
- Throws:
ArithmeticException
- ifdivisor.isZero()
-
valueOf
public static Rational valueOf(CharSequence chars)
Returns the rational number for the specified character sequence.- Parameters:
chars
- the character sequence.- Returns:
- the corresponding rational number.
-
getDividend
public LargeInteger getDividend()
Returns the smallest dividend of the fraction representing this rational number.- Returns:
- this rational dividend.
-
getDivisor
public LargeInteger getDivisor()
Returns the smallest divisor of the fraction representing this rational (always positive).- Returns:
- this rational divisor.
-
round
public LargeInteger round()
Returns the closest integer value to this rational number.- Returns:
- this rational rounded to the nearest integer.
-
opposite
public Rational opposite()
Returns the opposite of this rational number.- Specified by:
opposite
in interfaceGroupAdditive<Rational>
- Returns:
-this
.
-
plus
public Rational plus(Rational that)
Returns the sum of this rational number with the one specified.- Specified by:
plus
in interfaceGroupAdditive<Rational>
- Parameters:
that
- the rational number to be added.- Returns:
this + that
.
-
minus
public Rational minus(Rational that)
Returns the difference between this rational number and the one specified.
-
times
public Rational times(long multiplier)
Returns the product of this rational number with the specifiedlong
multiplier.- Parameters:
multiplier
- thelong
multiplier.- Returns:
this · multiplier
.
-
times
public Rational times(Rational that)
Returns the product of this rational number with the one specified.
-
inverse
public Rational inverse()
Returns the inverse of this rational number.- Specified by:
inverse
in interfaceGroupMultiplicative<Rational>
- Returns:
1 / this
.- Throws:
ArithmeticException
- ifdividend.isZero()
-
divide
public Rational divide(Rational that)
Returns this rational number divided by the one specified.- Parameters:
that
- the rational number divisor.- Returns:
this / that
.- Throws:
ArithmeticException
- ifthat.equals(ZERO)
-
abs
public Rational abs()
Returns the absolute value of this rational number.- Returns:
|this|
.
-
isZero
public boolean isZero()
Indicates if this rational number is equal to zero.- Returns:
this == 0
-
isPositive
public boolean isPositive()
Indicates if this rational number is greater than zero.- Returns:
this > 0
-
isNegative
public boolean isNegative()
Indicates if this rational number is less than zero.- Returns:
this < 0
-
isLargerThan
public boolean isLargerThan(Rational that)
Compares the absolute value of two rational numbers.- Specified by:
isLargerThan
in classNumber<Rational>
- Parameters:
that
- the rational number to be compared with.- Returns:
|this| > |that|
-
toText
public javolution.text.Text toText()
Returns the decimal text representation of this number.
-
equals
public boolean equals(Object that)
Compares this rational number against the specified object.
-
hashCode
public int hashCode()
Returns the hash code for this rational number.
-
longValue
public long longValue()
Returns the value of this rational number as along
.
-
doubleValue
public double doubleValue()
Returns the value of this rational number as adouble
.- Specified by:
doubleValue
in classNumber<Rational>
- Returns:
- the numeric value represented by this rational after conversion
to type
double
.
-
compareTo
public int compareTo(Rational that)
Compares two rational number numerically.
-
-