Skip to main content
`Ctrl`+`K`

# 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`)

## See Also

Matrices, `Mat`, `MAT_SYMMETRY_ETERNAL`, `MatTranspose()`, `MatIsTranspose()`, `MatIsHermitian()`, `MatIsStructurallySymmetric()`, `MatSetOption()`, `MatIsSymmetric()`, `MatIsHermitianKnown()`

## Level

advanced

## Location

src/mat/interface/matrix.c

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