This package provides a simple implementation of Leon's partition backtrack framework.
This package is intended to be a package for learning the algorithms of partition backtrack, and the performance is extremely poor -- orders of magnitude slower than the algorithms in GAP. If you want to see a modern, high-performance extension to partition backtrack, look at the vole package.
BacktrackKit currently requires (currently) GAP version >= 4.13.0, and
sufficiently recent versions of the following packages (see the PackageInfo.g
file for specific versions):
- datastructures
- digraphs
- images
- primgrp
Additionally, the QuickCheck package is required in order to run all of the tests.
This package is a work in progress, both in terms of code and documentation.
If you have any issues or questions about this package, please post an issue at https://github.com/peal/BacktrackKit/issues
- Internal changes to make this package compatible with 'vole', in particular, refiners made for BacktrackKit can be used inside 'vole'.
- Remove
Objectfor a stabiliser constraint (as a synonym for source object). This clashed with the HAP package.
- Rename
BTKit_ContoBTKit_Refiner. - Add constraints documentation from Vole
- Add
ProcessConstraintsandBTKit_RefinerFromConstraint
Refiners now have a “constraint” member, which is a new type of GAP object, and
which stores information about the constraint that the refiner refiners with
respect to. Constraints are available via the Constraint record.
Add IsEven and IsOdd refiners, to more efficiently handle alternating groups
- Significant change to the API -- remove the requirement to give the size of the partition to most refiners
CI tests the development, latest, and oldest supported GAP versions on Linux,
plus development GAP on Windows, with both normal and OnlyNeeded loading.
The Docs workflow builds the manual and uploads its PDF.
To release, update the version and date in PackageInfo.g, push to master,
then run Actions → Release on master with dry-run selected first.
Inspect the generated archives and manuals, then rerun without dry-run to
publish the GitHub release and update the package website. Existing website
customisations are preserved. Use force only when intentionally replacing
an existing release or bypassing the release-date check.