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#

Output Parameter#

  • 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 A and B have the same nonzero pattern as in the previous call.

This is a convenience routine that wraps the use of MatProductCreate() with a MatProductType of MATPRODUCT_AtB functionality into a single function call. For more involved matrix-matrix operations see MatProductCreate().

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.

The deprecated PETSC_DEFAULT in fill also means use the current value

See Also#

Matrices, Mat, MatProductCreate(), MATPRODUCT_AtB, MatMatMult(), MatMatTransposeMult(), MatPtAP()

Level#

intermediate

Location#

src/mat/interface/matrix.c

Examples#

src/ksp/ksp/tutorials/ex72.c
src/tao/constrained/tutorials/tomographyADMM.c
src/tao/tutorials/ex4.c


Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages