# SageMath external packages

A list of external packages for SageMath (spkg, pip-installable packages, etc).

- Feel free to add more packages, links, notes. But please do not duplicate information that is already available in the spkg section of the Sage reference manual.
- Meta-ticket #31164 tracks the task of adding packages from this list to Sage so that they appear in the spkg section of the Sage reference manual.
- Use this list to add examples to the Code Sharing Workflow wiki page.
- Note also Chris Swierczewski's Creating External Sage Packages.
- With the SageMath sample package you will find a minimal example of a Sage package.
- See an April 2020 sage-devel thread on CI infrastructure options for external Sage packages.
- See Sage Trac: Surveying the mathematical software landscape

### New-style SPKGs

The single authoritative source for the packages integrated in the Sage distribution (SPKGs) is the SAGE_ROOT/build/pkgs/ directory. Each SPKG is represented by a subdirectory. The structure of these subdirectories is explained in the Developer's Guide.

Since Sage 9.2, the spkg section of the Sage reference manual is automatically generated from the information in `SAGE_ROOT/build/pkgs/`. (Trac #29655 improves the formatting of this information.)

Use the following shell commands below to access the information from the SAGE_ROOT/build/pkgs directory of your copy of Sage:

- Standard packages:
./sage -standard- Installed packages:
./sage -installed- Optional packages available:
./sage -optional- Experimental packages available:
./sage -experimental- Details about an SPKG:
./sage -info <SPKG>

For some advanced package tools, use `./sage -package`

### List of external packages

These packages are not (yet?) integrated in the SageMath distribution as SPKGs and have to be installed separately.

See also https://github.com/slel/external-packages for another collection

#### Modular Abelian Varieties

by William Stein and Hao Chen

Links:

#### Python implementation of chebfun

by Chris Swierczewski

#### Purple Sage

by William Stein, Fredrik Stromberg, Stephan Ehlen, Martin Raum and others

A Library of Number Theory Code that depends on Sage.

#### Sébastien Labbé's research code

by Sébastien Labbé

See also this blog post

(added to Sage in https://trac.sagemath.org/ticket/31237)

#### CHA

by Nicolas Borie

A Sage Library of Combinatorial Hopf algebras.

#### Sage-semigroups

by Nicolas M. Thiéry

A semigroup (representation) theory library for SageMath.

(very preliminary!!!)

#### Automata and semigroups

by Charles Paperman

#### ss-isogeny-software

by Luca De Feo

keywords: isogeny elliptic curve cryptography quantum

#### Abel Functions

by Chris Swierczewski

Discussion at https://groups.google.com/d/msg/sage-devel/29ndCD8z94k/K6H2OK5TAgAJ

#### Schottky uniformization

by Jeremy Upsal

Various ideas from Schottky uniformization are implemented in Sage. These now include the SK prime function and will later include the Riemann Theta function built from a RS via Schottky uniformization due to Darren Crowdy.

#### surface-dynamics: flat surfaces

by Vincent Delecroix and Samuel Lelièvre

(added to Sage in https://trac.sagemath.org/ticket/31224)

#### sage-flatsurf: flat surfaces

by Vincent Delecroix and Pat Hooper

(added to Sage in https://trac.sagemath.org/ticket/31240)

#### Lyapunov exponents for multidimensional continued fractions

by Vincent Delecroix and Sébastien Labbé

Links:

#### Sage train track

by Thierry Coulbois

- does not work on latest versions of SageMath, see https://github.com/coulbois/sage-train-track/pull/15
- ticket to add to Sage: https://trac.sagemath.org/ticket/31223

#### Flagmatic

by Emil R. Vaughan

A tool for researchers in extremal graph theory

(it is a subject of a GSoC 2016 project to port it to Sage 7.4)

#### Chow

by Christoph Sorger and Manfred Lehn

A Sage library for computations in intersection theory.

#### Carleman linearization of polynomial differential equations

by Marcelo Forets

#### ore_algebra

by Manuel Kauers et al.

A Sage implementation of Ore algebras and Ore polynomials.

(added to Sage in https://trac.sagemath.org/ticket/31239)

#### ecfactory

The library implements algorithms to construct elliptic curves with certain desired properties.

#### cryptosage

by Sara Forouhar

CryptoSage provides cryptography algorithms in SageMath.

#### cutgeneratingfunctionology (formerly infinite-group-relaxation-sage-code)

by Matthias Köppe, Yuan Zhou, C. Y. Hong, and Jiawei Wang

Python code for computation and experimentation with cut-generating functions, in particular the Gomory-Johnson model

(added to Sage in https://trac.sagemath.org/ticket/31235)

#### multipolynomial-bases

by Viviane Pons

A Sage package to work on multipolynomials bases (Schubert, Grothendieck, Key).

(added to Sage in https://trac.sagemath.org/ticket/31416)

#### Zeta

by Tobias Rossmann

Zeta provides methods for computing local and topological zeta functions arising from the enumeration of subalgebras, ideals, submodules, representations, and conjugacy classes of suitable algebraic structures, as well as some other types of zeta functions.

(Check also zetalib, a fork which can be installed from PyPI)

#### Igusa and topological zeta

by Juan Viu-Sos

Calculation Of The (Local) Igusa And Topological Zeta Functions Of A Non-Degenerated Polynomial With Respect To His Newton'S Polyhedron.

#### admcycles

by Johannes Schmitt et alii

admcycles is a SageMath module to compute with the tautological ring of the moduli spaces of complex curves.

(added to Sage in https://trac.sagemath.org/ticket/31238)

#### conrey-dirichlet-characters

by Jonathan Bober

This contains some Sage/Cython code for working with Dirichlet characters using a numbering scheme described by Brian Conrey.

by Stefan Wewers, Julian Rüth

A Sage toolbox for computing with Models of Curves over Local Fields.

#### Usain Boltz

by Matthieu Dien and Martin Pépin

Usain Boltz is a Python/Cython library meant to automate the random generation of tree-like structures.

#### addcombq

by Matt Torrence

This is a Sage package for fast Additive Combinatorics functions.

#### sage-numerical-interactive-mip

by Peijun Xiao, Zeyi Wang, and Yuan Zhou

Interactive mixed integer linear programming solver

(added to Sage in https://trac.sagemath.org/ticket/31235)

#### ResSing

by Suchandan Pal

This is a package for calculating regular models of curves.

#### Yacop

by Christian Nassau

Sage package for Steenrod algebra cohomology.

#### Torus Knots Counter

by Ángel González-Prieto (Universidad Politécnica de Madrid) and Vicente Muñoz (Universidad de Málaga).

SageMath script that computes the motive of the irreducible SL(r,k)-character variety of an (n,m)-torus knot

#### fgb_sage

by Markus Wageringel

Sage interface for computing Gröbner bases with FGb.

#### guptri_py

by Markus Wageringel

Sage/NumPy interface for solving generalized eigenvalue problems of singular matrix pencils with GUPTRI.

#### comb_walk

by Frédéric Chyzak, Antonio Jiménez-Pastor, Pierre Lairez

A unified interface for working with generating functions and related object to Walks in the Quarter Plane.

#### StarProducts

by Peter Banks and Brent Pym

A package for symbolic calculations with Poisson brackets and Kontsevich's deformation quantization formula

#### sage-drg

by Janos Vidali

A package for checking the feasibility of distance-regular graph parameter sets.

#### kerrgeodesic_gw

by Eric Gourgoulhon, Alexandre Le Tiec, Frédéric H. Vincent and Niels Warburton

A pip-installable SageMath package for computing geodesics of the Kerr spacetime as well as gravitational waves from bodies orbiting a Kerr black hole

#### stallings_graphs

by Pascal Weil

A pip-installable SageMath package to experiment with finitely generated subgroups of infinite groups.

#### msinvar

by Sergey Mozgovoy

A package for computations of moduli space invariants.

#### phitigra

by Jean-Florent Raymond

a graph editor for SageMath as a Jupyter widget

(added to Sage in https://trac.sagemath.org/ticket/30540)

#### Brocoli

by Jean-Philippe Labbé

Package dealing with LImit ROots of COxeter groups (eternal Beta version)

#### sagemath-polytope-tikz

by Jean-Philippe Labbé

#### SFBpresentation

by Jean-Philippe Labbé

#### FlexRiLog

by Jan Legerský

#### cvolume

by Eduard Duryev

Compute completed volumes of strata of quadratic differentials with odd zeros

#### dual-pairs

by Peter Bruin

#### harmonic-modules

by Nicolas Thiéry

#### sherali_adams

by Matthew Drescher

Run Sherali-Adams relaxation on a system of the form Ax <= b represented by raw numpy matrix A and array b

#### badic

by Paul Mercat

Beta-adic tools and automata

#### dd_functions

by Antonio Jiménez-Pastor

computation with DD-finite functions

#### sage_cluster_pictures

by Alex J. Best and Raymond van Bommel

cluster pictures, BY-trees, models and local invariants of hyperelliptic curves

#### adeles

by Mathé Hertogh

Computing with adèles and idèles

#### Hodge diamond cutter

by Pieter Belmans

Computing with Hodge diamonds (and Hochschild homology) of smooth projective varieties

#### Hilbert modular groups

by Fredrik Stromberg

Computing with Hilbert modular groups and, in particular, implements a reduction algorithm.

#### gcaops: Graph Complex Action on Poisson Structures

by Ricardo Buring

Package implementing the action of Kontsevich's graph complex(es) on Poisson structures.