:orphan: # MatCreateNormal Creates a new `MATNORMAL` matrix object that behaves like A'*A. ## Synopsis ``` #include "petscmat.h" PetscErrorCode MatCreateNormal(Mat A, Mat *N) ``` Collective ## Input Parameter - ***A -*** the (possibly rectangular) matrix ## Output Parameter - ***N -*** the matrix that represents A'*A ## Notes The product A'*A is NOT actually formed! Rather the new matrix object performs the matrix-vector product, `MatMult()`, by first multiplying by A and then A' ## See Also [](ch_matrices), `Mat`, `MATNORMAL`, `MatMult()`, `MatNormalGetMat()`, `MATNORMALHERMITIAN`, `MatCreateNormalHermitian()` ## Level intermediate ## Location src/mat/impls/normal/normm.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/normal/normm.c) [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)