Annotation of OpenXM_contrib/pari/examples/EXPLAIN, Revision 1.1.1.1
1.1 maekawa 1: This directory contains:
2:
3: * the C program mattrans.c using the Pari library described in Chapter 4 of
4: the users' manual. A generic Makefile (adapted to your system by Configure)
5: for PARI programs is included.
6:
7: * Inputrc: an example of .inputrc file for the readline library.
8:
9: * Several examples of complete and non-trivial GP programs. The rest of this
10: file gives a brief description of these programs. They should be read into GP
11: by the command \r file.
12:
13: 1) bench.gp: This program computes the first 1000 terms of the Fibonacci
14: sequence, the product p of successive terms, and the lowest common multiple
15: q. It outputs the ratio log(p)/log(q) every 50 terms (this ratio tends to
16: pi^2/6 as k tends to infinity). The name bench.gp comes from the fact that
17: this program is one (among many) examples where GP/PARI performs orders of
18: magnitude faster than systems such as Maple or Mathematica (try it!).
19:
20: 2) cl.gp: Written entirely in the GP language without using bnfclassunit, the
21: programs included in this file allows you in many cases to compute the class
22: number, the structure of the class group and a system of fundamental units of
23: a general number field (they sometimes fail to give an answer). It can work
24: only if nfinit finds a power basis. Evidently it is much less powerful and
25: much slower than bnfinit, but it is given as an example of a sophisticated
26: use of GP. The first thing to do is to call the function clareg(pol,
27: {limp},{lima},{extra}) where pol is the monic irreducible polynomial defining
28: the number field, limp is the prime factor base limit (try values between 19
29: and 113), lima is another search limit (try 50 or 100) and extra is the
30: number of desired extra relations (try 2 to 10). Default values are provided,
31: so that you need only supply pol.
32:
33: The program prints the number of relations that it needs, and tries to find
34: them. If you see that clearly it slows down too much before succeeding, abort
35: and try other values. If it succeeds, it will print the class number, class
36: group, regulator. These are tentative values. Then use the function
37: check(lim) (lim=200 is the default value) to check if the value is consistent
38: with the value of the L-series (the value returned by check should be close
39: to 1). Finally, the function fu() (no parameters) returns a family of units
40: which generates the unit group (you must extract a system of fundamental
41: units yourself).
42:
43: 3) classno.gp: A very simple function to compute analytically the class
44: number of imaginary quadratic fields (written by Fernando Rodriguez Villegas)
45:
46: 4) lucas.gp: The function lucas(p) defined in this file performs the
47: Lucas-Lehmer primality test on the Mersenne number 2^p-1. If the result is
48: 1, the Mersenne number is prime, otherwise not.
49:
50: 5) rho.gp: A simple implementation of Pollard's rho method. The function
51: rho(n) outputs the complete factorization of n in the same format as factor.
52:
53: 6) squfof.gp: This defines a function squfof of a positive integer variable
54: n, which may allow you to factor the number n. SQUFOF is a very nice
55: factoring method invented in the 70's by D. Shanks for factoring integers,
56: and is reasonably fast for numbers having up to 15 or 16 digits. The squfof
57: program which is given is a very crude implementation. It also prints out
58: some intermediate information as it goes along. The final result is some
59: factor of the number to be factored.
60:
61: 7) taylor.gp: Given a user function f (e.g defined by f(x) = sin(x)), defines
62: a function plot_taylor(xmin,xmax, ordlim, first,step) plots f together with
63: its Taylor polynomials T_i (truncated series expansion of order i) in the
64: interval [xmin,xmax]; i goes from first to ordlim in increments of steps.
65: Sensible default values are provided for all arguments (written by Ilya
66: Zakharevich)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>