public class Matrix3x3Block extends Matrix3d implements MatrixBlock
Matrix.Partition, Matrix.WriteFormatINDEFINITE, POSITIVE_DEFINITE, SPD, SYMMETRIC| Constructor and Description |
|---|
Matrix3x3Block()
Creates a new Matrix3x3Block.
|
Matrix3x3Block(Matrix3d M)
Creates a new Matrix3x3Block and initializes to the value of a Matrix3d
|
| 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. |
Matrix3x3Block |
clone()
Creates a clone of this matrix block, with the link and offset information
set to be undefined.
|
Matrix3x3Block |
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, addDiagonal, addObj, addOuterProduct, addOuterProduct, addScaledOuterProduct, addScaledOuterProduct, crossProduct, crossProduct, epsilonEquals, factorQR, fastInvert, inverseTransform, inverseTransform, invert, invert, main, mul, mul, mulCols, mulCols, mulInverse, mulInverseBoth, mulInverseLeft, mulInverseRight, mulRows, mulRows, mulTranspose, mulTransposeBoth, mulTransposeLeft, mulTransposeRight, negate, outerProduct, permuteColumns, permuteColumns, permuteRows, permuteRows, scale, scale, scaledAdd, scaledAdd, scaledAddObj, scaleObj, set, set, setColumns, setDiagonal, setDiagonal, setDiagonal, setDiagonal, setRandom, setRandom, setRandom, setRows, setSkewSymmetric, setSymmetric, setZero, sub, sub, transform, transform, transposecolSize, determinant, epsilonEquals, equals, factorQR, frobeniusNorm, get, get, getColumn, getColumn, getColumn, getRow, getRow, getRow, infinityNorm, isIdentity, isSymmetric, mul, mul, mul, mulAdd, mulAdd, mulInverse, mulInverse, mulInverseTranspose, mulInverseTranspose, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeLeftAdd, mulTransposeRightAdd, negate, negateColumn, negateRow, oneNorm, orthogonalDeterminant, rowSize, scaleColumn, scaleRow, set, set, set, set, setColumn, setColumn, setIdentity, setRow, setRow, solve, solveTranspose, trace, 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, isWritable, maxNorm, mul, mul, mulAdd, mulAdd, mulAdd, mulTranspose, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeAdd, mulTransposeAdd, numNonZeroVals, numNonZeroVals, scan, scan, setCRSValues, setDefaultFormat, setSize, toString, toString, toString, 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 Matrix3x3Block()
public Matrix3x3Block(Matrix3d M)
M - matrix to initialize frompublic 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 Matrix3x3Block createTranspose()
createTranspose in interface MatrixBlockpublic Matrix3x3Block clone()