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