GSoC/GCI Archive
Google Summer of Code 2014

Sage Mathematical Software System

License: GNU General Public License version 2.0 (GPLv2)

Web Page:

Mailing List:!forum/sage-gsoc

Sage is an open-source mathematical software system. It combines numerous open-source software libraries under one umbrella and contains many unique and novice algorithms built on top of those libraries. Besides a command-line and programming-library interface, its primary user interface is a dynamic self-hosted website. Besides running a local copy, public Sage servers offer an easy access to Sage via the web-browser and have shown to be very popular. Python is the main programming language inside the Sage library and also the language of choice for all interactions with the built-in objects and functions for expressing mathematical concepts and calculations. The mission of Sage is to create a viable open-source alternative to all major proprietary mathematical software systems. The goal of the Sage foundation is to support the development of the mathematical software system Sage. Almost all areas of mathematics are represented in Sage, at various levels of sophistication. This includes symbolic calculus, 2D and 3D graphics, polynomials, graph theory, group theory, abstract algebra, combinatorics, cryptography, elliptic curves and modular forms, numerical mathematics, linear algebra and matrix calculations (over various rings), support for parallel computing, and a powerful coercion framework to “mix” elements from different sets for calculations. Sage’s features also expand into neighbouring fields like Statistics and Physics.


  • Efficient class-specific membership checks, extensions and visualization First goal of this proposal is to implement efficient testing of a matroid for membership of various classes and to perform single element extensions of matroids that exploit the knowledge that a given matroid belongs to a certain class, to have lower complexity. We also propose implementation of visualization techniques and an application of matroid theory in form of enumeration of network codes for a multisource network coding problem which is one of the timely problems in information theory.
  • Efficient exact analytic rank computation for elliptic curves in Sage My project would be to implement functionality in Sage to compute the analytic rank of an elliptic curve exactly modulo standard conjectures, with better scaling than existing analytic rank estimation methods. This would necessitate both writing (significant amounts of) new Python and Cython code, as well as porting existing code into the Sage codebase.
  • Improvements to the Sage Android App This project aims to improve upon the existing app by improving both internal structure and external user experience, the former by replacing and redoing certain modules of the app(JSON Parsing,HTTP Requests and Exception Handling) and the latter by redesigning the UI so it conforms to the latest standards and specifications of Android Design, as well as adding extra features to the code input such as Syntax Highlighting and options to record and store custom inserts
  • iSage - improving the Sage iOS apps There are several aspects of the Sage iOS apps that needs to be refreshed, improved or implemented. I propose to develop the ability to interact with several Sage services from the app, as well refresh the user interface for the app
  • Knot Theory Back-end Implementation The project mainly deals with the implementation of various links, knots presentations and calculating various related invariants. The main aim of the project is to achieve : Conversion between different representations of Knots and Links to mention a few :Gauss code to Braid Word, Braid word to DT code,Gauss code to DT code. Implementation of various invariants : Alexander Polynomial, Conway Polynomial. Stiefert Matrix, Jones Polynomial