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.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
gap-version
src
test
.gitignore
PORC.doxyfile
README.md
SConstruct
build_support.py
doxygen.py

README.md

PORC Calculator

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

License

This code is released under the Attribution-NonCommercial-ShareAlike 3.0 Unported Creative Commons license.

http://creativecommons.org/licenses/by-nc-sa/3.0/

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.

C++ rewrite

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:

  • Serialization
  • Threading
  • Program options