This code computes the number of exponent-p class two p-groups of order p^n, following a reverse engineering and augmentation of a proof by Graham Higman in 1960. This repository will contain the original source code to do it, plus a newly worked C++ version. The detailed explanation of the algorithm and theory are in the PhD thesis at: http://www.brettwitty.net/phd.php
Two projects are included:
- Legacy GAP code
- C++ rewrite
This code is released under the Attribution-NonCommercial-ShareAlike 3.0 Unported Creative Commons license.
Legacy GAP code
Load the file master.gap, which should bring in all the other code. Then call:
HigmanNumberOfSubspaceOrbits(p, r, s, Type);
- p is a variable preferably from a polynomial ring over the integers.
- r, s are positive integers such that r+s=n
- Type is either true (calculate this function for all types), or a specific type.
This code will not be actively maintained, and is provided mostly for historical record, and as a solution while the C++ version is created.
This C++ rewrite has several goals:
- Improved speed
- Improved memory use
- Multi-threaded, multi-machine processing
- Detailed checkpointing of results that provide a verifiable record of the calculation.
The C++ code will include just that required to compute the PORC function.
Boost will be used extensively for:
- Program options