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 
- 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,fedoraetc.
- 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 gapand 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,mathematicaetc. are functional
- Feature for testing if the Internet is available
- Feature for testing the presence of kenzo
- Features for testing the presence of latexand 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 MixedIntegerLinearProgrambackends
- 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