This code should build on almost any linux platform. It requires pthreads but not much else. * Compiling * In general, just type make That should generate the twophase executable. Program name Memory reqiurements Metric ------------ ------------------- ------ twophase 500MB HTM The first time you run one of these programs, they will take a while and generate a large pruning table. I'm not sure how long it will take, but I wouldn't be surprised if it's about an hour. General usage is: twophase [options] < input-sequences > solutions where input-sequences is a set of positions (given either as move sequences or as Singmaster notation positions). Options are as follows: -t n Run with n threads (up to 8 currently, but it's a compile-time constant so can easily be increased). If you have hyperthreading, use it. -M n Evaluate each position with only up to -M twophase solutions. -s n Stop working on each position when a solution of length n has been found. (This sets a stoplength.) -q Only list solutions that are greater than stoplength. Essentially, generate minimal output. Typical output looks as follows: RU UL RD BU FD RF BL DL BD UF BR FL BDL FUL BRD FRU RFD BUR LUB FLD Solved 1 evals 48 finlen 20 L1 F2 R2 D2 F2 U2 R1 U2 L3 B2 F1 R3 B2 U2 L1 F3 R1 U2 D1 L3 FD UB BD LD RU LF BL UL FU DR BR FR LDF FUL RFD FRU BRD BUR LUB LBD Solved 2 evals 17874 finlen 20 R1 B2 F2 R3 L2 F2 D2 F2 B1 D3 L3 B3 D1 L3 U3 D2 R2 B2 R2 F1 RD UL BD BU RU LF BL DF FU DL FR BR FDR FUL FLD FRU BRD BUR LUB LBD Solved 3 evals 88 finlen 20 B1 R3 U2 F1 L2 B3 L1 U2 L1 U1 R2 B2 L1 B2 L3 B2 L3 U2 L3 B2 Completed. If you don't see "Completed." at the end, something went wrong and the program did not terminate properly. The solution sequences start with spaces. The input position is echoed to the output in Singmaster notation.