JScience v4.3

## 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:
java.io.Serializable, java.lang.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.

Version:
3.0, February 13, 2006
Author:
Jean-Marie Dautelle
See Also:
Wikipedia: Rational Numbers, Serialized Form

Field Summary
`static Rational` `ONE`
The `Rational` representing the multiplicative identity.
`static Rational` `ZERO`
The `Rational` representing the additive identity.

Method Summary
` 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(java.lang.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(java.lang.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`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### ZERO

`public static final Rational ZERO`
The `Rational` representing the additive identity.

### ONE

`public static final Rational ONE`
The `Rational` representing the multiplicative identity.

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:
`java.lang.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:
`java.lang.ArithmeticException` - if `divisor.isZero()`

### valueOf

`public static Rational valueOf(java.lang.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.

Overrides:
`minus` in class `Number<Rational>`
Parameters:
`that` - the rational number to be subtracted.
Returns:
`this - that`.

### 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 · multiplier`.

### times

`public Rational times(Rational that)`
Returns the product of this rational number with the one specified.

Specified by:
`times` in interface `GroupMultiplicative<Rational>`
Specified by:
`times` in interface `Ring<Rational>`
Parameters:
`that` - the rational number multiplier.
Returns:
`this · that`.

### inverse

`public Rational inverse()`
Returns the inverse of this rational number.

Specified by:
`inverse` in interface `GroupMultiplicative<Rational>`
Returns:
`1 / this`.
Throws:
`java.lang.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:
`java.lang.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.

Specified by:
`toText` in interface `javolution.lang.Realtime`
Specified by:
`toText` in class `Number<Rational>`
Returns:
the text representation of this number.

### equals

`public boolean equals(java.lang.Object that)`
Compares this rational number against the specified object.

Specified by:
`equals` in class `Number<Rational>`
Parameters:
`that` - the object to compare with.
Returns:
`true` if the objects are the same; `false` otherwise.

### hashCode

`public int hashCode()`
Returns the hash code for this rational number.

Specified by:
`hashCode` in class `Number<Rational>`
Returns:
the hash code value.

### longValue

`public long longValue()`
Returns the value of this rational number as a `long`.

Specified by:
`longValue` in class `Number<Rational>`
Returns:
the numeric value represented by this rational after conversion to type `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.

Specified by:
`compareTo` in interface `java.lang.Comparable<Rational>`
Specified by:
`compareTo` in class `Number<Rational>`
Parameters:
`that` - the rational number to compare with.
Returns:
-1, 0 or 1 as this rational number is numerically less than, equal to, or greater than `that`.

### copy

`public Rational copy()`
Description copied from class: `Number`
Returns a copy of this number `allocated` by the calling thread (possibly on the stack).

Specified by:
`copy` in interface `javolution.lang.ValueType`
Specified by:
`copy` in class `Number<Rational>`
Returns:
an identical and independant copy of this number.

JScience v4.3

Copyright © 2006 JScience.