%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%A  intro.tex                  GUAVA documentation              Reinald Baart
%A                                                       & Jasper Cramwinckel
%A                                                          & Erik Roijackers
%
%
%Y  Copyright (C)  1995,  Vakgroep Algemene Wiskunde,  T.U. Delft,  Nederland
%
\Chapter{About GUAVA}

\index{guava}
{\GUAVA} is a {\GAP}~4 share package for computing with codes. Except for
the automorphism group and isomorphism testing functions, which make  use
of J.S.~Leon's partition backtrack programs, {\GUAVA} is written  in  the
{\GAP} language. Several algorithms that need the speed  were  integrated
in the {\GAP} kernel. Please send your bug reports to the email  address:
\Mailto{gap-trouble@dcs.st-and.ac.uk}

{\GUAVA} is  primarily  designed for   the  construction and analysis  of
codes.  The functions can be divided into three subcategories:

\beginitems

*Construction of codes*:&
{\GUAVA}    can    construct    *unrestricted*,    *linear*  and  *cyclic
codes*. Information about  the code is stored in  a record, together with
operations applicable to the code.

*Manipulations of codes*:&
Manipulation transforms  one code into  another, or constructs a new code
from two  codes. The new code can  profit from the  data in the record of
the old code(s), so in these cases calculation time decreases.

*Computations of information about codes*:&
{\GUAVA} can calculate important data of codes very fast. The results are
stored in the code record.

\enditems

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Acknowledgements}

{\GUAVA} was written by Jasper Cramwinckel, Erik Roijackers, and Reinald
Baart.  as a final project during their study of Mathematics at the Delft
University of  Technology, department of Pure Mathematics,  and in Aachen,
at Lehrstuhl D fuer Mathematik.

In version~1.3, new functions were added by Eric Minkes, also from Delft
University of Technology.

JC,ER and RB would like to  thank the {\GAP} people at  the  RWTH Aachen for
their support, A.E.~Brouwer for his advice and J.~Simonis for his
supervision.

The {\GAP}~4 version of {\GUAVA} was created by Lea Ruscio and is maintained
by David Joyner.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Installing GUAVA}

To install {\GUAVA} (as a {\GAP}4 Share Package) unpack the archive  file
in a directory in the `pkg' hierarchy of your version of  {\GAP}4.  (This
might be the `pkg' directory of the {\GAP}4 home directory; it is however
also possible to keep an  additional  `pkg'  directory  in  your  private
directories, see section "ref:Installing a Share  Package  in  your  home
directory" of the {\GAP}4 reference manual  for  details  on  how  to  do
this.)

After unpacking {\GUAVA} the {\GAP}-only part of {\GUAVA}  is  installed.
The parts of {\GUAVA} depending on J.~Leon's backtrack  programs  package
(for  computing  automorphism  groups)  are  only  available  in  a  UNIX
environment, where you should proceed as follows:

Go to the newly created `guava' 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

\begintt
./configure ../..
\endtt

This will fetch the architecture type for which {\GAP} has been  compiled
last and create a `Makefile'. Now call

\begintt
make
\endtt

to compile the binary and to install it in the appropriate place.

This completes the installation of {\GUAVA} for a single architecture. If
you use this installation of {\GUAVA} 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.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Loading GUAVA}

After starting up {\GAP}, the  {\GUAVA} package needs  to be loaded. Load
{\GUAVA} by typing at the {\GAP} prompt:

\beginexample
gap> RequirePackage( "guava" );
\endexample

If {\GUAVA} isn't  already  in memory,  it is  loaded and its  beautiful
banner is displayed.

If you  are a frequent user of  {\GUAVA}, you might consider putting this
line in your `.gaprc' file.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%E

