When working with a polycyclic group, one often needs to compute matrix operations of the group on a factor of the group. For this purpose there are the following functions.
VectorSpaceByPcgsOfElementaryAbelianGroup( mpcgs, fld ) F
returns the vector space over fld corresponding to the modulo pcgs mpcgs. Note that mpcgs has to define an elementary abelian p-group where p is the characteristic of fld.
LinearAction( gens, basisvectors, linear ) O
returns a list of matrices, one for each element of gens, which corresponds to the matrix action of the elements in gens on the basis basisvectors via linear.
LinearActionLayer( G, gens, pcgs ) F
returns a list of matrices, one for each element of gens, which corresponds to the matrix action of G on the vector space corresponding to the modulo pcgs pcgs.
In certain situations, for example within the computation of conjugacy classes of finite soluble groups as described in MeckyNeubueser89, affine actions of groups are required. For this purpose we introduce the following functions.
AffineAction( gens, basisvectors, linear, transl ) O
returns a list of matrices, one for each element of gens, which corresponds to the affine action of the elements in gens on the basis basisvectors via linear with translation transl.
AffineActionLayer( G, gens, pcgs, transl ) F
returns a list of matrices, one for each element of gens, which corresponds to the affine action of G on the vector space corresponding to the modulo pcgs pcgs with translation transl.
gap> G := SmallGroup( 96, 51 );
<pc group of size 96 with 6 generators>
gap> spec := SpecialPcgs( G );
[ f1, f2, f3, f4, f5, f6 ]
gap> LGWeights( spec );
[ [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 3 ], [ 1, 2, 2 ], [ 1, 2, 2 ],
[ 1, 3, 2 ] ]
gap> mpcgs := InducedPcgsByPcSequence( spec, spec{[4,5,6]} );
[ f4, f5, f6 ]
gap> npcgs := InducedPcgsByPcSequence( spec, spec{[6]} );
[ f6 ]
gap> modu := mpcgs mod npcgs;
[ f4, f5 ]
gap> mat:=LinearActionLayer( G, spec{[1,2,3]}, modu );
[ <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2>,
<an immutable 2x2 matrix over GF2> ]
gap> Print(mat);
[ [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ], [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2),
Z(2)^0 ] ], [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ] ]
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual