:orphan:
# ISPermutation
`PETSC_TRUE` or `PETSC_FALSE` depending on whether the index set has been declared to be a permutation. 
## Synopsis
```
#include "petscis.h" 
PetscErrorCode ISPermutation(IS is, PetscBool *perm)
```
Logically Collective


## Input Parameter

- ***is -*** the index set



## Output Parameter

- ***perm -*** `PETSC_TRUE` if a permutation, else `PETSC_FALSE`





## Note
If it is not already known that `is` is a permutation (if `ISSetPermutation()`
or `ISSetInfo()` has not been called), this routine will not attempt to compute
whether the index set is a permutation and will assume `perm` is `PETSC_FALSE`.
To compute the value when it is not already known, use `ISGetInfo()` with
the compute flag set to `PETSC_TRUE`.


## Developer Note
Perhaps some of these routines should use the `PetscBool3` enum to return appropriate values


## See Also
 `IS`, `ISSetPermutation()`, `ISGetInfo()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/is/is/interface/index.c.html#ISPermutation">src/vec/is/is/interface/index.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/is/interface/index.c)


[Index of all IS routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
