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 )
:
CharTable( "Cyclic", n )
:
CharTable( "Dihedral", 2n )
:
CharTable( "GL", 2, q )
:
CharTable( "GU", 3, q )
:
CharTable( "P:Q", [ p, q ] )
:
CharTable( "PSL", 2, q )
:
CharTable( "SL", 2, q )
:
CharTable( "SU", 3, q )
:
CharTable( "Quaternionic", 4n )
:
CharTable( "Suzuki", q )
:
CharTable( "Symmetric", n )
:
CharTable( "WeylB", n )
:
CharTable( "WeylD", n )
:GAP 3.4.4