There are in general five different ways to get a character table in GAP. You can
In 1., the computation of the irreducible characters is the hardest part; the different algorithms available for this are described in Computing the Irreducible Characters of a Group. Possibility 2. is used for the character tables in the GAP table library, see Chapter The Character Table Library. Generic character tables --as addressed by 3.-- are described in Generic Character Tables. Several occurrencies of 4. are described in Constructing Character Tables from Others. The last of the above possibilities @is currently not supported and will be described in a chapter of its own when it becomes available@.
The operation CharacterTable (see CharacterTable) can be used for the
cases 1.--3.
CharacterTable( G ) O
CharacterTable( G, p ) O
CharacterTable( ordtbl, p ) O
CharacterTable( name[, param] ) O
Called with a group G, CharacterTable calls the attribute
OrdinaryCharacterTable (see OrdinaryCharacterTable).
Called with first argument a group G or an ordinary character table
ordtbl, and second argument a prime p, CharacterTable calls
the operation BrauerTable (see BrauerTable).
Called with a string name and perhaps optional parameters param,
CharacterTable delegates to CharacterTableFromLibrary
(see CharacterTableFromLibrary for an overview of admissible strings
name).
Probably the most interesting information about the character table is
its list of irreducibles, which can be accessed as the value of the
attribute Irr (see Irr).
If the argument of CharacterTable is a string name then the
irreducibles are just read from the library file,
therefore the returned table stores them already.
However, if CharacterTable is called with a group G or with an
ordinary character table ordtbl, the irreducible characters are not
computed by CharacterTable.
They are only computed when the Irr value is accessed for the first
time, for example when Display is called for the table
(see Printing Character Tables).
This means for example that CharacterTable returns its result very
quickly, and the first call of Display for this table may take some
time because the irreducible characters must be computed at that time
before they can be displayed together with other information stored on
the character table.
The value of the filter HasIrr indicates whether the irreducible
characters have been computed already.
The reason why CharacterTable does not compute the irreducible
characters is that there are situations where one only needs the
``table head'', that is, the information about class lengths, power maps
etc., but not the irreducibles.
For example, if one wants to inspect permutation characters of a group
then all one has to do is to induce the trivial characters of subgroups
one is interested in; for that, only class lengths and the class fusion
are needed.
Or if one wants to compute the Molien series (see MolienSeries) for a
given complex matrix group, the irreducible characters of this group are
in general of no interest.
For details about different algorithms to compute the irreducible characters, see Computing the Irreducible Characters of a Group.
If the group G is given as an argument, CharacterTable accesses the
conjugacy classes of G and therefore causes that these classes are
computed if they were not yet stored
(see The Interface between Character Tables and Groups).
BrauerTable( ordtbl, p ) O
BrauerTable( G, p ) O
BrauerTableOp( ordtbl, p ) O
ComputedBrauerTables( ordtbl ) AM
Called with an ordinary character table ordtbl or a group G,
BrauerTable returns its p-modular character table
if GAP can compute this table, and fail otherwise.
The p-modular table can be computed for p-solvable groups
(using the Fong-Swan Theorem) and in the case that ordtbl is a table
from the GAP character table library for which also the p-modular
table is contained in the table library.
The default method for a group and a prime delegates to BrauerTable for
the ordinary character table of this group.
The default method for ordtbl uses the attribute
ComputedBrauerTables for storing the computed Brauer table
at position p, and calls the operation BrauerTableOp for
computing values that are not yet known.
So if one wants to install a new method for computing Brauer tables
then it is sufficient to install it for BrauerTableOp.
The \mod operator for a character table and a prime
(see Operators for Character Tables) delegates to
BrauerTable.
gap> g:= SymmetricGroup( 4 ); Sym( [ 1 .. 4 ] ) gap> tbl:= CharacterTable( g );; HasIrr( tbl ); false gap> tblmod2:= CharacterTable( tbl, 2 ); BrauerTable( Sym( [ 1 .. 4 ] ), 2 ) gap> tblmod2 = CharacterTable( tbl, 2 ); true gap> tblmod2 = BrauerTable( tbl, 2 ); true gap> tblmod2 = BrauerTable( g, 2 ); true gap> CharacterTable( "A5" ); CharacterTable( "A5" ) gap> CharacterTable( "Symmetric", 4 ); CharacterTable( "Sym(4)" ) gap> ComputedBrauerTables( tbl ); [ , BrauerTable( Sym( [ 1 .. 4 ] ), 2 ) ]
SupportedCharacterTableInfo V
SupportedCharacterTableInfo is a list that contains at position 3i-2
an attribute getter function, at position 3i-1 the name of this
attribute, and at position 3i a list containing one or two of the
strings "class", "character",
depending on whether the attribute value relies on the ordering of
classes or characters.
This allows one to set exactly the components with these names in the
record that is later converted to the new table,
in order to use the values as attribute values.
So the record components that shall not be regarded as attribute values
can be ignored.
Also other attributes of the old table are ignored.
SupportedCharacterTableInfo is used when (ordinary or Brauer) character
table objects are created from records, using ConvertToCharacterTable
(see ConvertToCharacterTable).
New attributes and properties can be notified to
SupportedCharacterTableInfo by creating them with
DeclareAttributeSuppCT and DeclarePropertySuppCT instead of
DeclareAttribute and DeclareProperty.
ConvertToCharacterTable( record ) F
ConvertToCharacterTableNC( record ) F
Let record be a record.
ConvertToCharacterTable converts record into a component object
(see Component Objects in ``Programming in GAP'')
representing a character table.
The values of those components of record whose names occur in
SupportedCharacterTableInfo (see SupportedCharacterTableInfo)
correspond to attribute values of the returned character table.
All other components of the record simply become components of the
character table object.
If inconsistencies in record are detected, fail is returned.
record must have the component UnderlyingCharacteristic bound
(see UnderlyingCharacteristic),
since this decides about whether the returned character table lies in
IsOrdinaryTable or in IsBrauerTable
(see IsOrdinaryTable, IsBrauerTable).
ConvertToCharacterTableNC does the same except that all checks of
record are omitted.
An example of a conversion from a record to a character table object can be found in Section PrintCharacterTable.
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual