Annotation of OpenXM_contrib/pari-2.2/CHANGES, Revision 1.1.1.1
1.1 noro 1: AW = Aleksander Wittlin
2: BA = Bill Allombert
3: BD = Bill Daly
4: BH = Bruno Haible
5: CB = Cliff Bergman
6: CW = Carl Witty
7: DB = Dominique Bernardi
8: DC = Dan Christensen
9: DE = Denis Excoffier
10: DF = David Ford
11: DS = Denis Simon
12: GH = Guillaume Hanrot
13: GN = Gerhard Niklasch
14: GT = Glenn Thobe
15: HC = Henri Cohen
16: IS = Igor Schein
17: IK = Iwao Kimura
18: IZ = Ilya Zakharevich
19: KO = Kiyoshi Ohgishi
20: LG = Louis Granboulan
21: MD = Mark Dickinson
22: MS = Michael Stoll
23: OR = Olivier Ramare
24: OV = Oliver Voigt
25: PM = Peter Montgomery
26: PW = Paul van Wamelen
27: TH = Teluhiko Hilano
28: TP = Thomas Papanikolaou
29: XR = Xavier Roblot
30: YU = Yoshiaki Uchikawa
31:
32:
33: Done for version 2.2.1 (released ??/09/2001):
34:
35: Fixed
36: 1- typo in factornf (factor of degree 3 --> error message)
37: 2- rnflllgram(), idealinv() didn't check their arguments
38: 3- [readline] \r<TAB> would complete using files matching r*
39: 4- wrong result in ZY_ZXY_resultant when degree dropped in ERS
40: 5- factor(x^2 + I*1.) --> stack corruption
41: 6- \r directory was silently accepted
42: 7- check arguments in polcompositum()
43: TH 8- [Cygwin:] fixed paths for readline on cygwin 1.*
44: XR 9- possible overflow in ComputeCoeff [ bnrstark() ]
45: 10- numtoperm(2,x) --> SEGV [check arguments now]
46: 11- rnfkummer could fail with "missing units"
47: 12- factornf(P, non-monic t) --> error
48: 13- forsubgroup/subgrouplist didn't check their arguments nor accepted SNF
49: matrices
50: XR 14- typo in nilord4 --> SEGV, e.g.
51: nfdisc(x^16-363*x^14+53550*x^12-4091823*x^10+170172414*x^8 \
52: -3663509067*x^6+33703350345*x^4-63300912912*x^2+32451860736)
53: 15- some messages didn't distinguish between MBytes and millions of Bytes
54: 16- typo in BuildTree [hensel lift]: SEGV
55: 17- (rare) oo loop in polroots, e.g. x^5-2*x^4-32*x^3+72*x^2+218*x-491
56: 18- oo loop in ellpointtoz on certain rare inputs
57: 19- stack corruption in factorff
58: BA 20- better interface for galoissubcyclo
59: BA 21- galoisfixedfield(,,2) now works with non Galois subfields
60: BA 22- nfgaloisconj now use `d-1'-test + better strategy
61: BA 23- fix accuracy problems in vandermondeinverse
62: 24- missed some simplifications when handling multivariate t_RFRAC
63: 25- [Cygwin:] incorrect default 'path' (used : instead of ;)
64: 26- element_sqr didn't check its arguments (SEGV if bad input)
65: 27- possible stack corruption in polroots (+ improved GC there)
66: 28- typo in nfsubfields (incorrect bound: could miss a subfield)
67: 29- typo in zsimpjoin (concat error in bnrdisclist, intr. in 2.2.0)
68: IZ 30- typo in Configure [rl_save_prompt and _eprintf not found in target libs]
69: MD 31- oo loop in ellap [uninitialized array length in apell1]
70: 32- stack corruption in addfrac [wrong result for large denominators]
71: 33- resmod2n [called from powmodulo] could return unnormalized integers
72: 34- not enough GC in nfinit for huge degrees [get_mul_table]
73: 35- intformal(1/2/t^2) --> apparent oo loop
74: 36- polredabs(degree 1 polynomial) --> x [could be very slow]
75: 37- polredabs() could use a basis which was not LLL reduced
76: BA 38- pariformats (e.g %Z) incorrect on 64bit machines
77: 39- polhensellift(x,[x,1],2,2) --> "bug in multiplication"
78: 40- glitches in readline completion (random() * ne<TAB) --> inserted args)
79: IZ 41- CLK_TCK may reside in time.h
80: 42- misleading definition for ?omega / ?bigomega
81: 43- on \q, "Good bye" --> Goodbye
82: 44- install() accepted gpnames which were not valid identifiers
83: 45- bnfinit(x^4+65,,[.1]) --> SEGV (whenever c < c2)
84: 46- when host badily configured (~ not expanded), gp would die on startup
85: XR 47- factorpadic(, not a prime, ) --> SEGV
86: 48- matrix(2,2,i,i, ...) allowed, with weird result
87: BA 49- better arguments checking for galoisfixedfield
88: 50- psi(I) --> incorrect type in rtodbl
89: XR 51- increase precision automatically when needed in quadhilbertreal
90:
91: Changed
92: 1- removed useless parameter prec in many bnr* and rnf* functions
93: 2- major update of bnr* functions [use elements in factored form]
94: 3- use /tmp instead of /var/tmp as default tmp directory [faster on Solaris]
95: BA 4- Fp_PHlog (Pohlig-Hellman) can use a factorization of the subgroup order
96: 5- major update of buchall() [bnfinit]: accurate precision increase, cleanup
97: 6- [libpari:] rename permute/permuteInv to GP names numtoperm/permtonum
98: 7- scalar + [;] --> error [made it [;]]
99: BA 8- factorback, chinese, lcm and gcd now accept a single vector
100: 9- Use I \cap Z instead of NI in hnfideal_inv
101: 10- improved issquare(t_INTMOD)
102: 11- improved subresultant routines (new function pseudodiv)
103: 12- command-line options to Configure (installation directories)
104: 13- rnfequation: use modular (bivariate) resultant
105: 14- polynomial gcd (srgcd): uses modular algo (modulargcd,nfgcd) if possible
106: 15- unified internal hnf* functions
107: 16- improved nfsubfields [better Hensel lift]
108: 17- merged all "integer logarithms" + "safe ceil" functions (mylogint,
109: get_e, floor_bound, myceil)
110: 18- readline: TAB on empty parentheses following a function name has the
111: same effect as M-h (used to insert args).
112: IZ 19- faster computation of prime number table [better cache use]
113: IS 20- obscure compiler bug in rootpol.c:max_modulus() [don't modify tau]
114: 21- make bench ('elliptic'): explained [BUG] message
115: 22- allow lift(t_PADIC)
116: 23- faster polroots for Q of the form P(x^k)
117: 24- allow nfsubfields(pol,) [had to be nf]
118: 25- allow subst(t, x^n, x)
119: 26- ?user_fun: do not include function text if help available from addhelp
120: [always include it for ??user_fun]
121: 27- default values for used defined function arguments are evaluated when
122: the function is called [used to be "when it's defined"]
123:
124: Added
125: BA 1- function pith() [= pi(x), naïve implementation]
126: 2- new target for Makefile: gp.dbg
127: BA 3- library functions FpX_roots_to_pol, FqX_roots_to_pol
128: BA 4- library function FpX_FpXQ_compo (Brent & Kung)
129: 5- library function FpM_inv, FpM_gauss, ZM_inv, QM_inv
130: 6- library function primitive_part
131: IZ 7- readline: allow switching readline editing on/off [for commandtools]
132: IZ 8- readline: F1 has same effect as M-h, and F1F1 as M-H (short/long help)
133: 9- function writebin
134: XR 10- new error message "precer" (precision too low in...)
135: 11- allow minimal handling of t_VECSMALL under GP
136:
137: Removed
138: 1- obsolete functions twototwo, threetotwo, threetotwo2
139: XR 2- error message truer2 (superseded by precer)
140:
141: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
142: Done for version 2.2.0 (released 30/04/2001):
143:
144: Fixed
145: BA 1- gpflog could print some lines twice
146: 2- return() could forget objects on heap
147: 3- polhensellift didn't accept factors which were not squarefree
148: 4- Configure missed some shared libraries (when only .so.version was there)
149: 5- possible symlink attacks against mpqs()
150: 6- internal requests for precision of bnfinit(x) [ = Q ] could yield SEGV
151: 7- compatible = 3 not taken into account when reading a file
152: 8- cbezout(0,0) = 1 (should be 0)
153: 9- when lines > 0, output driver didn't reset properly after user output
154: 10- nfdisc(x^5+2*x^4+3*x^3-3*x^2+122*x-1) --> impossible inverse
155: 11- bug in gcc-2.95 -O3 -fomit-frame-pointer [Linux]: SEGV in quicksqri
156: 12- addrfrac: could return a t_RFRAC whose denominator wasn't a t_POL
157: 13- bnfcertify (zimmertbound): off by two error when reading bound
158: 14- very inefficient Hensel lift (used ideas from Shoup's NTL)
159: 15- incorrect assumption on factor degrees in polcompositum (SEGV in rare
160: cases)
161: 16- Vec(VECSMALL) --> incorrect object
162: 17- galoispermtopol didn't check permutation length (--> SEGV on bad input)
163: XR 18- rnfinit(nf, T) -> bug in multiplication if nf = Q
164: 19- Pol(cotan(x)) -> SEGV
165: 20- factor(tough polynomial over Z[X]) --> possible SEGV when padic
166: precision is increased [e.g factor(polzagier(60,0))]
167: XR 21- bug in ideal bound computation in rnfnormgroup
168: 22- bnrisprincipal(...,y+z) --> SEGV
169: 23- GP could forget about a function whose redefinition was stopped by a
170: syntax error (sometimes with a delay!)
171: 24- bnfisnorm result would include pols in MAXVARN: e.g. Mod(1, #)
172: BA 25- pbs in Fp_factor_irred (factoring over Fq a pol. defined over Fp)
173: 26- missing macros for gphelp (tex-mode) in chapter 5
174: 27- nfsubfields(nfinit(polcyclo(13))) --> impossible inverse Mod(0, 29)
175: 28- argument checks for element_mulid, nf_get_r1 (access to nf.sign)
176: 29- typo in quadhilbertimag (SEGV for very large discriminants)
177: 30- wrong precision used in numerical derivation
178: BA 31- isprime(n < 2, 1 or 2) gave wrong result
179: IZ 32- \r C:\a.gp wouldn't work [ : and \ forbidden... ]
180: BA 33- bad PARI prototypes in init.c [were confusing GP2C]
181: XR 34- nfdisc: fixed cache system in nilord (esp. precision handling)
182: BA 35- nfgaloisconj(polcyclo(40)): accuracy lost
183: nfgaloisconj(polcyclo(11)+1): oo loop
184: IS 36- typo in squfof tuning on 64bit machines
185: 37- -lm doesn't exist on MacOS X
186: BD 38- typo in src/kernel/l0asm.c: ulong not recognized by MSVC
187: IZ 39- TeX quasi-parsing in gphelp
188: 40- ^C in gp would kill an xdvi launched by gphelp via ?? [detach from tty]
189: 41- factor(P in Z[X]): wrong bound used in LLL_cmbf --> "no factor"
190: 42- one extra blank line printed with some error messages [errcontext]
191: 43- no typechecks in subgrouplist and forsubgroup
192: 44- round4 [dbasis]: make sure polmodi gets a polynomial, not an int (SEGV)
193: 45- various typos in rnfkummer (SEGV or 'non-maximal rank in nfhermite')
194: 46- Configure -l (no argument) didn't work anymore
195: BA 47- incorrect quoting in src/make_vi_tags (make ctags)
196: 48- 1/[;] --> error, whereas [;]^-1 --> [;] [ now, allow 1/[;] ]
197: 49- ??real only gave the help on t_REALs, not on real()
198: 50- eigen: "missing eigenspace" [roundoff pb in ker() compared to exact 0]
199: 51- error messages on GP metacommands (\...) indicated wrong context
200: 52- bnr functions might fail with "indefinite matrix in lllgram" [prec pb]
201: 53- nfhilbert(nf,a,b, pr | 2) would give bogus result if nf in variable 0 (x)
202: MD 54- real(1 / (a+quadgen(...)*b)) was a / (a^2 + b^2) [assumed quadgen(-4) !]
203: 55- wrong HNF (reduction not finished) when nblines >> nbcol [hnf(,0) only]
204: 56- rare problem in isprincipal (large non Galois base field)--> wrong
205: result (generators not required) or infinite loop.
206: 57- compatibility problems with readline-4.2 (build would fail)
207: BA 58- pari format %Z (pariputsf) treated incorrectly on 64bit machines
208: XR 59- typo in smallvectors (polredabs): possible oo loop
209:
210: Changed
211: 1- DOS distribution archives (GPM removed)
212: XR 2- round 4 algorithm: compute characteristic polynomials via Newton sums
213: XR 3- nffactormod now calls factmod / factmod9 when possible
214: XR 4- don't compute discriminant in nffactor/nfroots + better bounds in nfsqff
215: 5- input loops rewritten (filtre more flexible + unified common code)
216: 6- better modular arithmetic for polynomials (+ uniformized names)
217: 7- bnfinit: "looking hard" part overdone in random relations. Tuned down.
218: XR 8- added flag in rnfconductor to check extension is abelian (under GRH)
219: 9- made Vec("pari") return ["p","a","r","i"] instead of ["pari"]
220: 10- renamed library function gsize() to sizedigit() [conflict with gtk]
221: XR 11- bnrstark: check if N0 is too large (=> computation impossible)
222: IK 12- let lisGEN() return NULL when EOF is met (was oo loop)
223: 13- algorithm for zeta(), gamma() [initial GP code by HC]
224: 14- improved rnfnormgroup() [reduce number of calls to isprincipal]
225: IZ 15- flags for OS/2 build + use generic [pre|suf]fix for object files
226: IZ 16- readline: hit_return() would not work after Esc-H
227: extend online help recognition capabilities (Esc h/H, F1)
228: 17- install the whole distribution (see ?12)
229: 18- clean up in the bnrdisclist ray class group internal functions
230: 19- naming scheme for development versions library: libpari-2.2.so.0.0.0
231: 20- new Configure flags --share-prefix, --host
232: 21- allow library functions to return NULL to the GP interpreter
233: 22- let A^-1 and 1/A return a left inverse of A if it exists [A had to be
234: square]
235: 23- retuned factorization over Z[X] (+ "d-1 test" in naive recombination)
236: 24- sort factorpadic() output
237:
238: Added
239: 1- files README.WIN, config/[arch-osname|locatesymbol], doc/tex2mail.1
240: GN 2- Jebelean extended gcd + rational number reconstruction
241: XR 3- new flag to rnfconductor (check extension is abelian)
242: IZ 4- set of default colors (boldfg)
243: 5- modular polynomial arithmetic ([uni|bi]variate resultant over Z,
244: characteristic polynomial of algebraic numbers, nfgcd).
245: [undocumented, experimental]
246: 6- Pohlig-Hellman discrete log over Fp and nf.zk / pr
247: BA 7- flag to galoissubcyclo (also output conductor)
248:
249: Changed
250: 1- start using the new modular functions [polcompositum]
251: BA 2- sqrtn, aka mpsqrtnmod (modular n-th root) uses Fp_shanks now
252:
253: Removed
254: 1- obsolete undocumented functions oldidealinv, idealinv0
255: 2- buggy function hnfhavas (hnflll is a better alternative)
256:
257: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258: Done for version 2.1.0 (released 17/11/2000):
259:
260: Fixed
261: 1- non portable \e in es.c (pb with Sun cc)
262: 2- ^C while prettyprinter in action --> gp crash
263: 3- polresultant(a,b,x,2) --> b
264: 4- exp(log(1.+x+y)) --> division by 0
265: TH 5- support cygwin version 1
266: 6- TeXmacs interface
267: 7- GP parser codes (sqrtint, idealprimedec)
268: 8- trap (break loop) + NO readline + ^C at input time --> exit.
269: 9- qfminim(,,,1) --> nonsensical result (typo)
270: 10- SPARC + gcc-2.97 --> bug in addsmulsi (register reset too soon)
271: 11- trapping allocatemem() could crash GP
272:
273: Changed
274: 1- release PARI under the GNU GPL. Remove COPYRIGHT file, add COPYING
275:
276: ===========================================================================
277: Done for version 2.0.21 (released 27/10/2000):
278: Fixed
279: 1- trap(gdiver2,a,1/0) <C-D> trap(,a,1/0); trap(gdiver2,a,1/0) --> crash
280: 2- lllgramintern could reduce a wrong lattice (after precision problems)
281: XR 3- not enough GC in bezout()
282: 4- use hnfmodid in ideallllred (work mod I \cap Z, not mod N(I))
283: IS 5- C++ compilation problem (compl is a C++ operator + casts)
284: 6- factor(x^2 - 16810110*x + 62994937599000) --> division by 0
285: BA 7- Pocklington-Lehmer didn't stop factorisation after sqrt(N)
286: 8- exp(log(Pi+x+y)*1.) --> SEGV (still gives an error, but a decent one)
287: 9- factorff needed a prime field F_p where p was single precision
288: 10- more digits than were significant could be printed (ex: precision(Pi,1))
289: 11- rnfisnorm didn't accept vectors on Zk basis as argument
290: 12- [cygwin] fixed timer (always returned 0)
291: IS 13- function prototypes (missing 'extern')
292: 14- quadray(bnf, ...) didn't work when bnf.disc < 0. Could also return
293: a relative equation over an intermediate field
294: 15- deficient argument checks: asinh(2*x-1), agm(1,1-x), zetakinit(2*x-1),
295: idealinv( , wrongtype), nfnewprec([2*x-1]), thueinit(non-monic or
296: degree 1), lcm(x, 0) rnfidealmul(2*x-1,0), galoisfixedfield(2*x-1),
297: qfbnupow(2*x-1, 0), polred([x,x]), bezout(Mod(x,x^2+1),0),
298: numtoperm(-1,0), polred(nf), idealhnf(nf,y+z), factorpadic(,y,),
299: nfelftreduce, rnfsteinitz, idealappr(not an nf, ...): SEGV
300: 16- check variable numbers in algtobasis: nfalgtobasis(nfinit(P(y), x))
301: 17- factorcantor(x^4 - x^3 - 2*x - 1, 3) --> SEGV [typo!]
302: 18- matsupplement(non-exact entries): fixed zero test (--> |x| < eps)
303: 19- precision(I*1.) --> +oo (should be realprecision)
304: 20- global() could check uninitialized memory
305: 21- default(prettyprinter,"non-existent-file") ---> SIGPIPE and GP crash
306: 22- gamma(1+O(3^2)+x) --> SIGFPE
307: 23- typo in cxgamma (gamma(-4.1+Pi*I/2) --> exponent overflow)
308: 24- Odos/paricfg.h defined PARIINFO incorrectly
309: 25- inconsistenty t_POLMOD specification: Mod(x,y)+16 --> invalid object
310: 26- bnfsunit error (impossible I-->S) when large class group
311: 27- qfminim([;],...) / qfperfection([;]) --> SEGV
312: 28- idealpow(,,,1) only reduced at the end, not after each multiplication
313: 29- typo in zbrent (always used bisection)
314: BA 30- cotan(x) wasn't accepted
315: 31- wrong internal prototype for thetanullk (prec not taken into account)
316: 32- various bugs in gphelp -detex (??\a)
317: 33- trap + ^C + next would interrupt \r or read()
318: IZ 34- external prettyprinter incompatible with colors
319: 35- idealval used much larger numbers than necessary
320: 36- sqrtint very inefficient (computed with full precision all along)
321: 37- bnfisprincipal couldn't deal with some non-Galois fields
322: 38- listcreate allowed creating longer lists than GP could later handle
323: 39- INPUT colors was "leaking out" (affected status messages)
324: 40- idealpowred(, power > 2^32) --> wrong result
325: 41- when lines > 0, output driver didn't reset properly after overflow
326: 42- huge precision losses in bnfinit computations (--> truncation error)
327: 43- mateigen([1,2;3,4]) wouldn't work at default precision
328: 44- leftover debugging statements in gphelp -to_pod
329: 45- zeta(x) didn't always use the precision of x (contrary to the other
330: trans. functions)
331: 46- some Warnings from MIPSPro 7.2.1 compiler (contributed by PM)
332: BA 47- gdiv(SER,POL) --> SEGV when POL has lgef < lg
333: 48- check relative pol is monic before calling a rnf* function
334: XR 49- cleaned up bnrL1 character computations
335: XR 50- round 4: possible problems when increasing p-adic precision
336: 51- stack corruption in mppgcd(huge t_FRAC, huge t_FRAC)
337: BA 52- abs(t_SER) not allowed
338: 53- nfdisc(non monic polynomial,, disc factorization) returned wrong answer
339: 54- rnfidealnormrel(rnfinit(nfinit(y^2-2),x),2) --> SIGBUS
340: 55- hardcoded paths in a few scripts (tex2mail, gpflog, make_vi_tags)
341:
342: Changed
343: BA 1- more efficient quadratic Hensel lift
344: 2- made ya optional in polinterpolate
345: BA 3- more efficient factorff when pol belongs to Fp[X] (based on Fp_isom)
346: 4- catch SIGFPE
347: 5- made poltchebi efficient
348: 6- write all real zeroes in exponential format (0e28) in format 'g'
349: 7- bnfsunit: try to compute S-units even when the class group is large
350: reduce class group generators
351: 8- 0.e N now inputs a real 0 of decimal exponent N (was N-defaultprecision)
352: 9- try to avoid errors due to precision loss (while computing archimedian
353: components) in bnfnewprec/bnfmake
354: 10- restore \o2 to previous meaning, use \o3 for alternate prettyprinter
355: 11- normalized output of idealfactor (sort factors)
356: 12- better TeXization (\left / \right)
357: 13- allow color changes in error messages (when sample input is given)
358: 14- format for bnf[9] (new isprincipal)
359: 15- cleaned up isprincipal + bnfinit (small_norm, getfu, class_group_gen)
360: XR 16- added flag for D>0 in quadhilbert: if non-zero, try more modulii
361: 17- idealred: reduce huge ideals as Z-module first (using lllintpartial)
362: 18- TeXmacs interface
363:
364: Added
365: 1- library function zerovec
366: 2- van Hoeij's algo. for modular factors recombination (factor over Z[X])
367: 3- algdep for p-adic numbers
368: IZ 4- default values for 'colors' (light/dark) and 'prettyprinter' (tex2mail)
369: 5- hnflll implementation (old one was preliminary and didn't work at all)
370: GN 6- squfof implementation
371: 7- numerical derivation
372: XR 8- GP interface to hensel_lift functions (polhensellift)
373:
374: Removed
375: 1- quadrayimagwei, preliminary implementation to quadray(D < 0)
376:
377: ===========================================================================
378: Done for version 2.0.20.beta (released 07/06/2000):
379: Fixed
380: 1- gp -p1e -->SEGV
381: 2- nfinit([x,1]) --> SEGV
382: 3- ensure stack large enough [allocatemem(1) painted user in a corner]
383: 4- make sure mpinl.o is linked (binaries may fail to build otherwise)
384: 5- make sure sqrt(Mod(a,b)) terminates
385: 6- memory leak with PARI pointers (issquare(4,&x))
386: 7- 'make clean' didn't affect doc
387: 8- Configure didn't detect some SuperSparc + Linux combination
388: 9- forprime (and friends) could crash when loop index was tampered with
389: 10- trap(, -1, (1/0)) == -1 ---> -1 (analyseur not reset)
390: XR 11- bnrstark initializations (incorrect when field not totally real)
391: 12- member functions not very robust [e.g. ellinit(e,1).roots --> SEGV]
392: 13- compiler warnings (gcc -O -Wall)
393: 14- trap() not robust enough in library mode (nested handlers)
394: 15- (x^2+3)/(2*x)*x --> invalid RFRAC
395: 16- factorpadic result used too high a precision (+improved handling of
396: nonmonic polynomials)
397: 17- sqrt(Mod(0,1)) --> oo loop (+ improved a bit mpsqrtmod)
398: 18- no GC in norml2
399: IZ 19- tex2mail had difficulties with rational functions
400: 20- (rare) SIGBUS in quadclassunit(non-fundamental discriminant)
401: 21- g()=f()==0 --> syntax error
402: 22- } as last char of an input file (missing a final \n) caused problems
403: 23- ??keyword@ didn't work properly (pattern modified between chapters)
404: BA 24- bug in galconj.c:corediscpartial (could return half integer)
405: 25- factorff and ffinit "not random enough"
406: TH 26- Configure doesn't handle cygwin new directory structure
407: CW 27- polsturm(x,0,1) = 1 (should be 0)
408: 28- [library:] gentimer(3) didn't work
409: PW 29- various bugs in qfminim(,,2) [bound was rounded up + stack corruption]
410: 30- ellap(e,2) gave wrong result when 2 | e.disc
411: 31- factorint: isprime() used on factors even within smallfact()
412: GN 32- SEGV in mpqs main sieving routine (unsigned comparison)
413: 33- prevent polredabs from keeping small vectors accumulating in a subfield
414:
415: Changed
416: 1- renamed .DOC files to .txt (Explorer was getting confused...)
417: 2- moved MANIFEST to config/MANIFEST
418: IZ 3- meaning of flags > 1 in plothraw
419: IZ 4- output of \x (a bit more verbose)
420: 5- unified basic t_QFR routines (use exponential distance internally)
421:
422: Added
423: BA 1- Pocklington-Lehmer primality prover
424: BA 2- Fp_isom (library)
425: BA 3- Mod(a,b)^(c/d) for a,b,c,d integers
426: 4- flag to vecsort (decreasing order)
427: BA 5- function sqrtn
428:
429: ===========================================================================
430: Done for version 2.0.19.beta (released 17/03/2000):
431: Fixed
432: 1- buffer overflow in ploth (when extrema too large)
433: 2- trap(,"") didn't work
434: IS+BA 3- various fixes necessary for g++
435: 4- prototype inconsistency in level1.h (evalexpo/evalvalp)
436: 5- trouble with pgcc -mk6 + variable k6 in elliptic.c
437: HC 6- nfnewprec(bnf) could contain objects of low accuracy
438: XR 7- check subgroup argument in bnrL1
439: 8- typo in ideal_two_elt (oo loop)
440: 9- pb with GNU as + preprocessor on Sparc
441: 10- incorrect result in matdet over Z[1/n] (Gauss-Bareiss) [gdivexact]
442: 11- solve(x=0,1,deriv(x)) --> SEGV
443: 12- ??' --> weird error
444: 13- generic SNF (polynomial entries) couldn't handle 0s on diagonal
445: 14- incorrect handling of 0 ideals in some functions
446: XR 15- typos in bnrL1
447: 16- bad input not handled in rnfcharpoly()
448: IZ 17- delay rounding in rectplot structures until plotting device
449: 18- Mod(1,x) / matid(2) --> incorrect object
450: 19- avoid getrusage on alpha (pb with gp-dyn)
451: 20- incorrect file inclusions when using gas on Sparc (-->undefined symbols)
452: 21- massive cancellations in zetak(nfz,) when current prec lower than nfz's
453: XR 22- bnrstark(): fixed inconsistency between 32bit & 64bit versions +
454: check maxprime() before starting the computation
455: PW 23- hyperu bad input bug
456: PW 24- intnum(x=1,2,0) --> oo loop
457: 25- sin(x + y) --> error
458: 26- next(i > 1) didn't work (part of the last loop could be executed)
459: 27- typo in polrootspadic(p, 2, *) [singular case]
460:
461: Changed
462: XR 1- bnrL1 now takes a congruence subgroup as second argument
463: 2- allow some functions to modify bnf/bnr structures (matal + cycgen)
464: CB 3- modified TeX macros for pdftex
465: 4- have abs(t_COMPLEX) give an exact result if possible [abs(0*I) was 0.0]
466: IS 5- improved generic gcc compilation flags
467: 6- in qfbclassno(), compute in G^2 to get rid of cycli factors
468: 7- improved bnrdisc/bnrconductor
469:
470: Added
471: BA 1- function galoissubcyclo()
472: BA 2- (for now internal) function inverseimage_mod_p()
473: BA 3- optional arguments (vertical range) to plot()
474: IZ 4- `ticks' on hi-res plots
475: IZ 5- prettyprinter default and tex2mail file
476: BA 6- new function Fq_ker
477:
478: ===========================================================================
479: Done for version 2.0.18.beta (released 20/12/1999):
480: Fixed
481: 1- wrong method chosen in isinexactfield for 0 polynomials
482: 2- stack corruption in sylvestermatrix(0,...): Mod(x,x)^-1 --> SEGV
483: 3- garbage left on stack in ginv(1 / n)
484: 4- typo: carreparfait --> gcarreparfait in nfiso0()
485: 5- for (A=1, 2, A = -A) --> SEGV
486: IZ 6- [gnuplot] couldn't set terminal as the first graphing operation
487: DE 7- typo in kernel/sparcv7/level0.S: err --> pari_err
488: 8- TeXmacs interface (use new protocol)
489: 9- call simplify() before applying GP '==' and '!=' operators
490: Ex: x;n;k;m; (n+m)==(k+1-k)*(n+m) was false.
491: 10- sumdiv(N,...) required single precision N
492: BA 11- bound problems in nfgaloisconj()
493: 12- infinite loop in do_agm()
494: 13- "Warning: in Gauss lg(a)=1..." from isprincipalall0
495: 14- specific error for precision problems with p-adic ell. curves
496: IZ 15- ploth() plots are 1/2-pixel off
497: BA 16- result was not always complete in nfgaloisconj()
498: 17- type(1/y, RFRACN) --> SEGV + check compatibility before applying type()
499: 18- made 'secure' safer. Confirm before write, prevent from changing 'help'
500: 19- gettime() called the wrong timer(): was reset in debug mode
501: 20- missing case (doubling) in apell1
502: 21- gmod(x, mod) replaced by gmul(x, gmodulcp(gun,mod)) in poldivres
503: [obscure bugs when dividing complicated polynomials with mixed
504: polmods/intmods].
505: 22- Make sure result is a t_POL before doing a setvarn in caract2_i()
506: 23- precision problems in ClxModulus (bnrstark()) [check leading term!=0]
507: 24- elltors() could miss some points: determine needed precision first
508: 25- clean up files after an error (not only under GP)
509: 26- divisors(highly composite integer) --> "cryptic" error message
510: 27- 'make clean' wasn't thorough
511: 28- ellpointtoz(e, [0,0]) could correspond to the inverse point
512: 29- "ideals not coprime" in rnfsteinitz
513: BA 30- typo in Configure [CPP] (cc --> CC)
514: BA 31- member functions for galoisinit
515: 32- allowed power series in Mod(). Fixed cryptic error messages.
516: 33- precision problems in zsigne
517: 34- value of 'gzip' found by Configure overwritten in TOP_Make.SH
518: XR 35- precision loss in Round 4
519: XR 36- ensure that fundamental unit is computed in quadray (if D > 0)
520: XR 37- precision fixes in stark.c (inconsistencies 32/64 bit + early abort)
521: 38- bug in P*Q for polynomials over (non prime) finite fields if Q is
522: defined over the prime field
523: XR 39- [stark.c]: bugs in RecCoeff3, reduced memory use in ComputeArtinNumber
524: 40- core dump on infinite recursion under GP
525: 41- use appropriate precision in torselldoud (could be much too large)
526: 42- removeprimes(addprimes) didn't work
527: 43- (at least part of) numerical instability of LLL over R
528: 44- f() = bug(x, &y) ---> syntax error
529: XR 45- inefficiencies in ComputeArtinNumber for large modulus
530: HC 46- no GC in dirmul
531: 47- meaningless heap count for user functions
532: 48- setrand(16);quadclassunit(48893) --> infinite loop
533: 49- rnfpolred(bnfinit(y^2+1),x) --> SEGV
534: 50- float overflow in polroots (e.g polroots(x^3 + 2^1024*x + 1))
535: 51- charpoly(Mod(1,x^2+1)) --> SEGV
536: 52- added GC in polsturm
537: BA 53- bugs involving rarely used type combinations in generic operations
538: 54- check x >= 0 in lllgramint(x)
539: 55- in rnfdedekind: use rnfhermitemod, not rnfhermite (slooow)
540: XR 56- updated factorpadic to use new Round 4
541: BA 57- nfgaloisconj: discrepancies between 32/64 bits architectures
542: 58- random(1 << 32) could have 32 bits
543: 59- missing newline in error messages on startup (reading .gprc)
544: 60- silent codeword overflows (e.g. O(x^100000))
545: IZ 61- updated gnuplot support
546: 62- x="a"; eval(x) --> error
547: 63- general flakiness with buffer handling under GP
548: (Ex: input() + allocatemem --> SEGV)
549: 64- [1] == 2 --> error (instead of 0)
550: 65- lngamma(-0.106) --> SEGV
551: 66- quadray(-11,3) --> x^2
552: XR 67- typo in nilord2 (wrong value for modular reduction)
553: 68- unsafe division t_SER / t_SER with clonable components
554: 69- polroots(1E-28*I*x^2+1) --> bug in roots (conjugates)
555: 70- typo in cxlngamma [ lngamma(-7.4927-0.418564*I) --> SEGV ]
556: 71- polroots(polynomial of very small Norm wrt prec) behaved badly (SEGV)
557: 72- polylog(1, Mod(1,2)) --> SEGV
558: 73- zeta(22!/23) --> SEGV
559: 74- not enough GC in rnformax
560: 75- over-reactive 'secure' default (+ moved it later in default .gprc)
561: 76- sqrt(Mod(15,y^2+1) + O(x^5)) --> SEGV
562: BA 77- typo in isinexactfield
563: 78- sum(x=1,10, expr1; seq) : seq silently ignored
564: 79- ellan and elltaniyama didn't check their arguments
565: 80- simplify(t_POLMOD) could create invalid objects (mod not a t_POL)
566: 81- primes(-1) --> SEGV
567: 82- addprimes(0) wasn't rejected
568: 83- various inconsistant error bessages (e.g. factor("a"))
569: 84- estimate for the precision of unit embeddings in isprincipalall
570: 85- global("b") --> polvar corrupt
571: 86- hnfmod --> hnfmodid whenever possible
572: 87- check arguments in incgamc
573: 88- non-rectangular matrices could trigger a SEGV (in error msg!)
574: 89- qfminim(,,2) didn't like mixed t_REAL/ t_FRAC entries (typo)
575: 90- inconsistant spacing after GP error messages
576: 91- regrouped code between idealred and idealmin
577: 92- prevent 'install' in secure mode
578: DS 93- typo in bnfisnorm(,,flag > 1) [extraneous gtrans]
579: 94- don't reset pariErr in err_recover()
580: 95- highlevel.c had become dependant from gp.c
581: XR 96- incorrect output of quadray(D,,1) when D>0 and rayclass is trivial
582: 97- typo in lllall_trivial --> matkerint([0;0]) didn't work
583: BA 98- incorrect object for gerepileupto in gscalcol
584: 99- try to detect bad input (e.g quad. form not > 0) in (integral) LLL
585: XR100- typo in nffactor ("keep the value of i")
586: IS101- work around an obscure gcc bug (gcc-2.96, alpha-linux) in stark.c
587: 102- rnfcharpoly(nfinit(y^2+1),1,1) --> SEGV
588: BA103- tan(t_COMPLEX) gave bogus result
589: BA104- trace([;]) --> SEGV
590:
591: Added
592: IZ 1- [gnuplot] look up directory tree for gnuplot related files
593: 2- improved on-line help wrt to defaults and ambiguities
594: (? default/some_default, ? some_default)
595: 3- library functions gentimer, genmsgtimer, get_timer
596: HC 4- optional argument to direuler (length of result)
597: 5- low-level kernel function for integer squarings (twice faster)
598: 6- error trapping in library mode and under GP
599: 7- break loop to investigate errors under GP
600: 8- "sprintf-rounding" under GP
601: IZ 9- string justification in high-res plot
602: IZ 10- bit operations ( bit[ and | or | neg | negimply | xor ] )
603: XR 11- add new flag value in bnrstark/quadray: try to find a better modulus
604:
605: Changed
606: 1- default binary produced by Configure -g is now static
607: 2- improved the heuristics in ellisoncurve
608: HC 3- extend the range of direuler (maxp was 2^16)
609: 4- trial divide by the "private primes" before the primality tests
610: 5- don't double stack automatically
611: 6- disable ff_poltype correction (for lack of decent finite fields) in gmul
612: 7- slight optimization to hnf / hnfmod (skip zeroes)
613: XR 8- nfsqff: choose a prime ideal with few factors + better heuristic bound
614: IS 9- default CFLAGS on linux-alpha
615: 10- improved factorcantor / factorff
616:
617: Removed
618: 1- sunview "support" (didn't work, hard to test, X11 is a better standard)
619:
620: ===========================================================================
621: Done for version 2.0.17.beta (released 24/09/1999):
622:
623: Fixed
624: XR 1- typo in zarchstar (result possibly incorrect when more than two places)
625: 2- check_unit not severe enough ([;] --> session could die !)
626: 3- wrong error message when using global var as argument to user function
627: 4- typo in boundfact(t_FRAC) --> SEGV
628: 5- buchall: don't compute xarch if not needed
629: 6- remove limit on string size + silent overflow, e.g Str(10^5000)
630: 7- "break status" not checked often enough: [break, 1] --> SEGV
631: 8- rewrote errcontext (use print_text to fit messages on terminal)
632: BD 9- added workarounds against some MSVC annoyances (Windows version)
633: IZ 10- typo in Gnuplot.h
634: 11- typo in Configure ("2>&1 >/dev/null" replaced by ">/dev/null 2>&1")
635: 12- simplified incgam[23] + typo (mulrr --> gmul)
636: IZ 13- typo in LD_LIBRARY_PATH setting (benches)
637: 14- inconsistency in gadd(0., FRAC) (should give 0. if FRAC small enough)
638: 15- libraries/headers ordering inconsistent in Configure (report: IZ and KO)
639: 16- typo in ff_poltype [symptom: (Mod(1, y^2 + 1)*x + 1)*x --> garbage]
640: 17- qfbprimeform(4, [2]) --> SEGV
641: 18- overflow in factorcantor(2*x^3+3*x^2+x, 2^31-1)
642: 19- memory corruption in apell1 + no garbage collection,
643: rewrote the function to parallel apell0, replaced hashing by sorting,
644: use Montgomery's trick, removed the p < 10^25 limit
645: IS 20- cc -64 warning in mp.c:vals()
646: 21- bad free in gp_expand_path
647: 22- extract([;], "..") --> SEGV
648: 23- not enough GC in hnfall
649: 24- recover gracefully when precision too low in lindep/algdep
650: IS 25- cleaned up unused variables, fixed some missing casts
651: 26- algdep(x) --> undefined behavior when x exact. Replace by decimal
652: approximation
653: IS 27- C++ keywords (new, class) occurred as variable names
654: 28- arguments of ideallistarch not checked
655: 29- Mod(t_FRAC or t_PADIC, t_INT) --> garbage
656: 30- gcmp1(t_REAL) always false: polylog(2, 1) --> error
657: 31- (spurious) compiler warnings about variables used before initialization
658: 32- memory (possibly) freed twice in buchall + unsafe allocation of matcopy
659: 33- online help for matsnf not updated
660: 34- rnfequation() didn't check its arguments correctly
661: 35- removed spurious special case in compute_class_number()
662: 36- typo in the compatibility macros mpabsz / mpnegz (missing ;)
663: 37- "lost pointers in gerepile" in bnfisprincipal(Q, ...)
664: 38- bnfisprincipal(..., Pol(0)) accepted
665: 39- [Configure] Makefile name didn't necessarily match object directory
666: 40- zetak(nfz, integer + 0.) --> stack corruption
667: 41- for(i=1, ..., zetak(nfz, any complex number)) went slower and slower
668: 42- poltchebi(.,y), pollegendre(.,y) didn't work
669: 43- confusing "array index out of allowed range" message (e.g [1-0])
670: IS 44- fixed obscure compiler optimization bugs in smithall() and eint1()
671: GN 45- weird results in ellisoncurve() due to misguided precision heuristics
672: 46- typo in forvec([],...): lisexpr() --> lisseq()
673: 47- check arguments in ploth()
674: XR 48- rare bug in bnrL1 (wrong value!)
675: 49- precision problems in polredabs
676: 50- division by 0 in rnfordmax [typo in mymod()]
677: 51- removed all dangerous occurences of constpi/consteuler (cf 41-)
678: 52- typo in det() [forgot to divide by a pivot]
679: 53- divide by 0 error in lllgramintern (precision problem)
680: 54- suminf(k=1,suminf(j=1,.067^(k+j)/k^4/(k+j))) ran forever
681: 55- factor(2*x + 2) --> [2*x + 2, 1] (instead of stripping the content)
682: 56- (ultra-rare) stack corruption in mpqs_solve_linear_system()
683: 57- rl_refresh_line() prototype changed across readline's versions
684: 58- incorrect handling of INTMODs modulo integers of different magnitude
685: XR 59- matsnf(3 x 3 matrix, 4) --> SEGV
686: 60- some pathological bnfinit() computations (strive to get maximal rank)
687: XR 61- precision problems in nfsqff() [increase precision for T2-norm bound]
688: 62- time wasted checking generators of the form [x,0,...,0] in polredabs
689: 63- variables deleted too late in freeall()
690:
691: Changed
692: XR 1- modulus choice in bnrstark
693: 2- make sure that addii(x,y) returns gzero, not icopy(gzero)
694: 3- cutoff in ellap to use Jacobi sums (457 --> 100)
695: 4- pariputsf("%Z",(long)g): removed the casts (not needed)
696: 5- cleaned up hnfspec
697: 6- look for at least MIN_EXTRA extra relations in buchall
698: 7- simplified calling interface to hnfspec/add
699: 8 Used hnfspec in bnfsunit, changed the way S-units are found
700: 9- output of bnfsunit modified (removed res[3], made res[2] suitable
701: for hnfadd)
702: 10- listput and listinsert now return the inserted element, not the list
703: 11- check_break_status rewritten: was very inefficient
704: 12- Used parser code DG whenever it was possible (moved reorder to init.c)
705: 13- faster isunit()
706: 14- added GC in expr()
707: 15- buchall(): increase subfactorbase without starting over
708: GN 16- minor tuning in pollardbrent() for huge integers (call ECM sooner)
709: 17- renamed directories dos -> Odos, o.xxx.xxx --> Oxxx.
710: Moved win32/* --> Odos
711: OR 18- new version of pari.el
712: XR 19- new modular round 4 implementation (nilord2)
713: BA 20- improved algorithms in galconj.c
714:
715: Added
716: 1- an optional argument to next()
717: 2- MANIFEST
718: YU 3- support for FreeBSD ELF binary format
719: 4- file CVS.DOC
720: 5- support for Windows CE (Nigel Smart + coworkers)
721: BA 6- functions related to Galois theory: galoisinit, galoisfixedfield, etc
722: 7- [library] trivial function realun()
723:
724: Removed
725: 1- #define HIGHBITM1 (useless)
726: 2- files config/tar_[include | exclude] (obsoleted by MANIFEST)
727:
728: ===========================================================================
729: Done for version 2.0.16.beta (released 29/06/1999):
730:
731: Fixed
732: 1- paricfg.tex (needed to compile INSTALL.tex) missing if Configure is
733: not run. Added a test in parimacro.tex
734: 2- non-portable casts in galconj.c
735: 3- 64-bit graph benches (extra spaces)
736: IZ 4- typos in plotgnuplot.c
737: 5- unnecessary plothsizes in "graph" bench (fails if no X server)
738: 6- typo in ff_poltype
739: IZ 7- check rectwindow in rectcopy and rectclip
740: IZ 8- /opt/local/lib missing in Configure's library path
741: IZ 9- [Math::Pari] needs pariErr->die _before_ pariErr->flush
742: IZ 10- wrong valence code for plotcolor, plotclip
743: IS 11- obscure inlining bug (pgcc 1.1.3 -O3) in stark.c:ComputeKernel0()
744: 12- gcc -E doesn't define __GNUC__. Add it explicitly to KERNELCPPFLAGS
745: 13- whatnow(sigmak) didn't tell the arguments have been swapped
746: 14- [1]~ * [[1]] --> SEGV
747: 15- lim=(av+ x * bot) >> y can overflow if large addresses are available
748: (e.g Linux...). Use lim_stack() instead
749: 16- algdep(I,1), lindep([I,1]) entered an infinite loop
750: 17- removed the maxHastad (= 50) limit in algdep/lindep
751: 18- typo in polrootspadic(,,1) --> SEGV
752: 19- GC not frequent enough in idealval
753: 20- in split_ideal (isprincipal), LLL-reduce first if ideal is big
754: 21- factorpadic(,,,1) didn't work anymore
755: 22- round 2 (= nfbasis(,2)) used too much memory
756: 23- idealval did not accept all types of ideals
757: GN 24- unsafe stack handling in auxdecomp
758: 25- polroots[mod|padic] returned a t_VEC, not a t_COL (as polroots)
759: 26- check coeffs of polynomials with coeffs in nf (rnf* functions)
760: 27- typos in polredabs0 (get_Bnf + nf_RAW in storeallpols)
761: BA 28- nfgaloisapply could forget to clean up the stack
762: 29- typo in gp_rl.c (rl_save_prompt <--> rl_restore_prompt)
763: DE 30- arch="sun4" non reconnu par Configure
764: 31- uninitialized variable (prec) in quadhilbertimag
765: IS 32- pari.el.in was not updated when gphelp was moved from miscdir to bindir
766: 33- rnfkummer(bnrinit(bnfinit(y^2-y-1),101,1),[1,0;0,2]) --> gerepile error
767: IZ 34- update gnuplot interface
768: a) Strings were put too low in gnuplot terminal;
769: b) Allow setting of output file sizes, as in plotterm("gif=300,200");
770: c) Allow querying of possible output terminals, via plotterm("?")
771: d) Update to newer Gnuplot-interface-layer (Gnuplot.h)
772: allows compilation on Linux (stdout was bad as an initializer),
773: corrects bugs in processing of terminal options
774: 35- in buchall, allow minfsb to increase before doubling cbach
775: (bnfinit(x^4+5*239*x^2+5*239^2) couldn't be computed)
776: 36- bnfnewprec can't handle bnf = bnfinit(,2) --> SEGV (now, error)
777: 37- typo in pseudorem (didn't recognize 0 properly)
778: GH 38- weird bugs in thue() on alpha: typo int <--> long in thue.c
779: 39- bnrisconductor assumed moduli had small norm (< VERYBIGINT)
780: 40- bnfnewprec didn't accept imaginary quadratic fields ("missing units")
781: 41- inefficiency in zarchstar (VERYBIGINT --> BIGINT)
782: (rnfconductor(bnfinit(y^3+972*y-12),x^2+x+1) ran forever)
783: 42- too much memory used in rnfordmax (+ removed some inefficiencies)
784: 43- try to recover in nffactormod if input not prime (SEGV)
785: 44- SEGV in nffactormod if degree(pol) > 100
786: 45- factornf(p(x), q(x)) was accepted (and produced incorrect objects)
787: 46- nfisincl / nfisiso made use of the bug above
788: 47- subgrouplist(bnr) with trivial ray class group --> SEGV
789: 48- background color was assumed to be "white" (by gphelp and gp)
790: Made it "transparent" by default
791: 49- pages shifted by 1 in User's Manual's table of contents
792: 50- Mod(x, x^2+1) + x return Mod(2*x, x^2+1), not x + Mod(x,x^2+1)
793: (fixed gadd, gmul, gdiv)
794: 51- for certain flag combinations buchrayall unsuitable for gerepileupto
795: (+ cleaned up the code)
796: 52- ^C in smithclean corrupt existing objects
797: 53- silent overflow in qfbhclasso
798: 54- nfreducemodpr didn't check its arguments
799: 55- confusing error messages when precision too low in initell
800: 56- polx[0] modified in nfsubfields(P(y))
801: 57- various memory optimizations in bnrstark
802: 58- incorrect debugging output in calc_bloc (at \g6)
803: 59- rare memory corruption when garbage collecting in mppgcd
804: 60- type t_STR not treated correctly in changevar
805: 61- C-long overflow in ellan
806: 62- memory use in the incgam* functions
807: 63- bad input bug: qfperfection(indefinite matrix) --> SEGV
808: 64- mateigen dropped some eigenvectors when precision was too low
809:
810: Changed
811: 1- err() --> parierr() [conflict with system library in Redhat 6.0]
812: 2- use Doud's algorithm in elltors [initial patch: HC]
813: 3- new (internal) function get_mul_table (for nfinit, padicff)
814: 4- disable LD_LIBRARY_PATH before running benches
815: 5- strtoGEN() --> strtoGENstr() + added flag
816: 6- optimized stack usage in pollardbrent (in place)
817: 7- don't try to compute units in buchrayall if bnf doesn't contain them
818: 8- simplified misc/gprc.* (esp. colors)
819: 9- use C long to keep track of exponent in regula
820: 10- src/kernel/sparcv7/level0.s --> level0.S + include preprocessing stuff
821: 11- extended matsnf flags: immediate cleanup (backward compatible)
822: 12- arguments swapped in veceint1
823: 13- allow @ markers (??keyword@) in extended help (was apropos only)
824: 14- do all computations in mppgcd in place (as in Changed-6)
825: OR 15- new pari.el (cf emacs/pariemacs.txt)
826: 16- search multiple lines in apropos extended help (???key)
827:
828: Removed
829: 1- make test duplicated the "make bench" computations. Removed the
830: test and dotest targets
831: 2 -veceint1() function. Can be reached in library mode or using a flag to
832: eint1
833:
834: Added
835: 1- default 'secure'
836: 2- optional flag to Str()
837: 3- expand environment variables in filenames
838: 4- TODO file
839: 5- man page for gphelp
840: 6- Trivia section in the pari/gp man page
841:
842: ===========================================================================
843: Done for version 2.0.15.beta (released 21/05/1999):
844:
845: Fixed
846: 1- ?? (TeX mode) didn't work anymore
847: 2- rl_save_prompt incorrectly detected on a.out systems
848: 3- allow extra_relation() (bnfclassunit) to abort
849: 4- allow cbach to double once more before triggering PLEASE REPORT
850: (introduced in 2.0.14)
851: 5- check for non-monic pol in smallbuchinit
852: 6- vecex<TAB> --> SEGV on some Linux systems (typo in match_concat)
853: 7- exceedingly rare but possible overflow in forvec(, flag == 1)
854: 8- factorff(x^7-3,3,y^3+2) --> SEGV
855: DC 9- ghpelp doesn't exit when problems arise in TeX processing
856: 10- made idealprimedec random again (also use det_mod_P_n to compute norm)
857: 11- inefficiencies in nfeltval (computing norm is a waste of time)
858: 12- did same prime twice when collecting garbage in modulargcd (=> error)
859: 13- ffinit(huge prime,) output a weird error message
860: 14- highly inefficient memory use in nfsubfields
861: IS 15- [cygwin] typo in Makefile generation
862: 16- file leak in mpqs (COMB)
863: 17- allow prime_to_ideal to be called with a t_INT argument (for quadray)
864: 18- typo in nf_shanks (calling Fp_shanks with wrong parameters)
865: 19- polun (possibly) destroyed in bnrstark
866: IS 20- keep logfile in synch with screen output
867: 21- reset DEBUGLEVEL correctly on ^C (was sometimes set to 0)
868: 22- bnrstark does not require anymore the modulus to be the conductor
869: 23- check bnrstark's arguments in the right order (bnrstark(1,0) --> SEGV)
870: 24- inefficiencies in idealval (removed element_mulh)
871: 25- idealadd unsuitable for gerepileupto
872: HC 26- quadray should work in all cases now and give better polynomials
873: XR 27- bnrstark should return smaller polynomials
874: 28- very inefficient pseudo-remainder routine (psres)
875: 29- forstep(x=a,b, 1/2, ...) --> SEGV (signe -> gsigne)
876: IS 30- [Cygwin] Configure fix (use $HOSTTYPE instead of uname -m)
877: 31- polcoeff(a*x^-1*y^-1+O(x^2)+O(y^2),-1,y) --> 0
878: HC 32- (false) accuracy problem in mpsc1 ("truncation error")
879: 33- don't use mpqs_diffptr in mpqs_find_k, set it in mpqs_create_FB
880: 34- (very rare) "precision loss in truncation" in buchall
881: 35- C-long overflow in zarchstar
882: 36- C-long overflow in zprimestar
883: 37- (old versions of) GNU as not recognized correctly
884: BA 38- ?? in TeX mode could not process some sections (missing macros)
885: 39- factor(polynomial with t_PADIC coeffs) didn't work (factorpadic
886: assumed coeffs were integers)
887: 40- T=[1,x; x,1]; charpoly(T,Z) produced object with wrong variable
888: ordering
889: 41- polrootsmod(x^n,p) could corrupt the stack
890: 42- Warnings/errors from HPUX and AIX native compilers
891: OR 43- many problems in the emacs interface pari.el (introduced in 2.0.14)
892: 44- factorpadic treated only monic polynomials
893: 45- gphelp TeX mode (use general macros instead of a specific file)
894: 46- under readline, input lines of length > 2048 could trigger SEGV
895: 47- more thorough check in checkbid (accepted prime ideals->SEGV)
896: GH 48- possible stack corruption in thueinit(totally real field)
897: XR 49- various problems in bnrstark (infinite loop in fincke_pohst)
898: 50- in doc/Makefile: removed GNU-style make macros + put a missing TAB
899: 51- sloppy garbage collecting in hnfperm
900: 52- HPUX+cc: work around a compiler bug (wr_float)
901: 53- warnings in make_emacs_tags (perl5.005)
902: 54- Configure --static should not disable install()
903: 55- in rare cases reduction not complete in lllgramall (off-by-1 error)
904: 56- addshiftw (polynomial case) could produce non-normalized polynomials
905: 57- take content into account in modulargcd as in srgcd (not normalized)
906: GH 58- uninitialized variable in poldisc0 (purify warning)
907: 59- inefficiencies in round 4: modular computations [more needed!]
908: (starting from a patch by DF+XR)
909: GN 60- lllintpartial did not output the right matrix
910: 61- huge memory leaks in bnrstark
911: 62- signed int overflow in allocatemem
912: 63- parisize (local to gp/gp.c) not updated properly
913: 64- *sol not properly initialized in subresall
914: 65- in idealpowred, check whether |n| < 16, not n < 16 (would slow down
915: bnfinit a lot when class number is large)
916: 66- polrootsmod(x^6-10,25) --> SEGV (now error message)
917: 67- SEGV when renormalizing zero series in gdiv
918: XR 68- unify precision choice in bnrstark (4 different formulae used...)
919: GN 69- infinite loop in mpqs (64bits machines + harsh compiler) when more
920: factors were found than were hoped for (1 <--> 1L)
921: GN 70- SIGFPE in buchall (double didn't fit in 32-bit integer)
922: 71- also check sign in real0 (internal: called by gauss_pivot)
923: 72- use current realprecision in plot() (was fixed: 28 digits)
924: 73- memory use in subgrouplist(bnr)
925: 74- in bnfcertify: "Too many iterations in isprincipal"
926: 75- auto detect precision in quadhilbertimag ("overflow in I+R")
927: 76- error message numbers in src/kernel/m68k/mp.s
928: 77- polroots(x^3-x-422!) --> "impossible R-> dbl conversion"
929: 78- not enough modular reductions in buchrayall (bnrinit)
930: 79- technical argument in quadclassunit not read correctly
931: 80- factor(x^3-1 + 0.*I) --> gerepile error
932: GN 81- gp -p (close to a p^2) --> p possibly missing in the prime table
933: 82- until narrow class group in quadclassunit is implemented, non-zero
934: flag raises an error
935: IZ 83- some code numbers in functions_basic (for Math::Pari)
936: 84- precision problem in initell (AGM)
937: 85- "impossible assignment I-->S" in ellrootno
938: 86- missing break in poltype (factor)
939:
940: Changed
941: 1- ?? (no arguments) opens the users'manual in xdvi
942: 2- print readline version in header on startup
943: 3- compute multiplication table first in element_mulvec[row]
944: 4- nf[5][7] is now stored in two-element form (faster ideal inversion)
945: 5- install gphelp in BINDIR, not MISCDIR
946: 6- simplified output of trivial matrices
947: 7- replaced square_free_factorization by mysquare_free_factorization
948: 8- call LLL before using idealtwoelt
949: GH 9- choose random elements in idealtwoelt, and allow bigger ones in two_elt
950: 10- cleaned up lllgramall/lllgramintern + give quality ratio as argument
951: 11- in rnflllgram, try to survive lllgram errors (findmin)
952: 12- simplified rnfpolredabs (simple interface to polredabs). Should be
953: much more efficient
954: 13- replace many gdiv by 1 ginv + many gmul in sqred1intern
955: 14- optimized polredabs (always do the initial polred now: it is for free)
956: 15- more efficient ideal multiplication in random_relation (bnfinit)
957: 16- library names nfhermite[mod|basis] <--> nfhnf[mod|basis]
958: 17- subgrouplist function (use Birkhoff algorithm)
959: 18- improve recovery in lllgramintern
960: 19- improved checkgenerator in polredabs (look directly for double roots)
961: 20- for consistency, return S-units in t_POL format (as fundamental units)
962: IZ 21- revamp gnuplot autodetection by Configure
963: BA 22- nfgaloisconj(nf, 4) uses Allombert's algorithm instead of Kluners's
964:
965: Added
966: 1- install-doc target
967: 2- make install makes a symlink pari.1 --> gp.1
968: 3- ??tutorial/refcard opens tutorial/refcard.dvi in xdvi
969: 4- posibility to extract the complement in vecextract
970: HC 5- Ducos's subresultant algorithm (polresultant(,,2))
971: HC 6- accept a "vector of steps" in forstep
972: 7- examples/classno.gp
973: XR 8- new function bnrL1
974: 9- new function gdivexact (used in subresultant, Gauss-Bareiss...)
975: 10- new function bnfnewprec
976: 11- optional argument to \l and \e shortcut
977: 12- nfinit,polred[abs] accept input of the form [pol, HNF basis for Z_K]
978: 13- q-Pascal triangle (matpascal(n,q))
979: 14- file src/basemath/subgroup.c, new function forsubgroup()
980: IZ 15- function plotclip
981: IZ 16- new file examples/taylor.gp (nice example for plotclip)
982: BA 17- new file galconj.c
983:
984: ===========================================================================
985: Done for version 2.0.14.alpha (released 05/03/1999):
986:
987: Fixed
988: 1- factormod(2*x+1, 2) --> "factor for general pol. not implemented"
989: IK 2- gphelp could leak temporary files
990: BD 3- for native Win32 build: buffer overflow in get_home, incomplete
991: paricfg.h, typo in try_pipe (#endif misplaced)
992: 4- nfsubfields: could miss subfields if index > 1
993: 5- removed 3 useless setrand(1) in subfields.c
994: 6- rare and obscure memory bug in inverseimage (lost pointers in gerepile)
995: 7- memory bug in factorpadic4 (prime not copied before result)
996: 8- memory consumption in round2 (allbase)
997: GT 9- m68k version: duplicate symbols from mp.c
998: IS 10- Cygwin: in mpqs.c, open files in binary mode (otherwise fseek goes crazy)
999: 11- bnfisprincipal().gen gives the expected answer
1000: IZ 12- signatures for Math::Pari in highlvl.c / init.c + GNUPLOT
1001: set-output-file problem
1002: 13- if we think readline needs libiberty, check whether it's installed first
1003: DB 14- PowerMac: header inclusion in highlvl.c, lround def'd in system headers
1004: XR 15- rnfkummer makes sure to return an integer
1005: XR 16- rnfconductor accepts polynomials with rational coeffs
1006: 17- polredabs + internal precision change --> nfnewprec forgets nf[5][1]
1007: 18- don't log lines twice when pariecho is set
1008: 19- glitches in content() (e.g content("a") --> SEGV)
1009: 20- get_sep(2) reacted incorrectly to empty strings
1010: 21- rootmod could destroy its argument
1011: 22- Fp_pow_mod_pol(x, 1,...) should return gcopy(x), not x
1012: 23- galoisconj1 computed wrongly the precision needed (+ prototype change)
1013: IZ 24- remove __OPTIMIZE__ dependence (define GCC_INLINE instead)
1014: 25- off-by-1 error in apell1
1015: 26- misleading error message in minimalexponent()
1016: XR 27- in nffactor, forgot to update precision when increasing exponent
1017: (+ various typos)
1018: 28- sparc + non-gcc --> kernel2 possibly not included: compilation failure
1019: 29- when echo is set don't print prompt if line is empty
1020: 30- ellpointtoz sometimes return -x instead of x
1021: 31- gp -b 1 --> hangs gp
1022: DE 32- many glitches in manual
1023: 33- mathnf(x, 3) when x hasn't maximal rank (SEGV)
1024: 34- differences in buchall 32bit/64bit (PRECREG too high. bnfinit(x^13-6))
1025: 35- various inefficiencies in nfshanks ("module too large in nfshanks")
1026: 36- memory leak in buchall (= bnf*)
1027: 37- "not a definite matrix in lllgram" after a call to bnf*
1028: 38- typo in factorff(x^3+2,3,y^2+1) --> SEGV
1029: 39- [internal] missing tags (e.g zprimestar) after make ctags
1030: 40- idealstar(*, big prime) --> cryptic error msg (more tolerant now)
1031: 41- have Mod(0,1)^-1 return Mod(0,1) (fixes znstar(prime))
1032: 42- ginv(-1/2) --> 2
1033: 43- heap leak when using local()
1034: 44- overflow in addssmod
1035: 45- changed the syntax of round()
1036: 46- sqrt(1. + O(x)) --> infinite recursion
1037: IZ 47- don't create GP variables when expanding strings
1038: 48- internal variable 'parisize' not properly updated after allocatemem()
1039: IS 49- config/display didn't work properly with ActivePerl
1040: IS 50- Configure didn't handle most recent Cygwin
1041: 51- polinterpolate([],[]) --> SEGV
1042: 52- adapted gp_rl.c to readline 4.0
1043: 53- glitches in whatnow database (new file src/gp/whatnow.c)
1044: 54- all warnings from gcc 2.8.1
1045: 55- uninitialized tetpil in gscal() (bnfreg(x^2+1))
1046: 56- precision problems in polgalois (degree > 7)
1047: 57- config/locatelib prompted a lot of useless work (returning too many
1048: libraries) and could pick up the wrong library
1049: 58- very rare bug in nfbasis (discriminant ok, but wrong basis)
1050: 59- quadclassunit: make sure sub factor base is big enough (oo loop)
1051: 60- more flexible "colors" default (initial work IZ)
1052:
1053: Changed
1054: 1- x.fu outputs polynomials (as all bnf* functions), not polmods
1055: 2- improved mppgcd (including vali)
1056: 3- improved division vector/scalar
1057: 4- \x to print a * in front of out-of-stack moduli (t_[INT|POL]MOD)
1058: IZ 5- better commandline usage message
1059: 6- don't buffer log messages going to pari.log
1060: 7- accept [nf, t_POLMOD] where nf is expected
1061: 8- poldisc() and quadgen() accept an optional variable name
1062: 9- when defining user function check for duplicate variable names
1063: 10- [internal] is_entry always uses function_hash (use is_entry_intern)
1064: OR 11- pari.el updated (see emacs/pariemacs.txt)
1065: 12- removed shiftl from lgcdii
1066: 13- use roots_to_pol in polgalois
1067: 14- precision heuristic in gauss_get_prec
1068: 15- cleaned up lllall and lllgramall
1069: 16- sort the output of nffactor, nfroots, factorff and factornf
1070: 17- nfgaloisconj now guaranteed to find all conjugates (use nffactor)
1071: 18- Removed flag 1 in nfisisom/nfisincl: function checks its arguments,
1072: and uses the best algorithm (both guaranteed complete). Changed the
1073: names (nfiso/nfincl) in library mode to match GP usage
1074: 19- gerepile(ltop,lbot,0) no longer returns ltop - lbot
1075: 20- improved floor and round(t_FRAC)
1076: 21- removed some duplicate code from nffactor
1077: 22- passing a pointer to GEN in a GP funciton now explicitly requires an &
1078: IZ 23- more verbose error messages for online help
1079: 24- increased a bit poltschirnaus's period
1080: 25- DOS version: don't use more for external help
1081: 26- cleaned up buchall code
1082: 27- removed unnecessary gres from polarit1.c:to_fq()
1083:
1084: Added
1085: 1- apropos command in gphelp (-k switch), ??? under GP
1086: 2- function global()
1087: 3- function gp_variable to use sums, etc in library mode
1088: 4- [internal] new functions mulmat_real
1089: 5- new functions gerepileupto[leaf|int]
1090: 6- function znlog()
1091: IZ 7- added default(color, "yes" / "no")
1092: 8- --static flag to Configure
1093: GH 9- inline alpha assembler (gcc specific)
1094:
1095: Removed
1096: 1- isinclfast/isisomfast
1097: 2- rounderror
1098:
1099: ===========================================================================
1100: Done for version 2.0.13 alpha (released 14/12/98):
1101: Fixed
1102: IK 1- Configure hangs on FreeBSD systems
1103: RD 2- Roland's patch (2.0.11: Fixed- 42) had been incorrectly applied
1104: 3- stack corruption in glcm (if operands > 10^155)
1105: 4- index wrap-around in polsubcyclo (n > sqrt(2^31))
1106: 5- incorrect placement of strings in psdraw
1107: 6- memory corruption in rhoimag0
1108: 7- fix up memory debug mode (\gm) when switching to alternate stack
1109: 8- memory corruption (new_chunk + mulii) in gmul/gdiv (t_FRAC)
1110: 9- escape chars in GP strings sometimes parsed twice (e.g Str("\\") --> "")
1111: 10- nfinit(x^18+16) --> impossible inverse mod(0,2) (bug in eltppm()
1112: introduced in 2.0.12)
1113: 11- weird SEGVs due to variable handling (changed the 'bloc' structure)
1114: 12- moved highlvl.c to src/gp (libpari was missing symbols from plotport)
1115: 13- polcyclo ignored its second argument (introduced in 2.0.12)
1116: TP 14- minor fixes in paridecl.h (poldivres, gredsp: C++ compiler exits)
1117: HC 15- still sign problems in resultant (see 2.0.12: Fixed-58)
1118: 16- (Solaris):GNU ld doesn't like empty object files: remove kernel2.o
1119: IZ 17- make bench forgot to treat the install() BUG in a special way
1120: 18- factor(x^2 + I) --> SEGV (also with t_QUADs)
1121: 19- factornf(x^3+1,y^2-1) --> stack doubling (now output error msg)
1122: IZ 20- for Math::Pari fix valence of factormod()
1123: IZ 21- outfile rename pari_outfile (conflict with gnuplot headers)
1124: 22- DEBUGLEVEL could be modified and not reset upon interrupt
1125: IK 23- make perl -wc gphelp happy
1126: 24- incorrect use of gettime() in the library (nffactor) --> wrong timings
1127: (in particular for the 'nfield' bench)
1128: 25- polred/polredabs used different types for output. Made both t_VEC
1129: 26- remove duplicate polynomials in polredabs(x,4) and polred
1130: XR 27- precision fixes in modules/[nffactor|stark].c
1131: 28- in compatible mode, \precision didn't work anymore
1132: 29- typo in Round4 (case "p small" and "p huge" were swapped)
1133: 30- incorrect prototype for conductor in compatible mode
1134: 31- factor((x^2-1)/2) --> SEGV (factpol assumed integer entries)
1135: 32- memory usage in Round2: nfbasis(*, 2) (also cleared some inefficiencies)
1136: IK 33- typo in primitive_pol_to_monic
1137: 34- deplin did not check its arguments
1138: 35- quadray() assumed variable "y" was not in use
1139:
1140: Changed
1141: 1- glength() returns a C-long integer
1142: 2- in hnfmodid(x,d) reduce mod d immediately
1143: 3- allow vector(n), and matrix(n,m) (filled with 0s)
1144: 4- under GP, wait for input if line ends with '=' (cf \)
1145: 5- wait for input when a line ends with an '=' sign
1146: 6- modified extended help to (potentially) search the whole manual
1147: 7- in nfdisc, specific error message if discriminant is 0
1148: 8- use divide_conquer_prod() in factorback()
1149: IZ 9- in test suite, add setrand(1) in front of poltschirnaus
1150: IZ 10- M-( bound by default
1151: IZ 11- improved gnuplot support
1152: 12- improved gcmp[1|_1](t_REAL)
1153: OR 13- new pari.el (see emacs/pariemacs.txt)
1154:
1155: Added
1156: 1- members e, f, p, gen for prime ideals
1157: 2- mathnf([M, M2]) computes mathnf(M), updating M2 (equivalent to
1158: v=mathnf(M,1) then M2*v[2], but much faster if M2 is small or over a
1159: finite field)
1160: 3- local() keyword for user function definitions in GP
1161: IZ 4- new functions plotfile(), plotpointsize()
1162: IZ 5- splines for ploth (flag 256)
1163:
1164: Removed
1165: 1- \k metacommand
1166:
1167: ===========================================================================
1168: Done for version 2.0.12 alpha (released 06/11/98):
1169:
1170: Fixed
1171: 1- GNU as incorrectly treated by Configure
1172: GN 2- various fixes in mpqs.c (incl. file descriptor leak)
1173: GN 3- [From 2.0.11- Fixed 14] floating point exponents: 1E1 --> possibly 0.1
1174: 4- 1 % Pol(2) still wasn't right [cf 2.0.11- Fixed 31]
1175: 5- src/test/dotest for DOS boxes (running sh)
1176: 6- removed unreachable err() in factor()
1177: 7- system() is defined under EMX, so make it available for DOS
1178: 8- possibly use / as path separator under EMX, check COMSPEC and EMXSHELL
1179: 9- compatible = 3 downcased all the following lines in gprc and caused
1180: incorrect behaviour of preprocessing statements
1181: 10- unified default commands + better checks (e.g: default(log,0)->SEGV)
1182: 11- memory leak in gp_main_loop: bufferlisit wasn't reset on error
1183: 12- gptimer() not initialized properly if ^C was first command
1184: 13- extra space (sometimes) output by command line completion in DOS
1185: version
1186: 14- modifying histsize could corrupt the history stack
1187: 15- incorrect error messages in gsqr
1188: 16- not enough garbage collection in rootmod (polgcdnun)
1189: TP 17- compilation using cc -64 on 64-bit SGI
1190: IS+GN 18- "(hit return to continue)" message did not flush stdin
1191: GN 19- ECM rewrite
1192: 20- incorect absi_cmp in buch3.c
1193: 21- useless garbage collecting in sqred2
1194: 22- O(1)^(1/2) --> SEGV
1195: 23- forvec(i=[],...) --> SEGV
1196: GN 24- deriv(x*y, y) --> 0
1197: GN 25- inefficient GC in ispseudoprime()
1198: 26- fixed some (not all) compiler warnings (char * --> unsigned char *)
1199: 27- exp(too large number) now gives a meaningful error message
1200: AW 28- getrusage still not detected on FreeBSD 2.2.5
1201: GN 29- off by 1 error in initprimes() (--> not enough calculated primes)
1202: 30- inefficiencies in factor(t_POL)
1203: HC 31- bug in rnfelementabstorel for Mod(scalar, t_POL)
1204: HC 32- typo in gaussmoduloall
1205: 33- idealred(principal ideal) always returned an archimedean part
1206: HC 34- idealpowprime wrong for negative powers
1207: 35- typo in binomial(n,k) (wrong answer if n<=k)
1208: 36- online help for polinterpolate
1209: 37- incorrect garbage collecting in quickmulii/quicksqri
1210: 38- reformatted the output in test mode (gp -test)
1211: 39- polroots((x-7)*(x-8)*(x+16)) took far too much time
1212: 40- ellap assumed ell was given in characteristic 0
1213: IZ 41- outlook of plot function (better labels, better choice of chars)
1214: RD 42- when factoring over a non prime finite field and found a p-th power,
1215: forgot about Frobenius
1216: GN 43- rare memory bug in ellfacteur
1217: 44- gscalmat was not suitable for gerepileupto
1218: 45- polredabs(,2) didn't handle non-monic polynomials
1219: 46- check for various overflows (x ^ 1000000, etc.)
1220: 47- printtex(I) --> missing closing brace
1221: 48- setisset() did not check that elements were strings
1222: 49- typo in gdiv(t_POLMOD, t_POLMOD) with different variables
1223: KO 50- missing ; in level1.h (Windows specific code)
1224: 51- forprime(p=0,10,) indeed started at p=0
1225: 52- (cf 2.0.11 Fixed-1) put back 3 cgeti in galois.c (were necessary)
1226: 53- factorpadic could overstate the precision of the result
1227: 54- (very) rare memory corruption in allhnfmod (when cleaning up)
1228: PM 55- prototypes in paridecl.h (fussy IRIX compiler), cc -64 in MACHINES
1229: 56- factormod implemented for all primes (p = 2 and p > 2^31 called
1230: factorcantor which was much slower)
1231: 57- check for unsuitable input in [factor|roots] (SEGV for multivar. pol)
1232: 58- polresultant sometimes gave the wrong sign
1233: 59- extraneous space in err(impl,"") (= "sorry,... not implemented")
1234: 60- aliases treated incorrectly during error recovery (--> obscure bugs)
1235: 61- obscure bug when normalizing rational functions with real coeffs
1236: (corrected content())
1237:
1238: Changed
1239: 1- paricfg.h in dos and win32 extracted by Configure before the release
1240: (to get version number right)
1241: 2- GPRC logic: try $GPRC, then look in $HOME, /etc (/ and C:/ under EMX)
1242: 3- make sure the output of pari_unique_filename() doesn't exist already
1243: 4- use a stack of files to gracefully handle errors/interrupts without
1244: leaking file descriptors
1245: 5- replaced fixed-size buffers by dynamically allocated ones (es.c/gp.c)
1246: 6- rename INSTALL.QUICK --> INSTALL.DOC (updated)
1247: Changelog --> CHANGES (looks better under DOS)
1248: 7- mention ?12 in the header
1249: 8- use ; (instead of :) as PATH separator under DOS, OS/2 or Windows (for
1250: drive letter)
1251: GN 9- ECM tunings
1252: 10- check for overflow in cget* (instead of silent wraparound)
1253: 11- gp_main_loop cut into (improved) pieces
1254: 13- simplified normalizepol
1255: 14- Warn when trying to replace an existing function with install
1256: (previously error)
1257: 15- new function mpcopy. replaced some inlined function (rcopy, absi,
1258: absr, negi, negr) by compatibility macros
1259: 16- gphelp now uses GPDOCDIR and GPTMPDIR
1260: 17- improved rational arithmetic by computing smaller gcds (gredsp removed)
1261: GN 18- improvements in MPQS (use less memory, count relations precisely)
1262: 19- text-mode (non-TeX) extended help printed screen by screen
1263: 20- retuned integer multiplication, and made polkaramul the default
1264: polynomial multiplication
1265: XR 21- stark.c rewritten
1266: IZ 22- updated the pariperl interface
1267: 23- improved handling of t_INTMODs (less GC)
1268: 24- improved (a lot) factoring/root finding for intmod polynomials
1269: 25- modified poldivres to avoid computing remainder when useless
1270: 26- removed inefficient shiftl/shiftlr from the kernel
1271: 27- from the same sources, Configure can now simultaneously run on
1272: different architectures
1273: 28- polynomial factorizer now sorts the factors (increasing degree)
1274: 29- ?an_obsolete_function now calls whatnow
1275: 30- .pol operates also on t_POLMOD
1276: 31- random() argument can have arbitrary length
1277: IZ 32- with gnuplot, pick a sensible terminal when X11 is not around
1278: IZ 33- change valences for use with Math::PARI
1279: IZ 34- various interface patches (new file highlvl.c, different prototype
1280: for foreignAutoload...)
1281: 35- optimized permute()
1282: 36- setrand, getrand, getstack, gettime return a C long, and not a GEN
1283: 37- pari_randseed no longer global. Don't reset random number generator
1284: when entering certain functions
1285: 38- improved smallvectors() (correcting the "not enough storage" bug)
1286: 39- improved computation of special polynomials ([sub]cyclo,tchebi,legendre)
1287: 40- read() and extern() are timed as a whole now
1288: 41- check if LONG_IS_64BIT is correctly defined in pari_init (in case we
1289: include the wrong pari.h)
1290: GN 42- use Lehmer-Jebelean to compute inverse mod p (TODO: extended gcd)
1291: 43- moved subcyclo() to bibli2.c
1292: 44- improved polredabs, suppressed flag 8
1293: 45- improved ground(), case t_REAL
1294: 46- modified the internal SMALL nf structure (add matrix M, for polredabs)
1295:
1296: Removed
1297: 1- doc/Makefile.SOS, since make should succeed even if Configure failed
1298: 2- many error messages from the analyzer (referer*, trucer1,
1299: matvecter...), better handled by talker2
1300: 3- obsolete test %_ in bench
1301: 4- polkaramul(), which is now the default multiplication
1302: 5- factmoder error message
1303: 6- obsolete function polredabsfast
1304:
1305: Added
1306: 1- `pipes' for DOS running EMX, i.e extern() and extended help are
1307: available (perl needed for the latter)
1308: 2- file handling functions pari_fopen, pari_fclose, pari_unlink
1309: 3- new default `debugfiles'
1310: 4- file README.DOS
1311: IZ 5- target etags in top Makefile
1312: 6- target ctags
1313: IZ 7- gnuplot support
1314: HC 8- elliptic functions package (ellzeta, ellwp, ellsigma)
1315: HC 9- quadray function, extending quadhilbert
1316: 10- files src/basemath/polarit3.c and src/gp/highlvl.c
1317: 11- user-defined member functions
1318: 12- possibility to choose sizeof(long) at Configure time when the
1319: hardware suports it (eg. MIPS)
1320:
1321: ===========================================================================
1322: Done for version 2.0.11 beta (released 30/07/98):
1323: Fixed
1324: 1- removed all dummy cgeti (--> new_chunk)
1325: 2- stack corruption in gcarreparfait (t_INTMOD)
1326: 3- incorrect Fq-loop in apprgen9
1327: 4- removed useless normalize in gdivgs, gdiv
1328: 5- some {} Warnings from gcc -Wall (unjustified, but doesn't hurt)
1329: 6- incorrect zero series return by deriv
1330: 7- gaffsg(, t_PADIC) misused the valuation (symptom: deriv((1+O(2^2))*x^2)
1331: 8- online help for ellinit
1332: GN 9- default gp built without X11 in presence of some versions of xmkmf
1333: 10- ggval: zero series + simplified the code in there
1334: 11- subst(O(q),q,x) --> O(q)
1335: 12- newtonpoly did not treat correctly zero coefficients
1336: IK 13- getrusage incorrectly detected (at least on Linux/FreeBSD machines)
1337: 14- constante() used far too much memory (+ an int should have been a long
1338: + an lg should have been an lgefint). Reading in a huge bnf needs much
1339: less memory now
1340: 15- y[2] checked in divri instead of is_bigint (see 2.0.10, Changed 2)
1341: 16- powgi, default case: missing gcopy + incorrect gerepilemany if y==NULL
1342: Also, uniformized random GC with gpowgs
1343: 17- stack corruption in hil(x,y,p) when typ(x) > typ(y)
1344: 18- SEGV if DISPLAY was unset and hi-res routine under X11 is called
1345: GN 19- ispseudoprime(negative integer)
1346: 20- removed -static from the CFLAGS of profiling version (didn't build)
1347: 21- linear algebra routines involving polynomials with real coeffs
1348: 22- compiles properly under DOS + EMX
1349: GN 23- Warnings from C++ compiler (include unistd.h and sys/ioctl.h where
1350: needed)
1351: 24- znprimroot(0) --> infinite loop
1352: GN 25- various fixes in mpqs
1353: GN 26- add safety parentheses to macros in paricom.h
1354: 27- polroots needed too much precision (two extra words)
1355: 28- factor(1. * x + I) ---> rubbish or SEGV (bug in polynomialtype automat)
1356: 29- possible address wrapparound in gerepile* (cast to ulong)
1357: 30- in gerepile: useless special case for t_SER
1358: 31- Pol(1) % 1 returned 1, not 0
1359: 32- matdet([x1,1,1/x1; x2,1,1/x2 ; x3,1,1/x3]) returned wrong result
1360: (call to gdeuc should have been gdiv in all cases in det())
1361: 33- SEGV in powmodulo (access garbage pointer just before exiting)
1362: GN 34- various problems in rho and mpqs
1363:
1364: Changed
1365: 1- simplified detint, fibo
1366: 2- simplified GC and optimized gmul: t_SERxt_SER, t_POLxt_POL, and gsqr
1367: (same types)
1368: 3- streamlined binomial
1369: 4- replaced all abusive cmpsi by the relevant egalii
1370: 5- prototype for error types [gmuler|gadder|gdiver][fi], assign[ri]
1371: using new function type_name
1372: 6- uniformized the test suites (make test*,bench,...)
1373: GN 7- add random GC in mppgcd. Use modified plus-minus algorithm (new cgcd)
1374: 8- format of bench files (to reduce size)
1375: 9- cleaned up factor and polynomialtype
1376: 10- matdet tries to return a significant 0 when called with a
1377: non-invertible argument, e.g
1378: matdet([1+O(3),1+O(3);O(3),O(3)]) --> O(3), not 0
1379: 11- made the output of make bench/test slightly more informative
1380:
1381: Removed
1382: 1- mpkaramul
1383: 2- error messages expter1 and gaffer13
1384:
1385: Added
1386: 1- misc/gprc.dos a sample gprc for DOS boxes
1387: 2- Configure --prefix=dir is now recognized (in addition to -p)
1388: ===========================================================================
1389:
1390: Done for version 2.0.10 beta (released 09/07/98):
1391: Fixed
1392: 1- integer factoring engine (ECM): sisprime killed N
1393: XR 2- file closed twice in MPQS
1394: GN 3- bad argument checking in [next|prec]prime
1395: BD 4- warnings from MSVC compiler
1396: 5- warnings from purify (vpariputs + puissii)
1397: 6- sample program and Makefile in examples/
1398: 7- v=...; forvec(a=v, v=...) ==> SEGV
1399: LG 8- support for HP running NextStep
1400: GN 9- have checkmemory (in cget*) check for overflows
1401: LG 10- avoid a bug in cc compiler (version 4.2) under Solaris (in factmod())
1402: LG 11- some missing prototypes and typecasts (for C++)
1403: GN 12- add LOCAL_HIREMAINDER in mulssmod (factor(17!+1) => SEGV on some PCs)
1404: 13- non portable pari_is_rwxdir
1405: GN 14- lots of typos in the documentation
1406:
1407: Changed
1408: GN 1- add debugging output to ECM
1409: 2- forvec implementation (+ new flags)
1410: GN 3- rewrote the integer factorizer (use Pollard-Brent + improved ECM +
1411: new MPQS code from 2.0.9)
1412: 4- disabled pari-matched-insert under Emacs
1413: 5- reorganized vecsort & co
1414: 6- in library mode, classno3 --> hclassno
1415: XR 7- improved the nffactor module
1416: HC 8- elllseries (use ellglobalred + ellrootno)
1417:
1418: Added
1419: 1- new function in library mode lisGEN()
1420: HC 2- new GP function ellrootno
1421:
1422: Removed
1423: 1- error message vecsorter2
1424: 2- functions vecindexsort, veclexsort (use vecsort with flag)
1425:
1426: ===========================================================================
1427: Done for version 2.0.9 alpha (released 16/06/98):
1428:
1429: Fixed
1430: 1- typo in qfbhclassno (SEGV when result in (1/3)Z)
1431: 2- too much memory allocated in factmod /factcantor (use clones)
1432: 3- removed the -DREADLINE_LIBRARY hack, use <readline/readline.h> and
1433: not <readline.h>
1434: 4- version 2.0.8 did not compile with readline 1.*
1435: 5- after gaffect(0, padic), padic was unsuitable for further gaffect
1436: 6- length(a string) gave number of non code words, not string length
1437: 7- factorpadic(polynomial of degree one) did not convert coeffs to padics
1438: 8- reduction mod p^r forgotten in gaffsg(s,t_PADIC)
1439: 9- default(realprecision,,1) did not return # significant digits
1440: 10- typo in nfmodprinit (return x instead of 1-x)
1441: 11- matinverseimage did not check its arguments
1442: 12- mathess([;]) --> SEGV
1443: 13- matid(-100) --> SEGV
1444: 14- mateigen([;]) --> SEGV
1445: 15- matmultodiagonal([;],Mat(1)) --> SEGV
1446: 16- vecextract([;],"..") --> SEGV
1447: 17- introduced in 2.0.8 (Added 3-): aliases/user function + <TAB> ==> SEGV
1448: GN 18- (t_RFRAC) ^ t_INT took an unreasonable amount of time
1449: 19- prevent quick succession of ^C from corrupting memory in recover()
1450: 20- hyperu could enter an infinite loop due to round-off errors
1451: XR 21- matadjoint(Mat(n)) returned Mat(n), not Mat(1)
1452: 22- matadjoint([;]) returned [[;]] (???)
1453: 22- wrap some long error messages
1454: XR 23- inefficiencies in rnfpolredabs
1455: XR 24- nffactor (wrong format for discriminant computation + problems with
1456: unseparable polynomials + compute disc only once)
1457: HC 25- typos in kummer.c
1458: GN 26- check environment variable LINES, not ROWS
1459: 27- introduced in 2.0.7 (Fixed 7-): lift(Mod(O(2^0)*x, x^3 - 2)^4) was a
1460: zero polynomial with non-zero sign (=> pb when normalizing in poldivres)
1461: 28- timer always returned 0 if times() was used (e.g linux-alpha)
1462: 29- kill'ing the argument of a user function corrupted the function
1463: 30- make clean did not remove pariinline.h
1464: 31- incorrect memcopy in identifier, case 's' (removed * sizeof(long))
1465: 32- online help for ?. (nf.nf does not exist)
1466: 33- lisseq0: gnil not respected after break/next. avma=av too brutal
1467: after return
1468: 34- ellwp assumed precdl > 3
1469: 35- under emacs, \c + hit return froze emacs (Emmanuel Kowalski)
1470: 36- (f()= f()=x); f; didn't set f properly
1471: GN 37- comments in anal.c
1472: 38- qflllgram([;]) --> SEGV
1473: 39- no online help for bernfrac
1474: 40- from 2.0.6 (Fixed-8): in padicff2, forgot to raise ideal to power e
1475:
1476: Changed
1477: 1- improved (trivially) gneg (case t_INTMOD), gtopoly
1478: 2- use macro is_bigint() instead of tests (ulong)x[2] < VERYBIGINT
1479: (led to typos as in Fixed-4 in 2.0.8)
1480: 3- improved poldivres by replacing many gsub by 1 gneg + many gadd
1481: 4- in pvaluation check for small integer
1482: 5- internal function rnfelement_*mod (prhall=NULL instead of gzero)
1483: 6- improved mathess
1484: 7- added error message "inconsistent data in" in parierr.h
1485: 8- gpui[gs] renamed to gpow[gs]
1486: GN 9- improved probable-primality tests ('end matching')
1487: 10- moved pseudo primality and ECM stuff into ifactor1.c
1488: GN 11- raise to an integer power using left-shift binary (new functions
1489: powi and powgi)
1490: 12- add some details in the online help headers
1491: GN 13- nextprime, precprime now accept real arguments
1492: TP 14- improved the alpha micro kernel (addllx and subllx)
1493: 15- simplified poltschirnaus
1494: 16- cleaned up identifier(): #ifdef __hpux__ + call_fun() modified
1495: 17- taylor() improved (one gerepile removed)
1496: 18- unified the treatment of zero series
1497: 19- gerepilemany faster and more efficient memory-wise (copy to heap first)
1498: GN 20- improved stack checking in lllgramall
1499:
1500: Removed
1501: 1- global variable defaultpadicprecision
1502: 2- function compute_prhall (nfmodprinit is better)
1503: 3- function [g]pseudopremier (miller[rabin] better)
1504:
1505: Added
1506: 1- function egalii
1507: 2- support for cygwin32 in Configure (Andy Stubbs)
1508: 3- new function gunclone to delete a clone (killbloc should be used by
1509: the analyser only)
1510: 4- comments in anal.c
1511: TP/XR 5- new function factorint(), using MPQS (_experimental_)
1512:
1513: ===========================================================================
1514: Done for version 2.0.8.alpha (released 07/05/98):
1515:
1516: Fixed
1517: 1- improved garbage collecting in polroots
1518: 2- zetak did not check its nfz argument properly
1519: 3- warnings from MSVC
1520: GN 4- isprime() did not work for numbers in [2^(BIL-1), 2^BIL-1]
1521: GN 5- precprime sometimes missed a prime
1522: 6- quaddisc(x in Q\Z) did not always work
1523: 7- powering of zero series
1524: 8- factorization of null matrices (SEGV)
1525: 9- mateigen for non-diagonalizable matrices (SEGV)
1526: GN 10- infinite loops in some arithmetical functions when arg = big prime
1527: GN 11- cleaned up paridecl.h
1528: 12- gimag/greal for type t_RFRAC/t_RFRACN (fix: Terje Sparre Olsen)
1529: GN 13- ordinal numbers to number components seen through \x
1530: HC 14- lllgram: incorrect gabage collecting in first "warnmem"
1531: 15- theta(q exact, z) entered infinite loop
1532: 16- typo in gdiventres (x<-->y in last line)
1533: MS 17- gtrunc for p-adics when valp(x) < 0
1534: MS 18- polresultant(u+v,u-v,v) => x + u; polresultant(u+v,u-v) => 2*u
1535: MS 19- issquare(Pol), where Pol(0) = 0
1536: IZ 20- use 15 points (by default) for recursive plotting as documented
1537: 21- matsnf for singular matrices (supersedes a patch by GN)
1538: LG 22- micro kernel support for HPUX
1539: LG 23- compilation with Sun's C++ compiler (version 4.2)
1540: 24- SEGV when factoring polynomials of huge degree (removed expos[100],etc)
1541: 25- garbage collection in gpuigs
1542: GN/BH 26- micro kernel support for ix86 running SunOS
1543: HC 27- handling of 0x0 matrix in some hnf* functions
1544: HC 28- bug in discrayabslist* (try bnrdisclist(bnfinit(y^2-2),200,,1) in 2.0.7)
1545:
1546: Changed:
1547: 1- moved hnf and snf from base1.c to alglin2.c (base1.c too big)
1548: 2- use gexpo in linear algebra functions when entries contain real
1549: numbers (work for inexact polynomial entries now). Still does not
1550: work properly for p-adics
1551: GN 3- in sigma() fall back to numbdiv() or sumdiv() when k < 2
1552: 4- made comments started in file through read("file") local to file
1553: (not so \r file)
1554: 5- valuation(0) now returns VERYBIGINT instead of raising an error
1555: MS 6- simplified gegal in case t_FRAC
1556: IZ/GN 7- faster initprimes, using less memory
1557: LG 8- improved Configure
1558:
1559: Added:
1560: 1- new function write1
1561: MS 2- new Lisp-like quote operator 'a
1562: IZ 3- readline: electric parentheses, move across balanced expressions,
1563: add formal arguments to completion of GP command (when unique)
1564: 4- micro-kernel for hppa
1565: 5- quiet mode (gp -q) to suppress headers
1566:
1567: ===========================================================================
1568: Done for version 2.0.7.alpha (released 21/03/98):
1569:
1570: Fixed
1571: XR 1- SEGV in get_regulator for imag. quad. fields
1572: 2- "beautified" output (still ugly, less buggy, ok for simple objects)
1573: 3- error during "print()" could change output default
1574: 4- SEGV when syntax errors in gprc
1575: 5- make install failed when libpari.$sodest had been removed
1576: 6- moved term_width and term_heigth to es.c
1577: HC 7- inefficiency in mulii (Karatsuba used too easily)
1578: XR 8- many problems in stark.c
1579: XR 9- bugs in rnfpolredabs (+ new flag)
1580: GN 10- _many_ typos in tutorial and user's manual. New, much nicer, layout
1581: 11- whatnow not robust enough + faulty call by err_new_fun ==> SEGV
1582: 12- idealadd treated incorrectly the 0 ideal
1583: 13- default(realprecision) gave wrong value when format had been changed
1584: 14- bnfs structure was inefficient for applications (inverted 2nd comp.)
1585: 15- buffersize was incorrectly updated during complicated read()
1586: 16- one-line comments "ignored" if buffersize too small
1587: 17- using eval on object containing killed variables caused a SEGV
1588: 18- contfrac lost last term when first parameter was rational and
1589: numerators were supplied
1590: 19- problems when dividing with polynomials/series whose leading coeff is
1591: non-exact 0
1592: BD 20- missing #ifdef ZCAT in es.c
1593: BD 21- check in paricom.h whether min / max are already defined
1594: BD 22- universal_constants freed early in freeall() (problems on Windows NT)
1595: BH 23- update Makefile.dos (nf.h --> parinf.h)
1596: BH 24- changed kernel/ix86/level0asm.c (FUNBEGIN/FUNEND + ALIGN)
1597: 25- cleaned the gauss_pivot functions + garbage collecting in gauss()
1598: 26- mathnfmod did not check its second argument
1599: 27- since 2.0.4 (item 24) install did not work anymore on FreeBSD + gp-dyn
1600: 28- cleaner malloc in plotX.c (to remove Warnings when debugmem > 0)
1601: 29- slightly optimized matdet (gsub --> gadd(,gneg))
1602: 30- ? x=1; Pol(1)
1603: *** variable name expected: x,n,
1604: ^---
1605: is fixed everwhere (wherever an optional variable name is expected)
1606: setting "x" to some value is now safe
1607: IZ 31- nicer looking plot() function
1608: 32- warnings while building for m68k arch
1609: 33- sqrt(Mod(1,2)) went into an infinite loop
1610: 34- ?? did not resolve aliases
1611: 35- besselk near integers entered an infinite loop
1612: 36- p-adic sqrt (bad valp)
1613: 37- hnfmodid could output wrong results (wrong diagonal) and wreck the
1614: powering of prime ideals
1615: 38- added garbage collecting in izeta
1616: 39- ??a_number now works as gphelp
1617: 40- in prettymatrix format, matrices 0xn and nx0 are always printed as [;]
1618: 41- 1 - "a" ==> SEGV
1619:
1620: Changed
1621: 1- reorganized output functions (es.c)
1622: 2- have mulir check if integer is small
1623: 3- part of GENtostr inlined (check_output_length())
1624: HC 4- functions where it makes sense now admit an optional argument for
1625: "variable number" (intformal, deriv, things having to do with
1626: polynomials, etc)
1627: 5- lines of any length can be input interactively (previously 1k at most)
1628: 6- remove {} and \ from readline history
1629: 7- improve treatment of sample programs in gphelp -d
1630: 8- uniformized debugmem messages
1631: 9- simplify the coinit function (Michael Somos)
1632: 10- changing the function set through default(compatible,) no longer
1633: resets installed functions
1634: 11- renamed nfker-->nfkermodpr, nfgauss-->nfsolvemodpr
1635: 12- simplified/extended dummycopy
1636: 13- listput gives more informative error messages
1637:
1638: Added
1639: 1- default: lines
1640: HC 2- (made known to GP) functions nfmodprinit, nfkermodpr & nfsolvemodpr
1641: XR 3- function bnrstark
1642: 4- install code D& (optional pointer)
1643: 5- function name_var (to use after fetch_var)
1644: 6- concatenation of lists (or row vectors) of objects (overloaded concat)
1645: 7- ranges for vecextract (eg. vecextract(x, "1..3"))
1646:
1647: Removed
1648: 1- useless code 'F' in analyzer
1649: 2- perl directory (moved the files in ./perl to ./doc)
1650: ===========================================================================
1651: Done for version 2.0.6.alpha (released 22/02/98):
1652:
1653: Fixed
1654: 1- \x (voir2) did not always print the correct number of words
1655: 2- in changevar, type POLMOD, modulus and polynomial were interchanged
1656: 3- all occurences of former header file names in the documentation
1657: 4- (from 2.0.5. item C5) using allocatemem in a script aborted file reading
1658: 5- expanded the documentation for bnrrootnumber
1659: 6- factor(pol. with rational non integer coeff) could corrupt the stack
1660: 7- Euler gave wrong results when prec > 80502 digits (also cleaned up Pi)
1661: 8- cleaned up ggcd, grando0, tayl and factorpadic2
1662: 9- is_scalar_t --> is_const_t in gvar/gvar2
1663: IZ 10- Configure and example Makefile for OS/2
1664: 11- idealprincipal did not accept n x 1 matrices
1665: 12- idealhnf(nf,a,b) did not work for quadratic fields
1666: 13- matsolve[mod]([;],.) could corrupt the stack or accept incorrect input
1667: 14- modules/galois.c unnecessarily included <sys/stat.h>
1668: BH 15- symbol name problem in level0asm.c (cancels patch by IZ)
1669: XR 16- fixes in stark.c
1670: 17- cleaned all occurences of HIGHVALPBIT and HIGHEXPOBIT
1671: 18- serconvol assumed main variable was "x"
1672: 19- (x + O(x^2))^(3/2) gave a stupid error message
1673: 20- types not checked correctly in gtoser
1674: 21- check more seriously arguments to default()
1675: 22- in Makefile: added some missing $(RM), changed an "ln -s" in $(LN)
1676: 23- extra '\n' after print1 + sequence of warnings
1677: 24- simplified a statement in addii()
1678: 25- typo in classno() (classno(-200183): "division by 0") + cleaned classno
1679: 26- all compiler warnings + most of lint's
1680: 27- make install would not work anymore if emacs was not found
1681: 28- HNF reduction not always complete when rank is small compared to dim
1682: 29- gphelp -d did not handle ~ properly (+ cosmetic changes)
1683:
1684: Removed
1685: 1- unused files src/kernel/ix86/{asmi386.h,asmi386inline.h}
1686: 2- useless macro gcopyifstack and global variable RAVYZARC
1687: 3- useless error message gcder1
1688: 4- useless (undocumented) function fasthnf
1689:
1690: Changed
1691: 1- simplified isonstack
1692: 2- extended valid inputs for matsolvemod
1693: 3- don't output a '\n' before an empty matrix
1694: 4- mpsincos no longer static (so that it can be installed)
1695: 5- reorganized gp_initrc() to cater for for non-UNIX arch
1696: 6- the "obsolete function" message now launches whatnow() directly
1697: (and caters for the special cases "i" and "o" now)
1698: 7- improved stack management in hnf/allhnfmod/fasthnf
1699: 8- moved powering functions to trans1.c
1700: 9- disable logfile while reading .gprc
1701: 10- (slightly) the output of whatnow()
1702:
1703: Added
1704: BH 1- support for DOS build using EMX (dos directory + fixes)
1705: 2- function cotan() and bernfrac()
1706: 3- a code for pointers (&) for analyzer and install()
1707: 4- ??readline now includes info about completion and online help
1708:
1709: ===========================================================================
1710: Done for version 2.0.5.alpha (released 07/02/98):
1711:
1712: Fixed
1713: BH 1- LOCAL_HIREMAINDER added twice more in mp.c
1714: LG 2- some symbols declared extern in gp_rl.c to avoid compiler warnings
1715: LG 3- isprime could corrupt the stack (isprime_proto removed)
1716: LG 4- possible redeclaration of macro from system header (MAX in bibli1.c)
1717: 5- typos in the user's manual
1718: 6- removed unused error numbers and fixed their ordering in mp.s
1719: 7- a ; or : after read/extern was not always correctly taken into account
1720: 8- a bug in polroots (possible SEGV in very rare cases) (Paul Zimmermann)
1721:
1722: Changed
1723: LG 1- (huge) reorganization of PARI kernel and headers
1724: 2- logfile example in gprc.dft to take advantage of "time expansion"
1725: XR 3- stark units module rewritten
1726: HC 4- rnfpolredabs improved
1727: 5- errors now cause GP to close any file it was reading instead of going on
1728: 6- increased the static limit for the number of files opened simultaneously
1729:
1730: Added
1731: XR 1- function bnrrootnumber
1732:
1733: ===========================================================================
1734: Done for version 2.0.4.alpha (released 26/01/98):
1735:
1736: Fixed
1737: 1- recovery on startup was not correctly disabled
1738: GN 2- pari.el (see emacs/pari.el-changes)
1739: 3- "" missing around a DLLD caused Configure to fail if shared library not
1740: available
1741: 4- component of GEN could be created before its root in gadd(t_SER, t_SER)
1742: 5- nffactormod did not like big primes
1743: 6- removed the `.' binary concat operator introduced in last update
1744: (broke semantics). Instead Str() argument evaluated in string context
1745: 7- solve did not find some obvious zeroes (solve(x=-2,1,x) for instance)
1746: 8- Configure -pg did not work
1747: 9- 68k version didn't work: corrected mp.s, moved some code & defines
1748: 10- subst(x,variable(x),1) did not work
1749: 11- flag acted contrary to doc in matsolvemod
1750: 12- in rare cases the prompt could still start at column > 1
1751: 13- bnfissunit much faster now
1752: 14- idealval could make mistakes with non-integers
1753: 15- Mat([1])[1,] gave a stack error
1754: 16- zetakinit(x-1) as well
1755: 17- zetakinit(K, even integer) gave a wrong result whenever r1(K)>0
1756: 18- typo in whatnow(hermite) and ?bnfsunit
1757: 19- missing newline in user error after print1
1758: 20- various typos and omissions in chapters 1, 2 and 5 of manual
1759: 21- (x-x)==(y-y) returned FALSE
1760: 22- polfactormod(f,0) gave a SIGFPE
1761: 23- some missing #ifdef UNIX
1762: BH 24- install() now works for gp-sta under Linux and OSF
1763: BH 25- gcc Warnings in gp.c + es.c
1764: BH 26- problems when installing from a different non-priviledged account
1765: BH 27- inefficiencies in mpinline.h (replace memory access by a constant)
1766:
1767: Changed
1768: 1- when logging mode is on, record command line as well as result, and
1769: flush buffer often
1770: 2- subdirectory lib now called misc. Changed some filenames in it
1771: 3- defaults psfile and logfile are now run through strftime
1772: 4- for benches total time now taken into account ([BUG] was excluded)
1773: 5- noerr is now the LAST error message (for CLISP interface)
1774: 6- cleaned path expansion (default(path,...))
1775: 7- renamed types.h and cast.h (prefixed by "pari")
1776: 8- renamed type Rect to PariRect
1777: DB 9- kernel/kerPPC.s replaced by kernel/kerPPC.c
1778: 10- made static the arrays in check_isin() (for the Mac port)
1779: BH 11- overflow/hiremainder use local variables as much as possible
1780: 12- prompt not printed during a batch job, unless echo is set
1781: commands not echoed twice in interactive mode
1782:
1783: Added
1784: 1- gplogfilter script in misc
1785: 2- check for strftime in Configure
1786: 3- support for alpha running linux (include portability fix on keralpha.s)
1787: 4- file MACHINES
1788: 5- made message for "array index out of range" error more precise
1789: 6- more frequent garbage collecting in mathnf
1790: BH 7- inline asm for i386
1791: GN 8- support for native compiler on AIX
1792:
1793: Removed
1794: 1- support for dynamic linking on AIX (did not work)
1795:
1796: ===========================================================================
1797: Done for version 2.0.3.alpha (released 13/01/98):
1798:
1799: Fixed:
1800: 1- rare bug in gadd (PADIC + PADIC) which caused one of the arguments
1801: to be overwritten
1802: 2- typos in refcard
1803: 3- galois.c still couldn't compile on the HP (_INCLUDE_POSIX_SOURCE)
1804: 4- introduced in 2.0.2: item 14 used gexpo incorrectly (bnfinit sometimes
1805: did not give units it could have computed)
1806: 5- replaced INFINITY by pariINFINITY in rootpol.c (cancels Warning on OS/2)
1807: 6- on OS/2, target ../gp-$dft in o.xxx/Makefile could not be built
1808: (extraneous $exe_suff)
1809: 7- command line switches so that one can enter them with or without white
1810: space (new function read_arg in gp.c)
1811: 8- setdcolors so that it can't unset disable_colors if we are under emacs
1812: 11- random did not check its argument correctly (random(2^32) was accepted)
1813: 12- b=10; for(a=1,b, b=2) exited immediately, whereas the upper bound is
1814: supposed to be evaluated only once
1815: 13- reorganized the error recovery system (initially because errpile could
1816: cause SEGV on Linux systems)
1817: 14- typo. problems in doc and refcard (interletter spacing in $nfz$...)
1818:
1819: Changed:
1820: 1- Reorganized Makefile.SH: extraction twice as fast
1821: 2- pari.menu and pariemacs.txt rewritten, pari.el updated
1822: 3- expanded the man gp.1 to mention command line switches
1823: 4- the implied input from non-interactive input command (like extern and
1824: read) does not go into the GP history (%x) anymore (it never went into
1825: readline's). The final output (value of last expression evaluated) of
1826: course still does!
1827: 5- updated chapter 5 of the User's Manual (removed obsolete information)
1828:
1829: Added:
1830: 1- better settings for handling the Meta key under readline in
1831: examples/Inputrc
1832: YU 2- support for shared libraries under FreeBSD
1833: 3- colors under Emacs
1834: 1) emulate exactly the "colors" default after a M-x gp
1835: 2) .gp files edited get a special highlighting
1836: 4- a flag to default() to get the result under GP
1837: 5- overloaded the "." (member) operator to concatenate as strings if LHS is
1838: a string
1839: 6- .gprc accepts some limited preprocessing directive (#if READL and
1840: #if EMACS (and #ifnot as well)). Updated lib/gprc.default to reflect the
1841: changes
1842:
1843: Removed:
1844: 1- some unused, undocumented functions (allocatemem(), checksqid())
1845: made static some other (op_ReIm)
1846:
1847: ===========================================================================
1848: Done for version 2.0.2.alpha (released 15/12/1997):
1849:
1850: Fixed:
1851: 1- typos in the documentation for the random() function
1852: 2- removed an extra -emacs flag in pari.el
1853: 3- decodefactor was incorrectly remembered by whatnow (it's factorback now)
1854: 4- test mode did not prevent all prompt expansion (==> bug in make test)
1855: 5- gphelp stopped abruptly when meeting a cross-referencing macro
1856: 6- zetainit now aborts cleanly when disc. too big (caused memory fault)
1857: 7- exceedingly rare bug in the printing of real numbers (missing decimals)
1858: 8- too early rounding in polroots which in rare cases made GP think some
1859: error had happened
1860: 9- text overflowed the manual pages (and tutorial) on non-A4 paper
1861: 10- polred incorrectly assumed that nf arguments were totally real (in a non
1862: critical part: that just led to some unnecessary computations)
1863: 11- polred(f,2) could try to overwrite universal integer gzero
1864: 12- check if we are using GNU as or GNU ld in Configure
1865: 13- empty -R argument to $CC when building GP without graphics (==> link
1866: failed)
1867: 14- bnfinit acts sensibly when fundamental units are too large (before:
1868: "overflow in R*R")
1869: 15- cleaned up buch2.c (removed ideallllredpart1, removed gerepile in
1870: class_group_generators(), not_given now called from getfu)
1871: 16- nfgaloisconj(...,2) was unusable (tried an illegal multiplication)
1872: 17- is_totally_split was very inefficient (==> nfgaloisconj was very slow)
1873: 18- some unimportant typos (gexpo) in polgalois
1874: 19- compiling without readline gave a Warning in gp.c (already_hist)
1875: 20- some make programs don't like $< (suppressed from doc/Makefile)
1876: 21- ellap sometimes assumed wrongly that coeffs of the curve were integers
1877: 22- flag 0 and 1 in ellap had been mixed up
1878: 23- print an extra \n before an error message if last output did not
1879: include it
1880: 24- component(any non recursive type) gave a SEGV
1881: 25- suminf / prodinf / prodeuler assumed they treated a real expression
1882: 26- lindep / algep had problems with numbers having a rational component
1883: 27- last significant digits of bessel* and hyperu were wrong (now only the
1884: last one is)
1885: 28- expi now returns a long as documented (expi(gzero) returned 0 on 64-bit
1886: machines!)
1887: 29- g++ could not compile libpari.a (casts missing, extraneous extern "C",
1888: faulty inline, etc.)
1889: 30- cleaned up the enums in gp.h
1890: 31- incorrect target veryclean in doc/Makefile
1891:
1892: Changed:
1893: 1- '_' is now valid in GP identifiers
1894: 2- removed subsections from table of contents. pages in the manual are now
1895: numbered consecutively
1896: 3- gexpo now accepts exact 0 arguments (return -HIGHEXPOBIT)
1897: gexpo for complex numbers now return max(gexpo(Re), gexpo(Im))
1898: 4- parts of lib/gprc.default
1899: 5- the second argument of subgrouplist is now optional
1900:
1901: Removed:
1902: 1- buggy label/goto functions
1903: 2- (now unused) error messages: labeler, gexpoer2
1904: 3- _ as shorthand for conj()
1905: 4- (useless, undocumented) function gnormalize
1906: 5- some files in the lib directory (functions, gp)
1907:
1908: Added:
1909: 1- some files in the lib directory (README, pari.xbm, xgp)
1910:
1911: ==============================================================================
1912: Done for version 2.0.1.alpha (released 29/11/1997):
1913:
1914: Fixed:
1915: 1- multiple factors forgotten when factoring univariate pols over Z
1916: 2- extraneous modifications of the random seed (period of random
1917: generator was ridiculously small for some buchxxx functions). Change
1918: the bench results (in a non essential way)
1919: 3- bad terminal size determination
1920: 4- aliases incorrectly killed (possible SEGV)
1921: 5- incrementing/decrementing array elements with the (valid) syntax
1922: v[i]++ / v[i]-- caused a weird error message
1923: 6- subgrouplist() could end up by a SEGV on Linux systems
1924: LG 7- on HP-UX, flag -Aa not taken into account in Configure (caused it to
1925: fail on has_TIOCGWINSZ.c)
1926: LG 8- added a missing #define _INCLUDE_POSIX_SOURCE in galois.c
1927: (7 & 8 independently fixed by OV)
1928: GN 9- the script examples/cl.gp called vecconcat() instead of concat()
1929: GN 10- make install-sta rebuilt gp-sta unnecessarily
1930: GN 11- many, many typos in the tutorial
1931: 12- tu / fu applied incorrectly to a bnfclassunit
1932: 13- bnfclassunit did not output a valid object (matrix whose elements were
1933: rows instead of columns)
1934: 14- conversion bug from t_QUAD to t_REAL/t_COMPLEX
1935: 15- off-by-1 error in the history recovery after an error
1936: 16- in fprintferr() (debug messages), embedded %Z did not work correctly
1937: 17- rnfequation over Q yielded a SEGV
1938: 18- string() in compatibility mode corrupted the stack
1939: 19- it is now safe to have colours in prompt and input line under readline
1940: 20- default colours restored upon exiting
1941: 21- default colors in lib/gprc.default used 0 instead of -1 for "no color"
1942: 22- psi and lngamma could give wrong results when the argument was not real
1943: 23- the make test-graphic bench was missing a newline
1944: 24- Pol(break) gave a SEGV
1945: 25- x=1; Pol(1) gave a stupid error message
1946: IZ 26- tutorial.tex was unnecessarily rebuilt
1947: 27- typos in ggcd (cases nobody will ever access: gcd of a non-reduced
1948: LG fraction with an intmod, etc.)
1949: LG 28- incorrect handling of integrals of vectors
1950: 29- gcd of polynomials with non-exact coeffs gave stupid results (they are
1951: still often wrong, since the mathematical notion is rather imprecise)
1952: 30- typos in rnfkummer (incorrect flag handling)
1953: 31- typo in idealpowprime (negative exponent gave wrong denominator)
1954: 32- multiplication t_COMPLEX x t_COMPLEX used 4 mult. instead of 3
1955: 33- some modular functions (j, f, f2) rewritten to take advantage of new eta
1956: function (trueta)
1957:
1958: Changed:
1959: 1- ?? (gphelp) starts in detex mode (-d) from a console window. tmp files
1960: now placed according to the $TMPDIR environment variable (in /tmp by
1961: default)
1962: 2- /usr/local/lib/pari/data is a better place for the Galois resolvents
1963: (which are not included yet in the standard distribution)
1964: 3- The example for prompt in gprc.default to discuss escape sequences under
1965: readline
1966: 4- Configure now starts by searching the toplevel directory for a temporary
1967: readline installation
1968: 5- The output of default(colors) was confusing. It is a string now
1969: 6- third argument of polinterpolate can be arbitrary and is now optional
1970: ("x" by default) (it had to be numeric)
1971: 7- directory configure renamed config, some of the Makefiles in there as
1972: well (to avoid confusion)
1973: 8- the low_stack macro to facilitate dynamic stack expansion
1974: 9- if, back to GP main loop, the last command was a print1(), output an
1975: extra newline. This way the prompt is guaranteed to be anchored on
1976: column 1 (suppresses a readline display bug as well)
1977: 10- Due to 9, pari.el now supposes the prompt starts in col. 1
1978: 11- Better handling of version numbers (LG)
1979: 12- decodefactor() renamed to factorback()
1980:
1981: Removed:
1982: 1- The (unused, undocumented) Malloc_Procs functions and macros
1983: 2- The (now unused) error message numvarer
1984: 3- some (useless, undocumented) targets in the top Makefile
1985: 4- (useless, undocumented) function polgcd()
1986:
1987: Added:
1988: 1- This file !
1989: 2- new flags -ch, -cb, -cu (colour support) to gphelp (see its header)
1990: IZ 3- OS/2 (+ enough tools...) supported by Configure
1991: 4- file examples/Inputrc (example of .inputrc for readline)
1992: 5- Weber f1 function implemented
1993: 6- Karatsuba multiplication t_REAL x t_REAL (development code, not used by
1994: PARI yet). Test it with install if you wish
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>