LoadPackage( "ctbllib" ); ct := CharacterTable( "Fi23" );; permchar := Sum( Irr( ct ){[1,2,6]} );; permchar[1]; nccl := NrConjugacyClasses( ct );; ord3 := Filtered( [ 1 .. nccl ], i -> OrdersClassRepresentatives( ct )[i] = 3 ); permchar{ ord3 }; roots := [ 6 ];; for i in [ 1 .. nccl ] do if ForAny( Set( Factors( Size( ct ) ) ), p -> PowerMap( ct, p )[i] in roots ) then AddSet( roots, i ); fi; od; roots; prop := Sum( roots, i -> 1 / SizesCentralizers( ct )[i] ); Int( 100 * prop ); LoadPackage( "atlasrep" ); gens := OneAtlasGeneratingSet( "Fi23", NrMovedPoints, 31671 );; Fi23 := Group( gens.generators );; SetSize( Fi23, Size( ct ) ); opdom := MovedPoints( Fi23 );; found := false;; repeat g := Random( Fi23 ); ord := Order( g ); if ord mod 3 = 0 then h := g^( ord / 3 ); if Number( opdom, i -> i^h = i ) = 324 then found := true; fi; fi; until found; N := Normalizer( Fi23, SubgroupNC( Fi23, [ h ] ) );; Size( N ); orb := Orbits( N, opdom );; List( orb, Length ); P := Action( N, orb[2] );; Size( P ) = Size( N ); A := Image( IsomorphismPcGroup( P ) );; Size( A ) = Size( N ); ds := DerivedSeries( A );; Length( ds ); List( ds, i -> Collected( Factors( Size( i ) ) ) ); compcl := List( [1..8], i-> Complementclasses( ds[i], ds[9] ) );; List( compcl, Length ); conjcl := ConjugacyClasses( A );; Length( conjcl ); sct := CharacterTable( A );; # To complete the next command you need to start GAP with at least -o 400M option # During the computation of Irr(sct) you will get two info messages about # computing class matrix for class of size >10^6 Irr( sct );; Maximum( List( Irr( sct ), i -> i[1] ) ); irrat := Filtered( Union( Irr( sct ) ), i -> not IsRat( i) ); alpha := irrat[4]; MinimalPolynomial( Rationals, alpha ); MinimalPolynomial( Rationals, E( 8 ) ); char144 := First( Irr( sct ), i -> i[1] = 144 );; ker := KernelOfCharacter( char144 ); Size( ker ); ker = ds[8]; fus := PossibleClassFusions( sct, ct );; Length( fus ); Length( RepresentativesFusions( AutomorphismsOfTable( sct ), fus, AutomorphismsOfTable( ct ) ) ); ind := Set( List( fus, map -> Induced( sct, ct, [ TrivialCharacter( sct ) ], map )[1] ) ); MatScalarProducts( ct, Irr( ct ), ind ); PermCharInfo( ct, ind ).ATLAS; quit;