MATDIAGONAL#
MATDIAGONAL = “diagonal” - A diagonal matrix type with the diagonal implemented as a Vec. Useful for cases where VecPointwiseMult() or VecPointwiseDivide() should be thought of as the actions of a linear operator.
Note#
The first use case is simply to call `MatCreateDiagonal()’ to provide the vector containing the diagonal matrix. The input vector will be referenced internally by the matrix: any changes to it will affect the matrix. Similar changes to the matrix will affect the vector.
For the second use case call MatSetType() with a type of MATDIAGONAL followed by a call to MatDiagonalSetDiagonal(). The input vector will be
referenced internally by the matrix: any changes to it will affect the matrix. Similar changes to the matrix will affect the vector.
For the third use case call MatSetType() with a type of MATDIAGONAL followed by a calls to MatSetSizes() and MatDiagonalSet(). In this case
the diagonal vector will not be referenced internally by the matrix, its values will be copied.
See Also#
Matrices, Mat, MatCreateDiagonal(), MatDiagonalRestoreInverseDiagonal(), MatDiagonalGetDiagonal(), MatDiagonalRestoreDiagonal(),
MatDiagonalGetInverseDiagonal(), MatDiagonalSet(), MatDiagonalSetDiagonal()
Level#
advanced
Location#
src/mat/impls/diagonal/diagonal.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages