:orphan:
# MatOption
Options that may be set for a matrix that indicate properties of the matrix or affect its behavior or storage
## Synopsis
```
typedef enum {
MAT_OPTION_MIN = -3,
MAT_UNUSED_NONZERO_LOCATION_ERR = -2,
MAT_ROW_ORIENTED = -1,
MAT_SYMMETRIC = 1,
MAT_STRUCTURALLY_SYMMETRIC = 2,
MAT_FORCE_DIAGONAL_ENTRIES = 3,
MAT_IGNORE_OFF_PROC_ENTRIES = 4,
MAT_USE_HASH_TABLE = 5,
MAT_KEEP_NONZERO_PATTERN = 6,
MAT_IGNORE_ZERO_ENTRIES = 7,
MAT_USE_INODES = 8,
MAT_HERMITIAN = 9,
MAT_SYMMETRY_ETERNAL = 10,
MAT_NEW_NONZERO_LOCATION_ERR = 11,
MAT_IGNORE_LOWER_TRIANGULAR = 12,
MAT_ERROR_LOWER_TRIANGULAR = 13,
MAT_GETROW_UPPERTRIANGULAR = 14,
MAT_SPD = 15,
MAT_NO_OFF_PROC_ZERO_ROWS = 16,
MAT_NO_OFF_PROC_ENTRIES = 17,
MAT_NEW_NONZERO_LOCATIONS = 18,
MAT_NEW_NONZERO_ALLOCATION_ERR = 19,
MAT_SUBSET_OFF_PROC_ENTRIES = 20,
MAT_SUBMAT_SINGLEIS = 21,
MAT_STRUCTURE_ONLY = 22,
MAT_SORTED_FULL = 23,
MAT_FORM_EXPLICIT_TRANSPOSE = 24,
MAT_STRUCTURAL_SYMMETRY_ETERNAL = 25,
MAT_SPD_ETERNAL = 26,
MAT_OPTION_MAX = 27
} MatOption;
```
## Note
See `MatSetOption()` for the use of the options
## Developer Note
Entries that are negative need not be called collectively by all processes.
## See Also
[](ch_matrices), `Mat`, `MatSetOption()`
## Level
beginner
## Location
include/petscmat.h
## Examples
src/ksp/ksp/tutorials/ex18.c
src/ksp/ksp/tutorials/ex19.c
src/ksp/ksp/tutorials/ex2.c
src/ksp/ksp/tutorials/ex21.c
src/ksp/ksp/tutorials/ex4.c
src/ksp/ksp/tutorials/ex5.c
src/ksp/ksp/tutorials/ex52.c
src/ksp/ksp/tutorials/ex54.c
src/ksp/ksp/tutorials/ex54f.F90
src/ksp/ksp/tutorials/ex55.c
src/ksp/ksp/tutorials/ex56.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h)
[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)