open source math software

SageMath combines numerous open-source software libraries under one umbrella and contains many unique and novice algorithms built on top of those libraries. 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
  • c++
  • c


email Mailing list
mail_outline Contact email

Sage Mathematical Software System 2017 Projects

  • Rebecca Lauren Miller
    Expanding the Functionality of Dynamical Systems
    As a member of the sage-dynamics community, researchers have compiled a wishlist for algorithms and functionality they would like added. I would like...
  • Zachary Gershkoff
    Implementing matroid classes and plotting improvements
    This project seeks to implement several common matroid classes in SageMath, along with algorithms for their display and relevant computations. The...
  • Ben Barros
    Improvement of Complex Dynamics in Sage
    There are three major things that I would like to implement to improve the functionality of Sage in the area Complex Dynamics. By the conclusion of...
  • Lokesh Jain
    Linear-time Implementation of Modular Decomposition of Undirected and Directed Graphs
    This project is aimed at providing linear time implementation for modular decomposition of graphs and digraphs. Modular decomposition is...
  • Maria Ioanna Spyrakoy
    Modular Decomposition of graphs and digraphs
    Modular decomposition of (di)graphs is a generalization of the concept of the decomposition of (di)graphs into connected components. Its current...