Annotation of OpenXM_contrib/pari-2.2/NEW, Revision 1.2
1.1 noro 1: This file highlights some of the novelties in PARI/GP 2.x compared to 1.39.15
2: (last release in the 1.x series). The detailed Changelog is in CHANGES.
3: Incompatible changes are described in COMPAT. See TODO for possible future
4: improvements.
5:
6: %%%%%%%%%%%%%%%%%%%%%%%%%%%% VERSION 2.1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7:
8: * PARI/GP is now released under the GNU General Public License.
9:
10: * PARI now has a CVS server which is intended for PARI lovers who want
11: the very latest bleeding edge release (see the CVS.txt file).
12:
13: * Argument checks have been added to prevent unpredictable results when
14: the input is incorrect.
15:
16: * Errors can be trapped to avoid abort and recover computations.
17:
18: * extended on-line help:
19: ?? (no arguments) opens the users'manual in xdvi,
20: ?? tutorial / refcard opens tutorial / refcard in xdvi,
21: ??? keyword searches for topic in the manual.
22:
23: * Arithmetic: much faster integer factorization with several factoring
24: engines including Pollard Rho, SQUFOF, improved ECM, and an MPQS/PMPQS
25: implementation derived from LiDIA's, with kind permission from the LiDIA
26: team
27:
28: * Polynomials:
29: - much faster factorization over Z[X] (van Hoeij's algorithm) or Fq[X]
30: (more efficient modular kernel), esp. when the polynomial is defined
1.2 ! noro 31: over Fp.
1.1 noro 32: - Ducos' subresultant algorithm for resultants
33:
34: * Number field:
35: - improved ROUND 4 for computations of integral basis/discriminant
36: - faster polredabs / rnfpolredabs polynomial reductions functions
37: - Galois extensions of Q: Fixed fields, Galois conjugates using
38: Allombert's algorithm.
39:
40: * Class group, ray-class group:
41: - improved bnf/bnr functions (faster, numerically stabler), in
42: particular bnfisprincipal
43: - computations of explicit defining equations of abelian extensions of
44: imaginery quadratic fields (using complex multiplication) of totally
45: real abelian extensions (using Stark units).
46:
47: * Elliptic functions: Weierstrass and Weber functions.
48:
49: * Plotting: support of gnuplot, new functions (possiblity to plot directly
50: in a file).
51:
52: %%%%%%%%%%%%%%%%%%%%%%%%%%%% VERSION 2.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53: The GP/PARI structure has been cleaned up.
54:
55: * The whole configuration process has been automated, and a Configure
56: file is provided. Just typing `./Configure' should see you home in most
57: cases.
58:
59: * PARI is now available as a dynamic library, thanks to Louis Granboulan.
60: (you can link GP with it, if you wish to). This saves a tremendous
61: amount of disk space, and is generally more convenient as you don't need
62: to re-link your files when updating the library (or when debugging.
63: or profiling, or...).
64:
65: * types now have a symbolic mnemonic name (e.g t_INT for an integer,
66: t_VEC for a vector, and so on).
67:
68: * General speed-up (depends on your applications, about 40% for our
69: generic testing file).
70:
71: * Experimental module loading structure (the actual function tree
72: has not yet been cut into modules, but for the GP specific functions).
73:
74: ==========================================================================
75: Many new or improved functions in the PARI library.
76:
77: * MANY class-field related functions. In particular:
78: - is it now possible to try and remove the GRH assumption on class group
79: computations.
80: - ray class groups computations (including discrete log).
81: - explicit defining equations in simple cases (Kummer extensions of prime
82: degree, quadratic base field).
83:
84: * computation of Galois groups up to degree 11
85:
86: * roots is now entirely reliable, thanks to Xavier Gourdon.
87:
88: * some core routines have been optimized: Karatsuba fast multiplication,
89: a specific function gsqr() for squarings,...
90:
91: * input/output is much more flexible now:
92: - a function GENtostring has been added, generalizing gitoascii to any
93: PARI object (with a simpler syntax: GENtostring(g) returns a malloc'ed
94: string containing g as gp would print it).
95:
96: - lisexpr has a relative flisexpr (for filtered lisexpr), which enables
97: you to use input containing whitespaces.
98:
99: - you can use GENs in formatted output, a la printf.
100:
101: * improved garbage collecting.
102:
103: * private variables can be created without an explicit lisexpr(), using
104: fetch_var() and delete_var().
105:
106: ==========================================================================
107: GP has been completely re-written:
108:
109: * lowercase/uppercase are now significant. All predefined constants
110: (Euler, I, Pi) have been renamed (as well, the o() notation for series
111: and padics has been superseded by O()).
112:
113: for (i=1,10, print(i)) will not yield an error anymore.
114:
115: * human-readable error messages, including a caret to indicate where
116: a GP syntax error occurred.
117:
118: * function names were renamed according to a more logical scheme. The
119: file new.dico provides a translation (available under GP using "whatnow")
120:
121: * You can retrieve basic information from complicated objects using member
122: functions. For instance x.disc will yield the discriminant of x, whether
123: it was created by nfinit (aka initalg), bnfinit (aka buchinit), ellinit
124: (aka initell).
125:
126: * A `gprc' file is available to set "permanent" defaults (such as
127: global variables, aliases, custom user functions, etc...). For instance,
128: you can put all your scripts in some special directories, and
129: point them out to GP using "path". See misc/gprc.dft for examples.
130:
131: The function "default" enables to change most defaults under gp.
132: For instance: default(compatible, 2) will give you back the former gp
133: function names and helpmessages. [default(compatible, 3) undoes the
134: lowercaps/uppercaps changes as well]. Try "default".
135:
136: * basic C idiosyncrasies such as for instance i++ (for i=i+1), i<<1
137: (for left shift) or i+=j (for i=i+j) are now allowed within GP scripts.
138: /* */ multi-line comments are understood.
139:
140: * lists and (primitive) string support have been added. Characters can be
141: quoted with the usual meaning. As a result, set functions can now be
142: used with arbitrary elements.
143:
144: * if your terminal supports color (variants of color_xterm for instance),
145: you can tell GP to highlight its output in different (user configurable)
146: colors. This is done by fiddling with the default "colors".
147:
148: * The familiar functions "break", "next" and "return" are now available.
149: These should supersede the buggy label/goto provided in older versions.
150:
151: * Enhanced on-line help. If you have perl on your system, try
152: ?? function-name (e.g ?? bnfinit)
153: This is provided by external scripts which can be used independently,
154: outside of the GP session.
155:
156: * If readline is installed on your system, a context-dependent completion
157: (not yet user-programmable) is now available (try hitting <TAB> here and
158: there). Try ?? readline.
159:
160: * many functions now have default arguments (shown between braces {} in
161: the on-line description). gp first reads user-supplied arguments, and
162: then fills in the arg list with these default values. Optional args can
163: be entirely omitted, comma included (for a function with no mandatory
164: arguments, even parentheses are optional !). For instance:
165:
166: Mat = Mat()
167: bnfclassunit(x^2+1,0) = bnfclassunit(x^2+1)
168: bnfclassunit(x^2+1,,[0.2,0.2]) = bnfclassunit(x^2+1,0,[0.2,0.2])
169:
170: The "else" part of the "if" function can be entirely omitted.
171: if (a,1) is now correct; of course, the former syntax if (a,1,) is
172: still valid.
173:
174: * functions "extern" and "system" have been added to interface with
175: external programs (UNIX only). You can do for instance
176: extern("myprog"), or system("ls -l *.gp").
177:
178: * even better, "install" enables you to load any function provided by
179: a dynamically linked library, and have the GP interpreter use it. This
180: makes it easy to have your own customized version of GP with your own set
181: of functions on startup (you can document them using "addhelp").
182:
183: * On 32-bit machines, maximum number of variables has been increased from
184: 254 to 16382. Arrays can have up to 16777214 elements (instead of 65534).
185: In addition vector/matrix operations in GP now perform orders of
186: magnitudes faster than in version 1.39
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>