Karim BELABAS on Sun, 30 Apr 2006 13:39:32 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
pari-2.2.13 released |
Dear PARI lovers, I would like to announce the release of pari-2.2.13-BETA. The sources and a pre-compiled binary for Windows 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. If you are running Mac OS X, please see this FAQ before reporting problems with 'readline' (line editing): http://www.math.u-bordeaux.fr/~belabas/pari/doc/faq.html#mac10readline =========================================================================== This is the second and hopefully last BETA release of the PARI/GP system in the 2.2.* series. We would like this release to be tested extensively. Please update and report any problem in 2.2.13, we need your help ! Highlights since last beta release (2.2.12): - cleaned up the memory allocation code for INTMOD/POLMOD/PADICs. Objects involving them were vulnerable to memory corruption (old design bug, removed arbitrary assumptions and special cases). - cleanup of all assembler kernels: a large number of combinations architecture + compiler + Configure flags (--kernel, --with-gmp) have been tested, and some of them fixed (did not compile or were missing some symbols). - revert to LLL as the default algdep / lindep engine [ demote bad PSLQ implementation ]. - qfminim(x,,,2) is very robust now (esp. when x has exact entries, however large). - specify the various content/gcd functions, and fix inconsistencies. - gp2c now handles precision changes properly. No further cleanups are scheduled before the stable release, and no feature will added at this point. This should become pari-2.3 in a few weeks. Have fun, Karim. P.S: The Changelog Done for version 2.2.13 (released 26/04/2006): Fixed BA 1-[HPUX] 'program' bench failed for gp-sta [install did not work] 2- made BITS_IN_LONG and related constants 'signed long' [ avoid problems like : exp(10^10) --> 10^10 + 1 (silent overflow) ] 3- --kernel=none : libpari ended up not containing the 'divll' symbol 4- polgalois(x^3-2) --> [,,,"A3"] when new_galois_format was unset. 5- problem with negative valuations in ggcd(t_PADIC) [#411] 6- Fp_pow for huge moduli could return a negative number [#417] 7- y;x/y/z/x --> error [#410] 8- polredabs(x^4-35048*x^2+1016392*x-7368842) --> same, instead of x^4 - 17524*x^2 + 69403802. Rounding error, due to setting the relative precision wrt the wrong reference object. 9- nfisideal() could raise an error instead of returning 0 10- nfreducemodpr only accepted nf's (not bnf's or richer) 11- 1/a/x --> 1/a/x; 1/(a*x) --> 1/(a*x). Now 1/(a*x) in both cases (unify t_RFRAC normalization routines) 12- content(1.*a*x) --> 1 [ now returns a ] 13- content(1./a*x) --> 1.00000/a, but content(1./a*x + 1./a) --> 1/a [ now returns 1/a ] 14- t_SER ^ t_FRAC introduced floating point numbers even when rational expression available, e.g (8 + x)^(1/3) 15- round(t_POL/t_SER, &e) with leading coeff rounded to zero 16- trace(Mod(y,x)) --> SEGV 17- gcd(1, 1/x) --> 1 [ gcd(Pol(1),1/x) correctly returns 1/x ] content(x/y + 1) --> 1 [ content(x/y) correctly returns 1/y ] content(x + 1/y) --> 1 [ also wrong in pari-2.1.7 ] content(1/x/y) --> 1 [ should be 1/y ] 18- missing vectors in qfminim(x,b,,2) [ m omitted ] 19- 'make test-kernel' [ wouldn't compile ] 20- matsnf(matrix with t_POL entries, 1) ---> incorrect matrix V 21- O((-2)^3) --> invalid object 22- (0.*x)*(0.*x) --> 0.E-57 [ instead of 0.E-57*x^2 ] 23- qfminim(x,,m,2) [b omitted] -> [n,B,v]: output correct vectors (v), but reported too many (n too large). 24- qfminim(x,,,2) wrong when x has huge entries. Work out a sensible default precision if x has exact entries. BA 25- HPPA 32bit level0 inline assembly addmul constraint was too weak. 26- factorback(x,y) --> error if x,y were valid t_VEC with exactly 6 components [ typo in checknf_i ] 27- [configure] shared libraries on 64bit sparc require -fPIC / -KPIC 28- (x^3/y^3)^(1/3) -> x + O(x^17) [ leading coeff sometimes lost #433 ] 29- ??INT worked, but not ??t_INT 30- inconsistencies wrt variables in t_POLMOD, e.g Mod(x*a,x^2)' ---> Mod(x, x^2) deriv(Mod(x*a,x^2)) ---> 0 31- contfrac(sqrt(19),2^31-1) --> overflow [ signed overflow can't be reliably tested, use unsigned computations ] BA 32- on x86_64 + gcc-4.0, CFLAGS was missing a -fno-gcse-after-reload 33- [output=3] give more time to external prettyprinter [#209] 34- rare SEGV in factor(t_INT) with low stack space [ #345 ] 35- ispower(1) --> error, ispower(-8) --> error [ allow negative numbers ] 36- Configure -a + kernel = $arch-gmp didn't work [missing -lgmp #438] 37- divisors([]) --> SEGV [#441] 38- missing GC in bernfrac 39- bnrrootnumber(bnrinit(bnfinit(x),1),[]) --> SEGV [#443] 40- f()= local(m = matrix(2,2)); m[1,1] = 1 f() --> m[1,2] also set to 1 41- make test-kernel would always fail with gmp kernel. 42- elllseries(e, 0.) --> error [ only elllseries(e,0) worked ] [#445] 43- 'ftime' was never detected by Configure 44- setrand(74);quadclassunit(-83138791008,,[0.2,6]) --> oo loop [ large prime relation hashtable corrupted when changing subfactorbase ] 45- a(k)=if(k==0,0,a(k)=a(k-1)) a(1) --> SEGV [#447] (add refcounts to 'user function' structs) 46- getheap() did not report properly the "size" of user functions (value too small) 47- add compatibility macro decomp -> Z_factor [ used by mwrank ] BA 48- minpoly(,,v) might return polynomials in x instead of v. 49- make test-kernel required inlining compiler 50- make test-kernel didn't work with C++ compilers 51- ia64 kernel assumed 64bit longs, whereas compilers can be configured for 32bit Changed 1- RgX_simple_gcd: make sure result has non-zero leading term [#412] 2- simplify(t_RFRAC): remove assumption that deg(denom) > 0 [#413] 3- split bfffo.h from level0.h 4- semantic of t_SER with inexact coefficients is now the same as for t_POL: the sign is 0 iff all coefficients are zero. Either there are no coefficients, or the leading coefficient is an inexact zero. 5- removed all non-inline assembler kernels : they were complicated to Configure, mostly untested, and inefficient ( function call overhead + must use global variable hiremainder/overlow when operating on limbs instead of LOCAL_HIREMAINDER trick ). If this slows down your application (it should not), install gcc or use the gmp kernel. 6- allow arbitrary n in divisors(n) and fordiv(n,), provided factor(n) succeeds [ was restricted to t_INT or their factorization matrix ] 7- made LLL the default algorithm in algdep / lindep again [ replaces PSLQ ] Our PSLQ implementation is slow and unstable, and LLL performs much better, see the example in ??algdep. 8- addrr: extend accuracy much less frequently 9- make sure all kernel symbols are present in all versions of libpari (addll & friends could be inline) 10- change the meaning of gcd(x) and lcm(x) when x has vector/matrix components (a global recursive gcd/lcm is taken, instead of a cartesian product of individual gcd/lcm) 11- disallow vecmin([]), vecmax([]) [ returning stoi(+/- BIGINT) is not helpful ] 12- [libpari] renamed lellseries -> elllseries [ as in GP ] 13- semantics of stackdummy() [ make it consistent with gerepile ] 14- never assume that part of an object is "permanent" when it is out of the stack (was used by INTMOD/POLMOD/PADIC). Always copy it. As a result, 'gmodulo' and 'forcecopy' become obsolete. 15- use quadclassunit in qfbhclassno for large D, thereby ASSUMING GRH. 16- ellan was bypassing the check for CM 17- uniformize the generation of parilvl0.h [ genkernel ] Added 1- [library] new function isinexact. BA 2- [elldata] function forell() to loop over elliptic curves. BA 3- [elldata] function ellconvertname() to parse curve name. 4- [library] new function RgX_shift, RgX_mulXn, RgX_shift_shallow, RgX_Rg_div BA 5- m68k level0 inline assembly kernel 6- [library] new function isint, issmall, mkrfrac 7- Configure --time=timing_fun 8- [Configure] genkernel script Removed 1- kernel functions shiftl / shiftlr (inefficient, unused, untested) [ backward compatibility version in src/kernel/level1.h ] 2- obsolete functions forcecopy (use gcopy) and gmodulcp (use gmodulo). -- Karim Belabas 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-bordeaux.fr/~belabas/ F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]