SemidirectProductScheme

Let R be a relation matrix of size n, G a finite group, and hom a group homomorphism from G to the symmetric group of degree n. SemidirectProductScheme(R, G, hom) returns the semidirect product of R by G in the sense of [12, §2.7]. This function does not check whether hom is a homomorphism to the automorphism group.

For example,

gap> R := CompleteGraphScheme(3);;
gap> gens := [(1,2,3)];;                                 
gap> H := Group(gens);;                                  
gap> G := Group(gens);;
gap> hom := GroupHomomorphismByImages(G, H, gens, gens);;
gap> R2 := SemidirectProductScheme(R, G, hom);;
gap> Display(R2);           
[ [  0,  1,  1,  3,  2,  3,  5,  5,  4 ],
  [  1,  0,  1,  3,  3,  2,  4,  5,  5 ],
  [  1,  1,  0,  2,  3,  3,  5,  4,  5 ],
  [  5,  5,  4,  0,  1,  1,  3,  2,  3 ],
  [  4,  5,  5,  1,  0,  1,  3,  3,  2 ],
  [  5,  4,  5,  1,  1,  0,  2,  3,  3 ],
  [  3,  2,  3,  5,  5,  4,  0,  1,  1 ],
  [  3,  3,  2,  4,  5,  5,  1,  0,  1 ],
  [  2,  3,  3,  5,  4,  5,  1,  1,  0 ] ]
gap> IsAssociationScheme(R2);                 
true