# [GAP Forum] StructureDescription & memory

Jack Schmidt jack at ms.uky.edu
Tue Apr 8 16:18:36 BST 2008

```Steve Linton wrote:
>
> As you observe, these groups are all of rank 7. I think they can be understood
> as D8 x C_2^5, Q8 x C_2^5, and 2^{1+4}_+ x C_2^3 and 2^{1+4}_- x C_2^3,
> although I haven't checked this fully.

Just to indicate a method as well as a solution: to guess, one can use
the simplified presentation printing from the "polycyclic" package:

gap> DisplayPcpGroup(Range(IsomorphismPcpGroup(SmallGroup(2^8,56083))));
...

which prints out the familiar presentation for D8 on g1,g2,g8 and then a
presentation for an elementary abelian group of order 2^5 on g3 through
g7 (commutative conjugation relations are suppressed).

To verify the guess one uses a much more efficient method: construct the
direct products and use IdGroup.

IdGroup(DirectProduct(ExtraspecialGroup(2^5,"-"),ElementaryAbelianGroup(2^3)));

When I created a browsing database of the groups of order n, for n <=
2000 and NrSmallGroups(n) < 10^5, I used this method to name direct
products.  It is similar to Eratosthenes sieve versus trial factoring.
The idea here is that if you are looking for direct products, then
factoring large groups is the wrong method.  Rather one should form
products of small ones.

I should also mention that while the creation of the database was
enormously helpful to me, I rarely found any use of it other than a
casual reminder of "what do the groups of that order look like?"

>> Are there any other implementations of a computation of structure
>> description that gives more useful information that that in gap?

I have yet to find a convincing description for p-groups.  A sparse,
algebraic presentation such as in the small groups library is about the
most useful I have found.

```