PARI/GP
Utvecklare | Henri Cohen , Karim Belabas, et al., vid Université Bordeaux 1 |
---|---|
Stabil frisättning | 2.15.1 / 2 november 2022
|
Förvar | |
Skrivet i | C |
Operativ system | Cross-plattform |
Typ | Datoralgebrasystem |
Licens | GNU General Public License |
Hemsida |
PARI/GP är ett datoralgebrasystem med huvudsyftet att underlätta talteoretiska beräkningar. Versioner 2.1.0 och högre distribueras under GNU General Public License . Det körs på de vanligaste operativsystemen .
System översikt
PARI/GP-systemet är ett paket som kan göra formella beräkningar på rekursiva typer i hög hastighet; den riktar sig i första hand till talteoretiker. Dess tre främsta styrkor är dess hastighet, möjligheten att direkt använda datatyper som är bekanta för matematiker , och dess omfattande algebraiska talteorimodul.
PARI/GP-systemet består av följande standardkomponenter:
- PARI är ett C- bibliotek som möjliggör snabba beräkningar och som kan anropas från en språkapplikation på hög nivå (till exempel skrivet i C, C++ , Pascal , Fortran , Perl eller Python ).
- gp är ett lättanvänt interaktivt kommandoradsgränssnitt som ger tillgång till PARI-funktionerna. Den fungerar som en sofistikerad programmerbar kalkylator som innehåller de flesta styrinstruktioner för ett standardspråk som C. GP är namnet på gps skriptspråk som kan användas för att programmera gp .
Också tillgängligt är gp2c , GP-till-C-kompilatorn, som kompilerar GP-skript till C-språket och transparent laddar de resulterande funktionerna i gp . Fördelen med detta är att gp2c- kompilerade skript vanligtvis körs tre till fyra gånger snabbare. gp2c förstår nästan allt av GP.
PARI/GP utför godtyckliga precisionsberäkningar (t.ex. kan signifikanden vara miljontals siffror lång – och miljarder siffror på 64-bitarsmaskiner ). Den kan beräkna faktoriseringar , utföra elliptiska kurvberäkningar och utföra algebraiska talteoretiska beräkningar. Den tillåter också beräkningar med matriser , polynom , potensserier , algebraiska tal och implementerar många specialfunktioner .
PARI/GP kommer med sin egen inbyggda grafiska plottning . PARI/GP har viss symbolisk manipulationsförmåga, t.ex. multivariat polynom och rationell funktionshantering. Den har också vissa formella integrations- och differentieringsmöjligheter .
PARI/GP kan kompileras med GMP (GNU Multiple Precision Arithmetic Library) som ger snabbare beräkningar än PARI/GP:s ursprungliga godtyckliga precisionskärna.
Historia
PARI/GP:s stamfader var ett program vid namn Isabelle , en tolk för högre aritmetik , skrivet 1979 av Henri Cohen och François Dress vid Université Bordeaux 1 .
PARI/GP utvecklades ursprungligen 1985 av ett team ledd av Henri Cohen på Laboratoire A2X och underhålls nu av Karim Belabas vid Université Bordeaux 1 med hjälp av många frivilliga bidragsgivare.
Etymologi
Namnet PARI är en ordlek om projektets tidiga skeden när författarna började implementera ett bibliotek för "Pascal ARIthmetic" i programmeringsspråket Pascal (även om de snabbt bytte till C ), och efter "pari de Pascal" ( Pascal's Wager ).
Den första versionen av gp -kalkylatorn hette ursprungligen GPC, för Great Programmable Calculator. Det släpande C:et släpptes så småningom.
Användningsexempel
Nedan är några exempel på användningen av gp -kalkylatorn:
? \p 212 realprecision = 221 signifikanta siffror (212 siffror visas) ? (1,378-0,09143*I)^(14,87+0,3721*I) tid = 0 ms. %1 = 80,8170826375570704493830349333010288336925078193546211741027496566803185 1109257926574398734246209257926574399925792657439982342642642692692692657926574399257926574398734264264269246265 67886245322716456966120413965187 3272488827365261487845201056199035423784093096984005713791800418 -1800418 9056199035423784093096984005713791800418 -1800418 -180918 -180918 -180918 -180918 -180918 -180918 -180918 -180918 -180918 -180918. 1271821601500916571303364865064205039706592481303045713982306764 332644305117525157057688587102751371821601303045713982306764 332644305117525157057688587102751340275137182160 9179757538824688799 0680136241031895212412150770309289450962931402933*I ? 123456! + 0. \\ långsammare än gamma(123457) som använder flyttalstid = 1 656 ms. %2 = 2,6040699049291378729513930560926568818273270409503019584610185579952057 37967683415793560721616016016761616160616060 00857261271456698589373086528293 43172441211528658140302046459855734192513053422311355734910507964 E? sin(x) tid = 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 (faktor(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] tid = 5 ms. ? K = bnfinit(x^2 + 23); K.cyc tid = 1ms. %4 = [3] /* Detta nummerfält har klassnummer 3. */
Se även
- SageMath , ett matematiskt paket med flera mjukvaror som inkluderar PARI/GP som en av dess komponenter
- Lista över datoralgebrasystem
externa länkar
- PARI/GP Development Headquarters
- PARI/GP - Matematisk programvara - swMATH med en samling referenser
- SIGSAM datoralgebra programvara
- Rosetta-kod: PARI/GP (provprogram)
- Katalog över GP/PARI-funktioner ; även i nedladdningsbart gzippad tarball -arkiv: Stable Branch