Main Branches

Downloads  Installation  Overview  Data Libraries  Packages  Documentation  Contacts  FAQ  GAP 3 

Undeposited Implementations for GAP

On this page we collect references to algorithms that have been implemented in GAP in the course of research projects. This collection ranges from undeposited packages (which may or may not eventually appear among deposited packages) to rather special purpose implementations whose authors preferred not to invest the extra effort necessary to turn them into packages. Some of these programs were developed a while ago and are not guaranteed to work with the latest version of GAP.

If you are interested in some of these implementations, and no links to the downloads or descriptions are given, then please contact the authors directly.

Undeposited GAP 4 packages

Other undeposited implementations for GAP 4

  • Anton Betten: An Interface GAP - DISCRETA
    This is an interface to the stand-alone program DISCRETA for the construction of t-designs with prescribed automorphism group by A. Betten, E. Haberberger, R. Laue, and A. Wassermann.
    Though not written in GAP, A. Betten is also affiliated with an online coding theory program and an online representation theory program.

  • Arjeh Cohen and Scott Murray: An automated proof theory approach to computation with permutation groups
    A file with a collection of GAP functions is given connected with the paper An automated proof theory approach to computation with permutation groups, used at the Calculemus Autumn School, September-October 2002 in Pisa.

  • Septimiu Crivei, Gabriela Olteanu and Stefan Suteu Szollosi: Subgroup Lattice Algorithms Related to Extending and Lifting Abelian Groups - a collection of GAP functions
    We give functions, on one hand to check the properties of being direct summand, essential, superfluous, coessential, complement (closed), supplement (coclosed) subgroup, and on the other hand to determine all subgroups with the mentioned properties as well as closures (coclosures) of a subgroup of a finite abelian group.

  • Jan Draisma: Weyl algebra and realisation of Lie algebras by means of derivations
    Links to two GAP functions can be found on the author's website:
    1. A function WeylAlgebra constructing the (associative) Weyl algebra (also known as skew polynomial algebra) in the variables x_1,...,x_n,D_1,...,D_n.
    2. A function Blattner, using WeylAlgebra, that computes, given a pair (g,h) of a Lie algebra g and a subalgebra h, a (truncated) realisation of g in terms of formal vector fields for which h is the isotropy algebra at 0. Also, it can be used to compute certain realisations by 1st order differential operators.

  • Jan Draisma: SeDiMO, a program for computing the secant dimensions of minimal orbits such as Grassmannians and Segre products
    Description: A semisimple complex algebraic group G has a unique closed orbit on the projective space PV, if V is an irreducible G-module. Many interesting algebraic varieties arise as such "minimal orbits", for instance, Grassmannians and Segre products. These minimal orbits are notoriously hard to prove non-defective in the sense that all higher secant varieties have the expected dimension. This program (that can be found on the author's website) computes the secant dimensions of these minimal orbits.

  • Bettina Eick: Enumeration of p-Groups
    This algorithm can be used to enumerate all p-groups of a given order (up to isomorphism). The basic ideas of the algorithm are similar to the p-group generation algorithm (see the
    ANUPQ Package). But instead of listing all p-groups of a given order explicitly, this algorithm only counts the number of such p-groups and counting is usually faster than listing. This algorithm has been used in the determination of the number of groups of order 2^9 and 2^10.
    Available: Readme file , tarball for EnumPGrp.

  • Bettina Eick: Computing uniserial p-adic space groups
    This algorithm can be used to determine all unserial p-adic space groups of a given dimension up to isomorphism (p an odd prime). The uniserial p-adic space groups of coclass at most r and their finite central extensions correspond to the infinite branches in the graph of all finite p-groups of coclass r. This algorithm has been used to determine all uniserial 3-adic space groups of coclass at most 4.

  • Alexander Hulpke: Constructing transitive permutation groups (Paper to appear in J.Symb. Comp.)
    This algorithm constructs all subgroups of the symmetric group of degree n, assuming knowledge of the primitive groups of degree n and the transitive groups of all degrees dividing n. It has been used to construct the libraries of transitive groups found in GAP. Running it for larger degrees is possible in principle but might take very long or might run out of memory.

  • Ivan Tischenko: PLANAR - testing graphs for planarity
    PLANAR is the program for the computational algebra system GAP. Its main purpose is testing whether the given graph is planar. PLANAR also requires the GAP package GRAPE, since it uses some of its functionality for graphs. In particular, note that you can check whether the graph is connected using the GRAPE function IsConnectedGraph. Also the graph must be non-oriented, without loops and multiple edges. Note that these features of graph do not imply on its planarity, so you can easily reduce the problem to the graph, understandable by PLANAR. Download formats: zip file and tarball. PLANAR is released under the GNU General Public License (GPL).

  • Peter Webb: Nerves of categories
    A collection of routines to handle representations and cohomology, of groups and more generally of categories. The code computes the (co)homology of nerves of categories. Regarding a group as a category, we obtain the usual group cohomology, but the routines presented here are not efficient for this. Regarding a poset as a category we get the homology of the order complex. Every simplicial complex may be given up to homeomorphism in this fashion.

  • Peter Webb: Software to compute with finite group representations over fields of positive characteristic
    In these routines the information about a group representation which is stored is the group being represented, and a list of matrices which give the action of the group generators. The routines allow the user to compute submodule structure and perform various operations. The main computational philosophy is to take fixed points, thereby computing homomorphisms between modules, socles, radicals, etc. This is arguably distinct from the philosophy behind the meataxe, for example. Thus in the case of representations of p-groups in characteristic p there may be very many submodules of a module which would be time consuming for the meataxe to enumerate. The approach taken here produces socle and radical series more directly (and not just for p-groups).

  • Alun Williams: MAF (Monoid Automata Factory)
    MAF is a reworking of KBMAG program in C++. It is a package and C++ library for computing automatic structures and confluent rewriting system for group and coset rewriting systems, and for computing with finite state automata.
    It is primarily a reworking of the KBMAG program, rather than the KBMAG package itself, but it is stated to be usable with the KBMAG package as a kind of a drop-in replacement of its binaries.

  • Assaf Wool: Fundamental Domains for Shimura Curves
    A set of GAP functions that compute a concrete presentation of the unit group in a maximal order of Quaternion algebras over the Rationals, and the fundamental domain of the associated Shimura curve. The README file contains a description of the algorithms used, and the program structure - functions, input and output. The Grp100 file contains a summary of the results for discriminants up to 100.

Undeposited implementations for GAP 3

  • David Bessis and Jean Michel: The GAP3 package VKCURVE
    VKCURVE is an effective implementation of Van Kampen's method for computing presentations of fundamental groups of complements of complex algebraic curves. In addition to GAP3 it depends on the GAP 3 Package "chevie".
(For GAP 3 deposited contributions, see here).

External programs and interface routines

Some optional interfaces to GAP are listed below for the user's information. However, they are not officially supported by the GAP suport team and may not work on all operating systems.
  • GGAP: For a GUI version of GAP, check out GGAP written by Yevgen Muntyan: Thanks to Alexander Hulpke, there is an installer for GAP 4.4.12 and GGAP (Windows and OS X) at
  • Sage: The Sage notebook interface provides a GUI for GAP. If you are running the notebook remotely (e.g., on then select GAP from the drop-down menu near the top of the browser's page for a worksheet. If you are running the sage notebook locally, type
    sage: notebook("gap",open_viewer=True,system="gap")
    This does three things:
    1. puts the banner "gap" on your worksheet (it does not save or name your worksheet "gap" though),
    2. opens firefox (or a new tab if firefox is already running) and starts a sage notebook interface running there,
    3. makes every input box "gap command only".
    For more information on the Sage notebook or the Sage interface with GAP, please see the Sage Reference Manual.
  • Written by Russ Woodroofe, this is an alternative to XGAP and only works on Macs. (It has not been tested with Mac OS X 10.7, nor with GAP 4.5.) See This program was called cocoaGAP, but the name was changed to avoid confusion with the computer algebra system Cocoa.