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