Back to Programs

Science and medicine

SageMath

Open-source mathematics software system

cythonpython

Participation history

11 GSoC years

2026

4 projects

Official year page

Gabow Arborescence Packing In SageMath

Edge-disjoint spanning arborescences are a fundamental structure in directed graph theory, with applications in connectivity and network design....

Integrating FLINT/Calcium Algebraic Number Fields as a Backend for SageMath's AA and QQbar.

Problem: SageMath's algebraic number fields (AA/QQbar) have performance bottlenecks in equality testing, arithmetic on high-degree numbers, and...

Improve and Polish the Generation of Structures of Combinatorial Species

SageMath's LazyCombinatorialSpecies framework (sage/rings/lazy_species.py) represents combinatorial species as lazy sequences of symmetric-group...

Add Supersymmetric Functions and Bases

SageMath currently has various examples of Hopf Algebras implemented, such as symmetric functions, quasisymmetric functions, word-quasisymmetric...

2025

6 projects

Official year page

Poincaré normal form of Riemann matrices

The project aims to compute the Poincaré normal form of Riemann matrices in SageMath. This computation enables the decomposition of theta functions...

On the Implementation of the O(|E|⋅√|V|) Micali-Vazirani Algorithm

Matchings and perfect matchings have received considerable attention in graph theory as well as in other related domains (such as, but not limited...

The Boson-Fermion Correspondence and Vertex Operators

The boson-fermion correspondence is an isomorphism of two representations of the Heisenberg algebra. It can be stated as a way to construct a special...

Functionalities for Krylov methods over exact fields

This project aims to add Krylov subspace methods for matrices over exact fields: representation of the kernel, co-kernel of a matrix of univariate...

Paths and cycles enumeration methods in graphs

This project focuses on enumeartion of k shotest simple paths. This problem has practical applications in various networks, such as road and...

Self Paired Hopf Algebra on Double Posets

This project implements the combinatorial Hopf algebra of double posets. A double poset is a set with two partial orders, and their isomorphism...

2024

6 projects

Official year page

On Decompositions, Generation Methods and related concepts in the theory of Matching Covered Graphs

Matchings and perfect matchings have received considerable attention in graph theory as well as in other related domains (such as, but not limited...

Implementation of Tropical Polynomials and its Corresponding Tropical Hypersurfaces

In tropical algebra, where addition resembles taking the maximum and multiplication is like regular addition, tropical polynomials come into play....

Expanding SageMath’s Dynamical systems capabilities

I'm Nate Bolin a mathematics graduate student, and I'm working with my mentor Benjamin Hutz to Expand the Dynamical Systems capabilities of Sagemath....

Tensor operations in Sage using Python libraries as backends

In SageMath, tensors are presently stored within the Components class as a dictionary, with each key representing indices and values indicating the...

Improving combinatorial species

Sage already has a working implementation of combinatorial species, but it is old, ad-hoc, and not entirely generic. This project aims to reimplement...

Direct Implementation of Chow Rings of Matroids

This Google Summer of Code project aims to build a custom class in SageMath for the Chow rings of matroids by using a result which explicitly...

2023

6 projects

Official year page

Parameterizing invariant spaces

I've been working on extending SageMath's capabilities to calculate parameterizations for invariant rings of matrix groups over finite fields. While...

Dynamical Systems with Multiple Functions

Sage does not have support for dynamical semigroups, which are dynamical systems involving multiple functions. This project aims to create a class...

Algorithms for Dynamical Systems

The goals of this project is to implement two algorithmic improvements for Sage: 1) Improve current implementation of Krumm's algorithms for points...

Enhancements in linear algebra

Sage incorporates state-of-the-art libraries for exact linear algebra computations, such as matrix multiplication, reduced echelon form, linear...

Implementing functions from toric topology

The aim of this project is to further expand Sage's library for topology, by implementing various functions from toric topology. Though this field...

Enhanced optimization solver interfaces for Sage

This project aims at improving the optimization capabilities of SageMath by connecting SageMath to interfaces to optimization solvers that are...

2022

5 projects

Official year page

2022 GSoC Implement piecewise functions of one or several variables Proposal

In this project, we aim to implement piecewise function on the polyhedral complex for general purpose for SageMath. Generally, this project should...

Improve Height Functionality

The goals of this project are to fix and improve current implementations of height functionalities, and to implement the Arakelov-Zhang pairing of...

Edge connectivity and edge disjoint spanning trees in digraphs

The current method used for finding edge disjoint spanning trees in directed graphs (digraphs) relies on mixed integer linear programming and it may...

Edge connectivity and edge disjoint spanning trees in digraphs

The current method used for finding edge disjoint spanning trees in directed graphs fails in some instances. The goal of this project is to implement...

Rewrite exterior algebra, implement Groebner bases, and peelable tableaux for northwest diagrams

An exterior algebra E is a mildly non-commutative algebra with fundamental applications in physics and geometry. The first goal of this project is to...

2021

7 projects

Official year page

Implement Small Groups

The goal of this project is to improve the conversation between Sage and GAP (the SmallGrp package). We want to create convenient ways for...

G-invariants of the Orlik-Solomon and Orlik-Terao algebras

For a finite-dimensional algebra A equipped with the action of a group G, the invariant algebra A^G has many useful interpretations in topology and...

Add support for error terms with explicit constants to AsymptoticRing

An asymptotic expression typically contains exact terms and O-terms, for example n3 + 2n2 + O(n). The basic framework for this asymptotic ring is...

Lazy Formal Power Series

A formal power series is a (potentially) infinite sequence of coefficients. It turns out to be practical to denote it as an infinite series, although...

Implementation of the graded ring of quasimodular forms

The goal of this project is twofold: first, we wish to implement the graded ring of quasimodular forms and, second, we wish to implement the...

Dynamics Algorithmic Improvements

We aim to improve several computations in dynamics and also implement new features. Improvements include optimizing the automorphic group...

Rigorous integration and the Abel-Jacobi map

Riemann surfaces are key objects in many areas of maths, from mathematical physics to algebraic and arithmetic geometry. As such there is...

2020

5 projects

Official year page

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...

Constructing a database of distance-regular graphs

This project aims to construct a database of distance-regular graphs in 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...

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...

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...

2019

4 projects

Official year page

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....

Improvements of the graph module

This project consists of the following parts: Cythonize current methods Improve graph traversals and add new ones

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)....

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...

2018

5 projects

Official year page

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...

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...

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...

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...

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...

2017

5 projects

Official year page

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...

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...

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...

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...

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...

2016

5 projects

Official year page

Rank Metric Codes in Sage

In this project, our goal is to extend the Coding Theory library in Sage by implementing base classes for linear rank-metric codes and Gabidulin...

Moduli Space of Dynamical Systems

There is functionality for working with dynamical systems over projective space in Sage. However, one of the areas lacking in functionality is the...

Expand the generic algebraic curve functionality in Sage

The aim of this project is to build on the functionality Sage has for algebraic curves. The primary topics for this expansion are intersection...

Extending Matroid Theory functionality

The goal is to improve the functionality of the matroid package in terms of usefulness to researchers. In particular, we plan on the following. We...

Modular Abelian Variety

There are several key features missing in Sage for modular abelian varieties. The goal of this project is to implement as much as possible. I will...