open-source mathematics software system

Technologies
python, cython
Topics
mathematics, education, research, math
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.

2020 Program

Successful Projects

Contributor
Julian Cuevas-Rozo
Mentor
Miguel Marco Buzunariz
Organization
SageMath
Integration of Kenzo program with SimplicialSets
In this project we pretend to continue with the integration of the Kenzo program and SageMath. Specifically, we propose to combine the functions and...
Contributor
Ivo
Mentor
Dmitrii Pasechnik
Organization
SageMath
Constructing a database of distance-regular graphs
This project aims to construct a database of distance-regular graphs in SageMath.
Contributor
Stefan Grosser
Mentor
Travis Scrimshaw
Organization
SageMath
Efficiently Counting Linear Extensions of Posets
Linear extensions of partially ordered sets are fundamental in order theory and in algebraic combinatorics, holding high importance in the study of...
Contributor
Alexander Galarraga
Mentor
Benjamin Hutz
Organization
SageMath
Berkovich Project Line
The goal of this project is to implement the Berkovich projective line in Sage, along with dynamical systems acting the Berkovich projective line. If...
Contributor
Vipul Gupta
Mentor
David Coudert
Organization
SageMath
Efficient methods for Diameter, radius and all eccentricities computations
Currently, the algorithms for Radius, Diameter, and all eccentricities calculations in SageMath are too brute and hence too slow. They involve...