org.ojalgo.scalar
Class RationalNumber

java.lang.Object
  extended by java.lang.Number
      extended by org.ojalgo.scalar.RationalNumber
All Implemented Interfaces:
Serializable, Comparable<RationalNumber>, Scalar<RationalNumber>

public final class RationalNumber
extends Number

See Also:
Serialized Form

Field Summary
static RationalNumber NaN
           
static RationalNumber NEG
           
static RationalNumber NEGATIVE_INFINITY
           
static RationalNumber ONE
           
static RationalNumber POSITIVE_INFINITY
           
static RationalNumber TWO
           
static RationalNumber ZERO
           
 
Constructor Summary
RationalNumber(BigDecimal aNmbr)
           
RationalNumber(double aNmbr)
           
RationalNumber(int aNumerator, int aDenominator)
           
RationalNumber(long aNumerator, long aDenominator)
           
 
Method Summary
 RationalNumber add(double aNmbr)
           
 RationalNumber add(RationalNumber aNmbr)
           
 int compareTo(RationalNumber aNmbr)
           
 RationalNumber conjugate()
           
 RationalNumber divide(double aNmbr)
           
 RationalNumber divide(RationalNumber aNmbr)
           
 double doubleValue()
           
 RationalNumber enforce(NumberContext aCntxt)
           
 boolean equals(Object someObj)
           
 boolean equals(Scalar<?> aSclr)
           
 float floatValue()
           
static BigInteger gcd(BigInteger aValue1, BigInteger aValue2)
          Greatest Common Denominator
static int gcd(int aValue1, int aValue2)
          Greatest Common Denominator
static long gcd(long aValue1, long aValue2)
          Greatest Common Denominator
 double getArgument()
           
 double getImaginary()
           
 double getModulus()
           
 RationalNumber getNumber()
           
 double getReal()
           
 int hashCode()
           
 int intValue()
           
 RationalNumber invert()
           
 boolean isAbsolute()
           
 boolean isInfinite()
           
 boolean isNaN()
           
 boolean isPositive()
          Strictly Positive, and definately real.
 boolean isReal()
           
 boolean isZero()
          Intends to capture if a scalar is numerically/practically zero, and in a way that is concistent between different implementations.
 long longValue()
           
 RationalNumber multiply(double aNmbr)
           
 RationalNumber multiply(RationalNumber aNmbr)
           
 RationalNumber negate()
           
 RationalNumber power(int anExp)
           
 RationalNumber root(int anExp)
           
 RationalNumber round(NumberContext aCntxt)
           
 RationalNumber signum()
           
 RationalNumber subtract(double aNmbr)
           
 RationalNumber subtract(RationalNumber aNmbr)
           
 BigDecimal toBigDecimal()
           
 ComplexNumber toComplexNumber()
           
 RationalNumber toRationalNumber()
           
 String toString()
           
 
Methods inherited from class java.lang.Number
byteValue, shortValue
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NaN

public static final RationalNumber NaN

NEG

public static final RationalNumber NEG

NEGATIVE_INFINITY

public static final RationalNumber NEGATIVE_INFINITY

ONE

public static final RationalNumber ONE

POSITIVE_INFINITY

public static final RationalNumber POSITIVE_INFINITY

TWO

public static final RationalNumber TWO

ZERO

public static final RationalNumber ZERO
Constructor Detail

RationalNumber

public RationalNumber(BigDecimal aNmbr)

RationalNumber

public RationalNumber(double aNmbr)

RationalNumber

public RationalNumber(int aNumerator,
                      int aDenominator)

RationalNumber

public RationalNumber(long aNumerator,
                      long aDenominator)
Method Detail

gcd

public static BigInteger gcd(BigInteger aValue1,
                             BigInteger aValue2)
Greatest Common Denominator


gcd

public static int gcd(int aValue1,
                      int aValue2)
Greatest Common Denominator


gcd

public static long gcd(long aValue1,
                       long aValue2)
Greatest Common Denominator


add

public RationalNumber add(double aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

add

public RationalNumber add(RationalNumber aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

compareTo

public int compareTo(RationalNumber aNmbr)

conjugate

public RationalNumber conjugate()
See Also:
Scalar.conjugate(), Scalar.invert(), Scalar.negate()

divide

public RationalNumber divide(double aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

divide

public RationalNumber divide(RationalNumber aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

doubleValue

public double doubleValue()
Specified by:
doubleValue in class Number

enforce

public RationalNumber enforce(NumberContext aCntxt)

equals

public boolean equals(Scalar<?> aSclr)

floatValue

public float floatValue()
Specified by:
floatValue in class Number

getArgument

public double getArgument()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

getImaginary

public double getImaginary()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

getModulus

public double getModulus()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

getNumber

public RationalNumber getNumber()

getReal

public double getReal()
See Also:
Scalar.getArgument(), Scalar.getImaginary(), Scalar.getModulus(), Scalar.getReal()

intValue

public int intValue()
Specified by:
intValue in class Number

invert

public RationalNumber invert()
See Also:
Scalar.conjugate(), Scalar.invert(), Scalar.negate()

isAbsolute

public boolean isAbsolute()
Returns:
true if this is equal to its own modulus (non-negative real part and no imaginary part); otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isPositive(), Scalar.isZero()

isInfinite

public boolean isInfinite()
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isPositive(), Scalar.isZero()

isNaN

public boolean isNaN()
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isPositive(), Scalar.isZero()

isReal

public boolean isReal()
Returns:
true if there is the imaginary part is negligible; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isPositive(), Scalar.isZero()

isPositive

public boolean isPositive()
Description copied from interface: Scalar
Strictly Positive, and definately real. Real, as defined by Scalar.isReal(), not zero, as defined by Scalar.isZero(), and > 0.0.

Returns:
true if the real part is strictly positive (not zero) and the imaginary part negligible; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isPositive(), Scalar.isZero()

isZero

public boolean isZero()
Description copied from interface: Scalar
Intends to capture if a scalar is numerically/practically zero, and in a way that is concistent between different implementations. The potential exactness of BigScalar and RationalNumber should not be reflected here.

Returns:
true if the modulus is (practically) zero; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isPositive(), Scalar.isZero()

longValue

public long longValue()
Specified by:
longValue in class Number

multiply

public RationalNumber multiply(double aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

multiply

public RationalNumber multiply(RationalNumber aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

negate

public RationalNumber negate()
See Also:
Scalar.conjugate(), Scalar.invert(), Scalar.negate()

power

public RationalNumber power(int anExp)
See Also:
Scalar.power(int), Scalar.root(int)

root

public RationalNumber root(int anExp)
See Also:
Scalar.power(int), Scalar.root(int)

round

public RationalNumber round(NumberContext aCntxt)

signum

public RationalNumber signum()

subtract

public RationalNumber subtract(double aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

subtract

public RationalNumber subtract(RationalNumber aNmbr)
See Also:
Scalar.add(double), Scalar.add(Number), Scalar.divide(double), Scalar.divide(Number), Scalar.multiply(double), Scalar.multiply(Number), Scalar.subtract(double), Scalar.subtract(Number)

toBigDecimal

public BigDecimal toBigDecimal()

toComplexNumber

public ComplexNumber toComplexNumber()

toRationalNumber

public RationalNumber toRationalNumber()

toString

public String toString()
Overrides:
toString in class Object

equals

public final boolean equals(Object someObj)
Overrides:
equals in class Object

hashCode

public final int hashCode()
Overrides:
hashCode in class Object