Skip to main content
`Ctrl`+`K`

# MatIsHermitianKnown

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

## Synopsis

    #include "petscmat.h"
    PetscErrorCode MatIsHermitianKnown(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 Hermitian 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 `MatIsHermitian()` if you want it explicitly checked

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

## See Also

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

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