These sources compile and run on linux. They should also compile and run on a sufficiently large Windows machine. They require pthreads.
They are written in a literate programming style using the CWeb system. You will need ctangle to compile the programs.
Module | Description | Source file | Formatted doc |
---|---|---|---|
cubepos | Cubepos provides the basic definitions of the cube group and standard utility functions such as reading and writing positions, parsing moves, executing moves, calculating inverses, and more. | cubepos.w | cubepos.pdf |
kocsymm | Kocsymm provides the definitions of the H subgroup and cosets. | kocsymm.w | kocsymm.pdf |
phase1prune | Phase1prune manages the phase 1 pruning table (on the coset graph). | phase1prune.w | phase1prune.pdf |
phase2prune | Phase2prune manages the phsae 2 pruning table (on the subgroup). | phase2prune.w | phase2prune.pdf |
twophase | Twophase is a batch-mode two-phase solver, requiring all of the previous routines. | twophase.w | twophase.pdf |
hcoset | Hcoset is the coset solver itself, requiring all of the previous routines except phase2prune and twophase. | hcoset.w | hcoset.pdf |
Also provided are the necessary files makefile, bestsol.h, and corner_order.h.
Instructions on running twophase.
Instructions on running hcoset.