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
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  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  compile online  
various  client/server  CoCalc  How to use PARI/GP in the SageMathCloud (SageMathCloud is now CoCalc) 
Coding with PARI
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.
 C++: PARI can be used directly in C++. The code is intentionally written in a C++compatible style.
fpermissive
is sometimes 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
Resources
General
 Official FAQ
 PARI/GP FAQ
 Ateliers PARI/GP: Conference slides and other resources
 Comparison with Magma, GAP, and Singular
Tutorials
 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)
NonEnglish language
 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
 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
 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 (12 P)
Pages in category "PARI/GP"
The following 200 pages are in this category, out of 604 total.
(previous page) (next page)2
A
 A+B
 ABC problem
 Abstract type
 Abundant, deficient and perfect number classifications
 Accumulator factory
 Ackermann function
 Address of a variable
 AKS test for primes
 Aliquot sequence classifications
 Almost prime
 Amb
 Amicable pairs
 Anagrams/Deranged anagrams
 Angle difference between two bearings
 Anonymous recursion
 Antiprimes
 Apply a callback to an array
 Apéry's constant
 Arbitraryprecision integers (included)
 Archimedean spiral
 Arena storage pool
 Arithmeticgeometric mean
 Arithmeticgeometric mean/Calculate Pi
 Arithmetic/Complex
 Arithmetic/Integer
 Arithmetic/Rational
 Array concatenation
 Array length
 Arrays
 Assertions
 Associative array/Creation
 Associative array/Iteration
 Atomic updates
 Average loop length
 Averages/Arithmetic mean
 Averages/Mean angle
 Averages/Mean time of day
 Averages/Median
 Averages/Mode
 Averages/Pythagorean means
 Averages/Root mean square
 Averages/Simple moving average
B
C
 Caesar cipher
 CalkinWilf sequence
 Call a foreignlanguage function
 Call a function
 Call a function in a shared library
 Calmo numbers
 Card shuffles
 Carmichael 3 strong pseudoprimes
 Casesensitivity of identifiers
 Casting out nines
 Catalan numbers
 Catalan numbers/Pascal's triangle
 Catamorphism
 Chaos game
 Character codes
 Check Machinlike formulas
 Check that file exists
 Chernick's Carmichael numbers
 Chinese remainder theorem
 Cholesky decomposition
 Chowla numbers
 Circles of given radius through two points
 Closestpair problem
 Closures/Value capture
 Code segment unload
 Collections
 Combinations
 Combinations and permutations
 Combinations with repetitions
 Comma quibbling
 Comments
 Compare a list of strings
 Composite numbers k with no single digit factors whose factors are all substrings of k
 Compound data type
 Concurrent computing
 Conditional structures
 Conjugate transpose
 Constrained random points on a circle
 Continued fraction
 Continued fraction/Arithmetic/Construct from rational number
 Convert decimal number to rational
 Convert seconds to compound duration
 Conway's Game of Life
 Copy a string
 Count in factors
 Count in octal
 Count occurrences of a substring
 Count the coins
 Cramer's rule
 CRC32
 Create a file
 Create a twodimensional array at runtime
 Create an HTML table
 CSV data manipulation
 Cuban primes
 Cullen and Woodall numbers
 Cumulative standard deviation
 Currying
 Curzon numbers
 Cyclotomic polynomial
D
 Day of the week
 Deal cards for FreeCell
 Deceptive numbers
 Deepcopy
 Delete a file
 Deming's funnel
 Department numbers
 Detect division by zero
 Determinant and permanent
 Determine if a string is numeric
 Digit fifth powers
 Digital root
 Digital root/Multiplicative digital root
 Dijkstra's algorithm
 Distance and Bearing
 Documentation
 Dot product
 Dragon curve
 Draw a cuboid
 Duffinian numbers
 Dutch national flag problem
 Dynamic variable names
E
 Egyptian division
 Elementwise operations
 Elliptic curve arithmetic
 Emirp primes
 Empty directory
 Empty program
 Empty string
 Enforced immutability
 Entropy
 Entropy/Narcissist
 Environment variables
 Equilibrium index
 Ethiopian multiplication
 EuclidMullin sequence
 Euler's constant 0.5772...
 Euler's sum of powers conjecture
 Evaluate binomial coefficients
 Even or odd
 Evolutionary algorithm
 Exceptions
 Exceptions/Catch an exception thrown in a nested call
 Executable library
 Execute a system command
 Execute Brain****
 Execute HQ9+
 Exponentiation operator
 Exponentiation order
 Extend your language
 Extensible prime generator
 Extreme floating point values
F
 Factorial
 Factors of a Mersenne number
 Factors of an integer
 Farey sequence
 Fast Fourier transform
 Faulhaber's formula
 Fermat numbers
 Fibonacci nstep number sequences
 Fibonacci sequence
 Fibonacci word
 Fibonacci word/fractal
 File extension is in extensions list
 File input/output
 Filter
 Find adjacent primes which differ by a square integer
 Find common directory path
 Find first and last set bit of a long integer
 Find largest left truncatable prime in a given base
 Find limit of recursion
 Find palindromic numbers in both binary and ternary bases
 Find prime numbers of the form n*n*n+2
 Find squares n where n+1 is prime
 Find the last Sunday of each month
 Find the missing permutation
 Firstclass functions
 Firstclass functions/Use numbers analogously
 Five weekends
 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