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 Rationalextends 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

### Field Summary

Fields Modifier and Type Field and Description `static Rational`

**ONE**The`Rational`

representing the multiplicative identity.`static Rational`

**ZERO**The`Rational`

representing the additive identity.

### Method Summary

Methods Modifier and Type Method and 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 number`allocated`

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 a`double`

.`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 a`long`

.`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 specified`long`

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**(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.`static Rational`

**valueOf**(long dividend, long divisor)Returns the rational number for the specified 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`

- if`divisor == 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`

- if`divisor.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 interface`GroupAdditive<Rational>`

- Returns:
`-this`

.

#### plus

public Rational plus(Rational that)

Returns the sum of this rational number with the one specified.**Specified by:**`plus`

in interface`GroupAdditive<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 specified`long`

multiplier.- Parameters:
`multiplier`

- the`long`

multiplier.- Returns:
`this \xc2\xb7 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 interface`GroupMultiplicative<Rational>`

- Returns:
`1 / this`

.- Throws:
`ArithmeticException`

- if`dividend.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`

- if`that.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 class`Number<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 a`long`

.

#### doubleValue

public double doubleValue()

Returns the value of this rational number as a`double`

.**Specified by:**`doubleValue`

in class`Number<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.

**SCaVis 1.8 © jWork.org**