Fetching the latest programs, projects, and workspace data.

SymPy is a Python library for symbolic mathematics
Showing 5 of 68 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: ForeverHaibara
This proposal aims to implement algorithms character tables computation algorithms for SymPy. Fourteen years ago in 2012, Aleksandar Makelov's GSoC project regarding group theory envisioned the feature of computing character tables in SymPy, and this GSoC project in 2026 is planning to fulfill this long-standing goal.
Mentors: Student: Sujal Jayant Kumar
This project focuses on making SymPy's assumptions system more robust, efficient, and reliable through a three component architectural upgrade. The first component introduces a backend solver for Equality Logic and Uninterpreted Functions (EUF) directly into the SAT engine. The second component upgrades the Linear Real Arithmetic (LRA) solver to safely handle complex domains, irrational boundary limits, and symbolic infinities (like oo) without failing while also refactoring the core ask dispatcher to resolve many recursion loops during query evaluation. Last component, the project will replace thousands of hardcoded static unit tests with dynamic, property-based tests using the Hypothesis library. By automatically generating complex mathematical trees to find hidden bugs, these enhancements will smooth out the rough edges of the assumptions module, making it a significantly faster and mathematically stronger.
Mentors: Student: SalahDin Rezk
Symbolic integration is one of the central capabilities of any advanced calculator system e.g. Mathematica. SymPy currently provides several integration strategies including heuristic methods, algorithmic approaches such as the Risch algorithm, and a rule-based integrator implemented in sympy.integrals.manualintegrate. The manualintegrate module performs integration by recursively applying pattern-based rules similar to how integrals are solved manually. While this approach produces readable step-by-step results and supports a wide range of expressions, its current rule coverage is limited and many integrals involving special functions or structured products are not recognized. The goal of this project is to extend the rule-based integration system in manualintegrate, focusing on improving support for special functions, structured products, and rule prioritization. The project will expand the set of integration rules, improve heuristics for rule selection, and ensure better compatibility with SymPy's symbolic simplification system. The approach is to first analyze the gaps between manualintegrate and more comprehensive rule-based systems such as RUBI in order to identify missing classes of integrals and structural weaknesses. Based on this analysis, the project will design SymPy-compatible rule representations using its existing pattern-matching framework, ensuring consistency with the current architecture. New rules will then be implemented incrementally, with each addition accompanied by rigorous testing and validation to guarantee correctness and stability. Throughout this process, particular attention will be given to preserving and extending SymPy’s step-by-step explanation capability, ensuring that all newly supported integrals remain interpretable and aligned with human-style symbolic reasoning. The end goal is to make SymPy’s integrator more complete, explainable, and closer to human-style symbolic reasoning, while maintaining correctness.
Mentors: Student: luca-berton1
This project aims to enhance SymPy's GCD computation speed for polynomials in the sparse representation. I will implement Zippel's algorithm from scratch and finalize the integration of the sparse subresultant PRS algorithm. Subsequently, I will develop a benchmarking suite to evaluate all SymPy's GCD algorithms. The resulting data will serve a new heuristic-based dispatcher, ensuring SymPy selects the optimal strategy for any given input.
Mentors: Student: Edoardo Matachione
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 substitutions will be added, in order to find the antiderivative for functions that SymPy cannot handle. Subsequently, new rules for the handling of special functions will be introduced and the pre-existing code will be improved, which sometimes can report incorrect results for some edge cases. Finally, a module for contour integration will be implemented, in order to be able to calculate specific definite integrals without having to find the antiderivative, handling new cases not yet covered.