Class DoubleMatrixAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,AV extends DoubleVectorAbs<AU,A,AV,RU,R,RV>,AM extends DoubleMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends DoubleScalarRelWithAbs<AU,A,RU,R>,RV extends DoubleVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends DoubleMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>>

java.lang.Object
org.djunits.value.IndexedValue<U,S,M,DM>
org.djunits.value.base.Matrix<U,S,V,DoubleVectorData,M,DoubleMatrixData>
org.djunits.value.vdouble.matrix.base.DoubleMatrix<AU,A,AV,AM>
org.djunits.value.vdouble.matrix.base.DoubleMatrixAbs<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<AU,AM,RU,RM>, Value<AU,AM>
Direct Known Subclasses:
AbsoluteTemperatureMatrix, DirectionMatrix, PositionMatrix, TimeMatrix

public abstract class DoubleMatrixAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,AV extends DoubleVectorAbs<AU,A,AV,RU,R,RV>,AM extends DoubleMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>,RU extends Unit<RU>,R extends DoubleScalarRelWithAbs<AU,A,RU,R>,RV extends DoubleVectorRelWithAbs<AU,A,AV,RU,R,RV>,RM extends DoubleMatrixRelWithAbs<AU,A,AV,AM,RU,R,RV,RM>> extends DoubleMatrix<AU,A,AV,AM> implements Absolute<AU,AM,RU,RM>
AbstractMutableDoubleMatrixRelWithAbs.java.

Copyright (c) 2019-2024 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:
  • Constructor Details

    • DoubleMatrixAbs

      protected DoubleMatrixAbs(DoubleMatrixData data, AU unit)
      Construct a new Relative Mutable DoubleMatrix.
      Parameters:
      data - DoubleMatrixData; an internal data object
      unit - AU; the unit
  • Method Details

    • plus

      public AM plus(RM increment) throws ValueRuntimeException
      Description copied from interface: Absolute
      Add a Relative value to this Absolute value. A new value is returned due to immutability.
      Specified by:
      plus in interface Absolute<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,AV extends DoubleVectorAbs<AU,A,AV,RU,R,RV>,AM extends DoubleMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>>
      Parameters:
      increment - R; R the right operand
      Returns:
      A; the sum of this value and the operand
      Throws:
      ValueRuntimeException
    • minus

      public AM minus(RM decrement) throws ValueRuntimeException
      Description copied from interface: Absolute
      Subtract a Relative value from this Absolute value. A new value is returned due to immutability.
      Specified by:
      minus in interface Absolute<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,AV extends DoubleVectorAbs<AU,A,AV,RU,R,RV>,AM extends DoubleMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>>
      Parameters:
      decrement - R; R the right operand
      Returns:
      A; the subtraction of this value and the operand
      Throws:
      ValueRuntimeException
    • minus

      public RM minus(AM decrement) throws ValueRuntimeException
      Description copied from interface: Absolute
      Subtract an Absolute value from this Absolute value, resulting in a Relative value. A new value is returned due to immutability.
      Specified by:
      minus in interface Absolute<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,AV extends DoubleVectorAbs<AU,A,AV,RU,R,RV>,AM extends DoubleMatrixAbs<AU,A,AV,AM,RU,R,RV,RM>>
      Parameters:
      decrement - A; A the right operand
      Returns:
      R; the subtraction of this value and the operand
      Throws:
      ValueRuntimeException
    • 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
      ValueRuntimeException - when the sizes of the matrices differ, or decrement is null
    • instantiateMatrixRel

      public abstract RM instantiateMatrixRel(DoubleMatrixData dmd, RU displayUnit)
      Instantiate a new relative matrix of the class of this absolute matrix. This can be used instead of the DoubleMatrix.instiantiate() methods in case another matrix of this absolute matrix class is known. The method is faster than DoubleMatrix.instantiate, and it will also work if the matrix is user-defined.
      Parameters:
      dmd - DoubleMatrixData; 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(DoubleVectorData dvd, RU displayUnit)
      Instantiate a new relative vector of the class of this absolute matrix. This can be used instead of the DoubleVector.instiantiate() methods in case another matrix of this absolute matrix class is known. The method is faster than DoubleVector.instantiate, and it will also work if the matrix or vector is user-defined.
      Parameters:
      dvd - DoubleVectorData; 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(double valueSI, RU displayUnit)
      Instantiate a new relative scalar for the class of this absolute matrix. This can be used instead of the DoubleScalar.instiantiate() methods in case a matrix of this class is known. The method is faster than DoubleScalar.instantiate, and it will also work if the matrix and/or scalar are user-defined.
      Parameters:
      valueSI - double; 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