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 NEGATIVE_INFINITY
           
static RationalNumber ONE
           
static RationalNumber POSITIVE_INFINITY
           
static RationalNumber ZERO
           
 
Constructor Summary
RationalNumber()
           
RationalNumber(BigDecimal aNmbr)
           
RationalNumber(BigInteger aNumerator, BigInteger aDenominator)
           
RationalNumber(double aNmbr)
           
RationalNumber(long aNumerator, long aDenominator)
           
RationalNumber(Number aNmbr)
           
RationalNumber(String aNmbrStr)
           
 
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)
          Will convert to a BigDecimal and back a gain, but does not call NumberContext.enforce(BigDecimal).
 boolean equals(Object anObject)
           
 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 isReal()
           
 boolean isZero()
           
 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 subtract(double aNmbr)
           
 RationalNumber subtract(RationalNumber aNmbr)
           
 BigDecimal toBigDecimal()
           
 ComplexNumber toComplexNumber()
           
 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

NEGATIVE_INFINITY

public static final RationalNumber NEGATIVE_INFINITY

ONE

public static final RationalNumber ONE

POSITIVE_INFINITY

public static final RationalNumber POSITIVE_INFINITY

ZERO

public static final RationalNumber ZERO
Constructor Detail

RationalNumber

public RationalNumber()

RationalNumber

public RationalNumber(BigDecimal aNmbr)

RationalNumber

public RationalNumber(BigInteger aNumerator,
                      BigInteger aDenominator)

RationalNumber

public RationalNumber(double aNmbr)

RationalNumber

public RationalNumber(long aNumerator,
                      long aDenominator)

RationalNumber

public RationalNumber(Number aNmbr)

RationalNumber

public RationalNumber(String aNmbrStr)
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)
Will convert to a BigDecimal and back a gain, but does not call NumberContext.enforce(BigDecimal).

See Also:
Scalar.enforce(org.ojalgo.type.context.NumberContext)

equals

public boolean equals(Object anObject)
Overrides:
equals in class Object

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()

hashCode

public int hashCode()
Overrides:
hashCode in class Object

intValue

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

invert

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

isInfinite

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

isNaN

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

isReal

public boolean isReal()
Returns:
true if the absolute value of the imaginary part is less than or equal to PrimitiveMath.IS_ZERO; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), 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)

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()

toString

public String toString()
Overrides:
toString in class Object

isAbsolute

public final boolean isAbsolute()
Specified by:
isAbsolute in interface Scalar<N extends Number>
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.isZero()

isZero

public final boolean isZero()
Specified by:
isZero in interface Scalar<N extends Number>
Returns:
true if the modulus is less than or equal to PrimitiveMath.IS_ZERO; otherwise false.
See Also:
Scalar.isAbsolute(), Scalar.isInfinite(), Scalar.isNaN(), Scalar.isReal(), Scalar.isZero()