AffineOperation( U, V, varphi, tau )
Let U be an ag group with an induced generating system u_1, ..., u_m
and let V be a vector space with base (o_1, ..., o_n). Further U
should act affinely on V. So if v is an element of V and u is an
element of U, then v^u = v_u + x_u, such that the function which maps
v to v_u is linear and x_u is an element of V. These actions are
given by the functions varphi and tau as follows. <varphi>(
v, u) must return the representation of v_u with respect to the base
(o_1, ..., o_n) as sequence of finite field elements. <tau>( u )
must return the representation of x_u in the base (o_1, ..., o_n) as
sequence of finite field elements. If these conditions are fulfilled,
AffineOperation
returns a matrix group M describing this action.
Note that M.images
contains a list of matrices m_i, such that m_i
describes the action of u_i and m_i is of the form
left(
beginarraycc
L_u_i & 0
x_u_i & 1
endarray
right),
where L_u is the matrix which describes the linear operation v in Vmapsto v_u.
gap> v4 := AgSubgroup( s4, [ c, d ], true ); Subgroup( s4, [ c, d ] ) gap> v4.field := GF( 2 ); GF(2) gap> phi := function( v, g ) > return Exponents( v4, v^g, v4.field ); > end; function ( v, g ) ... end gap> tau := g -> Exponents( v4, v4.identity, v4.field ); function ( g ) ... end gap> V := rec( base := [ c, d ], isDomain := true ); rec( base := [ c, d ], isDomain := true ) gap> AffineOperation( s4, V, phi, tau ); Group( [ [ Z(2)^0, Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0 ] ], [ [ 0*Z(2), Z(2)^0, 0*Z(2) ], [ Z(2)^0, Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0 ] ] )
GAP 3.4.4