:orphan:
# MatProductType
indicates what type of matrix product is requested 
## Synopsis
```
typedef enum {
  MATPRODUCT_UNSPECIFIED = 0,
  MATPRODUCT_AB,
  MATPRODUCT_AtB,
  MATPRODUCT_ABt,
  MATPRODUCT_PtAP,
  MATPRODUCT_RARt,
  MATPRODUCT_ABC
} MatProductType;
```

## Values

- ***`MATPRODUCT_AB` -*** product of two matrices
- ***`MATPRODUCT_AtB` -*** product of the transpose of a given matrix with a matrix
- ***`MATPRODUCT_ABt` -*** product of a matrix with the transpose of another given matrix
- ***`MATPRODUCT_PtAP` -*** the triple product of the transpose of a matrix with another matrix and itself
- ***`MATPRODUCT_RARt` -*** the triple product of a matrix, another matrix and the transpose of the first matrix
- ***`MATPRODUCT_ABC` -*** the product of three matrices





## See Also
 [](sec_matmatproduct), [](ch_matrices), `MatProductSetType()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscmat.h.html#MatProductType">include/petscmat.h</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/tao/pde_constrained/tutorials/parabolic.c.html">src/tao/pde_constrained/tutorials/parabolic.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h)


[Index of all Mat routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
