GAP - Groups, Algorithms, Programming

A System for Computational Discrete Algebra

Upcoming events

What is GAP?

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 here for details of the mathematical capabilities. The system, including source, is distributed freely. You can study and easily modify or extend it for your special use.

How to obtain GAP?

The current version is GAP 4.13.1 released on 11 June 2024 and it can be obtained from our install page. Changes from earlier versions are described in the Release history.

We are looking forward to hearing from you!

We welcome contributions to GAP. The GAP development repository is hosted on GitHub. You may find some guidance on contributing via GitHub here. If you have any questions, or suggestions for GAP, the repository, or documentation, feel free to contact us via the open GAP development mailing list or submit an issue or a pull request on GitHub. There is an extensive documentation advising how to write a GAP code. Also there is a guidance on developing a GAP package and its submission to GAP.

Acknowledgements

GAP has been and is developed by international cooperation of many people, including user contributions. We gratefully acknowledge all this help as well as some funding. GAP was started at Lehrstuhl D für Mathematik, RWTH Aachen in 1986. After 1997 the development of GAP was coordinated in St Andrews. Since March 2005, the GAP Centers in Aachen, Braunschweig, Fort Collins, and St Andrews took over coordination. They were joined by Kaiserslautern as fifth GAP center in 2020. Since July 2022, the GAP center in Kaiserslautern is coordinating the further development and maintenance of GAP.

In July 2008, GAP was awarded the ACM/SIGSAM Richard Dimick Jenks Memorial Prize for Excellence in Software Engineering applied to Computer Algebra.