Bill Allombert on Sat, 04 Jan 2025 18:45:10 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

PARI 2.18.0


Dear PARI developers,

In anticipation of the PARI atelier next week in Paris,
I have released a snapshot of the development branch 2.18 as pari 2.18.0.alpha,
see <https://pari.math.u-bordeaux.fr/download.html>

Cheers,
Bill

P.S.: the changelog:

Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
Done for version 2.18.0 (released 04/01/2025):
  Fixed
BA   1- incorrect GP proto for ellpadicfrobenius, mftocoset, qfcvp [#2575]
AP   2- fix idealismaximal for ideal p*ZK [Sage issue 38766]
AP   3- segfault in algsubalg when input is linearly dependent
AP   4- fix alglatinter trivial intersection (misuse of matkermod(,1))
BA   5- ellrank could try many more curves than requested by effort [#2577]
     6- wrong result in issquare(Mod(a, composite)) [#2578]
     7- gener_FpXQ_local(t_POL of degre 1) -> oo loop [#2581]
     8- GC error when squaring integer 2x2 matrices [#2582]
AP   9- algebras: fix splitting field for CSA, algtomatrix / algnorm / algtrace
        / algcharpoly were sometimes wrong by an automorphism of the center.
BA  10- paridecl.h could conflict with complex.h [#2583]
    11- forprime(p=524288,1048576,1) -> crash [#2584]
        forprime(p=1048607,1048617,1) -> oo loop
    12- printf("%10.6f", tiny rational) -> undefined result [#2576]
AP  13- alginit(nf,[a,b]) was only allowing a,b integral over the power basis
        instead of arbitrary algebraic integers.
HC  14- zeta not continous around 1/2+3000*I [#2585]
    15- missing type checks for change of variables in ellchangecurve,
        ellchangepoint, ellchangepointinv
BA  16- control-C could lead to segfault later [#2496]
    17- nfmodpr at deg 1 prime: "wrong" invisible variable in t_FFELT [#2580]
    18- [libpari] missing normalization in FpX_mulu (when p is not prime)
HC  19- mfsymboleval could return wrong sign [#2586]
    20- missing type checks in factorback [#2590]
BA  21- charpoly(Mod(x,x^20+1/2)) -> crash [#2591]
    22- psi(x close to a nonpositive integer) -> error
    23- rnf functions which assume polynomial with integral coeffs (rnfinit,
        rnfpseudobasis, rnfdisc, rnfdedekind) were missing relevant sanity
        checks
BA  24- polresultant(t_POL with RFRAC coeffs) could be incorrect [#2588]
BA  25- qflll(non-maximal rank) -> potential oo-loop [#2587]

  Added
AP   1- new GP function algnewprec
BA   2- [loongarch64] add loongarch64 assembly kernel
BA   3- [libpari] closuretoinl
BA   4- [libpari] using closuretoinl, closures can be made usable with E/I
        GP prototype codes
BA   5- quadclassunit now uses MPQS for negative discriminants.
AP   6- [libpari] FqC_red, FqM_red, FqC_to_FFC, FqM_to_FFM
     7- [libpari] pr_anti_uniformizer
AP   8- new GP functions algeltfromnf, algmodprinit, algmodpr, algmodprlift,
        algeichlerbasis
     9- [libpari] checkellpt_i
AP  10- new GP functions algquattobasis, algbasistoquat, algisquatalg
BA  11- new GP functions ellchangecompose, ellchangeinvert
HC  12- zetahurwitz(t_PADIC,,d): use dth-power of the Teichmuller character
BA  13- [libpari] ZVV_nv_mod_tree, ZVV_to_FlvV
MTB 14- gen_order: implement faster recursive algorithm
MTB 15- FpXQ_sqrt: implement fast algorithm
BA  16- [libpari] F2xqX_Frobenius, F2xqX_nbroots, FF_nbroots
    17- core, ispowerfu, moebius: implement fast trial division
AP  18- new GP function alginvol

  Changed
BA   1- idealfactorback, rnfisnorminit: flag is now a long to match GP proto.
     2- polsturm obsolete undocumented form polsturm(pol, a, b) where a or b
        could be omitted is now disabled. Use polsturm(pol, [a,b]), where
        a = -oo and b = +oo can be used instead of an omitted argument.
     3- undocumented deprecated 3-arguments form of deprecated function
        polred is now disabled. Use polredbest !
     4- [libpari] deprecated function polred0 implementing deprecated polred
        function now accepts only two arguments: the 3 argument form
        polred0(x, flag, fa = NULL) is no longer possible. Use
          polred0(mkvec2(x, gel(fa,1)), flag)
        instead. And preferably polredbest!
AP   5- allow algpoleval(al, basis form, relative polynomial).
AP   6- alginit: construction from Hasse invariants now allows a shortcut in the
        quaternion case, giving only the ramification set.
AP   7- alginit(nf,[a,b]) now allows a to be a square in nf.
     8- nfmodpr now returns a t_INTMOD when the residue field is Z/pZ
     9- [libpari] oncurve renamed ellisoncurve_i
    10- ellchangepoint / ellchangepointinv: now require the elliptic curve as
        first argument (to indicate the domain over which the transformation
        is performed); backward compatibility is maintained for now:
        ellchangepoint(P, urst) still works when it used to do; but
        ellchangepoint(E, P, urst) now works also when E, P, urst are defined
        over a number field with components in basis form
    11- renamed ZC_hnfremdiv -> ZC_hnfdivrem
    12- factorint: after trial division, never use rho first. Start by squfof
        then rho.

  Removed
BA   1- GP function trap, use iferr instead.
BA   2- GP functions listcreate, listkill, use L = List() instead.