MatRARt#
Creates the matrix product \(C = R * A * R^T\)
Synopsis#
Neighbor-wise Collective
Input Parameters#
A - the matrix
R - the projection matrix
scall - either
MAT_INITIAL_MATRIX
orMAT_REUSE_MATRIX
fill - expected fill as ratio of nnz(C)/nnz(A), use
PETSC_DETERMINE
orPETSC_CURRENT
if you do not have a good estimate if the result is a dense matrix this is irrelevant
Output Parameter#
C - the product matrix
Notes#
C
will be created and must be destroyed by the user with MatDestroy()
.
An alternative approach to this function is to use MatProductCreate()
and set the desired options before the computation is done
This routine is currently only implemented for pairs of MATAIJ
matrices and classes
which inherit from MATAIJ
. Due to PETSc sparse matrix block row distribution among processes,
parallel MatRARt()
is implemented via explicit transpose of R
, which could be very expensive.
We recommend using MatPtAP()
.
The deprecated PETSC_DEFAULT
in fill
also means use the current value
See Also#
Matrices, Mat
, MatProductCreate()
, MatMatMult()
, MatPtAP()
Level#
intermediate
Location#
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages