Lists The Objects Partitions Permutations

Permutations

Permutations are implemented as a structure with two components: the first component codes the particular form, i.e. whether we have the so-called list notation or the well-known cycle-notation. The second part contains the data, it is a VECTORobject of INTEGERobject, the content depends on the kind of information. At the moment there are two kinds: VECTOR, which means the list-notation, and ZYKEL, the cycle-notation. Further implementations are concerned with elements of wreath products of the form S2 ≀Sn, the so-called hyperoctahedral groups (cf. the subsection on barred permutations).

In both cases the numbering starts with 1, and not with 0. The type VECTOR means, that we store the images of 1 to n as a list, so at the ith position we have the image of i+1, and if the type is ZYKEL, we store the permutation as a product of cycles, the cycles are written in a form, that the smallest entry comes first, and we store the cycle with the biggest first entry first. So the two following permutations are equal, the left hand side is the list-notation, and the right hand side is the cycle-notation:

[2,3,6,10,5,7,4,9,8,1]=(8,9)(5)(1,2,3,6,7,4,10).
Internally both are a VECTORobjects of INTEGERobjects. So the ZYKEL-type would be the INTEGER VECTOR
[8,9,5,1,2,3,6,7,4,10]
The type VECTOR is the default type of PERMUTATION objects.

Here is a table of the standard routines and macros which we shall describe lower down to some detail:

NAME MACRO DESCRIPTION
c_p_k C_P_K change_perm_kind
c_p_s C_P_S change_perm_self
s_p_k S_P_K select_perm_kind
s_p_i S_P_I select_perm_ith_element
s_p_ii S_P_II select_perm_ith_element_as_INT
s_p_l S_P_L select_perm_length
s_p_li S_P_LI select_perm_length_as_INT
s_p_s S_P_S select_perm_self
b_ks_p
m_ks_p
m_il_p
Now we give more detailed descriptions of these routines.
harald.fripertinger "at" uni-graz.at, May 26, 2011

Lists The Objects Partitions Uni-Graz Mathematik Permutations Valid HTML 4.0 Transitional Valid CSS!