# [GAP Forum] Double Semidirect Product Group

```Hi,

I have written a GAP function that constructs double semidirect product groups
of type```
```
((C_l)^2 \rtimes_s C_m) \rtimes_t C_n

where C_l, C_m, C_n are cyclic groups of orders l, m, n respectively, and C_m
acts on (C_l)^2 via a nontrivial homomorphism s: C_m --> Aut((C_l)^2), and
C_n acts on the semidirect product (C_l)^2 \rtimes_s C_m via a nontrivial
homomorphism t: C_n --> Aut((C_l)^2 \rtimes_s C_m)).  So for example for
l = 5, m = 3, n = 2, it should give a semidirect product group of order 150,
one of
[150, 5], [150,6], [150,9] depending on the choices of homomorphisms.

However, when I run it on GAP I get an error:

Error, usage: Image(<map>), Image(<map>,<elm>), Image(<map>,<coll>) called from
Image( aut, pcgsG[i] ) called from
SplitExtension( G, aut, N ) called from
<function>( <arguments> ) called from read-eval-loop
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk>

Here is the code:

DoubleSemidirectProductGroup := function( l, m, n )

local N1, AN1, oAN1, aN1, gcd, h, N2, AN2, oAN2, aN2, K1, k1, K2, k2;

N1 := DirectProduct( CyclicGroup( l ), CyclicGroup( l ) );
AN1 := AutomorphismGroup( N1 );
oAN1 := Order( AN1 );
gcd := Gcd( m, oAN1 );
aN1 := Filtered( AN1, x -> Order( x ) = gcd )[1];

K1 := CyclicGroup( m );
k1 := Elements( K1 )[2];

h := GroupHomomorphismByImages( K1, AN1, [k1], [aN1] );

N2 := SemidirectProduct( N1, h, K1 );
AN2 := AutomorphismGroup( N2 );
oAN2 := Order( AN2 );
gcd := Gcd( n, oAN2 );
aN2 := Filtered( AN2, x -> Order( x ) = gcd )[1];

K2 := CyclicGroup( n );
k2 := Elements( K2 )[2];

h := GroupHomomorphismByImages( K2, AN2, [k2], [aN2] );

return SemidirectProduct( N2, h, K2 );

end;

Could someone please point out where the error is?

Sincerely, Sandeep.

_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum
```