Evaluation of characters

Evaluation of characters

The evaluation of the complete character table of the symmetric group with prescribed degree is done by
• NAME: chartafel
• SYNOPSIS: INT chartafel(OP degree, res)
• DESCRIPTION: you enter the degree of the symmetric group, as INTEGERobject and the result is a MATRIXobject: the charactertable of the symmetric group of the given degree.
• ERROR: degree and res must be different
• RETURN: OK if no error occured.
A single character value is calculated by
• NAME: charvalue
• SYNOPSIS: INT charvalue(OP irred, class, res, table)
• DESCRIPTION: you enter a PARTITIONobject part, labelling the irreducible character, then you either enter a PARTITIONobject class, labelling the class, or you enter a PERMUTATIONobject in order to label this class. The result will be the value of that character on that class or permutation. Note that the fourth parameter table may be NULL, in which case the value is computed recursively, or it is taken from a precalculated charactertable (the fourth parameter table).
• BUG: it would be nice to be able to enter also a skewpartition as the label of the character, but this is not yet implemented.
The class multiplication coefficients can be obtained as follows:
• NAME: c_ijk_sn
• SYNOPSIS:
INT c_ijk_sn(OP i,j,k,res)
• DESCRIPTION: computes the coefficients of the class multiplication in the groupalgebra of the Sn. It uses the method described in Curtis/Reiner: Methods of representation theory I, p. 216.
Example:
```...
scan(PARTITION,a); println(a);
scan(PARTITION,b); println(b);
scan(PARTITION,c);  println(c);
c_ijk_sn(a,b,c,g); println(g);
...
```
The charactertable of the wreath product Sb wr Sa can be obtained by the following routine:
• NAME: kranztafel
• SYNOPSIS: INT kranztafel(OP a,b,res,co,cl)
• DESCRIPTION: you enter the INTEGERobjects, say a and b, and res becomes a MATRIXobject, the charactertable of S_b wr S_a, co becomes a VECTORobject of classorders and cl becomes a VECTORobject of the classlabels.
Example:
```...
scan(INTEGER,a); scan(INTEGER,b);
kranztafel(a,b,c,d,e);
println(c); println(d); println(e);
...
```
Here is the routine for the central characters:
• NAME: m_part_centralsc
• SYNOPSIS: INT m_part_centralsc(OP part,res)
• DESCRIPTION: computes the central character, the SYMCHARobject res, of the PARTITIONobject part.
A particular irreducible character is evaluated by
• NAME: m_part_sc
• SYNOPSIS: INT m_part_sc(OP part,res)
• DESCRIPTION: computes the irreducible character, the SYMCHARobject res of the given partition the PARTITIONobject of which is part.
There is a helpful coroutine which does the same but uses the character table which must have been computed before:
• NAME: m_part_sc_tafel
• SYNOPSIS: INT m_part_sc_tafel(OP part,res,table)
• DESCRIPTION: computes the irreducible character, the SYMCHARobject res of the given partition the PARTITIONobject of which is part. The MATRIXobject table is the charactertable for the symmetric group with degree = weight of part. You must specify table = NULL if the table is not known.
Here is a routine that evaluates the character of Sn choose 2 induced by a given character of Sn via the natural embedding of Sn into the symmetric group Sn choose 2 on the set of pairs:
• NAME: ntopaar_symchar
• SYNOPSIS: INT ntopaar_symchar(OP a,b)
• DESCRIPTION: a is SYMCHARobject, a character of Sn, b becomes the induced character of Sn choose 2.
For the decomposition of ordinary characters of symmetric groups into irreducible ones you can use
• NAME: reduce_symchar
• SYNOPSIS: INT reduce_symchar(OP sym, erg)
• DESCRIPTION: you enter a SYMCHARobject sym and in erg you get the decomposition into irreducible characters, this is a SCHURobject. If erg is not an empty object it is freed first.
• BUGS: sym and erg must be different.
Example: The following program asks first for the degree of the symmetric group, then for the maximal and the minimal value of the character values of the symmetric group character. These values are initialised with random value inside the given limits. The class function is decomposed into irreducible characters.
```...
{
OP a,b,c,d,e;
INT i;
anfang();
a=callocobject(); b=callocobject();
c=callocobject(); d=callocobject(); e=callocobject();
printeingabe("degree of S_n"); scan(INTEGER,a);
printeingabe("min value of character"); scan(INTEGER,c);
printeingabe("max value of character"); scan(INTEGER,d);
m_d_sc(a,b); println(b);
for (i=0L;i<S_SC_WLI(b);i++)
random_integer(S_SC_WI(b,i),c,d);
println(b); reduce_symchar(b,e); println(e);
freeall(a); freeall(b); freeall(c); freeall(d); freeall(e);
ende();
}
...
```
This example uses a special case of the following routine:
• NAME: reduce_symchar_tafel
• SYNOPSIS: INT reduce_symchar_tafel(OP sym, erg,ct)
• DESCRIPTION: you enter a SYMCHARobject sym and in erg you get the decomposition into irreducible characters, this is a SCHURobject. You can provide the charactertable in ct, or you specify ct==NULL.
For the scalar product of characters there is the following routine at hand:
• NAME: scalarproduct_symchar
• SYNOPSIS:
INT scalarproduct_symchar(OP char1, char2, res)
• DESCRIPTION: res becomes the scalarproduct of the two SYMCHARobjects char1 and char2. You should use the general routine scalarproduct instead of this special routine.
• RETURN: OK if no errors occured

harald.fripertinger@kfunigraz.ac.at,
last changed: November 19, 2001

 Evaluation of characters