Karim Belabas on Thu, 19 Jul 2018 12:22:21 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
pari-2.11.0 (STABLE) released ! |
Dear PARI lovers, I am pleased to announce the release of pari-2.11.0 (STABLE) ! The sources and binary distributions for macOS and Windows are available at the address http://pari.math.u-bordeaux.fr/download.html This is a major STABLE release ending a development cycle which started in November 2016. For those still using pari-2.9.* or earlier versions, it is time to upgrade. Have fun ! K.B. HIGHLIGHTS FOR PARI-2.11.0: see at the end for COMPATIBILITY ISSUES. =========================== [The GP language] - new iterators: forperm (over permutations), forsubset (over subsets), forfactored/fordivfactored (over integers/divisors in factored form), forsquarefree (over squarefree integers), forprimestep (over primes in arithmetic progressions). We also allow forstep(a,b, Mod(c,q), ...) - new interface for handling files: fileclose, fileextern, fileflush, fileopen fileread, filereadstr, filewrite, filewrite1. Orders of magnitude faster than read / write for small incremental I/O operations - allow \r "foo bar" to allow filenames containing spaces (quotes around file names are optional; also for \l and \w). - new function printp to print matrices in 2-D as output by gp [ existed in 2.5 with a different meaning: "pretty" format ] - default(echo, 2): print lines as is, including whitespace and comments [Multiprecision Kernel] - new function exponent() - new function log1p(x) = log(1+x) accurate near 0 - improvements to sqrtn, log, lngamma, expm1 [Numerical summation and integration] - derivnum: allow order k derivatives ? derivnum(x = 0, exp(sin(x)), 16) \\ 16-th derivative %1 = -52635599.000000000000000000000000000000 - new numerical summation functions: sumnumap / sumnumapinit (Abel-Plana), sumnumlagrange / sumnulagrangeinit (Lagrange) - new functions prodeulerrat, sumeulerrat, sumnumrat, prodnumrat for numerical summation/product of rational functions at integers or primes - intnum: allow power series as limits for the integration interval - new function laurentseries [Combinatorics] - new functions permorder (order of a permutation), permsign (signature) - binomial(n): vector of all binomial(n, k), 0 <= k <= n - new function vecprod = prod(i = 1, #v, v[i]) using product tree - new function matpermanent [Elementary Number Theory] - ECPP primality proof: primecert, primecertexport, primecertisvalid; also used by isprime() - new function divisorslenstra (divisors in residue classes) - new functions to manipulate Abelian characters * general characters: chargalois (Galois orbits), charpow (chi^n), * Dirichlet characters: znchar (convert datum to Dirichlet character) znchargauss (complex Gauss sum), zncharconductor, znchartoprimitive, znchardecompose (chi mod N = chi_Q chi_N/Q), - issquarefree / isfundamental / quaddisc: allow integers in factored form - fast chinese remainder, fast multimodular reduction (reduce integer N mod p1, ..., pk) - optional flag to 'divisors' (include factorization) [Finite fields] - new interface to handle maps between finite fields: ffmap (evaluate a map), ffinvmap (invert a map), ffcompomap (compose maps), ffextend (create a map from K to K[t]/(T)), ffembed(a,b) (create a map from k(a) to k(b)), fffrobenius (create Frobenius as a map) - parallel znlog/fflog over large prime fields and fields of characteristic <= 5 [Polynomials and Power series] - new interface to factorization and root finding over finite fields; extend factormod(f, D) for general finite fields: D = p prime [over Fp], D = [T,p] (over Fp[x]/(T)) D a t_FFELT (over attached Fq), or omited [over field of definition of f]. Same for polrootsmod. - new functions factormodSQF (squarefree factorization), factormodDDF (distinct degree factorization) - new function polrootsbound (sharp upper bound for complex roots) - new function serchop(s,n): cut off all terms of degree < n in series 's' - new optional argument to denominator/content/numerator to allow better control over semantic, e.g., No arg: denominator([1/2, 1/x, 1/y]) -> 2*y*x denominator([1/2, 1/x, x/y]) -> 2*x denominator([x/2, 1/x, 1/y]) -> y*x With arg: denominator(..., 1) is 2 in all 3 cases denominator(..., x) is x in all 3 cases denominator(..., y) is y in all 3 cases [Linear Algebra] - Linear algebra over Z/NZ: matdetmod, matimagemod, matinvmod, matkermod, matsolvemod (also makes matrixqz(,-1 or- 2) an order of magnitude faster) - new modular implementation of linear algebra over Z and cyclotomic rings - asymptotically fast linear algebra over finite fields, using CUP decomposition - allow matsolve(M,b) when M is only left-invertible [Elliptic curves] - E/Qp now allowed in ellap, ellcard, ellgroup, ellissupersingular [these four now also allow models which are not p-integral], ellintegralmodel, ellpadicfrobenius, ellpadics2 (now allows curve with multiplicative reduction), elllocalred - extend support for curves over number fields: ellheight, ellrootno, ellpointtoz, E.omega, E.eta, E.area, ellgroup(E,P) for a maximal ideal P, ellisomat [E without CM]. - new functions elltamagawa, ellbsd, ellpadicbsd, ellpadicregulator, ellweilcurve, ellminimaldisc, ellisotree - new functions ellratpoints and hyperellratpoints based on Michael Stoll 'ratpoints'. [Spaces of Modular Forms] New package; see ??14 and ??tutorial-mf getcache lfunmf mfDelta mfEH mfEk mfTheta mfatkin mfatkineigenvalues mfatkininit mfbasis mfbd mfbracket mfcoef mfcoefs mfconductor mfcosets mfcuspisregular mfcusps mfcuspval mfcuspwidth mfderiv mfderivE2 mfdescribe mfdim mfdiv mfeigenbasis mfeigensearch mfeisenstein mfembed mfeval mffields mffromell mffrometaquo mffromlfun mffromqf mfgaloistype mfhecke mfheckemat mfinit mfisCM mfisequal mfkohnenbasis mfkohnenbijection mfkohneneigenbasis mflinear mfmanin mfmul mfnumcusps mfparams mfperiodpol mfperiodpolbasis mfpetersson mfpow mfsearch mfshift mfshimura mfslashexpansion mfspace mfsplit mfsturm mfsymbol mfsymboleval mftaylor mftobasis mftocoset mftonew mftraceform mftwist [Modular symbols & p-adic L functions] - the package now supports level N = 1 - new functions msdim (dimension), mslattice (canonical integral structure), mspetersson (intersection product), mspolygon (hyperbolic polygon / Farey symbol attached to Gamma_0(N)) - msfromell: use a much faster modular algorithm, allow a vector of isogenous curves - allow mssplit(M) by itself, splits msnew(M) by default [Complex L-functions] - lfuncreate: allow specifying an arbitrary growth rate a(n) << n^(c + eps) [by default, assume Ramanujan-Petersson] - new functions lfuntwist (twist by Dirichlet character), lfunsympow (symmetric power) - allow zeta(power series) - new function zetahurwitz (complex or p-adic inputs) - new function zetamultall (all MZV of bounded weight), zetamultinit, zetamultconvert [Number Fields] - new functions nfeltembed (complex embeddings), nfeltsign (signs of real embeddings), nfpolsturm (number of real roots of s(T) for T in K[X] and s a real embedding of K), bestapprnf (algdep for a known number field), idealispower (I = J^n ?), idealredmodpower (reduce mod n-th powers) poldiscfactors (fast partial factorisation of poldisc(T)), - new functions to handle representations of galoisinit G: galoisconjclasses (conjugacy classes of G), galoischartable (character table), galoischarpoly (characteristic polynomial of representation), galoischardet (determinant). - new functions to query the GALPOL database: galoisgetgroup, galoisgetname - bnrinit(,,1) [include generators] is no longer necessary for bnrL1, bnrconductor, bnrrootnumber, bnrstark, rnfkummer, galoissubcyclo - faster nfgaloismatrix / nfgaloisapply(nf,s, ideal) - change rnfpolredabs so that it outputs a canonical polynomial. As a result, the function is no longer Obsolete. - optional argument to idealfactor [limit factorization] [Associative and central simple algebras] - new functions alggroupcenter (Z(K[G])), algmakeintegral (integral multiplication table), algsplit (isomorphism between A/F_p and a matrix algebra M_d(F_p^n), where dim A = n*d^2) - new functions to handle full lattices: alglatadd, alglatcontains, alglatelement, alglathnf, alglatindex, alglatinter, alglatlefttransporter, alglatmul, alglatrighttransporter, alglatsubset [Graphics] - new functions plotexport / plothexport (support PostScript and SVG formats) The functions psdraw, psploth and psplothraw and the default 'psfile' are obsolete: use one of plotexport, plothexport or plothrawexport with format "ps" and write the result to file. - graph/plotport.c is now part of libpari - plotcolor(w, col) now allows color names (t_STR), [R,G,B] values or "#RRGGBB" hex triplet; returns the [R,G,B] value attached to c - allow plotdraw(w) for plotdraw([w,0,0]) COMPATIBILITY ISSUES BETWEEN 2.9.* and 2.11.* ============================================= 0) Defaults: - change 'debugmem' default value to 1; no memory-related message at value 0 (not recommended under gp). 1) Output changes: - the bid structure from idealstar has been changed, the new format is not compatible with pari-2.9 - changed the definitions in polred / polredbest / polredabs / rnfpolredabs to decide what is the "best" polynomial to return - bnrdisclist output is now an ordinary vector (not a vector of vectors) - idealstar(,N) : always include generators, for all values of flag. The operation is cheap: allowing not to compute it does not make much sense; and G.gen is now always defined. - component(t_POL T, n) used to return polcoeff(T, n-1) for all n >= 1 [ undocumented compatibility behaviour ]. Now returns a true GEN component whenever it exists and raises an exception when it does not [ n <= 0 or n > polcoeff(T)+1 ]. Use polcoef ! - nf structure: nf[7] now stores nf.zk / content(nf.zk). Old format is still supported (to read in data involving old-style nf generated by gp version < 2.10) but incurs a small speed penalty. - K.tu[2] was always a t_POLMOD; make it a t_INT if -1 - numtoperm now returns a t_VECSMALL (so that results can be multiplied as permutations, etc.), no longer a t_VEC with t_INT entries - Ser(s, 'x, d) now always returns a series with d significant terms. It used to return a t_SER s in 'x verbatim and to use all given coefficients for a t_VEC/t_COL. The behaviour changes only if d is explicitly given: no change for Ser(s,'x) - algleftmultable now always returns the multiplication table on the integral basis - ellmoddegree no longer outputs [D, err] but only the degree D - in 'prettymatrix format', no longer print all 0 x n matrices as [;]: use [;] if and only if n = 0 and matrix(0,n) otherwise 2) Input / interface changes: - lfuncreate() change of format for (p,d)->Lp closure: * Lp here and in bad primes [p,Lp] must now use the actual local factor and not its inverse * d is now the exact number of terms needed (was 1 less), i.e. one need only return Lp + O(x^d) * bad primes are given as a separate 2nd component: [Lp, [[p1,L1],...[pk,Lk]]], not as [Lp, [p1,L1],...[pk,Lk]] - now that we have primecert, isprime(n,1) no longer outputs a certificate and no longer uses APRCL for large prime divisors of n-1; it now implements pure Pocklington-Lehmer-Selfridge and is very slow; use primecert(n) ! - ellisomat(E,{fl}) is now ellisomat(E,{p},{fl}) (p degree of isogenies) - ellpadicmatrix now returns a pair of matrices (instead of a matrix whose entries are pairs of values); ellpadicheight and ellpadicmatrix no longer accept [p,[a,b]] arguments; use * [a,b]~ - E/Qp converts coefficient to exact form using centered residues - factorff and polrootsff are now obsolete. Use factormod/polrootsmod - merged algdecomposition + algsimpledec -> algsimpledec - renamed algsplittingmatrix -> algtomatrix - polcoeff is deprecated and renamed polcoef: it now only applies to scalars, polynomials, series and rational functions; no longer to vector/matrices or quadratic forms (use [], or "component", or [a,b,c] = Vec(q) for a binary quadratic form q). -- Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17 Universite de Bordeaux Fax: (+33) (0)5 40 00 21 23 351, cours de la Liberation http://www.math.u-bordeaux.fr/~kbelabas/ F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP] `