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 é (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