Karim Belabas on Fri, 20 Sep 2013 18:00:53 +0200


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

pari-2.6.1 released !


Dear PARI lovers,

I would like to announce the release of pari-2.6.1-ALPHA, which is a first
release candidate for pari-2.7 (stable). As usual, the sources and a
Windows binary can be obtained through the address

  http://pari.math.u-bordeaux.fr/download.html

See http://pari.math.u-bordeaux.fr/Bugs/ for how to report problems.

Have fun !

    K.B.

P.S. Users of GP2C should upgrade to gp2c-0.0.8; older versions are not
100% compatible with pari-2.6.1

HIGHLIGHTS FOR PARI-2.6.1-ALPHA:
================================

[Configure]
  - Configure now generates a file 'config.log' to help diagnose problems
    (contains all messages from compilers)

[The GP calculator]
  - Arbitrary GP 'defaults' can now be set via the command-line:
      gp -D default=value
    gp --primelimit lim (gp -p lim) and gp --stacksize=lim are deprecated.
    Use the generic form  (-D parisize=lim or -D primelimit=lim)

  - function forpart() to loop over the -- possibly restricted -- partitions
    of an integer. E.g.
    \\ loop over partitions of 10 and print them
    ? forpart(v=10, print(Vec(v)))
    \\ at most 3 parts, all of them in [2,4].
    ? forpart(v=10, print(Vec(v)), [2,4], 3)

    The partitions() interface was updated accordingly.

[Elementary Number Theory]
  - arithmetic functions now accept factorization matrices as input, you can
    use any of f(N), f(factor(N)) or f([N, factor(N)]).

[Power series]
  - Mulders/Hanrot-Zimmerman short products for power series
  
  - Allow t_SER arguments for gamma, lngamma, and psi around arbitrary
    complex numbers (was either forbidden or limited to z = 0 or 1)

[Linear Algebra]
  - matinverseimage(A, t_MAT B) would treat individual columns B[,i]
    independently and successively. Now use a single Gauss reduction.

  - add option flag to mateigen to also return the eigenvalues

  - charpoly() now selects an appropriate algorithm by itself, depending
    on the input. Using a flag should no longer be necessary and is
    deprecated.

  - port of the program ISOM by Bernd Souvignier for computation of
    automorphisms and isomorphisms of lattices.
    New GP functions: qfauto, qfisom, qfisominit, qfautoexport

[Elliptic curves & Arithmetic geometry]
  - genus2red: an implementation of Liu's algorithm to determine the
     reduction of a genus 2 curve (at p > 2). Based on genus2reduction-0.3,
       http://www.math.u-bordeaux1.fr/~liu/G2R/ (Cohen & Liu, 1994)
    mostly rewritten from scratch, and fixing known problems in the original
    implementation (so-called bug27, bug28). The regression bench contains a
    check of at least one instance of each of Namikawa-Ueno's types + all
    cases on which the original genus2reduction was known to fail.
    CAVEAT: the interface will probably change.

  - ellsearch now accepts both syntaxes allowed by ellconvertname(),
    e.g. "11a3" / "11a" and [11,0,3] / [11,0]


P.S. The Changelog :

Done for version 2.6.1 (released ??/??/2013):

  Fixed
    1- Allow compounding 1-letter flags to gp, e.g. qp -qf [ used to silently
       ignore the 'f' ]
    2- ellminimalmodel, followed by ellchangecurve ==> structure incorrectly
       updated [wrong Q_MINIMALMODEL component] [2.6.0, #1416]
    3- lift(1/2+O(2))=2/1 --> incorrect result + corrupt object [2.6.0, #1424]
    4- local() could corrupt polynomial variable of the same name
    5- write did not fclose() the output file handle [2.6.0, #1425]
PB  6- issquare(Mod(1,2)) -> domain error [2.6.0, #1429]
PB  7- issquare(Mod(0,2),&s); s -> Mod(2,0) error [2.6.0, #1430]
    8- ellheight(E not given by minimal model,P) -> domain error [2.6.0, #1432]
    9- ellchangecurve(E, [1,0,0,0]) lost Q_MINIMALMODEL ->SEGV later [2.6.0]
   10- warning() would print "warning: user warning:"-> "user warning:" [2.6.0]
   11- matinverseimage(A, t_MAT B) would treat individual columns B[,i]
       independently and successively. Now use a single Gauss reduction.
   12- Flm_Fl_mul returned a wrong result
   13- ellinit(ellfromj(Mod(0,17))) -> curve defined over Z [2.6.0, #1436]
   14- allocatemem: make sure fix_size() is called to avoid alignment
       problems [#1437]
   15- ellmodulareqn(2) did not clean the stack properly [2.6.0, #1442]
   16- issquare(Mod(13,121)) --> not an n-th power residue in Qp_sqrt [2.6.0]
   17- stack corruption in carberkowitz / charpoly(,,3) [ session crash ]
   18- ellinit(E over Fp, t_FFELT) => error [2.6.0]
   19- mateigen([5/3,7/45;0,21/10]) => precision error (missing eigenspace)
   20- subst(O(x^2),x,0*x) => SEGV [#1447]
   21- memory corruption in aprcl [2.6.0]
   22- factormod(,2) => wrong result [2.6.0, #1451]
   23- dirmul/dirdiv: incorrect result length when valuation > 1
   24- x,y a t_PADIC, x === y always returned 0 [2.6.0]
   25- bernpol(0) => memory corruption [2.6.0, #1458]
   26- round((1e-40+x) / (1e-39+x)) would create the invalid object x/x
   27- polgalois(x^11 + 627*x^4 - 584) -> F_110 instead of S_11 [#1460]
   28- input lines with more than 2^31 characters (without \n) resulted in a
       truncated read [#1461]
   29- znlog(1,Mod(8,9)) -> division by 0 [#1463]
   30- plot(x=1,2,x) gave a graph with 0<=y<=2, instead of ymin<=y<=ymax
   31- ?= or even = would apparently hang GP (waiting for further input)

  Added
    1- genus2red: an implementation of Liu's algorithm to determine the
       reduction of a genus 2 curve (at p > 2). Based on genus2reduction-0.3,
         http://www.math.u-bordeaux1.fr/~liu/G2R/ (Cohen & Liu, 1994)
       mostly rewritten from scratch:
       - adapted to pari-2.*
       - somewhat modularized
       - fixes all known instances of 'bug27' and 'bug28' (at p = 3, reported
         through Sage users).
       - bench 'genus2red' contains a check of at least one instance of each
         of Namikawa-Ueno's types + all cases on which the original
         genus2reduction was known to fail. [CAVEAT: the interface will change]
    2- allow to startup gp with flags --default key=val (or -D key=val):
       execute default(key,val) on startup
BA  3- functions Flm_center, Flv_center, zv_to_Flv, zm_to_Flm, zm_mul,
       zm_zc_mul, scalar_Flm
BA  4- function minim_raw
    5- function QX_complex_roots
PMo 6- function forpart for looping over partitions
    7- [libpari] forcomposite_init / forcomposite_next, reimplement
       forcomposite() using this iterator
    8- Configure now generates a file 'config.log' to help debugging when it
       makes a mistake (contains all messages from compilers)
    9- [libpari] RgM_invimage, RgM_RgC_invimage, FpM_invimage,
       FpM_FpC_invimage, Flm_invimage, Flm_Flc_invimage, Flm_neg
   10- [libpari] serchop0, integser functions
   11- psi(t_SER) using Luke's recursion, then lngamma, gamma, gammah
       for t_SER arguments around an arbitrary complex z0 (was implemented
       for z0 = 0,1 only)
PB 12- PARI functions FlxqM_gauss, FlxqM_inv and FqM_gauss
   13- PARI functions FpM_hess, FpM_charpoly, charpoly, RgM_Rg_sub,
       RgM_Rg_sub_shallow
   14- generic driver for GP's charpoly(): select appropriate algorith (flag)
       depending on input type.
BA 15- allow ellsearch(t_VEC) : search for curve with given name, in given
       isogeny class or with given conductor; alias for the existing
       ellsearch(t_STR) as per the ellconvertname correspondance
   16- option flag to mateigen: also return the eigenvalues
   17- [libpari] Z_lvalrem_stop, u_lvalrem_stop
   18- [libpari] ZX_rescale_lt
BA 19- Port of the program ISOM by Bernt Souvignier for computation of
       automorphisms and isomorphisms of lattices.
       New GP functions qfauto, qfisom, qfisominit, qfautoexport
   20- [libpari] RgX_mullow, RgX_sqrlow
   21- [libpari] embed_T2, embednorm_T2, embed_roots, embed_disc, embed_norm
   22- arithmetic functions now accept factorization matrices, you can use any
       of f(N), f(factor(N)) or f([N, factor(N)])

  Changed
    1- gp --primelimit lim (gp -p lim) is deprecated. Use the generic form
       'gp -D primelimit=lim' (setting primelimit is now mostly useless, anyway)
    2- gp --stacksize lim is deprecated. Use gp -s lim or the generic form
       'gp -D parisize=lim'
    3- partitions() interface to match forpart()
    4- improve qfbred(t_QFI) for "small" inputs
    5- bnfnewprec: ensure we recompute bnf from scratch at most once (could
       happen many times in makematal())
    6- [make bench] properly align results if 'printf' is available
    7- [libpari] the *_invimage function no longer accept a t_COL second
       argument: use the RgM_RgC_invimage variant. They now return NULL when
       no solution exist (used to return a t_COL / t_MAT of length 1)
    8- [libpari] replace the forvec_start() function by a standard
       iterator: forvec_init() / forvec_next()
    9- [libpari] Z_lvalrem would destroy its argument. No longer.
   10- znprimroot(p^k) now always returns the smallest primitive root (was
       only true for k = 1)
   11- gmul / gsqr for t_SER with t_INTMOD coefficients: reduce to Z[X] +
       Kronecker substititution (quasi-linear vs. Karatsuba)
   12- Mulders/Hanrot-Zimmerman short products for power series
HC 13- new mpveceint1 implementation: faster and more precise
   14- version string for development versions: added number of reachable
       commits (as per git rev-list). Affects version() [#1346]

  Removed
    1- drop support for "gp -b buffersize" (obsolete since 2.2.10, 04/2005)
    2- drop backward compatibility 'gp -emacs', 'gp -test'. Use the '--emacs'
       and '--test' forms.
--
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux1.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux1.fr/  [PARI/GP]
`