## Characters

You have already seen that ordinary character values and character tables of
symmetric groups can be evaluated. But there is much more that can be done.
For example character tables of alternating groups can be evaluated using
*an_tafel().*

Moreover ordinary character tables of wreath products (*Kranzprodukte* in
German) of symmetric groups
are available, the method used is that of so-called characteristics and
the routine is
*kranztafel().*

**Example: **
Here is a program that evaluates the
character table of *S*_{b} wr S_{a}, by which we mean the wreath product of
order *a!*^{b}b! (the program can be found in the file *ex16.c*):
#include"def.h"
#include"macro.h"
main()
{
OP a,b,c,d,e;
anfang();
a= callocobject(); b= callocobject();
c = callocobject(); d=callocobject();
e=callocobject();
scan(INTEGER,a);
scan(INTEGER,b);
kranztafel(a,b,c,d,e);println(c);
println(d);println(e);
freeall(a);freeall(b);
freeall(c);freeall(d);
freeall(e);
ende();
}

Please note that *kranztafel()* has 5 parameters:
- The first two parameters
*a* and *b* are the degrees of symmetric
groups, and the wreath product the table of which is evaluated is
*S*_{b} wr S_{a},

of order *b!*^{a}·a!.
- The third parameter
*c* is the object containing the desired character
table.
- The fourth parameter
*d* is the vector of orders of conjugacy classes
of the wreath product.
- The fifth parameter
*e* is the VECTORobject containing the classlabels
(which are matrices, the number of columns of which is the degree *b* while
the number of rows is the number of conjugacy classes of *S*_{a}.)
Please note, that neither the first nor the last label corresponds to the
class of the identity element (see the example below)!

For example, if you enter in the above examples the degrees 2 and 3 for
*a* and *b,* respectively, then the output will look as follows:
[1:-1:1:1:-1:1:1:-1:1:]

[2:0:-1:4:0:0:-2:0:1:]

[1:1:1:1:1:1:1:1:1:]

[-1:1:-1:1:-1:1:1:-1:1:]

[0:0:0:4:-2:0:1:1:-2:]

[-2:0:1:4:0:0:-2:0:1:]

[0:0:0:2:0:-2:2:0:2:]

[0:0:0:4:2:0:1:-1:-2:]

[-1:-1:-1:1:1:1:1:1:1:]

[6,18,12,1,6,9,4,12,4]

[

[0:0:0:]

[0:0:1:]

,

[0:0:0:]

[0:1:0:]

,

[0:0:0:]

[1:0:0:]

,

[0:0:2:]

[0:0:0:]

,

[0:1:1:]

[0:0:0:]

,

[0:2:0:]

[0:0:0:]

,

[1:0:1:]

[0:0:0:]

,

[1:1:0:]

[0:0:0:]

,

[2:0:0:]

[0:0:0:]

]

This shows that in fact we have obtained the character table of
*S*_{3} wr S_{2}.

If you are interested in modular theory, you can evaluate decomposition
matrices and Brauer characters for symmetric groups, using example
*ex17.c,* which is based on the following lines:

scan(INTEGER,n);println(n);
scan(INTEGER,p);println(p);
decp_mat(n,p,b);println(b);
brauer_char(n,p,c);println(c);

The corresponding file is *mo.c*, and the interested user
should carefully note that this particular routine uses a data file
called *decommix.dat*

which saves all the decomposition and Brauer character tables that
were already calculated. Therefore, in order to do a fair play, you better
first remove this file *decommix.dat*, if it is already there, and then
you start your modular business from scratch using the above mentioned
program.

harald.fripertinger@kfunigraz.ac.at,

last changed: November 19, 2001