Revision as of 07:31, 13 December 2006 editSWAdair (talk | contribs)Rollbackers8,626 edits rv← Previous edit | Latest revision as of 15:40, 8 October 2024 edit undoBubba73 (talk | contribs)Autopatrolled, Extended confirmed users, Pending changes reviewers, Rollbackers93,211 editsm Reverted 2 edits by 5.228.82.251 (talk) to last revision by MichielNTags: Twinkle Undo | ||
(147 intermediate revisions by 83 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Computer algebra system}} | |||
{{Infobox Software | |||
{{third-party|date=December 2013}} | |||
{{Infobox software | |||
| name = PARI/GP | | name = PARI/GP | ||
| logo = |
| logo = PARI-GP logo.svg | ||
| screenshot = |
| screenshot = PARI-GP-Windows-XP.png | ||
| screenshot size = 248px | |||
| caption = PARI/GP in use on ] | | caption = PARI/GP in use on ] | ||
| developer = Henri Cohen, Karim Belabas, et al., at the ] | | developer = ], Karim Belabas, et al., at the ] | ||
| latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}} | |||
| latest_release_version = 2.3.1 | |||
| latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}} | |||
| latest_release_date = ], ] | |||
| latest preview version = | |||
| latest preview date = | |||
| programming language = ] | |||
| operating_system = ] | | operating_system = ] | ||
| genre = ] | | genre = ] | ||
| license = ] | | license = ] | ||
| website = |
| website = {{URL|http://pari.math.u-bordeaux.fr/}} | ||
}} | }} | ||
'''PARI/GP''' is a ] with the main aim of facilitating ] computations. |
'''PARI/GP''' is a ] with the main aim of facilitating ] computations. Versions 2.1.0 and higher are distributed under the ]. It runs on most common ]s. | ||
== System overview == | |||
==History== | |||
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 ]s that are familiar to ]s, and its extensive algebraic number theory module. | |||
PARI/GP was originally developed in 1985 by a team led by ] at Laboratoire A2X and is now maintained by ] at the ] with the help of many volunteer contributors. PARI/GP's progenitor was a program named ISABELLE, an interpretor for higher arithmetic written in 1979 by ] and ] (of the ]). | |||
The PARI/GP system consists of the following standard components: | |||
==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, but can be used by anybody whose primary need is speed. It can perform ] calculations, including on ]s (e.g., the ] can be millions of digits long—and billions of digits on ] machines). It can be used to compute ]s, to perform ] computations and to perform ]. It also allows computations with ], ]s, ], ]s and implements many ]. | |||
* '''PARI''' is a ] ], allowing for fast computations, and which can be called from a high-level language application (for instance, written in C, ], ], ], ], or ]). | |||
PARI/GP also comes with its own built-in graphical ] capability, and can be linked to '']'' to use it for rendering plots. | |||
* '''gp''' is an easy-to-use interactive ] 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''<nowiki>'</nowiki>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. | |||
Although quite an amount of symbolic manipulation is possible in PARI/GP, the system does poorly compared to more sophisticated systems like ], ], ], ], ] or ] on such manipulations as, e.g., ]s, ], and so on. On the other hand, the three main advantages of the system are its speed (which can be between 5 and 100 times better on many computations), the possibility of directly using ]s that are familiar to ]s, and its extensive algebraic number theory module, which has no equivalent in the above-mentioned systems. | |||
PARI/GP performs ] calculations (e.g., the ] can be millions of digits long—and billions of digits on ] machines). It can compute ]s, perform ] computations and perform ] calculations. It also allows computations with ], ]s, ], ]s and implements many ]. | |||
The PARI/GP system consists of the following standard components: | |||
PARI/GP comes with its own built-in graphical ] capability. PARI/GP has some symbolic manipulation capability, e.g., multivariate polynomial and rational function handling. It also has some formal ] and ] capabilities. | |||
*'''PARI''' is a ] ], allowing for fast computations, and which can be called from an upper-level language application (for instance, written in C, ], ], ], ], or ]). | |||
*'''gp''' is an easy-to-use interactive ] 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''<nowiki>'</nowiki>s scripting language which can be used to program ''gp''. | |||
PARI/GP can be compiled with ] (GNU Multiple Precision Arithmetic Library) providing faster computations than PARI/GP's native arbitrary-precision kernel. | |||
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. Currently, ''gp2c'' only understands a subset of the GP language. | |||
== History == | |||
Furthermore, PARI/GP can be compiled with ] (GNU Multiple Precision Arithmetic Library) for even much faster computations than PARI/GP's native ] kernel. | |||
PARI/GP's progenitor was a program named ''Isabelle'', an interpreter for ], written in 1979 by ] and ] at the ].<ref>{{cite journal |title=Le langage et l'interpréteur 'Isabelle', spécialement conçus pour utilisations arithmétiques |author=François Dress |journal=Séminaire de Théorie des Nombres de Bordeaux |volume=9 | at=exposé № 4 |year=1979–1980 |url=http://gdz.sub.uni-goettingen.de/dms/load/img/?PPN=PPN320141322_0009&DMDID=DMDLOG_0009&LOGID=LOG_0009&PHYSID=PHYS_0023}}</ref> | |||
PARI/GP was originally developed in 1985 by a team led by Henri Cohen at Laboratoire A2X and is now maintained by ] at the Université Bordeaux 1 with the help of many volunteer contributors. | |||
==Etymology of the PARI/GP name== | |||
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 ] (although they quickly switched to ]), and after ''"pari de Pascal"'' (]).<ref>"TRIVIA" section of August 10, 2004</ref> | |||
=== Etymology === | |||
The first version of the ''gp'' calculator was originally called GPC, for Great Programmable Calculator. For some reason, the trailing C was eventually dropped.<ref>"TRIVIA" section of August 10, 2004</ref> | |||
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 ] (although they quickly switched to ]), and after ''"pari de Pascal"'' (]).<ref name=trivia>"TRIVIA" section of 10 August 2004</ref> | |||
The first version of the ''gp'' calculator was originally called GPC, for Great Programmable Calculator. The trailing C was eventually dropped.<ref name=trivia/> | |||
==Usage examples== | |||
== Usage examples == | |||
Below are some samples of the ''gp'' calculator usage: | Below are some samples of the ''gp'' calculator usage: | ||
<pre> | |||
? \p 212 | |||
? \p 212 | |||
realprecision = 221 significant digits (212 digits displayed) | |||
realprecision = 221 significant digits (212 digits displayed) | |||
? 148.7^0.3721 | |||
? (1.378-0.09143*I)^(14.87+0.3721*I) | |||
time = 0 ms. | |||
time = 0 ms. | |||
%1 = 6.4315686761687428232463963595991663095614617461851330959022336592679249 | |||
%1 = 80.817082637557070449383034933010288336925078193546211741027496566803185 | |||
83664424375749173149713566544671777981026987042189396584904780584382369995989 | |||
11092579265743992920628314516739962724446042667886245322716456966120413965187 | |||
2470992868949783084618518182456887849078305105083627437215091767 | |||
3272488827365261487845201056199035423784093096984005713791800191 - 94.8384618 | |||
89186304973351271821601500916571303364865064205039706592481303045713982306764 | |||
33264430511752515705768858710051382035377195497482934017239179757538824688799 | |||
0680136241031895212412150770309289450962931402933*I | |||
? 123456! + 0. \\ slower than gamma(123457) which uses floating point | |||
time = 1,656 ms. | |||
%2 = 2.6040699049291378729513930560926568818273270409503019584610185579952057 | |||
37967683415793560716617127908735520017061666000857261271456698589373086528293 | |||
4317244121152865814030204645985573419251305342231135573491050756 E574964 | |||
? sin(x) | |||
? 123456! + 0. | |||
time = 0 ms. | |||
%3 = x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + 1/362880*x^9 - 1/39916800*x^11 | |||
%2 = 2.6040699049291378729513930560926568818273270409503019584610185579952057 | |||
+ 1/6227020800*x^13 - 1/1307674368000*x^15 + O(x^17) | |||
37967683415793560716617127908735520017061666000857261271456698589373086528293 | |||
4317244121152865814030204645985573419251305342231135573491050756 E574964 | |||
? for(z=25,30, print (factor(2^z-1))) | |||
? sin(x) | |||
time = 0 ms. | |||
%3 = x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + 1/362880*x^9 - 1/39916800*x^11 | |||
+ 1/6227020800*x^13 - 1/1307674368000*x^15 + O(x^17) | |||
time = 5 ms. | |||
? K = bnfinit(x^2 + 23); K.cyc | |||
? for(z=25,30, print (factor(2^z-1))) | |||
time = 1ms. | |||
%4 = | |||
/* This number field has class number 3. */ | |||
</pre> | |||
time = 5 ms. | |||
== See also == | |||
? e = ellinit(); ellidentify(e) | |||
{{Portal|Free and open-source software}} | |||
time = 28 ms. | |||
%4 = , , , ]], ] | |||
<br>/* A famous rank 3 elliptic curve of conductor 5077. */ | |||
* ], a multiple-software mathematical package which includes PARI/GP as one of its components | |||
? K = bnfinit(x^2 + 23); K.cyc | |||
* ] | |||
time = 1ms. | |||
%5 = | |||
<br>/* This number field has class number 3. */ | |||
== |
== References == | ||
{{reflist}} | |||
*], a multiple-software mathematical package which includes PARI/GP as one of its components | |||
*] | |||
*] | |||
*] | |||
*] | |||
== External links == | |||
==References== | |||
* | |||
<references/> | |||
* with a collection of references | |||
* | |||
* (sample programs) | |||
* ; also in downloadable ]ped ] archive: | |||
* | |||
• | |||
* | |||
{{Computer algebra systems}} | |||
==External links== | |||
*</nowiki>] | |||
* at Karim Belabas's website | |||
*; also in downloadable ] ] archive: | |||
* François Dress, Seminaire de Théorie des Nombres de Bordeaux, Vol. 9 (1979-1980); an article on ISABELLE, PARI/GP's ancestor progam created in 1979. | |||
{{DEFAULTSORT:Pari Gp}} | |||
] | |||
] | |||
] | |||
] | |||
] | |||
] | |||
] | ] | ||
] | ] | ||
] | ] |
Latest revision as of 15:40, 8 October 2024
Computer algebra systemThis article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. Please help improve it by replacing them with more appropriate citations to reliable, independent, third-party sources. (December 2013) (Learn how and when to remove this message) |
PARI/GP in use on Windows XP | |
Developer(s) | Henri Cohen, Karim Belabas, et al., at the Université Bordeaux 1 |
---|---|
Stable release | 2.17.1 / 24 December 2024; 19 days ago (24 December 2024) |
Repository | |
Written in | C |
Operating system | Cross-platform |
Type | Computer algebra system |
License | GNU General Public License |
Website | pari |
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:
? \p 212 realprecision = 221 significant digits (212 digits displayed) ? (1.378-0.09143*I)^(14.87+0.3721*I) time = 0 ms. %1 = 80.817082637557070449383034933010288336925078193546211741027496566803185 11092579265743992920628314516739962724446042667886245322716456966120413965187 3272488827365261487845201056199035423784093096984005713791800191 - 94.8384618 89186304973351271821601500916571303364865064205039706592481303045713982306764 33264430511752515705768858710051382035377195497482934017239179757538824688799 0680136241031895212412150770309289450962931402933*I ? 123456! + 0. \\ slower than gamma(123457) which uses floating point time = 1,656 ms. %2 = 2.6040699049291378729513930560926568818273270409503019584610185579952057 37967683415793560716617127908735520017061666000857261271456698589373086528293 4317244121152865814030204645985573419251305342231135573491050756 E574964 ? sin(x) time = 0 ms. %3 = x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + 1/362880*x^9 - 1/39916800*x^11 + 1/6227020800*x^13 - 1/1307674368000*x^15 + O(x^17) ? for(z=25,30, print (factor(2^z-1))) time = 5 ms. ? K = bnfinit(x^2 + 23); K.cyc time = 1ms. %4 = /* This number field has class number 3. */
See also
- SageMath, a multiple-software mathematical package which includes PARI/GP as one of its components
- List of computer algebra systems
References
- https://pari.math.u-bordeaux.fr/archives/pari-announce-24/msg00006.html.
{{cite web}}
: Missing or empty|title=
(help) - François Dress (1979–1980). "Le langage et l'interpréteur 'Isabelle', spécialement conçus pour utilisations arithmétiques". Séminaire de Théorie des Nombres de Bordeaux. 9. exposé № 4.
- ^ "TRIVIA" section of "Manpage of GP," 10 August 2004
External links
- PARI/GP Development Headquarters
- PARI/GP - Mathematical software - swMATH with a collection of references
- SIGSAM Computer Algebra Software
- Rosetta Code: PARI/GP (sample programs)
- Catalogue of GP/PARI Functions; also in downloadable gzipped tarball archive: Stable Branch
Computer algebra systems | |
---|---|
Open-source | |
Proprietary |
|
Discontinued | |