Category:PARI/GP: Difference between revisions

From Rosetta Code
Content added Content deleted
(→‎Getting PARI/GP: fix FreeBSD, links)
 
(32 intermediate revisions by 3 users not shown)
Line 21: Line 21:


== Getting PARI/GP ==
== Getting PARI/GP ==
PARI/GP can be used in many different operating systems. For other systems, see the [http://pari.math.u-bordeaux.fr/download.html download page] or the [https://pari.math.u-bordeaux.fr/lists-index.html mailing lists].
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"
{| class="wikitable"
Line 33: Line 33:
| rowspan="3" | Windows
| rowspan="3" | Windows
| various
| various
| installer (stable)
| installer (stable or development)
| [http://pari.math.u-bordeaux.fr/download.html#windows official site]
| [http://pari.math.u-bordeaux.fr/download.html#windows official site]
| run installer
| run installer
|-
|-
| XP, Vista, 7, 8, 10
| XP, Vista, 7, 8, 10
| standalone binaries (stable)
| standalone binaries (stable or development)
| [http://pari.math.u-bordeaux.fr/download.html#windows official site]
| [http://pari.math.u-bordeaux.fr/download.html#windows official site]
| run
| run
Line 47: Line 47:
| run
| run
|-
|-
| rowspan="5" | Linux
| rowspan="7" | Linux
| Ubuntu/Debian
| Ubuntu/Debian
| package manager
| package manager
Line 57: Line 57:
| [https://apps.fedoraproject.org/packages/pari-gp Fedora packages]
| [https://apps.fedoraproject.org/packages/pari-gp Fedora packages]
| <code>sudo dnf install pari-gp</code>
| <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
| RHEL/CentOS
Line 65: Line 70:
| FreeBSD
| FreeBSD
| package manager
| package manager
| [https://svnweb.freebsd.org/ports/head/math/pari/ FreeBSD Ports Search]
| [https://svnweb.freebsd.org/ports/head/math/pari/?view=log FreeBSD Ports Search]
| <code>sudo pkg install pari-2.9.4,2</code>
| <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
| various
Line 73: Line 83:
| [http://math.crg4.com/software.html#pari Building PARI/GP in Linux]
| [http://math.crg4.com/software.html#pari Building PARI/GP in Linux]
|-
|-
| rowspan="2" | Mac OS
| rowspan="4" | macOS
| at least El Capitan (10.11)
| at least El Capitan (10.11)
| DMG installer (stable)
| DMG installer (stable or development)
| [http://pari.math.u-bordeaux.fr/download.html#macos official site]
| [http://pari.math.u-bordeaux.fr/download.html#macos official site]
| Open dmg, drag to Applications (note: window may start minimized)
| Open dmg, drag to Applications (note: window may start minimized)
|-
|-
| at least El Capitan (10.11)
| at least El Capitan (10.11)
| standalone binary (stable)
| standalone binary (stable or development)
| [http://pari.math.u-bordeaux.fr/download.html#macos official site]
| [http://pari.math.u-bordeaux.fr/download.html#macos official site]
| run
| 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
| rowspan="5" | Android
Line 88: Line 108:
| package manager
| package manager
| [https://f-droid.org/packages/fr.ubordeaux.math.paridroid/ f-droid]
| [https://f-droid.org/packages/fr.ubordeaux.math.paridroid/ f-droid]
| Install via F-Droid client or install APK directly
|
|-
|-
| various
| various
Line 103: Line 123:
| build from source
| build from source
| [https://github.com/FreeMonad/paridroid github]
| [https://github.com/FreeMonad/paridroid github]
| [https://github.com/FreeMonad/paridroid/wiki/Build-Environment Building] and [https://github.com/FreeMonad/paridroid/wiki/Installation Installing]
| [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
| various
| build from source
| build from source
| [http://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=paridroid.git;a=summary official site]
| [http://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=paridroid.git;a=summary official site]
| [https://github.com/FreeMonad/paridroid/wiki/Build-Environment Building] and [https://github.com/FreeMonad/paridroid/wiki/Installation Installing]
| [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
| iOS 8+
| iOS 8+
| app
| package manager
| [https://itunes.apple.com/us/app/sage-math/id496492945?mt=8 sage-math]
| [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.)
| 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
| rowspan="4" | online
| Chrome, Firefox, Internet Explorer
| Chrome, Firefox, Internet Explorer
| local Javascript
| local Javascript
Line 129: Line 154:
| Chrome, Firefox, Internet Explorer
| Chrome, Firefox, Internet Explorer
| client/server
| client/server
| [http://www.compileonline.com/execute_pari_online.php compile online]
| [https://www.tutorialspoint.com/execute_pari_online.php coding ground]
|
|
|-
|-
Line 147: Line 172:


If you want to program with PARI, many languages are supported:
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 [http://pari.math.u-bordeaux.fr/pub/pari/manuals/gp2c/gp2c.html gp2c] utility converts GP scripts into executable C code.
* [[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]]:
* [[Python]]:
** [http://www.sagemath.org/ SageMath] (or SAGE) is a Python-based system that includes GP among others
** [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]
** [http://code.google.com/p/pari-python/ pari-python]
** [https://pypi.python.org/pypi/cypari/ cypari] is a fork of the GP component of SageMath
** [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]]:
* [[Perl]]:
** [http://search.cpan.org/dist/Math-Pari/ Math::Pari]
** [http://search.cpan.org/dist/Math-Pari/ Math::Pari]
Line 165: 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
Line 170: Line 198:


=== Tutorials ===
=== Tutorials ===
*[http://pari.math.u-bordeaux.fr/pub/pari/manuals/2.9.0/tutorial.pdf Official tutorial] by The PARI Group (58 pp., 2016)
*[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.math.psu.edu/wdb/467/pariinfo.pdf Beginning PARI Programming for CSE/MATH 467] by W. Dale Brownawell (7 pp., 2014)
*[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&ndash;18.
* 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&ndash;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&ndash;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&ndash;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.
* 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

Language
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:
Listed below are all of the tasks on Rosetta Code which have been solved using PARI/GP.


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:

If you want to program with PARI, many languages are supported:

See also

Resources

General

Tutorials

Non-English language

Video tutorials

Papers on PARI/GP

Subcategories

This category has the following 3 subcategories, out of 3 total.

Pages in category "PARI/GP"

The following 200 pages are in this category, out of 606 total.

(previous page) (next page)
(previous page) (next page)