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