GSoC/GCI Archive
Google Summer of Code 2013


Web Page:

Mailing List:


SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.



  • Addition of electromagnetism features to sympy.physics Currently, SymPy has a great module for the study of mechanics in the form sympy.physics.mechanics. In this proposal, I propose the implementation of classic electric and magnetic fields for sympy.physics. This will include all their features relevant to a symbolic physics module as well their interactions with each other. Also added will be classes and functions to study the mechanics and electromagnetic properties of particle charges in the presence of such fields. My work during the summer would be based on a combination of concepts from Maxwells equations and the required laws governing vector fields and mechanics of particles. This module could serve as the foundation for further work in this direction, including future possible integration with PyDy.
  • Diophantine Equation Module for SymPy A module for solving Diophantine Equations(DE) will be implemented. As a start I hope to solve five classical DEs which are found most frequently. Module will be implemented very similar to the ODE module so that adding solutions to the new types of equations and updating/ improving solutions will be easy.
  • Faster Algorithms for Polynomials over Algebraic Number Fields The goal of this project is the implementation of faster greatest common divisor and factorization algorithms for univariate and multivariate polynomials over algebraic number fields. This is important for symbolic integration of rational functions and simplification of expressions among other things.
  • Improved ODE Solver The current ODE solver in sympy was the work started by Aaron Meurer as his GSoC Project in 2009. The ODE solver though robust, has a good number of possible features that can be added. My project proposal would be dealing with the implementation of two of these features. 1. Solving non classifiable first order ODE using Lie Groups 2. Series Solutions to Second Order Homogeneous Differential Equations:
  • Lie Algebras Lie algebras are an integral part of mathematics. This project would create a Lie algebra module for SymPy.
  • Risch algorithm for symbolic integration The Risch algorithm is a complete algorithm to integrate any elementary function. Given an elementary function, it will either produce an antiderivative, or prove that none exists.The project is to continue where Aaron Meurer left off in his 2010 GSoC project, implementing the algorithm from Manuel Bronstein's book, Symbolic Integration I: Transcendental Functions. A successful implementation of this would not only provide concrete algorithms for transcendental functions but would also form the basis for very similar Karr Algorithm, decision procedure for symbolic summation, yet to be implemented in Sympy. This could also prove a quick start for further extension to build Risch Algorithms for Algebraic functions and hence needs to be taken immediately to complete the integral module in sympy.
  • Vector calculus module This project aims to implement a module facilitating the usage of vectors and allowing users to perform vector calculus operations. This will allow other modules, particularly the sympy.physics based modules, to use vector calculus inside them wherever necessary through a consistent and well-structured API.