[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Database of Groups of Order up to 100
Database of Groups of Order up to 100
The gps100 database contains all groups of order up to 100, excluding
Abelian groups, groups of order 64 (see Database of Groups of Order Dividing 256 for these)
and the alternating group on five letters.
The groups are stored internally in a compact representation, so a little
setting up must be done to generate a complete polycyclic group. The order
of each group is known in advance, however, so several functions are
provided to make use of this piece of knowledge.
The groups are accessed through the following functions only.
-
GroupOfOrder(o, n)
-
This function returns the n-th group of order o. In some cases,
an informative message about the group may also be printed.
-
GroupsOfOrderCount(o)
-
This function returns the number of groups of order o which are
stored in the database.
-
GroupSatisfying(f)
-
Given a boolean valued function f: GrpPC --> BoolElt (which may
either be an intrinsic function or a user defined function),
return a group satisfying f(G). This function runs through all
the stored groups, expanding each from the compact presentation
and applies the predicate f until it finds a suitable one.
If no group is found, an error message is printed.
-
GroupOfOrderSatisfying(o, f)
-
As GroupSatisfying(f), except it only runs through the groups
of order o.
-
GroupsSatisfying(f)
-
As GroupSatisfying(f), except a sequence of all such groups
is returned.
-
GroupsOfOrderSatisfying(o, f)
-
As GroupOfOrderSatisfying(f), except a sequence of all such groups
is returned.
-
GroupProcess()
-
Return a "process" for looping over all the stored groups.
Initially it points to the first group (of order 6).
-
GroupOfOrderProcess(o)
-
Return a "process" for looping over all the stored groups
of order o. Initially it points to the first group of order o.
-
GroupOfOrderProcess()
-
Return a "process" for looping over all the stored groups
of order o where lo <= o <= hi. Initially it points to the
first group of order greater than or equal to lo.
-
GroupProcessIsEmpty(P)
-
Return whether the process P currently points to a group.
-
GroupProcessExtractGroup(P)
-
Given a process P which currently points to a group, return that
group.
-
GroupProcessNext(~P)
-
Given a process P which currently points to a group, modify it
so that it points to the next group if there is one or make it
empty if there is not.
Example
A fairly typical use of a process to loop over groups
would look something like this:
load gps100;
P := GroupOfOrderProcess(<30, 40>);
while not GroupProcessIsEmpty(P) do
G := GroupProcessExtractGroup(P);
... do computations with G ...
GroupProcessNext(~P);
end while;
[Next] [Prev] [Right] [Left] [Up] [Index] [Root]