sagemath_gap: Computational Group Theory with GAP

This pip-installable distribution passagemath-gap is a small distribution that provides modules that depend on the GAP system.

What is included

  • Cython interface to libgap

  • Pexpect interface to GAP

  • numerous modules with build-time dependencies on GAP, see MANIFEST

  • the binary wheels on PyPI ship a prebuilt copy of GAP and at least the following GAP packages:

    • atlasrep: Interface to the Atlas of Group Representations

    • autodoc: Generate documentation from GAP source code

    • autpgrp: Computing the automorphism group of a p-group

    • cohomolo: Cohomology groups of finite groups on finite modules

    • corelg: Computing with real Lie algebras

    • crime: Group cohomology and Massey products

    • crisp: Computing with radicals, injectors, Schunck classes and projectors

    • crypting: Hashes and crypto

    • datastructures: Collection of standard data structures

    • design: Constructing, classifying, partitioning, and studying block designs

    • digraphs: Graphs, digraphs, and multidigraphs

    • factint: Advanced methods for factoring integers

    • fga: Free group algorithms

    • gapdoc: Meta package for GAP documentation

    • gbnp: Gröbner bases of noncommutative polynomials

    • genss: Generic Schreier-Sims

    • grape: GRaph Algorithms using PErmutation groups

    • guava: Computing with error-correcting codes

    • hecke: Calculating decomposition matrices of Hecke algebras

    • images: Minimal and canonical images

    • jupyterviz: Visualization Tools for Jupyter and the GAP REPL

    • io: Bindings for low level C library I/O routines

    • json: Reading and Writing JSON

    • laguna: Lie AlGebras and UNits of group Algebras

    • liealgdb: Database of Lie algebras

    • liepring: Database and algorithms for Lie p-rings

    • liering: Computing with finitely presented Lie rings

    • lins: Computing the normal subgroups of a finitely presented group

    • loops: Computing with quasigroups and loops

    • mapclass: Mapping class orbit computation

    • orb: Methods to enumerate orbits

    • packagemanager: Easily download and install GAP packages

    • primgrp: Primitive permutation groups library

    • quagroup: Computations with quantum groups

    • qpa: Quivers and path algebras

    • repsn: Constructing representations of finite groups

    • sla: Simple Lie algebras

    • smallgrp: The GAP Small Groups Library

    • sonata: System of nearrings and their applications

    • sophus: Computing in nilpotent Lie algebras

    • toric: Toric varieties and some combinatorial geometry computations

    • utils: Utility functions

    • uuid: RFC 4122 UUIDs

    • ZeroMQInterface: ZeroMQ bindings

  • the binary wheels on PyPI ship a prebuilt copy of the native Jupyter kernel for GAP

Examples

Running GAP from the command line:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-gap" sage -gap
 ┌───────┐   GAP 4.14.0 of 2024-12-05
 │  GAP  │   https://www.gap-system.org
 └───────┘   Architecture: x86_64-apple-darwin22-default64-kv9
 Configuration:  gmp 6.3.0, GASMAN, readline
 Loading the library and packages ...
 Packages:   GAPDoc 1.6.7, PrimGrp 3.4.4, SmallGrp 1.5.4, TransGrp 3.6.5
 Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap>

Using the library interface from Python:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-gap[test]" IPython

In [1]: from sage.all__sagemath_modules import *

In [2]: from sage.all__sagemath_gap import *

In [3]: G = libgap.eval("Group([(1,2,3), (1,2)(3,4), (1,7)])")

In [4]: CG = G.ConjugacyClasses()

In [5]: gamma = CG[2]

In [6]: g = gamma.Representative()

In [7]: CG; gamma; g
[ ()^G, (4,7)^G, (3,4,7)^G, (2,3)(4,7)^G, (2,3,4,7)^G, (1,2)(3,4,7)^G, (1,2,3,4,7)^G ]
(3,4,7)^G
(3,4,7)

Available as extras, from other distributions

Jupyter kernel spec

pip install "passagemath-gap[jupyterkernel]"

installs the kernel spec for use in the Jupyter notebook and JupyterLab

pip install "passagemath-gap[notebook]"

installs the kernel spec and the Jupyter notebook

pip install "passagemath-gap[jupyterlab]"

installs the kernel spec and JupyterLab

GAP packages

pip install "passagemath-gap[4ti2interface]"

installs 4ti2interface

pip install "passagemath-gap[aclib]"

installs aclib: Almost crystallographic groups

pip install "passagemath-gap[agt]"

installs agt

pip install "passagemath-gap[alnuth]"

installs alnuth: Algebraic number theory, interface to PARI/GP

pip install "passagemath-gap[caratinterface]"

installs caratinterface

pip install "passagemath-gap[corefreesub]"

installs corefreesub

pip install "passagemath-gap[cryst]"

installs cryst: Computing with crystallographic groups

pip install "passagemath-gap[crystcat]"

installs crystcat: Crystallographic groups catalog

pip install "passagemath-gap[ctbllib]"

installs ctbllib: The GAP Character Table Library

pip install "passagemath-gap[cubefree]"

installs cubefree

pip install "passagemath-gap[cddinterface]"

installs cddinterface

pip install "passagemath-gap[curlinterface]"

installs curlinterface

pip install "passagemath-gap[deepthought]"

installs deepthought

pip install "passagemath-gap[difsets]"

installs difsets

pip install "passagemath-gap[fr]"

installs fr

pip install "passagemath-gap[fwtree]"

installs fwtree

pip install "passagemath-gap[grpconst]"

installs grpconst

pip install "passagemath-gap[guarana]"

installs guarana

pip install "passagemath-gap[hap]"

installs hap: Homological algebra programming

pip install "passagemath-gap[hapcryst]"

installs hapcryst: HAP extension for crystallographic groups

pip install "passagemath-gap[help]"

installs help

pip install "passagemath-gap[irredsol]"

installs irredsol: Library of irreducible soluble linear groups over finite fields and of finite primivite soluble groups

pip install "passagemath-gap[lpres]"

installs lpres

pip install "passagemath-gap[modisom]"

installs modisom

pip install "passagemath-gap[nilmat]"

installs nilmat

pip install "passagemath-gap[nq]"

installs nq: Nilpotent quotients of finitely presented groups

pip install "passagemath-gap[numericalsgps]"

installs numericalsgps

pip install "passagemath-gap[polenta]"

installs polenta: Polycyclic presentations for matrix groups

pip install "passagemath-gap[polycyclic]"

installs polycyclic: Computation with polycyclic groups

pip install "passagemath-gap[polymaking]"

installs polymaking: Interfacing the geometry software polymake

pip install "passagemath-gap[radiroot]"

installs radiroot: Roots of a polynomial as radicals

pip install "passagemath-gap[rcwa]"

installs rcwa

pip install "passagemath-gap[resclasses]"

installs resclasses: Set-theoretic computations with residue classes

pip install "passagemath-gap[semigroups]"

installs semigroups

pip install "passagemath-gap[sglppow]"

installs sglppow

pip install "passagemath-gap[simpcomp]"

installs simpcomp

pip install "passagemath-gap[singular]"

installs singular: Interface to Singular

pip install "passagemath-gap[smallsemi]"

installs smallsemi

pip install "passagemath-gap[sonata]"

installs sonata

pip install "passagemath-gap[symbcompcc]"

installs symbcompcc

pip install "passagemath-gap[tomllib]"

installs tomlib: The GAP Library of Tables of Marks

pip install "passagemath-gap[transgrp]"

installs transgrp: Transitive Groups Library

pip install "passagemath-gap[xmod]"

installs xmod

pip install "passagemath-gap[unitlib]"

installs unitlib

pip install "passagemath-gap[yangbaxter]"

installs yangbaxter

Collections

pip install "passagemath-gap[standard]"

installs all GAP packages present in a standard installation of Sage and their dependencies

pip install "passagemath-gap[full]"

installs the full set of GAP packages shipped by the GAP distribution and their dependencies

Type

standard

Dependencies

Version Information

package-version.txt:

10.6.29

version_requirements.txt:

passagemath-gap ~= 10.6.29.0

Installation commands

$ pip install passagemath-gap~=10.6.29.0
$ sage -i sagemath_gap

However, these system packages will not be used for building Sage because spkg-configure.m4 has not been written for this package; see upstream Issue #27330 for more information.