[BACK]Return to CHANGES CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari-2.2

Annotation of OpenXM_contrib/pari-2.2/CHANGES, Revision 1.2

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>