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 unit
A - the absolute scalar type belonging to the absolute matrix type
AV - the absolute vector type belonging to the absolute matrix type
AM - the (immutable or mutable) absolute matrix type
RU - the relative unit belonging to the absolute unit
R - the relative scalar type belonging to the relative matrix type
RV - the relative vector type belonging to the relative matrix type
RM - 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-2019 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
  • Constructor Details

    • AbstractFloatMatrixAbs

      protected AbstractFloatMatrixAbs​(FloatMatrixData data, AU unit)
      Construct a new Relative Mutable FloatMatrix.
      Parameters:
      data - FloatMatrixData; an internal data object
      unit - U; the unit
  • Method Details

    • 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 interface Matrix.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 - RV; 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 interface Matrix.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 - RV; 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 interface Matrix.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 - AV; 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 - RV; 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 matrix
      displayUnit - 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 vector
      displayUnit - 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 scalar
      displayUnit - 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