Skip to main content
`Ctrl`+`K`

# PetscDTPermIndex

Encode a permutation of n into an integer in [0, n!). This inverts `PetscDTEnumPerm()`.

## Input Parameters

- n - a non-negative integer (see note about limits below)

- perm - the permuted list of the integers [0, …, n-1]

## Output Parameters

- k - an integer in [0, n!)

- isOdd - if not `NULL`, returns whether the permutation used an even or odd number of swaps.

## Note

Limited to `n` such that `n`! can be represented by `PetscInt`, which is 12 if `PetscInt` is a signed 32-bit integer and 20 if `PetscInt` is a signed 64-bit integer.

## See Also

`PetscDTFactorial()`, `PetscDTFactorialInt()`, `PetscDTBinomial()`, `PetscDTBinomialInt()`, `PetscDTEnumPerm()`

## Level

beginner

## Location

include/petscdt.h

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