PARI/GP 簡介

黃志斌發表於2015-10-31

引言

PARI/GP是一種針對數論中的快速計算(大數分解,代數數論,橢圓曲線……)而設計的廣泛應用的計算機代數系統,同樣具備大量實用的函式來對於數學實體的計算, 諸如矩陣,多項式,冪級數,代數數,以及相當多的超越方程等等。 PARI也可以作為快速計算的C語言庫。

這個系統最初是由 Henri Cohen 和他的合作者們(來自法國的波爾多第一大學)發展起來的。 PARI現在在公共授權條款(GPL)之下並在許多志願者的幫助下由 Karim Belabas 進行維護。

  • PARI是一個可以快速計算的C語言庫。
  • gp是一個容易上手的互動式外殼,它賦予使用者呼叫PARI函式的權力。
  • GPgp指令碼語言的名字。
  • gp2cGPC的編譯器,通過編譯GP指令碼至C語言以及透明載入結果函式至gp來結合兩者的最優點。(由gp2c編譯的指令碼一般情況下執行速度將快 3 至 4 倍。)目前gp2c只能執行GP語言的一部分。

安裝

在 Arch Linux 中,可以使用以下命令安裝PARI/GP

$ sudo pacman -S pari-sage

試執行:

$ gp

   GP/PARI CALCULATOR Version 2.8.0 (development git-6157df4)
  amd64 running linux (x86-64/GMP-6.0.0 kernel) 64-bit version
         compiled: Oct 23 2015, gcc version 5.2.0 (GCC)
                   threading engine: pthread
        (readline v6.3 enabled, extended help enabled)

PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?15 for how to get moral (and possibly technical) support.

parisize = 8000000, primelimit = 500000, nbthreads = 2
? Pi
%1 = 3.1415926535897932384626433832795028842
? \q
Goodbye!

文件

/usr/share/pari/doc目錄下有以下重要文件:

  • refcard.dvi: PARI-GP Reference Card, 4 pages
  • tutorial.dvi: A Tutorial for PARI / GP, 52 pages
  • users.dvi: User's Guide to PARI / GP, 416 pages
  • libpari.dvi: User's Guide to the PARI library, 314 pages
  • develop.dvi: Developer's Guide to the PARI library, 23 pages

refcard.dvi 的部分內容:

PariCard1


PariCard2

GNU TeXmacs

GNU TeXmacs是一個所見即所得的科學公式編輯軟體,受TeXGNU Emacs啟發。它提供多種計算機代數系統介面,包括Giac, GTybalt, Macaulay 2, Maxima, Octave, Pari, Qcl, R, Yacas

可以使用以下命令安裝GNU TeXmacs

$ sudo pacman -S texmacs

TeXmacs

然後就可以在TeXmacs中使用PARI/GP了,例子如下:

PariTeXmacs

附加說明

在 Arch Linux 中,以下兩個軟體包(這兩個軟體包只能選擇一個,不能都安裝)都提供了PARI/GP

$ pacman -Ss '^pari$'
community/pari 2.7.4-1
      Computer algebra system designed for fast computations in number theory
community/pari-sage 2.8.1813.g6157df4-1 [已安裝]
      Computer algebra system designed for fast computations in number theory. Development snapshot required by SageMath

此外,也可以從源程式程式碼編譯,簡要步驟如下所示:

$ git clone http://pari.math.u-bordeaux.fr/git/pari.git
$ cd pari
$ ./Configure --prefix=/opt/pari
$ make all
$ make bench
$ sudo make install

這適用於各種 Linux 作業系統。當然,這是極大簡化了的步驟,還要滿足很多前提條件,詳細的說明請參閱前面提到的 User's Guide to PARI / GP 文件中的 Appendix A: Installation Guide for the UNIX Versions

參考資料

  1. PARI/GP Development Headquarters
  2. Welcome to GNU TeXmacs (FSF GNU project)