#############################################################################
##  Authors:           E.A. O'Brien and Colin Rhodes
##                     School of Mathematical Sciences, ANU 
## 
##  Last revised:      February 1993 
##
##  Program:           MakeLibrary 
## 
##  Purpose:           Performs the elementary processing needed to supply 
##                     p-group generation input to pq, process the compact 
##                     descriptions output and use this output to generate
##                     both CAYLEY and GAP group libraries.
## 
#############################################################################

 This directory contains a number of files. The most important of these are:
    
    MakeLibrary      -    the main routine that calls the p-quotient program
                          and makes suitable output files for CAYLEY and GAP.

    ToCayleyFormat   -    a shell file (SH not CSH) that given p-quotient 
                          compact presentation produces a CAYLEY library 
			  with those presentations.

    ToGapFormat      -    as above except it produces a GAP library 
    cay_padic_compress, 
    gap_padic_compress  - DO NOT USE (these are called by To??Format)

    header           -    a generic header file for GAP libraries.
    
    
 In the directory decode there are functions that take individual 
 group descriptions from the files created from MakeLibrary and 
 make them available as groups from within CAYLEY and GAP. 

 These are:

     decodegroup     --   sets up in CAYLEY the routine 

                          DecodeGroup (sequence, printlevel; G)

                          This procedure takes as input one of the 
                          compact descriptions and returns the group G.


     DecodeGroup.gap   -  sets up the routine  

                          DecodeGroup (p, Description)
			  in GAP and returns an Ag-group


 To run the MakeLibrary routine you will need a p-quotient input file. 
 A collection of sample files is given in the directory pq_inputs

 Running MakeLibrary is easy. There are four flags to be used on the command
 line: 
 
 '-F' MakeLibrary expects pq input from the file name supplied, 
 '-c' produce CAYLEY output, 
 '-g' produce GAP output, 
 '-h' add header files to the GAP output files based on supplied file name
      
 You MUST supply a flag.

 A sample invocation is:
       
     MakeLibrary -g -c -F pq_inputs/1generator

 On running MakeLibrary the directories 

     temp_lib_files_pq, gap_lib, cayley_lib

 will be created. If you have files of these names they will be overwritten.

 The temp_lib_files_pq directory is currently removed after use;
 you may wish to change MakeLibrary to retain it as it contains 
 the output of pq in 'pq_output' and other useful information. 

 The libraries created are stored in the directories cayley_lib and gap_lib.

 In the directory check_results, there are some files which can
 with modifications be used to carry out basic checks on the results.

 If you modify this code it is at your own risk. While it provides a 
 good deal of automation it is intended to be used by _experts_ and 
 things can go wrong if modifications are made. 
