Class AbstractFloatMatrixAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,AM extends AbstractFloatMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends AbstractFloatMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>
- java.lang.Object
-
- org.djunits.value.AbstractValue<U,T>
-
- org.djunits.value.AbstractIndexedValue<U,S,M,FloatMatrixData>
-
- org.djunits.value.vfloat.matrix.base.AbstractFloatMatrix<AU,A,AV,AM>
-
- org.djunits.value.vfloat.matrix.base.AbstractFloatMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>
-
- Type Parameters:
AU
- the absolute unit belonging to the relative unitA
- the absolute scalar type belonging to the absolute matrix typeAV
- the absolute vector type belonging to the absolute matrix typeAM
- the (immutable or mutable) absolute matrix typeRU
- the relative unit belonging to the absolute unitR
- the relative scalar type belonging to the relative matrix typeRV
- the relative vector type belonging to the relative matrix typeRM
- the relative (immutable or mutable) matrix type with this unit
- All Implemented Interfaces:
Serializable
,Cloneable
,Absolute
,Matrix<AU,A,AV,AM>
,Matrix.Abs<AU,A,AV,AM,RU,R,RV,RM>
,ValueFunctions<AU,AM>
,IndexedValue<AU,A,AM>
,Value<AU,AM>
,FloatMatrixInterface<AU,A,AV,AM>
- Direct Known Subclasses:
FloatAbsoluteTemperatureMatrix
,FloatDirectionMatrix
,FloatPositionMatrix
,FloatTimeMatrix
public abstract class AbstractFloatMatrixAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,AM extends AbstractFloatMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends AbstractFloatMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>> extends AbstractFloatMatrix<AU,A,AV,AM> implements Matrix.Abs<AU,A,AV,AM,RU,R,RV,RM>, Absolute
AbstractMutableFloatMatrixRelWithAbs.java.Copyright (c) 2019-2023 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUNITS License.- Author:
- Alexander Verbraeck
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.djunits.value.base.Matrix
Matrix.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends Scalar<AU,A>,AV extends Vector.Abs<AU,A,AV,RU,R,RV>,AM extends Matrix.Abs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends Scalar<RU,R>,RV extends Vector.RelWithAbs<AU,A,AV,RU,R,RV>,RM extends Matrix.RelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>, Matrix.Rel<U extends Unit<U>,S extends Scalar<U,S>,V extends Vector<U,S,V>,RM extends Matrix.Rel<U,S,V,RM>>, Matrix.RelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends Scalar<AU,A>,AV extends Vector.Abs<AU,A,AV,RU,R,RV>,AM extends Matrix.Abs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends Scalar<RU,R>,RV extends Vector.RelWithAbs<AU,A,AV,RU,R,RV>,RM extends Matrix.RelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>
-
-
Field Summary
-
Fields inherited from class org.djunits.value.vfloat.matrix.base.AbstractFloatMatrix
data
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractFloatMatrixAbs(FloatMatrixData data, AU unit)
Construct a new Relative Mutable FloatMatrix.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description AM
decrementBy(R decrement)
Decrement all values of this matrix by the decrement.AM
decrementBy(RM decrement)
Decrement all values of this matrix by the decrement on a value by value basis.abstract RM
instantiateMatrixRel(FloatMatrixData dmd, RU displayUnit)
Instantiate a new relative matrix of the class of this absolute matrix.abstract R
instantiateScalarRelSI(float valueSI, RU displayUnit)
Instantiate a new relative scalar for the class of this absolute matrix.abstract RV
instantiateVectorRel(FloatVectorData dvd, RU displayUnit)
Instantiate a new relative vector of the class of this absolute matrix.RM
minus(AM decrement)
Subtract an absolute matrix from this absolute matrix.AM
minus(RM decrement)
Subtract a relative matrix from this absolute matrix.AM
plus(RM increment)
Add a relative matrix to this absolute matrix.-
Methods inherited from class org.djunits.value.vfloat.matrix.base.AbstractFloatMatrix
abs, assign, ceil, checkColumnIndex, checkIndex, checkRowIndex, checkSquare, cols, determinantSI, equals, floor, get, getColumn, getColumnScalars, getColumnSI, getData, getDiagonal, getDiagonalScalars, getDiagonalSI, getInUnit, getInUnit, getRow, getRowScalars, getRowSI, getScalars, getSI, getValuesInUnit, getValuesInUnit, getValuesSI, hashCode, neg, rint, rows, set, setData, setInUnit, setInUnit, setSI, toDense, toSparse, toString, toString, toString, toString
-
Methods inherited from class org.djunits.value.AbstractIndexedValue
cardinality, checkCopyOnWrite, clone, getStorageType, immutable, isCopyOnWrite, isDense, isMutable, isSparse, mutable, setCopyOnWrite, setMutable
-
Methods inherited from class org.djunits.value.AbstractValue
getDisplayUnit, isAbsolute, isRelative, setDisplayUnit
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.djunits.value.vfloat.matrix.base.FloatMatrixInterface
instantiateMatrix, instantiateScalarSI, instantiateVector
-
Methods inherited from interface org.djunits.value.IndexedValue
cardinality, getScalarClass, getStorageType, immutable, isDense, isMutable, isSparse, mutable, toDense, toSparse
-
Methods inherited from interface org.djunits.value.base.Matrix
cols, get, getColumn, getColumnScalars, getDiagonal, getDiagonalScalars, getRow, getRowScalars, getScalars, getVectorClass, rows
-
Methods inherited from interface org.djunits.value.Value
getDisplayUnit, isAbsolute, isRelative, setDisplayUnit, toString, toString, toString, toString
-
-
-
-
Constructor Detail
-
AbstractFloatMatrixAbs
protected AbstractFloatMatrixAbs(FloatMatrixData data, AU unit)
Construct a new Relative Mutable FloatMatrix.- Parameters:
data
- FloatMatrixData; an internal data objectunit
- AU; the unit
-
-
Method Detail
-
plus
public AM plus(RM increment) throws ValueRuntimeException
Add a relative matrix to this absolute matrix. A new absolute matrix is returned. The display unit of the new matrix is the display unit of this absolute matrix. The addition is done value by value and the result is stored in a new matrix. If both operands are sparse, the result is a sparse matrix, otherwise the result is a dense matrix.- Specified by:
plus
in interfaceMatrix.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,AM extends AbstractFloatMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends AbstractFloatMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>
- Parameters:
increment
- RM; the relative matrix (mutable or immutable, sparse or dense) to add to this absolute matrix- Returns:
- AIV; the sum of this value and the operand as a new absolute, immutable matrix
- Throws:
ValueRuntimeException
- in case this matrix and the operand have a different size
-
minus
public AM minus(RM decrement) throws ValueRuntimeException
Subtract a relative matrix from this absolute matrix. A new absolute matrix is returned. The display unit of the new matrix is the display unit of this absolute matrix. The subtraction is done value by value and the result is stored in a new matrix. If both operands are sparse, the result is a sparse matrix, otherwise the result is a dense matrix.- Specified by:
minus
in interfaceMatrix.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,AM extends AbstractFloatMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends AbstractFloatMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>
- Parameters:
decrement
- RM; the relative matrix (mutable or immutable, sparse or dense) to subtract from this absolute matrix- Returns:
- AIV; the difference of this value and the operand as a new absolute, immutable matrix
- Throws:
ValueRuntimeException
- in case this matrix and the operand have a different size
-
minus
public RM minus(AM decrement) throws ValueRuntimeException
Subtract an absolute matrix from this absolute matrix. A new relative matrix is returned. The display unit of the new matrix is the relative counterpart of the display unit of this absolute matrix. The subtraction is done value by value and the result is stored in a new matrix. If both operands are sparse, the result is a sparse matrix, otherwise the result is a dense matrix.- Specified by:
minus
in interfaceMatrix.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,AM extends AbstractFloatMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends AbstractFloatMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>
- Parameters:
decrement
- AM; the absolute matrix (mutable or immutable, sparse or dense) to subtract from this absolute matrix- Returns:
- RIV; the difference of this value and the operand as a new relative, immutable matrix
- Throws:
ValueRuntimeException
- in case this matrix and the operand have a different size
-
decrementBy
public AM decrementBy(R decrement)
Decrement all values of this matrix by the decrement. This only works if this matrix is mutable.- Parameters:
decrement
- R; the scalar by which to decrement all values- Returns:
- AM; this modified vector
- Throws:
ValueRuntimeException
- in case this vector is immutable
-
decrementBy
public AM decrementBy(RM decrement)
Decrement all values of this matrix by the decrement on a value by value basis. This only works if this matrix is mutable.- Parameters:
decrement
- RM; the matrix that contains the values by which to decrement the corresponding values- Returns:
- AV; this modified matrix
- Throws:
ValueRuntimeException
- in case this matrix is immutable or when the sizes of the matrices differ
-
instantiateMatrixRel
public abstract RM instantiateMatrixRel(FloatMatrixData dmd, RU displayUnit)
Instantiate a new relative matrix of the class of this absolute matrix. This can be used instead of the FloatMatrix.instiantiate() methods in case another matrix of this absolute matrix class is known. The method is faster than FloatMatrix.instantiate, and it will also work if the matrix is user-defined.- Parameters:
dmd
- FloatMatrixData; the data used to instantiate the matrixdisplayUnit
- RU; the display unit of the relative matrix- Returns:
- RM; a relative matrix of the correct type, belonging to this absolute matrix type
-
instantiateVectorRel
public abstract RV instantiateVectorRel(FloatVectorData dvd, RU displayUnit)
Instantiate a new relative vector of the class of this absolute matrix. This can be used instead of the FloatVector.instiantiate() methods in case another matrix of this absolute matrix class is known. The method is faster than FloatVector.instantiate, and it will also work if the matrix or vector is user-defined.- Parameters:
dvd
- FloatVectorData; the data used to instantiate the vectordisplayUnit
- RU; the display unit of the relative vector- Returns:
- RV; a relative vector of the correct type, belonging to this absolute matrix type
-
instantiateScalarRelSI
public abstract R instantiateScalarRelSI(float valueSI, RU displayUnit)
Instantiate a new relative scalar for the class of this absolute matrix. This can be used instead of the FloatScalar.instiantiate() methods in case a matrix of this class is known. The method is faster than FloatScalar.instantiate, and it will also work if the matrix and/or scalar are user-defined.- Parameters:
valueSI
- float; the SI value of the relative scalardisplayUnit
- RU; the unit in which the relative value will be displayed- Returns:
- R; a relative scalar of the correct type, belonging to this absolute matrix type
-
-