Category:PARI/GP
This programming language may be used to instruct a computer to perform a task.
Official website 

Execution method:  Interpreted or compiled 

Garbage collected:  Yes 
Parameter passing methods:  By reference, By value 
Type strength:  Weak 
Type checking:  Dynamic 
Lang tag(s):  parigp, c 
See Also: 
PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers etc., and a lot of transcendental functions.
PARI/GP is composed of two parts: a C library called PARI and an interface, gp, to this library. GP scripts are concise, easy to write, and resemble mathematical language. (Terminology: the scripting language of gp is called GP.)
PARI was written by Henri Cohen and others at Université de Bordeaux and is now maintained by Karim Belabas. gp was originally written by Dominique Bernardi, then maintained and enhanced by Karim Belabas and Ilya Zakharevich, and finally rewritten by Bill Allombert.
Getting PARI/GP[edit]
PARI/GP can be used in many different operating systems. This is a reasonably comprehensive list of currentlysupported systems; for other systems, please use the mailing lists.
Operating system  Kind  Type of install  Link  How to install 

Windows  various  installer (stable or development)  official site  run installer 
XP, Vista, 7, 8, 10  standalone binaries (stable or development)  official site  run  
various  standalone binaries (daily)  official site  run  
Linux  Ubuntu/Debian  package manager  Debian packages  sudo aptget install parigp

Fedora  package manager  Fedora packages  sudo dnf install parigp
 
Arch  package manager  Arch packages  sudo pacman S pari
 
RHEL/CentOS  package manager  sudo yum install parigp
 
FreeBSD  package manager  FreeBSD Ports Search  sudo pkg install pari2.11.3,2
 
various  package manager  Homebrew formula  brew install pari
 
various  build from source  official site  Building PARI/GP in Linux  
macOS  at least El Capitan (10.11)  DMG installer (stable or development)  official site  Open dmg, drag to Applications (note: window may start minimized) 
at least El Capitan (10.11)  standalone binary (stable or development)  official site  run  
unknown, at least OS X (10.?)  package manager  MacPorts (and portfile)  sudo port install pari
 
unknown  package manager  Homebrew formula  brew install pari
 
Android  various  package manager  fdroid  Install via FDroid client or install APK directly 
various  package manager  Google Play  
various  precompiled binary  official site  
various  build from source  github  Building and Installing (note: requires Android SDK Tools and Android NDK)  
various  build from source  official site  Installing PariDroid  
iOS  ?  Build from source on iSH  Mailing list post  Turn on iSh Disable Screen Dimming Setting, then apt get git gcc && git clone https://pari.math.ubordeaux.fr/git/pari.git && cd pari && ./Configure && make install

iOS 8+  app  sagemath  Click the "+" in the topright to start a new program, then click and hold on "Sage" at the top until the "Select Language" dropdown appears, then choose GP. (You can also use the wrapper function pari in a Sage snippet.)
 
online  Chrome, Firefox, Internet Explorer  local Javascript  Emscripten  
Chrome, Firefox  local Javascript  WebAssembly  
Chrome, Firefox, Internet Explorer  client/server  coding ground  
various  client/server  CoCalc  How to use PARI/GP in the SageMathCloud (SageMathCloud is now CoCalc) 
Coding with PARI[edit]
The most common way to use PARI is through the gp calculator, using its own scripting language, GP. But there are other interfaces to PARI beside gp:
 PariGP on EmacsWiki, PariEmacs
 Paritty
 pariGUIde
 vimnotebook (see also the author's video on using gp from vim)
 Jupyter kernel
If you want to program with PARI, many languages are supported:
 C: PARI is written in C, so it's very easy to either write your own programs or extend gp using C.
 The gp2c utility converts GP scripts into executable C code.
 For use with the Gnu Mpc library, there is also PariGnump.
 PariTwine is a glue library for various math libraries including GMP, GNU MPFR, GNU MPC, FLINT, ARB and CMH.
 C++: PARI can be used directly in C++. The code is intentionally written in a C++compatible style.
fpermissive
may be useful when compiling with g++.  Python:
 SageMath (or SAGE) is a Pythonbased system that includes GP among others
 paripython
 cypari/cypari2 is a fork of the GP component of SageMath (see also the voluminous CyPari2 Documentation)
 Perl:
 Common Lisp: Use Pari (CLISP).
 Mathematica: A quick tutorial using MathLink is available.
See also[edit]
Resources[edit]
General[edit]
 Official FAQ
 PARI/GP FAQ
 Ateliers PARI/GP: Conference slides and other resources
 Comparison with Magma, GAP, and Singular
Tutorials[edit]
 Official tutorial by The PARI Group (58 pp., 2018)
 Tutorial on Elliptic Curves by Bill Allombert and Karim Belabas (5 pp., 2016)
 Beginning PARI Programming for CSE/MATH 467 by W. Dale Brownawell (7 pp., 2014)
 Class notes including PARI/GP tutorial and sample code by Masha Vlasenko (2013)
 Tutorial by Siman Wong (6 pp., 2009)
 Exploring binary numbers with PARI/GP calculator by Rick Regan (appx. 4 pp., 2009)
 Class notes, parts 12345sieve by Benjamin L. Levitt (41 pp., 2009; now offline?)
 Introduction by Keith Conrad (7 pp., 2008)
 PARI/GP programming for basic cryptography by Minh Van Nguyen (appx. 3 pp., 2008); also appears in an extended version (9 pp., 2008)
 Tutorial by Robert B. Ash (20 pp., 2007)
 The Pari Package On Linux, by KlausPeter Nischke (3 pp., 1995)
 Pari/GP Tutorial by Akinola Richard Olatokunbo (now offline; archived version)
 Parallel Computation by Bill Allombert
NonEnglish language[edit]
 French tutorials (slides) by Bill Allombert (2017):
 Introduction à PARI/GP (13 pp.)
 Programmation GP (11 pp.)
 Théorie algébrique des nombres (31 pp.)
 Théorie algébrique des nombres avancée (22 pp.)
 Courbes elliptiques sur les corps finis (4 pp.)
 Erste Schritte mit PARI/GP by Lars Fischer (13 pp., 2007; German)
 Pari Gp مع NotPad++ by NoorDeen Rahmani (2020; 2:46; Arabic)  setting up Notepad++ for syntax highlighting for PARI/GP.
Video tutorials[edit]
 Pari/GP Tutorial: Basics by Leandro Junes (2020, 19:04)
 Video demo of RSA in PARI/GP by Maren1955 (2014, 17:39)
 Video tutorials, parts 1 2 3 4 (2011, appx. 20 minutes)
Papers on PARI/GP[edit]
 Karim Belabas and Henri Cohen, Modular Forms in Pari/GP, Research in the Mathematical Sciences 5:37 (2018)
 Henri Cohen, Expansions at Cusps and Petersson Products in Pari/GP, Elliptic Integrals, Functions, and Modular Forms in Quantum Field Theory, Nov 2017, Zeuthen, Germany. Springer Wien, Elliptic Integrals, Functions, and Modular Forms in Quantum Field Theory. (2018)
 Karim Belabas and JeanFrançois Jaulent, The logarithmic class group package in PARI/GP, Mathematical Publications of Besançon, Algebra and Number Theory (2016), pp. 5–18.
 Bill Alombert, A new interpretor for PARI/GP, Journal de Théorie des Nombres de Bordeaux 20:3 (2008), pp. 531–541. (English)
 Paul Zimmermann, The Ups and Downs of PARI/GP in the last 20 years, Explicit Methods in Number Theory, October 15th19th 2007
 Robert H. Lewis and Michael Wester, Comparison of polynomialoriented computer algebra systems, ACM SIGSAM Bulletin 33:4 (1999), pp. 513.
 Henri Cohen, Computing in algebraic number fields. In P. L. Butzer (ed.) et al., Karl der Grosse und sein Nachwirken. 1200 Jahre Kultur und Wissenschaft in Europa. Band 2: Mathematisches Wissen. Turnhout: Brepols. 505520 (1998)
Subcategories
This category has the following 3 subcategories, out of 3 total.
@
 PARI/GP Implementations (empty)
 PARI/GP User (11 P)
Pages in category "PARI/GP"
The following 200 pages are in this category, out of 571 total.
(previous page) (next page)G
 Gamma function
 Gaussian elimination
 General FizzBuzz
 Generate Chess960 starting position
 Generate lower case ASCII alphabet
 Generator/Exponential
 Generic swap
 Get system command output
 Gray code
 Greatest common divisor
 Greatest element of a list
 Greatest subsequential sum
 Greedy algorithm for Egyptian fractions
 Guess the number
 Guess the number/With feedback
 Guess the number/With feedback (player)
 GUI/Maximum window dimensions
H
 Hailstone sequence
 Hamming numbers
 Happy numbers
 Harmonic series
 Harshad or Niven series
 Hash from two arrays
 Haversine formula
 Hello world/Graphical
 Hello world/Newbie
 Hello world/Newline omission
 Hello world/Standard error
 Hello world/Text
 Heronian triangles
 Hickerson series of almost integers
 Higherorder functions
 History variables
 Hofstadter Q sequence
 HofstadterConway $10,000 sequence
 Holidays related to Easter
 Horner's rule for polynomial evaluation
 Hostname
I
 Identity matrix
 Idiomatically determine all the characters that can be used for symbols
 Idiomatically determine all the lowercase and uppercase letters
 Idoneal numbers
 Implicit type conversion
 Include a file
 Increment a numerical string
 Infinity
 Input/Output for lines of text
 Input/Output for pairs of numbers
 Integer comparison
 Integer overflow
 Integer roots
 Integer sequence
 Interactive programming (repl)
 Introspection
 Inverted syntax
 Iterated digits squaring
K
L
 Langton's ant
 Largest int from concatenated ints
 Largest prime factor
 Last Friday of each month
 Leap year
 Least common multiple
 Left factorials
 Letter frequency
 Levenshtein distance
 Linear congruential generator
 List comprehensions
 Literals/Floating point
 Literals/Integer
 Literals/String
 Logical operations
 Long multiplication
 Lookandsay sequence
 Loop over multiple arrays simultaneously
 Loops/Break
 Loops/Continue
 Loops/Dowhile
 Loops/Downward for
 Loops/For
 Loops/For with a specified step
 Loops/Foreach
 Loops/Infinite
 Loops/N plus one half
 Loops/Nested
 Loops/While
 LU decomposition
 LucasLehmer test
 Ludic numbers
M
 Machine code
 Magic squares of doubly even order
 Magic squares of odd order
 Mandelbrot set
 Map range
 Matrix multiplication
 Matrix transposition
 Matrixexponentiation operator
 Maximum triangle path sum
 MD4
 MD5
 Meissel–Mertens constant
 Memory allocation
 Menu
 Mersenne primes
 Metaprogramming
 Middle three digits
 Miller–Rabin primality test
 Minimum number of cells after, before, above and below NxN squares
 Modular arithmetic
 Modular exponentiation
 Modular inverse
 Monte Carlo methods
 Monty Hall problem
 Morse code
 Motzkin numbers
 Multifactorial
 Multiline shebang
 Multiple regression
 Multiplication tables
 Multiplicative order
 Mutual recursion
N
 N'th
 Narcissist
 Narcissistic decimal number
 Neighbour primes
 Nice primes
 Noncontinuous subsequences
 Nondecimal radices/Convert
 Nondecimal radices/Input
 Nondecimal radices/Output
 Nth root
 Null object
 Number names
 Number reversal game
 Numeric error propagation
 Numerical integration
 Numerical integration/GaussLegendre Quadrature
O
P
 Palindrome detection
 Palindromic primes
 Pangram checker
 Paraffins
 Parallel calculations
 Parse commandline arguments
 Parsing/RPN calculator algorithm
 Partial function application
 Partition an integer x into n primes
 Pascal matrix generation
 Pascal's triangle
 Pascal's triangle/Puzzle
 Password generator
 Pathological floating point problems
 Perfect numbers
 Perfect shuffle
 Permutations
 Permutations/Derangements
 Permutations/Rank of a permutation
 Pernicious numbers
 Pi
 Pick random element
 Piprimes
 Playing cards
 Plot coordinate pairs
 Pointers and references
 Polynomial long division
 Polynomial regression
 Polyspiral
 Population count
 Power set
 Price fraction
 Primality by trial division
 Primality by Wilson's theorem
 Prime conspiracy
 Prime decomposition
 Prime triplets
 Primorial numbers
 Probabilistic choice
 Program name
 Execution method/Interpreted
 Execution method/Compiled
 Garbage collection/Yes
 Parameter passing/By reference
 Parameter passing/By value
 Typing/Weak
 Typing/Checking/Dynamic
 Programming Languages
 Programming paradigm/Dynamic
 Programming paradigm/Functional
 Programming paradigm/Procedural
 Mathematical programming languages