Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Testing latest pari + WASM + node.js... and it works?! Wow.

28487 views
License: GPL3
ubuntu2004
Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
Done for version 2.14.0 (released ??/??/2020):
  Fixed
     1- slowdown in zeta (e.g. zeta(Pi) at \p500)
     2- GC error in idealinv [#2258]
     3- qfminim inefficiency (initial bound from non-LLL-reduced matrix)
     4- mfshimura in weight 3/2 => oo loop
     5- zetahurwitz(s, huge x) => overflow or very slow
     6- matsolve([1,1,1/2; 1,0,1/2; 2,1,0], [-1;1;-1]) -> SEGV [#2261]
     7- qfminim(Mat(1),,,2) -> precision error [#2262]
     8- subst(p, v, t_SER) very slow if p contains many variables [#2264] 9- mfsymboleval for trivial path returned 0 instead of a vector of 0s
        when f has multiple embeddings [#2260]
    10- 2^(1 + O(3^4)) -> type error
    11- Zn_quad_roots(8,0,-1) to compute roots of x^2-1 mod 8 -> [4,[1,3]]
        (1 or 3 mod 4) instead of the expected [2,[1]] (1 mod 2) [#2265]
    12- tan(1+10^20*I) -> overflow (same for cotan and psi)
BA  13- Mod(2,3)^1000000000000000000001 -> Mod(-1,3) [#2266]
    14- subst(O(y) + x, x, (1 - y + O(y^2))*x + O(x^2)) -> SEGV [#2267]
    15- (Mod(0,3) + x) + O(x^2) -> x + O(x^2)  [now Mod(1,3)*x + O(x^2)]
    16- precision too low for units in mfgaloisprojrep
    17- missing GC at the end of RgXn_inv
    18- (-1)^(1/3) -> -1 instead of exp(log(-1)/3)
    19- mfeisenstein(k, trivial characters mod N > 1) not handled correctly
BA  20- missing GC in qfsolve
    21- missing GC in nfeltval + better algorithm when valuation is huge
    22- rnfidealup(, non-integral ideal) -> division by 0
    23- memory leak in ellheight
    24- memory leak in bnfinit
    25- zeta(-2 + O(x)) => division by 0
    26- nfeltdiv(nfinit(x^2+1), 0, 1+x/2) -> SEGV [#2277]
    27- numerical instability in polinterpolate [#2278]
    28- znchargauss(g,chi,0) -> oo loop
    29- bnflog(bnr, ...) -> SEGV
    30- elliptic functions: incorrect reduction of z/w1 mod [1,tau] =>
        catastrophic cancellation
    31- powcx(x, t_COMPLEX with 0 imaginary part) -> crash
    32- nfsubfields(t_POL in other var than x,,1) -> SEGV
    33- extra terms in power t_SER substitutions [#2281]
        f=1+4*t^2+36*t^4+O(t^6); g=q-4*q^3+14*q^5+O(q^7); subst(f,t,g)
        -> spurious extra term -400*q^6
    34- k=bnfinit(quadpoly(-2923,a)); bnrclassfield(k,3) -> SEGV [#2280]
BA  35- rnfdisc mishandled polynomials with denominators [#2284]
BA  36- elltamagawa(ellinit([-1456/243,93184/19683])) -> wrong result
    37- mfsearch would sometimes miss the trivial form
    38- typo in allh [affects ECPP tunings]
HC  39- mfisetaquo(mffrometaquo([1,12;193,12])) -> 0
    40- polroots(1.E-47*t^6 + 1.E-47*t^5 + 4.E-46*t^4) -> bug in type [#2286]
    41- ceil(quadgen(5)) -> 1 instead of 0 [#2288]
    42- floor(Mod(0,3)*quadgen(5)) -> crash
    43- padicappr(x^2+1, 1/3+O(3)) -> missing valuation and type checks
    44- padicappr(x^2+25,5+O(5^2)) -> [O(5),O(5)] instead of
        [2*5+O(5^2),3*5+O(5^2)]
    45- wrong ispower(t_RFRAC) and issquare(t_RFRAC, &z) [#2289]
    46- slow series substitution if valuation huge
        f=t^50000+O(t^50001); g=q*Ser(vector(50000,i,1),q); h=subst(f,t,g)
    47- 1+O(x)==O(x)
    48- cmp() would use possibly uninitialized bits in t_POL codewords
BA  49- qfauto([[1,0;0,1],[0,0;1,0]]) -> SEGV
    50- bnfsunit(...)[4] (the S-regulator) did not correspond to its
        definition in the documentation [ was using log(p) instead of
        log(Norm P)) for P in S above p ]

  Added
HC   1- new GP function eulerreal
BA   2- fplll: fast, dpe and heuristic variants
     3- dirpowerssum: allow a completely multiplicative function
     4- [libpari] atanhuu, atanhui, powcx, powcx_prec
     5- new GP function lfunparams (initial implementation P. Molin)
     6- [libpari] row_Q_primpart
BA   7- [libpari] RgXQ_trace, RgX_chinese_coprime, RgXQV_factorback
     8- [libpari] FpM_intersect_i, Flm_intersect_i
HC   9- add optional argument to ramanujantau + parallelize code
HC  10- new GP functions bessljzero, besselyzero
BA  11- [libpari] Fle_ellweilpairing, Fle_elltatepairing, Flj_to_Fle
                  Fl_ellptors
BA  12- [libpari] ZC_divexactu, ZM_divexactu
HC  13- allow hypergeom(N, D, t_SER)
    14- [libpari] qfbsqr, qfbcomp, qfbpow, qfbpowraw, qfbsqr_i, qfbcomp_i,
        qfbpow_i, qfbpow, qfbpowraw, qfr3_compraw, qfr5_compraw
    15- general composition of binary quadratic forms (in different orders)
BA  16- New GP functions ellrank, ellrankinit : implement 2-descent on
        elliptic curve following a GP script by Denis Simon.
BA  17- [libpari] RgXY_derivx, RgX_recip_i
    18- [libpari] RgC_RgV_mulrealsym, RgM_to_RgXV_reverse
BA  19- New GP function ellsaturation
    20- [libpari] ZX_Z_eval
BA  21- [libpari] elltors_psylow
    22- ellinit([j]); no need to use ellfromj
    23- ideallist(nf, negative bound) to return ideals of norm |bound|
        (in factored form)
    24- rnfconductor(bnf,pol,flag): add flag=2 to only return the conductor
        and its factorization (which comes for free)
HC  25- New GP functions nflist, nfresolvent
BA  26- [libpari] Hermite_bound
    27- substvec: support t_VEC replacement values
BA  28- New GP function ell2cover
BA  29- nfsplitting: flag to get the embedding
BA  30- New GP function galoissplittinginit
HC  31- lambertw(y): support all values y > -1/e [#1472]
HC  32- lambertw: add optional 'branch' argument; support and complex, p-adic
        and power series inputs
BA  33- [libpari] ZXC_to_FlxC, ZXM_to_FlxM
BA  34- [libpari] New function families F3v, F3m
BA  35- New GP function setdebug

  Changed
HC   1- faster implementation of eulervec + cache result
     2- sumnummonieninit(,1): faster algorithm (complex step)
     3- atanh(rational) now uses binary splitting
BA   4- FqV_to_FlxV, FqC_to_FlxC, FqM_to_FlxM: replaced by
        ZXC_to_FlxC, ZXM_to_FlxM
     5- FpM_intersect and Flm_intersect now guaranteed to return an
        Fp-basis; use FpM_intersect_i if you only need a generating set
     6- ZXX_to_Kronecker -> RgXX_to_Kronecker, ZXX_to_Kronecker_spec
        -> RgXX_to_Kronecker_spec
     7- [libpari] nbessel -> ybessel
     8- faster implementation of mfinit and mfbasis in weight 1
     9- ZabM_ker: replace final exact check by probabilistic check modulo a
        63-bit prime
    10- [libpari] ZC_u_divexact -> ZC_divexactu
    11- unify real and imaginary binary quadratic forms, include discriminant
        types t_QFI and t_QFR are replaced by t_QFB
    12- allow Qfb([a,b,c]) and Vec(t_QFB)
    13- qfbredsl2(q, S): change format of S: was [D,isD], is now isD
BA  14- [libpari] gp_read_stream now return NULL when EOF is reached (was gnil)
    15- elltwist now returns an ellinit, and accepts the same input formats
        as ellinit ([a1,a2,a3,a4,a6], [a4,a6], Cremona label)
    16- gen_search / vecvecsmall_search: remove flag; the result is now
        positive if the element is found else -i if element should be
        inserted at position i.
    17- allow t_COL of objects in gconcat1 / shallowconcat1
    18- [libpari] Z_smoothen now uses (and returns) t_VEC arguments.
        Use Z_lsmoothen to input small primes as a t_VECSMALL.
    19- polsubcyclo: faster algorithm for large conductor and small degree
BA  20- [libpari] QXX_QXQ_eval renamed to QXY_QXQ_evalx
    21- [libpari] ZX_Zp_root(f,a,p,): assume 0 <= a < p
BA  22- [libpari] gen_factorback now take an extra parameter one.
    23- [libpari] mplambertx_logx, mplambertX, mplambertxlogx_x

  Removed
     1- [libpari] obsolete functions qfi, qfr, qfi_1, qfr_1, redreal,
        redrealnod, rhoreal, rhorealnod, qfrcomp, qfrcompraw, qfrsqr,
        qfrsqrraw, qfisqrraw, qficompraw, qfipowraw, qfipow, qficomp,
        qfisqr, redimag
     2- [libpari] obsolete types t_QFI, t_QFR