First, we set
gap> InfoCharTable1 := Print;;
for printout of some internal results. We now define our group, which is isomorphic to {rm PSL}_4(3) (we use a permutation representation of {rm PSL}_4(3) instead of matrices since this will speed up the computations).
gap> g := PrimitiveGroup(40,5); PSL(4,3) gap> Size(g); 6065280 gap> d := DixonInit(g);; #I 29 classes gap> c := d.charTable;;
After the initialisation, one structure matrix is evaluated, yielding smaller spaces and several irreducible characters.
gap> DixonSplit(d); #I Matrix 2, Representative of Order 3, Centralizer: 5832 #I Dimensions: [ 1, 12, 2, 2, 4, 2, 1, 1, 1, 1, 1 ] #I Two-dim space split #I Two-dim space split #I Two-dim space split
In this case spaces of the listed dimensions are a result of the splitting process. The three two dimensional spaces are split successfully by combinatoric means.
We obtain several characters by tensor products and notify them to the program. The tensor products of the nonlinear characters are reduced with the irreducible characters. The result is split according to the spaces found, which yields characters of smaller norms, but no new irreducibles.
gap> asp:= AntiSymmetricParts( c, c.irreducibles, 2 );; gap> ro:= ReducedOrdinary( c, c.irreducibles, asp );; gap> Length( ro.irreducibles ); 3 gap> IncludeIrreducibles( d, ro.irreducibles ); gap> nlc:= Filtered( c.irreducibles, i -> i[1] > 1 );; gap> t:= Tensored( nlc, nlc );; gap> ro:= ReducedOrdinary( c, c.irreducibles, t );; ro.irreducibles; [ ] gap> List( ro.remainders, i -> ScalarProduct( c, i, i) ); [ 2, 2, 4, 4, 4, 4, 13, 13, 18, 18, 19, 21, 21, 36, 36, 29, 34, 34, 42, 34, 48, 54, 62, 68, 68, 78, 84, 84, 88, 90, 159, 169, 169, 172, 172, 266, 271, 271, 268, 274, 274, 280, 328, 373, 373, 456, 532, 576, 679, 683, 683, 754, 768, 768, 890, 912, 962, 1453, 1453, 1601, 1601, 1728, 1739, 1739, 1802, 2058, 2379, 2414, 2543, 2744, 2744, 2920, 3078, 3078, 4275, 4275, 4494, 4760, 5112, 5115, 5115, 5414, 6080, 6318, 7100, 7369, 7369, 7798, 8644, 10392, 12373, 12922, 14122, 14122, 18948, 21886, 24641, 24641, 25056, 38942, 44950, 78778 ] gap> t := SplitCharacters( d, ro.remainders );; gap> List( t, i -> ScalarProduct( c, i, i ) ); [ 2, 2, 4, 2, 2, 4, 4, 3, 6, 5, 5, 9, 9, 4, 12, 13, 18, 18, 18, 26, 32, 32, 16, 42, 36, 84, 84, 88, 90, 159, 169, 169, 172, 172, 266, 271, 271, 268, 274, 274, 280, 328, 373, 373, 456, 532, 576, 679, 683, 683, 754, 768, 768, 890, 912, 962, 1453, 1453, 1601, 1601, 1728, 1739, 1739, 1802, 2058, 2379, 2414, 2543, 2744, 2744, 2920, 3078, 3078, 4275, 4275, 4494, 4760, 5112, 5115, 5115, 5414, 6080, 6318, 7100, 7369, 7369, 7798, 8644, 10392, 12373, 12922, 14122, 14122, 18948, 21886, 24641, 24641, 25056, 38942, 44950, 78778 ]
Finally we calculate the characters induced from all cyclic subgroups and obtain the missing irreducibles by applying the LLL-algorithm to them.
gap> ic:= InducedCyclic( c, "all" );; gap> ro:= ReducedOrdinary( c, c.irreducibles, ic );; gap> Length( ro.irreducibles ); 0 gap> l:= LLL( c, ro.remainders );; gap> Length( l.irreducibles ); 13 gap> IncludeIrreducibles( d, l.irreducibles ); gap> Length( c.irreducibles ); 29 gap> Length( c.classes ); 29
As the last step, we return to our original group.
gap> g:= DixontinI( d ); #I Total:1 matrices, [ 2 ] PSL(4,3) gap> c:= g.charTable;; gap> List( c.irreducibles, i -> i[1] ); [ 1, 26, 26, 39, 52, 65, 65, 90, 234, 234, 260, 260, 260, 351, 390, 416, 416, 416, 416, 468, 585, 585, 640, 640, 640, 640, 729, 780, 1040 ] gap> Sum( last, i -> i^2 ); 6065280
GAP 3.4.4