Category:PARI/GP: Difference between revisions
(now works on Chrome!) |
(→Coding with PARI: PariTwine) |
||
(50 intermediate revisions by 3 users not shown) | |||
Line 20: | Line 20: | ||
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. |
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 |
PARI/GP can be used in many different operating systems. This is a reasonably comprehensive list of currently-supported systems; for other systems, please use the [https://pari.math.u-bordeaux.fr/lists-index.html mailing lists]. |
||
{| class="wikitable" |
|||
Windows precompiled binaries are available: an installer, stand-alone stable and development versions, plus a nightly build with the very latest changes. [http://pari.math.u-bordeaux.fr/pub/pari/mac/snapshots/ Mac snapshots] are also available. Linux users can install PARI/GP with their favorite package manager (RPM, dpkg, apt, etc.) or build it from source. [http://math.crg4.com/software.html#pari Instructions] are available for compiling. |
|||
|- |
|||
! Operating system |
|||
Android phones and tablets can use [https://code.google.com/p/paridroid/ paridroid] (also [https://github.com/FreeMonad/paridroid on github]). |
|||
! Kind |
|||
! Type of install |
|||
While an iPhone/iPad version has not been developed, [https://itunes.apple.com/us/app/sage-math/id496492945?mt=8 sage-math] includes PARI and GP commands can be invoked with the wrapper function <code>pari</code>. |
|||
! Link |
|||
! How to install |
|||
Finally, gp can be used online through [http://pari.math.u-bordeaux.fr/gp.html the PARI/GP site] (via Emscripten), [http://www.compileonline.com/execute_pari_online.php compile online] or the [https://cloud.sagemath.com/ SageMath cloud] (see [http://youtu.be/CzB6T7Nvc-s How to use PARI/GP in the SageMathCloud]). |
|||
|- |
|||
| rowspan="3" | Windows |
|||
| various |
|||
| installer (stable or development) |
|||
| [http://pari.math.u-bordeaux.fr/download.html#windows official site] |
|||
| run installer |
|||
|- |
|||
| XP, Vista, 7, 8, 10 |
|||
| standalone binaries (stable or development) |
|||
| [http://pari.math.u-bordeaux.fr/download.html#windows official site] |
|||
| run |
|||
|- |
|||
| various |
|||
| standalone binaries (daily) |
|||
| [http://pari.math.u-bordeaux.fr/pub/pari/windows/snapshots/ official site] |
|||
| run |
|||
|- |
|||
| rowspan="7" | Linux |
|||
| Ubuntu/Debian |
|||
| package manager |
|||
| [https://packages.debian.org/stretch/pari-gp Debian packages] |
|||
| <code>sudo apt-get install pari-gp</code> |
|||
|- |
|||
| Fedora |
|||
| package manager |
|||
| [https://apps.fedoraproject.org/packages/pari-gp Fedora packages] |
|||
| <code>sudo dnf install pari-gp</code> |
|||
|- |
|||
| Arch |
|||
| package manager |
|||
| [https://www.archlinux.org/packages/community/x86_64/pari/ Arch packages] |
|||
| <code>sudo pacman -S pari</code> |
|||
|- |
|||
| RHEL/CentOS |
|||
| package manager |
|||
| |
|||
| <code>sudo yum install pari-gp</code> |
|||
|- |
|||
| FreeBSD |
|||
| package manager |
|||
| [https://svnweb.freebsd.org/ports/head/math/pari/?view=log FreeBSD Ports Search] |
|||
| <code>sudo pkg install pari-2.11.3,2</code> |
|||
|- |
|||
| various |
|||
| package manager |
|||
| [https://formulae.brew.sh/formula-linux/pari Homebrew formula] |
|||
| <code>brew install pari</code> |
|||
|- |
|||
| various |
|||
| build from source |
|||
| [http://pari.math.u-bordeaux.fr/download.html official site] |
|||
| [http://math.crg4.com/software.html#pari Building PARI/GP in Linux] |
|||
|- |
|||
| rowspan="4" | macOS |
|||
| at least El Capitan (10.11) |
|||
| DMG installer (stable or development) |
|||
| [http://pari.math.u-bordeaux.fr/download.html#macos official site] |
|||
| Open dmg, drag to Applications (note: window may start minimized) |
|||
|- |
|||
| at least El Capitan (10.11) |
|||
| standalone binary (stable or development) |
|||
| [http://pari.math.u-bordeaux.fr/download.html#macos official site] |
|||
| run |
|||
|- |
|||
| unknown, at least OS X (10.?) |
|||
| package manager |
|||
| [https://ports.macports.org/port/pari/ MacPorts] (and [https://github.com/macports/macports-ports/blob/master/math/pari/Portfile portfile]) |
|||
| <code>sudo port install pari</code> |
|||
|- |
|||
| unknown |
|||
| package manager |
|||
| [https://formulae.brew.sh/formula/pari Homebrew formula] |
|||
| <code>brew install pari</code> |
|||
|- |
|||
| rowspan="5" | Android |
|||
| various |
|||
| package manager |
|||
| [https://f-droid.org/packages/fr.ubordeaux.math.paridroid/ f-droid] |
|||
| Install via F-Droid client or install APK directly |
|||
|- |
|||
| various |
|||
| package manager |
|||
| [https://play.google.com/store/apps/details?id=fr.ubordeaux.math.paridroid&hl=en Google Play] |
|||
| |
|||
|- |
|||
| various |
|||
| precompiled binary |
|||
| [http://pari.math.u-bordeaux.fr/download.html#paridroid official site] |
|||
| |
|||
|- |
|||
| various |
|||
| build from source |
|||
| [https://github.com/FreeMonad/paridroid github] |
|||
| [https://github.com/FreeMonad/paridroid/wiki/Build-Environment Building] and [https://github.com/FreeMonad/paridroid/wiki/Installation Installing] (note: requires Android SDK Tools and Android NDK) |
|||
|- |
|||
| various |
|||
| build from source |
|||
| [http://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=paridroid.git;a=summary official site] |
|||
| [https://pari.math.u-bordeaux.fr/paridroid/index.html Installing PariDroid] |
|||
|- |
|||
| rowspan="2" | iOS |
|||
| ? |
|||
| Build from source on [https://ish.app/ iSH] |
|||
| [https://pari.math.u-bordeaux.fr/archives/pari-users-2111/msg00021.html Mailing list post] |
|||
| Turn on iSh Disable Screen Dimming Setting, then <code>apt get git gcc && git clone https://pari.math.u-bordeaux.fr/git/pari.git && cd pari && ./Configure && make install</code> |
|||
|- |
|||
| iOS 8+ |
|||
| app |
|||
| [https://itunes.apple.com/us/app/sage-math/id496492945?mt=8 sage-math] |
|||
| Click the "+" in the top-right 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 <code class="language-sage">pari</code> in a Sage snippet.) |
|||
|- |
|||
| rowspan="4" | online |
|||
| Chrome, Firefox, Internet Explorer |
|||
| local Javascript |
|||
| [http://pari.math.u-bordeaux.fr/gp.html Emscripten] |
|||
| |
|||
|- |
|||
| Chrome, Firefox |
|||
| local Javascript |
|||
| [http://pari.math.u-bordeaux.fr/gpexpwasm.html WebAssembly] |
|||
| |
|||
|- |
|||
| Chrome, Firefox, Internet Explorer |
|||
| client/server |
|||
| [https://www.tutorialspoint.com/execute_pari_online.php coding ground] |
|||
| |
|||
|- |
|||
| various |
|||
| client/server |
|||
| [https://cocalc.com/ CoCalc] |
|||
| [http://youtu.be/CzB6T7Nvc-s How to use PARI/GP in the SageMathCloud] (SageMathCloud is now CoCalc) |
|||
|} |
|||
== Coding with PARI == |
== Coding with PARI == |
||
Line 36: | Line 168: | ||
* [http://go.helms-net.de/sw/paritty/pari_tty_einf_en.html Pari-tty] |
* [http://go.helms-net.de/sw/paritty/pari_tty_einf_en.html Pari-tty] |
||
* [http://www.skalatan.de/pariguide/ pariGUIde] |
* [http://www.skalatan.de/pariguide/ pariGUIde] |
||
* [https://github.com/baruchel/vim-notebook vim-notebook] (see also [https://www.youtube.com/watch?v=vHiCpRQiJuU |
* [https://github.com/baruchel/vim-notebook vim-notebook] (see also [https://www.youtube.com/watch?v=vHiCpRQiJuU the author's video on using gp from vim]) |
||
* [https://github.com/jdemeyer/pari_jupyter Jupyter kernel] |
* [https://github.com/jdemeyer/pari_jupyter Jupyter kernel] |
||
If you want to |
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. |
* [[C]]: PARI is written in C, so it's very easy to either write your own programs or extend gp using C. |
||
** The [http://pari.math.u-bordeaux.fr/pub/pari/manuals/gp2c/gp2c.html gp2c] utility converts GP scripts into executable C code. |
|||
** For use with the Gnu Mpc library, there is also [http://www.multiprecision.org/?prog=pari-gnump Pari-Gnump]. |
** For use with the Gnu Mpc library, there is also [http://www.multiprecision.org/?prog=pari-gnump Pari-Gnump]. |
||
** [https://www.multiprecision.org/paritwine/ 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. <code>-fpermissive</code> is sometimes useful when compiling with g++. |
|||
* [[C++]]: PARI can be used directly in C++. The code is intentionally written in a C++-compatible style. <code>-fpermissive</code> may be useful when compiling with g++. |
|||
* [[Python]]: [http://www.sagemath.org/ SAGE] is a Python-based system that includes PARI among others; there is a [http://code.google.com/p/pari-python/ pari-python] library as well. |
|||
* [[Python]]: |
|||
* [[Perl]]: Use [http://search.cpan.org/dist/Math-Pari/ Math::Pari] or [https://github.com/FreeMonad/GPP GPP]. |
|||
** [http://www.sagemath.org/ SageMath] (or SAGE) is a Python-based system that includes GP among others |
|||
** [http://code.google.com/p/pari-python/ pari-python] |
|||
** [https://pypi.python.org/pypi/cypari/ cypari]/[https://github.com/sagemath/cypari2 cypari2] is a fork of the GP component of SageMath (see also the voluminous [https://buildmedia.readthedocs.org/media/pdf/cypari2/latest/cypari2.pdf CyPari2 Documentation]) |
|||
* [[Perl]]: |
|||
** [http://search.cpan.org/dist/Math-Pari/ Math::Pari] |
|||
** [https://github.com/FreeMonad/GPP GPP] |
|||
* [[Common Lisp]]: Use [http://clisp.sourceforge.net/impnotes/pari.html Pari] ([[CLISP]]). |
* [[Common Lisp]]: Use [http://clisp.sourceforge.net/impnotes/pari.html Pari] ([[CLISP]]). |
||
* [[Mathematica]]: A [http://pari.math.u-bordeaux.fr/dochtml/mathlink.html quick tutorial using MathLink] is available. |
* [[Mathematica]]: A [http://pari.math.u-bordeaux.fr/dochtml/mathlink.html quick tutorial using MathLink] is available. |
||
Line 53: | Line 192: | ||
== Resources == |
== Resources == |
||
=== General === |
=== General === |
||
*[http://pari.math.u-bordeaux.fr/faq.html Official FAQ] |
|||
*[http://www.math.utah.edu/faq/pari/pari.html PARI/GP FAQ] |
*[http://www.math.utah.edu/faq/pari/pari.html PARI/GP FAQ] |
||
*[http://pari.math.u-bordeaux.fr/ateliers.html Ateliers PARI/GP]: Conference slides and other resources |
*[http://pari.math.u-bordeaux.fr/ateliers.html Ateliers PARI/GP]: Conference slides and other resources |
||
*[http://hyperpolyglot.org/computer-algebra Comparison with |
*[http://hyperpolyglot.org/more-computer-algebra Comparison with Magma, GAP, and Singular] |
||
=== Tutorials === |
=== Tutorials === |
||
*[http://pari.math.u-bordeaux.fr/pub/pari/manuals/2. |
*[http://pari.math.u-bordeaux.fr/pub/pari/manuals/2.11.1/tutorial.pdf Official tutorial] by The PARI Group (58 pp., 2018) |
||
*[http://www.math.u-bordeaux.fr/~ballombe/talks/bordeaux-20150924.pdf Tutorial on Elliptic Curves] by Bill Allombert and Karim Belabas (5 pp., 2016) |
*[http://www.math.u-bordeaux.fr/~ballombe/talks/bordeaux-20150924.pdf Tutorial on Elliptic Curves] by Bill Allombert and Karim Belabas (5 pp., 2016) |
||
*[http://www. |
*[http://www.personal.psu.edu/bug/467/pariinfo.pdf Beginning PARI Programming for CSE/MATH 467] by W. Dale Brownawell (7 pp., 2014) |
||
*[http://www.maths.tcd.ie/~vlasenko/MA2316/ Class notes] including PARI/GP tutorial and sample code by Masha Vlasenko (2013) |
|||
*[http://www.math.uiuc.edu/~r-ash/GPTutorial.pdf Tutorial] by Robert B. Ash (20 pp., 2007) |
|||
*[http://people.math.umass.edu/~siman/09.791N/tutorial.pdf Tutorial] by Siman Wong (6 pp., 2009) |
*[http://people.math.umass.edu/~siman/09.791N/tutorial.pdf Tutorial] by Siman Wong (6 pp., 2009) |
||
*[http://www.exploringbinary.com/exploring-binary-numbers-with-parigp-calculator/ Exploring binary numbers with PARI/GP calculator] by Rick Regan (appx. 4 pp., 2009) |
|||
* Class notes, parts [http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_01.pdf 1][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_02.pdf 2][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_03.pdf 3][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_04.pdf 4][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_05.pdf 5][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_sieve.pdf sieve] by Benjamin L. Levitt (41 pp., 2009; now offline?) |
|||
*[http://www.math.uconn.edu/~kconrad/math5230f08/parihandout.pdf Introduction] by Keith Conrad (7 pp., 2008) |
*[http://www.math.uconn.edu/~kconrad/math5230f08/parihandout.pdf Introduction] by Keith Conrad (7 pp., 2008) |
||
*[http://mvngu.wordpress.com/2008/08/01/parigp-programming-for-basic-cryptography/ PARI/GP programming for basic cryptography] by Minh Van Nguyen (appx. 3 pp., 2008); also appears in an [https://bitbucket.org/mvngu/www/downloads/2008-11-25_numtheory-crypto-gp.pdf extended version] (9 pp., 2008) |
|||
*[http://www.math.uiuc.edu/~r-ash/GPTutorial.pdf Tutorial] by Robert B. Ash (20 pp., 2007) |
|||
*[http://www.linuxjournal.com/article/1068 The Pari Package On Linux], by Klaus-Peter Nischke (3 pp., 1995) |
*[http://www.linuxjournal.com/article/1068 The Pari Package On Linux], by Klaus-Peter Nischke (3 pp., 1995) |
||
*[http://users.aims.ac.za/~richard/faq/index.php Pari/GP Tutorial] by Akinola Richard Olatokunbo (now offline; [https://web.archive.org/web/20170324230906/http://users.aims.ac.za/~richard/faq/index.php archived version]) |
|||
*[http://mvngu.wordpress.com/2008/08/01/parigp-programming-for-basic-cryptography/ PARI/GP programming for basic cryptography] by Minh Van Nguyen (appx. 3 pp., 2008); also appears in an [https://bitbucket.org/mvngu/www/downloads/2008-11-25_numtheory-crypto-gp.pdf extended version] (9 pp., 2008) |
|||
*[https://pari.math.u-bordeaux.fr/Events/PARI2019/talks/parallel.pdf Parallel Computation] by Bill Allombert |
|||
*[http://www.exploringbinary.com/exploring-binary-numbers-with-parigp-calculator/ Exploring binary numbers with PARI/GP calculator] by Rick Regan (appx. 4 pp., 2009) |
|||
*Video tutorials, parts [http://www.youtube.com/watch?v=0G-9JzlrzBM 1] [http://www.youtube.com/watch?v=d7i0rv59hns 2] [http://www.youtube.com/watch?v=wCyU2n-G-pk 3] [http://www.youtube.com/watch?v=WOCuBvK8O6Q 4] (appx. 20 minutes, 2011) |
|||
==== Non-English language ==== |
|||
*French tutorials (slides) by Bill Allombert (2017): |
|||
** [https://pari.math.u-bordeaux.fr/Events/PARI2017c/talks/init.pdf Introduction à PARI/GP] (13 pp.) |
|||
** [https://pari.math.u-bordeaux.fr/Events/PARI2017c/talks/prog.pdf Programmation GP] (11 pp.) |
|||
** [https://pari.math.u-bordeaux.fr/Events/PARI2017c/talks/TAN.pdf Théorie algébrique des nombres] (31 pp.) |
|||
** [https://pari.math.u-bordeaux.fr/Events/PARI2017c/talks/TAN2.pdf Théorie algébrique des nombres avancée] (22 pp.) |
|||
** [https://pari.math.u-bordeaux.fr/Events/PARI2017c/talks/ecc.pdf Courbes elliptiques sur les corps finis] (4 pp.) |
|||
*[http://w3.countnumber.de/fischer/res-ZT2007/PariByExample.pdf Erste Schritte mit PARI/GP] by Lars Fischer (13 pp., 2007; German) |
*[http://w3.countnumber.de/fischer/res-ZT2007/PariByExample.pdf Erste Schritte mit PARI/GP] by Lars Fischer (13 pp., 2007; German) |
||
*[https://www.youtube.com/watch?v=I_GfMUGAlns Pari Gp مع NotPad++] by NoorDeen Rahmani (2020; 2:46; Arabic) -- setting up Notepad++ for syntax highlighting for PARI/GP. |
|||
*[http://www.maths.tcd.ie/~vlasenko/MA2316/ Class notes] including PARI/GP tutorial and sample code by Masha Vlasenko (2013) |
|||
* Class notes, parts [http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_01.pdf 1][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_02.pdf 2][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_03.pdf 3][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_04.pdf 4][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_05.pdf 5][http://myweb.csuchico.edu/~blevitt/math230/230coursedocs/230notes/230notes_sieve.pdf sieve] by Benjamin L. Levitt (41 pp., 2009; now offline?) |
|||
==== Video tutorials ==== |
|||
*[http://users.aims.ac.za/~richard/faq/index.php Pari/GP Tutorial] by Akinola Richard Olatokunbo |
|||
* [https://www.youtube.com/watch?v=RQLqQHu7i0Y Pari/GP Tutorial: Basics] by Leandro Junes (2020, 19:04) |
|||
*[https://www.youtube.com/watch?v=FeG0BYRrDOE&t=12m Video demo of RSA in PARI/GP] by Maren1955 (2014, 17:39) |
*[https://www.youtube.com/watch?v=FeG0BYRrDOE&t=12m Video demo of RSA in PARI/GP] by Maren1955 (2014, 17:39) |
||
*Video tutorials, parts [http://www.youtube.com/watch?v=0G-9JzlrzBM 1] [http://www.youtube.com/watch?v=d7i0rv59hns 2] [http://www.youtube.com/watch?v=wCyU2n-G-pk 3] [http://www.youtube.com/watch?v=WOCuBvK8O6Q 4] (2011, appx. 20 minutes) |
|||
=== Papers on PARI/GP === |
=== Papers on PARI/GP === |
||
* Karim Belabas and Henri Cohen, [https://arxiv.org/abs/1810.00547 Modular Forms in Pari/GP], ''Research in the Mathematical Sciences'' '''5''':37 (2018) |
|||
* Henri Cohen, [https://arxiv.org/abs/1809.10908 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 Jean-François Jaulent, [https://www.math.u-bordeaux.fr/~jjaulent/Articles/bnflog.ps The logarithmic class group package in PARI/GP], ''Mathematical Publications of Besançon, Algebra and Number Theory'' (2016), pp. 5–18. |
|||
* Bill Alombert, [http://www.math.u-bordeaux.fr/~allomber/darkpaper.pdf A new interpretor for PARI/GP], ''Journal de Théorie des Nombres de Bordeaux'' '''20''':3 (2008), pp. 531–541. (English) |
* Bill Alombert, [http://www.math.u-bordeaux.fr/~allomber/darkpaper.pdf A new interpretor for PARI/GP], ''Journal de Théorie des Nombres de Bordeaux'' '''20''':3 (2008), pp. 531–541. (English) |
||
* Paul Zimmermann, [http://www.loria.fr/~zimmerma/talks/henri.pdf The Ups and Downs of PARI/GP in the last 20 years], Explicit Methods in Number Theory, October 15th-19th 2007 |
* Paul Zimmermann, [http://www.loria.fr/~zimmerma/talks/henri.pdf The Ups and Downs of PARI/GP in the last 20 years], Explicit Methods in Number Theory, October 15th-19th 2007 |
||
* Robert H. Lewis and Michael Wester, [https://home.bway.net/lewis/cacomp.ps Comparison of polynomial-oriented computer algebra systems], ''ACM SIGSAM Bulletin'' '''33''':4 (1999), pp. 5-13. |
|||
* 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. 505-520 (1998) |
|||
[[Category:Mathematical programming languages]] |
[[Category:Mathematical programming languages]] |
Latest revision as of 21:29, 17 June 2022
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 currently-supported 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 apt-get install pari-gp
|
Fedora | package manager | Fedora packages | sudo dnf install pari-gp
| |
Arch | package manager | Arch packages | sudo pacman -S pari
| |
RHEL/CentOS | package manager | sudo yum install pari-gp
| ||
FreeBSD | package manager | FreeBSD Ports Search | sudo pkg install pari-2.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 | f-droid | Install via F-Droid 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.u-bordeaux.fr/git/pari.git && cd pari && ./Configure && make install
|
iOS 8+ | app | sage-math | Click the "+" in the top-right 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
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
- Pari-tty
- pariGUIde
- vim-notebook (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 Pari-Gnump.
- 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 Python-based system that includes GP among others
- pari-python
- 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 Klaus-Peter Nischke (3 pp., 1995)
- Pari/GP Tutorial by Akinola Richard Olatokunbo (now offline; archived version)
- Parallel Computation by Bill Allombert
Non-English 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 Jean-Franç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 15th-19th 2007
- Robert H. Lewis and Michael Wester, Comparison of polynomial-oriented computer algebra systems, ACM SIGSAM Bulletin 33:4 (1999), pp. 5-13.
- 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. 505-520 (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 606 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
- Anti-primes
- Apply a callback to an array
- Apéry's constant
- Arbitrary-precision integers (included)
- Archimedean spiral
- Arena storage pool
- Arithmetic-geometric mean
- Arithmetic-geometric 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
- Calkin-Wilf sequence
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Calmo numbers
- Card shuffles
- Carmichael 3 strong pseudoprimes
- Case-sensitivity of identifiers
- Casting out nines
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Chaos game
- Character codes
- Check Machin-like formulas
- Check that file exists
- Chernick's Carmichael numbers
- Chinese remainder theorem
- Cholesky decomposition
- Chowla numbers
- Circles of given radius through two points
- Closest-pair 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
- CRC-32
- Create a file
- Create a two-dimensional 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
- Element-wise operations
- Elliptic curve arithmetic
- Emirp primes
- Empty directory
- Empty program
- Empty string
- Enforced immutability
- Entropy
- Entropy/Narcissist
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euclid-Mullin 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 n-step 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
- First-class functions
- First-class 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