Short introduction to SAGE: Software for Algebra and Geometry Experimentation

SAGE is a framework for number theory, algebra, and geometry computation. The implementation is due to William Stein and over 30 other contributors from around the world. It is open source and freely available under the terms of the GNU General Public License (GPL).

SAGE is a Python library with a customized interpreter. It is written in Python, C++, and C (via Pyrex). Python is an open source object-oriented interpreted language, with a large number of libraries, e.g., for numerical analysis, which are available to users of SAGE. Python can also be accessed in library mode from C/C++ programs.

SAGE will provide a unified interface to several important open source libraries, including SINGULAR (for commutative algebra) and GAP (for group theory), John Cremona's MWRANK library (for elliptic curves), the PARI library for number theory, and Shoup's number theory library NTL, Maxima (for symbolic manipulation). There are also interfaces to many commercial or closed source CAS's such as Maple, KASH/KANT, MAGMA, Mathematica, Axiom, and many others. For graphics, SAGE includes Matplotlib (for 2-d and some 3-d graphics) and tachyon (a 3-d ray tracer).

The design of SAGE is heavily by the carefully thought out and mature class structure of the closed source computer algebra program MAGMA. However, SAGE is not meant to be an clone of MAGMA and other packages (such as GAP and Mathematica) have also played an influencial role.

The main longterm goals and guiding principles for SAGE:

Download SAGE, an installation guide and a tutorial, from its webpage

http://sage.scipy.org/.

Although SAGE uses Python and PARI and other packages, keep in mind that it is not necessary to have this software preinstalled on the computer. The installation of SAGE is really designed to be relatively painless, but if there are any problems, please ask (the web page has links to the email lists for SAGE support). There are installation instructions at http://sage.scipy.org/sage/doc/html/inst/index.html. Moreover, if SAGE is installed once, upgrading to the newest version is especially easy with the upgrade command option (this is described on the website given above and assumes wget is installed and an internet connection).

Once SAGE is installed into a directory such as sage-x.y.z, there will be a subdirectory called bin. In Linux, cd to this bin subdirectory and type the command "./sage" to start SAGE and display the SAGE prompt sage:. This is one way to use SAGE. Another way is to next type into SAGE notebook(open_viewer=True) at the SAGE prompt, which (a) starts the SAGE server running (loading the previously used worksheet, if any) and (b) opens the firefox browser (or starts a new tab if it is already open) and displays the SAGE notebook webpage.

At the SAGE prompt, type factor(100) (hit return) and then enter Ctrl-d (hold the Ctrl ket and d at the same time) or quit (return) SAGE will first factor 100 and then exit. To do this in the notebook, enter factor(100) into a cell (an empty white window in the www browser) and then enter shift-enter. SAGE will display the factorization in the space just below the cell. To exit, the notebook version of SAGE, first go back to the command line, and enter Ctrl-c. Next, exit the browser. This quits SAGE's notebook.

There are more examples, in the tutorial, constructions, and reference manuals, available on the SAGE webpage. Please try them out!

SAGE is in an early stage of development, but is actively growing, and is already usable. There is a SAGE discussion board, bug-tracker, and wish list. Please visit

http://sage.scipy.org/

or

http://sage.math.washington.edu/sage/

or

http://echidna.maths.usyd.edu.au/sage/

or

email William Stein at [email protected]

for more information. Above all, have fun with SAGE!


David Joyner [email protected]

William Stein [email protected]

Last Updated 11-19-2006.