  
  [1X5 [33X[0;0YThe Cyclic Split Extension Method[133X[101X
  
  [33X[0;0YThis  is a method to construct up to isomorphism the groups of order [22Xp^n ⋅ q[122X
  for  different  primes  [22Xp[122X and [22Xq[122X which have a normal Sylow subgroup. We first
  describe  the  main  function  for  this method and then functions providing
  slightly lower level access to the algorithms.[133X
  
  [33X[0;0YNote  that  all  functions  described  in  this chapter rely on an efficient
  method  for [10XAutomorphismGroup[110X for [22Xp[122X-groups. Such a method is provided in the
  package  AutPGrp.  Thus it is useful to install and load this package before
  using the functions described in this chapter.[133X
  
  
  [1X5.1 [33X[0;0YThe Main Function[133X[101X
  
  [1X5.1-1 CyclicSplitExtensionMethod[101X
  
  [33X[1;0Y[29X[2XCyclicSplitExtensionMethod[102X( [3Xp[103X, [3Xn[103X, [3Xq[103X[, [3Xuncoded[103X] ) [32X function[133X
  
  [33X[0;0YClearly,  each  of  the  computed  groups is a split extension of a group of
  order [22Xp^n[122X and the cyclic group of order [22Xq[122X. The output is a record with three
  entries [3Xup[103X, [3Xdown[103X and [3Xboth[103X. Each of these contains a list of groups, [3Xboth[103X the
  nilpotent groups, [3Xup[103X the remaining groups with a normal Sylow [22Xp[122X-subgroup and
  [3Xdown[103X the remaining groups with a normal Sylow [22Xq[122X-subgroup.[133X
  
  [33X[0;0YAs  in  Chapter [14X4[114X all groups are described as codes. Setting [3Xuncoded[103X to [9Xtrue[109X
  makes the function return pc groups instead.[133X
  
  [33X[0;0YIf  one  wants  to  construct  the  groups  of order [22Xp^n ⋅ q[122X for fixed [22Xp[122X and
  several  primes  [22Xq[122X,  it  is  more efficient to do this in one go. Thus it is
  possible to hand a list of primes for the input [3Xq[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCyclicSplitExtensionMethod( 2,2,7, true );[127X[104X
    [4X[28Xrec( [128X[104X
    [4X[28X  both := [ <pc group of size 28 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 28 with 3 generators> ], [128X[104X
    [4X[28X  down := [ <pc group of size 28 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 28 with 3 generators> ], up := [  ] )[128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCyclicSplitExtensionMethod( 2,2,[3,5], true );[127X[104X
    [4X[28Xrec( [128X[104X
    [4X[28X  both := [ <pc group of size 12 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 20 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 12 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 20 with 3 generators> ], [128X[104X
    [4X[28X  down := [ <pc group of size 12 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 20 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 20 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 12 with 3 generators>, [128X[104X
    [4X[28X      <pc group of size 20 with 3 generators> ], [128X[104X
    [4X[28X  up := [ <pc group of size 12 with 3 generators> ] )[128X[104X
  [4X[32X[104X
  
  [33X[0;0YNote  that  the function [10XCyclicSplitExtensionMethod[110X requires that the groups
  of order [22Xp^n[122X are given within the Small Groups library.[133X
  
  
  [1X5.2 [33X[0;0YThe Underlying Functions[133X[101X
  
  [33X[0;0YIt is possible to construct the cyclic extensions of a single group of order
  [22Xp^n[122X only. The output is as above.[133X
  
  [1X5.2-1 CyclicSplitExtensions[101X
  
  [33X[1;0Y[29X[2XCyclicSplitExtensions[102X( [3XG[103X, [3Xq[103X[, [3Xuncoded[103X] ) [32X function[133X
  
  [33X[0;0YMoreover,  the  computation of the record entry [3Xup[103X and the record entry [3Xdown[103X
  can be separated by using the following functions.[133X
  
  [1X5.2-2 CyclicSplitExtensionsUp[101X
  
  [33X[1;0Y[29X[2XCyclicSplitExtensionsUp[102X( [3XG[103X, [3Xq[103X[, [3Xuncoded[103X] ) [32X function[133X
  [33X[1;0Y[29X[2XCyclicSplitExtensionsDown[102X( [3XG[103X, [3Xq[103X[, [3Xuncoded[103X] ) [32X function[133X
  
  [33X[0;0YThe  input  for  these  functions  is  the same as above. The first function
  returns  a  list  of  groups  with  one normal subgroup of order [22Xp^n[122X and the
  second a list of groups with one normal subgroup of order [22Xq[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := SmallGroup( 16, 10 );;[127X[104X
    [4X[25Xgap>[125X [27XCyclicSplitExtensionsUp( G, 3, true );[127X[104X
    [4X[28X[ <pc group of size 48 with 5 generators> ][128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := SylowSubgroup( SymmetricGroup(4), 2);[127X[104X
    [4X[28XGroup([ (1,2), (3,4), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XCyclicSplitExtensionsDown( G, 3 );[127X[104X
    [4X[28X[ rec( code := 119814529, order := 24 ), [128X[104X
    [4X[28X  rec( code := 2837724033, order := 24 ) ][128X[104X
  [4X[32X[104X
  
