67.2 Creating Character Tables

There are in general five different ways to get a character table in GAP. You can

1.
compute the table from a group,
2.
read a file that contains the table data,
3.
construct the table using generic formulae,
4.
derive it from known character tables, or
5.
combine partial information about conjugacy classes, power maps of the group in question, and about (character tables of) some subgroups and supergroups.

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
    February 2000