PowermapsAllowedBySymmetrisations( tbl,
subchars, chars, pow,
prime,
parameters )
returns a list of (possibly parametrized, see More about Maps and Parametrized Maps)
maps map which are contained in the parametrized map pow
and which have the property that for all chi in the
list chars of characters of the character table tbl,
the symmetrizations [ chi^p- = MinusCharacter(
chi, map, prime )
] (see MinusCharacter) have nonnegative integral scalar products with all
characters in the list subchars.
parameters must be a record with fields
maxlen:
an integer that controls the position where branches
take place
contained:
a function, usually ContainedCharacters or
ContainedPossibleCharacters; for a symmetrization minus, it
returns the list contained( tbl, subchars, minus
)
minamb, maxamb:
two arbitrary objects; contained
is called only for symmetrizations minus with [ minamb <
Indeterminateness( minus ) < maxamb ]
quick:
a boolean; if it is true, the scalar products of
uniquely determined symmetrizations are not checked.
pow will be improved, i.e. is changed by the algorithm.
If there is no character left which allows an immediate improvement but there
are characters in chars with indeterminateness of the
symmetrizations bigger than parameters.minamb, a
branch is necessary. Two kinds of branches may occur: If parameters.contained(
tbl, subchars, minus ) has length at
most parameters.maxlen, the union of maps allowed by
the characters in minus is computed; otherwise a suitable class
c is taken which is significant for some character, and the
union of all admissible maps with image x on c is
computed, where x runs over pow[c].
# see example in "ConsiderKernels"
gap> t := CharTable( "U4(3).4" );;
gap> PowermapsAllowedBySymmetrisations(t,t.irreducibles,t.irreducibles,
> pow, 2, rec( maxlen:=10, contained:=ContainedPossibleCharacters,
> minamb:= 2, maxamb:= "infinity", quick:= false ) );
[ [ 1, 1, 3, 4, 5, 2, 2, 8, 3, 4, 11, 12, 6, 14, 9, 1, 1, 2, 2, 3, 4,
5, 6, 8, 9, 9, 10, 11, 12, 16, 16, 16, 16, 17, 17, 18, 18, 18,
18, 20, 20, 20, 20, 22, 22, 24, 24, 25, 26, 28, 28, 29, 29 ] ]
gap> t.powermap[2] = last[1];
true