
Use of this format makes application of the permutation (or its inverse) to a Matrix or Vector quite simple. For example, for a 4 x 4 Matrix, the identity permutation is given by, ,, ,, , etcetera. Unlike a permutation Matrix, this format does not result in a unique representation for a permutation.

Permute a matrix how to#
This vector can be interpreted as an ordered list of instructions on how to apply a permutation, where the first entry describes the row exchange required for the first row, the second describes the row exchange required for the second row, etcetera.įor example, if, for a 4 x 4 Matrix, the permutation Vector is given by, then this corresponds to the following exchanges in the given order: 1 1, 2 4, 3 4. If invflag is false, it indicates that the permutation itself is to be applied.Īs mentioned before, the permutation must be stored in a compact form in pvec. If the invflag parameter is true, it indicates that the inverse of the permutation is to be applied. If the number of elements in pvec is larger than the number of columns of A, then only the first cols A components of pvec are applied. If rowflag is false, the permutation is applied to the columns of A. If the number of elements in pvec is larger than the number of rows of A, then only the first rows A components of pvec are applied. If rowflag is true, the permutation is applied to the rows of A. r, where r is the number of elements being permuted. The pvec parameter must be a Vector of type integer/integer, integer, or anything, and must have integer entries in the range 1.

The Permute function applies the compact permutation stored in pvec to the mod m Matrix or Vector A in-place.

Permute( m, pvec, A, rowflag, invflag )īoolean indicate a row permutation (false for column)īoolean indicate whether inverse permutation is applied Apply compact permutation to a mod m Matrix or Vector
