org.ejml.alg.block
Class BlockMatrixOps

java.lang.Object
  extended by org.ejml.alg.block.BlockMatrixOps

public class BlockMatrixOps
extends Object

Various operations on BlockMatrix64F.

Author:
Peter Abeles

Constructor Summary
BlockMatrixOps()
           
 
Method Summary
static boolean blockAligned(int blockLength, D1Submatrix64F A)
          Checks to see if the submatrix has its boundaries along inner blocks.
static void checkIdenticalShape(BlockMatrix64F A, BlockMatrix64F B)
           Checks to see if the two matrices have an identical shape an block size.
static DenseMatrix64F convert(BlockMatrix64F src, DenseMatrix64F dst)
          Converts a row major block matrix into a row major matrix.
static BlockMatrix64F convert(DenseMatrix64F A)
           
static void convert(DenseMatrix64F src, BlockMatrix64F dst)
          Converts a row major matrix into a row major block matrix.
static BlockMatrix64F convert(DenseMatrix64F A, int blockLength)
           
static void convertBlockToRow(int numRows, int numCols, int blockLength, double[] data, double[] tmp)
           Converts matrix data stored is a block row major format into a row major format in place.
static void convertRowToBlock(int numRows, int numCols, int blockLength, double[] data, double[] tmp)
           Converts matrix data stored is a row major format into a block row major format in place.
static SimpleMatrix convertSimple(BlockMatrix64F A)
          Converts the block matrix into a SimpleMatrix.
static void convertTranSrc(DenseMatrix64F src, BlockMatrix64F dst)
          Converts the transpose of a row major matrix into a row major block matrix.
static void copyTriangle(boolean upper, BlockMatrix64F src, BlockMatrix64F dst)
          Copies either the upper or lower triangular portion of src into dst.
static BlockMatrix64F createRandom(int numRows, int numCols, double min, double max, Random rand)
           
static BlockMatrix64F createRandom(int numRows, int numCols, double min, double max, Random rand, int blockLength)
           
static void extractAligned(BlockMatrix64F src, BlockMatrix64F dst)
           Extracts a matrix from src into dst.
static BlockMatrix64F identity(int numRows, int numCols, int blockLength)
           Returns a new matrix with ones along the diagonal and zeros everywhere else.
static boolean isEquals(BlockMatrix64F A, BlockMatrix64F B)
           
static boolean isEquals(BlockMatrix64F A, BlockMatrix64F B, double tol)
           
static void mult(BlockMatrix64F A, BlockMatrix64F B, BlockMatrix64F C)
           
static void multTransA(BlockMatrix64F A, BlockMatrix64F B, BlockMatrix64F C)
           
static void multTransB(BlockMatrix64F A, BlockMatrix64F B, BlockMatrix64F C)
           
static void set(BlockMatrix64F A, double value)
           Sets every element in the matrix to the specified value.

aij = value
static void setIdentity(BlockMatrix64F A)
          Sets the value of A to all zeros except along the diagonal.
static BlockMatrix64F transpose(BlockMatrix64F A, BlockMatrix64F A_tran)
          Transposes a block matrix.
static void zeroTriangle(boolean upper, BlockMatrix64F A)
          Sets either the upper or low triangle of a matrix to zero
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlockMatrixOps

public BlockMatrixOps()
Method Detail

convert

public static void convert(DenseMatrix64F src,
                           BlockMatrix64F dst)
Converts a row major matrix into a row major block matrix.

Parameters:
src - Original DenseMatrix64F. Not modified.
dst - Equivalent BlockMatrix64F. Modified.

convertRowToBlock

public static void convertRowToBlock(int numRows,
                                     int numCols,
                                     int blockLength,
                                     double[] data,
                                     double[] tmp)

Converts matrix data stored is a row major format into a block row major format in place.

Parameters:
numRows - number of rows in the matrix.
numCols - number of columns in the matrix.
blockLength - Block size in the converted matrix.
data - Matrix data in a row-major format. Modified.
tmp - Temporary data structure that is to be the size of a block row.

convert

public static DenseMatrix64F convert(BlockMatrix64F src,
                                     DenseMatrix64F dst)
Converts a row major block matrix into a row major matrix.

Parameters:
src - Original BlockMatrix64F.. Not modified.
dst - Equivalent DenseMatrix64F. Modified.

convertBlockToRow

public static void convertBlockToRow(int numRows,
                                     int numCols,
                                     int blockLength,
                                     double[] data,
                                     double[] tmp)

Converts matrix data stored is a block row major format into a row major format in place.

Parameters:
numRows - number of rows in the matrix.
numCols - number of columns in the matrix.
blockLength - Block size in the converted matrix.
data - Matrix data in a block row-major format. Modified.
tmp - Temporary data structure that is to be the size of a block row.

convertTranSrc

public static void convertTranSrc(DenseMatrix64F src,
                                  BlockMatrix64F dst)
Converts the transpose of a row major matrix into a row major block matrix.

Parameters:
src - Original DenseMatrix64F. Not modified.
dst - Equivalent BlockMatrix64F. Modified.

mult

public static void mult(BlockMatrix64F A,
                        BlockMatrix64F B,
                        BlockMatrix64F C)

multTransA

public static void multTransA(BlockMatrix64F A,
                              BlockMatrix64F B,
                              BlockMatrix64F C)

multTransB

public static void multTransB(BlockMatrix64F A,
                              BlockMatrix64F B,
                              BlockMatrix64F C)

transpose

public static BlockMatrix64F transpose(BlockMatrix64F A,
                                       BlockMatrix64F A_tran)
Transposes a block matrix.

Parameters:
A - Original matrix. Not modified.
A_tran - Transposed matrix. Modified.

createRandom

public static BlockMatrix64F createRandom(int numRows,
                                          int numCols,
                                          double min,
                                          double max,
                                          Random rand)

createRandom

public static BlockMatrix64F createRandom(int numRows,
                                          int numCols,
                                          double min,
                                          double max,
                                          Random rand,
                                          int blockLength)

convert

public static BlockMatrix64F convert(DenseMatrix64F A,
                                     int blockLength)

convert

public static BlockMatrix64F convert(DenseMatrix64F A)

isEquals

public static boolean isEquals(BlockMatrix64F A,
                               BlockMatrix64F B)

isEquals

public static boolean isEquals(BlockMatrix64F A,
                               BlockMatrix64F B,
                               double tol)

zeroTriangle

public static void zeroTriangle(boolean upper,
                                BlockMatrix64F A)
Sets either the upper or low triangle of a matrix to zero


copyTriangle

public static void copyTriangle(boolean upper,
                                BlockMatrix64F src,
                                BlockMatrix64F dst)
Copies either the upper or lower triangular portion of src into dst. Dst can be smaller than src.

Parameters:
upper - If the upper or lower triangle is copied.
src - The source matrix. Not modified.
dst - The destination matrix. Modified.

set

public static void set(BlockMatrix64F A,
                       double value)

Sets every element in the matrix to the specified value.

aij = value

Parameters:
A - A matrix whose elements are about to be set. Modified.
value - The value each element will have.

setIdentity

public static void setIdentity(BlockMatrix64F A)

Sets the value of A to all zeros except along the diagonal.

Parameters:
A - Block matrix.

convertSimple

public static SimpleMatrix convertSimple(BlockMatrix64F A)

Converts the block matrix into a SimpleMatrix.

Parameters:
A - Block matrix that is being converted. Not modified.
Returns:
Equivalent SimpleMatrix.

identity

public static BlockMatrix64F identity(int numRows,
                                      int numCols,
                                      int blockLength)

Returns a new matrix with ones along the diagonal and zeros everywhere else.

Parameters:
numRows - Number of rows.
numCols - NUmber of columns.
blockLength - Block length.
Returns:
An identify matrix.

checkIdenticalShape

public static void checkIdenticalShape(BlockMatrix64F A,
                                       BlockMatrix64F B)

Checks to see if the two matrices have an identical shape an block size.

Parameters:
A - Matrix.
B - Matrix.

extractAligned

public static void extractAligned(BlockMatrix64F src,
                                  BlockMatrix64F dst)

Extracts a matrix from src into dst. The submatrix which is copied has its initial coordinate at (0,0) and ends at (dst.numRows,dst.numCols). The end rows/columns must be aligned along blocks or else it will silently screw things up.

Parameters:
src - Matrix which a submatrix is being extracted from. Not modified.
dst - Where the submatrix is written to. Its rows and columns be less than or equal to 'src'. Modified.

blockAligned

public static boolean blockAligned(int blockLength,
                                   D1Submatrix64F A)
Checks to see if the submatrix has its boundaries along inner blocks.

Parameters:
blockLength - Size of an inner block.
A - Submatrix.
Returns:
If it is block aligned or not.


Copyright © 2012. All Rights Reserved.