                           The AutPGrp package
                           -------------------

AutPGrp is a GAP 4 package for computing automorphism groups of p-groups.

Given an arbitrary finite group,  the  computation  of  its  automorphism
group is a very difficult task. Pioneer work in this area was carried out
by Felsch & Neubueser (1970), whose algorithm used the  output  of  their
subgroup lattice program. A technique developed by Neubueser in the early
1970s sought to compute the automorphism group viewed  as  a  permutation
group acting on unions of certain  conjugacy  classes  of  the  group.  A
similar method was implemented by  Hulpke (1997) in  the  GAP 4  library.
Recently, Cannon & Holt (1999) presented a new  algorithm  which  uses  a
``hybrid group'' approach.

More efficient approaches are available  to  determine  the  automorphism
group for groups satisfying certain properties.  Following  the  work  of
Shoda (1928), Hulpke in 1997 implemented a practical  method  for  finite
abelian groups in the GAP 4 library.  Wursthorn  (1993)  adapted  modular
group algebra techniques to compute the automorphism groups of  p-groups;
the GAP 3 share package Sisyphos includes an implementation. Smith (1994)
introduced an algorithm for finite solvable groups which is available  in
the AutAg share package of GAP 3.

Moreover, the p-group generation method  of  Newman  (1977)  and  O'Brien
(1990) can be modified to compute the  automorphism  group  of  a  finite
p-group as outlined in O'Brien (1995). This algorithm is  implemented  in
the ANU pq C program.

In the AutPGrp package  we  introduce  a  new  function  to  compute  the
automorphism group of a finite p-group. The  underlying  algorithm  is  a
refinement of the methods described in  O'Brien  (1995).  In  particular,
this implementation is more efficient in both time and space requirements
and hence has a wider range of applications than the ANU pq  method.  Our
package is written in GAP code and it makes use of a  number  of  methods
from  the  GAP  library  such  as  the  MeatAxe  for  matrix  groups  and
permutation group functions.

The  GAP  4  package  ANUPQ,  which  is  an  interface  to  most  of  the
functionality of the ANU pq  C  program,  uses  the  AutPGrp  package  to
compute automorphism groups of p-groups.

We have compared our method to the others available in GAP.  Our  package
usually out-performs all but  the  method  designed  for  finite  abelian
groups. We note that our method uses the small groups library in  certain
cases and hence our algorithm is  more  effective  if  the  small  groups
library is installed.

Note that since version 1.1 of AutPGrp, at least GAP 4.3fix4 is required.

                                 Authors
                                 -------

The AutPGrp package was written by:

Bettina Eick,
Institut Computational Mathematics,
TU Braunschweig,
Pockelsstr. 14, D-38106 Braunschweig, Germany
e-mail: beick@tu-bs.de

Eamonn O'Brien
Department of Mathematics
University of Auckland
Private Bag 92019, Auckland, New Zealand
e-mail: obrien@math.auckland.ac.nz 

                     Installing the AutPGrp package
                     ------------------------------

To install the AutPGrp package, move the archive file 'autpgrp.tar.gz'
into the `pkg' directory in which you plan to install
AutPGrp.  Usually,  this will  be the directory `pkg' in the hierarchy of 
your version  of  GAP 4. (However, it is also possible to keep an additional
`pkg'  directory  in your private directories, see section "ref:Installing  
GAP  Packages"  of the GAP 4 reference manual for details on how to do this.)
Then unpack the archive file and that's it!

                               Bug reports
                               -----------

If you encounter problems, please contact Bettina Eick <b.eick@tu-bs.de>.

When sending a bug report, remember we will need to be able to  reproduce
the problem; so please include:

 * The version of GAP you are using; either look at  the  header  when
   you start up GAP, or at the gap> prompt type: VERSION;
 * The operating system you are using e.g. Linux, macOS, Windows, ...
 * A script in GAP that demonstrates the bug, along with a description
   of why it's a bug (e.g. by adding comments to the script -  recall,
   comments in GAP begin with a #).

  - Bettina Eick
    e-mail: b.eick@tu-bs.de 
    www:    http://www.iaa.tu-bs.de/beick/so.html
