ListsThe ObjectsPartitionsPermutations


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 wr 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:

Internally both are a VECTORobjects of INTEGERobjects. So the ZYKEL-type would be the INTEGER VECTOR
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:

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
Now we give more detailed descriptions of these routines.
  • How to change a PERMUTATIONobject
  • How to build a PERMUTATIONobject
  • How to handle PERMUTATIONobjects
  • Barred Permutations

    last changed: November 19, 2001

    ListsThe ObjectsPartitionsPermutations