Magma contains the means to construct all p-groups of order pn where n≤7. This section describes the functions for accessing these constructions. The data used in the constructions was supplied by Hans Ulrich Besche, Bettina Eick, Eamonn O'Brien, Mike Newman and Michael Vaughan-Lee [BE99a], [BEO01], [BE99b], [O'B90], [BE01], [O'B91], [MNVL04], [OVL05].
Produce a sequence of groups of order pn satisfying the conditions specified by the following parameters. The restrictions on the order are n ≤7 or p=2 and n≤9.Rank: SetEnum Default: {1, ... n}All groups returned will have Frattini quotient rank in Rank. This parameter may also be set to a single integer.Class: SetEnum Default: {1, ... n}All groups returned will have p-class in Class. This parameter may also be set to a single integer.Select: Program Default: trueThe parameter must be set to a program returning either true or false when given a p-group satisfying the above conditions. All groups G returned will then satisfy Select(G) eq true.Limit: RngIntElt Default: 0If Limit is set to a positive number n, then the program may end its search and return when there are at least n groups found.
Count the number of groups of order pn satisfying the conditions specified by the parameters. The parameters are the same as for SearchPGroups, except that the Limit parameter is ignored.
> time Q := SearchPGroups(19, 7:Rank := 5, Class := 3, > Select := func<G|IsPrime(Exponent(G))> ); Time: 0.050 > #Q; 4 > Q[1]; GrpPC of order 893871739 = 19^7 PC-Relations: $.2^$.1 = $.2 * $.6, $.6^$.1 = $.6 * $.7This time we limit the number returned.
> time Q := SearchPGroups(19, 7:Rank := 4, Class := {3,4}, > Select := func<G|IsPrime(Exponent(G))>, Limit := 5); Time: 13.090 > #Q; 5 > [pClass(G):G in Q]; [ 3, 3, 3, 3, 3 ] > time Q4 := SearchPGroups(19, 7:Rank := 4, Class := 4, > Select := func<G|IsPrime(Exponent(G))>, Limit := 5); Time: 0.150 > #Q4; 6Note that the limit is not always adhered to exactly. We can also count the number of groups with our property.
> time CountPGroups(19, 7:Rank := 4, Class := {3,4}, > Select := func<G|IsPrime(Exponent(G))>); Time: 334.720 43 > time CountPGroups(19, 7:Rank := 4, Class := 4, > Select := func<G|IsPrime(Exponent(G))>); 10 Time: 0.310