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

 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

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
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)

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:
- 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]
`

```