Class BlockDenseDoubleMatrix2D
- java.lang.Object
-
- java.lang.Number
-
- org.ujmp.core.AbstractMatrix
-
- org.ujmp.core.genericmatrix.stub.AbstractGenericMatrix<T>
-
- org.ujmp.core.numbermatrix.stub.AbstractNumberMatrix<java.lang.Double>
-
- org.ujmp.core.doublematrix.stub.AbstractDoubleMatrix
-
- org.ujmp.core.doublematrix.stub.AbstractDoubleMatrix2D
-
- org.ujmp.core.doublematrix.stub.AbstractDenseDoubleMatrix2D
-
- org.ujmp.core.doublematrix.impl.BlockDenseDoubleMatrix2D
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Comparable<Matrix>
,HasMetaData
,BaseMatrix
,BooleanCalculations
,CanPerformCalculations
,DenseMatrix
,DenseMatrix2D
,DenseMatrixMultiD
,BaseDoubleMatrix
,BasicDoubleCalculations
,DoubleCalculations
,BasicEntrywiseDoubleCalculations
,CreatorDoubleCalculations
,EntrywiseDoubleCalculations
,HyperbolicDoubleCalculations
,MiscEntrywiseDoubleCalculations
,RoundingDoubleCalculations
,TrigonometricDoubleCalculations
,DecompositionDoubleCalculations
,DiscretizeCalculations
,GeneralDoubleCalculations
,MiscGeneralDoubleCalculations
,MissingValueDoubleCalculations
,StatisticalDoubleCalculations
,DenseDoubleMatrix
,DenseDoubleMatrix2D
,DenseDoubleMatrixMultiD
,DoubleMatrix
,DoubleMatrix2D
,DoubleMatrixMultiD
,SparseDoubleMatrix
,SparseDoubleMatrix2D
,SparseDoubleMatrixMultiD
,BaseGenericMatrix<java.lang.Double>
,DenseGenericMatrix<java.lang.Double>
,DenseGenericMatrix2D<java.lang.Double>
,DenseGenericMatrixMultiD<java.lang.Double>
,GenericMatrix<java.lang.Double>
,GenericMatrix2D<java.lang.Double>
,GenericMatrixMultiD<java.lang.Double>
,SparseGenericMatrix<java.lang.Double>
,SparseGenericMatrix2D<java.lang.Double>
,SparseGenericMatrixMultiD<java.lang.Double>
,BaseMatrixProperties
,Clearable
,Conversions
,CoordinateFunctions
,CoreObject
,DistanceMeasures
,ExtendedMatrixProperties
,GettersAndSetters
,HasBlockDoubleArray2D
,HasDescription
,HasGUIObject
,HasId
,HasLabel
,IntCalculations
,Matrix
,Matrix2D
,MatrixMultiD
,BaseNumberMatrix<java.lang.Double>
,DenseNumberMatrix<java.lang.Double>
,DenseNumberMatrix2D<java.lang.Double>
,DenseNumberMatrixMultiD<java.lang.Double>
,NumberMatrix<java.lang.Double>
,NumberMatrix2D<java.lang.Double>
,NumberMatrixMultiD<java.lang.Double>
,SparseNumberMatrix<java.lang.Double>
,SparseNumberMatrix2D<java.lang.Double>
,SparseNumberMatrixMultiD<java.lang.Double>
,ObjectCalculations
,SparseMatrix
,SparseMatrix2D
,SparseMatrixMultiD
,StringCalculations
public class BlockDenseDoubleMatrix2D extends AbstractDenseDoubleMatrix2D implements HasBlockDoubleArray2D
A dense 2D matrix with square block layout. The data in the matrix is re-organised as a block, tiled layout, which on modern CPUs with multiple caches reduces the number of cache misses, by providing better cache locality and cache temporality.Block Layout (example)
Example: a 4x4 matrix with block size 2x2 is internally re-organised into 4 separate blocks :
|(0,0) , (0, 1) | (0, 2) , (0, 3) |
|(1,0) , (1, 1) | (1, 2) , (1, 3) |
|----------------------------------
|(2,0) , (2, 1) | (2, 2) , (2, 3) |
|(3,0) , (3, 1) | (3, 2) , (3, 3) |
This can be described as a matrix of the following blocks:
| A | B |
| C | D |
Each block is mapped to a separate one-dimensional array. For example block A:
[ (0,0), (1,0), (0, 1), (1, 1)]
This layout is similar to what's described in [ref: II fig. 4b].
Choice of block size:
The blocks may be square and can be configured by the user at runtime. However, matrix multiplication performance will be sensitive to the choice of block size, depending on the amount of CPU cache available on the system.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private double[][]
data
Matrix data by block number.protected BlockMatrixLayout
layout
Layout of matrix and blocks.private static long
serialVersionUID
-
Fields inherited from class org.ujmp.core.AbstractMatrix
guiObject, size
-
Fields inherited from interface org.ujmp.core.BaseMatrix
ALL, COLUMN, LINK, NEW, NONE, ORIG, ROW, X, Y, Z
-
Fields inherited from interface org.ujmp.core.doublematrix.DenseDoubleMatrix2D
Factory
-
Fields inherited from interface org.ujmp.core.DenseMatrix
Factory
-
Fields inherited from interface org.ujmp.core.DenseMatrix2D
Factory
-
Fields inherited from interface org.ujmp.core.doublematrix.DoubleMatrix
Factory
-
Fields inherited from interface org.ujmp.core.doublematrix.DoubleMatrix2D
Factory
-
Fields inherited from interface org.ujmp.core.interfaces.HasDescription
DESCRIPTION
-
Fields inherited from interface org.ujmp.core.annotation.HasMetaData
DIMENSIONMETADATA
-
Fields inherited from interface org.ujmp.core.Matrix
chol, divideMatrix, divideScalar, eig, Factory, inv, lu, minusMatrix, minusScalar, mtimes, plusMatrix, plusScalar, qr, solve, svd, timesMatrix, timesScalar, transpose
-
Fields inherited from interface org.ujmp.core.SparseMatrix
Factory
-
Fields inherited from interface org.ujmp.core.SparseMatrix2D
Factory
-
-
Constructor Summary
Constructors Constructor Description BlockDenseDoubleMatrix2D(double[][] values)
BlockDenseDoubleMatrix2D(double[][] values, int blockStripeSize, BlockMatrixLayout.BlockOrder blockOrder)
Create a block matrix from a jagged array.BlockDenseDoubleMatrix2D(int rows, int cols)
Create a new matrix with the specified size, and specified block stripe size.BlockDenseDoubleMatrix2D(int rows, int cols, int blockStripeSize, BlockMatrixLayout.BlockOrder blockOrder)
Create a new matrix with the specified size, and specified block stripe size.BlockDenseDoubleMatrix2D(int rows, int cols, BlockMatrixLayout.BlockOrder blockOrder)
Create a new matrix with the given size (rows, cols) and block layout.BlockDenseDoubleMatrix2D(BlockDenseDoubleMatrix2D m)
Constructor which takes an existing BlockMatrix to copy data and structure from.BlockDenseDoubleMatrix2D(Matrix m)
Constructor which takes an existing Matrix to copy data and structure from.BlockDenseDoubleMatrix2D(Matrix m, int blockStripeSize)
Constructor which takes a Matrix and a proposed default block stripe size.BlockDenseDoubleMatrix2D(Matrix m, int blockStripeSize, BlockMatrixLayout.BlockOrder blockOrder)
Constructor which takes a Matrix and a proposed default block stripe size.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addBlockData(int row, int column, double[] newData)
BlockDenseDoubleMatrix2D
clone()
private static int
deriveDefaultBlockStripeSize(int rows, int cols)
Matrix
divide(double value)
Divides every entry in the matrix by a scalar.Matrix
divide(Matrix value)
Calculates an entrywise division of the two matrices.void
fill(double[][] data)
void
fill(double[][] data, int startRow, int startCol)
Populate matrix with given data.(package private) double[]
getBlockData(int row, int column)
Get block holding the specified row and column.double[][]
getBlockDoubleArray2D()
BlockMatrixLayout
getBlockLayout()
int
getBlockStripeSize()
double
getDouble(int row, int col)
double
getDouble(long row, long column)
Matrix
minus(double value)
Subtracts a specified value from all entries in the matrix.Matrix
minus(Matrix value)
Calculates the difference of the entries in both matricesMatrix
mtimes(Matrix m2)
Shortcut to create a BlockMatrix for targetMatrix
plus(double value)
Adds a specified value to all entries in the matrix.Matrix
plus(Matrix value)
Calculates the sum of the entries in both matricesBlockMatrixLayout.BlockOrder
setBlockOrder(BlockMatrixLayout.BlockOrder order)
Change layout of blocks in this matrix (e.g.void
setDouble(double value, int row, int column)
void
setDouble(double value, long row, long column)
Matrix
times(double value)
Multiplies every entry in the matrix with a scalar.Matrix
times(Matrix value)
Calculates the entrywise product of the two matrices.Matrix
transpose()
Returns the transpose of the current matrix.Matrix
transpose(Calculation.Ret returnType)
Returns the transpose of the Matrix, where rows and columns are exchanged.-
Methods inherited from class org.ujmp.core.doublematrix.stub.AbstractDenseDoubleMatrix2D
availableCoordinates, clear, containsCoordinates, getAsDouble, getAsDouble, getDimensionCount, getObject, getObject, isSparse, setAsDouble, setAsDouble, setObject, setObject
-
Methods inherited from class org.ujmp.core.doublematrix.stub.AbstractDoubleMatrix2D
getDouble, setDouble
-
Methods inherited from class org.ujmp.core.doublematrix.stub.AbstractDoubleMatrix
getAsDouble, getNumber, getObject, getValueType, setAsDouble, setNumber, setObject
-
Methods inherited from class org.ujmp.core.genericmatrix.stub.AbstractGenericMatrix
getAsObject, setAsObject
-
Methods inherited from class org.ujmp.core.AbstractMatrix
abs, addMissing, allCoordinates, allValues, and, and, append, appendHorizontally, appendVertically, atimes, bigDecimalValue, bigIntegerValue, booleanValue, bootstrap, bootstrap, ceil, center, charValue, chebyshevDistanceTo, chol, compareTo, containsBigDecimal, containsBigInteger, containsBoolean, containsByte, containsChar, containsDate, containsDouble, containsFloat, containsInt, containsLong, containsMissingValues, containsNull, containsObject, containsShort, containsString, convert, convertEncoding, corrcoef, cos, cosh, cosineSimilarity, cosineSimilarityTo, countMissing, cov, cumprod, cumsum, dateValue, delete, delete, delete, deleteColumns, deleteColumns, deleteColumnsWithMissingValues, deleteRows, deleteRows, deleteRowsWithMissingValues, det, diag, diff, discretize, discretize, discretizeToBoolean, discretizeToColumns, divide, divide, doubleValue, eig, eigSymm, eq, eq, equals, equalsAnnotation, equalsContent, euklideanDistance, euklideanDistanceTo, exp, exportTo, extractAnnotation, eye, fadeIn, fadeOut, fill, fireValueChanged, fireValueChanged, fireValueChanged, flipdim, floatValue, floor, ge, ge, getAbsoluteValueMean, getAbsoluteValueSum, getAsBigDecimal, getAsBigInteger, getAsBoolean, getAsByte, getAsByteArray, getAsChar, getAsDate, getAsFloat, getAsInt, getAsLong, getAsMatrix, getAsShort, getAsString, getColumnCount, getColumnForLabel, getColumnLabel, getColumnList, getCoordinatesOfMaximum, getCoordinatesOfMinimum, getCoreObjectId, getDescription, getDimensionLabel, getDimensionMetaData, getEuklideanValue, getFactory, getGUIObject, getId, getLabel, getLabelObject, getMaxValue, getMeanValue, getMetaData, getMetaData, getMetaDataDimensionMatrix, getMetaDataDouble, getMetaDataMatrix, getMetaDataString, getMinValue, getPositionForLabel, getPreferredObject, getRMS, getRowCount, getRowForLabel, getRowLabel, getRowList, getSize, getSize, getStdValue, getValueCount, getValueSum, getZCount, ginv, grayScale, gt, gt, importFrom, impute, includeAnnotation, indexOfMax, indexOfMin, intValue, inv, invSPD, invSymm, isColumnVector, isDiagonal, isEmpty, isMultidimensionalMatrix, isReadOnly, isResizable, isRowVector, isScalar, isSingular, isSPD, isSquare, isSymmetric, isTransient, le, le, log, log10, log2, logistic, longValue, lowerCase, lt, lt, lu, manhattenDistance, manhattenDistanceTo, max, mean, min, minkowskiDistance, minkowskiDistanceTo, minus, minus, mtimes, mutualInf, nans, ne, ne, nonZeroCoordinates, norm1, norm2, normalize, normF, normInf, not, ones, or, or, pairedTTest, pdet, pinv, pinv, plus, plus, power, power, princomp, prod, qr, rand, randn, rank, removePunctuation, removeWords, replace, replaceMissingBy, replaceRegex, replaceRegex, reshape, round, save, save, select, select, select, selectColumns, selectColumns, selectedCoordinates, selectedCoordinates, selectRows, selectRows, setAsBigDecimal, setAsBigInteger, setAsBoolean, setAsByte, setAsByteArray, setAsChar, setAsDate, setAsFloat, setAsInt, setAsLong, setAsMatrix, setAsShort, setAsString, setColumnLabel, setContent, setDescription, setDimensionLabel, setDimensionMetaData, setId, setLabel, setMetaData, setMetaData, setMetaDataDimensionMatrix, setRowLabel, setSize, share, share, showGUI, shuffle, sign, sin, sinh, solve, solveSPD, solveSymm, sortrows, sqrt, squeeze, standardize, std, stem, stringValue, subMatrix, sum, svd, svd, swap, tan, tanh, tanh, tfIdf, times, times, toBigDecimalArray, toBigDecimalMatrix, toBigIntegerArray, toBigIntegerMatrix, toBooleanArray, toBooleanMatrix, toByteArray, toByteMatrix, toCharArray, toCharMatrix, toColumnVector, toDateArray, toDoubleArray, toDoubleMatrix, toFloatArray, toFloatMatrix, toHtml, toIntArray, toIntMatrix, toListMatrix, toLongArray, toLongMatrix, toMapMatrix, toObjectArray, toObjectMatrix, toRowVector, toSetMatrix, toShortArray, toShortMatrix, toString, toStringArray, toStringMatrix, trace, translate, transpose, tril, triu, unique, uniqueValueCount, upperCase, var, xor, xor, zeros
-
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.ujmp.core.BaseMatrix
getFactory
-
Methods inherited from interface org.ujmp.core.interfaces.BaseMatrixProperties
allValues, equals, equalsAnnotation, equalsContent, getColumnCount, getColumnList, getRowCount, getRowList, getSize, getSize, getValueCount, getValueType, getZCount, isColumnVector, isDiagonal, isEmpty, isMultidimensionalMatrix, isReadOnly, isResizable, isRowVector, isScalar, isSingular, isSquare, isSymmetric, isTransient, setSize, toString
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.basic.BasicDoubleCalculations
atimes, divide, divide, minus, minus, mtimes, plus, plus, times, times
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.basic.BasicEntrywiseDoubleCalculations
abs, exp, log, log10, log2, logistic, power, power, sign, sqrt
-
Methods inherited from interface org.ujmp.core.booleanmatrix.calculation.BooleanCalculations
and, and, eq, eq, ge, ge, gt, gt, le, le, lt, lt, ne, ne, not, or, or, xor, xor
-
Methods inherited from interface org.ujmp.core.interfaces.Conversions
toBigDecimalMatrix, toBigIntegerMatrix, toBooleanMatrix, toByteMatrix, toCharMatrix, toDoubleMatrix, toFloatMatrix, toIntMatrix, toListMatrix, toLongMatrix, toMapMatrix, toObjectMatrix, toSetMatrix, toShortMatrix, toStringMatrix
-
Methods inherited from interface org.ujmp.core.interfaces.CoordinateFunctions
allCoordinates, getCoordinatesOfMaximum, getCoordinatesOfMinimum, nonZeroCoordinates, selectedCoordinates, selectedCoordinates
-
Methods inherited from interface org.ujmp.core.interfaces.CoreObject
getCoreObjectId
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.creators.CreatorDoubleCalculations
eye, nans, ones, rand, randn, zeros
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.general.decomposition.DecompositionDoubleCalculations
chol, eig, eigSymm, ginv, inv, invSPD, invSymm, lu, pinv, pinv, princomp, qr, solve, solveSPD, solveSymm, svd, svd
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.general.discretize.DiscretizeCalculations
discretize, discretize, discretizeToBoolean, discretizeToColumns
-
Methods inherited from interface org.ujmp.core.interfaces.DistanceMeasures
chebyshevDistanceTo, cosineSimilarity, cosineSimilarityTo, euklideanDistance, euklideanDistanceTo, manhattenDistance, manhattenDistanceTo, minkowskiDistance, minkowskiDistanceTo
-
Methods inherited from interface org.ujmp.core.interfaces.ExtendedMatrixProperties
bigDecimalValue, bigIntegerValue, booleanValue, byteValue, charValue, containsBigDecimal, containsBigInteger, containsBoolean, containsByte, containsChar, containsDate, containsDouble, containsFloat, containsInt, containsLong, containsMissingValues, containsNull, containsObject, containsShort, containsString, dateValue, det, doubleValue, floatValue, getAbsoluteValueMean, getAbsoluteValueSum, getEuklideanValue, getMaxValue, getMeanValue, getMinValue, getRMS, getStdValue, getValueSum, intValue, isSPD, longValue, norm1, norm2, normF, normInf, pdet, rank, setContent, shortValue, stringValue, trace
-
Methods inherited from interface org.ujmp.core.interfaces.GettersAndSetters
getAsBigDecimal, getAsBigInteger, getAsBoolean, getAsByte, getAsByteArray, getAsChar, getAsDate, getAsDouble, getAsFloat, getAsInt, getAsLong, getAsMatrix, getAsObject, getAsShort, getAsString, getPreferredObject, setAsBigDecimal, setAsBigInteger, setAsBoolean, setAsByte, setAsByteArray, setAsChar, setAsDate, setAsDouble, setAsFloat, setAsInt, setAsLong, setAsMatrix, setAsObject, setAsShort, setAsString, toBigDecimalArray, toBigIntegerArray, toBooleanArray, toByteArray, toCharArray, toDateArray, toDoubleArray, toFloatArray, toIntArray, toLongArray, toObjectArray, toShortArray, toStringArray
-
Methods inherited from interface org.ujmp.core.interfaces.HasDescription
getDescription, setDescription
-
Methods inherited from interface org.ujmp.core.interfaces.HasGUIObject
getGUIObject, showGUI
-
Methods inherited from interface org.ujmp.core.interfaces.HasLabel
getLabel, getLabelObject, setLabel
-
Methods inherited from interface org.ujmp.core.annotation.HasMetaData
getColumnForLabel, getColumnLabel, getDimensionLabel, getDimensionMetaData, getMetaData, getMetaData, getMetaDataDimensionMatrix, getMetaDataDouble, getMetaDataMatrix, getMetaDataString, getPositionForLabel, getRowForLabel, getRowLabel, setColumnLabel, setDimensionLabel, setDimensionMetaData, setMetaData, setMetaData, setMetaDataDimensionMatrix, setRowLabel
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.hyperbolic.HyperbolicDoubleCalculations
cosh, sinh, tanh, tanh
-
Methods inherited from interface org.ujmp.core.Matrix
exportTo, fireValueChanged, fireValueChanged, fireValueChanged, importFrom, save, save, share, share, toHtml
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.misc.MiscEntrywiseDoubleCalculations
grayScale
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.general.misc.MiscGeneralDoubleCalculations
append, appendHorizontally, appendVertically, center, fadeIn, fadeOut, normalize, replaceMissingBy, standardize
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.general.missingvalues.MissingValueDoubleCalculations
addMissing, countMissing, deleteColumnsWithMissingValues, deleteRowsWithMissingValues, impute
-
Methods inherited from interface org.ujmp.core.objectmatrix.calculation.ObjectCalculations
bootstrap, bootstrap, convert, delete, delete, delete, deleteColumns, deleteColumns, deleteRows, deleteRows, diag, extractAnnotation, fill, flipdim, includeAnnotation, replace, reshape, select, select, select, selectColumns, selectColumns, selectRows, selectRows, shuffle, sortrows, squeeze, subMatrix, swap, toColumnVector, toRowVector, transpose, tril, triu, unique, uniqueValueCount
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.rounding.RoundingDoubleCalculations
ceil, floor, round
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.general.statistical.StatisticalDoubleCalculations
corrcoef, cov, cumprod, cumsum, diff, indexOfMax, indexOfMin, max, mean, min, mutualInf, pairedTTest, prod, std, sum, var
-
Methods inherited from interface org.ujmp.core.stringmatrix.calculation.StringCalculations
convertEncoding, lowerCase, removePunctuation, removeWords, replaceRegex, replaceRegex, stem, tfIdf, translate, upperCase
-
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.trigonometric.TrigonometricDoubleCalculations
cos, sin, tan
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
data
private double[][] data
Matrix data by block number.
-
layout
protected BlockMatrixLayout layout
Layout of matrix and blocks.
-
-
Constructor Detail
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(double[][] values)
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(double[][] values, int blockStripeSize, BlockMatrixLayout.BlockOrder blockOrder)
Create a block matrix from a jagged array.
All rows of the values array must have the same length.- Parameters:
values
- - the data to populate the matrix with.blockStripeSize
- - length of one side of a blockblockOrder
- - seeBlockMatrixLayout.BlockOrder
.- Throws:
java.lang.NullPointerException
- if values is null, or values[0] is null.java.lang.ArrayIndexOutOfBoundsException
- if any row is shorter than the first row.
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(int rows, int cols, int blockStripeSize, BlockMatrixLayout.BlockOrder blockOrder)
Create a new matrix with the specified size, and specified block stripe size.- Parameters:
rows
- - number of rows of the matrix.cols
- - number of columns of the matrix.blockStripeSize
- - length of one side of a square block.- Throws:
java.lang.IllegalArgumentException
- if rows, cols or blockStripeSize are 0 or less, or blockOrder is null.
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(int rows, int cols, BlockMatrixLayout.BlockOrder blockOrder)
Create a new matrix with the given size (rows, cols) and block layout.- See Also:
#BlockMatrix(int, int)
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(int rows, int cols)
Create a new matrix with the specified size, and specified block stripe size.- Parameters:
rows
- - number of rows of the matrix.cols
- - number of columns of the matrix.- Throws:
java.lang.IllegalArgumentException
- if rows, cols are 0 or less.
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(Matrix m)
Constructor which takes an existing Matrix to copy data and structure from.
Block stripe size will be defaulted internally.- Parameters:
m
- - matrix to copy data from.
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(BlockDenseDoubleMatrix2D m)
Constructor which takes an existing BlockMatrix to copy data and structure from.
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(Matrix m, int blockStripeSize)
Constructor which takes a Matrix and a proposed default block stripe size.- Parameters:
m
- - matrix containing existing values.blockStripeSize
- - proposed default block size.
-
BlockDenseDoubleMatrix2D
public BlockDenseDoubleMatrix2D(Matrix m, int blockStripeSize, BlockMatrixLayout.BlockOrder blockOrder)
Constructor which takes a Matrix and a proposed default block stripe size.- Parameters:
m
- - matrix containing existing values.blockStripeSize
- - proposed default block size.blockOrder
- row major or column major
-
-
Method Detail
-
deriveDefaultBlockStripeSize
private static int deriveDefaultBlockStripeSize(int rows, int cols)
-
addBlockData
protected void addBlockData(int row, int column, double[] newData)
-
fill
public void fill(double[][] data)
- See Also:
fill(double[][], int, int)
-
fill
public void fill(double[][] data, int startRow, int startCol)
Populate matrix with given data.- Parameters:
data
- - to fill into matrixstartRow
- - row to start filling in data atstartCol
- - col to start at
-
getBlockData
double[] getBlockData(int row, int column)
Get block holding the specified row and column. If none exist, create one.- Parameters:
row
- - in matrixcolumn
- - in matrix- Returns:
- double[] block where the given row,column is held.
-
getBlockLayout
public final BlockMatrixLayout getBlockLayout()
- Returns:
BlockMatrixLayout
of this matrix.
-
getBlockStripeSize
public final int getBlockStripeSize()
- Returns:
- blockSize of this matrix.
-
getDouble
public double getDouble(int row, int col)
- Specified by:
getDouble
in interfaceDoubleMatrix2D
-
getDouble
public double getDouble(long row, long column)
- Specified by:
getDouble
in interfaceDoubleMatrix2D
-
mtimes
public Matrix mtimes(Matrix m2)
Shortcut to create a BlockMatrix for target- Specified by:
mtimes
in interfaceBasicDoubleCalculations
- Overrides:
mtimes
in classAbstractDenseDoubleMatrix2D
- Parameters:
m2
- the second matrix- Returns:
- Matrix product
-
setDouble
public void setDouble(double value, int row, int column)
- Specified by:
setDouble
in interfaceDoubleMatrix2D
-
setDouble
public void setDouble(double value, long row, long column)
- Specified by:
setDouble
in interfaceDoubleMatrix2D
-
transpose
public Matrix transpose()
Returns the transpose of the current matrix.- Specified by:
transpose
in interfaceObjectCalculations
- Overrides:
transpose
in classAbstractDenseDoubleMatrix2D
- Returns:
- transpose of this matrix.
-
clone
public BlockDenseDoubleMatrix2D clone()
- Specified by:
clone
in interfaceCoreObject
- Specified by:
clone
in interfaceMatrix
- Overrides:
clone
in classAbstractMatrix
-
transpose
public Matrix transpose(Calculation.Ret returnType)
Description copied from interface:ObjectCalculations
Returns the transpose of the Matrix, where rows and columns are exchanged. This works also if the Matrix has more than two dimensions.- Specified by:
transpose
in interfaceObjectCalculations
- Overrides:
transpose
in classAbstractMatrix
- Parameters:
returnType
- Defines if a new Matrix or a link should be returned.- Returns:
- transposed Matrix.
-
getBlockDoubleArray2D
public final double[][] getBlockDoubleArray2D()
- Specified by:
getBlockDoubleArray2D
in interfaceHasBlockDoubleArray2D
-
plus
public Matrix plus(double value)
Description copied from interface:BasicDoubleCalculations
Adds a specified value to all entries in the matrix.- Specified by:
plus
in interfaceBasicDoubleCalculations
- Overrides:
plus
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- the value to add- Returns:
- Matrix with the entries plus the value
-
plus
public Matrix plus(Matrix value)
Description copied from interface:BasicDoubleCalculations
Calculates the sum of the entries in both matrices- Specified by:
plus
in interfaceBasicDoubleCalculations
- Overrides:
plus
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- The matrix to add- Returns:
- matrix with sum values
-
minus
public Matrix minus(Matrix value)
Description copied from interface:BasicDoubleCalculations
Calculates the difference of the entries in both matrices- Specified by:
minus
in interfaceBasicDoubleCalculations
- Overrides:
minus
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- The matrix to subtract- Returns:
- matrix with difference values
-
times
public Matrix times(Matrix value)
Description copied from interface:BasicDoubleCalculations
Calculates the entrywise product of the two matrices.- Specified by:
times
in interfaceBasicDoubleCalculations
- Overrides:
times
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- the second matrix- Returns:
- matrix with product of all entries
-
divide
public Matrix divide(Matrix value)
Description copied from interface:BasicDoubleCalculations
Calculates an entrywise division of the two matrices.- Specified by:
divide
in interfaceBasicDoubleCalculations
- Overrides:
divide
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- the second matrix- Returns:
- matrix with all entries divided by the second matrix's entry.
-
minus
public Matrix minus(double value)
Description copied from interface:BasicDoubleCalculations
Subtracts a specified value from all entries in the matrix.- Specified by:
minus
in interfaceBasicDoubleCalculations
- Overrides:
minus
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- the value to subtract- Returns:
- Matrix with the entries minus the value
-
times
public Matrix times(double value)
Description copied from interface:BasicDoubleCalculations
Multiplies every entry in the matrix with a scalar.- Specified by:
times
in interfaceBasicDoubleCalculations
- Overrides:
times
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- factor to multiply with- Returns:
- Matrix with all entries multiplied by a factor.
-
divide
public Matrix divide(double value)
Description copied from interface:BasicDoubleCalculations
Divides every entry in the matrix by a scalar.- Specified by:
divide
in interfaceBasicDoubleCalculations
- Overrides:
divide
in classAbstractDenseDoubleMatrix2D
- Parameters:
value
- factor by which to divide- Returns:
- Matrix with all entries divided by a factor.
-
setBlockOrder
public BlockMatrixLayout.BlockOrder setBlockOrder(BlockMatrixLayout.BlockOrder order)
Change layout of blocks in this matrix (e.g. switch form rowmajor to columnmajor).- Parameters:
order
- - new block layout order.- Returns:
- old BlockOrder.
-
-