Back to Programs

Science and medicine

SymPy

SymPy is a Python library for symbolic mathematics

data sciencejupyternumpypython

Participation history

11 GSoC years

2026

5 projects

Official year page

Enhancing SymPy’s Integral Module: Rationalizing Substitutions and Contour Integration

The goal of this project is to improve the capabilities of the current integration module of SymPy. To do so, as a first step, rationalizing...

Group Representation Theory and Character Tables

This proposal aims to implement algorithms character tables computation algorithms for SymPy. Fourteen years ago in 2012, Aleksandar Makelov's GSoC...

Enhancement of gcd for polynomials in the sparse representation

This project aims to enhance SymPy's GCD computation speed for polynomials in the sparse representation. I will implement Zippel's algorithm from...

Extending Rule-Based Symbolic Integration

Symbolic integration is one of the central capabilities of any advanced calculator system e.g. Mathematica. SymPy currently provides several...

Enhancing Assumptions via EUF Integration, LRA Robustness, and Property-Based Testing

This project focuses on making SymPy's assumptions system more robust, efficient, and reliable through a three component architectural upgrade. The...

2025

6 projects

Official year page

FLINT-Backed Multivariate Polynomials in SymPy

SymPy currently lacks an efficient backend for dense and sparse multivariate polynomials over ℤ and ℚ, leading to performance bottlenecks in many...

Implementing a Domain for Formal Power Series in SymPy

This project implements a domain system for formal power series in SymPy, enhancing the ring_series module with PowerSeriesRing (Domain),...

Improving Relational Reasoning and Introducing Quantifier Support in SymPy's Assumptions Framework

This GSoC project focuses on strengthening SymPy's assumptions system through a two-fold approach. The first component targets relational reasoning...

Enhancing SymPy’s Control Module: Symbolic Stability and Discrete-Time Systems

This project enhanced SymPy's physics/control module by introducing two fundamental features. First, a robust method for symbolic stability analysis...

Symbolic Wrapping Geometries for Musculoskeletal Modeling in SymPy

Musculoskeletal forces from muscles and tendons often wrap around bones and joints along curved surfaces. Current tools rely on numerical...

Enhancing the Beam, Column and Structure2d Modules in SymPy’s Continuum Mechanics

This project enhances SymPy’s Beam, Column, and Structure2D modules in the continuum_mechanics package by addressing key limitations in the current...

2024

5 projects

Official year page

Improving Series Expansions and Limit Computations

The proposal seeks to expand the already mature series module in sympy by making improvements in sections like fixes for some fundamental changes in...

Improving and Expanding the functionalities of the SymPy's Control Module.

This project focuses on enhancing the existing functionalities of the control module in SymPy. While the current control module has been...

Implementing Specific Forces and Torques

The project aims to develop a comprehensive library of predefined force and torque models. These models are crucial for a wide range of scenarios in...

Extending Continuum Mechanics Module

The current Continuum Mechanics has been undergoing continuous developments in the past years and has developed functionalities for solving and...

Enhancing Performance in SymPy Phyiscs/Mechanics and Phyiscs/Vector Modules

SymPy's physics/mechanics and physics/vector modules are powerful tools for modeling and analyzing the dynamics of multi-body systems. These modules...

2023

5 projects

Official year page

Improving Polynomial GCD

The project aims to add new algorithms for computing the greatest common divisor (GCD) of polynomials in the sparse representation in order to...

Improving And Expanding Functionalities Of SymPy's Control Module

In this project, I aim to improve and expand the functionalities of the physics control module. This module was introduced to SymPy 2 years ago. The...

Extending Continuum mechanics module: Introducing classes for Cables and Improving the Truss class

The project aims at Extending the continuum mechanics module. The primary aim of the project is : 1) Improving methods for Truss class - The project...

Improving Relational Assumptions in SymPy’s New Assumptions

The assumption system underlying SymPy is very important to the library's function. However, it has several flaws, including sluggish performance and...

Rewrite LaTeX Parser

The current LaTeX parser is implemented in Antlr, which is a big dependency to have for a project such as SymPy. Apart from that, the current parser...

2022

3 projects

Official year page

Extending the Continuum Mechanics module

The current Continuum Mechanics module is very useful and has been developed to a good extent. However, there are many more concepts that are...

Classical Mechanics: Extending the Construction of Systems From Bodies and Joints

The aim of this project is to further develop the construction of systems from bodies and joints. This involves fixing existing bugs, which will also...

Improving Series Expansions and Limit Computations

Series expansions, in the field of symbolic computation, is an area of major study in mathematical analysis. The current implementation of series...

2021

6 projects

Official year page

Improving and Expanding Functionalities in Control Module

My project aims to improve the existing API of the control system module in sympy.physics. Not to mention sympy.physics.control utilizes the...

Rational Solutions of Riccati ODEs

In this project, a solver for Riccati ODEs will be added to the ODE module of SymPy. The solver finds all rational solutions of the equation. A...

Improving Series Expansions

The current implementation of series expansions in SymPy is developed to a large extent, but not complete. There are a few limit failures that need...

Continuum Mechanics: Creating a Rich Beam Solver and Extending Continuum Mechanics Module

The continuum mechanics of Sympy is in its early stage of development. During this summer, I plan on adding the following features: Adding plotting...

Refactor the ODE module and make it fast

The idea is to organise each of the solvers into a class with a consistent interface. Then the main part of dsolve can loop over these classes rather...

Implement JointsMethod

The main aim of this project is to implement Joints Method in Sympy under mechanics in physics module as it would open up the use of the library to a...

2020

6 projects

Official year page

Control Theory - Implement a control systems package

The main aim of this project is to implement in SymPy, a basic control system functionality that would be beneficial for engineers trying to solve...

Amendments to Limit Evaluation and Series Expansion

SymPy is a Python library for symbolic mathematics. SymPy has a powerful "series" module, which is the backbone of all the limit evaluations...

Improving and Extending stats module

Sympy is currently supporting Stochastic Processes, Random matrices, Joint, Continuous, and Discrete distributions in its stats module. Compound...

ENHANCEMENT OF NUMBER THEORY MODULE

Implement sub-exponential factorization algorithms - (1.) Lenstra's Elliptic Curve factorization Algorithm and (2.) Self-Initializing Quadratic...

Implementation of Vector Integration

My project aims at adding the functionality of vector integration over Curves, Surfaces and Volumes. Currently sympy.vector package supports basic...

Improving and Extending ODE Module

In this project, 5 new general solvers that can solve specific cases of system of ODEs and two techniques, namely, division of system of ODEs into...

2019

10 projects

Official year page

GSoC 2019 Proposal of Linear Algebra: Tensor core

Add more functionalities like NumPy-like operators, lazy-evaluation, code generation, etc. to tensor module, especially to array module

Improving Assumptions

This project aims to improve the capabilities of the assumptions handling sub-system in SymPy. Currently, SymPy has two such systems (the old and the...

Continuum Mechanics: Creating a Rich Beam Solver and Extending continuum mechanics module

The project aims at creating a rich beam module and also extending the current continuum mechanics module by integrating cross-sectional geometries...

Probability: Compound Distributions, Stochastic Processes and Random Matrices

SymPy basic stats module is fairly developed but it would be able to reach its true potential and find wide applicability only when advanced features...

Group Theory

The project aims at adding additional functionalities to Group Theory section of combinatorics module. Creating capability to do computation with...

Creating a C and Fortran Parser for SymPy

The project is aimed at making SymPy able to convert code from Fortran/C into SymPy expressions. After completion and implementation of this project,...

Enhancement of Statistics Module

Currently the stats module lacks some useful features as suggested on the ideas page, like Random Walks, Random Matrices, etc. There is also a scope...

Solvers: Extending solveset

SymPy is a Python library for symbolic mathematics. Sympy has a powerful solve function that can solve a lot of equations, but due to its complex API...

Extending Codegen

The purpose of this project is to extend SymPy's ability to generate code involving matrix expressions by allowing the transformation of SymPy's AST...

Improving Series Expansions

Currently, SymPy has a well-established series package in sympy/series.py. The goal of this project would be to improve the existing series package,...

2018

7 projects

Official year page

Autolev Parser (using ANTLR v4)

Autolev(now superseded by MotionGenesis) is a domain specific language used for symbolic multibody dynamics. The SymPy mechanics module now has...

Group Theory

The project mainly aims in improvising the Group Theory part of the combinatorics module. The project is mainly divided into 3 phases. The first...

Solvers: Completing Solveset

One of the major features of any Computer Algebra System is solving equations. Sympy too have a powerful solve function that can solve a lot of...

Transforms, Convolution & Linear Recurrence Evaluation

Discrete transforms, convolutions and recurrences modules are implemented for SymPy, a computer algebra system (CAS) written purely in Python.

Create a Rich Beam Solving System

The project aims at improving SymPy 2D beam module so that it can solve more beam problems, along with the implementation of beam problems in 3D and...

Improving Probability and Random Processes

SymPy statistics module supports a variety of probability distributions, including finite, continuous, discrete distributions. The aim of this...

Completing RUBI Integrator

This project aims to complete rubi (rule based integration) module of sympy, which is in very unstable condition.

2017

8 projects

Official year page

Group Theory: Subgroups, Homomorphisms and Presentations

SymPy currently has limited support for subgroups of finitely presented groups. For finite FpGroups, this can be greatly extended by defining an...

Implementation of multiple types of coordinate systems for vectors

In my proposal I present idea of introducing different curvilinear coordinate system to vector package. My concept is based on Lame coefficient,...

Rubi Integrator

A Rule based integrator nicknamed Rubi is an entirely new module in SymPy, Integrals. It is an implementation of more than 6000 rules to cover a wide...

Implementing a SymPy module for Integration of Polynomials over 2/3-Polytopes

This project is to implement a module in SymPy which will provide the ability to integrate arbitrary polynomials over 2D and 3D polytopes. Using...

Improved code-generation facilities

The code-generation facilities in SymPy are already in active use in the research community. There are, however, still many exciting opportunities...

Rule Based Integration Module for SymPy

Rule based integration (Rubi) consists of ~10,000 transformation rules which have been tabulated since last two centuries. Computer Algebra...

Implementing Solvers for SymEngine

Solving equations and system of equations is a crucial feature of Computer Algebra Systems and Polynomial factorization is one of the fundamental...

Improving SymEngine's Python Wrappers and SymPy-SymEngine Integration

Speed is of the utmost importance for any Computer Algebra System. SymEngine, was initially developed with the aim of serving as an optional core for...

2016

7 projects

Official year page

GSoC 2016 Application Gaurav Dhingra: Group Theory

It would be awesome to have a Group Theory module. Presently only Combinatorics module has been implemented in SymPy, which is fairly well developed....

Adding to SymEngine's Polynomial functionality and interfacing it with FLINT & Piranha

This project deals with introducing much needed functionality to the SymEngine polynomial module. It improves upon the already existing univariate...

GSoC 2016 Application Shekhar Prasad Rajak: Solvers - Completing Solveset

SymPy is a Python library for symbolic mathematics. Solvers module is mostly used module, so it is very important that Solver works perfectly and...

Implementing Finite Fields and Set module in SymEngine

Polynomial factorization is one of the fundamental tools of the computer algebra systems. And in symbolic mathematics, it is one of the basic...

Extending solveset

Solving equation is a quintessential feature of any Computer Algebra System. And having the ability to solve a variety of equations, with accuracy,...

Implementation of Holonomic Functions in SymPy

The Goal of this project is to implement operations on Holonomic functions in SymPy. Holonomic functions cover a very large set of functions, and...

Implementation of Singularity Functions to solve Beam Bending problems

My proposal aims at designing and implementing a singularity functions module in a pure mathematical way. This module is further utilised in...