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.
pytest_mock: Thin-wrapper around the mock package for easier use with pytest
pytest_xdist: Pytest xdist plugin for distributed testing, most importantly across multiple CPUs
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
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
valgrind: Memory error detector, call graph generator, runtime profiler
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
- Features for testing the presence of topcom executables
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