Package org.ojalgo.scalar
Class PrimitiveScalar
- java.lang.Object
-
- org.ojalgo.scalar.PrimitiveScalar
-
- All Implemented Interfaces:
java.lang.Comparable<java.lang.Double>
,Field<Scalar<java.lang.Double>>
,Group
,Group.Additive<Scalar<java.lang.Double>>
,Group.Multiplicative<Scalar<java.lang.Double>>
,NormedVectorSpace<Scalar<java.lang.Double>,java.lang.Double>
,Operation
,Operation.Addition<Scalar<java.lang.Double>>
,Operation.Division<Scalar<java.lang.Double>>
,Operation.Multiplication<Scalar<java.lang.Double>>
,Operation.Subtraction<Scalar<java.lang.Double>>
,Ring<Scalar<java.lang.Double>>
,ScalarOperation
,ScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>
,ScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>
,ScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>
,ScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>
,VectorSpace<Scalar<java.lang.Double>,java.lang.Double>
,Scalar<java.lang.Double>
,AccessScalar<java.lang.Double>
,Tensor<java.lang.Double,Scalar<java.lang.Double>>
,NumberContext.Enforceable<PrimitiveScalar>
,NumberDefinition
public final class PrimitiveScalar extends java.lang.Object implements Scalar<java.lang.Double>, NumberContext.Enforceable<PrimitiveScalar>
-
-
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>>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static NumberContext
CONTEXT
static Scalar.Factory<java.lang.Double>
FACTORY
private double
myValue
static PrimitiveScalar
NaN
static PrimitiveScalar
NEG
static PrimitiveScalar
NEGATIVE_INFINITY
static PrimitiveScalar
ONE
static PrimitiveScalar
POSITIVE_INFINITY
static PrimitiveScalar
TWO
static PrimitiveScalar
ZERO
-
Constructor Summary
Constructors Modifier Constructor Description PrimitiveScalar()
private
PrimitiveScalar(double value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PrimitiveScalar
add(double arg)
PrimitiveScalar
add(float scalarAddend)
PrimitiveScalar
add(java.lang.Double arg)
int
compareTo(java.lang.Double reference)
PrimitiveScalar
conjugate()
This method will (most likely) be moved to some other interface in the future! Just have to figure out where it fits...PrimitiveScalar
divide(double arg)
PrimitiveScalar
divide(float scalarDivisor)
PrimitiveScalar
divide(java.lang.Double arg)
double
doubleValue()
PrimitiveScalar
enforce(NumberContext context)
boolean
equals(java.lang.Object obj)
float
floatValue()
java.lang.Double
get()
int
hashCode()
int
intValue()
PrimitiveScalar
invert()
The multiplicative inverse.boolean
isAbsolute()
static boolean
isAbsolute(double value)
static boolean
isInfinite(double value)
static boolean
isNaN(double value)
boolean
isSmall(double comparedTo)
static boolean
isSmall(double comparedTo, double value)
long
longValue()
PrimitiveScalar
multiply(double arg)
PrimitiveScalar
multiply(float scalarMultiplicand)
PrimitiveScalar
multiply(java.lang.Double arg)
PrimitiveScalar
negate()
The additive inverse of this.double
norm()
this == this.signum().multiply(this.norm())
static PrimitiveScalar
of(double value)
PrimitiveScalar
power(int power)
Multiply by itselfpower
times.PrimitiveScalar
signum()
this == this.signum().multiply(this.norm())
PrimitiveScalar
subtract(double arg)
PrimitiveScalar
subtract(float scalarSubtrahend)
PrimitiveScalar
subtract(java.lang.Double arg)
java.math.BigDecimal
toBigDecimal()
java.lang.String
toString()
java.lang.String
toString(NumberContext context)
static PrimitiveScalar
valueOf(double value)
static PrimitiveScalar
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.lang.Double> FACTORY
-
NaN
public static final PrimitiveScalar NaN
-
NEG
public static final PrimitiveScalar NEG
-
NEGATIVE_INFINITY
public static final PrimitiveScalar NEGATIVE_INFINITY
-
ONE
public static final PrimitiveScalar ONE
-
POSITIVE_INFINITY
public static final PrimitiveScalar POSITIVE_INFINITY
-
TWO
public static final PrimitiveScalar TWO
-
ZERO
public static final PrimitiveScalar ZERO
-
CONTEXT
static final NumberContext CONTEXT
-
myValue
private final double myValue
-
-
Method Detail
-
isAbsolute
public static boolean isAbsolute(double value)
-
isInfinite
public static boolean isInfinite(double value)
-
isNaN
public static boolean isNaN(double value)
-
isSmall
public static boolean isSmall(double comparedTo, double value)
-
of
public static PrimitiveScalar of(double value)
-
valueOf
public static PrimitiveScalar valueOf(java.lang.Comparable<?> number)
-
valueOf
public static PrimitiveScalar valueOf(double value)
-
add
public PrimitiveScalar add(double arg)
- Specified by:
add
in interfaceScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this + scalarAddend
.
-
add
public PrimitiveScalar add(java.lang.Double arg)
- Specified by:
add
in interfaceScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this + scalarAddend
.
-
add
public PrimitiveScalar add(float scalarAddend)
- Specified by:
add
in interfaceScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this + scalarAddend
.
-
compareTo
public int compareTo(java.lang.Double reference)
- Specified by:
compareTo
in interfacejava.lang.Comparable<java.lang.Double>
-
conjugate
public PrimitiveScalar 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.lang.Double>,java.lang.Double>
-
divide
public PrimitiveScalar divide(double arg)
- Specified by:
divide
in interfaceScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this / scalarDivisor
.
-
divide
public PrimitiveScalar divide(java.lang.Double arg)
- Specified by:
divide
in interfaceScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this / scalarDivisor
.
-
divide
public PrimitiveScalar divide(float scalarDivisor)
- Specified by:
divide
in interfaceScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this / scalarDivisor
.
-
doubleValue
public double doubleValue()
- Specified by:
doubleValue
in interfaceNumberDefinition
-
enforce
public PrimitiveScalar enforce(NumberContext context)
- Specified by:
enforce
in interfaceNumberContext.Enforceable<PrimitiveScalar>
-
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.lang.Double get()
- Specified by:
get
in interfaceAccessScalar<java.lang.Double>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
intValue
public int intValue()
- Specified by:
intValue
in interfaceNumberDefinition
-
invert
public PrimitiveScalar invert()
Description copied from interface:Group.Multiplicative
The multiplicative inverse.- Specified by:
invert
in interfaceGroup.Multiplicative<Scalar<java.lang.Double>>
- Returns:
IDENTITY / this
.
-
isAbsolute
public boolean isAbsolute()
- Specified by:
isAbsolute
in interfaceScalar<java.lang.Double>
- 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.lang.Double>,java.lang.Double>
- 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 PrimitiveScalar multiply(double arg)
- Specified by:
multiply
in interfaceScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this * scalarMultiplicand
.
-
multiply
public PrimitiveScalar multiply(java.lang.Double arg)
- Specified by:
multiply
in interfaceScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this * multiplicand
.
-
multiply
public PrimitiveScalar multiply(float scalarMultiplicand)
- Specified by:
multiply
in interfaceScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this * scalarMultiplicand
.
-
negate
public PrimitiveScalar negate()
Description copied from interface:Group.Additive
The additive inverse of this.- Specified by:
negate
in interfaceGroup.Additive<Scalar<java.lang.Double>>
- Returns:
-this
.
-
norm
public double norm()
Description copied from interface:NormedVectorSpace
this == this.signum().multiply(this.norm())
- Specified by:
norm
in interfaceNormedVectorSpace<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
- The norm
-
power
public PrimitiveScalar power(int power)
Description copied from interface:Operation.Multiplication
Multiply by itselfpower
times.- Specified by:
power
in interfaceOperation.Multiplication<Scalar<java.lang.Double>>
-
signum
public PrimitiveScalar signum()
Description copied from interface:NormedVectorSpace
this == this.signum().multiply(this.norm())
- Specified by:
signum
in interfaceNormedVectorSpace<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
- A unit "vector"
-
subtract
public PrimitiveScalar subtract(double arg)
- Specified by:
subtract
in interfaceScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this - scalarSubtrahend
.
-
subtract
public PrimitiveScalar subtract(java.lang.Double arg)
- Specified by:
subtract
in interfaceScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this - scalarSubtrahend
.
-
subtract
public PrimitiveScalar subtract(float scalarSubtrahend)
- Specified by:
subtract
in interfaceScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>
- Returns:
this - scalarSubtrahend
.
-
toBigDecimal
public java.math.BigDecimal toBigDecimal()
- Specified by:
toBigDecimal
in interfaceScalar<java.lang.Double>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toString
public java.lang.String toString(NumberContext context)
-
-