public final class Rational extends java.lang.Number implements Sequential<Rational,Rational,java.lang.Void>, ComparableUsing<Rational>, java.io.Serializable
BigInteger to maintain arbitrary precision. Note as a
performance measure this class does not maintain its value in reduced form. You must call reduce()
to get a separate instance for the reduced form. Call isReduced() to determine if an instance is in reduced
form.
This class implements arithmetic, negation, and relational operators via operator overloading provided by the
manifold-ext dependency.
Use the CoercionConstants and MetricScaleUnit classes to conveniently use literal
values as Rational numbers:
import static manifold.science.measures.MetricScaleUnit.M;
import static manifold.science.util.CoercionConstants.r;
...
Rational pi = 3.14r;
Rational oneThird = 1r/3;
Rational yocto = "1/1000000000000000000000000"r;
Rational fiveMillion = 5M;
WARNING: this class is under development and should be considered experimental.ComparableUsing.EqualityMode, ComparableUsing.Operator| Modifier and Type | Field and Description |
|---|---|
static Rational |
HALF |
static Rational |
ONE |
static Rational |
TEN |
static Rational |
ZERO |
| Modifier and Type | Method and Description |
|---|---|
Rational |
abs() |
int |
compareTo(Rational that) |
Rational |
dec()
Supports unary decrement operator
-- |
Rational |
div(java.math.BigDecimal bd) |
Rational |
div(java.math.BigInteger bi) |
Rational |
div(double d) |
Rational |
div(float f) |
Rational |
div(int i) |
Rational |
div(long l) |
Rational |
div(java.lang.Number n) |
Rational |
div(Rational rational) |
double |
doubleValue() |
ComparableUsing.EqualityMode |
equalityMode()
Use
compareTo() for == and != operators. |
boolean |
equals(java.lang.Object o) |
float |
floatValue() |
Rational |
fractionPart() |
static Rational |
get(java.math.BigDecimal bd) |
static Rational |
get(java.math.BigInteger numerator) |
static Rational |
get(java.math.BigInteger numerator,
java.math.BigInteger denominator) |
static Rational |
get(double d) |
static Rational |
get(float f) |
static Rational |
get(int numerator) |
static Rational |
get(int numerator,
int denominator) |
static Rational |
get(long numerator) |
static Rational |
get(long numerator,
long denominator) |
static Rational |
get(java.lang.Number numerator) |
static Rational |
get(java.lang.String decimal) |
java.math.BigInteger |
getDenominator() |
java.math.BigInteger |
getNumerator() |
int |
hashCode() |
Rational |
inc()
Supports unary increment operator
++ |
int |
intValue() |
Rational |
invert() |
boolean |
isInteger() |
boolean |
isReduced() |
long |
longValue() |
Rational |
minus(java.math.BigDecimal bd) |
Rational |
minus(java.math.BigInteger bi) |
Rational |
minus(double d) |
Rational |
minus(float f) |
Rational |
minus(int i) |
Rational |
minus(long l) |
Rational |
minus(java.lang.Number n) |
Rational |
minus(Rational rational) |
Rational |
nextInSequence(Rational step,
java.lang.Void unit) |
Rational |
nextNthInSequence(Rational step,
java.lang.Void unit,
int index) |
Rational |
plus(java.math.BigDecimal bd) |
Rational |
plus(java.math.BigInteger bg) |
Rational |
plus(double d) |
Rational |
plus(float f) |
Rational |
plus(int i) |
Rational |
plus(long l) |
Rational |
plus(java.lang.Number n) |
Rational |
plus(Rational rational) |
Rational |
pow(int exponent) |
Rational |
previousInSequence(Rational step,
java.lang.Void unit) |
Rational |
previousNthInSequence(Rational step,
java.lang.Void unit,
int index) |
Rational |
reduce() |
Rational |
rem(java.math.BigDecimal bd) |
Rational |
rem(java.math.BigInteger bi) |
Rational |
rem(double d) |
Rational |
rem(float f) |
Rational |
rem(int i) |
Rational |
rem(long l) |
Rational |
rem(java.lang.Number n) |
Rational |
rem(Rational rational) |
int |
signum() |
Rational |
sqrt()
Deprecated.
|
Rational |
times(java.math.BigDecimal bd) |
Rational |
times(java.math.BigInteger bi) |
Rational |
times(double d) |
Rational |
times(float f) |
Rational |
times(int i) |
Rational |
times(long l) |
Rational |
times(java.lang.Number n) |
Rational |
times(Rational rational) |
java.math.BigDecimal |
toBigDecimal() |
java.math.BigDecimal |
toBigDecimal(java.math.MathContext mc) |
java.math.BigInteger |
toBigInteger() |
java.lang.String |
toDecimalString()
Creates a
BigDecimal and calls BigDecimal.toString() |
java.lang.String |
toEngineeringString()
Creates a
BigDecimal and calls BigDecimal.toEngineeringString() |
java.lang.String |
toFractionString() |
java.lang.String |
toMixedString() |
java.lang.String |
toPlainDecimalString()
Creates a
BigDecimal and calls BigDecimal.toPlainString() |
java.lang.String |
toString() |
Rational |
unaryMinus() |
java.math.BigInteger |
wholePart() |
clone, finalize, getClass, jailbreak, notify, notifyAll, wait, wait, waitcompareToUsingpublic static final Rational ZERO
public static final Rational ONE
public static final Rational TEN
public static final Rational HALF
public static Rational get(int numerator)
public static Rational get(int numerator, int denominator)
public static Rational get(long numerator)
public static Rational get(long numerator, long denominator)
public static Rational get(float f)
public static Rational get(double d)
public static Rational get(java.math.BigInteger numerator)
public static Rational get(java.lang.Number numerator)
public static Rational get(java.lang.String decimal)
public static Rational get(java.math.BigDecimal bd)
public static Rational get(java.math.BigInteger numerator, java.math.BigInteger denominator)
public boolean isReduced()
true if this instance is in reduced form.public Rational reduce()
public java.math.BigInteger getNumerator()
public java.math.BigInteger getDenominator()
public java.math.BigInteger wholePart()
public Rational fractionPart()
public int intValue()
intValue in class java.lang.Numberpublic long longValue()
longValue in class java.lang.Numberpublic double doubleValue()
doubleValue in class java.lang.Numberpublic float floatValue()
floatValue in class java.lang.Numberpublic java.math.BigInteger toBigInteger()
public java.math.BigDecimal toBigDecimal()
public java.math.BigDecimal toBigDecimal(java.math.MathContext mc)
public Rational plus(int i)
public Rational plus(long l)
public Rational plus(float f)
public Rational plus(double d)
public Rational plus(java.math.BigInteger bg)
public Rational plus(java.math.BigDecimal bd)
public Rational plus(java.lang.Number n)
public Rational minus(int i)
public Rational minus(long l)
public Rational minus(float f)
public Rational minus(double d)
public Rational minus(java.math.BigInteger bi)
public Rational minus(java.math.BigDecimal bd)
public Rational minus(java.lang.Number n)
public Rational times(int i)
public Rational times(long l)
public Rational times(float f)
public Rational times(double d)
public Rational times(java.math.BigInteger bi)
public Rational times(java.math.BigDecimal bd)
public Rational times(java.lang.Number n)
public Rational div(int i)
public Rational div(long l)
public Rational div(float f)
public Rational div(double d)
public Rational div(java.math.BigInteger bi)
public Rational div(java.math.BigDecimal bd)
public Rational div(java.lang.Number n)
public Rational rem(int i)
public Rational rem(long l)
public Rational rem(float f)
public Rational rem(double d)
public Rational rem(java.math.BigInteger bi)
public Rational rem(java.math.BigDecimal bd)
public Rational rem(java.lang.Number n)
public Rational unaryMinus()
public Rational inc()
++public Rational dec()
--public Rational invert()
public Rational abs()
public Rational pow(int exponent)
@Deprecated public Rational sqrt()
public boolean isInteger()
public Rational nextInSequence(Rational step, java.lang.Void unit)
nextInSequence in interface Sequential<Rational,Rational,java.lang.Void>public Rational nextNthInSequence(Rational step, java.lang.Void unit, int index)
nextNthInSequence in interface Sequential<Rational,Rational,java.lang.Void>public Rational previousInSequence(Rational step, java.lang.Void unit)
previousInSequence in interface Sequential<Rational,Rational,java.lang.Void>public Rational previousNthInSequence(Rational step, java.lang.Void unit, int index)
previousNthInSequence in interface Sequential<Rational,Rational,java.lang.Void>public int signum()
public int compareTo(Rational that)
compareTo in interface java.lang.Comparable<Rational>public ComparableUsing.EqualityMode equalityMode()
compareTo() for == and != operators.equalityMode in interface ComparableUsing<Rational>public boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toFractionString()
public java.lang.String toMixedString()
public java.lang.String toDecimalString()
BigDecimal and calls BigDecimal.toString()public java.lang.String toPlainDecimalString()
BigDecimal and calls BigDecimal.toPlainString()public java.lang.String toEngineeringString()
BigDecimal and calls BigDecimal.toEngineeringString()public java.lang.String toString()
toString in class java.lang.ObjectCopyright © 2022. All rights reserved.