PermChars( tbl )
PermChars( tbl, degree )
PermChars( tbl, arec )
GAP provides several algorithms to determine permutation character candidates from a given character table. The algorithm is selected from the choice of the record fields of the optional argument record arec. The user is encouraged to try different approaches especially if one choice fails to come to an end.
Regardless of the algorithm used in a special case, PermChars
returns a
list of all permutation character candidates with the properties given
in arec. There is no guarantee that a character of this list is in
fact a permutation character. But an empty list always means there is no
permutation character with these properties (e.g. of a certain degree).
In the first form PermChars( tbl )
returns the list of all
permutation characters of the group with character table tbl. This list
might be rather long for big groups, and it might take much time. The
algorithm depends on a preprocessing step, where the inequalities arising
from the condition pi(g) leq 0 are transformed into a system of
inequalities that guides the search (see Inequalities).
gap> m11:= CharTable("M11");; gap> PermChars(m11);; # will return the list of 39 permutation # character candidates of $M11$.
There are two different search strategies for this algorithm. One simply
constructs all characters with nonnegative values and then tests for each
such character whether its degree is a divisor of the order of the group.
This is the default. The other strategy uses the inequalities to predict
if it is possible to find a character of a certain degree in the
currently searched part of the search tree. To choose this strategy set
the field mode
of arec to "preview"
and the field degree
to the
degree (or a list of degrees which might be all divisors of the order of
the group) you want to look for. The record field ineq
can take the
inequalities from Inequalities
if they are needed more than once.
In the second form PermChars( tbl, degree )
returns the list of all
permutation characters of degree degree. For that purpose a
preprocessing step is performed where essentially the rationalized
character table is inverted in order to determine boundary points for the
simplex in which the permutation character candidates of a given degree
must lie (see PermBounds). Note that inverting big integer matrices
needs a lot of time and space. So this preprocessing is restricted to
groups with less than 100 classes, say.
gap> PermChars(m11, 220); [ [ 220, 4, 4, 0, 0, 4, 0, 0, 0, 0 ], [ 220, 12, 4, 4, 0, 0, 0, 0, 0, 0 ], [ 220, 20, 4, 0, 0, 2, 0, 0, 0, 0 ] ]
In the third form PermChars( tbl, arec )
returns the list of all
permutation characters which have the properties given in the argument
record arec. If arec contains a degree in the record field degree
then PermChars
will behave exactly as in the second form.
gap> PermChars(m11, rec(degree:= 220)); [ [ 220, 4, 4, 0, 0, 4, 0, 0, 0, 0 ], [ 220, 12, 4, 4, 0, 0, 0, 0, 0, 0 ], [ 220, 20, 4, 0, 0, 2, 0, 0, 0, 0 ] ]
Alternatively arec may have the record fields chars
and torso
.
arec.chars
is a list of (in most cases all) rational irreducible
characters of tbl which might be constituents of the required
characters, and arec.torso
is a list that contains some known values
of the required characters at the right positions.
Note: At least the degree arec.torso[1]
must be an integer. If
arec.chars
does not contain all rational irreducible characters of
G, it may happen that any scalar product of pi with an omitted
character is negative; there should be nontrivial reasons for excluding a
character that is known to be not a constituent of pi.
gap> rat:= RationalizedMat(m11.irreducibles);; gap> PermChars(m11, rec(torso:= [220], chars:= rat)); [ [ 220, 4, 4, 0, 0, 4, 0, 0, 0, 0 ], [ 220, 20, 4, 0, 0, 2, 0, 0, 0, 0 ], [ 220, 12, 4, 4, 0, 0, 0, 0, 0, 0 ] ] gap> PermChars(m11, rec(torso:= [220,,,,,2], chars:= rat)); [ [ 220, 20, 4, 0, 0, 2, 0, 0, 0, 0 ] ]
GAP 3.4.4