The ACE package The ACE package provides functions associated with Todd-Coxeter coset enumeration by interfacing with the Advanced Coset Enumerator (ACE), ACE coset enumerator (C) 1995-2001 by George Havas and Colin Ramsay http://www.itee.uq.edu.au/~cram/ce.html from within GAP 4. The GAP interface (package) has been written by Alexander Hulpke and Greg Gamble. In order to install the ACE package you must get the archive file `ace-XXX.zoo', for some version number `XXX', (which includes the C source code of Havas and Ramsay). The current version of the ACE package is 5.0 (which interfaces with version 3.001 of the ACE C program of Havas and Ramsay). The ACE package provides a mechanism to replace GAP's usual Todd-Coxeter coset enumerator by ACE, so that functions that behind the scenes use coset enumeration will use the ACE enumerator. The ACE enumerator may also be used explicitly; both non-interactively and interactively. However the package is used, a plethora of options and strategies are available to assist the user in avoiding incomplete coset enumerations. The interactive functions provided use the IOStream functionality first introduced in GAP 4.2; however, the current version requires at least GAP 4.4. Version 5.0 of ACE removes all deprecated code, particularly with respect to the package loading mechanism. It is not backward-compatible with pre-4.4 versions of GAP. If you are still using GAP 4.3, you must continues to use the previous version (4.1) of ACE. You can download `ace-XXX.zoo' (where `XXX' is the package version number) from the home page for the ACE package http://www.math.rwth-aachen.de/~Greg.Gamble/ACE/ (Germany) or the Australian mirrors http://www.maths.uwa.edu.au/~gregg/ACE/ (Perth, Australia) http://www.itee.uq.edu.au/~gregg/ACE/ (Queensland, Australia) or via the Packages links from the GAP sites http://www.gap-system.org/ (UK) http://www.math.rwth-aachen.de/~GAP/ (Germany) or the GAP ftp servers ftp://ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/zoo/packages/ ftp://ftp.math.rwth-aachen.de/pub/gap4/zoo/packages/ If you prefer tar.gz or tar.bz2 to zoo archives, substitute tar.gz or tar.bz2 (as appropriate) for zoo in the above paths. Since the ACE package interfaces to an external binary, it is only usable under UNIX or a UNIX-like environment. It will not work on Windows or a pre-MacOSX Macintosh. Installing the ACE package To install the ACE package, move the file `ace-XXX.zoo' into the `pkg' directory in which you plan to install ACE. Usually, this will be the directory `pkg' in the hierarchy of your version of GAP 4. (However, it is also possible to keep an additional `pkg' directory in your private directories, see section "ref:Installing GAP Packages" of the GAP 4 reference manual for details on how to do this.) Then unzoo `ace-XXX.zoo' by unzoo -x ace-XXX Go to the newly created `ace' directory and call `configure <path>' where <path> is the path to the GAP home directory. So for example if you install the package in the main `pkg' directory call ./configure ../.. This will fetch the architecture type for which GAP has been compiled last and create a `Makefile'. Now simply call make to compile the binary and to install it in the appropriate place. Note that the current version of the configuration process only sets up directory paths. If you need a different compiler or different compiler options, you need to edit `src/Makefile.in' prior to calling `make' yourself. If you use this installation of GAP on different hardware platforms you will have to compile the binary for each platform separately. This is done by calling `configure' and `make' for the package anew immediately after compiling GAP itself for the respective architecture. If your version of GAP is already compiled (and has last been compiled on the same architecture) you do not need to compile GAP again, it is sufficient to call the `configure' script in the GAP home directory. That's it. Now start GAP and type LoadPackage("ace"); The ACE banner should appear on the screen. For details on how to use the ACE package see the package documentation in the `doc' subdirectory (view either `manual.dvi' via `xdvi' or `manual.ps' via `ghostview' or `manual.pdf' via a PDF viewer), which gives information on how to use ACE from within GAP. The ACE user manual (`ace3001.ps' or `ace3001.pdf') in the `standalone-doc' directory, explains how to use the ACE binary (i.e. the C program that is interfaced with by the package from within GAP) as a stand-alone. The `src' subdirectory contains a copy of the C source code for ACE. The only modification are those listed in src/CHANGES. In particular, the file `src/Makefile.in' from which `src/Makefile' is generated has been added, and the following bug was fixed on 25 February, 2001. A bug was discovered in ACE 3.000 on 22 December, 2000 that was particularly manifested by the Linux gcc compilers listed below. The bug was reported with fix by Volker Gebhardt (thanks!) and caused a segmentation fault when ACE output coset representatives. The fix is incorporated in ACE 3.001 which we now use. ACE has been compiled successfully with the following C compilers: compiler platform comments -------- -------- -------- gcc 2.7.2.1 Linux gcc 2.7.2.3 Linux gcc 2.8.1 Solaris 2.51/IRIX 6.5 cc MIPSpro 7.2.1 IRIX 6.5 cc MIPSpro 7.3.1.1m IRIX 6.5 (compiled with -64 = 64bit) gcc 2.91.66 19990314 Linux (egcs 1.1.2 release) gcc 2.95.2 19990906 Linux (prerelease) gcc 2.95.2 19991024 Solaris 2.51, 2.8 (release) gcc 2.95.2 20000220 Linux (release) gcc 2.95.3 20010315 Linux (release) gcc 2.95.4 20011002 Linux (Debian prerelease) gcc 2.96 20000731 Red Hat Linux 7.2 (2.96-112.7.2) gcc 3.2 20020903 Red Hat Linux 8.0 (3.2-7) (Since April 1999, egcs has been the official Gnu cc supplier. This is why the numbering now follows egcs' numbering.) If you encounter problems with the ACE binary, please contact one of the C code authors: George Havas <havas@itee.uq.edu.au> or Colin Ramsay <cram@itee.uq.edu.au>. If you encounter problems at the GAP level, please contact one of the ACE package authors: Greg Gamble <gregg@itee.uq.edu.au> or Alexander Hulpke <hulpke@math.colostate.edu>. When sending a bug report, remember we will need to be able to reproduce the problem; so please include: * The version of GAP you are using; either look at the header when you start up GAP, or at the gap> prompt type: VERSION; * The operating system you are using e.g. Linux, SunOS 5.8 = Solaris 2.8, IRIX 6.5, ... * The compiler you used to compile ACE and the options you used. Type: gcc -v or: cc -version, and look in src/Makefile for the value of CC to find out. * A script, either in GAP or standalone ACE, that demonstrates the bug, along with a description of why it's a bug (e.g. by adding comments to the script - recall, comments, both in GAP or standalone ACE, begin with a #). - Greg Gamble Centre for Discrete Mathematics and Computing, Department of Information Technology and Electrical Engineering, The University of Queensland, Brisbane, Queensland, 4072 Australia e-mail: gregg@itee.uq.edu.au www: http://www.itee.uq.edu.au/~gregg -- 30 April, 2002; 22 December, 2003; 26 January, 2006.