# 48.12 CharTable

`CharTable( G )`
`CharTable( tblname )`
`CharTable( series, parameter1, parameter2 ... )`

`CharTable( G )`

returns the character table of the group G. If `G.name` is bound, the table is baptized the same. Otherwise it is given the identifier component `""` (empty string). This is necessary since every character table needs an identifier in GAP (see IsCharTable).

`CharTable` first computes the linear characters, using the commutator factor group. If irreducible characters are missing afterwards, they are computed using the algorithm of Dixon and Schneider (see~Dix67 and Sch90).

```    gap> M11 := Group((1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6));;
gap> M11.name := "M11";;
gap> PrintCharTable( CharTable( M11 ) );
rec( size := 7920, centralizers := [ 7920, 11, 11, 8, 48, 8, 8, 18,
5, 6 ], orders := [ 1, 11, 11, 4, 2, 8, 8, 3, 5, 6 ], classes :=
[ 1, 720, 720, 990, 165, 990, 990, 440, 1584, 1320 ], irreducibles :=
[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 10, -1, -1, 2, 2, 0, 0, 1, 0, -1 ],
[ 10, -1, -1, 0, -2, E(8)+E(8)^3, -E(8)-E(8)^3, 1, 0, 1 ],
[ 10, -1, -1, 0, -2, -E(8)-E(8)^3, E(8)+E(8)^3, 1, 0, 1 ],
[ 11, 0, 0, -1, 3, -1, -1, 2, 1, 0 ],
[ 16, E(11)^2+E(11)^6+E(11)^7+E(11)^8+E(11)^10,
E(11)+E(11)^3+E(11)^4+E(11)^5+E(11)^9, 0, 0, 0, 0, -2, 1, 0 ],
[ 16, E(11)+E(11)^3+E(11)^4+E(11)^5+E(11)^9,
E(11)^2+E(11)^6+E(11)^7+E(11)^8+E(11)^10, 0, 0, 0, 0, -2, 1, 0 ]
, [ 44, 0, 0, 0, 4, 0, 0, -1, -1, 1 ],
[ 45, 1, 1, 1, -3, -1, -1, 0, 0, 0 ],
[ 55, 0, 0, -1, -1, 1, 1, 1, 0, -1 ]
], operations := CharTableOps, identifier := "M11", order :=
7920, name := "M11", powermap :=
[ , [ 1, 3, 2, 5, 1, 4, 4, 8, 9, 8 ], [ 1, 2, 3, 4, 5, 6, 7, 1, 9, 5 ]
,, [ 1, 2, 3, 4, 5, 7, 6, 8, 1, 10 ],,
[ 1, 3, 2, 4, 5, 7, 6, 8, 9, 10 ],,,,
[ 1, 1, 1, 4, 5, 6, 7, 8, 9, 10 ] ], galomorphisms := Group(
( 6, 7),
( 2, 3) ), text := "origin: Dixon's Algorithm", group := M11 )```

The columns of the table will be sorted in the same order, as the classes of the group, thus allowing a bijection between group and table. If the conjugacy classes are bound in `G.conjugacyClasses` the order is not changed. Otherwise the routine itself computes the classes. One can sort them in the canonical way, using `SortClassesCharTable` (see SortClassesCharTable). If an entry `G.charTable` exists the routine uses information contained in this table. This also provides a facility for entering known characters, but then the user assumes responsibility for the correctness of the characters (There is little use in providing the trivial character to the routine).

Note: The algorithm binds the record component `galomorphisms` of the character table. This is a permutation group generated by the Galois-morphisms only. If there is no `automorphisms` component in the table then this group is used by routines like `SubgroupFusion`.

The computation of character tables needs to identify the classes of group elements very often, so it can be helpful to store a class list of all group elements. Since this is obviously limited by the group size, it is controlled by the global variable `LARGEGROUPORDER`, which is set by standard to 10000. If the group is smaller, the class map is stored. Otherwise each occuring element is identified individually.

Limitations: At the moment there is a limitation to the group size given by the following condition: the routine computes in a prime field of size p. p is a prime number, such that the exponent of the group divides (p-1) and such that 2 sqrt{|G|} < p. At the moment, GAP provides only prime fields up to size 65535.

The routine also sets up a component `G.dixon`. Using this component, routines that identify classes, for example `FusionConjugacyClasses`, will work much faster. When interrupting the algorithm, however, a neccessary cleanup has not taken place. Thus you should call ```Unbind( G.dixon )``` to avoid possible further confusion. This is also a good idea because `G.dixon` may become very large. When the computation by `CharTable` is complete, this record is shrunk to an acceptable size, something that could not be done when interrupting.

`CharTable( tblname )`

If the only parameter is a string tblname and this is an admissible name of a library table, `CharTable` returns this library table, otherwise `false`. A call of `CharTable` may cause to read some library files and to construct the table from the data in the files, see chapter Character Table Libraries for the details.

Admissible names for the ordinary character table tbl of the group grp are

item the ATLAS name if tbl is an ATLAS table (see ATLAS Tables), e.g., `M22` for the table of the Mathieu group M_{22}, `L2(13)` for L_2(13) and `12_1.U4(3).2_1` for 12_1.U_4(3).2_1, item the names that were admissible for tables of grp in CAS if the CAS table library contained a table of grp, e.g., `sl42` for the table of the alternating group A_8 (but note that the table may be different from that in CAS, see CAS Tables) and item some ``relative'' names:

For grp the n--th maximal subgroup (in decreasing group order) of a sporadic simple group with admissible name name, nameMn is admissible for tbl, e.g., `J3M2` for the second maximal subgroup of the Janko group J_3 which has the name `J3`.

For grp a nontrivial Sylow normalizer of a sporadic simple group with admissible name name, where nontrivial means that the group is not contained in p:(p-1), nameNp is an admissible name of tbl, e.g., J4N11 for the Sylow 11 normalizer of the Janko group J_4.

In a few cases, the table of the Sylow p subgroup of grp is accessible by nameSylp where name is an admissible name of the table of grp, e.g., `A11Syl2` for the Sylow 2 subgroup of the alternating group A_{11}.

In a few cases, the table of an element centralizer of grp is accessible by nameCcl where name is an admissible name of the table of grp, e.g., `M11C2` for an involution centralizer in the Mathieu group M_{11}.

Admissible names for a Brauer table tbl (modulo the prime p) are all names `namemodp` where name is admissible for the corresponding ordinary table, e.g., `M12mod11` for the 11 modular table of M_{12}, and `L2(25).2_1mod3` for the 3 modular table of L_2(25).2_1. Brauer tables in the library can be got also from the underlying ordinary table using the `mod` operator, as in the following example.

```    gap> CharTable( "A5" ) mod 2;
CharTable( "A5mod2" ) ```

Generic tables are accessible only by the name given by their `identifier` component (see below).

Case is not significant for table names, e.g., `suzm3` and `SuzM3` are both admissible names for the third maximal subgroup of the sporadic Suzuki group.

The admissible names reflect the structure of the libraries, see Organization of the Table Libraries.

```    gap> CharTable( "A5.2" );;  # returns the character table of the
# symmetric group on five letters
# (in \ATLAS\ format)
gap> CharTable( "Symmetric" );;  # returns the generic table of the
# symmetric group
gap> CharTable( "J5" );
#E CharTableLibrary: no library table with name 'J5'
false```

If `CharTable` is called with more than one parameter, the first must be a string specifying a series of groups which is implemented via a generic character table (see chapter Generic Character Tables), e.g. `"Symmetric"` for the symmetric groups; the following parameters specialise the required member of the series:

```    gap> CharTable( "Symmetric", 5 );; # the table of the symmetric
# group \$S_5\$ (got by specializing
# the generic table)```

These are the valid calls of `CharTable` with parameter series:

` ``CharTable( "Alternating", n )`:

returns the table of the alternating group on n letters,

` ``CharTable( "Cyclic", n )`:

returns the table of the cyclic group of order n,

` ``CharTable( "Dihedral", 2n )`:

returns the table of the dihedral group of order 2n,

` ``CharTable( "GL", 2, q )`:

returns the table of the general linear group mbox{rm GL}(2,q) for a prime power q,

` ``CharTable( "GU", 3, q )`:

returns the table of the general unitary group mbox{rm GU}(3,q) for a prime power q,

` ``CharTable( "P:Q", [ p, q ] )`:

returns the table of the extension of the cyclic group of prime order p by a cyclic group of order q where q divides p-1,

` ``CharTable( "PSL", 2, q )`:

returns the table of the projective special linear group mbox{rm PSL}(2,q) for a prime power q,

` ``CharTable( "SL", 2, q )`:

returns the table of the special linear group mbox{rm SL}(2,q) for a prime power q,

` ``CharTable( "SU", 3, q )`:

returns the table of the special unitary group mbox{rm SU}(3,q) for a prime power q,

` ``CharTable( "Quaternionic", 4n )`:

returns the table of the quaternionic (dicyclic) group of order 4n,

` ``CharTable( "Suzuki", q )`:

returns the table of the Suzuki group Sz(q) = ^2B_2(q) for q an odd power of 2,

` ``CharTable( "Symmetric", n )`:

returns the table of the symmetric group on n letters.

` ``CharTable( "WeylB", n )`:

returns the table of the Weyl group of type B_n.

` ``CharTable( "WeylD", n )`:

returns the table of the Weyl group of type D_n.

GAP 3.4.4
April 1997