The two programmes, solve and search, are available as a source distribution using the following link:
Once you have downloaded and extracted the above file go into the decomp-30-8-09 directory it creates and type 'make solve' (but without the quotes) to build the solve programme, followed by 'make search' to build the search programme. You may then wish to type 'make clean' to remove the object files the compilation produces.
The Makefile is based on the gcc compiler and is not sophisicated, I can't guarantee it will work on every system, so you'll need to ask a local system expert for help if it doesn't work properly.
Here is a sample session that builds both programmes, you should see something like this if all goes well:
[bart@wormwood decomp-30-8-09]$ make solve g++ -Wall -I ./include -I /include -I -g -c src/solve.cpp -o solve.o g++ -Wall -I ./include -I /include -I -g -c src/solvefns.cpp -o solvefns.o g++ -Wall -I ./include -I /include -I -g -c src/util.cpp -o util.o g++ -o solve solve.o solvefns.o util.o -lstdc++ [bart@wormwood decomp-30-8-09]$ make search g++ -Wall -I ./include -I /include -I -g -c src/search.cpp -o search.o g++ -Wall -I ./include -I /include -I -g -c src/decompose.cpp -o decompose.o g++ -Wall -I ./include -I /include -I -g -c src/searchfns.cpp -o searchfns.o g++ -o search search.o decompose.o searchfns.o util.o -lstdc++ [bart@wormwood decomp-30-8-09]$ make clean rm -f *.o [bart@wormwood decomp-30-8-09]$ ls cube free include Makefile pretzel search src trefoil trivial fig8 higman M21 manif README solve torus trg [bart@wormwood decomp-30-8-09]$
You will end up with two programmes, solve and search; also shown in the directory listing is a collection of input files for the solve programme. If you are interested in the source code, it is all in the src and include directories.
Usage: solve [-g]|[-h] [infile]
This programme may be run by typing 'solve' at the command line or by specifying a parameter file 'infile' by typing 'solve infile'. A parameter file must contain the following information, on separate lines as shown.
jobname number of generators number of relators generator 1 generator 2 ... relator1 relator2 ...
The relators must not contain any spaces but may be separated by an arbitrary number of spaces, or a newline.
Here is an example of the input file for the group presentation
< a b c d : -aba-b-b -bcb-c-c -cdc-d-d -dad-a-a >
higman 4 4 a b c d -aba-b-b -bcb-c-c -cdc-d-d -dad-a-a
Represent inverses of generators by preceeding the character with '-' eg -a, and powers by repetition
We also require that:
Requirements 1 to 5 are ESSENTIAL for the running of the program.
The '-g' switch causes the original Greenberg algorithm to be used, this creates LOTS more tracks but could be quicker in some instances - no promises though.
The solve programme produces an .eft file that is used by the search programme, and a .out file that contains essentiall the same information but in a more readable form.
Usage: search [-t][-h] [infile]
This program may be run be typing 'search' at the command line and following the instructions given, or the stub of an .eft file may be entered, as in 'search fred', where fred.eft must exist in the current directory (fred.eft created by running 'solve'). Optionally, the switch '-t' may be used to tell the program not to double up twisted tracks and decompose the double track automatically. The -h option simply repeats this information.
The search programme anayzes the extreme fundamental tracks in the .eft file and then provides the user with the option to access the following menu:
OPTIONS AVAILABLE A. Evaluate the decomposition given by every track in your-jobname.eft B. Evaluate decomposition given by a single track in your-jobname.eft C. Evaluate decomposition given by a collection of tracks in your-jobname.eft D. Add tracks together E. Evaluate decomposition from a given track F. Decide whether a given N-tuple determines a track G. Split a given pattern into component tracks H. Determine whether a pair of patterns are compatible I. Determine the characteristics of a given track J. Determine the characteristics of every track in your-jobname.eft Q. Quit menu
The search programme produces a .txt file that contains a transcript of the output produced by the programme.