Class DoubleMatrixDataDense
java.lang.Object
org.djunits.value.storage.Storage<DoubleMatrixData>
org.djunits.value.vdouble.matrix.data.DoubleMatrixData
org.djunits.value.vdouble.matrix.data.DoubleMatrixDataDense
- All Implemented Interfaces:
Serializable
,Cloneable
Stores dense data for a DoubleMatrix and carries out basic operations.
Copyright (c) 2013-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, Peter Knoppers
- See Also:
-
Field Summary
Fields inherited from class org.djunits.value.vdouble.matrix.data.DoubleMatrixData
cols, matrixSI, rows
-
Constructor Summary
ConstructorDescriptionDoubleMatrixDataDense
(double[][] matrixSI) Create a matrix with dense data.DoubleMatrixDataDense
(double[] matrixSI, int rows, int cols) Create a matrix with dense data. -
Method Summary
Modifier and TypeMethodDescriptionfinal DoubleMatrixDataDense
assign
(DoubleFunction doubleFunction) Apply an operation to each cell.final DoubleMatrixDataDense
assign
(DoubleFunction2 doubleFunction, DoubleMatrixData right) Apply a binary operation on a cell by cell basis.final int
Compute and return the number of non-zero cells in this indexed value.final DoubleMatrixDataDense
copy()
Create and return a deep copy of the data.divide
(DoubleMatrixData right) Divide two matrices on a cell-by-cell basis.final double[][]
Create and return a deep copy of the data in dense format.final double
getSI
(int row, int col) Retrieve one value from this data.final DoubleMatrixDataDense
minus
(DoubleMatrixData right) Subtract two matrices on a cell-by-cell basis.plus
(DoubleMatrixData right) Add two matrices on a cell-by-cell basis.final void
setSI
(int row, int col, double valueSI) Sets a value at the [row, col] point in the matrix.times
(DoubleMatrixData right) Multiply two matrices on a cell-by-cell basis.final DoubleMatrixDataDense
toDense()
Return the data of this matrix in dense storage format.final DoubleMatrixDataSparse
toSparse()
Return the data of this matrix in sparse storage format.toString()
Methods inherited from class org.djunits.value.vdouble.matrix.data.DoubleMatrixData
checkRectangularAndNonNull, checkRectangularAndNonNull, checkSizes, cols, compareDenseMatrixWithSparseMatrix, decrementBy, divideBy, equals, hashCode, incrementBy, instantiate, instantiate, instantiate, multiplyBy, rows, zSum
Methods inherited from class org.djunits.value.storage.Storage
getStorageType, isDense, isSparse
-
Constructor Details
-
DoubleMatrixDataDense
Create a matrix with dense data.- Parameters:
matrixSI
- double[]; the data to storerows
- int; the number of rowscols
- int; the number of columns- Throws:
ValueRuntimeException
- in caserows * cols != matrixSI.length
-
DoubleMatrixDataDense
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
- double[][]; the data to store- Throws:
NullPointerException
- when matrixSI is nullValueRuntimeException
- 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 classStorage<DoubleMatrixData>
- Returns:
- int; the number of non-zero cells
-
assign
Description copied from class:DoubleMatrixData
Apply an operation to each cell.- Specified by:
assign
in classDoubleMatrixData
- Parameters:
doubleFunction
- DoubleFunction; the operation to apply- Returns:
- DoubleMatrixData; this (modified) double matrix data object
-
assign
Description copied from class:DoubleMatrixData
Apply a binary operation on a cell by cell basis.- Specified by:
assign
in classDoubleMatrixData
- Parameters:
doubleFunction
- DoubleFunction2; the binary operation to applyright
- DoubleMatrixData; the right operand for the binary operation- Returns:
- DoubleMatrixData; this (modified) double matrix data object
-
toDense
Description copied from class:DoubleMatrixData
Return the data of this matrix in dense storage format.- Specified by:
toDense
in classDoubleMatrixData
- Returns:
- DoubleMatrixDataDense; the dense transformation of this data
-
toSparse
Description copied from class:DoubleMatrixData
Return the data of this matrix in sparse storage format.- Specified by:
toSparse
in classDoubleMatrixData
- Returns:
- DoubleMatrixDataSparse; 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 classDoubleMatrixData
- Parameters:
row
- int; the row number to get the value forcol
- int; 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 classDoubleMatrixData
- Parameters:
row
- int; the row number to set the value forcol
- int; the column number to set the value forvalueSI
- double; 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 classDoubleMatrixData
- Returns:
- double[][]; a safe, dense copy of matrixSI as a matrix
-
copy
Description copied from class:Storage
Create and return a deep copy of the data.- Specified by:
copy
in classStorage<DoubleMatrixData>
- Returns:
- T; 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 classDoubleMatrixData
- Parameters:
right
- DoubleMatrixData; 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
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 classDoubleMatrixData
- Parameters:
right
- DoubleMatrixData; 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 classDoubleMatrixData
- Parameters:
right
- DoubleMatrixData; the other data object to multiply with- Returns:
- DoubleVectorData; 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 andright
is dense, a sparse matrix is returned, otherwise a dense matrix is returned.- Specified by:
divide
in classDoubleMatrixData
- Parameters:
right
- DoubleMatrixData; the other data object to divide by- Returns:
- DoubleMatrixData; the ratios of the values of this data object and the other data object
- Throws:
ValueRuntimeException
- if matrices have different sizes
-
toString
-