[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |

# 9. Permutations

This chapter describes functions for creating and manipulating
permutations. A permutation *p* is represented by an array of
*n* integers in the range 0 to *n-1*, where each value
*p_i* occurs once and only once. The application of a permutation
*p* to a vector *v* yields a new vector *v'* where
*v'_i = v_{p_i}*.
For example, the array *(0,1,3,2)* represents a permutation
which exchanges the last two elements of a four element vector.
The corresponding identity permutation is *(0,1,2,3)*.

Note that the permutations produced by the linear algebra routines
correspond to the exchange of matrix columns, and so should be considered
as applying to row-vectors in the form *v' = v P* rather than
column-vectors, when permuting the elements of a vector.

The functions described in this chapter are defined in the header file
‘`gsl_permutation.h`’.