[GAP Forum] character tables ordering

Frank Lübeck frank.luebeck at math.rwth-aachen.de
Thu Feb 2 12:18:12 GMT 2017


Dear Bill, dear Forum,

I don't see how one could define some "standard" or "canonical" ordering
on conjugacy classes or irreducible characters of any finite group.


On Thu, Feb 02, 2017 at 11:35:47AM +0100, Bill Allombert wrote:
> Dear GAP Forum,
> 
> If I do:
> gap> S4:=SymmetricGroup(4);
> Sym( [ 1 .. 4 ] )
> gap> Display(CharacterTable(S4));
> CT1
> 
>      2  3  2  3  .  2
>      3  1  .  .  1  .
> 
>        1a 2a 2b 3a 4a
>     2P 1a 1a 1a 3a 2b
>     3P 1a 2a 2b 1a 4a
> 
> X.1     1 -1  1  1 -1
> X.2     3 -1 -1  .  1
> X.3     2  .  2 -1  .
> X.4     3  1 -1  . -1
> X.5     1  1  1  1  1

In this case GAP "knows" that S4 is a symmetric group on 4 letters and
returns the library table for this group. It contains the standard
labelling of classes and characters by partitions of 4:

t1 := CharacterTable(S4);
ClassParameters(t1);
CharacterParameters(t1);
InfoText(t1);

The ordering for rows and colums is that of Partitions(4).

> but if I do:
> gap> IdGroup(S4);
> [ 24, 12 ]
> gap> G:=SmallGroup(24,12);
> <pc group of size 24 with 4 generators>
> gap> Display(CharacterTable(G));
> CT2
> 
>      2  3  2  .  3  2
>      3  1  .  1  .  .
> 
>        1a 2a 3a 2b 4a
>     2P 1a 1a 3a 1a 2b
>     3P 1a 2a 1a 2b 4a
> 
> X.1     1  1  1  1  1
> X.2     1 -1  1  1 -1
> X.3     2  . -1  2  .
> X.4     3 -1  . -1  1
> X.5     3  1  . -1 -1
> 
> so I get two different ordering for the row and columns of the table,
> which is not entirely surprising since different algorithms are used
> here.

If GAP does not know about an appropriate library table and computes the
table with some (here Dixon's) algorithm then the tables can even be different 
on different occasions. Also the labelling of conjugacy classes may be different.

t2 := CharacterTable(G);
InfoText(t2);

> My question is whether there are some standard order for printing
> character table. This would be useful for interoperability between
> software (or two version of the same software) by using a common
> numbering for characters which could avoid mistakes.

To check if two tables are the same modulo permutation of rows and columns
you can use 

TransformingPermutationsCharacterTables(t1,t2);

For the display of character tables you can use some optional hints
collected in a record, see

?Reference: Display (for a character table)
?Browse: Browse (for character tables)

For example, to display characters with respect to '<' of rows:

ord := [1..Length(Irr(t1))];;
SortParallel(ShallowCopy(Irr(t1)),ord);
Display(t1, rec(chars := ord));
Browse(t1, rec(chars := ord));

With best regards,
   Frank
-- 
///  Dr. Frank Lübeck, Lehrstuhl D für Mathematik, Pontdriesch 14/16,
\\\                    52062 Aachen, Germany
///  E-mail: Frank.Luebeck at Math.RWTH-Aachen.De
\\\  WWW:    http://www.math.rwth-aachen.de/~Frank.Luebeck/



More information about the Forum mailing list