public abstract class MatrixBlockBase extends DenseMatrixBase implements MatrixBlock
Matrix.Partition, Matrix.WriteFormatINDEFINITE, POSITIVE_DEFINITE, SPD, SYMMETRIC| Modifier and Type | Method and Description | 
|---|---|
| void | add(Matrix M)Adds the contents of a Matrix to this matrix block. | 
| void | addNumNonZerosByCol(int[] offsets,
                   int idx,
                   Matrix.Partition part)Adds the number of non-zero entries in each column of this block matrix to
 the current values stored in the array  offsets, starting
 at the location specified byidx. | 
| static void | addNumNonZerosByCol(Matrix M,
                   int[] offsets,
                   int idx,
                   Matrix.Partition part)Dense implementation method for  addNumNonZerosByColgetBlockCCSIndices(int[],int,Partition). | 
| void | addNumNonZerosByRow(int[] offsets,
                   int idx,
                   Matrix.Partition part)Adds the number of non-zero entries in each row of this block matrix to
 the current values stored in the array  offsets, starting
 at the location specified byidx. | 
| static void | addNumNonZerosByRow(Matrix M,
                   int[] offsets,
                   int idx,
                   Matrix.Partition part)Dense implementation method for  addNumNonZerosByRow(int[],int,Partition). | 
| static MatrixBlock | alloc(int nrows,
     int ncols) | 
| MatrixBlockBase | clone()Creates a clone of this MatrixBlock, which duplicates the size, storage
 capacity, and values. | 
| MatrixBlock | down()Returns the next matrix block in a block matrix column. | 
| int | getBlockCCSIndices(int[] rowIdxs,
                  int rowOff,
                  int[] offsets,
                  Matrix.Partition part) | 
| static int | getBlockCCSIndices(MatrixBlock M,
                  int[] rowIdxs,
                  int rowOff,
                  int[] offsets,
                  Matrix.Partition part)Dense implementation method for  getBlockCCSIndices(int[],int[],Partition). | 
| int | getBlockCCSValues(double[] vals,
                 int[] offsets,
                 Matrix.Partition part)Stores the values of non-zero entries for this matrix block. | 
| int | getBlockCol()Gets the number of the block column of this matrix block within a
  SparseBlockMatrix. | 
| int | getBlockCRSIndices(int[] colIdxs,
                  int colOff,
                  int[] offsets,
                  Matrix.Partition part)Stores the column indices of the non-zero entries for this matrix block. | 
| static int | getBlockCRSIndices(MatrixBlock M,
                  int[] colIdxs,
                  int colOff,
                  int[] offsets,
                  Matrix.Partition part) | 
| int | getBlockCRSValues(double[] vals,
                 int[] offsets,
                 Matrix.Partition part)Stores the values of non-zero entries for this matrix block. | 
| int | getBlockNumber()Gets the number of this block within a  SparseBlockMatrix. | 
| int | getBlockRow()Gets the number of the block row of this matrix block within a
  SparseBlockMatrix. | 
| abstract void | mulAdd(double[] y,
      int yIdx,
      double[] x,
      int xidx)Pre-multiplies a column vector by this matrix block and adds the result to
 a set of existing values. | 
| abstract void | mulTransposeAdd(double[] y,
               int yIdx,
               double[] x,
               int xidx)Post-multiplies a row vector by this matrix block and adds the result to a
 set of existing values. | 
| MatrixBlock | next()Returns the next matrix block in a block matrix row. | 
| int | numNonZeroVals()Returns the number of non-zero values in this matrix object. | 
| void | scale(double s)Scales the elements of this matrix block by a scale factor. | 
| void | scaledAdd(double s,
         Matrix M)Adds the scaled contents of a Matrix to this matrix block. | 
| void | setBlockCol(int blkCol)Sets the number of the block column of this matrix block within a
  SparseBlockMatrix. | 
| void | setBlockNumber(int num)Sets the number of this block within a  SparseBlockMatrix. | 
| void | setBlockRow(int blkRow)Sets the number of the block row of this matrix block within a
  SparseBlockMatrix. | 
| void | setDown(MatrixBlock blk)Sets the next matrix block in a block matrix column. | 
| void | setNext(MatrixBlock blk)Sets the next matrix block in a block matrix row. | 
| abstract void | setZero()Sets the contents of this matrix block to zero. | 
| void | sub(Matrix M)Subtract the contents of a Matrix from this matrix block. | 
| boolean | valueIsNonZero(int i,
              int j)Returns true if the value at the specified location is structurally
 non-zero. | 
add, checkConsistency, set, set, set, set, set, set, setCCSValues, setColumn, setColumn, setCRSValues, setRow, setRow, setSubMatrixcolSize, containsNaN, determinant, epsilonEquals, equals, frobeniusNorm, frobeniusNormSquared, get, get, get, getCCSIndices, getCCSIndices, getCCSIndices, getCCSValues, getCCSValues, getCCSValues, getColumn, getColumn, getColumn, getCRSIndices, getCRSIndices, getCRSIndices, getCRSValues, getCRSValues, getCRSValues, getDefaultFormat, getRow, getRow, getRow, getSize, getSubMatrix, hasNaN, idString, infinityNorm, isFixedSize, isSymmetric, maxNorm, mul, mul, mul, mulAdd, mulAdd, mulAdd, mulTranspose, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeAdd, mulTransposeAdd, numNonZeroVals, oneNorm, rowSize, scan, setCRSValues, setDefaultFormat, setSize, toString, toString, toString, trace, write, write, write, write, write, write, writeToFileequals, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateTranspose, mulAddset, set, set, setColumn, setColumn, setRow, setRow, setSubMatrixcheckConsistency, colSize, determinant, epsilonEquals, equals, frobeniusNorm, frobeniusNormSquared, get, get, getCCSIndices, getCCSIndices, getCCSIndices, getCCSValues, getCCSValues, getCCSValues, getColumn, getColumn, getColumn, getCRSIndices, getCRSIndices, getCRSIndices, getCRSValues, getCRSValues, getCRSValues, getRow, getRow, getRow, getSize, getSubMatrix, infinityNorm, isFixedSize, isSymmetric, maxNorm, mul, mul, mul, mulAdd, mulAdd, mulAdd, mulTranspose, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeAdd, mulTransposeAdd, numNonZeroVals, oneNorm, rowSize, scan, set, set, setCCSValues, setCRSValues, setSize, toString, toString, trace, write, write, writepublic MatrixBlock next()
next in interface MatrixBlockpublic void setNext(MatrixBlock blk)
maspack.matrix.setNext in interface MatrixBlockblk - next matrix block in a rowpublic MatrixBlock down()
down in interface MatrixBlockpublic void setDown(MatrixBlock blk)
maspack.matrix.setDown in interface MatrixBlockblk - next matrix block in a columnpublic int getBlockRow()
SparseBlockMatrix.getBlockRow in interface MatrixBlockpublic void setBlockRow(int blkRow)
SparseBlockMatrix. Use of this
 method is reserved to maspack.matrix.setBlockRow in interface MatrixBlockblkRow - row number for this blockpublic int getBlockNumber()
SparseBlockMatrix. Block numbers are used for fast access. If
 the block does not belong to a SparseBlockMatrix, then -1 is returned.getBlockNumber in interface MatrixBlockpublic void setBlockNumber(int num)
SparseBlockMatrix. Use
 of this method is reserved to maspack.matrix.setBlockNumber in interface MatrixBlocknum - number for this blockpublic int getBlockCol()
SparseBlockMatrix.getBlockCol in interface MatrixBlockpublic void setBlockCol(int blkCol)
SparseBlockMatrix. Use of this
 method is reserved to maspack.matrix.setBlockCol in interface MatrixBlockblkCol - column number for this blockpublic abstract void setZero()
setZero in interface MatrixBlockpublic void scale(double s)
scale in interface MatrixBlocks - scaling factorpublic void add(Matrix M)
add in interface MatrixBlockM - matrix to addpublic void scaledAdd(double s,
                      Matrix M)
scaledAdd in interface MatrixBlocks - scaling factorM - matrix to addpublic void sub(Matrix M)
sub in interface MatrixBlockM - matrix to subtractpublic abstract void mulAdd(double[] y,
                            int yIdx,
                            double[] x,
                            int xidx)
x, starting at location xIdx, and
 the result is added to values in y, starting at location
 yIdx.mulAdd in interface MatrixBlocky - accumulates resulting valuesyIdx - starting index for accumulating valuesx - supplies column vector valuesxidx - starting index for column vector valuespublic abstract void mulTransposeAdd(double[] y,
                                     int yIdx,
                                     double[] x,
                                     int xidx)
x, starting at location xIdx, and the
 result is added to values in y, starting at location
 yIdx.mulTransposeAdd in interface MatrixBlocky - accumulates resulting valuesyIdx - starting index for accumulating valuesx - supplies row vector valuesxidx - starting index for row vector valuespublic static int getBlockCRSIndices(MatrixBlock M, int[] colIdxs, int colOff, int[] offsets, Matrix.Partition part)
public int getBlockCRSIndices(int[] colIdxs,
                              int colOff,
                              int[] offsets,
                              Matrix.Partition part)
colIdxs, starting at a location given by
 offsets[i]. Indices are 0-based. Upon return,
 offsets[i] should be incremented by the number of non-zero
 values in row i.getBlockCRSIndices in interface MatrixBlockcolIdxs - stores column indices of non-zero entriescolOff - starting column index for the first column of this blockoffsets - offsets within colIdxs for storing each row's indices; upon
 return, should be incremented by the number of non-zero entries in each
 row.part - specifies whether to store column indices for the entire block or a
 specified sub-portion.public int getBlockCRSValues(double[] vals,
                             int[] offsets,
                             Matrix.Partition part)
vals,
 starting at a location given by offsets[i]. Upon return,
 offsets[i] should be incremented by the number of non-zero
 values in row i.getBlockCRSValues in interface MatrixBlockvals - stores values of non-zero entriesoffsets - offsets within vals for storing each row's values; upon
 return, should be incremented by the number of non-zero entries in each
 row.part - specifies whether to store the entire block or a specified sub-portion.public static void addNumNonZerosByRow(Matrix M, int[] offsets, int idx, Matrix.Partition part)
addNumNonZerosByRow(int[],int,Partition).public void addNumNonZerosByRow(int[] offsets,
                                int idx,
                                Matrix.Partition part)
offsets, starting
 at the location specified by idx.addNumNonZerosByRow in interface MatrixBlockoffsets - values to be incremented by the number of non-zero entries in each rowidx - starting location within offsetspart - specifies whether to consider the entire block or a specified sub-portion.public static int getBlockCCSIndices(MatrixBlock M, int[] rowIdxs, int rowOff, int[] offsets, Matrix.Partition part)
getBlockCCSIndices(int[],int[],Partition).public int getBlockCCSIndices(int[] rowIdxs,
                              int rowOff,
                              int[] offsets,
                              Matrix.Partition part)
getBlockCCSIndices in interface MatrixBlockrowIdxs - stores row indices of non-zero entriesrowOff - starting row index for the first row of this blockoffsets - offsets within rowIdxs for storing each column's indices;
 upon return, should be incremented by the number of non-zero entries in
 each column.part - specifies whether to store row indices for the entire block or a specified
 sub-portion.public int getBlockCCSValues(double[] vals,
                             int[] offsets,
                             Matrix.Partition part)
vals, starting at a location given by
 offsets[j]. Upon return, offsets[j] should
 be incremented by the number of non-zero values in column j.getBlockCCSValues in interface MatrixBlockvals - stores values of non-zero entriesoffsets - offsets within vals for storing each columns's values; upon
 return, should be incremented by the number of non-zero entries in each
 column.part - specifies whether to store the entire block or a specified sub-portion.public static void addNumNonZerosByCol(Matrix M, int[] offsets, int idx, Matrix.Partition part)
addNumNonZerosByColgetBlockCCSIndices(int[],int,Partition).public void addNumNonZerosByCol(int[] offsets,
                                int idx,
                                Matrix.Partition part)
offsets, starting
 at the location specified by idx.addNumNonZerosByCol in interface MatrixBlockoffsets - values to be incremented by the number of non-zero entries in each columnidx - starting location within offsetspart - specifies whether to consider the entire block or a specified sub-portion.public boolean valueIsNonZero(int i,
                              int j)
valueIsNonZero in interface MatrixBlocki - row indexj - column indexpublic int numNonZeroVals()
numNonZeroVals in interface MatrixnumNonZeroVals in class MatrixBasepublic MatrixBlockBase clone()
clone in interface MatrixBlockclone in interface Clonableclone in class java.lang.Objectpublic static MatrixBlock alloc(int nrows, int ncols)