Basic Capabilities
GAP provides many ways of forming …
- lists (mutable and immutable), which also covers sets, row vectors, matrices, strings, and Boolean lists,
- records,
- domains, i. e., objects representing sets with an algebraic structure.
Notions and tools modeled in some analogy to elementary set theory help to handle these:
- distinction of objects and elements,
- Booleans,
- orderings,
- mappings (in particular mappings respecting structures which again can be elements of structures),
- relations.
GAP can compute with
- arbitrary integers,
- rational numbers,
- cyclotomic numbers, in particular Gaussian numbers,
- elements of finite fields (see also the coding theory package GUAVA),
- p-adic numbers,
- polynomials, including multivariate polynomials (GAP contains only a basic implementation of Buchberger’s algorithm for computing Gröbner bases, for more serious computations the package singular provides an interface to the extensive capabilities of the system SINGULAR),
- rational functions as well as
- various kinds of group elements, e. g. permutations, matrices, and abstract words.
One can work with many algebraic structures. In addition to those listed under Mathematical Capabilities, there are e. g.
- finite fields,
- residue class rings of integers (see also the package ResClasses),
- abelian number fields,
- lattices and integral matrices.
Also there are
- various combinatorial functions,
- functions for elementary number theory as well as
- functions for prime number factorization (see also the package FactInt).