For GAP, a character table is any record that has the components
centralizers
and identifier
(see IsCharTable).
There are three different but very similar types of character tables in GAP, namely ordinary tables, Brauer tables and generic tables. Generic tables are described in Chapter Generic Character Tables. Brauer tables are defined and stored relative to ordinary tables, so they will be described in Brauer Table Records, and we start with ordinary tables.
You may store arbitrary information on an ordinary character table, but these are the only fields used by GAP functions:
centralizers
:
identifier
:
order
:centralizers[1]
classes
:
orders
:
powermap
:
fusions
:name
(the identifier
component of the destination table) and map
(a list of
More about Maps and Parametrized Maps));
if there are different fusions with same destination table,
the field specification
is used to distinguish them;
optional fields are type
(a string that is "normal"
for normal subgroup fusions and "factor"
for factor
fusions) and text
(a string with information about the
fusion)
fusionsource
:
irreducibles
:
irredinfo
:irreducibles
,
usual entries are indicator
, pblock
and charparam
Generic Character Tables); if the field irreducibles
is sorted using
SortCharactersCharTable, the irredinfo
field is
sorted, too. So any information about irreducibles
should be stored here.
projectives
:name
(of the table of a
covering group) and chars
(a list of --in general not
all-- faithful irreducibles of the covering group)
permutation
:
classparam
:
classtext
:
text
:1.o.r.
for the test of
orthogonality, pow[p]
for the construction of the p-th
powermap, DEC
for the decomposition of ordinary characters in
Brauer characters),
and choices made without loss of generality where possible
automorphisms
:irreducibles
(see MatAutomorphisms, TableAutomorphisms)
classnames
:
classnames
, a field
tbl.clname that has the position of clname in
classnames
as value (see ClassNamesCharTable)
operations
:Print
(see DisplayCharTable) and
ScalarProduct
(see ScalarProduct); the default value
of the operations
field is CharTableOps
(see Operations Records for Character Tables)
CAS
:permchars
, permclasses
(both permutations), name
and eventually text
and
classtext
; application of the two permutations to
irreducibles
and classes yields the original CAS library
table with name name
and text text
(see CAS Tables)
libinfo
:othernames
and perhaps CASnames
which are all admissible names of the table (see
CharTable);
using these records, the list LIBLIST.ORDINARY
can be
constructed from the library using MakeLIBLIST
(see Organization of the Table Libraries)
group
:CharTable
(see CharTable) then this component holds
the group, with conjugacy classes sorted compatible with the
columns of the table
Note that tables in library files may have different format (see chapter Character Table Libraries).
This is a typical example of a character table, first the ``naked'' record, then the displayed version:
gap> t:= CharTable( "2.A5" );; PrintCharTable( t ); rec( text := "origin: ATLAS of finite groups, tests: 1.o.r., pow[2,3,5\ ]", centralizers := [ 120, 120, 4, 6, 6, 10, 10, 10, 10 ], powermap := [ , [ 1, 1, 2, 4, 4, 8, 8, 6, 6 ], [ 1, 2, 3, 1, 2, 8, 9, 6, 7 ],, [ 1, 2, 3, 4, 5, 1, 2, 1, 2 ] ], fusions := [ rec( name := "A5", map := [ 1, 1, 2, 3, 3, 4, 4, 5, 5 ] ), rec( name := "2.A5.2", map := [ 1, 2, 3, 4, 5, 6, 7, 6, 7 ] ), rec( name := "2.J2", map := [ 1, 2, 5, 8, 9, 16, 17, 18, 19 ], text := [ 'f', 'u', 's', 'i', 'o', 'n', ' ', 'o', 'f', ' ', 'm', 'a', 'x', 'i', 'm', 'a', 'l', ' ', '2', '.', 'A', '5', ' ', 'd', 'e', 't', 'e', 'r', 'm', 'i', 'n', 'e', 'd', ' ', 'b', 'y', ' ', 't', 'h', 'e', ' ', '3', 'B', ' ', 'e', 'l', 'e', 'm', 'e', 'n', 't', 's' ] ) ], irreducibles := [ [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 3, 3, -1, 0, 0, -E(5)-E(5)^4, -E(5)-E(5)^4, -E(5)^2-E(5)^3, -E(5)^2-E(5)^3 ], [ 3, 3, -1, 0, 0, -E(5)^2-E(5)^3, -E(5)^2-E(5)^3, -E(5)-E(5)^4, -E(5)-E(5)^4 ], [ 4, 4, 0, 1, 1, -1, -1, -1, -1 ], [ 5, 5, 1, -1, -1, 0, 0, 0, 0 ], [ 2, -2, 0, -1, 1, E(5)+E(5)^4, -E(5)-E(5)^4, E(5)^2+E(5)^3, -E(5)^2-E(5)^3 ], [ 2, -2, 0, -1, 1, E(5)^2+E(5)^3, -E(5)^2-E(5)^3, E(5)+E(5)^4, -E(5)-E(5)^4 ], [ 4, -4, 0, 1, -1, -1, 1, -1, 1 ], [ 6, -6, 0, 0, 0, 1, -1, 1, -1 ] ], automorphisms := Group( (6,8) (7,9) ), construction := function ( tbl ) ConstructProj( tbl ); end, irredinfo := [ rec( pblock := [ , 1, 1,, 1 ] ), rec( pblock := [ , 1, 2,, 1 ] ), rec( pblock := [ , 1, 3,, 1 ] ), rec( pblock := [ , 2, 1,, 1 ] ), rec( pblock := [ , 1, 1,, 2 ] ), rec( pblock := [ , 1, 4,, 3 ] ), rec( pblock := [ , 1, 4,, 3 ] ), rec( pblock := [ , 2, 4,, 3 ] ), rec( pblock := [ , 1, 5,, 3 ] ) ], identifier := "2.A5", operations := CharTableOps, fusionsource := [ "P2/G1/L1/V1/ext2", "P2/G1/L1/V1/ext3", "P2/G2/L1/V1/ext2", "P2/G2/L1/V1/ext3", "P2/G2/L1/V2/ext2" ], name := "2.A5", size := 120, order := 120, classes := [ 1, 1, 30, 20, 20, 12, 12, 12, 12 ], orders := [ 1, 2, 4, 3, 6, 5, 10, 5, 10 ] )
bigskip
gap> DisplayCharTable( t ); 2.A52 3 3 2 1 1 1 1 1 1 3 1 1 . 1 1 . . . . 5 1 1 . . . 1 1 1 1
1a 2a 4a 3a 6a 5a 10a 5b 10b 2P 1a 1a 2a 3a 3a 5b 5b 5a 5a 3P 1a 2a 4a 1a 2a 5b 10b 5a 10a 5P 1a 2a 4a 3a 6a 1a 2a 1a 2a
X.1 1 1 1 1 1 1 1 1 1 X.2 3 3 -1 . . A A *A *A X.3 3 3 -1 . . *A *A A A X.4 4 4 . 1 1 -1 -1 -1 -1 X.5 5 5 1 -1 -1 . . . . X.6 2 -2 . -1 1 -A A -*A *A X.7 2 -2 . -1 1 -*A *A -A A X.8 4 -4 . 1 -1 -1 1 -1 1 X.9 6 -6 . . . 1 -1 1 -1
A = -E(5)-E(5)^4 = (1-ER(5))/2 = -b5
bigskip
GAP 3.4.4