
Last update(s): Thu Oct 13 15:29:24 2005 Fri Oct 14 11:27:50 2005 Tue Oct 18 10:48:42 2005 Wed Feb 24 14:44:52 2010
PARI is a runtime library for highprecision decimal integer and floatingpoint arithmetic. GP is a programming language for symbolic algebra and highprecision computation.
PARI/GP was originally developed by Professor Henri Cohen at l'Université de Bordeaux, France, about 1997. It is now supported by a collaborative effort under the GNU General Public License and has its own Web site.
What books are available for PARI/GP?
None. [Is this still the case?]
What documentation is available online for PARI/GP?
The doc subdirectory of the PARI/GP distributions has a reference card, a tutorial, and a users manual. They are available as the local files /usr/local/src/pari/refcard.pdf , /usr/local/src/pari/tutorial.pdf , and /usr/local/src/pari/users.pdf .
There is also a help system inside PARI/GP. In a PARI/GP session, type a question mark followed by a function name or topic:
% gp ... ? ?sqrt sqrt(x): square root of x.
What version of PARI/GP do we have?
Most of our systems have just a single version of PARI/GP. You can see what they are like this:
% which gp /usr/local/bin/gp % ls /usr/local/bin/gp* /usr/local/bin/gp2.2 % gp version GP/PARI CALCULATOR Version 2.2.5 (alpha) ...
Although that output refers to GP/PARI, the system's Web site uniformly calls it PARI/GP.
How do I use highprecision arithmetic?
Set the desired decimal precision with the \p command, and then enter numerical expressions for evaluation. Here is an example:
% gp ... ? \p 50 realprecision = 57 significant digits (50 digits displayed) ? erfc(7.5) %1 = 1.9999999999999999999999999722335061396943089933603 ? sin(1/256) / (1/256) %2 = 0.99999745687042983799221222193087945750276128903456 ? 40! %3 = 815915283247897734345611269596115894272000000000
Notice that gp gives you a few more digits than you asked. Normally, this is helpful, in that it makes it more likely that reported results are correctly rounded. However, it also removes some control that you might want to have.
How do I make a simple 2D function plot?
PARI/GP does not have a fancy GUI allowing creation of nicelooking plots. Instead, it makes plots on the terminal, like this:
? plot(x=5,5,sin(x)/x, 1, 1); 1 '''''''''''''''''''''''''''_x""""x_'''''''''''''''''''''''''''  _x" "x_   x x   _" "_   x x   _" "_   _ _   x x   _" "_   x x   _" "_  ``````````_x````````````````````````````````````````x_``````````  _x" "x_  """xx"" ""xx"""               1 .............................................................. 5 5
How do I make a 3D surface plot?
You cannot with this system: PARI/GP has no facilities for 3D surface plotting.
I'm working on machine X. Why does it not have PARI/GP?
PARI/GP is a large and complex system, with about 138,000 lines of C code. We attempt to build each new release on all of our platforms, and most now have at least one version. However, no build of PARI/GP has yet been successful for GNU/Linux on Alpha, MIPS, PowerPC, and SPARC, and OpenBSD on IA32.
Is there a local mailing list for questions about PARI/GP?
No, there is not, but one can easily be created if there is sufficient user demand. In the meantime, students who use PARI/GP in courses should direct their questions to their instructors.