  
  [1X3 [33X[0;0YThe Small Class Number Library[133X[101X
  
  
  [1X3.1 [33X[0;0YSelecting groups by their ID's[133X[101X
  
  [1X3.1-1 SmallClassNrGroup[101X
  
  [33X[1;0Y[29X[2XSmallClassNrGroup[102X( [3Xk[103X, [3Xi[103X ) [32X function[133X
  [33X[1;0Y[29X[2XSmallClassNrGroup[102X( [3Xk[103X, [3Xi:[103X [3XAsPermGroup[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ythe [3Xi[103X-th finite group of class number [3Xk[103X in the library.[133X
  
  [33X[0;0YBy  default, if the group is soluble, it is given as a PcGroup whose Pcgs is
  a  SpecialPcgs. If the group is not soluble, or if the option [10XAsPermGroup[110X is
  added, it will be given as a permutation group of minimal permutation degree
  and with a minimal generating set.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XSmallClassNrGroup( 4, 4 );[127X[104X
    [4X[28X<pc group of size 12 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XG := SmallClassNrGroup( 4, 4 : AsPermGroup );[127X[104X
    [4X[28XGroup([ (1,2,3), (1,4,2) ])[128X[104X
    [4X[25Xgap>[125X [27XNrConjugacyClasses( G );[127X[104X
    [4X[28X4[128X[104X
    [4X[25Xgap>[125X [27XIsAlternatingGroup( G );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X3.1-2 IdClassNr[101X
  
  [33X[1;0Y[29X[2XIdClassNr[102X( [3XG[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ythe  [5XSmallClassNr[105X  ID  of  [3XG[103X,  i.e.  a  pair [10X[[3Xk[103X[10X, [3Xi[103X[10X][110X such that [3XG[103X is
            isomorphic to [10XSmallClassNrGroup([3Xk[103X[10X, [3Xi[103X[10X)[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XIdClassNr( AlternatingGroup( 4 ) );[127X[104X
    [4X[28X[ 4, 4 ][128X[104X
  [4X[32X[104X
  
  
  [1X3.2 [33X[0;0YSelecting groups by their properties[133X[101X
  
  [33X[0;0YFor  each  of  the functions in this section, the arguments [3Xarg[103X must come in
  pairs  consisting of a function and a value (or list of accepted values). At
  least  one  of  the  functions must be [9XNrConjugacyClasses[109X. Missing functions
  will be interpreted as [9XNrConjugacyClasses[109X, missing values as [9Xtrue[109X.[133X
  
  [33X[0;0YThe  option  [10XAsPermGroup[110X  can  be  added to the functions in this section to
  ensure  that  all  groups are returned as PermGroups (instead of PcGroups if
  they are soluble).[133X
  
  [1X3.2-1 AllSmallClassNrGroups[101X
  
  [33X[1;0Y[29X[2XAllSmallClassNrGroups[102X( [3Xarg...[103X ) [32X function[133X
  [33X[1;0Y[29X[2XAllSmallClassNrGroups[102X( [3Xarg...:[103X [3XAsPermGroup[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yall finite groups with certain properties as specified by [3Xarg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XAllSmallClassNrGroups( IsSolvable, true, NrConjugacyClasses, 6 );[127X[104X
    [4X[28X[ <pc group of size 6 with 2 generators>,[128X[104X
    [4X[28X  <pc group of size 12 with 3 generators>,[128X[104X
    [4X[28X  <pc group of size 12 with 3 generators>,[128X[104X
    [4X[28X  <pc group of size 18 with 3 generators>,[128X[104X
    [4X[28X  <pc group of size 18 with 3 generators>,[128X[104X
    [4X[28X  <pc group of size 36 with 4 generators>,[128X[104X
    [4X[28X  <pc group of size 72 with 5 generators> ][128X[104X
    [4X[25Xgap>[125X [27XAllSmallClassNrGroups( [ 3 .. 5 ], IsNilpotent );[127X[104X
    [4X[28X[ <pc group of size 3 with 1 generator>,[128X[104X
    [4X[28X  <pc group of size 4 with 2 generators>,[128X[104X
    [4X[28X  <pc group of size 4 with 2 generators>,[128X[104X
    [4X[28X  <pc group of size 5 with 1 generator>,[128X[104X
    [4X[28X  <pc group of size 8 with 3 generators>,[128X[104X
    [4X[28X  <pc group of size 8 with 3 generators> ][128X[104X
    [4X[25Xgap>[125X [27XAllSmallClassNrGroups( [ 3 .. 5 ], IsNilpotent : AsPermGroup );[127X[104X
    [4X[28X[ Group([ (1,2,3) ]),[128X[104X
    [4X[28X  Group([ (1,2,3,4) ]),[128X[104X
    [4X[28X  Group([ (1,2), (3,4) ]),[128X[104X
    [4X[28X  Group([ (1,2,3,4,5) ]),[128X[104X
    [4X[28X  Group([ (1,2), (1,3)(2,4) ]),[128X[104X
    [4X[28X  Group([ (1,2,3,4)(5,6,7,8), (1,5,3,7)(2,8,4,6) ]) ][128X[104X
  [4X[32X[104X
  
  [1X3.2-2 OneSmallClassNrGroup[101X
  
  [33X[1;0Y[29X[2XOneSmallClassNrGroup[102X( [3Xarg...[103X ) [32X function[133X
  [33X[1;0Y[29X[2XOneSmallClassNrGroup[102X( [3Xarg...:[103X [3XAsPermGroup[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yone finite group with certain properties as specified by [3Xarg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XOneSmallClassNrGroup( 6, IsSolvable, false );[127X[104X
    [4X[28XGroup([ (1,2,3)(4,5,6), (1,4)(2,7) ])[128X[104X
    [4X[25Xgap>[125X [27XOneSmallClassNrGroup( 10, IsSolvable, true, IsNilpotent, false );[127X[104X
    [4X[28X<pc group of size 28 with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XOneSmallClassNrGroup( 10, IsSolvable, true, IsNilpotent, false : AsPermGroup );[127X[104X
    [4X[28XGroup([ (1,2,3,4,5,6,7), (2,7)(3,6)(4,5)(8,9,10,11) ])[128X[104X
  [4X[32X[104X
  
  [1X3.2-3 NrSmallClassNrGroups[101X
  
  [33X[1;0Y[29X[2XNrSmallClassNrGroups[102X( [3Xarg...[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ythe  number  of finite groups with certain properties as specified
            by [3Xarg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XNrSmallClassNrGroups( 14 );[127X[104X
    [4X[28X93[128X[104X
    [4X[25Xgap>[125X [27XNrSmallClassNrGroups( IsSolvable, true, NrConjugacyClasses, 6 );[127X[104X
    [4X[28X7[128X[104X
    [4X[25Xgap>[125X [27XNrSmallClassNrGroups( [ 3 .. 5 ], IsNilpotentGroup );[127X[104X
    [4X[28X6[128X[104X
  [4X[32X[104X
  
  [1X3.2-4 IteratorSmallClassNrGroups[101X
  
  [33X[1;0Y[29X[2XIteratorSmallClassNrGroups[102X( [3Xarg...[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan  iterator  that iterates over the finite groups with properties
            as specified by [3Xarg[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xiter := IteratorSmallClassNrGroups( 12, IsSimpleGroup );[127X[104X
    [4X[28X<iterator>[128X[104X
    [4X[25Xgap>[125X [27Xfor G in iter do Print( Size( G ), "\n" ); od;[127X[104X
    [4X[28X3420[128X[104X
    [4X[28X5616[128X[104X
    [4X[28X443520[128X[104X
  [4X[32X[104X
  
  
  [1X3.3 [33X[0;0YAvailability of the library[133X[101X
  
  [1X3.3-1 SmallClassNrGroupsAvailable[101X
  
  [33X[1;0Y[29X[2XSmallClassNrGroupsAvailable[102X( [3Xk[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X  if  the finite groups of class number [3Xk[103X are available in the
            library, and [9Xfalse[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XSmallClassNrGroupsAvailable( 14 );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XSmallClassNrGroupsAvailable( 15 );[127X[104X
    [4X[28Xfalse[128X[104X
  [4X[32X[104X
  
