# MatIsStructurallySymmetricKnown#

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

## Synopsis#

#include "petscmat.h"
PetscErrorCode MatIsStructurallySymmetricKnown(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 structurally symmetric state (this tells you if the next flag is valid)

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

## Notes#

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

Use MatIsStructurallySymmetric() to explicitly check if a matrix is structurally symmetric (this is an expensive operation)

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