   Special routines for wreath products

#### Special routines for wreath products

Now let me demonstrate some special routines for wreath products. In SYMMETRICA it is possible to do computations with objects of objectkind KRANZ. Such a KRANZ object is a VECTOR object of length 2. The first part is a PERMUTATION object of length n, the second part a VECTOR object having n entries.

The procedure

```INT init_kranz(a)    OP a;
```
initializes a KRANZ object `a`.

Given a PERMUTATION of n elements and a VECTOR of length n you can compute the corresponding KRANZ object with

```INT m_perm_vector_kranz(p,v,a) OP p,v,a;
```
`p` stands for the PERMUTATION, `v` for the VECTOR and `a` for the KRANZ object.

The routine

```INT scan_kranz(a) OP a;
```
can be used to scan the KRANZ object `a`.

Using the routine

```INT mult_kranz_kranz(a,b,c) OP a,b,c;
```
you can multiply two KRANZ objects `a` and `b` according to the definition given above to get `c`.

There are various routines for selecting the different parts of a KRANZ object.

```OP s_kr_g(a)        OP a;
OP s_kr_v(a)        OP a;
OP s_kr_i(a,i)      OP a; INT i;
INT s_kr_gli(a)     OP a;
OP s_kr_gl(a)       OP a;
OP s_kr_gi(a,i)     OP a; INT i;    S_KR_GI(a,i)    OP a; INT i;
INT s_kr_gii(a,i)   OP a; INT i;    S_KR_GII(a,i)   OP a; INT i;
OP s_kr_ij(a,i,j)   OP a; INT i,j;  S_KR_IJ(a,i,j)  OP a; INT i,j;
INT s_kr_iji(a,i,j) OP a; INT i,j;  S_KR_IJI(a,i,j) OP a; INT i,j;
```
In all these cases `a` is a KRANZ object. `s_kr_g` stands for `select_kranz_grobpermutation`, which selects the first part (the PERMUTATION part) of `a`. `s_kr_v` selects the VECTOR part (the second part) of `a`. `s_kr_i` selects the `i`-th entry of the VECTOR part of `a`. `s_kr_gli` returns the integervalue of the length of the PERMUTATION part of `a`. `s_kr_gl` is the length (as an INTEGER object) of the PERMUTATION part of `a`. `s_kr_gi` selects the `i`-th entry of the PERMUTATION part of `a`. `s_kr_gii` returns the integervalue of the `i`-th entry of the PERMUTATION part of `a`. In order to use the next two routines you must take care that the entries of the VECTOR part of `a` are also PERMUTATION objects. `s_kr_ij` selects the `j`-th entry of the `i`-th entry of the VECTOR part of `a`. `s_kr_iji` returns the integervalue of the `j`-th entry of the `i`-th entry of the VECTOR part of `a`.

Given two permutation groups G and H by their sets of generators, we can compute the generators of H wr G with the following routine:

```INT gen_full_mon_group(a,b,c)  OP a,b,c;
```
`a` and `b` are the VECTORs of generators of H and G. `c` is a VECTOR object, where each entry is a KRANZ object. These entries are the generators of H wr G.

The generators of the plethysm H pleth G can be computed with

```INT gen_plethysm(a,b,c)  OP a,b,c;
```
where `a` and `b` are the VECTORS of generators of H and G. `c` is a VECTOR of generators of H pleth G.

The permutation representation of a KRANZ object where the entries of the VECTOR part are PERMUTATIONs is computed by

```INT t_kranz_plethysm(a,b)  OP a,b;
```
`a` is a KRANZ object where all the entries of the VECTOR part are PERMUTATIONs of the same degree. `b` is a PERMUTATION object, the induced permutation in form of the plethysm.
harald.fripertinger@kfunigraz.ac.at,
last changed: November 19, 2001   Special routines for wreath products