GAP package GUAVA


The GUAVA homepage has moved to

new GUAVA homepage.

Please update your book marks accordingly.


Authors: Jasper Cramwinckel, Erik Roijackers, Reinald Baart, Eric Minkes, Lea Ruscio, Cen Tjhai, and David Joyner
Needs: GAP in version at least 4.4.5, requires the GAP package SONATA.
Operating systems: Any, on which GAP 4 is running. (Some functions involving the automorphism group of a code require a linux/unix system or (windows) cygwin installation.)
Current version: 2.7
Contact: wdj@usna.edu
Download: See below for archives in several formats.

Online Documentation

Here is the documentation of the GUAVA package in several output formats. If you have installed the package as described above you can also access all of these documents from the GAP online help.

Other GUAVA web pages

Description

GUAVA is a package that implements coding theory algorithms in GAP. Codes can be created and manipulated and information about codes can be calculated.

GUAVA consists of various files written in the GAP language, and an external program (which requires a linux/unix system) from J.S. Leon for dealing with automorphism groups of codes and isomorphism testing functions. Several algorithms that need the speed are integrated in the GAP kernel. Please send your bug reports to support.

An important data type in GAP is a ''record'', and the basic object in GUAVA is the ''code record''. A code record contains several components that give information about the code. Some of these components, like name, basefield and size, are mandatory. Other components, like minimumDistance, weightDistribution, coveringRadius and IsSelfDualCode, are created in the course of a session and contain knowledge about the code. The use of these code records has proven to be very versatile.

The functions within GUAVA can be divided into four categories:

History

GUAVA was originally written in the 1990's GAP 3 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, under the direction of Professor Juriaan Simonis. This work was continued in Aachen, at Lehrstuhl D fuer Mathematik. It appears version 1.1 was written around 1994 and 1.3 was around 1997. I don't know the date of the creation for 1.2.

In version 1.3 (still GAP 3), new functions were added by Eric Minkes, also from Delft University of Technology.

Version 1.4 (the first GAP 4 version) of GUAVA was created around 1998 by Lea Ruscio who maintained it through to version 1.5.

Versions of GUAVA since 1.6 have been maintained by David Joyner.

Version 1.8 contains new commands for toric codes. Version 2.0 was a significant upgrade, adding a number of new functions and a completely re-written manual. Starting with version 2.0, the GUAVA package was released under the GPL. Version 2.3 is a significant upgrade of version 2.0, adding a number of new functions. Starting with Versions 2.5/2.6, GUAVA was forked: the "odd versions" (e.g., 2.5, 2.7) include the code of J. S. Leon mentioned above (which is not licensed under the GPL). The "even versions" (e.g., 2.6, 2.8) are entirely GPL'd, but are otherwise are basically the same as the previous ``odd version'' (i.e., "2.8 = 2.7 - non-GPL'd code"). Starting with Versions 2.7/2.8, Cen Tjhai, a PhD student in the School of Computing, Communications & Electronics at the University of Plymouth, was added as an author. He completely updated the tables, which have not been updated since 1998, and added some new functions. See the latest CHANGES file for further details.

Installation

To install GUAVA, as a GAP 4 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 "Installing GAP Packages" 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:

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.

Hints for GUAVA installation outside the GAP main directory: When you don't have access to the directory of your main GAP installation you can also install the package by unpacking inside a directory MYGAPDIR/pkg. (Don't forget to call "gap" with the -l ";MYGAPDIR" option.) The only drawback with this installation is that in the HTML version of the package documentation the links to the main GAP manuals don't work.

GUAVA and SAGE

You can also install GUAVA using SAGE (which comes from GAP). Download SAGE and install it. This should be it. guava 2.6 should be loaded in SAGE. You can use GAP and GUAVA within the "GAP console" by starting SAGE and typing gap_console() at the "sage: " command prompt.

Loading GUAVA

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

gap> LoadPackage( "guava");
If GUAVA isn't already in memory, it is loaded and its beautiful banner is displayed.
 

   ____                          |
  /            \           /   --+--  Version 2.7
 /      |    | |\\        //|    |
|    _  |    | | \\      // |     J. Cramwinckel
|     \ |    | |--\\    //--|     E. Roijackers
 \     ||    | |   \\  //   |     R. Baart, E. Minkes,
  \___/  \___/ |    \\//    |     L. Ruscio, Cen Tjhai
                                  David Joyner

In fact, you can automate this by adding
LoadPackage("guava");
to your .gaprc file. However, if you wish to start GAP via a workspace with GUAVA 2.7 preloaded then you should type both LoadPackage("sonata"); and LoadPackage("guava"); before saving your workspace, since GUAVA 2.7 requires SONATA.

Package Archives for Download

The GUAVA package is available in the following formats:

These tarballs are all about 2M in size. Latest README file. Latest CHANGES file. Latest PackageInfo.g file.

David Joyner / Last modified: 8-12-2007