Main Page | See live article | Alphabetical index

PARI-GP computer algebra system

PARI-GP is a computer algebra system with the main aim of facilitating number theory computations. As of September 2002, the stable version is 2.1.14. It is free software and since Version 2.1.0 it is distributed under the terms of the GNU General Public License as published by the Free Software Foundation. It runs on most common operating systems.

PARI-GP was originally developed in 1987 by a team led by Henry Cohen at Laboratoire A2X, University of Bordeaux and is now maintained by Karim Belabas at the University Paris-Sud Orsay with the help of many volunteer contributors.

The PARI system is a package which is capable of doing formal computation on recursive types at high speed. It is primarily aimed at number theorists, but can be used by anybody whose primary need is speed. It can be used to compute factorizations, to perform elliptic curve computations and perform algebraic number theory. It also allows to compute with matrices, polynomials, power series, algebraic numbers and implements many special functions.

Although quite an amount of symbolic manipulation is possible in PARI, the system does very badly compared to much more sophisticated systems like AXIOM*, Macsyma, Maple, Mathematica or Reduce on such manipulations (e.g. multivariate polynomials, formal integration and so on). On the other hand, the three main advantages of the system are its speed (which can be between 5 and 100 times better on many computations), the possibility of using directly data types which are familiar to mathematicians, and its extensive algebraic number theory module which has no equivalent in the above-mentioned systems.

It is possible to use PARI in two different ways:

  1. as a library, which can be called from an upper-level language application (for instance written in C, C++, Pascal or Fortran).
  2. as a sophisticated programmable calculator, named gp, which contains most of the control instructions of a standard language like C. It can be programmed in a language called GP.

External link: