GAP is a system for computational discrete algebra, with particular emphasis on Computational Group Theory. GAP provides a programming language, a library of thousands of functions implementing algebraic algorithms written in the GAP language as well as large data libraries of algebraic objects. See also the overview and the description of the mathematical capabilities.
GAP is used in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. The system, including source, is distributed freely. You can study and easily modify or extend it for your special use.
In July 2008, GAP was awarded the ACM/SIGSAM Richard Dimick Jenks Memorial Prize for Excellence in Software Engineering applied to Computer Algebra.
The latest stable release of the GAP system together with all currently redistributed GAP packages can be obtained from our downloads page. For installation instructions see here.
You can compile the current development version of GAP from this repository by the following two commands
# ./configure
# make
If everything goes well, you should be able to start GAP by executing
# sh bin/gap.sh
Note that this repository does not contain the pkg
subdirectory for GAP packages, so
you will have to create it manually and install the
GAPDoc package there
to be able to start GAP). If you're interested in trying the GAP development version with
more packages, you may install them in addition or perhaps put into the pkg
directory
symlinks pointing to their locations in your installation of the latest stable GAP release.
You may also find development versions of some of the GAP packages
on GitHub and Bitbucket.
The GAP Project welcomes contributions from everyone, in the shape of code, documentation, blog posts, or other. For contributions to this repository, please read the guidelines.
To keep up to date on GAP news (discussion of problems, release announcements, bug fixes), you can subscribe to the GAP forum and GAP development mailing lists, notifications on github, and follow us on Twitter.
If you have any questions about working with GAP, you can ask them on GAP forum (requires subscription) or GAP Support mailing lists.
Please tell us about your use of GAP in research or teaching. We maintain a bibliography of publications citing GAP. Please help us keeping it up to date.