open-source mathematics software system

Mathematicians, scientists, researchers, and students need a powerful tool for their work or study. SageMath is a freely available open-source mathematical software system bundling the functionality of many software libraries, exposing their features in a common interface and extending on top of this with its own powerful algorithms. By leveraging the flexibility and universality of the underlying Python interpreter, SageMath is able to accommodate for a vast range of their requirements.

The mission of SageMath is to create a viable open-source alternative to all major proprietary mathematical software systems.

Python is the main programming language inside the SageMath library and also the language of choice for all interactions with the built-in objects and functions for expressing mathematical concepts and calculations. Besides a command-line and programming-library interface, its primary user interface is a dynamic self-hosted website. From the perspective of a user, the interface language is also Python, but with a thin extension built directly on top of it.

Almost all areas of mathematics are represented in SageMath, at various levels of sophistication. This includes symbolic calculus, 2D and 3D graphics, polynomials, graph theory, group theory, abstract algebra, combinatorics, cryptography, elliptic curves and modular forms, numerical mathematics, linear algebra and matrix calculations (over various rings), support for parallel computing, and a powerful coercion framework to “mix” elements from different sets for calculations. SageMath’s features also expand into neighboring fields like Statistics and Physics.

lightbulb_outline View ideas list


  • python
  • cython


email Mailing list
mail_outline Contact email

SageMath 2019 Projects

  • Rajat Mittal
    Enumeration of paths and improvements in the Graph Module
    This project aims to implement an iterator over k- shortest source to destination paths using improved versions of Yen’s algorithm for simple paths....
  • Giapitzakis Tzintanos G.
    Improvements of the graph module
    This project consists of the following parts: Cythonize current methods Improve graph traversals and add new ones
  • Marketa Slukova
    Rank Metric McEliece Cryptosystem
    Implement necessary tools for rank metric McEliece cryptosystems. Namely finish work on rank metric and Gabidulin codes (tickets #21226 and #20970)....
  • Chaman Agrawal
    Refactor RSK and implement new insertion rules
    The Robinson-Schensted-Knuth (RSK) correspondence is a generalization of the famous Robinson-Schensted (RS) correspondence and plays an important...