GAP package GUAVA

Authors: Jasper Cramwinckel, Erik Roijackers, Reinald Baart, Eric Minkes, Lea Ruscio, Robert Miller, Tom Boothby, Joe Fields (maintainer), Cen Tjhai, David Joyner
Needs: GAP in version at least 4.5.2, and suggests also installing the GAP package SONATA.
Operating systems: Any, on which GAP 4 is running.
Current version: 3.14
Download: See below for archives in several formats. Also, GUAVA is now on GitHub:

Online Documentation

Here is the documentation of the GUAVA package in several output formats. You should also be able to access these documents from the GAP online help.

Browse the code: on GitHub.


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 from J. S. Leon for dealing with automorphism groups of codes and isomorphism testing functions (for the manual to his program, click here for the pdf). Several algorithms that need the speed are integrated in the GAP kernel. Please send your bug reports to support.

The functions within GUAVA can be divided into four categories:


As of 3.10, Joe Fields is the lead maintainer.

See the latest CHANGES.guava file for recent information. The file HISTORY.guava contains further details.


The easiest way to begin experimenting with GUAVA is to use it via the SageMathCloud (SMC). One can sign up for a free SMC account or pay a small amount for a subscription (which allows for premium access). Within a SMC project one can create a sage worksheet and set its default language to GAP. Then load GUAVA (see below) and try out its features.

SMC screen shot


A fresh install of GAP will include GUAVA by default. The directions in the next paragraph only apply to those who find themselves in the unusual situation of not having the default GUAVA installation. In the majority of cases you can skip to the following paragraph.

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 and code equivalences) are now available in a Window, MacOS and UNIX environments. For Windows machines, separate instructions are available here. For UNIX and MacOS 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.

Loading GUAVA

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

gap> LoadPackage( "guava" );

In fact, you can automate this by adding

to your gaprc file. However, if you wish to start GAP via a workspace with GUAVA preloaded then you should type both LoadPackage("sonata"); and LoadPackage("guava"); before saving your workspace, since one command in GUAVA (versions 3.8 and higher) requires SONATA.

Other GUAVA web pages

Package Archives for Download

The GUAVA package is available in the following formats:

Previous versions are also archived here. Older versions are available upon request.

These tarballs are all about 2-3M in size.

Latest README file.
Latest CHANGES file.
Latest PackageInfo.g file.

Joe Fields / Last modified: 2016-2-04