GAP computer algebra system

From Wikipedia, the free encyclopedia

This article is about a software package. For other uses see Gap (disambiguation).

GAP (Groups, Algorithms and Programming) is a computer algebra system for computational discrete algebra with particular emphasis on, but not restricted to, computational group theory. GAP was developed at Lehrstuhl D für Mathematik (LDFM), RWTH Aachen, Germany from 1986 to 1997. After the retirement of J. Neubüser from the chair of LDFM, the development and maintenance of GAP was coordinated by the School of Mathematical and Computational Sciences at the University of St. Andrews, Scotland. In the summer of 2005 coordination was transferred to an equal partnership of 4 `GAP Centres', located at University of St. Andrews; RWTH Aachen; the Technische Universität Braunschweig; and Colorado State University at Fort Collins.

GAP and its sources, including packages (sets of user contributed programs), data library (including a list of small groups) and the manual, are distributed freely, subject to "copyleft" conditions. GAP runs on any Unix system, under Windows, and on Macintosh systems. The standard distribution requires about 300 MB (about 400 MB if all the packages are loaded). To run GAP 128 MB of RAM are sufficient.

The user contributed packages are an important feature of the system, adding a great deal of functionality. GAP offers package authors the opportunity to submit these packages for a process of peer review, hopefully improving the quality of the final packages, and providing recognition akin to an academic publication for their authors. As of August 2006 there are 58 packages distributed with GAP, of which approximately 35 have been through this process.

The current version is 4.4.8. GAP 3 (last release: 3.4.4) is still available but no longer supported.

An interface is available for using the SINGULAR computer algebra system from within GAP.

[edit] Sample session

gap> G:=SmallGroup(8,1); # Set G to be a group of order 8.
<pc group of size 8 with 3 generators>
gap> i:=IsomorphismPermGroup(G); # Find an isomorphism from G to a group of permutations
<action isomorphism>
gap> Image(i,G); # The image of G under I - these are the generators of im G.
Group([ (1,5,3,7,2,6,4,8), (1,3,2,4)(5,7,6,8), (1,2)(3,4)(5,6)(7,8) ])
gap> Elements(Image(i,G)); # All the elements of im G.
[ (), (1,2)(3,4)(5,6)(7,8), (1,3,2,4)(5,7,6,8), (1,4,2,3)(5,8,6,7), 
   (1,5,3,7,2,6,4,8), (1,6,3,8,2,5,4,7), (1,7,4,5,2,8,3,6), (1,8,4,6,2,7,3,5) ]

[edit] External links

In other languages