public class Matrix6dBlock extends Matrix6d implements MatrixBlock
Matrix.Partition, Matrix.WriteFormatm00, m01, m02, m03, m04, m05, m10, m11, m12, m13, m14, m15, m20, m21, m22, m23, m24, m25, m30, m31, m32, m33, m34, m35, m40, m41, m42, m43, m44, m45, m50, m51, m52, m53, m54, m55INDEFINITE, POSITIVE_DEFINITE, SPD, SYMMETRIC| Constructor and Description |
|---|
Matrix6dBlock()
Creates a new Matrix6dBlock.
|
| 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 by idx. |
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 by idx. |
Matrix6dBlock |
clone()
Creates a clone of this matrix block, with the link and offset information
set to be undefined.
|
Matrix6dBlock |
createTranspose()
Creates a transpose of this matrix block.
|
MatrixBlock |
down()
Returns the next matrix block in a block matrix column.
|
int |
getBlockCCSIndices(int[] rowIdxs,
int rowOff,
int[] offsets,
Matrix.Partition part) |
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.
|
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. |
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.
|
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.
|
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.
|
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, add, addObj, addSubMatrix00, addSubMatrix03, addSubMatrix30, addSubMatrix33, crossProductTransform, epsilonEquals, getSubMatrix00, getSubMatrix03, getSubMatrix30, getSubMatrix33, inverseTransform, inverseTransform, invert, mul, mul, mulAdd, mulInverse, mulInverseBoth, mulInverseLeft, mulInverseRight, mulTranspose, mulTransposeBoth, mulTransposeLeft, mulTransposeLeftAdd, mulTransposeRight, mulTransposeRightAdd, negate, scale, scale, scaledAddObj, scaleObj, set, setDiagonal, setDiagonal, setDiagonal, setLowerToUpper, setRandom, setRandom, setRandom, setSubMatrix00, setSubMatrix03, setSubMatrix30, setSubMatrix33, setZero, sub, sub, transform, transform, transposecolSize, determinant, epsilonEquals, equals, frobeniusNorm, get, get, get, getColumn, getColumn, getRow, getRow, infinityNorm, invert, mul, mul, mulInverse, mulInverse, mulInverseTranspose, mulInverseTranspose, mulTranspose, mulTranspose, negate, oneNorm, rowSize, scaledAdd, set, set, set, set, setColumn, setIdentity, setRow, transposeadd, checkConsistency, set, set, set, setCCSValues, setColumn, setCRSValues, setRow, setSubMatrixcontainsNaN, epsilonEquals, equals, frobeniusNormSquared, get, getCCSIndices, getCCSIndices, getCCSIndices, getCCSValues, getCCSValues, getCCSValues, getColumn, getCRSIndices, getCRSIndices, getCRSIndices, getCRSValues, getCRSValues, getCRSValues, getDefaultFormat, getRow, getSize, getSubMatrix, hasNaN, idString, isFixedSize, isSymmetric, isWritable, maxNorm, mul, mul, mulAdd, mulAdd, mulAdd, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeAdd, mulTransposeAdd, numNonZeroVals, numNonZeroVals, scan, scan, setCRSValues, setDefaultFormat, setSize, toString, toString, toString, trace, write, write, write, write, write, write, write, writeToFileequals, getClass, hashCode, notify, notifyAll, wait, wait, waitmulAdd, mulTransposeLeftAdd, mulTransposeRightAdd, negate, scale, setZeroset, 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, numNonZeroVals, oneNorm, rowSize, scan, set, set, setCCSValues, setCRSValues, setSize, toString, toString, trace, write, write, writegetThreeVectorValueisWritable, scan, 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 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 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 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 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 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 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 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 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 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 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 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 boolean valueIsNonZero(int i,
int j)
valueIsNonZero in interface MatrixBlocki - row indexj - column indexpublic Matrix6dBlock createTranspose()
createTranspose in interface MatrixBlockpublic Matrix6dBlock clone()