- 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 NumberContextCONTEXTstatic Scalar.Factory<java.lang.Double>FACTORYprivate doublemyValuestatic PrimitiveScalarNaNstatic PrimitiveScalarNEGstatic PrimitiveScalarNEGATIVE_INFINITYstatic PrimitiveScalarONEstatic PrimitiveScalarPOSITIVE_INFINITYstatic PrimitiveScalarTWOstatic PrimitiveScalarZERO
-
Constructor Summary
Constructors Modifier Constructor Description PrimitiveScalar()privatePrimitiveScalar(double value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PrimitiveScalaradd(double arg)PrimitiveScalaradd(float scalarAddend)PrimitiveScalaradd(java.lang.Double arg)intcompareTo(java.lang.Double reference)PrimitiveScalarconjugate()This method will (most likely) be moved to some other interface in the future! Just have to figure out where it fits...PrimitiveScalardivide(double arg)PrimitiveScalardivide(float scalarDivisor)PrimitiveScalardivide(java.lang.Double arg)doubledoubleValue()PrimitiveScalarenforce(NumberContext context)booleanequals(java.lang.Object obj)floatfloatValue()java.lang.Doubleget()inthashCode()intintValue()PrimitiveScalarinvert()The multiplicative inverse.booleanisAbsolute()static booleanisAbsolute(double value)static booleanisInfinite(double value)static booleanisNaN(double value)booleanisSmall(double comparedTo)static booleanisSmall(double comparedTo, double value)booleanisZero()Tests if this scalar value is exactly zero.longlongValue()PrimitiveScalarmultiply(double arg)PrimitiveScalarmultiply(float scalarMultiplicand)PrimitiveScalarmultiply(java.lang.Double arg)PrimitiveScalarnegate()The additive inverse of this.doublenorm()this == this.signum().multiply(this.norm())static PrimitiveScalarof(double value)PrimitiveScalarpower(int power)Multiply by itselfpowertimes.PrimitiveScalarsignum()this == this.signum().multiply(this.norm())PrimitiveScalarsubtract(double arg)PrimitiveScalarsubtract(float scalarSubtrahend)PrimitiveScalarsubtract(java.lang.Double arg)java.math.BigDecimaltoBigDecimal()java.lang.StringtoString()java.lang.StringtoString(NumberContext context)static PrimitiveScalarvalueOf(double value)static PrimitiveScalarvalueOf(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:
addin interfaceScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this + scalarAddend.
-
add
public PrimitiveScalar add(java.lang.Double arg)
- Specified by:
addin interfaceScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this + scalarAddend.
-
add
public PrimitiveScalar add(float scalarAddend)
- Specified by:
addin interfaceScalarOperation.Addition<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this + scalarAddend.
-
compareTo
public int compareTo(java.lang.Double reference)
- Specified by:
compareToin interfacejava.lang.Comparable<java.lang.Double>
-
conjugate
public PrimitiveScalar conjugate()
Description copied from interface:VectorSpaceThis 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:
conjugatein interfaceVectorSpace<Scalar<java.lang.Double>,java.lang.Double>
-
divide
public PrimitiveScalar divide(double arg)
- Specified by:
dividein interfaceScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this / scalarDivisor.
-
divide
public PrimitiveScalar divide(java.lang.Double arg)
- Specified by:
dividein interfaceScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this / scalarDivisor.
-
divide
public PrimitiveScalar divide(float scalarDivisor)
- Specified by:
dividein interfaceScalarOperation.Division<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this / scalarDivisor.
-
doubleValue
public double doubleValue()
- Specified by:
doubleValuein interfaceNumberDefinition
-
enforce
public PrimitiveScalar enforce(NumberContext context)
- Specified by:
enforcein interfaceNumberContext.Enforceable<PrimitiveScalar>
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
floatValue
public float floatValue()
- Specified by:
floatValuein interfaceNumberDefinition
-
get
public java.lang.Double get()
- Specified by:
getin interfaceAccessScalar<java.lang.Double>
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
intValue
public int intValue()
- Specified by:
intValuein interfaceNumberDefinition
-
invert
public PrimitiveScalar invert()
Description copied from interface:Group.MultiplicativeThe multiplicative inverse.- Specified by:
invertin interfaceGroup.Multiplicative<Scalar<java.lang.Double>>- Returns:
IDENTITY / this.
-
isAbsolute
public boolean isAbsolute()
- Specified by:
isAbsolutein 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:
isSmallin 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.
-
isZero
public boolean isZero()
Description copied from interface:ScalarTests if this scalar value is exactly zero.Each implementation should test for zero as exactly as possible based on what's achievable with that specific scalar type. The purpose is NOT to have similar behavior between different implementations, but rather to leverage the full precision and capabilities of each type.
For example:
- Primitive types (like
double) should use exact equality comparison - High-precision types (like
Quadruple) should check both base and remainder components - Arbitrary-precision types (like
BigDecimal) should use their built-in zero detection - Complex types should check both real and imaginary parts
This method should NOT use tolerance-based comparisons or approximate zero detection, as those are better handled by context-aware methods like
NormedVectorSpace.isSmall(double).- Specified by:
isZeroin interfaceScalar<java.lang.Double>- Returns:
- true if this scalar represents exactly zero, false otherwise
- See Also:
NormedVectorSpace.isSmall(double)
- Primitive types (like
-
longValue
public long longValue()
- Specified by:
longValuein interfaceNumberDefinition
-
multiply
public PrimitiveScalar multiply(double arg)
- Specified by:
multiplyin interfaceScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this * scalarMultiplicand.
-
multiply
public PrimitiveScalar multiply(java.lang.Double arg)
- Specified by:
multiplyin interfaceScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this * multiplicand.
-
multiply
public PrimitiveScalar multiply(float scalarMultiplicand)
- Specified by:
multiplyin interfaceScalarOperation.Multiplication<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this * scalarMultiplicand.
-
negate
public PrimitiveScalar negate()
Description copied from interface:Group.AdditiveThe additive inverse of this.- Specified by:
negatein interfaceGroup.Additive<Scalar<java.lang.Double>>- Returns:
-this.
-
norm
public double norm()
Description copied from interface:NormedVectorSpacethis == this.signum().multiply(this.norm())- Specified by:
normin interfaceNormedVectorSpace<Scalar<java.lang.Double>,java.lang.Double>- Returns:
- The norm
-
power
public PrimitiveScalar power(int power)
Description copied from interface:Operation.MultiplicationMultiply by itselfpowertimes.- Specified by:
powerin interfaceOperation.Multiplication<Scalar<java.lang.Double>>
-
signum
public PrimitiveScalar signum()
Description copied from interface:NormedVectorSpacethis == this.signum().multiply(this.norm())- Specified by:
signumin interfaceNormedVectorSpace<Scalar<java.lang.Double>,java.lang.Double>- Returns:
- A unit "vector"
-
subtract
public PrimitiveScalar subtract(double arg)
- Specified by:
subtractin interfaceScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this - scalarSubtrahend.
-
subtract
public PrimitiveScalar subtract(java.lang.Double arg)
- Specified by:
subtractin interfaceScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this - scalarSubtrahend.
-
subtract
public PrimitiveScalar subtract(float scalarSubtrahend)
- Specified by:
subtractin interfaceScalarOperation.Subtraction<Scalar<java.lang.Double>,java.lang.Double>- Returns:
this - scalarSubtrahend.
-
toBigDecimal
public java.math.BigDecimal toBigDecimal()
- Specified by:
toBigDecimalin interfaceScalar<java.lang.Double>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toString
public java.lang.String toString(NumberContext context)
-
-