Class DoubleMatrixDataDense

All Implemented Interfaces:
Serializable, Cloneable

public class DoubleMatrixDataDense extends DoubleMatrixData
Stores dense data for a DoubleMatrix and carries out basic operations.

Copyright (c) 2013-2025 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUNITS License.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
  • Constructor Details

    • DoubleMatrixDataDense

      public DoubleMatrixDataDense(double[] matrixSI, int rows, int cols) throws ValueRuntimeException
      Create a matrix with dense data.
      Parameters:
      matrixSI - the data to store
      rows - the number of rows
      cols - the number of columns
      Throws:
      ValueRuntimeException - in case rows * cols != matrixSI.length
    • DoubleMatrixDataDense

      public DoubleMatrixDataDense(double[][] matrixSI) throws ValueRuntimeException
      Create a matrix with dense data. The double array is of the form d[rows][columns] so each value can be found with d[row][column].
      Parameters:
      matrixSI - the data to store
      Throws:
      NullPointerException - when matrixSI is null
      ValueRuntimeException - in case matrix is ragged
  • Method Details

    • cardinality

      public final int cardinality()
      Description copied from class: Storage
      Compute and return the number of non-zero cells in this indexed value.
      Specified by:
      cardinality in class Storage<DoubleMatrixData>
      Returns:
      the number of non-zero cells
    • assign

      public final DoubleMatrixDataDense assign(DoubleFunction doubleFunction)
      Description copied from class: DoubleMatrixData
      Apply an operation to each cell.
      Specified by:
      assign in class DoubleMatrixData
      Parameters:
      doubleFunction - the operation to apply
      Returns:
      this (modified) double matrix data object
    • assign

      public final DoubleMatrixDataDense assign(DoubleFunction2 doubleFunction, DoubleMatrixData right)
      Description copied from class: DoubleMatrixData
      Apply a binary operation on a cell by cell basis.
      Specified by:
      assign in class DoubleMatrixData
      Parameters:
      doubleFunction - the binary operation to apply
      right - the right operand for the binary operation
      Returns:
      this (modified) double matrix data object
    • toDense

      public final DoubleMatrixDataDense toDense()
      Description copied from class: DoubleMatrixData
      Return the data of this matrix in dense storage format.
      Specified by:
      toDense in class DoubleMatrixData
      Returns:
      the dense transformation of this data
    • toSparse

      public final DoubleMatrixDataSparse toSparse()
      Description copied from class: DoubleMatrixData
      Return the data of this matrix in sparse storage format.
      Specified by:
      toSparse in class DoubleMatrixData
      Returns:
      the sparse transformation of this data
    • getSI

      public final double getSI(int row, int col)
      Description copied from class: DoubleMatrixData
      Retrieve one value from this data.
      Specified by:
      getSI in class DoubleMatrixData
      Parameters:
      row - the row number to get the value for
      col - the column number to get the value for
      Returns:
      the value at the [row, col] point
    • setSI

      public final void setSI(int row, int col, double valueSI)
      Description copied from class: DoubleMatrixData
      Sets a value at the [row, col] point in the matrix.
      Specified by:
      setSI in class DoubleMatrixData
      Parameters:
      row - the row number to set the value for
      col - the column number to set the value for
      valueSI - the value at the index
    • getDenseMatrixSI

      public final double[][] getDenseMatrixSI()
      Description copied from class: DoubleMatrixData
      Create and return a deep copy of the data in dense format. The double array is of the form d[rows][columns] so each value can be found with d[row][column].
      Specified by:
      getDenseMatrixSI in class DoubleMatrixData
      Returns:
      a safe, dense copy of matrixSI as a matrix
    • copy

      public final DoubleMatrixDataDense copy()
      Description copied from class: Storage
      Create and return a deep copy of the data.
      Specified by:
      copy in class Storage<DoubleMatrixData>
      Returns:
      a deep copy of the data
    • plus

      Description copied from class: DoubleMatrixData
      Add two matrices on a cell-by-cell basis. If both matrices are sparse, a sparse matrix is returned, otherwise a dense matrix is returned.
      Specified by:
      plus in class DoubleMatrixData
      Parameters:
      right - the other data object to add
      Returns:
      the sum of this data object and the other data object
      Throws:
      ValueRuntimeException - if matrices have different lengths
    • minus

      public final DoubleMatrixDataDense minus(DoubleMatrixData right)
      Description copied from class: DoubleMatrixData
      Subtract two matrices on a cell-by-cell basis. If both matrices are sparse, a sparse matrix is returned, otherwise a dense matrix is returned.
      Specified by:
      minus in class DoubleMatrixData
      Parameters:
      right - the other data object to subtract
      Returns:
      the sum of this data object and the other data object
    • times

      Description copied from class: DoubleMatrixData
      Multiply two matrices on a cell-by-cell basis. If both matrices are dense, a dense matrix is returned, otherwise a sparse matrix is returned.
      Specified by:
      times in class DoubleMatrixData
      Parameters:
      right - the other data object to multiply with
      Returns:
      a new double matrix data store holding the result of the multiplications
      Throws:
      ValueRuntimeException - if matrices have different sizes
    • divide

      Description copied from class: DoubleMatrixData
      Divide two matrices on a cell-by-cell basis. If this matrix is sparse and right is dense, a sparse matrix is returned, otherwise a dense matrix is returned.
      Specified by:
      divide in class DoubleMatrixData
      Parameters:
      right - the other data object to divide by
      Returns:
      the ratios of the values of this data object and the other data object
      Throws:
      ValueRuntimeException - if matrices have different sizes
    • toString

      public String toString()
      Overrides:
      toString in class Object