# What SAGE Can Do

This is a high-level overview and list of functionality that is easily available from the standard SAGE interface. (The intended reader has never heard of Maxima, GAP, Singular, Givaro, etc.)

## Calculus

• SAGE has fairly complete symbolic manipulation capabilities, including symbolic and numerical integration, differentiation, limits, etc.

## Coding theory

• A wide range of basic functionality.

## Commutative Algebra

• Fast computation of Groebner basis.

## Cryptography

• Classical ciphers are well supported.

## Elementary Education

• The SAGE notebook (a graphical interface) is a useful tool for basic math education because of its flexible visualization/output capabilities.

## Finite Fields

• Very fast arithmetic over finite fields and extensions of finite fields (especially up to cardinality 2^16).

## Graphical Interface

• A web-browser based graphical interface, which anybody can easily use or share. The GUI can also be used for any math software that SAGE interfaces with.
• A wiki with math typesetting preconfigured.

## Group Theory

• Permutations groups
• Abelian groups
• Matrix groups (in particular, classical groups over finite fields)

## Interfaces

• Interpreter interfaces to Axiom, CoCoA, GAP, KASH, Macaulay2, Magma, Maple, Mathematica, Matlab, Maxima, MuPAD, Octave, and Singular.
• C/C++-library interfaces to NTL, PARI, Linbox, and mwrank.

## Linear Algebra

• Compute the reduced row echelon form of e.g. dense 20,000x20,000 matrices over GF(2) in seconds and 50MB of RAM.
• Computation of reduced row echelon forms of sparse matrices.
• Fast matrix multiplication, characteristic polynomial and echelon forms of dense matrices over QQ.

## Number Theory

• Compute Mordell-Weil groups of (many) elliptic curves using both invariants and algebraic 2-descents.
• A wide range of number theoretic functions, e.g., euler_phi, primes enumeration, sigma, tau_qexp, etc.
• Compute the number of points on an elliptic curve modulo p for all primes p less than a million in seconds.
• Optimized implementation of the Schoof-Elkies-Atkin point counting algorithm for counting points modulo p when p is large.
• An optimized modern quadratic Sieve for factoring integers n = p*q.
• Modular symbols for general weight, character, Gamma1, and GammaH.
• Modular forms for general weight >= 2, character, Gamma1, and GammaH.

## Numerical Computation

• Fast arithmetic and special functions with double precision real and complex numbers.
• Matrix and vector arithmetic, QR decomposition, system solving.