MatTransposeMatMult#
Performs matrix-matrix multiplication C=A^T*B.
Synopsis#
#include "petscmat.h"
PetscErrorCode MatTransposeMatMult(Mat A, Mat B, MatReuse scall, PetscReal fill, Mat *C)
Neighbor-wise Collective
Input Parameters#
A - the left matrix
B - the right matrix
scall - either
MAT_INITIAL_MATRIXorMAT_REUSE_MATRIXfill - expected fill as ratio of nnz(C)/(nnz(A) + nnz(B)), use
PETSC_DEFAULTif not known
Output Parameters#
C - the product matrix
Notes#
C will be created if MAT_INITIAL_MATRIX and must be destroyed by the user with MatDestroy().
MAT_REUSE_MATRIX can only be used if the matrices A and B have the same nonzero pattern as in the previous call.
This routine is shorthand for using MatProductCreate() with the MatProductType of MATPRODUCT_AtB
To determine the correct fill value, run with -info and search for the string “Fill ratio” to see the value actually needed.
This routine is currently implemented for pairs of MATAIJ matrices and pairs of MATSEQDENSE matrices and classes
which inherit from MATSEQAIJ. C will be of the same type as the input matrices.
See Also#
Mat, MatProductCreate(), MATPRODUCT_AtB, MatMatMult(), MatMatTransposeMult(), MatPtAP()
Level#
intermediate
Location#
Examples#
src/ksp/ksp/tutorials/ex72.c.html
src/tao/constrained/tutorials/tomographyADMM.c.html
src/tao/tutorials/ex4.c.html
Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages