Class FloatMatrixDataDense
java.lang.Object
org.djunits.value.storage.AbstractStorage<FloatMatrixData>
org.djunits.value.vfloat.matrix.data.FloatMatrixData
org.djunits.value.vfloat.matrix.data.FloatMatrixDataDense
- All Implemented Interfaces:
Serializable,Cloneable
public class FloatMatrixDataDense extends FloatMatrixData
Stores dense data for a FloatMatrix and carries out basic operations.
Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers
- See Also:
- Serialized Form
-
Field Summary
Fields inherited from class org.djunits.value.vfloat.matrix.data.FloatMatrixData
cols, matrixSI, rows -
Constructor Summary
Constructors Constructor Description FloatMatrixDataDense(float[][] matrixSI)Create a matrix with dense data.FloatMatrixDataDense(float[] matrixSI, int rows, int cols)Create a matrix with dense data. -
Method Summary
Modifier and Type Method Description FloatMatrixDataDenseassign(FloatFunction floatFunction)Apply an operation to each cell.FloatMatrixDataDenseassign(FloatFunction2 floatFunction, FloatMatrixData right)Apply a binary operation on a cell by cell basis.intcardinality()Compute and return the number of non-zero cells in this indexed value.FloatMatrixDataDensecopy()Create and return a deep copy of the data.FloatMatrixDatadivide(FloatMatrixData right)Divide two matrices on a cell-by-cell basis.float[][]getDenseMatrixSI()Create and return a deep copy of the data in dense format.double[][]getDoubleDenseMatrixSI()Create and return a deep copy of the data in dense format.floatgetSI(int row, int col)Retrieve one value from this data.FloatMatrixDataDenseminus(FloatMatrixData right)Subtract two matrices on a cell-by-cell basis.FloatMatrixDataplus(FloatMatrixData right)Add two matrices on a cell-by-cell basis.voidsetSI(int row, int col, float valueSI)Sets a value at the [row, col] point in the matrix.FloatMatrixDatatimes(FloatMatrixData right)Multiply two matrices on a cell-by-cell basis.FloatMatrixDataDensetoDense()Return the data of this matrix in dense storage format.FloatMatrixDataSparsetoSparse()Return the data of this matrix in sparse storage format.Methods inherited from class org.djunits.value.vfloat.matrix.data.FloatMatrixData
checkRectangularAndNonEmpty, checkRectangularAndNonEmpty, checkSizes, cols, compareDenseMatrixWithSparseMatrix, decrementBy, divideBy, equals, hashCode, incrementBy, instantiate, instantiate, instantiate, multiplyBy, rows, toString, zSumMethods inherited from class org.djunits.value.storage.AbstractStorage
getStorageType, isDense, isSparse
-
Constructor Details
-
FloatMatrixDataDense
Create a matrix with dense data.- Parameters:
matrixSI- float[]; the data to storerows- int; the number of rowscols- int; the number of columns- Throws:
ValueRuntimeException- in caserows * cols != matrixSI.length
-
FloatMatrixDataDense
Create a matrix with dense data. The float array is of the form d[rows][columns] so each value can be found with f[row][column].- Parameters:
matrixSI- float[][]; the data to store- Throws:
ValueRuntimeException- in case matrix is ragged
-
-
Method Details
-
cardinality
public final int cardinality()Compute and return the number of non-zero cells in this indexed value.- Specified by:
cardinalityin classAbstractStorage<FloatMatrixData>- Returns:
- int; the number of non-zero cells
-
assign
Apply an operation to each cell.- Specified by:
assignin classFloatMatrixData- Parameters:
floatFunction- DoubleFunction; the operation to apply- Returns:
- FloatMatrixData; this (modified) double vector data object
-
assign
Apply a binary operation on a cell by cell basis.- Specified by:
assignin classFloatMatrixData- Parameters:
floatFunction- FloatFunction2; the binary operation to applyright- FloatMatrixData; the right operand for the binary operation- Returns:
- FloatMatrixData; this (modified) double matrix data object
-
toDense
Return the data of this matrix in dense storage format.- Specified by:
toDensein classFloatMatrixData- Returns:
- FloatMatrixDataDense; the dense transformation of this data
-
toSparse
Return the data of this matrix in sparse storage format.- Specified by:
toSparsein classFloatMatrixData- Returns:
- FloatMatrixDataSparse; the sparse transformation of this data
-
getSI
public final float getSI(int row, int col)Retrieve one value from this data.- Specified by:
getSIin classFloatMatrixData- 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, float valueSI)Sets a value at the [row, col] point in the matrix.- Specified by:
setSIin classFloatMatrixData- Parameters:
row- int; the row number to set the value forcol- int; the column number to set the value forvalueSI- float; the value at the index
-
getDenseMatrixSI
public final float[][] getDenseMatrixSI()Create and return a deep copy of the data in dense format. The float array is of the form f[rows][columns] so each value can be found with f[row][column].- Specified by:
getDenseMatrixSIin classFloatMatrixData- Returns:
- float[][]; a safe, dense copy of matrixSI as a matrix
-
getDoubleDenseMatrixSI
public final double[][] getDoubleDenseMatrixSI()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:
getDoubleDenseMatrixSIin classFloatMatrixData- Returns:
- double[][]; a safe, dense copy of matrixSI as a matrix
-
copy
Create and return a deep copy of the data.- Specified by:
copyin classAbstractStorage<FloatMatrixData>- Returns:
- T; a deep copy of the data
-
plus
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:
plusin classFloatMatrixData- Parameters:
right- FloatMatrixData; 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
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:
minusin classFloatMatrixData- Parameters:
right- FloatMatrixData; the other data object to subtract- Returns:
- the sum of this data object and the other data object
-
times
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:
timesin classFloatMatrixData- Parameters:
right- FloatMatrixData; the other data object to multiply with- Returns:
- FloatMatrixData; a new double matrix data store holding the result of the multiplications
- Throws:
ValueRuntimeException- if matrices have different sizes
-
divide
Divide 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:
dividein classFloatMatrixData- Parameters:
right- FloatMatrixData; the other data object to divide by- Returns:
- the sum of this data object and the other data object
- Throws:
ValueRuntimeException- if matrices have different sizes
-