org.ujmp.core.doublematrix.impl
Class BlockDenseDoubleMatrix2D

java.lang.Object
  extended by java.lang.Number
      extended by org.ujmp.core.matrix.AbstractMatrix
          extended by org.ujmp.core.genericmatrix.stub.AbstractGenericMatrix<Double>
              extended by org.ujmp.core.doublematrix.stub.AbstractDoubleMatrix
                  extended by org.ujmp.core.doublematrix.stub.AbstractDenseDoubleMatrix
                      extended by org.ujmp.core.doublematrix.stub.AbstractDenseDoubleMatrix2D
                          extended by org.ujmp.core.doublematrix.impl.BlockDenseDoubleMatrix2D
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Matrix>, HasAnnotation, BooleanCalculations, CanPerformCalculations, BasicDoubleCalculations, DoubleCalculations, BasicEntrywiseDoubleCalculations, CreatorDoubleCalculations, EntrywiseDoubleCalculations, HyperbolicDoubleCalculations, MiscEntrywiseDoubleCalculations, RoundingDoubleCalculations, TrigonometricDoubleCalculations, DecompositionDoubleCalculations, DiscretizeCalculations, GeneralDoubleCalculations, MiscGeneralDoubleCalculations, MissingValueDoubleCalculations, StatisticalDoubleCalculations, DenseDoubleMatrix, DenseDoubleMatrix2D, DoubleMatrix, DoubleMatrix2D, GenericMatrix<Double>, GenericMatrix2D<Double>, BasicMatrixProperties, Clearable, Conversions, CoordinateFunctions, CoreObject, DistanceMeasures, GettersAndSetters, HasBlockDoubleArray2D, HasGUIObject, HasLabel, IntCalculations, ExportMatrixInterface, Matrix, DenseMatrix, DenseMatrix2D, Matrix2D, ObjectCalculations, 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.

Author:
Frode Carlsen, Holger Arndt
See Also:
'Efficient Matrix Multiplication Using Cache Conscious Data Layouts'; Neungsoo Park, Wenheng Liuy, Viktor K. Prasanna, Cauligi Raghavendra; Department of Electrical Engineering{Systems), University of Southern California, 'Tiling, Block Data Layout, and Memory Hierarchy Performance'; Neungsoo Park, Bo Hong, and Viktor K. Prasanna, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.ujmp.core.Matrix
Matrix.StorageType
 
Field Summary
protected  BlockMatrixLayout layout
          Layout of matrix and blocks.
 
Fields inherited from class org.ujmp.core.doublematrix.stub.AbstractDenseDoubleMatrix2D
factory
 
Fields inherited from interface org.ujmp.core.doublematrix.DenseDoubleMatrix2D
chol, divideMatrix, divideScalar, eig, inv, invSPD, invSymm, lu, minusMatrix, minusScalar, mtimes, plusMatrix, plusScalar, qr, solve, solveSPD, solveSymm, svd, timesMatrix, timesScalar, transpose
 
Fields inherited from interface org.ujmp.core.Matrix
ALL, COLUMN, LINK, NEW, NONE, ORIG, ROW, X, Y, Z
 
Constructor Summary
BlockDenseDoubleMatrix2D(BlockDenseDoubleMatrix2D m)
          Constructor which takes an existing BlockMatrix to copy data and structure from.
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(long... size)
          Create a new matrix with the given size (rows, cols) and default block layout.
BlockDenseDoubleMatrix2D(long rows, long cols, BlockMatrixLayout.BlockOrder blockOrder)
          Create a new matrix with the given size (rows, cols) and block layout.
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
protected  void addBlockData(int row, int column, double[] newData)
           
 BlockDenseDoubleMatrix2D clone()
           
 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.
 double[][] getBlockDoubleArray2D()
           
 BlockMatrixLayout getBlockLayout()
           
 int getBlockStripeSize()
           
 double getDouble(int row, int col)
           
 double getDouble(long row, long column)
           
 long[] getSize()
           
 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 matrices
 Matrix mtimes(Matrix m2)
          Shortcut to create a BlockMatrix for target
 Matrix 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 matrices
 BlockMatrixLayout.BlockOrder setBlockOrder(BlockMatrixLayout.BlockOrder order)
          Change layout of blocks in this matrix (e.g. switch form rowmajor to columnmajor).
 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
allCoordinates, getAsDouble, getAsDouble, getDouble, getFactory, getObject, getObject, setAsDouble, setAsDouble, setDouble, setObject, setObject
 
Methods inherited from class org.ujmp.core.doublematrix.stub.AbstractDenseDoubleMatrix
contains, getStorageType
 
Methods inherited from class org.ujmp.core.doublematrix.stub.AbstractDoubleMatrix
getAsDouble, getObject, getValueType, setAsDouble, setObject
 
Methods inherited from class org.ujmp.core.genericmatrix.stub.AbstractGenericMatrix
getAsObject, setAsObject
 
Methods inherited from class org.ujmp.core.matrix.AbstractMatrix
abs, addMissing, allValues, and, and, append, appendHorizontally, appendVertically, atimes, availableCoordinates, bigDecimalValue, bigIntegerValue, booleanValue, bootstrap, bootstrap, ceil, center, charValue, chebyshevDistanceTo, chol, clear, compareTo, containsBigDecimal, containsBigInteger, containsBoolean, containsByte, containsChar, containsDate, containsDouble, containsFloat, containsInt, containsLong, containsMissingValues, containsNull, containsObject, containsShort, containsString, convert, copy, corrcoef, cos, cosh, countMissing, cov, cumprod, cumsum, dateValue, delete, delete, delete, deleteColumns, deleteColumns, deleteColumnsWithMissingValues, deleteRows, deleteRows, deleteRowsWithMissingValues, det, diff, discretize, discretizeToColumns, divide, divide, doubleValue, eig, eigSymm, eq, eq, equals, equalsAnnotation, equalsContent, euklideanDistanceTo, exp, exportToClipboard, exportToFile, exportToFile, exportToFile, exportToFile, exportToStream, exportToString, exportToWriter, extractAnnotation, eye, fadeIn, fadeOut, fill, flipdim, floatValue, floor, ge, ge, getAbsoluteValueMean, getAbsoluteValueSum, getAnnotation, getAsBigDecimal, getAsBigInteger, getAsBoolean, getAsByte, getAsChar, getAsDate, getAsFloat, getAsInt, getAsLong, getAsMatrix, getAsShort, getAsString, getAxisAnnotation, getAxisAnnotation, getColumnCount, getColumnForLabel, getColumnLabel, getColumnObject, getCoordinatesOfMaximum, getCoordinatesOfMinimum, getCoreObjectId, getDimensionCount, getEuklideanValue, getGUIObject, getLabel, getMatrixAnnotation, getMaxValue, getMeanValue, getMinValue, getPositionForLabel, getPreferredObject, getRMS, getRowCount, getRowForLabel, getRowLabel, getRowObject, getSize, getStdValue, getValueCount, getValueSum, getZCount, ginv, gt, gt, impute, includeAnnotation, indexOfMax, indexOfMin, intValue, inv, invSPD, invSymm, isColumnVector, isDiagonal, isEmpty, isMultidimensionalMatrix, isReadOnly, isResizable, isRowVector, isScalar, isSingular, isSparse, isSPD, isSquare, isSymmetric, isTransient, le, le, log, log10, log2, longValue, lowerCase, lt, lt, lu, manhattenDistanceTo, max, mean, min, minkowskiDistanceTo, minus, minus, mtimes, mtimes, mtimes, mutualInf, ne, ne, nonZeroCoordinates, norm1, norm2, normalize, normF, normInf, not, notifyGUIObject, ones, or, or, pairedTTest, pinv, plus, plus, power, power, princomp, prod, qr, rand, randn, rank, removePunctuation, removeWords, replace, replaceMissingBy, replaceRegex, replaceRegex, reshape, round, select, select, select, selectColumns, selectColumns, selectedCoordinates, selectedCoordinates, selectRows, selectRows, setAnnotation, setAsBigDecimal, setAsBigInteger, setAsBoolean, setAsByte, setAsChar, setAsDate, setAsFloat, setAsInt, setAsLong, setAsMatrix, setAsShort, setAsString, setAxisAnnotation, setAxisAnnotation, setColumnLabel, setColumnObject, setLabel, setMatrixAnnotation, setRowLabel, setRowObject, setSize, showGUI, shuffle, sign, sin, sinh, solve, solveSPD, solveSymm, sortrows, sqrt, squeeze, standardize, std, stem, stringValue, subMatrix, sum, svd, swap, tan, tanh, tfIdf, times, times, toBigDecimalArray, toBigDecimalMatrix, toBigIntegerArray, toBigIntegerMatrix, toBooleanArray, toBooleanMatrix, toByteArray, toByteMatrix, toCharArray, toCharMatrix, toColumnVector, toDateArray, toDateMatrix, toDoubleArray, toDoubleMatrix, toFloatArray, toFloatMatrix, toIntArray, toIntMatrix, toListMatrix, toLongArray, toLongMatrix, toMapMatrix, toObjectArray, toObjectMatrix, toRowVector, toSetMatrix, toShortArray, toShortMatrix, toString, toStringArray, toStringMatrix, trace, transpose, tril, triu, unique, uniqueValueCount, upperCase, var, xor, xor, zeros
 
Methods inherited from class java.lang.Number
byteValue, shortValue
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ujmp.core.genericmatrix.GenericMatrix
getObject, setObject
 
Methods inherited from interface org.ujmp.core.interfaces.CoreObject
getCoreObjectId
 
Methods inherited from interface org.ujmp.core.interfaces.Clearable
clear
 
Methods inherited from interface org.ujmp.core.interfaces.HasGUIObject
getGUIObject, notifyGUIObject, showGUI
 
Methods inherited from interface org.ujmp.core.interfaces.HasLabel
getLabel, setLabel
 
Methods inherited from interface org.ujmp.core.io.ExportMatrixInterface
exportToClipboard, exportToFile, exportToFile, exportToFile, exportToFile, exportToStream, exportToString, exportToWriter
 
Methods inherited from interface org.ujmp.core.interfaces.CoordinateFunctions
availableCoordinates, contains, getCoordinatesOfMaximum, getCoordinatesOfMinimum, nonZeroCoordinates, selectedCoordinates, selectedCoordinates
 
Methods inherited from interface org.ujmp.core.interfaces.GettersAndSetters
getAsBigDecimal, getAsBigInteger, getAsBoolean, getAsByte, getAsChar, getAsDate, getAsDouble, getAsFloat, getAsInt, getAsLong, getAsMatrix, getAsObject, getAsShort, getAsString, getPreferredObject, setAsBigDecimal, setAsBigInteger, setAsBoolean, setAsByte, 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.BasicMatrixProperties
allValues, bigDecimalValue, bigIntegerValue, booleanValue, byteValue, charValue, containsBigDecimal, containsBigInteger, containsBoolean, containsByte, containsChar, containsDate, containsDouble, containsFloat, containsInt, containsLong, containsMissingValues, containsNull, containsObject, containsShort, containsString, dateValue, det, doubleValue, equals, equalsAnnotation, equalsContent, floatValue, getAbsoluteValueMean, getAbsoluteValueSum, getColumnCount, getDimensionCount, getEuklideanValue, getMaxValue, getMeanValue, getMinValue, getRMS, getRowCount, getSize, getStdValue, getStorageType, getValueCount, getValueSum, getValueType, getZCount, intValue, isColumnVector, isDiagonal, isEmpty, isMultidimensionalMatrix, isReadOnly, isResizable, isRowVector, isScalar, isSingular, isSparse, isSPD, isSquare, isSymmetric, isTransient, longValue, norm1, norm2, normF, normInf, rank, setSize, shortValue, stringValue, toString, trace
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.basic.BasicDoubleCalculations
atimes, divide, divide, minus, minus, mtimes, mtimes, mtimes, plus, plus, times, times
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.basic.BasicEntrywiseDoubleCalculations
abs, exp, log, log10, log2, power, power, sign, sqrt
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.rounding.RoundingDoubleCalculations
ceil, floor, round
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.hyperbolic.HyperbolicDoubleCalculations
cosh, sinh, tanh
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.trigonometric.TrigonometricDoubleCalculations
cos, sin, tan
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.entrywise.creators.CreatorDoubleCalculations
eye, ones, rand, randn, zeros
 
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.doublematrix.calculation.general.decomposition.DecompositionDoubleCalculations
chol, eig, eigSymm, ginv, inv, invSPD, invSymm, lu, pinv, princomp, qr, solve, solveSPD, solveSymm, svd
 
Methods inherited from interface org.ujmp.core.doublematrix.calculation.general.missingvalues.MissingValueDoubleCalculations
addMissing, countMissing, deleteColumnsWithMissingValues, deleteRowsWithMissingValues, impute
 
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.discretize.DiscretizeCalculations
discretizeToColumns
 
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.intmatrix.calculation.IntCalculations
discretize
 
Methods inherited from interface org.ujmp.core.stringmatrix.calculation.StringCalculations
lowerCase, removePunctuation, removeWords, replaceRegex, replaceRegex, stem, tfIdf, upperCase
 
Methods inherited from interface org.ujmp.core.objectmatrix.calculation.ObjectCalculations
bootstrap, bootstrap, convert, copy, delete, delete, delete, deleteColumns, deleteColumns, deleteRows, deleteRows, 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.interfaces.DistanceMeasures
chebyshevDistanceTo, euklideanDistanceTo, manhattenDistanceTo, minkowskiDistanceTo
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface org.ujmp.core.annotation.HasAnnotation
getAnnotation, getAxisAnnotation, getAxisAnnotation, getColumnForLabel, getColumnLabel, getColumnObject, getMatrixAnnotation, getPositionForLabel, getRowForLabel, getRowLabel, getRowObject, setAnnotation, setAxisAnnotation, setAxisAnnotation, setColumnLabel, setColumnObject, setMatrixAnnotation, setRowLabel, setRowObject
 
Methods inherited from interface org.ujmp.core.interfaces.Conversions
toBigDecimalMatrix, toBigIntegerMatrix, toBooleanMatrix, toByteMatrix, toCharMatrix, toDateMatrix, toDoubleMatrix, toFloatMatrix, toIntMatrix, toListMatrix, toLongMatrix, toMapMatrix, toObjectMatrix, toSetMatrix, toShortMatrix, toStringMatrix
 

Field Detail

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 block
blockOrder - - see BlockMatrixLayout.BlockOrder.
Throws:
NullPointerException - if values is null, or values[0] is null.
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:
IllegalArgumentException - if rows, cols or blockStripeSize are 0 or less, or blockOrder is null.

BlockDenseDoubleMatrix2D

public BlockDenseDoubleMatrix2D(long rows,
                                long 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:
IllegalArgumentException - if rows, cols are 0 or less.

BlockDenseDoubleMatrix2D

public BlockDenseDoubleMatrix2D(long... size)
Create a new matrix with the given size (rows, cols) and default block layout.


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

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 matrix
startRow - - row to start filling in data at
startCol - - col to start at

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 interface DoubleMatrix2D

getDouble

public double getDouble(long row,
                        long column)
Specified by:
getDouble in interface DoubleMatrix2D

getSize

public long[] getSize()
Specified by:
getSize in interface BasicMatrixProperties

mtimes

public Matrix mtimes(Matrix m2)
Shortcut to create a BlockMatrix for target

Specified by:
mtimes in interface BasicDoubleCalculations
Overrides:
mtimes in class AbstractDenseDoubleMatrix2D
Parameters:
m2 - the second matrix
Returns:
Matrix product

setDouble

public void setDouble(double value,
                      int row,
                      int column)
Specified by:
setDouble in interface DoubleMatrix2D

setDouble

public void setDouble(double value,
                      long row,
                      long column)
Specified by:
setDouble in interface DoubleMatrix2D

transpose

public Matrix transpose()
                 throws MatrixException
Returns the transpose of the current matrix.

Specified by:
transpose in interface ObjectCalculations
Overrides:
transpose in class AbstractDenseDoubleMatrix2D
Returns:
transpose of this matrix.
Throws:
MatrixException

clone

public BlockDenseDoubleMatrix2D clone()
Specified by:
clone in interface CoreObject
Specified by:
clone in interface Matrix
Overrides:
clone in class AbstractMatrix

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 interface ObjectCalculations
Overrides:
transpose in class AbstractMatrix
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 interface HasBlockDoubleArray2D

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 interface BasicDoubleCalculations
Overrides:
plus in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
plus in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
minus in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
times in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
divide in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
minus in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
times in class AbstractDenseDoubleMatrix2D
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 interface BasicDoubleCalculations
Overrides:
divide in class AbstractDenseDoubleMatrix2D
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.


Copyright © 2010. All Rights Reserved.