title: PARI/GP
text: # PARI/GP
  
  PARI/GP is a computer algebra system with the main aim of facilitating number theory computations. Versions 2.1.0 and higher are distributed under the GNU General Public License. It runs on most common operating systems.
  
  ## System overview
  
  The PARI/GP system is a package that is capable of doing formal computations on recursive types at high speed; it is primarily aimed at number theorists. Its three main strengths are its speed, the possibility of directly using data types that are familiar to mathematicians, and its extensive algebraic number theory module.
  
  The PARI/GP system consists of the following standard components:
  
  * PARI is a C library, allowing for fast computations, and which can be called from a high-level language application (for instance, written in C, C++, Pascal, Fortran, Perl, or Python).
  * gp is an easy-to-use interactive command line interface giving access to the PARI functions. It functions as a sophisticated programmable calculator which contains most of the control instructions of a standard language like C. GP is the name of gp's scripting language which can be used to program gp.
  
  Also available is gp2c, the GP-to-C compiler, which compiles GP scripts into the C language and transparently loads the resulting functions into gp. The advantage of this is that gp2c-compiled scripts will typically run three to four times faster. gp2c understands almost all of GP.
  
  PARI/GP performs arbitrary precision calculations (e.g., the significand can be millions of digits long—and billions of digits on 64-bit machines). It can compute factorizations, perform elliptic curve computations and perform algebraic number theory calculations. It also allows computations with matrices, polynomials, power series, algebraic numbers and implements many special functions.
  
  PARI/GP comes with its own built-in graphical plotting capability. PARI/GP has some symbolic manipulation capability, e.g., multivariate polynomial and rational function handling. It also has some formal integration and differentiation capabilities.
  
  PARI/GP can be compiled with GMP (GNU Multiple Precision Arithmetic Library) providing faster computations than PARI/GP's native arbitrary-precision kernel.
  
  ## History
  
  PARI/GP's progenitor was a program named Isabelle, an interpreter for higher arithmetic, written in 1979 by Henri Cohen and François Dress at the Université Bordeaux 1.
  
  PARI/GP was originally developed in 1985 by a team led by Henri Cohen at Laboratoire A2X and is now maintained by Karim Belabas at the Université Bordeaux 1 with the help of many volunteer contributors.
  
  ### Etymology
  
  The name PARI is a pun about the project's early stages when the authors started to implement a library for "Pascal ARIthmetic" in the Pascal programming language (although they quickly switched to C), and after "pari de Pascal" (Pascal's Wager).
  
  The first version of the gp calculator was originally called GPC, for Great Programmable Calculator. The trailing C was eventually dropped.
  
  ## Usage examples
  
  Below are some samples of the gp calculator usage:
  
  