GSoC/GCI Archive
Google Summer of Code 2013

Sage Mathematical Software System

Web Page: https://docs.google.com/document/d/1ipzvwbhfujaubDe0QVO-V9JmmRcLZvitaeXh4r2WNqA/pub

Mailing List: https://groups.google.com/forum/#!forum/sage-gsoc

Sage is a GPLed open-source mathematical software system. It is designed to be more than just a computer algebra system: it's a complete environment for doing mathematics and related calculations. It is based on a vast collection of existing open-source software tools and libraries and ties them together via Python. This is also the primary interface language for the user and its object-oriented way of expressing concepts is used to express calculations - of course, there are also many “normal” functions :-)


Behind the scenes, the Sage library executes the commands and calculations by its own algorithms or by accessing appropriate routines from the included software packages. On top of that, there are various ways how users can interact with Sage, most notably a dynamic web-site called “Notebook”.


 

The mission of Sage is to create a viable open-source alternative to all other major proprietary mathematical software systems.

 

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 neighboring fields like Statistics and Physics.

 

Projects

  • Get Sage ready for Linux distributions Sage is currently shipped as a software distribution that, next to genuine code, includes all dependencies as packages. Moreover, the core library and python modules cannot be compiled in a straightforward way, as most linux distributions expect. Aim of this project is to detach the build process of sage ("the software") from sage ("the distribution"). The goal is a build system that works within the context of Sage as well as for any gnu/linux distribution that ships the dependencies for Sage.
  • Mathematical Functions Library Sage interfaces with multiple third-party libraries, such as MPFR, GSL, GP/PARI, mpmath, and Maxima, for numerical evaluation of special functions. There are significant discrepancies between these backends in the performance for numerical approximations of the same expression. An initial benchmark reveals, for example, that calculating spherical_bessel_J(1, 5.2) with SciPy is over 100 times faster than with Maxima.
  • Overall improvement of the Sage Android application Updating the Sage Android application to include new features and functionality, as well as an improved interface for a simpler experience and improved usability.