Monday, March 19, 2007

Sage - Web environment for Mathematics

Yesterday I decided to check the status of the SAGE project. I had first heard about it an uncertain number of months ago, but didn't take the time to try it and see what it is all about.

It is a very interesting project in many respects. SAGE stands for:

Software for Algebra and Geometry Experimentation

But it's potentially much more than that. It is a web-based, notebook-style, mathematics environment which brings together, under a unified interface, a host of very powerful GPL'd Scientific apps, plus the python language.

Python glues the whole framework together, but is also available as a programming language. There is even version control for notebooks provided by Mercurial.

The full list of components is listed below:
  1. bzip2: high-quality data compressor
  2. ec: elliptic curve invariants and enumeration
  3. GAP: Groups theory and Discrete Math
  4. genus2reduction: curve data computation
  5. GD: Dynamic graphics generation tool
  6. GMP: Arbitrary Precision Arithmetic Library
  7. GSL: Gnu Scientific Library
  8. IPython: interactive shell
  9. PNG: bitmap image support
  10. Lcalc: L-functions calculator
  11. Matplotlib: 2d plotting
  12. Maxima: computer algebra system
  13. Mercurial revision control system
  14. MoinMoin Wiki
  15. MPFI: Arbitrary precision interval arithmetic
  16. MPFR: Arbitrary precision real arithmetic
  17. MWRANK: elliptic curve calculator
  18. NetworkX: Graph theory
  19. NTL: Number theory C++ library
  20. Numpy: Numerical linear algebra
  21. OpenSSL: Secure networking
  22. PALP: A Package for Analyzing Lattice Polytopes
  23. PARI: Number theory calculator
  24. pexpect: pseudo-tty control
  25. pycrypto: Python implementation of cryptosystems
  26. PyOpenSSL: Python interface to OpenSSL
  27. Python: interpreted language
  28. Readline
  29. SageX -- compiled language; based on pyrex
  30. Singular: fast commutative and noncommutative algebra
  31. SQLite: Relation database
  32. Sympow: L-function calculator
  33. Tachyon: lightweight 3d ray tracer
  34. Twisted: Python networking library
  35. ZODB: Object-oriented database
SAGE is distributed as a fat binary for multiple platforms, so that it can be used immediately upon download. It can also be used on the console but I recommend running the Web interface.

Despite its version number, 2.3, I think the notebook interface could be improved to facilitate access to components. But its a very usable environment for both research and teaching, and has a very extensive documentation set.

Try it!

No comments: