Class AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>

Type Parameters:
A - the absolute quantity type
Q - the corresponding relative quantity type
All Implemented Interfaces:
Serializable, Value<Q>

public class AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>> extends AbsSquareMatrix<A,Q,AbsMatrix3x3<A,Q>,Matrix3x3<Q>>
AbsMatrix3x3 implements a matrix with 3x3 absolute quantities with a reference point. The matrix is immutable, except for the display unit, which can be changed.

Copyright (c) 2026-2026 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djunits.org. The DJUNITS project is distributed under a three-clause BSD-style license.

Author:
Alexander Verbraeck
See Also:
  • Constructor Details

    • AbsMatrix3x3

      public AbsMatrix3x3(Matrix3x3<Q> relativeMatrix, Reference<?,A,Q> reference)
      Create a new AbsMatrix3x3 with a display unit and a reference point.
      Parameters:
      relativeMatrix - the matrix values {a11} expressed in the displayUnit
      reference - the reference point for the absolute values
  • Method Details

    • instantiate

      public AbsMatrix3x3<A,Q> instantiate(Matrix3x3<Q> relativeMatrix, Reference<?,A,Q> reference)
      Description copied from class: AbsVectorMatrix
      Return a new vector or matrix with the given SI or BASE values for the relative vector or matrix. The absolute matrix uses the display unit of the relative vector or matrix.
      Specified by:
      instantiate in class AbsVectorMatrix<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>,Matrix3x3<Q extends Quantity<Q>>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>>
      Parameters:
      relativeMatrix - the underlying relative vector or matrix with SI values relative to the reference point
      reference - the reference point for the relative SI values
      Returns:
      a new matrix with the provided SI or BASE values, and the display unit of the relative vector or matrix
    • getRowVector

      public AbsVector3.Row<A,Q> getRowVector(int row)
      Description copied from class: AbsTable
      Return a quantity row (0-based) from the vector or matrix. Note that the specific vector to return can be tightened by the implementing class.
      Specified by:
      getRowVector in class AbsTable<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>,Matrix3x3<Q extends Quantity<Q>>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>>
      Parameters:
      row - the row number to retrieve (0-based)
      Returns:
      a row vector with the data at the given row
    • mgetRowVector

      public AbsVector3.Row<A,Q> mgetRowVector(int mRow)
      Description copied from class: AbsTable
      Return a quantity row (1-based) from the vector or matrix. Note that the specific vector to return can be tightened by the implementing class.
      Specified by:
      mgetRowVector in class AbsTable<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>,Matrix3x3<Q extends Quantity<Q>>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>>
      Parameters:
      mRow - the row number to retrieve (1-based)
      Returns:
      a row vector with the data at the given row
    • getColumnVector

      public AbsVector3.Col<A,Q> getColumnVector(int col)
      Description copied from class: AbsTable
      Return a quantity column (0-based) from the vector or matrix. Note that the specific vector to return can be tightened by the implementing class.
      Specified by:
      getColumnVector in class AbsTable<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>,Matrix3x3<Q extends Quantity<Q>>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>>
      Parameters:
      col - the column number to retrieve (0-based)
      Returns:
      a column vector with the data at the given column
    • mgetColumnVector

      public AbsVector3.Col<A,Q> mgetColumnVector(int mCol)
      Description copied from class: AbsTable
      Return a quantity column (1-based) from the vector or matrix. Note that the specific vector to return can be tightened by the implementing class.
      Specified by:
      mgetColumnVector in class AbsTable<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>,Matrix3x3<Q extends Quantity<Q>>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>>
      Parameters:
      mCol - the column number to retrieve (1-based)
      Returns:
      a column vector with the data at the given column
    • getDiagonalVector

      public AbsVector3.Col<A,Q> getDiagonalVector()
      Description copied from class: AbsSquareMatrix
      Retrieve the main diagonal of the matrix as a column vector.
      Specified by:
      getDiagonalVector in class AbsSquareMatrix<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>,AbsMatrix3x3<A extends AbsQuantity<A,Q,?>,Q extends Quantity<Q>>,Matrix3x3<Q extends Quantity<Q>>>
      Returns:
      the main diagonal as a Vector
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(double[] dataInUnit, UnitInterface<Q> unit, R reference)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      dataInUnit - the matrix values {a11, a12, 13, ..., a31, a32, a33} expressed as an array in the display unit
      unit - the unit of the data, which will also be used as the display unit
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • ofSi

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> ofSi(double[] dataSi, UnitInterface<Q> displayUnit, R reference)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      dataSi - the matrix values {a11, a12, 13, ..., a31, a32, a33} expressed as an array in the SI units
      displayUnit - the display unit to use
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(Q[] data, R reference)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      data - the matrix values {a11, a12, 13, ..., a31, a32, a33} expressed as an array of quantities
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(A[] absData)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      absData - the {a11, a12, a13, ..., a31, a32, a33} values expressed as an array of absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • ofSi

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> ofSi(double[][] gridSi, UnitInterface<Q> displayUnit, R reference)
      Create an AbsMatrix3x3 with a unit, based on a 2-dimensional grid with SI-values.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      gridSi - the matrix values {{a11, a12, 13}, ..., {a31, a32, a33}} expressed in the SI or base unit
      displayUnit - the unit of the data, which will also be used as the display unit
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(double[][] gridInUnit, UnitInterface<Q> unit, R reference)
      Create an AbsMatrix3x3 with a unit, based on a 2-dimensional grid.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      gridInUnit - the matrix values {{a11, a12, 13}, ..., {a31, a32, a33}} expressed in the unit
      unit - the unit of the data, which will also be used as the display unit
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(Q[][] grid, R reference)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      grid - the matrix values {{a11, a12, 13}, ..., {a31, a32, a33}} expressed as an array of quantities
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(A[][] absGrid)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      absGrid - the {{a11, a12, a13}, ..., {a31, a32, a33}} values expressed as an grid [][] of absolute quantities
      Returns:
      a new Matrix3x3 with a unit
    • of

      public static <A extends AbsQuantity<A, Q, R>, Q extends Quantity<Q>, R extends Reference<R, A, Q>> AbsMatrix3x3<A,Q> of(Matrix3x3<Q> relativeMatrix, R reference)
      Create an AbsMatrix3x3 without needing generics.
      Type Parameters:
      A - the absolute quantity type
      Q - the quantity type
      R - the reference type
      Parameters:
      relativeMatrix - the relative matrix with values relative to the reference point
      reference - the reference point for the absolute quantities
      Returns:
      a new Matrix3x3 with a unit