# MatIsSymmetricKnown#

Checks if a matrix knows if it is symmetric or not and its symmetric state

## Synopsis#

#include "petscmat.h"
PetscErrorCode MatIsSymmetricKnown(Mat A, PetscBool *set, PetscBool *flg)


Not Collective

## Input Parameter#

• A - the matrix to check

## Output Parameters#

• set - PETSC_TRUE if the matrix knows its symmetry state (this tells you if the next flag is valid)

• flg - the result (only valid if set is PETSC_TRUE)

## Notes#

Does not check the matrix values directly, so this may return unknown (set = PETSC_FALSE). Use MatIsSymmetric() if you want it explicitly checked

One can declare that a matrix is symmetric with MatSetOption(mat,MAT_SYMMETRIC,PETSC_TRUE) and if it is known to remain symmetric after changes to the matrices values one can call MatSetOption(mat,MAT_SYMMETRY_ETERNAL,PETSC_TRUE)

MAT_SYMMETRY_ETERNAL, MatTranspose(), MatIsTranspose(), MatIsHermitian(), MatIsStructurallySymmetric(), MatSetOption(), MatIsSymmetric(), MatIsHermitianKnown()