PARI/GP
PARI/GP est un système de calcul formel ayant pour objectif principal de faciliter les calculs en théorie des nombres. C'est un logiciel libre distribué selon les termes de la licence publique générale GNU, qui fonctionne sous la plupart des systèmes d'exploitation.
Développé par | Henri Cohen, Karim Belabas et al., à l'université Bordeaux I |
---|---|
Première version | |
Dernière version | 2.13.1 ()[1] |
Version avancée | 2.12.0 ()[2] |
Dépôt | pari.math.u-bordeaux.fr/git/pari.git |
Écrit en | C |
Environnement | multiplate-forme |
Langues | anglais |
Type | système de calcul formel |
Licence | licence publique générale GNU |
Site web | Centre de développement de PARI/GP |
Vue générale du système
Le système PARI/GP est un ensemble de logiciels capables d'effectuer des calculs formels très rapides sur des types récursifs, et avant tout destiné aux théoriciens des nombres. Ses principaux points forts sont sa vitesse, la possibilité d'utiliser directement des types de données familiers aux mathématiciens, et son vaste module de théorie algébrique des nombres.
Le système est constitué des composants standards suivants :
- PARI est une bibliothèque écrite en C (ce qui permet des calculs rapides) pouvant être appelée à partir d'un langage de commandes de haut niveau (écrit, par exemple, en C++, Pascal, Fortran, Perl, ou Python).
- gp est une interface en ligne de commande conviviale et interactive donnant accès aux fonctions de PARI. Elle fonctionne comme une calculatrice programmable sophistiquée contenant la plupart des instructions de contrôle d'un langage standard tel que C. GP est le nom du langage de scripts qui peuvent être utilisés pour programmer gp.
Un compilateur de GP en langage C, gp2c, est également disponible ; il compile les scripts de GP et charge les fonctions résultantes dans gp de façon transparente pour l'utilisateur, l'avantage étant que des scripts ainsi compilés s'exécutent trois à quatre fois plus vite en général. Pour le moment, gp2c ne comprend cependant qu'une partie du langage GP.
PARI/GP effectue des calculs en précision arbitraire ; ainsi, la mantisse des données et des résultats peut avoir des millions de chiffres, voire des milliards sur des machines à processeur 64 bits. Il peut factoriser, effectuer des calculs sur des courbes elliptiques, ou plus généralement des calculs de théorie algébrique des nombres. Il permet également de manipuler des matrices, des polynômes, des séries entières, des nombres algébriques ainsi que de nombreuses fonctions spéciales.
PARI/GP possède des capacités graphiques (lui permettant essentiellement de tracer le graphe d'une fonction) et de manipulation symbolique, par exemple des polynômes et des fonctions rationnelles à plusieurs variables. En revanche, ses capacités d'intégration et de dérivation formelle sont inférieures à celles de systèmes de calcul formel plus sophistiqués, tels que Mathematica.
PARI/GP peut être compilé avec GMP (la bibliothèque de calcul en multiprécision GNU), permettant des calculs plus rapides que ceux du noyau de calcul en précision arbitraire original.
Historique
Le précurseur de PARI/GP était un programme appelé ISABELLE, un interpréteur pour des problèmes de théorie des nombres écrit en 1979 par Henri Cohen et François Dress (à l'université Bordeaux I). PARI/GP fut développé en 1985 par une équipe dirigée par Henri Cohen au Laboratoire A2X, et la maintenance en est à présent assurée par Karim Belabas à l'université Bordeaux 1, avec l'aide de nombreux volontaires. Au , la version stable était la 2.11.3. Depuis la version 2.1.0, c'est un logiciel libre distribué selon les termes de la licence publique générale GNU. Il fonctionne sous la plupart des systèmes d'exploitation.
Étymologie du nom PARI/GP
Le nom PARI est un jeu de mot venant des premiers stades du projet, lorsque les auteurs commencèrent à implémenter en Pascal une bibliothèque d'ARIthmétique (cependant, ils devaient rapidement abandonner ce langage en faveur de C), et, bien sûr, en référence au "pari de Pascal"[3].
La première version du calculateur gp était initialement appelée GPC, pour Grand Programmable Calculateur. Le C final disparut pour on ne sait trop quelle raison[3].
Exemples d'utilisation
On trouvera ci-dessous quelques exemples d'utilisation du calculateur gp :
? \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. 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))) [31, 1; 601, 1; 1801, 1] [3, 1; 2731, 1; 8191, 1] [7, 1; 73, 1; 262657, 1] [3, 1; 5, 1; 29, 1; 43, 1; 113, 1; 127, 1] [233, 1; 1103, 1; 2089, 1] [3, 2; 7, 1; 11, 1; 31, 1; 151, 1; 331, 1] time = 5 ms. ? K = bnfinit(x^2 + 23); K.cyc time = 1ms. %4 = [3] /* Ce corps de nombres a pour nombre de classes 3. */
Voir aussi
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « PARI/GP » (voir la liste des auteurs).
- « http://pari.math.u-bordeaux.fr/download.html » (consulté le )
- « http://pari.math.u-bordeaux.fr/archives/pari-announce-19/msg00002.html »
- "TRIVIA" section de "Manpage of GP," 10 août 2004
Liens externes
- Site des développeurs de PARI/GP
- (en) Ressources pour PARI/GP sur le site de Karim Belabas
- (en) Catalogue des fonctions de PARI/GP
- (en) François Dress, « Le langage et l'interpréteur 'Isabelle', spécialement conçus pour utilisations arithmétiques », Séminaire de Théorie des Nombres de Bordeaux, vol. 9, 1979-1980 (lire en ligne) (un article sur Isabelle, l'ancêtre de PARI/GP créé en 1979)
- Portail des mathématiques
- Portail de l’informatique
- Portail des logiciels libres