Sage Mathematical Software System

Creating a viable free alternative to Magma, Maple, Mathematica and Matlab.

Technologies
python, cython, c/c++, python 3
Topics
mathematics, toolbox
Creating a viable free alternative to Magma, Maple, Mathematica and Matlab.

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.

2018 Program

Successful Projects

Contributor
Filip Ion
Mentor
Johan Rosenkilde, Dima Pasechnik
Organization
Sage Mathematical Software System
Databases and bounds of codes
The following proposal detail some possible improvements of the coding theory component of SageMath. We aim to build databases of precomputed bounds...
Contributor
Raghukul Raman
Mentor
Travis Scrimshaw, Benjamin Hutz
Organization
Sage Mathematical Software System
Rational Point on Varieties
This project aims at implementing basic algorithms for finding rational points on varieties. Classically algebraic variety is defined as the set of...
Contributor
Sai Harsh Tondomker
Mentor
David Coudert, Dima Pasechnik
Organization
Sage Mathematical Software System
Addition of SPQR-tree to graph module
In this project, our goal is to extend the graph theory library in Sage by implementing functionality to find triconnected subgraphs, which will...
Contributor
Meghana M Reddy
Mentor
David Coudert, Dima Pasechnik
Organization
Sage Mathematical Software System
Addition of SPQR-trees to the graph module of Sage Math
The aim of the project is to code the linear time algorithm for partitioning a graph into 3-connected components and constructing the corresponding...
Contributor
Dario Asprone
Mentor
Dima Pasechnik
Organization
Sage Mathematical Software System
Checking graph isomorphism using the Weisfeiler-Lehman algorithm
Currently SageMath checks for graph isomorphism through an internal package with a corresponding method, called isomorphic and contained in...