/usr/share/doc/pari-gp/CHANGES-2.8.gz
Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
Done for version 2.9.0 (released 1/11/2016):
Fixed
1- idealappr: allow flag for backward compatibility
2- nfisisom(x,x^0) -> SEGV
BA 3- galoisgetpol: fix crash if some files are missing
BA 4- [libpari] fix support for PARI_OLD_NAMES
Done for version 2.8.1 (released 23/10/2016):
Fixed
1- nfroots(non-monic t_POL) => wrong result [#1841] [from 2.8.0]
2- crash on BIB in ellpointtoz(t_PADIC) [#1840]
3- nfisideal(nfinit(x^2+1),[1,0;0,2]) -> 1 instead of 0
4- intnuminit(-oo,oo,1) -> error [#1847]
5- idealstar([f_0,f_oo]) for f_oo t_VECSMALL (place selection) didn't work
6- msinit objects could not be saved to file then read back in [from 2.8.0]
7- wrong value for bnrrootnumber for non-primitive characters [#1848]
8- allow znstar(N,flag) for idealstar(,N,flag)
9- allow znlog(x,G) for G = znstar(N), instead of ideallog(,x,G),
for DL wrt. G.gen; in addition to traditional znlog(x,g), where an
arbitrary generator g is specified
10- e=ellinit([1,-1,1,98,126],O(5^10)); ellpointtoz(e,[1,14]) -> div. by 0
11- ellpointtoz(E / Qp, P) was not reduced mod q^Z
BA 12- [breakloop] changes done in the first-level breakloop were lost when
leaving the second-level breakloop.
13- polinterpolate could create illegal objects [#1837] (test-case by PB)
BA 14- [libpari] FqX_nbfact did not work
15- incorrect change of variable in elllocalred over a number field for
places dividing 6 [from 2.8.0]
16- contfraceval([[],[]],1) -> SEGV [from 2.8.0]
17- agm(1.0, 1.0*I + x + O(x^200)) -> oo loop [#1654]
18- primepi(2750160) -> crash [#1855]
19- polinterpolate([],[],Mod(1,3)) => 0 instead of Mod(0,3)
20- subst(Pol(0),x,Mod(1,3)) => 0 instead of Mod(0,3)
21- subst(Pol(1),x,Mod(1,3)) => 1 instead of Mod(1,3)
22- e=znconreyexp(idealstar(,N),) could give a result with (e,N) = 2 when
N = 2 (mod 4) [from 2.8.0]
23- idealprincipalunits(,,1) not supported [ concat error ] [from 2.8.0]
24- stack corruption in pollardbrent() at \g4 [#1858]
BA 25- fflog could crash in char 2. [from 2.8.0]
JD 26- is_universal_constant() made (possibly wrong) assumptions about memory
layout (gen_0 < ghalf)
BA 27- lfundiv(L1,L2): division by 0 if L2[6] (rootno) is 0.
28- inconsistent thresholds for zeta(2*n); e.g. at \p100000, zeta(22934)
was much faster than zeta(22936)
BA 29- [pthread] fix race conditions that caused memory corruption
30- rare SEGV in bnfisprincipal
Added
1- permtonum: allow t_VECSMALL input
2- [libpari] Z_to_perm, perm_to_Z
3- [libpari] checkprid_i, is_nf_factor, is_nf_extfactor
4- extend ellissupersingular for E/nf
5- added a tag Obsolete: to the RFC822 description system (pari.desc)
6- new GP functions nfmodpr, nfmodprlift
7- [libpari] get_arith_Z, get_arith_ZZM
8- [libpari] Mod2, Mod4, Mod8, Mod16, Mod32, Mod64, umodi2n
9- [libpari] logint, logintall
10- [libpari] zk_inv, zkmultable_capZ, zkmultable_inv, nfC_multable_mul,
zkC_multable_mul
11- [libpari] Idealstarprk
12- [libpari] ZpX_monic_factor
13- [libpari] nf_to_Fp_coprime
14- [libpari] idealprod, idealHNF_Z_factor
15- [libpari] rnfcomplete, rnf_build_nfabs, bnf_build_cycgen,
bnf_build_units, bnf_build_matalpha
16- [libpari] rnf_zkabs
17- [libpari] get_nf_field (black box field arithmetic over a number
field nf), nfM_det, nfM_inv, nfM_mul, nfM_nfC_mul
18- [libpari] bnftestprimes
19- [libpari] upr_norm
20- [libpari] bid_get_fact, bid_get_ind, bid_get_sarch, bid_get_sprk
21- [libpari] qfbforms
22- [libpari] nfroots_if_split
23- [libpari] nfmaxord_to_nf, nfinit_basic, nfinit_complete,
idealprimedec_kummer, nf_deg1_prime
24- [libpari] ZNstar, znstar0, znlog0
25- GP function znchartokronecker
26- [libpari] ser_inv
27- allow ellztopoint for E/Qp
BA 28- [libpari] F2x_factor_squarefree, F2xqX_factor, FlxqX_factor
BA 29- [libpari] FlxXC_to_F2xXC, F2xXC_to_ZXXC
30- [libpari] pr_uniformizer, prV_lcm_capZ, pr_inv, pr_inv_p, pr_basis_perm
31- [libpari] cmp_padic
32- [libpari] ZV_snf_trunc, ZM_hnfmodall_i, ZM_hnfall_i, ZC_Z_div
33- [libpari] uisprime_101, uisprime_661
34- [libpari] lift_shallow
35- [libpari] rowsplice
36- GP functions bnflogef, bnflog, bnflogdegree, nfislocalpower,
rnfislocalcyclo
37- [libpari] varnmin, varnmax
38- allow ellglobalred for E over a number field
BA 39- [libpari] FpXQX_split_part
BA 40- [libpari] ZpXQX_roots, ZqX_roots, ZqX_liftfact, ZqX_liftroot,
Zq_sqrtnlift
41- [libpari] hash_dbg
42- [libpari] Qdivii, ceildivuu
43- GP function ellintegralmodel
44- [libpari] ZM_hnf_knapsack, hnf_invscale
45- [libpari] pol_xn, pol_xnall, retmkrfrac
46- allow lindep(vector of t_VEC), lindep(vector of t_COL) [#1857]
47- [libpari] famat_pow_shallow, famat_mulpow_shallow
48- [libpari] modRr_safe
49- [libpari] Z_ppo, u_ppo
Changed
1- remove useless flag in idealappr: directly allow factorization
2- [libpari] idealappr0 is now obsolete: use idealappr
3- replace qfbil(x,y,{q}) by qfeval({q},x,y) and qfnorm(x,{q}) by
qfeval({q},x): it makes more sense to have q first, and a single
function for qf+polar form (as in all other qf-like routines:
ellheight, etc.)
4- functions nfeltdivmodpr, nfeltmulmodpr, nfeltpowmodpr, nfeltreducemodpr,
nfkermodpr, nfsolvemodpr are obsolete. Use nfmodpr, work in the finite
field, then lift back using nfmodprlift.
5- split off historical refcard in submodules basic, ell, lfun, mf, nf
6- rewrite nfeltinv / nfeltdiv (use mult. table rather than polmod
representation)
7- idealred algorithm (find small y in I^(-1), not in I)
8- bnf format (allow dynamically adding units): old bnfs will be detected
as invalid. Dirty trick to force conversion: bnf[10]=vector(3);
9- nfelt* functions may now return scalars (t_INT/t_FRAC) in addition to
t_COL on nf.zk basis.
10- remove flag = 2 in nfgaloisconj (slow, unreliable, obsolete for 15 years)
11- bnfcertify(K): use automorphisms (speedup roughly #Aut_Q(K))
12- idealstar format, to access data more conveniently (and avoid
recomputations): old bid and bnr structures from versions up to 2.8.0
are now invalid
13- narchstar output: include finf in output
14- set_sign_mod_divisor prototype: module is now useless (implicitly
contained in sarch argument)
15- [libpari] removed discrayabs, discrayabscond, discrayrel,
discrayrelcond, discrayabslistlong: obsoleted since 2.0
16- gcd(t_VEC/t_COL/t_MAT, ...) is now forbidden, same for lcm
17- E/Qp: add sequence of isogenous curves to structure (converges to the
singular E_oo) => much faster ellpointtoz
BA 18- ZpX_liftfact no longer handles extensions of Qp, use ZqX_liftfact
19- char_rootof1 renamed to rootsof1_cx, char_rootof1_u -> rootsof1u_cx
20- gp --test: consider that the session is not interactive
BA 21- [libpari] rename listcreate to mklist
22- [libpari] rename idealinv_HNF -> idealHNF_inv, idealinv_HNF_Z
-> idealHNF_inv, idealmul_HNF -> idealHNF_mul
23- [libpari] made famat_mul_shallow a true equivalent of famat_mul
24- move 'install' tests from test-program to test-install target
25- allow normlp(v, +oo)
26- [documentation] removed .ps files (use dvips -o if you need them); install dvis
Done for version 2.8.0 (released 12/08/2016):
Fixed
1- make install fails on OS/X: ln -s libpari.dylib libpari.dylib fails
2- Q_pvalrem(t_FRAC) => wrong result
3- [] == 0 but []~ != 0 (now []~ == 0 as well) [#1560]
BA 4- test-kernel did not work when using --mt=pthread
BA 5- ellheegner was using too much memory in some case
6- ellap can overflow on 32-bit machine [#1558]
ellap(ellinit([582304190,64196421]),2147438927) -> overflow
ellap(ellinit([-1137195,489565862]),2038074751) -> wrong result
7- nfhilbert(K,x,y, P above 2) could give wrong results [#1561]
8- rnfkummer sometimes failed to return an answer: error or oo loop.
Relied on exhaustive enumeration of an Fp-vector space, some of
whose elements would trigger an error. Replace by Fp-linear algebra
that directly picks the correct line (O(d^3) algo instead of O(p^d),
and no failures). Only compute the defining poly for the right element.
XR 9- padicfields(huge p, d) was very slow [even though ramification is tame]
10- gcd(1/2, 1+I*1.) -> SEGV [#1563], 2.5.5 returned the wrong answer 1/2
11- mathnf(t_VEC) could corrupt input (change sign)
12- [libpari] RgM_transmul did not work
13- [libpari] Fq_issquare didn't support T=NULL
14- [libpari] nfpow_u didn't handle non-integral rational numbers
15- eint1(0) -> stack overflow [#1568]
16- liftint(List([0])) -> gerepile bug
17- factorint(n,flag): flag was ignored when n fit into a long
18- factor(n,lim): lim was ignored when n fit into a long
19- nfrootsQ(t_POL with leading coeff -1) could miss some solutions, e.g.
nfroots(,-y^2-24476*y+119814917) -> [] instead of [-28657,4181]
20- precprime(1) -> invalid t_INT [#1576]
21- gaffsg(0, t_PADIC): wrong valuation
22- thue(f^e*g, ...), e even, (f,g)=1 missed solutions such that f<0
23- faster znlog when p-1 has only smallish prime factors.
24- (t_INTMOD with word-sized modulus)^(huge negative power) wrong [#1584]
25- (gp -p N) or (primelimit=N in gprc_ for N >= 436273290 resulted in an
incorrect primetable. N.B. Such commands are now useless: needed primes
are produced dynamically anyway.
26- monomial(exact zero, d, v) returned an invalid t_POL / t_RFRAC
27- contfracpnqn(v, n) returned partial quotients p[-1]/q[-1] ...
p[n-1]/q[n-1], instead of the documented p[0]/q[0] ... p[n]/q[n] [#1580]
28- isprime(N, 0) was often slower than either of isprime(N, 1 or 2)
29- factor((3+4*I)/25) -> factor 2+I had 0 exponent [#1586]
30- made qfbclassno more reliable (fixes all counter examples in [#1411])
BA 31- iferr() could crash if some component of the t_ERROR were clones.
32- nffactor() could overflow the stack when default accuracy too low: e.g.
nffactor(y^2-22, x^2+926246528884912528275985458927067632*y-4344481316563541186659879867597013188)
33- some elliptic curve functions accepted (elladd, ellmul) a Weierstrass
5-uple [a1,a2,a3,a4,a6] instead of an ell structure. No longer.
Now only ellinit and ellchangecurve allow this syntax.
34- incorrect rounding in mulrr/divrr for one-word precision reals.
BA 35- multiif did not handle correctly return() in conditions [#1590]
36- [0..5] -> [0,0,0,0,0] on some architectures
37- is_gener_Fp could return wrong results
38- Fq_sqrtn(t_INT,..,&zeta) could return a wrong root of 1
39- bnfinit: SEGV due to precision issues [#1592]
40- zm_zc_mul only worked for square zm matrices
41- genus2red(0,27*x^5+97*x^4+118*x^3+60*x^2+13*x+1,3) -> bug msg [#1596]
42- [gphelp] oo loop when $COLUMNS too small [#1594]
43- genus2red(x,-x^6-3*x^4-10*x^2-1,3) -> impossible inverse [#1597]
44- factoru(1) returned a t_MAT instead of the expected "matsmall" [#1598]
45- FpM_charpoly wrong in small characteristic [#1602]
46- Ser(Mod(0,2)) => incorrect object [#1587]
47- Ser(Mod(1,2)*x^2,,4) => incorrect precision [#1587]
48- Ser(x,v,prec < 0) => crash [#1587]
49- The t_SER Mod(0,2) + O(x^n) was not handled properly [precision and
valuation would change unexpectedly] [#1587]
50- when compatible = 3;