Package org.ojalgo.scalar
Class BigScalar
- java.lang.Object
-
- org.ojalgo.scalar.BigScalar
-
- All Implemented Interfaces:
java.lang.Comparable<java.math.BigDecimal>
,Field<Scalar<java.math.BigDecimal>>
,Group
,Group.Additive<Scalar<java.math.BigDecimal>>
,Group.Multiplicative<Scalar<java.math.BigDecimal>>
,NormedVectorSpace<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
,Operation
,Operation.Addition<Scalar<java.math.BigDecimal>>
,Operation.Division<Scalar<java.math.BigDecimal>>
,Operation.Multiplication<Scalar<java.math.BigDecimal>>
,Operation.Subtraction<Scalar<java.math.BigDecimal>>
,Ring<Scalar<java.math.BigDecimal>>
,ScalarOperation
,ScalarOperation.Addition<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
,ScalarOperation.Division<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
,ScalarOperation.Multiplication<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
,ScalarOperation.Subtraction<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
,VectorSpace<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
,Scalar<java.math.BigDecimal>
,AccessScalar<java.math.BigDecimal>
,Tensor<java.math.BigDecimal,Scalar<java.math.BigDecimal>>
,NumberContext.Enforceable<BigScalar>
,NumberDefinition
public final class BigScalar extends java.lang.Object implements Scalar<java.math.BigDecimal>, NumberContext.Enforceable<BigScalar>
ABigDecimal
based implementation of theScalar
interface. Most/all other implementations are based on primitive components. This implementation exists for historical reasons, and is now primarily used for tests.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.ojalgo.algebra.Group
Group.Additive<T>, Group.Multiplicative<T>
-
Nested classes/interfaces inherited from interface org.ojalgo.algebra.Operation
Operation.Addition<T>, Operation.Division<T>, Operation.Multiplication<T>, Operation.Subtraction<T>
-
Nested classes/interfaces inherited from interface org.ojalgo.scalar.Scalar
Scalar.Factory<N extends java.lang.Comparable<N>>
-
Nested classes/interfaces inherited from interface org.ojalgo.algebra.ScalarOperation
ScalarOperation.Addition<T,N extends java.lang.Comparable<N>>, ScalarOperation.Division<T,N extends java.lang.Comparable<N>>, ScalarOperation.Multiplication<T,N extends java.lang.Comparable<N>>, ScalarOperation.Subtraction<T,N extends java.lang.Comparable<N>>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BigScalar
add(double arg)
BigScalar
add(float scalarAddend)
BigScalar
add(java.math.BigDecimal arg)
int
compareTo(java.math.BigDecimal reference)
BigScalar
conjugate()
This method will (most likely) be moved to some other interface in the future! Just have to figure out where it fits...BigScalar
divide(double arg)
BigScalar
divide(float scalarDivisor)
BigScalar
divide(java.math.BigDecimal arg)
double
doubleValue()
BigScalar
enforce(NumberContext context)
boolean
equals(java.lang.Object obj)
float
floatValue()
java.math.BigDecimal
get()
int
hashCode()
int
intValue()
BigScalar
invert()
The multiplicative inverse.boolean
isAbsolute()
static boolean
isAbsolute(java.math.BigDecimal value)
boolean
isSmall(double comparedTo)
static boolean
isSmall(double comparedTo, java.math.BigDecimal value)
long
longValue()
BigScalar
multiply(double arg)
BigScalar
multiply(float scalarMultiplicand)
BigScalar
multiply(java.math.BigDecimal arg)
BigScalar
negate()
The additive inverse of this.double
norm()
this == this.signum().multiply(this.norm())
static BigScalar
of(java.math.BigDecimal value)
BigScalar
power(int power)
Multiply by itselfpower
times.BigScalar
signum()
this == this.signum().multiply(this.norm())
BigScalar
subtract(double arg)
BigScalar
subtract(float scalarSubtrahend)
BigScalar
subtract(java.math.BigDecimal arg)
java.math.BigDecimal
toBigDecimal()
java.lang.String
toString()
java.lang.String
toString(NumberContext context)
static BigScalar
valueOf(double value)
static BigScalar
valueOf(java.lang.Comparable<?> number)
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.ojalgo.type.NumberDefinition
booleanValue, byteValue, shortValue
-
Methods inherited from interface org.ojalgo.scalar.Scalar
add, dimensions, divide, multiply, rank, subtract, toPlainString
-
Methods inherited from interface org.ojalgo.tensor.Tensor
components, isSameShape
-
-
-
-
Field Detail
-
FACTORY
public static final Scalar.Factory<java.math.BigDecimal> FACTORY
-
NEG
public static final BigScalar NEG
-
ONE
public static final BigScalar ONE
-
TWO
public static final BigScalar TWO
-
ZERO
public static final BigScalar ZERO
-
CONTEXT
static final NumberContext CONTEXT
-
myNumber
private final java.math.BigDecimal myNumber
-
-
Method Detail
-
isAbsolute
public static boolean isAbsolute(java.math.BigDecimal value)
-
isSmall
public static boolean isSmall(double comparedTo, java.math.BigDecimal value)
-
of
public static BigScalar of(java.math.BigDecimal value)
-
valueOf
public static BigScalar valueOf(java.lang.Comparable<?> number)
-
valueOf
public static BigScalar valueOf(double value)
-
add
public BigScalar add(java.math.BigDecimal arg)
- Specified by:
add
in interfaceScalarOperation.Addition<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this + scalarAddend
.
-
add
public BigScalar add(double arg)
- Specified by:
add
in interfaceScalarOperation.Addition<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this + scalarAddend
.
-
add
public BigScalar add(float scalarAddend)
- Specified by:
add
in interfaceScalarOperation.Addition<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this + scalarAddend
.
-
compareTo
public int compareTo(java.math.BigDecimal reference)
- Specified by:
compareTo
in interfacejava.lang.Comparable<java.math.BigDecimal>
-
conjugate
public BigScalar conjugate()
Description copied from interface:VectorSpace
This method will (most likely) be moved to some other interface in the future! Just have to figure out where it fits...
The conjugate transpose of a matrix and/or the conjugate of a scalar/field like ComplexNumber or Quaternion.
The conjugate transpose of a real matrix is simply its transpose.
- Specified by:
conjugate
in interfaceVectorSpace<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
-
divide
public BigScalar divide(java.math.BigDecimal arg)
- Specified by:
divide
in interfaceScalarOperation.Division<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this / scalarDivisor
.
-
divide
public BigScalar divide(double arg)
- Specified by:
divide
in interfaceScalarOperation.Division<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this / scalarDivisor
.
-
divide
public BigScalar divide(float scalarDivisor)
- Specified by:
divide
in interfaceScalarOperation.Division<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this / scalarDivisor
.
-
doubleValue
public double doubleValue()
- Specified by:
doubleValue
in interfaceNumberDefinition
-
enforce
public BigScalar enforce(NumberContext context)
- Specified by:
enforce
in interfaceNumberContext.Enforceable<BigScalar>
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
floatValue
public float floatValue()
- Specified by:
floatValue
in interfaceNumberDefinition
-
get
public java.math.BigDecimal get()
- Specified by:
get
in interfaceAccessScalar<java.math.BigDecimal>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
intValue
public int intValue()
- Specified by:
intValue
in interfaceNumberDefinition
-
invert
public BigScalar invert()
Description copied from interface:Group.Multiplicative
The multiplicative inverse.- Specified by:
invert
in interfaceGroup.Multiplicative<Scalar<java.math.BigDecimal>>
- Returns:
IDENTITY / this
.
-
isAbsolute
public boolean isAbsolute()
- Specified by:
isAbsolute
in interfaceScalar<java.math.BigDecimal>
- Returns:
- true if this is equal to its own norm, modulus or absolute value (non-negative real part and no imaginary part); otherwise false.
- See Also:
Scalar.isAbsolute()
-
isSmall
public boolean isSmall(double comparedTo)
- Specified by:
isSmall
in interfaceNormedVectorSpace<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Parameters:
comparedTo
- What to compare with- Returns:
- true if this is small compared to the magnitude of the input reference value.
-
longValue
public long longValue()
- Specified by:
longValue
in interfaceNumberDefinition
-
multiply
public BigScalar multiply(java.math.BigDecimal arg)
- Specified by:
multiply
in interfaceScalarOperation.Multiplication<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this * multiplicand
.
-
multiply
public BigScalar multiply(double arg)
- Specified by:
multiply
in interfaceScalarOperation.Multiplication<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this * scalarMultiplicand
.
-
multiply
public BigScalar multiply(float scalarMultiplicand)
- Specified by:
multiply
in interfaceScalarOperation.Multiplication<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this * scalarMultiplicand
.
-
negate
public BigScalar negate()
Description copied from interface:Group.Additive
The additive inverse of this.- Specified by:
negate
in interfaceGroup.Additive<Scalar<java.math.BigDecimal>>
- Returns:
-this
.
-
norm
public double norm()
Description copied from interface:NormedVectorSpace
this == this.signum().multiply(this.norm())
- Specified by:
norm
in interfaceNormedVectorSpace<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
- The norm
-
power
public BigScalar power(int power)
Description copied from interface:Operation.Multiplication
Multiply by itselfpower
times.- Specified by:
power
in interfaceOperation.Multiplication<Scalar<java.math.BigDecimal>>
-
signum
public BigScalar signum()
Description copied from interface:NormedVectorSpace
this == this.signum().multiply(this.norm())
- Specified by:
signum
in interfaceNormedVectorSpace<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
- A unit "vector"
-
subtract
public BigScalar subtract(java.math.BigDecimal arg)
- Specified by:
subtract
in interfaceScalarOperation.Subtraction<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this - scalarSubtrahend
.
-
subtract
public BigScalar subtract(double arg)
- Specified by:
subtract
in interfaceScalarOperation.Subtraction<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this - scalarSubtrahend
.
-
subtract
public BigScalar subtract(float scalarSubtrahend)
- Specified by:
subtract
in interfaceScalarOperation.Subtraction<Scalar<java.math.BigDecimal>,java.math.BigDecimal>
- Returns:
this - scalarSubtrahend
.
-
toBigDecimal
public java.math.BigDecimal toBigDecimal()
- Specified by:
toBigDecimal
in interfaceScalar<java.math.BigDecimal>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toString
public java.lang.String toString(NumberContext context)
-
-