org.ojalgo.scalar
Interface Scalar<N extends Number>

All Superinterfaces:
Comparable<N>
All Known Implementing Classes:
BigScalar, ComplexNumber, PrimitiveScalar, RationalNumber

public interface Scalar<N extends Number>
extends Comparable<N>

Scalar was originally an abstraction of a matrix element designed to be used in matrix related code. It is still used for this to some extent, but now Scalar primarily is the common interface that defines ComplexNumber and RationalNumber.

Author:
apete

Method Summary
 Scalar<N> add(double aNmbr)
           
 Scalar<N> add(N aNmbr)
           
 Scalar<N> conjugate()
           
 Scalar<N> divide(double aNmbr)
           
 Scalar<N> divide(N aNmbr)
           
 Scalar<N> enforce(NumberContext aCntxt)
           
 boolean equals(Scalar<?> aSclr)
           
 double getArgument()
           
 double getImaginary()
           
 double getModulus()
           
 N getNumber()
           
 double getReal()
           
 Scalar<N> 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.
 Scalar<N> multiply(double aNmbr)
           
 Scalar<N> multiply(N aNmbr)
           
 Scalar<N> negate()
           
 Scalar<N> power(int anExp)
           
 Scalar<N> root(int anExp)
           
 Scalar<N> round(NumberContext aCntxt)
           
 Scalar<N> signum()
           
 Scalar<N> subtract(double aNmbr)
           
 Scalar<N> subtract(N aNmbr)
           
 BigDecimal toBigDecimal()
           
 ComplexNumber toComplexNumber()
           
 RationalNumber toRationalNumber()
           
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

add

Scalar<N> add(double aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

add

Scalar<N> add(N aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

conjugate

Scalar<N> conjugate()
See Also:
conjugate(), invert(), negate()

divide

Scalar<N> divide(double aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

divide

Scalar<N> divide(N aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

enforce

Scalar<N> enforce(NumberContext aCntxt)

equals

boolean equals(Scalar<?> aSclr)

getArgument

double getArgument()
See Also:
getArgument(), getImaginary(), getModulus(), getReal()

getImaginary

double getImaginary()
See Also:
getArgument(), getImaginary(), getModulus(), getReal()

getModulus

double getModulus()
See Also:
getArgument(), getImaginary(), getModulus(), getReal()

getNumber

N getNumber()

getReal

double getReal()
See Also:
getArgument(), getImaginary(), getModulus(), getReal()

invert

Scalar<N> invert()
See Also:
conjugate(), invert(), negate()

isAbsolute

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

isInfinite

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

isNaN

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

isPositive

boolean isPositive()
Strictly Positive, and definately real. Real, as defined by isReal(), not zero, as defined by isZero(), and > 0.0.

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

isReal

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

isZero

boolean isZero()
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:
isAbsolute(), isInfinite(), isNaN(), isReal(), isPositive(), isZero()

multiply

Scalar<N> multiply(double aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

multiply

Scalar<N> multiply(N aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

negate

Scalar<N> negate()
See Also:
conjugate(), invert(), negate()

power

Scalar<N> power(int anExp)
See Also:
power(int), root(int)

root

Scalar<N> root(int anExp)
See Also:
power(int), root(int)

round

Scalar<N> round(NumberContext aCntxt)

signum

Scalar<N> signum()

subtract

Scalar<N> subtract(double aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

subtract

Scalar<N> subtract(N aNmbr)
See Also:
add(double), add(Number), divide(double), divide(Number), multiply(double), multiply(Number), subtract(double), subtract(Number)

toBigDecimal

BigDecimal toBigDecimal()

toComplexNumber

ComplexNumber toComplexNumber()

toRationalNumber

RationalNumber toRationalNumber()