MatPtAP#
Creates the matrix product \(C = P^T * A * P\)
Synopsis#
Neighbor-wise Collective
Input Parameters#
A - the matrix
P - the projection matrix
scall - either
MAT_INITIAL_MATRIXorMAT_REUSE_MATRIXfill - expected fill as ratio of nnz(C)/(nnz(A) + nnz(P)), use
PETSC_DETERMINEorPETSC_CURRENTif 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().
This is a convenience routine that wraps the use of the MatProductCreate() with a MatProductType of MATPRODUCT_PtAP
functionality into a single function call. For more involved matrix-matrix operations see MatProductCreate().
The deprecated PETSC_DEFAULT in fill also means use the current value
Developer Note#
For matrix types without special implementation the function fallbacks to MatMatMult() followed by MatTransposeMatMult().
See Also#
Matrices, Mat, MatProductCreate(), MatMatMult(), MatRARt()
Level#
intermediate
Location#
Examples#
src/mat/tests/ex111.c
src/mat/tests/ex272.c
src/mat/tests/ex89.c
src/mat/tests/ex90.c
src/mat/tests/ex93.c
src/mat/tests/ex94.c
src/mat/tests/ex96.c
src/mat/tests/ex101.c
src/mat/tests/ex115.c
src/mat/tests/ex161.c
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages