[![Build Status](https://github.com/gap-packages/perfgrp/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/gap-packages/perfgrp/actions/workflows/CI.yml?query=branch%3Amain)
[![Code Coverage](https://codecov.io/github/gap-packages/perfgrp/coverage.svg?branch=main&token=)](https://codecov.io/gh/gap-packages/perfgrp)

# The PerfGrp package for GAP

The GAP library of finite perfect groups provides, up to isomorphism, a list
of all perfect groups whose sizes are less than 2 000 000. The groups of
orders up to 10^6 have been enumerated by Derek F. Holt and Wilhelm Plesken
and published in their book "Perfect Groups" (Oxford University Press, 1989).
The remaining groups were enumerated by Alexander Hulpke, *The perfect groups
of order up to two million*, Math. Comp. **91** (2022), no. 334, 1007-1017,
<https://doi.org/10.1090/mcom/3684>.

In addition, this package provides methods for computing the perfect and
simple subgroups of a finite group, via the attributes
`RepresentativesPerfectSubgroups`, `RepresentativesSimpleSubgroups` and
`ConjugacyClassesPerfectSubgroups`.

This code used to be part of the GAP core system, and was moved into a
separate package to reduce the size of the GAP distribution and to allow
independent updates of the data.


## Documentation

Full information and documentation can be found in the manual, available as
PDF `doc/manual.pdf` or as HTML `doc/chap0_mj.html`, or on the package
homepage at

  <https://gap-packages.github.io/perfgrp/>


## Installation

PerfGrp is a needed package of GAP, so it is contained in every GAP
distribution and no separate installation is required.

To install a development version, place the contents of this repository into
the `pkg` directory of your GAP installation, in a subdirectory named
`perfgrp`.

GAP 4.16 and earlier contain the perfect groups library themselves. This
package can be loaded into such a version of GAP, but is then a no-op: GAP
already provides everything it contains, so nothing is read. This is mainly
done to simplify the transition from the old bundled data library to the
new package.

For reasons of size, the data for the orders 1376256 and 1966080 is not
shipped with this package. If you need those groups, fetch `perf27.grp`
respectively `perf33.grp` from <https://github.com/hulpke/extraperfect> and
put them into the `data` subdirectory. GAP tells you which file it wants if
you ask for a group it does not have; see the section "Data Not Distributed
with the Package" in the manual.


## Contact

Please report any issues you encounter at

  <https://github.com/gap-packages/perfgrp/issues>


## License

PerfGrp is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

For details, see the file `LICENSE` distributed with this package or the FSF's
own site <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>.
