|
|
GAP
System Name: GAP -- Groups, Algorithms, Programming
Contact:
Name: The GAP Group
Address: School of Mathematical and Computational Sciences
University of St Andrews
North Haugh
St Andrews
Fife
KY16 9SS
Scotland
Email: gap-enquiry@dcs.st-and.ac.uk
Description: GAP is a system for computational discrete algebra with
particular emphasis on computational group theory. GAP and its sources,
including share packages, data library and the manual, are distributed
freely, subject to "copyleft" conditions.
GAP runs on any Unix system (in particular Linux), under Windows 9x/NT,
and on Macintosh systems. It requires a minimum of 20 MB disk space; the
full distribution (including all share packages and extensive data
library) takes about 180 MB. GAP itself needs a minimum of 20 MB of main
memory to run; 64 MB (including operating system) permits decent usage,
and for most practical purposes 128 MB total is sufficient.
GAP 4 supersedes the older version GAP 3.4.4, which is still available (a
few share packages have not yet been translated and only run under the
older version). GAP 4 provides much new functionality and is the version
that will be developed further.
More details about the system, the software itself, and instructions for
obtaining and installing it can be found at the main GAP web site
http://www-gap.dcs.st-and.ac.uk/~gap .
GAP consists of a kernel (a C program), a library of functions (GAP
programs), data libraries and the documentation. A number of
user-contributed share packages are also distributed with it.
The kernel implements the GAP programming language and an interactive
environment for developing and using GAP programs. A compiler is
available to produce human-readable C code which can be compiled and
loaded dynamically (UNIX only) or compiled into a new kernel. The kernel also
supports debugging of GAP programs and gives on-line access to the reference
manual (consisting of over 1000 pages), which is also provided as an HTML
document for browsing and in printable form.
The library contains over 300,000 lines of GAP code, providing thousands
of functions that implement a variety of algebraic algorithms. Built-in
library functions can be used interactively or incorporated into
user-written GAP programs. Users can examine the open source library
programs to find out how they work and to use them as examples for their
own programming.
A growing collection of user-contributed "share" packages includes some
written in the GAP language and others that use external C programs. All
packages can be called directly from GAP as if they were part of the
library.
Groups in GAP can be given in various forms, for example as permutation
or matrix groups, as finitely presented groups or as polycyclicly presented
groups. GAP knows how to construct a number of types of well-known groups
such as symmetric and classical groups. Library functions for the
investigation of groups can compute orders, conjugacy classes of
elements, derived series, composition series (including identification of
the composition factors), Sylow subgroups, certain characteristic
subgroups, maximal subgroups, normal subgroups, subgroup lattices,
automorphism groups, cohomology groups and much more.
Representations over fields of characteristic 0 are mainly investigated
via their characters. Modular representations can be studied via Brauer
characters or by matrix calculations using MEATAXE methods, vector
enumeration and condensation techniques. The share package CHEVIE allows
one to work with generic characters of groups of Lie type and with Hecke
algebras. GAP also contains functions for the creation and manipulation of
tables of marks, which give information about the subgroup lattice of a group.
GAP and its share packages also permit working with long integer and
rational arithmetic, cyclotomic fields, finite fields, residue class
rings, p-adic numbers, permutations, polynomials (multivariate
polynomials and rational functions), vectors and matrices, various
combinatorial functions, elementary number theory and a wide variety of
list operations. Input/output streams allow interfacing to other
software.
Vector spaces over all available fields and modules over all available
rings can be defined, and there are algorithms for the efficient
calculation of Hermite and Smith normal forms. Associative and Lie
algebras can be given by structure constants, by generating matrices or
by finite presentations. There are routines for computing the structure
of finite dimensional Lie algebras.
The package GRAPE allows one to classify certain graphs and designs, to
determine the invariants of graphs and to calculate their automorphism
groups. The package GUAVA deals with linear codes. Other share packages
contain functions to work with crystallographic groups, semigroups, near
rings, crossed modules and cat-1 groups. The X-terminal graphical user
interface XGAP permits the display of full or partial subgroup lattices.
Some examples of the use of GAP and a partial bibliography of work
involving GAP can be found at
http://www-gap.dc s.st-and.ac.uk/~gap/Info/examples.html.
The GAP data library includes a number of databases with GAP language
interfaces that let the user search and study them efficiently. It
currently includes libraries of primitive permutation groups, transitive
groups, all groups of order up to 2,000 (excluding 1,024), perfect groups up
to order 1,000,000 (with some specified omissions), solvable irreducible
matrix groups on GF(p) vector spaces up to order 255, space groups up to
dimension 6 (via a link to CARAT), maximal finite irreducible subgroups
of GL_n(Z), ordinary character tables, including all of those in the
ATLAS of Finite Groups, and modular character tables, including all of
those in the ATLAS of Brauer Characters
The GAP community is an international enterprise in which people
interested in computational group theory and related topics cooperate.
Its further development depends in part upon user contributions. A GAP
Council of experts in various areas of computational group theory has
been established which not only advises the further development of GAP,
but acts as an editorial board to referee and formally acknowledge
acceptance of contributions to GAP. The GAP web site contains a great
deal of information about GAP itself and the people behind it.
|