GSoC/GCI Archive
Google Summer of Code 2012


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.


  • Category Theory Module Category theory is a relatively new domain of mathematics which arose in an attempt to generalise existing algebraic structures. Because of the novelty of the approaches used in this domain, the number of people applying it is only increasing slowly. On the other hand, there is no way yet to represent category theoretic reasoning in modern CAS. The goal of this project is making SymPy capable of both representing category theoretic reasoning and carrying out a part of category theoretic reasoning automatically, with main focus on deciding the commutativity of diagrams.
  • Density Operators for Quantum Module in sympy.physics.quantum The goal of this project is to add an implementation of density matrix and related functionality to the sympy.physics.quantum module. This functionality should extend the quantum module to support density operators for arbitrary quantum systems and for qubit related operations. The density matrix implementation would include functionality to represent density matrices in different bases, make them work with states and tensor products of states. We will also implement a specialized density operator to deal with n-bit qubits. The density operator will also include methods to measure expectations, entropy/entanglements and also perform partial trace operations on of tensors states or just qubits. One other offshoot effect of this goal would be to implement a generic Trace expression.
  • Enhancements to sympy.physics.mechanics Possible enhancements to sympy.physics.mechanics are suggested; addition of several helper functions, implementation of additional equations of motion generation method(s), code output functionality, documentation making up the primary goals of this project. A timeline is laid out to achieve the goals.
  • Group Theory A module for handling the essentials of group theory, exclusively for finite and finitely presented groups using basic concepts and algorithms from computational group theory. Permutation & matrix presentations, orbits, stabilizers and group actions, quotient groups, representations and characters,...
  • Implicit Plotting Module SymPy already has a new plotting module based on matplotlib(pending merge) to plot explicit functions, but the functionality to plot implicit functions is missing. My project uses Interval Arithmetic to evaluate implicit expressions and graph the functions. Sympy Live does not have plotting support. My project also deals with adding a plotting back end for svgfig and integrating it with Sympy Live.
  • Vector Analysis Implementing a Vector Analysis framework for SymPy. It should include at the end of the project ways to work with manifolds, scalar, vector and form fields, directional derivatives, exterior derivatives, covariant derivatives, hodge duals, etc.