Packages and Features#
Standard Packages#
The Sage distribution includes most programs and libraries on which Sage depends. It installs them automatically if it does not find equivalent system packages.
Mathematics#
brial: Boolean Ring Algebra implementation using binary decision diagrams
cddlib: Double description method for polyhedral representation conversion
combinatorial_designs: Data from the Handbook of Combinatorial Designs
conway_polynomials: Python interface to Frank Lübeck’s Conway polynomial database
cypari2: Python interface to the number theory library libpari
eclib: Enumerating and computing with elliptic curves defined over the rational numbers
fflas_ffpack: Dense linear algebra over word-size finite fields
fplll: Lattice algorithms, including LLL with floating-point orthogonalization
gap: Groups, Algorithms, Programming - a system for computational discrete algebra
gf2x: Fast arithmetic in GF(2)[x] and searching for irreducible/primitive trinomials
givaro: C++ library for arithmetic and algebraic computations
linbox: Linear algebra with dense, sparse, structured matrices over the integers and finite fields
maxima: System for manipulating symbolic and numerical expressions
mpc: Arithmetic of complex numbers with arbitrarily high precision and correct rounding
mpfi: Multiple precision interval arithmetic library based on MPFR
mpfr: Multiple-precision floating-point computations with correct rounding
mpmath: Pure Python library for multiprecision floating-point arithmetic
nauty: Find automorphism groups of graphs, generate non-isomorphic graphs
openblas: An optimized implementation of BLAS (Basic Linear Algebra Subprograms)
pari: Computer algebra system for fast computations in number theory
pari_galdata: PARI data package needed to compute Galois groups in degrees 8 through 11
pari_seadata_small: PARI data package needed by ellap for large primes (small version)
polytopes_db: Databases of 2- and 3-dimensional reflexive polytopes
primesieve: CLI program and C/C++ library for generating primes
qhull: Compute convex hulls, Delaunay triangulations, Voronoi diagrams
sympow: Computes special values of symmetric power elliptic curve L-functions
Front-end, graphics, document preparation#
ipython: Interactive computing environment with an enhanced interactive Python shell
ipywidgets: Interactive HTML widgets for Jupyter notebooks and the IPython kernel
jupyterlab_widgets: Jupyter interactive widgets for JupyterLab
notebook: Jupyter notebook, a web-based notebook environment for interactive computing
sagenb_export: Convert legacy SageNB notebooks to Jupyter notebooks and other formats
sagetex: Embed code, results of computations, and plots from Sage into LaTeX documents
threejs: JavaScript library to display 3D graphics in the browser
Other dependencies#
_prereq: Represents system packages required for installing SageMath from source
alabaster: Default theme for the Sphinx documentation system
anyio: High level compatibility layer for multiple asynchronous event loop implementations
beniget: Extract semantic information about static Python code
boost_cropped: Portable C++ libraries (subset needed for Sage)
comm: Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc.
contourpy: Python library for calculating contours of 2D quadrilateral grids
cython: C-Extensions for Python, an optimizing static compiler
debugpy: Implementation of the Debug Adapter Protocol for Python
defusedxml: Addresses vulnerabilities of XML parsers and XML libraries
docutils: Processing plaintext documentation into useful formats, such as HTML or LaTeX
entrypoints: Discover and load entry points from installed Python packages
executing: Get the currently executing AST node of a frame, and other information
fastjsonschema: Fastest Python implementation of JSON schema
flit_core: Distribution-building parts of Flit. See flit package for more information
gast: Python AST that abstracts the underlying Python version
gcc: The GNU Compiler Collection or other suitable C and C++ compilers
gnumake_tokenpool: Jobclient and jobserver for the GNU make tokenpool protocol
h11: A pure-Python, bring-your-own-I/O implementation of HTTP/1.1
iconv: Library for language/country-dependent character encodings
imagesize: Getting image size from png/jpeg/jpeg2000/gif file
importlib_metadata: Library to access the metadata for a Python package
jsonpointer: Identify specific nodes in a JSON document (RFC 6901)
jsonschema_specifications: The JSON Schema meta-schemas and vocabularies, exposed as a Registry
jupyter_client: Jupyter protocol implementation and client libraries
jupyter_lsp: Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server
jupyter_server: The backend (core services, APIs, REST endpoints) to Jupyter web applications
jupyter_server_terminals: A Jupyter Server Extension Providing Terminals
jupyterlab_mathjax2: A MathJax Typesetting provider for JupyterLab 4 and above
jupyterlab_pygments: Pygments theme using JupyterLab CSS variables
jupyterlab_server: Set of server components for JupyterLab and JupyterLab like applications
kiwisolver: Fast implementation of the Cassowary constraint solver
libatomic_ops: Access hardware-provided atomic memory update operations
mathjax: A JavaScript library for displaying mathematical formulas
memory_allocator: An extension class to allocate memory easily with Cython
mistune: Sane and fast Markdown parser with useful plugins and renderers
nbclient: Client library for executing notebooks. Formerly nbconvert’s ExecutePreprocessor
overrides: Decorator to automatically detect mismatch when overriding a method
patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables
pathspec: Utility library for gitignore style pattern matching of file paths
pexpect: Python module for controlling and automating other programs
pickleshare: A ‘shelve’ like datastore with concurrency support
pplpy_doc: Python interface to the Parma Polyhedra Library (documentation)
prometheus_client: Python client for the systems monitoring and alerting toolkit Prometheus
psutil: Cross-platform lib for process and system monitoring in Python.
ptyprocess: Python interaction with subprocesses in a pseudoterminal
py: Library with cross-python path, ini-parsing, io, code, log facilities
pyproject_api: API to interact with the python pyproject.toml based projects
pyproject_hooks: Wrappers to call pyproject.toml-based build backend hooks.
python_json_logger: Python library adding a json log formatter
pytz_deprecation_shim: Shims to make deprecation of pytz easier
sage_conf: Configuration module for the SageMath library (distributable version)
send2trash: Send file to trash natively under Mac OS X, Windows and Linux
setuptools_scm: Python build system extension to obtain package version from version control
sniffio: Sniff out which async library your code is running under
snowballstemmer: Stemmer algorithms for natural language processing in Python
soupsieve: Modern CSS selector implementation for Beautiful Soup
sphinx_copybutton: Add a copy button to each of your code cells
sphinx_inline_tabs: Add inline tabbed content to your Sphinx documentation
sphinxcontrib_applehelp: Sphinx extension which outputs Apple help book
sphinxcontrib_devhelp: Sphinx extension which outputs Devhelp documents
sphinxcontrib_htmlhelp: Sphinx extension which outputs HTML help book
sphinxcontrib_jsmath: Sphinx extension which renders display math in HTML via JavaScript
sphinxcontrib_qthelp: Sphinx extension which outputs QtHelp documents
sphinxcontrib_serializinghtml: Sphinx extension which outputs serialized HTML files
stack_data: Extract data from python stack frames and tracebacks for informative displays
terminado: Tornado websocket backend for the term.js Javascript terminal emulator library
tornado: Python web framework and asynchronous networking library
tox: tox is a generic virtualenv management and test command line tool
trove_classifiers: Canonical source for classifiers on PyPI (pypi.org)
typing_extensions: Backported and Experimental Type Hints for Python 3.8+
urllib3: HTTP library with thread-safe connection pooling, file post, and more
wcwidth: Measures the displayed width of unicode strings in a terminal
webcolors: Library for working with the color formats defined by HTML and CSS
webencodings: Character encoding aliases for legacy web content
websocket_client: WebSocket client for Python with low level API options
widgetsnbextension: Jupyter interactive widgets for Jupyter Notebook
Optional Packages#
For additional functionality, you can install some of the following optional packages.
Mathematics#
4ti2: Algebraic, geometric and combinatorial problems on linear spaces
admcycles: Computation in the tautological ring of the moduli space of curves
benzene: Generate fusenes and benzenoids with a given number of faces
bliss: Computing automorphism groups and canonical forms of graphs
cbc: COIN-OR branch and cut solver for mixed-integer programs
clarabel: Clarabel Conic Interior Point Solver for Rust / Python
coxeter3: Library for Coxeter groups, Bruhat ordering, Kazhdan-Lusztig polynomials
cunningham_tables: List of the prime numbers occuring in the Cunningham table
cvxpy: Domain-specific language for modeling convex optimization problems in Python
database_cubic_hecke: Ivan Marin’s representations of the cubic Hecke algebra
database_knotinfo: Content of the KnotInfo and LinkInfo databases as lists of dictionaries
database_mutation_class: Database of exceptional mutation classes of quivers
database_odlyzko_zeta: Table of zeros of the Riemann zeta function
database_stein_watkins: Database of elliptic curves (full version)
database_stein_watkins_mini: Database of elliptic curves (small version)
database_symbolic_data: Database from the SymbolicData project
isl: Sets and relations of integer points bounded by affine constraints
kenzo: Construct topological spaces and compute homology groups
latte_int: Count lattice points, compute volumes, and integrate over convex polytopes
libnauty: Find automorphism groups of graphs, generate non-isomorphic graphs (callable library)
lrslib: Reverse search algorithm for vertex enumeration and convex hull problems
mathics_scanner: Character Tables and Tokenizer for Mathics and the Wolfram Language
mcqd: An exact algorithm for finding a maximum clique in an undirected graph
modular_resolution: Modular cohomology rings of finite groups
mpfrcx: Arithmetic of univariate polynomials over arbitrary precision real or complex numbers
osqp_python: The Operator Splitting QP Solver (Python wrapper)
p_group_cohomology: Modular cohomology rings of finite groups
papilo: Parallel presolve for integer and linear optimization
pari_galpol: PARI data package for polynomials defining Galois extensions of the rationals
pari_seadata: PARI data package needed by ellap for large primes (full version)
polytopes_db_4d: Database of 4-dimensional reflexive polytopes
pyscipopt: Python interface and modeling environment for SCIP
qdldl_python: QDLDL, a free LDL factorization routine (Python wrapper)
qepcad: Quantifier elimination by partial cylindrical algebraic decomposition
r: A free software environment for statistical computing and graphics
sage_numerical_backends_coin: COIN-OR backend for Sage MixedIntegerLinearProgram
sage_numerical_backends_cplex: Cplex backend for Sage MixedIntegerLinearProgram
sage_numerical_backends_gurobi: Gurobi backend for Sage MixedIntegerLinearProgram
scip_sdp: Mixed integer semidefinite programming plugin for SCIP
sirocco: Compute topologically certified root continuation of bivariate polynomials
snappy: Topology and geometry of 3-manifolds, with a focus on hyperbolic structures
soplex: Linear optimization solver using the revised simplex method
tdlib: Algorithms for computing tree decompositions of graphs
topcom: Compute triangulations of point configurations and oriented matroids
Front-end, graphics, document preparation#
Other dependencies#
_bootstrap: Represents system packages required for running the top-level bootstrap script
_develop: Represents system packages recommended for development
_recommended: Represents system packages recommended for additional functionality
d3js: JavaScript library for manipulating documents based on data
gitpython: GitPython is a python library used to interact with Git repositories
imagemagick: A collection of tools and libraries for many image file formats
libgraphviz: Graph visualization software (callable library)
llvm: The LLVM Compiler Infrastructure, including the Clang C/C++/Objective-C compiler
pandoc_attributes: A parser and generator for pandoc block attributes
perl_cpan_polymake_prereq: Represents all Perl packages that are prerequisites for polymake
perl_term_readline_gnu: Perl extension for the GNU Readline/History libraries
pybtex: A BibTeX-compatible bibliography processor in Python
pytest_mock: Thin-wrapper around the mock package for easier use with pytest
pytest_xdist: pytest xdist plugin for distributed testing and loop-on-failing modes
Features#
- Testing for features of the environment at runtime
- Join features
- Enumeration of all defined features
- Features for testing the presence of Python modules in the Sage library
- Features for testing the presence of package systems
sage_spkg
,conda
,pip
,debian
,fedora
etc. - Features for testing the presence of
bliss
- Feature for testing the presence of
csdp
- Features for testing the presence of various databases
- Feature for testing the presence of
dvipng
- Feature for testing the presence of
ffmpeg
- Features for testing the presence of
4ti2
- Features for testing the presence of the SageMath interfaces to
gap
and of GAP packages - Features for testing the presence of graph generator programs
benzene
,buckygen
,plantri
- Features for testing the presence of
graphviz
- Feature for testing the presence of
imagemagick
- Features for testing whether interpreter interfaces to
magma
,maple
,mathematica
etc. are functional - Feature for testing if the Internet is available
- Feature for testing the presence of
kenzo
- Features for testing the presence of
latex
and equivalent programs - Features for testing the presence of
latte_int
- Feature for testing the presence of
lrslib
- Features for testing the presence of
mcqd
- Feature for testing the presence of
meataxe
- Features for testing the presence of
MixedIntegerLinearProgram
backends - Feature for testing the presence of
pynormaliz
- Feature for testing the presence of
pandoc
- Feature for testing the presence of
pdf2svg
- Feature for testing the presence of
jupymake
, the Python interface to polymake - Features for testing the presence of
rubiks
- Features for testing the presence of
tdlib
Distribution Packages of the Sage Library#
Experimental Packages#
Some packages that provide additional functionality are marked as “experimental”. Developers are needed in order to improve the integration of these packages into the Sage distribution.
Mathematics#
barvinok: Projections of integer point sets of parametric polytopes
deformation: Count points on hypersurfaces using the deformation method
gap3: A minimal distribution of GAP 3 containing packages that have no equivalent in GAP 4
lie: Library for the representation theory of complex semisimple Lie groups and algebras
surf: Visualization of algebraic curves, algebraic surfaces and hyperplane sections of surfaces