1Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
2
3Done for version 2.9.0 (released 1/11/2016):
4  Fixed
5    1- idealappr: allow flag for backward compatibility
6    2- nfisisom(x,x^0) -> SEGV
7BA  3- galoisgetpol: fix crash if some files are missing
8BA  4- [libpari] fix support for PARI_OLD_NAMES
9
10Done for version 2.8.1 (released 23/10/2016):
11  Fixed
12    1- nfroots(non-monic t_POL) => wrong result [#1841] [from 2.8.0]
13    2- crash on BIB in ellpointtoz(t_PADIC) [#1840]
14    3- nfisideal(nfinit(x^2+1),[1,0;0,2]) -> 1 instead of 0
15    4- intnuminit(-oo,oo,1) -> error [#1847]
16    5- idealstar([f_0,f_oo]) for f_oo t_VECSMALL (place selection) didn't work
17    6- msinit objects could not be saved to file then read back in [from 2.8.0]
18    7- wrong value for bnrrootnumber for non-primitive characters [#1848]
19    8- allow znstar(N,flag) for idealstar(,N,flag)
20    9- allow znlog(x,G) for G = znstar(N), instead of ideallog(,x,G),
21       for DL wrt. G.gen; in addition to traditional znlog(x,g), where an
22       arbitrary generator g is specified
23   10- e=ellinit([1,-1,1,98,126],O(5^10)); ellpointtoz(e,[1,14]) -> div. by 0
24   11- ellpointtoz(E / Qp, P) was not reduced mod q^Z
25BA 12- [breakloop] changes done in the first-level breakloop were lost when
26       leaving the second-level breakloop.
27   13- polinterpolate could create illegal objects [#1837] (test-case by PB)
28BA 14- [libpari] FqX_nbfact did not work
29   15- incorrect change of variable in elllocalred over a number field for
30       places dividing 6 [from 2.8.0]
31   16- contfraceval([[],[]],1) -> SEGV [from 2.8.0]
32   17- agm(1.0, 1.0*I + x + O(x^200)) -> oo loop [#1654]
33   18- primepi(2750160) -> crash [#1855]
34   19- polinterpolate([],[],Mod(1,3)) => 0 instead of Mod(0,3)
35   20- subst(Pol(0),x,Mod(1,3)) => 0 instead of Mod(0,3)
36   21- subst(Pol(1),x,Mod(1,3)) => 1 instead of Mod(1,3)
37   22- e=znconreyexp(idealstar(,N),) could give a result with (e,N) = 2 when
38       N = 2 (mod 4) [from 2.8.0]
39   23- idealprincipalunits(,,1) not supported [ concat error ] [from 2.8.0]
40   24- stack corruption in pollardbrent() at \g4 [#1858]
41BA 25- fflog could crash in char 2. [from 2.8.0]
42JD 26- is_universal_constant() made (possibly wrong) assumptions about memory
43       layout (gen_0 < ghalf)
44BA 27- lfundiv(L1,L2): division by 0 if L2[6] (rootno) is 0.
45   28- inconsistent thresholds for zeta(2*n); e.g. at \p100000, zeta(22934)
46       was much faster than zeta(22936)
47BA 29- [pthread] fix race conditions that caused memory corruption
48   30- rare SEGV in bnfisprincipal
49
50  Added
51    1- permtonum: allow t_VECSMALL input
52    2- [libpari] Z_to_perm, perm_to_Z
53    3- [libpari] checkprid_i, is_nf_factor, is_nf_extfactor
54    4- extend ellissupersingular for E/nf
55    5- added a tag Obsolete: to the RFC822 description system (pari.desc)
56    6- new GP functions nfmodpr, nfmodprlift
57    7- [libpari] get_arith_Z, get_arith_ZZM
58    8- [libpari] Mod2, Mod4, Mod8, Mod16, Mod32, Mod64, umodi2n
59    9- [libpari] logint, logintall
60   10- [libpari] zk_inv, zkmultable_capZ, zkmultable_inv, nfC_multable_mul,
61       zkC_multable_mul
62   11- [libpari] Idealstarprk
63   12- [libpari] ZpX_monic_factor
64   13- [libpari] nf_to_Fp_coprime
65   14- [libpari] idealprod, idealHNF_Z_factor
66   15- [libpari] rnfcomplete, rnf_build_nfabs, bnf_build_cycgen,
67       bnf_build_units, bnf_build_matalpha
68   16- [libpari] rnf_zkabs
69   17- [libpari] get_nf_field (black box field arithmetic over a number
70       field nf), nfM_det, nfM_inv, nfM_mul, nfM_nfC_mul
71   18- [libpari] bnftestprimes
72   19- [libpari] upr_norm
73   20- [libpari] bid_get_fact, bid_get_ind, bid_get_sarch, bid_get_sprk
74   21- [libpari] qfbforms
75   22- [libpari] nfroots_if_split
76   23- [libpari] nfmaxord_to_nf, nfinit_basic, nfinit_complete,
77       idealprimedec_kummer, nf_deg1_prime
78   24- [libpari] ZNstar, znstar0, znlog0
79   25- GP function znchartokronecker
80   26- [libpari] ser_inv
81   27- allow ellztopoint for E/Qp
82BA 28- [libpari] F2x_factor_squarefree, F2xqX_factor, FlxqX_factor
83BA 29- [libpari] FlxXC_to_F2xXC, F2xXC_to_ZXXC
84   30- [libpari] pr_uniformizer, prV_lcm_capZ, pr_inv, pr_inv_p, pr_basis_perm
85   31- [libpari] cmp_padic
86   32- [libpari] ZV_snf_trunc, ZM_hnfmodall_i, ZM_hnfall_i, ZC_Z_div
87   33- [libpari] uisprime_101, uisprime_661
88   34- [libpari] lift_shallow
89   35- [libpari] rowsplice
90   36- GP functions bnflogef, bnflog, bnflogdegree, nfislocalpower,
91       rnfislocalcyclo
92   37- [libpari] varnmin, varnmax
93   38- allow ellglobalred for E over a number field
94BA 39- [libpari] FpXQX_split_part
95BA 40- [libpari] ZpXQX_roots, ZqX_roots, ZqX_liftfact, ZqX_liftroot,
96                 Zq_sqrtnlift
97   41- [libpari] hash_dbg
98   42- [libpari] Qdivii, ceildivuu
99   43- GP function ellintegralmodel
100   44- [libpari] ZM_hnf_knapsack, hnf_invscale
101   45- [libpari] pol_xn, pol_xnall, retmkrfrac
102   46- allow lindep(vector of t_VEC), lindep(vector of t_COL) [#1857]
103   47- [libpari] famat_pow_shallow, famat_mulpow_shallow
104   48- [libpari] modRr_safe
105   49- [libpari] Z_ppo, u_ppo
106
107  Changed
108    1- remove useless flag in idealappr: directly allow factorization
109    2- [libpari] idealappr0 is now obsolete: use idealappr
110    3- replace qfbil(x,y,{q}) by qfeval({q},x,y) and qfnorm(x,{q}) by
111       qfeval({q},x): it makes more sense to have q first, and a single
112       function for qf+polar form (as in all other qf-like routines:
113       ellheight, etc.)
114    4- functions nfeltdivmodpr, nfeltmulmodpr, nfeltpowmodpr, nfeltreducemodpr,
115       nfkermodpr, nfsolvemodpr are obsolete. Use nfmodpr, work in the finite
116       field, then lift back using nfmodprlift.
117    5- split off historical refcard in submodules basic, ell, lfun, mf, nf
118    6- rewrite nfeltinv / nfeltdiv (use mult. table rather than polmod
119       representation)
120    7- idealred algorithm (find small y in I^(-1), not in I)
121    8- bnf format (allow dynamically adding units): old bnfs will be detected
122       as invalid. Dirty trick to force conversion: bnf[10]=vector(3);
123    9- nfelt* functions may now return scalars (t_INT/t_FRAC) in addition to
124       t_COL on nf.zk basis.
125   10- remove flag = 2 in nfgaloisconj (slow, unreliable, obsolete for 15 years)
126   11- bnfcertify(K): use automorphisms (speedup roughly #Aut_Q(K))
127   12- idealstar format, to access data more conveniently (and avoid
128       recomputations): old bid and bnr structures from versions up to 2.8.0
129       are now invalid
130   13- narchstar output: include finf in output
131   14- set_sign_mod_divisor prototype: module is now useless (implicitly
132       contained in sarch argument)
133   15- [libpari] removed discrayabs, discrayabscond, discrayrel,
134       discrayrelcond, discrayabslistlong: obsoleted since 2.0
135   16- gcd(t_VEC/t_COL/t_MAT, ...) is now forbidden, same for lcm
136   17- E/Qp: add sequence of isogenous curves  to structure (converges to the
137       singular E_oo) => much faster ellpointtoz
138BA 18- ZpX_liftfact no longer handles extensions of Qp, use ZqX_liftfact
139   19- char_rootof1 renamed to rootsof1_cx, char_rootof1_u -> rootsof1u_cx
140   20- gp --test: consider that the session is not interactive
141BA 21- [libpari] rename listcreate to mklist
142   22- [libpari] rename idealinv_HNF -> idealHNF_inv, idealinv_HNF_Z
143       -> idealHNF_inv, idealmul_HNF -> idealHNF_mul
144   23- [libpari] made famat_mul_shallow a true equivalent of famat_mul
145   24- move 'install' tests from test-program to test-install target
146   25- allow normlp(v, +oo)
147   26- [documentation] removed .ps files (use dvips -o if you need them); install dvis
148
149Done for version 2.8.0 (released 12/08/2016):
150
151  Fixed
152    1- make install fails on OS/X: ln -s libpari.dylib libpari.dylib fails
153    2- Q_pvalrem(t_FRAC) => wrong result
154    3- [] == 0 but []~ != 0  (now []~ == 0 as well) [#1560]
155BA  4- test-kernel did not work when using --mt=pthread
156BA  5- ellheegner was using too much memory in some case
157    6- ellap can overflow on 32-bit machine [#1558]
158       ellap(ellinit([582304190,64196421]),2147438927) -> overflow
159       ellap(ellinit([-1137195,489565862]),2038074751) -> wrong result
160    7- nfhilbert(K,x,y, P above 2) could give wrong results [#1561]
161    8- rnfkummer sometimes failed to return an answer: error or oo loop.
162       Relied on exhaustive enumeration of an Fp-vector space, some of
163       whose elements would trigger an error. Replace by Fp-linear algebra
164       that directly picks the correct line (O(d^3) algo instead of O(p^d),
165       and no failures). Only compute the defining poly for the right element.
166XR  9- padicfields(huge p, d) was very slow [even though ramification is tame]
167   10- gcd(1/2, 1+I*1.) -> SEGV [#1563], 2.5.5 returned the wrong answer 1/2
168   11- mathnf(t_VEC) could corrupt input (change sign)
169   12- [libpari] RgM_transmul did not work
170   13- [libpari] Fq_issquare didn't support T=NULL
171   14- [libpari] nfpow_u didn't handle non-integral rational numbers
172   15- eint1(0) -> stack overflow [#1568]
173   16- liftint(List([0])) -> gerepile bug
174   17- factorint(n,flag): flag was ignored when n fit into a long
175   18- factor(n,lim): lim was ignored when n fit into a long
176   19- nfrootsQ(t_POL with leading coeff -1) could miss some solutions, e.g.
177       nfroots(,-y^2-24476*y+119814917) -> [] instead of [-28657,4181]
178   20- precprime(1) -> invalid t_INT [#1576]
179   21- gaffsg(0, t_PADIC): wrong valuation
180   22- thue(f^e*g, ...), e even, (f,g)=1 missed solutions such that f<0
181   23- faster znlog when p-1 has only smallish prime factors.
182   24- (t_INTMOD with word-sized modulus)^(huge negative power) wrong [#1584]
183   25- (gp -p N) or (primelimit=N in gprc_ for N >= 436273290 resulted in an
184       incorrect primetable. N.B. Such commands are now useless: needed primes
185       are produced dynamically anyway.
186   26- monomial(exact zero, d, v) returned an invalid t_POL / t_RFRAC
187   27- contfracpnqn(v, n) returned partial quotients p[-1]/q[-1] ...
188       p[n-1]/q[n-1], instead of the documented p[0]/q[0] ... p[n]/q[n] [#1580]
189   28- isprime(N, 0) was often slower than either of isprime(N, 1 or 2)
190   29- factor((3+4*I)/25) -> factor 2+I had 0 exponent [#1586]
191   30- made qfbclassno more reliable (fixes all counter examples in [#1411])
192BA 31- iferr() could crash if some component of the t_ERROR were clones.
193   32- nffactor() could overflow the stack when default accuracy too low: e.g.
194       nffactor(y^2-22, x^2+926246528884912528275985458927067632*y-4344481316563541186659879867597013188)
195   33- some elliptic curve functions accepted (elladd, ellmul) a Weierstrass
196       5-uple [a1,a2,a3,a4,a6] instead of an ell structure. No longer.
197       Now only ellinit and ellchangecurve allow this syntax.
198   34- incorrect rounding in mulrr/divrr for one-word precision reals.
199BA 35- multiif did not handle correctly return() in conditions [#1590]
200   36- [0..5] -> [0,0,0,0,0] on some architectures
201   37- is_gener_Fp could return wrong results
202   38- Fq_sqrtn(t_INT,..,&zeta) could return a wrong root of 1
203   39- bnfinit: SEGV due to precision issues [#1592]
204   40- zm_zc_mul only worked for square zm matrices
205   41- genus2red(0,27*x^5+97*x^4+118*x^3+60*x^2+13*x+1,3) -> bug msg [#1596]
206   42- [gphelp] oo loop when $COLUMNS too small [#1594]
207   43- genus2red(x,-x^6-3*x^4-10*x^2-1,3) -> impossible inverse [#1597]
208   44- factoru(1) returned a t_MAT instead of the expected "matsmall" [#1598]
209   45- FpM_charpoly wrong in small characteristic [#1602]
210   46- Ser(Mod(0,2)) => incorrect object [#1587]
211   47- Ser(Mod(1,2)*x^2,,4) => incorrect precision [#1587]
212   48- Ser(x,v,prec < 0) => crash [#1587]
213   49- The t_SER Mod(0,2) + O(x^n) was not handled properly [precision and
214       valuation would change unexpectedly] [#1587]
215   50- when compatible = 3; series() used a random precision
216   51- genus2red(0,6*x^6+5*x^4+x^2+1,7) -> impossible inverse [#1597]
217   52- isprime(2030967737887612953751815611955778057721609672149695775998900201419048774375002716065557720510887824952942799737911826638068045234238082640629966597954851668852106621828704531597859470496362810381251800973022824003330423370127762722630493369197869948901862977534730314352222720177713223750671181797)
218       -> SEGV [#1604]
219   53- genus2red(x^3+1,1) -> type error [#1597]
220   54- gphelp did not handle === correctly [#1603]
221XR 55- bnrL1(bnrinit(bnfinit(x^2-168),[6,[1,1]],1)) -> bug in ArtinNumber[#1601]
222   56- FpXY_evaly() wrong when evaluating at 0
223BA 57- [win32] gp could crash at start up [#1607]
224   58- nfisincl(t_POL, t_POL) could lead to wrong negative results
225   59- polresultant(1+x*z^2,1+y*z^4,z) -> GC error [#1614]
226BA 60- ellcard over non-prime fields of large char could return wrong results
227   61- [libpari] FpX_roots could produce GC errors [#1618]
228   62- weber(1+I) was missing its imaginary part
229   63- (1+I)*(1+1/2*I) => wrong result (type errors) [#1619]
230   64- contfracpnqn([a]) => [1,a;0,1] instead of [a,1;1,0]
231   65- primes([2^50, 2^50+200000]) => stack overflow
232   66- issquare((x+1/2)^2,&z); z => 1.0*x+0.5 instead of x+1/2
233   67- possibly wrong result in nfsnf
234   68- possibly missing roots in nfroots (when using Trager)
235   69- quadray(bnf, ideal) did not work
236   70- thue(-14*x^3 + 10*x^2 + 63*x - 5,1) -> "short continued fraction" [#1629]
237   71- thue(29*x^3+130*x^2-35*x-48,1) -> "round error" bug
238   72- T=thueinit(10*x^3+6*x^2-41*x+8,1); thue(T,8) => SEGV [#1630]
239   73- ellrootno(e,p = 2 or 3) when e not minimal at p => random result
240   74- catastrophic cancellation in ellheight (at oo) [#1637]
241   75- bnfnewprec could return a corrupt bnf structure:
242        K=bnfinit(x^3-15667*x^2-88630960*x-1836105977032,1);
243        bnfisprincipal(K,[29,14,15;0,1,0;0,0,1],3) -> oo loop
244   76- agm(1,2+O(5)) -> SEGV [#1645]
245BA 77- [cygwin64] ellap(ellinit([0,0,1,-1,0]),10007) broken
246   78- primes([-5,5]) -> [5] (spurious absolute values)
247   79- matqr([;]) -> crash
248   80- Fp_rem_mBarrett could return a non-normalized result
249       p=436^56-35;Mod(271,p)^((p-1)/2) -> p+1
250   81- plotcopy would corrupt "string" objects (ROt_ST)
251BA 82- [GP] default arguments to GP functions could cause corruption [#1658]
252VBr83- [darwin] remove obsolete linker options that cause crashes [#1623]
253   84- divisors([2,1]) -> SEGV                                    [#1664]
254   85- acos([Pol(1)]) -> GC bug [#1663]
255   86- matsolve(a,b) and a^(-1) gave wrong results [or SEGV] when t_MAT a
256       was not square and a,b "modular" (F2m,Flm,FpM,FqM,F2xqM,FlxqM)
257       same for x^(-1) [#1666]
258   87- primes([1,Pol(2)]) -> SEGV [#1668]
259   88- znlog(0,Mod(1,4),1) -> 0 (instead of [])
260   89- polzagier / sumalt(,1) / sumpos(,1) were slow and used too much memory
261   90- sumpos was wasting time when pre-computing \sum 2^e a(k*2^e) [ only
262       needed for k odd, but was also done for k = 0 mod 4 ] + improve accuracy
263   91- intnum(x=[0,-1/2],[oo,-3/2],1/(sqrt(x)+x^(3/2))) -> junk t_COMPLEX
264       (more generally: one endpoint has an algebraic singularity and the
265       other is +-oo, non-oscillatory
266   92- intnum(x = [-oo,-3/2], [oo,-5/2], f(x)) --> loss of accuracy due to
267       confusion between endpoint behaviours a/b in intnuminit data
268       E.g. f(x)=(x<0,1/(1+(-x)^(3/2)), 1/(1+x^(5/2)));
269   93- intnum(x = [-oo,-3/2], [oo,-5/2], f(x)) --> loss of accuracy due to
270       confusion between endpoint behaviours a/b in intnuminit data
271       E.g. f(x)=(x<0,1/(1+(-x)^(3/2)), 1/(1+x^(5/2)));
272   94- intnum(x=[0,-1/2],[1,-1/3], x^(-1/2) + (1-x)^(-1/3)) -> error [didn't
273       suport singularities at both endpoints]
274   95- buffer overflow after default(format,"f.precision") (whenever many
275       initial zeroes)
276   96- qfminim(A, 0, ...) -> stack overflow [#1682]
277   97- e=ellinit("11a1"); ellztopoint(e,3*e.omega[1]/5) -> [5, junk]
278       (instead of expected [5,5]) [#1683]
279   98- bnfinit(quadhilbert(-2180)) -> precision error [#1688]
280   99- div_scal_rfrac could create an invalid t_POL [#1651]
281  100- polroots(t_POL with leading coeff = 0) -> fp exception or error [#1690]
282  101- \r cannot deal with very long filenames [#1616]
283  102- rnfisabelian(nf, non monic t_POL) -> SEGV [#1693]
284  103- Vecrev(x,n) / Colrev(x,n) when 'n' is not omitted: it wasn't true
285       that Colrev/Polrev were inverse functions [#1698]
286  104- possibly incorrect result in nfdisc(T,listP) even though listP included
287       all prime divisors of the field discriminant. Example:
288        p=10^100+267; q=10^120+79;
289        T=polcompositum(x^2-p,x^2-q,2);
290        nfdisc([T,[2,p,q]])
291  105- wrong dim(Ker) returned by ZM_pivot => SEGV in Z-linear algebra routines.
292       E.g. setrand(1);quadclassunit(-612556842419) [#1700]
293  106- moebius(factor(18)) -> 1 instead of 0 [#1702]
294  107- ispower(-167^10) => domain error [#1703]
295  108- ispowerful(factor(0)) != ispowerful(0)
296  109- expm1(2*I) => wrong result
297  110- gamma(1+a*x+O(x^2)) => error [#1707]
298  111- printsep() printed its argument in random format, instead of f_RAW as
299       print() [#1708]
300  112- nfdisc(x^10 - 29080*x^5 - 25772600) -> oo loop [#1710]
301  113- forprime engine could skip (fast) sieve in favour of (slow)
302       nextprime [#1711]
303  114- 0^[1] -> domain error [#1713]
304  115- memory leaks (clones) in ellchangecurve [#1716]
305  116- zeta inaccurate around 0 [ from 2.7 ], [#1714]
306  117- ellj(simple t_SER in 'x) much slower than in other variable [#1720]
307  118- bnrrootnumber did not support the trivial character in the form [0,..,0]
308  119- default(log,1) when logfile is write-protected later lead to SEGV [#1730]
309BA120- 2-adic gamma function: fix accuracy loss
310  121- A==A -> 0 for A a t_SER of huge accuracy (so that A-A overflows
311       valuation) [#1734]
312XR122- P=[1,-2,12,-12,-181,-4,-6899,9780,6360,702,-45]; setrand(3); nfdisc(P)
313       -> wrong answer [ crash if setrand(138) ] [#1735]
314  123- select(x->x,Vecsmall([1,2,3]),1) -> crash [#1737]
315  124- (1./x+O(1))-(1./x+O(1)) -> 0.E-38*x^-2+O(x^-1) [#1741]
316BA125- [libpari] RgV_to_RgX_reverse did not work if v[1] or v[2] was 0
317  126- bnfinit(x^3-87156*x^2-6728799*x-456533) [#1736]
318  127- Rg_to_ff: incorrect type in zk_to_ff [#1755]
319BA128- nfsubfields could fail [#1758]
320  129- rare SEGV in ArtinNumber [#1759]
321  130- K.codiff incorrect if [K:Q] > 2
322  131- chinese([]) -> '1' instead of Mod(0,1)
323  132- m1=Mod(0,1);m2=Mod(1,x^2+1); chinese(m1,m2) -> m1; chinese(m2,m1) -> m2
324       [instead of error]
325  133- nfrootsof1(polcyclo(85)) -> 85 instead of 170 [#1766]
326  134- at \p19, polroots((x+1)^2 * (x-1)^7 * (x^2-x+1)^5 * 1.0) -> SEGV [#1767]
327BA135- ellsea returned the trace instead of the cardinal as documented.
328BA136- ellsea(,,1)  could return a wrong result [#1768]
329  137- rnfconductor: sanity checks were not taken into account
330MC138- memory leak in pari_close: sopath not freed
331HC139- incgam(30,60) < 0. More generally, wrong results for s >> 1 [#1689]
332HC140- excessive loss of accuracy in incgam, incgamc, eint1
333  141- isprimepower(30011^(3*17)) returned 0
334  142- a = Mod(1,x); z = Mod(0,Pol(1)); chinese(a, z) works
335       but chinese(a, simplify(z)) failed
336BA143- [mpi] interrupt/alarm could caused a crash
337BA144- [mpi] relinking empty t_LIST caused a crash
338  145- ispower(t_POL) didn't work in small characteristic [#1779]; make it work
339       over finite fields
340BA146- my(s=1,a=0);forstep(i=1,20,s,s++;a+=i);a -> wrong result
341KR147- gphelp -detex: accented letters counted as 1 char for line splitting
342       but rendered as 2
343  148- sqrt(0) -> loss of accuracy (sqrtn was correct)
344  149- nfgaloisconj(t_POL T) was unnecessary slow when large divisors
345       of disc(T) were internally detected (and subsequently ignored)
346BA150- elltatepairing could return wrong results [#1784]
347  151- padicappr(x^3+1,-2+O(2^5)) -> SEGV [mod a root mod p] [#1793]
348  152- K = bnrinit(bnfinit(y^2-5),[1,[1,1]]); bnrdisc(K) -> wrong [#1804]
349  153- ellztopoint(ellinit([-1,0]), I) -> wrong result [#1800]
350       Potentially affected all elliptic functions (ellwp,ellzeta,ellsigma)
351       at real or pure imaginary arguments.
352  154- gamma(2+x) did not start with an exact 1, unlike gamma(1+x).
353       lngamma(2+x) didn't have valuation 1
354  155- gamma(t_INT+x) at large accuracy and seriesprecision was very slow,
355       even for small t_INTs (same for lngamma and psi). E.g. at \p1000
356       gamma(1000+x+O(x^100))
357  156- a=Mod(y,y^2+1); Mod(a, x^2-2) == a returned 0 [#1806]
358  157- x \/ y did not conform to documentation when either x or y was a
359       t_REAL. E.g. 28/10 \/ 1 == 3 but 2.8 \/ 1 == 2. Now both return 3 [#1811]
360BA158- digits(N,B) with 31/63 bit B could return wrong result
361BA159- [pthread] parallel GP could leak memory
362  160- ellinit(E, O(p^n)) was slightly incorrect for E / Q [ started by
363       approximating exact equation mod p^something instead of keeping
364       everything exact ]
365  161- ellinit(E, O(2^n)) was hardly supported, e.g.
366       ellinit("14a1",O(2^5)).tate => precision too low in p-adic AGM.
367BA162- polrootsmod(x^3-1, not a prime) -> SEGV (BIB)
368BA163- [windows] MPQS could fail due to temporary files
369  164- matsnf([27, 0; 0, 3; 1, 1; 0, 0],1+4) -> SEGV
370  165- gcd(Mod(1,2)*x+Mod(1,2), Mod(0,2)) -> Mod(1,2)
371  166- qfperfection() only allowed matrices of small norm [#1719]
372  167- wrong formula for poldisc when characteristic divides degree [#1831]
373  168- wrong result for poldisc(ZX) in huge degree [#1830]
374  169- missing typechecks in ellheight() [SEGV on BIB]
375  170- ellminimalmodel() didn't use a coprime bases so that it
376       was very slow for [c4,c6] = [p^5*q, p^6*q] for huge p and q
377BP171- ellpointtoz(E / Qp) was totally wrong [#1833]
378  172- genus2red(177*x^6+126*x^5-63*x^4+72*x+84) -> bug in labelm3 [#1826]
379  173- normalize genus2red stable reduction output: a type K1-K2-r now
380       guarantees K1 <= K2 (before both K1-K2-r and K2-K1-r could occur)
381  174- gmulsg(0, 1+O(x)) -> O(x^0) instead of t_INT 0 as in gmul(gen_0, ...)
382
383  Added
384    1- add optional argument to sumdigits to specify the base
385    2- [libpari] bits_to_int,bits_to_u,binary_zv,binary_2k,binary_2k_nv
386BA  3- [GP] support for variadic GP functions (f(v[..])=expr)
387    4- nfeltval(K, x, pr, &y) now takes an optional 4th argument, containing
388       the part of x coprime to pr.
389BA  5- [libpari] New functions family RgXn: new functions RgXnV_red_shallow,
390       RgXn_powers, RgX_RgXnV_eval, RgX_RgXn_eval, RgXn_reverse, RgXn_inv,
391       RgXn_exp
392BA  6- [libpari] New functions Flv_inv
393BA  7- [libpari] New functions Flx_Flv_eval, Flv_Flm_polint,
394                               FpX_FpV_eval, FpV_FpM_polint
395WH  8- [libpari] New low-level functions get_Fl_inv, remll_pre
396BA  9- [libpari] New low-level functions Fl_sqr_pre, Fl_mul_pre, remlll_pre,
397       Fl_powu_pre, Fl_sqrt_pre, divll_pre, random_Fle_pre
398   10- [TeX documentation] new primitive \url (verbatim arg)
399   11- [libpari] New functions Fq_log, gener_Fq_local
400BA 12- GP functions bnrisgalois, bnrgaloismatrix, bnrgaloisapply
401LGr13- GP function polrootsreal
402   14- GP constant "oo" (for +/- infinity)
403   15- [libpari] New functions mkoo, mkmoo, inf_get_sign
404   16- [libpari] New functions ellbasechar, ec_f_evalx, ec_dfdx_evalQ,
405   ec_dfdy_evalQ, ec_2divpol_evalx, ec_half_deriv_2divpol_evalx, ec_h_evalx,
406   ec_dmFdy_evalQ, ec_bmodel
407HIL17- GP functions ellisogeny, ellisogenyapply
408   18- [libpari] New function RgX_coeff
409BA 19- [libpari] New functions Fl_halve, Fp_halve, Flx_halve, Fq_halve
410BA 20- [libpari] New functions vecsmallpermute, vec_append
411   21- GP functions qfsolve, qfparam [ adapted from Denis Simon's qfsolve.gp ]
412   22- [libpari] New function ZM_transmul
413   23- allow elliptic curves over number fields: ellinit([a1,...,a5], nf)
414   24- [libpari] ZX_sturm, ZX_sturmpart, RgX_sturmpart
415   25- [libpari] RgXQV_RgXQ_mul
416   26- thue / thueinit now also support (powers of) imaginary quadratic equations
417BA 27- [libpari] ZpX_ZpXQ_liftroot, ZpX_ZpXQ_liftroot_ea
418   28- [libpari] fuse_Z_factor
419   29- ellformalw, ellformalpoint, ellformaldifferential,
420       ellformallog, ellformalexp, ellnonsingularmultiple, ellpadicheight,
421       ellpadicheightmatrix, ellpadics2, ellpadiclog
422BA 30- [libpari] functions FpX_powu, FpX_digits, FpX_fromdigits,
423                 FpXQX_powu, FpXQX_digits, FpXQX_fromdigits, FqX_powu
424BA 31- GP functions ellpadicfrobenius, hyperellpadicfrobenius, hyperellcharpoly
425   32- [libpari] function RgX_normalize
426BA 33- much faster matfrobenius/minpoly(t_MAT)
427BA 34- prototype codes U and u for ulong
428   35- allow testing for BITS_IN_LONG in gprc
429   36- GP functions msinit, ellpadicL
430BA 37- [mingw] support for the alarm GP function
431BA 38- [libpari] functions Fl_sqrtl, Fl_sqrtl_pre
432   39- [libpari] function ZV_allpnqn
433   40- [libpari] function Qevproj_init, Qevproj_apply, Qevproj_apply_vecei
434   41- [libpari] functions G_ZGC_mul, G_ZG_mul, ZGC_G_mul, ZGC_Z_mul, ZG_G_mul,
435       ZG_Z_mul, ZG_add, ZG_mul, ZG_neg, ZG_normalize, ZG_sub,
436       ZGC_G_mul_inplace, ZGCs_add
437   42- [libpari] function kroui
438BA 43- GP function powers and libpari function gpowers
439   44- flag LLL_COMPATIBLE for LLL routines [ use 64-bit compatible accuracies
440       only ]
441BA 45- [libpari] functions FpX_Frobenius, FpX_matFrobenius, Flx_Frobenius,
442       Flx_matFrobenius, ZpX_Frobenius, F2x_Frobenius, F2x_matFrobenius
443   46- [libpari] function ser_isexactzero
444BA 47- [libpari] functions ZV_chinese, Z_ZV_mod, Z_nv_mod, nmV_chinese_center
445BA 48- GP function fromdigits
446BA 49- [libpari] functions Zp_sqrt, ZpXQ_sqrt
447   50- GP functions mscuspidal, mseisenstein, msnew, mssplit, msqexpansion,
448       mshecke, ellmsinit, msatkinlehner, msstar, mseval, mspathgens, mspathlog,
449       msissymbol, msfromcusp, msfromell
450BA 51- GP declaration localprec(), localbitprec()
451HIL52- [libpari] functions Fl_powers_pre, Fl_ellj_pre, Fl_elldisc_pre,
452                           Fl_elltwist_disc
453BA 53- [libpari] functions Fl_powers, Fp_powers, Fl_ellj, Fl_elldisc,
454                           Fl_ellj_to_a4a6, Flxq_ellj_to_a4a6
455BA 54- [libpari] functions FpXQX_div_by_X_x, FqX_div_by_X_x
456HIL55- [libpari] function Flx_oneroot_split, zxX_to_FlxX, RgXY_degreex
457BA 56- [libpari] functions Flv_inv_pre, Flv_inv_inplace, Flv_inv_pre_inplace
458HIL57- GP function ellissupersingular
459HIL58- [libpari] functions Fp_elljissupersingular, FpXQ_elljissupersingular
460BA 59- [libpari] functions umodsu, zx_to_Flx, corediscs
461   60- GP function qfbredsl2
462   61- [libpari] functions ell_is_integral, ellintegralmodel, ellQ_get_CM,
463   ellorder_Q, ellap_CM_fast, point_to_a4a6, point_to_a4a6, Fl_elltrace_CM,
464   Fle_changepoint, Fle_changepointinv, Fle_log
465   62- allow elltors and ellorder for E/K number field
466   63- GP function ellxn, ellisdivisible
467HIL64- [libpari] function family Flj_*
468   65- [libpari] idealprimedec_limit_f, idealprimedec_limit_norm
469   66- [libpari] modpr_get_p, modpr_get_T, modpr_get_pr
470   67- GP function nfsplitting
471HIL68- [libpari] functions Flv_dotproduct_pre, Flx_eval_pre,
472       Flx_eval_powers_pre, FlxY_eval_powers_pre, FlxY_evalx_powers_pre
473HIL69- GP functions polclass, polmodular
474BA 70- ellcard over fields of medium characteristic (SEA, Kedlaya, Satoh)
475   71- GP functions varhigher() / varlower() / variables()
476BA 72- GP function self() (for defining recursive anonymous functions)
477BA 73- GP function fold()
478   74- [libpari] hash_create_ulong, hash_create_str, hash_select,
479       hash_remove_select, hash_keys, hash_values
480   75- allow serlaplace(t_POL)
481   76- GP function ispseudoprimepower
482   77- [libpari] functions FpM_add, Flm_add, FpM_Fp_mul, RgMrow_zc_mul
483   78- [libpari] function nfembed, nfissquarefree
484   79- new binary flag to polcompositum: assume fields are linearly disjoint
485   80- GP function nfcompositum
486AP 81- [GP] associative and central simple algebra package, functions
487   algabsdim         algdisc           algisramified     algrandom
488   algadd            algdivl           algissemisimple   algrelmultable
489   algalgtobasis     algdivr           algissimple       algsimpledec
490   algaut            alghasse          algissplit        algsplittingdata
491   algb              alghassef         algleftmultable   algsplittingfield
492   algbasis          alghassei         algmul            algsplittingmatrix
493   algbasistoalg     algindex          algmultable       algsqr
494   algcenter         alginit           algneg            algsub
495   algcentralproj    alginv            algnorm           algsubalg
496   algchar           alginvbasis       algpoleval        algtableinit
497   algcharpoly       algisassociative  algpow            algtensor
498   algdecomposition  algiscommutative  algprimesubalg    algtrace
499   algdegree         algisdivision     algquotient       algtype
500   algdim            algisdivl         algradical
501                     algisinv          algramifiedplaces
502   82- [libpari] functions rnf_get_alpha, rnf_get_idealdisc, rnf_get_k
503   83- [libpari] functions ZC_is_ei, RgC_is_ei, ZM_Z_div, ZMV_to_FlmV, checkal
504   84- [libpari] functions cbrtr, cbrtr_abs
505   85- nfinit(rnf) now returns an nf structure associated to rnf.polabs
506   86- idealprimedec now allows an optional 3rd argument, to limit f(P/p)
507   87- [libpari] cb_pari_err_handle callback
508   88- [libpari] function nf_get_ramified_primes
509   89- Configure --with-runtime-perl option
510PB 90- Faster matrix multiplication over finite fields
511   91- allow content(t_VECSMALL)
512   92- [libpari] ZX_div_by_X_1
513HC 93- intnumgauss / intnumgaussinit: Gauss-Legendre quadrature
514LGr94- GP function sinc
515HC 95- contfracinit / contfraceval functions
516HC 96- limitnum / asympnum
517BA 97- [libpari] functions FlxV_prod, RgV_prod
518BA 98- GP function ellfromeqn
519HC 99- gammamellininv, gammamellininvasymp, gammamellininvinit
520BA 100- [libpari] RgX_Rg_eval_bk, RgX_RgV_eval, RgXV_RgV_eval
521   101- [libpari] RgX_cxeval
522HC 102- GP function zetamult
523PB 103- ZM_mul: Add Strassen-Winograd algorithm
524   104- GP functions sumnummonien/sumnummonieninit
525   105- [libpari] RgM_gram_schmidt, RgM_Babai
526BA 106- GP function cotanh
527   107- support sign(t_QUAD with positive discriminant)
528   108- comparison operators (<,>,<=,>=): support t_QUAD with *same* positive
529        discriminant
530BA 109- [libpari] Flv_prod, Flv_prod_pre
531BA 110- [libpari] Flv_neg, Flv_neg_inplace
532ED 111- mingw64 support
533BA 112- [parallel] new GP function parforvec
534BA 113- [libpari] Fl_addmul_pre, Fl_addmulmul_pre
535BA 114- [libpari] Fl_eltwist, Fp_elltwist, FpXQ_elltwist, Flxq_elltwist,
536                  F2xq_elltwist
537BA 115- GP functions elltwist, ellminimaltwist
538   116- [libpari] omegau, bigomegau
539VB 117- GP support for 0xffff and 0b1111 (input t_INT in binary or hex notation)
540BA 118- GP functions ellisomat
541HC 119- GP function ramanujantau
542PB 120- Speed up {Flx,FpX,FpXQX}_divrem_basecase for modulus of the form
543        x^n+O(x^m) with m small
544HC 121- GP function solvestep
545   122- [GP] New lfun family of functions
546   lfun                lfundiv             lfunmfspec
547   lfunabelianrelinit  lfunetaquo          lfunmul             lfuntheta
548   lfunan              lfunhardy           lfunorderzero       lfunthetainit
549   lfuncheckfeq        lfuninit            lfunqf              lfunzeros
550   lfunconductor       lfunlambda          lfunrootres         lfunartin
551   lfuncreate
552   123- [libpari] nfchecksigns, idealchineseinit
553JD 124- [libpari] gp_read_str_multiline
554BA 125- [libpari] Flx_nbfact_Frobenius, FpX_nbfact_Frobenius
555   126- extend idealchinese() to impose sign conditions at specified real
556        places [#1501]
557   127- [libpari] qfb_equal1, qfi_order, qfi_log, qfi_Shanks
558   128- [libpari] RgV_kill0
559BA 129- factorcantor: use Shoup-Kaltofen algorithm (much faster)
560BA 130- [libpari] FpX_dotproduct, Flx_dotproduct
561JK 131- FpXQ_minpoly/Flxq_minpoly: use Shoup algorithm (much faster), and do
562        not assume modulus is irreducible
563BA 132- [libpari] idealramfrobenius, idealfrobenius_aut, nfgaloispermtobasis
564   133- Allow ??lfun, ??Lmath, etc. [#1753]
565   134- [libpari] cyc_normalize, char_normalize, char_check, char_rootof1,
566        char_rootof1_u, bnrchar_primitive, bnrconductor_i
567   135- GP functions charker, bnrchar
568   136- bnrconductor(bnr, chi) as a shortcut for bnrconductor(bnr, Ker chi);
569        same for bnrisconductor, bnrdisc and bnrclassno
570   137- [libpari] real_1_bit(), grootsof1()
571PB 138- [libpari] Flm_sub, FpM_sub
572BA 138- [libpari] get_FpXQX_mod, get_FpXQX_degree, get_FpXQX_var,
573        FpXQX_get_red, FqX_get_red, random_FpXQX
574BA 139- [libpari] get_FlxqX_mod, get_FlxqX_degree, get_FlxqX_var,
575        FlxqX_get_red, random_FlxqX
576BA 140- Prototype code 'b' and default 'realbitprecision'
577   141- \pb shortcut [ manipulate realbitprecision ]
578BA 142- [GP] Map, mapget, mapput, mapisdefined, mapdelete
579BA 143- [GP] bitprecision
580BA 143- [arm64] add aarch64 assembly kernel
581   144- [libpari] ZV_snf_group, ZV_snfall
582   145- [libpari] znstar0 with Idealstar semantic; could be made available under
583        GP as default znstar, but current znstar/idealstar have incompatible
584        defaults. Called by idealstar(,N).
585   146- [GP] znconreychar, znconreyexp, znconreylog, znconreyconductor,
586        charorder, charconj
587BA 147- [GP] call (for calling closures).
588   148- [GP] optional flag to forell [ loop over isogeny classes ]
589   149- lfunthetacost, lfuncost
590SCh150- [mingw] timer: support for user time
591JD 151- [libpari] pari_completion interface for readline
592SCh152- [mingw+pthread]: default nbthreads support
593   153- teichmuller([p,n]) to cache all value at i + O(p^n), 1 <= i < p
594   154- optional argument 'tab' to teichmuller(x)
595   155- [GP] function chareval, charmul, chardiv, zncharinduce, zncharisodd
596   156- [libpari] Flm_intersect
597   157- [libpari] ggamma1m1
598   158- allow ispower(t_POLMOD representing a finite field element)
599   159- [libpari] Fq_ispower, FqX_ispower, RgX_deflate_order, Fq_to_FF,
600        FqX_to_FFX
601   160- [libpari] Z2_sqrt, divisorsu_fact, usumdiv_fact, usumdivk_fact
602   161- gphelp -detex: new flag -utf8 to allow utf-8 encoding in output, e.g.
603        render \'{e} as &eacute; (the actual eight-bit char) instead of 'e
604   162- GP function msfromhecke, msgetlevel, msgetweight, msgetsign
605BA 163- qfisominit: allow to pass the matrix of minimal vectors [#1656]
606   164- [libpari] GENtostr_raw
607BA 165- [libpari] FlxqX_halfgcd, FpXQX_halfgcd
608   166- issquare(t_POLMOD of t_INTMOD) assuming a finite field
609   167- RgXn_powu, RgXn_powu_i
610   168- [libpari] is_real_t, R_abs, R_abs_shallow
611BA 169- [libpari] F2xX, F2xqX, F2xqXQ family functions
612   170- GP functions rnfidealprimedec, rnfidealfactor
613BA 171- [libpari] get_FpX_algebra, get_FpXQ_algebra,  get_FpXQX_algebra,
614                  get_FlxqXQ_algebra, get_FpXQXQ_algebra, get_Rg_algebra
615   172- E/Qp: Added Mazur-Tate-Teitelbaum's L invariant to E.tate
616BA 173- [libpari] ZpXQ_div, ZpXQX_divrem, ZpXQX_digits
617   174- [libpari] ZX_deflate_max, ZX_deflate_order
618   175- [libpari] idealinv_HNF, idealinv_HNF_Z
619   176- [libpari] QM_charpoly_ZX_bound
620BA 177- libpari support for low-res plot()
621   178- GP function serprec
622   179- ellap(E, p), ellcard(E,p) for E/K number field, and p maximal ideal
623   180- [libpari] function sertoser
624   181- ellan(E, n) for E/K number field
625   182- [libpari] function gisexactzero
626BA 183- GP function ellsea
627   183- [libpari] nfsub, Rg_RgC_sub, Rg_RgC_sub, Z_ZC_sub
628   184- [libpari] zkchinese, zkchinese1, zkchineseinit
629   185- [libpari] vecsmall_reverse
630   186- [libpari] Z_ppio, Z_ppgle, Z_cba
631   187- ellminimalmodel over number fields
632   188- [libpari] FpX_factor_squarefree, Flx_factor_squarefree
633   189- [libpari] checknf_i, checkbnf_i, checkbid_i, checkrnf_i
634
635  Changed
636    1- make log(+/-I) return (+/-)Pi/2*I with gen_0 real part [#1556]
637BA  2- [libpari] rename RgX_mullow -> RgXn_mul, RgX_sqrlow -> RgXn_sqr,
638    RgX_modXn_eval -> RgXn_eval, RgX_modXn_shallow-> RgXn_red_shallow
639    3- change rnfnormgroup to return [;] instead of raising an error whenever
640    it detects a problem (modulus not a multiple of the conductor, non-abelian
641    extension...): this is a BIB with undefined result, but returning a
642    sentinel is more useful *if* we notice it.
643    4- [gp] uniformize errors from the % history operator (SYNTAX->MISC) [#1553]
644    5- t_STR used to compare as larger than any real number via < or >
645       operators. Such a comparison now raises an exception.
646    6- valuation(0,p), nfeltval(nf,0,pr), idealval(nf,0) now all return +oo
647       poldegree(0) now returns -oo
648BA  7- rootpadicfast renamed ZpX_roots
649    8- nfinit: switch from sturm() to ZX_sturm() [Uspensky], and from polroots
650       to polrootsreal (totally real fields). polsturm() now uses Uspensky in
651       most cases.
652    9- polsturm interface change
653         - polsturm(T, a, b) is still supported but deprecated, use
654           polsturm(T, [a,b])
655         - polsturm(T, a, b) used to return the number of roots in ]a,b],
656           we now use the closed interval [a,b]: more intuitive given the new
657           syntax, and compatible with polrootsreal()
658BA 10- [libpari] mkintn: handles arguments as 32bit unsigned int
659   11- nfdisc, nfbasis: no longer support the old (T,flag,fa) arguments.
660       Use the generic [T,listP] syntax (see 2.6.0-C105)
661   12- factorpadic: no longer support the deprecated (no-op) 'flag' argument
662   13- thue() sort solutions lexicographically
663   14- thueinit tnf format: always include a bnf (also when r1=0), to allow
664       checking for norm equation solutions first: e.g. thue(x^4+1,7*10^80)
665       becomes instantaneous instead of overflowing
666BA 15- Flx_pow renamed to Flx_powu
667   16- optional flag to ellheight is gone (useless)
668   17- ellbil(E,P,Q) is now deprecated, use ellheight(E,P,Q)
669   18- [libpari] rename ghell->ellheight, mathell->ellheightmatrix
670BA 19- Rg_to_RgV renamed to Rg_to_RgC, RgX_to_RgV renamed to RgX_to_RgC
671   20- ellL1(e, r): make r optional (default value = 0)
672BA 21- powruvec is replaced by powersr
673   22- [libpari] merge_factor no longer keeps entries with exponent 0
674Pmo23- More robust and much faster ellL1 and ellanalyticrank. The condition
675       ord(L_E,s=1) <= r in ellL1(E,r) is no longer necessary.
676   24- renamed ZV_gcdext -> ZV_extgcd for consistency with other gcdext methods
677BA 25- setrand now return a (huge) integer instead of a vecsmall
678   26- unify 32/64 bit random generators. Probabilistic algorithm should now
679       behave identically on all architecture, provided they do not involve
680       the floating point kernel
681   28- unify 32/64 bit tests
682   29- move extern(), externstr(), readstr() and system() to the generic
683       part of GP language (was gp-specific). This allows to use them
684       in parallel mode and under gp2c [#1593]
685   30- made cmprr, cmpri, equalrr consistent with == semantic. We now have,
686       e.g., 0e1==1.0 and (0e1 < 1) = 0 (since 1-0e1 evaluates to 0e1)
687   31- [libpari] comment out function names obsoleted during the 2.3.* cycle
688       (2007). See PARI_OLD_NAMES.
689   32- default 'strictmatch' has been obsoleted. It is now a no-op.
690   33- default 'compatible' has been obsoleted. It is now a no-op.
691   34- zeta(odd integer): use Borwein's "sumalt" algorithm (10 times faster
692       than previous at \p1000)
693   35- elltors flags are now deprecated (and ignored, removed corresponding
694       code)
695   36- add optional flag to nfhnf / nfsnf: return transformation matrices
696   37- nfroots/nffactor: factor polynomials in Q[X] over Q first
697BA 38- much faster polresultant over Z
698   39- GP and libpari polynomial variables of arbitrary priority can now be
699       created: 'x' is no longer guaranteed to have maximal priority,
700       nor MAXVARN to have minimal priority.
701   40- GP: polynomial variable 'y' is now always defined on startup,
702       with priority lower than 'x'
703   41- Allow ffgen([p,f]) in addition to ffgen(p^f) and ffgen(T*Mod(1,p))
704   42- thue() needed to compute to huge accuracies when regulator was large
705       E.g. t=thueinit(15*x^3+8*x^2-95*x+24,1); thue(t,8)
706   43- rnf structures may now contain a full absolute nf struct ('nfabs')
707   44- matkerint: replace underlying LLL algorithm by mathnf
708       Simple bench: M=matrix(50,55,i,j,random(10^5)); \\ 200 times faster
709   45- allow t_VECSMALL vector exponents in gen_factorback
710   47- [libpari] rename 'define' PI -> M_PI and use proper constant
711   48- no longer print 0 t_POLMOD as "0", bug e.g. Mod(0,x). Uniformize code
712       and behaviour with t_INTMOD.
713   49- warn when coercing quotient rings when 'debug' non-zero
714      ? \g1
715      ? Mod(1,2)+Mod(1,3)
716        *** _+_: Warning: coercing quotient rings; moduli 2 and 3 -> 1.
717   50- content([]) -> 0 [ was 1 ]
718   51- [] / 0 => div. by 0. Now returns [] (as [] \ 0 already did)
719LGr52- use GRH-guaranteed bounds in bnfinit for residue estimate
720   53- Configure: avoid inserting unnecessary -L arguments in link line
721   54- genus2red: change syntax. Allow either genus2red(P) or genus2red([P,Q])
722       instead of mandatory Q (was: genus2red(Q,P) with Q almost always 0).
723       Allow uniformization with hyperellcharpoly
724   55- old functions from gp-1.39.15 no longer loaded into an "entree" table,
725       no longer complete specially "whatnow" arguments; remove compat.c and
726       most of gp_init.c
727BA 56- Rename row_Flm -> Flm_row, row_zm -> zm_row
728   57- rewrote intnum / intnuminit routines
729   58- nucomp now takes L = floor(|D|^(1/4)) as a 3rd argument. Former
730       nucomp(x,n) is nucomp(x,n,NULL).
731BA 59- divide_conquer_assoc renamed to gen_product
732   60- sumnum algorithm (replace Abel-Plana by Euler-Mac Laurin). Changed
733       the interface !
734BA 61- [libpari] concat, concat1 renamed to gconcat, gconcat1
735   62- rnfconductor now returns [cond, bnr, H] instead of [cond, bnr.clgp, H]
736   63- nfrootsof1(), more stringent ramification tests: looking
737       for a subfield Q(zeta_p^k) is now faster.
738   64- intnumromb to use realbitprecision
739   65- idealstar / ideallog: allow omitting 'nf' argument (for nf = Q; use
740       znstar and znlog internally)
741   66- improved p-adic log at high accuracy (O(sqrt(padicprec)) algorithm
742       instead of O(padicprec))
743   67- allow genus2red to handle (rational) non integral models
744KR 68- new version of misc/xgp
745BA 69- rename Flc_Fl_mul -> Flv_Fl_mul, Flc_Fl_div -> Flv_Fl_div,
746       RgC_to_Flc to RgV_to_Flv, F2c_to_Flc to F2v_to_Flv
747   70- rename leading_term -> leading_coeff, constant_term -> constant_coeff
748   71- improve gamma(a+O(x))
749BA 72- Z_to_Flx now takes a shifted variable number, as Fl_to_Flx.
750BA 73- improve hash_GEN to reduce # of collisions (change glue)
751   74- added explicit ways to attach an absolute nf to a rnf structure,
752       allowing rnf functions to return objects in standard notation (e.g.
753       ideals in HNF instead of as a vector of t_POLMOD generators).
754       Add optional flag to rnfeltabstorel, rnfeltdown, rnfeltup,
755       rnfidealreltoabs, rnfinit
756BA 75- rename FlxqX_pow to FlxqX_powu
757   76- polredabs([T,listP]) no longer returns 0 if the attached order cannot
758       be proven to be maximal: it computes the expected canonical polynomial
759       in all cases, which can be very slow. Always use polredbest() if you
760       don't require a canonical output.
761   77- polredabs(T) now internally uses the polredabs([T,listP]) strategy,
762       making it much faster in favourable cases, while still always returning
763       a canonical defining polynomial.
764   78- precision(0), bitprecision(0), padicprec(0,p) now all return +oo
765       under GP [ used to return LONG_MAX ]
766   79- meaning of precision(x, n) no longer depends on the type of x: it now
767       always refers to floating point precision. Before the change:
768       precision([O(2),O(3),O(x)], 10) -> [O(2^10),O(3^10),O(x^10)]
769   80- infinite slopes of newtonpoly replaced by "+oo" (instead of 2^63-1)
770   81- rename anell -> ellan, anellsmall -> ellanQ_zv
771BA 82- Fp_ellcard_SEA/Fq_ellcard_SEA meaning of flag has changed.
772   83- renamed absi_cmp -> abscmpii, absr_cmp -> abscmprr,
773       absi_equal -> absequalii, absi_factor -> absZ_factor, absi_factor_limit
774       -> absZ_factor_limit, equaliu -> absequaliu, equalui -> absequalui,
775      cmpiu -> abscmpiu, cmpui -> abscmpui
776
777Removed
778   1- deprecated functions nfbasis0, nfdisc0, factorpadic0
779   2- deprecated function manage_var
780   3- useless function intnuminitgen (not very useful and impossible to use
781      reliably together with intnum with boundary conditions)
782   4- useless function intnumstep: instead of intnum(a,b, intnumstep()+m),
783      use intnum(a,b,m).
784   5- partially implemented functions intfouriercos / intfouriersin /
785      intfourierexp / intlaplaceinv / intmellininv / intmellinvshort: use
786      intnum (possibly intfuncinit). Make sure to indicate oscillating behaviour
787      when function decrease slowly at oo
788   6- optional flag to intfuncinit
789BA 7- divide_conquer_prod: use gen_product instead
790   8- useless function sumnumalt
791   9- badly implemented functions zetakinit / zetak: the interface did not
792      make sense (it is impossible to initialize for Dedekind zeta without
793      specifying a domain where the function is to be evaluated). Closest
794      equivalent to zetakinit:
795        L = lfuninit(x^2+1, [c, w, h]);
796      to compute zeta_Q(i)(s) for |Re(s - c)| < w, |Im(s)| < h. Then
797        lfun(L, s)
798      as an analog to zetak(). Or directly lfun(x^2+1, s) if a single value
799      is needed. [#368, #1647]
800BA10- [libpari] FpXQX_rem_Barrett, FpXQX_divrem_Barrett: use FpXQX_get_red
801BA11- [libpari] FlxqX_rem_Barrett: use FlxqX_get_red
802BA12- [libpari] RgX_RgM_eval_col
803