This optimal solver uses GAP to build tables and C to do the actual search. 
We also use GAP to generate a small text file containing the coset coordinates for the position
needed to be solved. 

The program uses UNIX.

First put the files 

table_builder.txt
coordinate_builder.txt
twpermited.txt
makesetcm_4.txt

in gap4r4/bin/ directory.

After that decide for a directory where the C program optimal_mod_2_simplified.c will be.
This directory must be specified on the first line in the program table_builder.txt .

Now we go to the gap4r4/bin/ directory and type
gap.sh -o 2000M table_builder.txt
This will take 15-30 minutes but will only be runned once
This program will build all the move tables and save some information needed for position coordinates.
The workspace it will save has about 143M.
After this program is finished we type at the GAP prompt:
Read("coordinate_builder.txt");
This will go pretty fast and will generate the coordinates.
After all this has been done we are ready to go to the directory where the C program is.
and we compile:
gcc optimal_mod_2_simplified.c -O3
We start by typing:
a.out
The program will build the pruning which might take about 40 minutes. This only happens once and will be saved
to disk.
This takes about 290M of disk space.

In order to change the position edit the file coordinate_builder.txt and change the first
line to the desired position. After that go to bin directory and type
gap.sh -o 2000M -L tables coordinate_builder.txt
After the program finishes exit GAP and recompile the C program the same way as before and start it.
