| Karim BELABAS on Thu, 19 Jun 2003 15:57:48 +0200 (MEST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| pari-2.2.6.alpha released |
Dear PARI enthousiast,
I would like to announce the release of pari-2.2.6.ALPHA. As usual, you can
fetch the sources from the link
ftp://megrez.math.u-bordeaux.fr/pub/pari/pari-alpha.tgz
which points to the up-to-date sources, or from CVS [ the tag is
release-2-2-6 ]. This is still an ALPHA release, so usual caveats apply.
This is mostly a bugfix release. Many miscellaneous, often inconspicuous
changes. The most extensive fixes concern:
* polgalois(fields of degree 8 to 11) should be faster [ check
polagalois(x^11 - 2) ], and insensitive to precision [ old TODO item ].
None of the huge files in the 'galdata' package are used anymore: needs to be
reorganized [ should be ~ one fifth of its former size ]
* A number of rnf* functions simply did not work. Some work still
to be done so that the "relative number field" routines becomes really
usable.
A few new features also
* the pariemacs package has been upgraded (Olivier Ramaré)
See emacs/pariemacs.txt
* new hi-res plot driver: support for the Qt library (Nils Skoruppa).
If Qt is installed on your machine [e.g on most Linux boxes], you can try
Configure --with-qt
Have fun,
Karim.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Done for version 2.2.6 (released 19/06/2003):
Fixed
1- rnfidealtwoelt, rnfidealmult --> SEGV
2- agm(x+1, x+2) --> oo loop [2.2.5 F-61 was undone...]
3- setrand(1); elltors(ellinit(vector(5,k,random/random))) --> SEGV
[ incorrect use of partial factorization in ellintegralmodel -->
surviving denominator ]
4- old typo in cauchy_bound --> factor((x - 155)*(x^2 + 160*x + 12864))
returned a single irreducible factor [ missing factor 2: initial upper
bound for roots was 125 instead of 250 ]
5- zeta(x) very slow near large negative integers
6- algdep(2^46,1) ---> 1 [from 2.2.5]
7- bnrclassnolist(bnfinit(y),[2,2]) --> SEGV
IS 8- typo in paricom.h [extra , in enum] --> compilation failure
IS 9- typo in part.c [ // comments ] --> compilation failure
10- y/(x/y) --> error [ wrong assumption that y is a genuine GEN in
mulscalrfrac ]
11- example/Makefile wasn't up to date [ link with -lpari ]
12- zetak(zetakinit(y), 3-1e-28) --> -7.2e28 [ catastrophic precision
loss triggered by anything non-integral but very close to an integer ]
IS 13- gp-dyn build on AIX
14- subst(y*x,y^2,x) --> 0
15- rnfisnorminit(x,x^3-2) --> SEGV [ bad input. Missing argument checks ]
16- Compiling with g++ + gmp, missing gmp version number [missing stdio.h]
IS 17- [AIX:] various compilation problems + select better CFLAGS
(-qtune=auto -qmaxmem=8192)
IS 18- [HPUX:] remove -E from DLCFLAGS
19- bnrconductor(bnfinit(x)) --> SEGV [ missing check ]
20- ellpow(E,...,-1) --> stack error [ from 2.2.5 ]
21- a:b:c; c/a/b == c/b/a --> 0
22- sparcv8 inline assembler kernel used global registers for hiremainder /
overflow, which was dangerous, inefficient, and complicated. Now none
of the inline kernels use any global variable. The non-inline
assembler kernels do define and access globals hiremainder and overflow.
BA 23- cos(2^2^22) --> precision too low [ idem sin, tan ]
24- setrand(1504969109; quadclassunit(-403195) --> incorrect. Check against
L-value too liberal; now allow quotient in [ 0.8, 1.3 ], not [0.75,1.5]
25- TODO item: quadclassunit not reliable when fed non fundamental
discriminant (infinite loop [e.g quadclassunit(-352)], wrong result).
[ fix: increase factor base ]
26- sign of elleisnum(E, 6, 1) was wrong
BA 27- [GMP kernel] factor(18295370635792208009) --> error
28- idealprimedec(nfinit(x^16+16),256) --> SEGV [ bad input ]
29- setrand(1642014180);quadclassunit(1642014180) --> PLEASE REPORT [ bug
in large prime relation code ]
30- TODO item: rnfpolred(nfinit(quadpoly(904,y)),quadray(904,1))
*** division by zero in gdiv, gdivgs or ginv
BA 31- uninitialized memory read in divrr(x,y), when lg(y) < lg(x), leading
to random rounding of result.
32- [Cygwin + bash >= 2.05a]: HOSTTYPE no longer auto-exported by bash -->
Cygwin compilation broken. Define it to i386 by default.
33- TODO items related to polgalois
polgalois(x^8-1864259299553450972214799899167226732549697977945716*x^6+331143259018657601105207922631212331088735421305543663274125986698777318014979969*x^4-2225286541902342283500014249183311190477390*x^2+5); --> degree too large
setrand(7); polgalois(x^8+162644002617632464507038884216211529274267271168000002) --> wrong result
polgalois(x^11 - 2) took a looong time.
34- systematic warning in bnfisnorm() [ "useless flag" ]
35- charpoly could not handle t_POL in variable MAXVARN
36- \p400 + sin(2*Pi) boasted far too many significant digits
37- [Configure:] --with-readline=path did not work
38- [Configure:] $TOP/readline was added to search path for ncurses,
termcap, etc
39- memory leak:
x = vector(2); y = vectorv(2);
while(1, m = matrix(2,2); m[2, ] = x; m[, 2] = y) --> out of memory
40- factor(12345)[,1][3] --> error
41- overflow in some GP interface routines: e.g default(realprecision,10^125)
42- polhensellift((x^2+1)*Mod(1,5),...) --> SEGV [ bad input ]
43- lindep([x,y]) --> SEGV [ bad input ]
44- polredabs(x^4+9670527181567158504671*x^2+4840282594390812607599424249,16);
--> impossible concatenation in concat [ from 2.2.5 ]
45- [Cygwin compilation:] incorrect cygtop [ --> readline not found ]
46- [Cygwin:] DLL build. libpari.dll and gp-dyn build OK. Install does
not work in gp-sta (SEGV)
47- rare SEGV in Round 4 when using non-primes in addprimes()
48- overflow when computing Euler's constant to 20000+ decimal digits
MSo49- error message for unrecognized GP metacommand: off-by-1 error
GN 50- Configure breaks if CFLAGS contains '/' (invoke sed with '!' separator)
IZ 51- [tex2mail:] line couldn't start with {...\over...} (required indent)
IZ 52- [tex2mail:] \over wasn't allowed within \left( \right)
53- ZX_QX_resultant (modular resultant with integer result): possible
infinite loop when the result is 0, and non trivial denominator.
54- elleta(E.omega) gave incorrect results [ conflicting normalizations ]
55- typo in charpoly(t_MAT) [ stack overflow after garbage collection ]
56- subst(y,x+y-x,y) --> 0 [ missing simplification ]
57- typo in nfroots [ returned inverse of roots when polynomial had small
degree (using Trager's method) ]
58- 'path' default incorrectly set on Cygwin
59- [internal:] isprincipalfact() incorrect if flag contained
nf_GEN_IF_PRINCIPAL (was unused).
60- bnfisintnorm(bnfinit(y^4+y+1), -1) --> SEGV [ could occur for any unit ]
61- stack corruption in matsnf() [ when GC occurs ]
62- vecsort(t_VECSMALL) --> SEGV
63- v = vector(2); j = 0; v[j++] = 1 --> j = 2 [ side effect of
2.2.4-F21: LHS for matrix assignment was evaluated twice ]
Rem: v = vector(2); v[j++] = v = 0 --> SEGV. Don't cry.
BA 64- [ix86 + gcc compilation]: fix "invalid preprocessing token" Warning
BA 65- galoisinit could very rarely trigger a 'impossible inverse modulo' error.
Changed
1- rnf structure (removed useless components)
2- rnfidealreltoabs, rnfidealup: now return a Z-basis as a vector of
elements in the relative extension, instead of a meaningless HNF matrix
wrt an unknown basis. Was especially dangerous if the extension also
existed in nfinit form, since the HNF matrices were _not_ ideals wrt
this nf structure. [ also consistent with rnfeltreltoabs ]
3- rnfidealabstorel now requires input in the above form, so use
rnfidealabstorel(rnf, nf.zk * A), if A is a standard ideal in HNF
form. Used to require matrices in HNF form, which was confusing since
ideals such as A gave wrong results [ HNF wrt different implicit bases ].
4- idealadd(x,y): multiply by lcm(denom(x), denom(y)), not their product
5- rewrote nfhnf/nfhnfmod/nfbezout [ many small improvements ]
6- rnf structure now filled incrementally [ absolute nf, data for norm
computations ]. Use build_and_check_obj() mechanism already used for
bnf: cycgen ( bnf.gen[i]^bnf.cyc[i] ) + matal (relations in algebraic
form)
7- rewrote rnfpseudobasis, rnfordmax [+ new routine rnfallbase ]
8- always define checkmemory() in libpari [ was included only if MEMSTEP
was defined ]. Could cause compilation failure when compiling with
different flags.
9- upgrade pariemacs, see pariemacs.txt
10- faster divll for portable kernel [ inspired by GMP ]
11- allow system() under Windows (95 and higher)
12- use cmprr() in gegal(t_REAL, t_REAL)
13- have Configure check explicitly that the C compiler is ANSI
14- faster modular algorithm for characteristic polynomial of algebraic
integers Mod(x, y) [ ZX_caract(): old would replace x by its integral
part and correct at the end; new is fully modular ]
15- separated mpadd functions from [none|gmp]/mp.c --> kernel/add.c
16- use 'lgeflist' for t_LIST: remove the 65536 limit on list size
17- subst(1 + x^2 + O(x^5), x^2, y) --> 1 + y + O(y^2)
18- nffactor: allow modular factorization over primes of degree > 1
IZ 19- try to output usable TeX (avoid braces, let TeX split lines)
20- [libpari internals:] jmp_buf 'environnement' no longer global
MSo21- allow poltchebi(n < 0) [ := poltchebi(-n), still satisfies the 3-term
recursion ]
IZ 22- prime sieve optimization [ primelimit ]
23- try to reduce the likelihood of an artefact relation in PSLQ [ use
"confidence level" 2^(-20) ]
IZ 24- [tex2mail:] add a "cut here" sign when expression does not fit in the
linelength:
\o3
\p240
[Pi, Pi]~
25- faster multiplication [t_VEC | t_MAT] * t_COL for sparse t_COL
[ induces faster charpoly for sparse t_MAT ]
26- matsnf: allow rectangular matrices + improvements for singular matrices
27- made startup errors ( GPRC ) non fatal.
28- allow vecsort(t_VECSMALL)
29- renamed mulssmod/divssmod --> muluumod/divuumod and changed their
prototype (use ulong arguments, return ulong) [ was already the case,
with various casts ]
30- renamed u_invmod --> invumod. Documented all level0 modular routines.
[ also added invsmod ]
31- separated "negative or zero argument" (arither2) and "zero argument"
(arither3) errors.
Added
1- member function rnf.pol (polynomial generating absolute extension)
2- src/kernel/sparcv8_[micro|super]
3- in emacs/ : pari-completion.el pari-conf.el.in pari-fontification.el
pari-help.el pari-messages.el sli-tools.el
4- Configure --builddir : find a decent name for build directory
depending on kernel options (with/without gmp, exotic assembler kernel)
GH 5- PowerPC level0 inline assembly kernel
6- support for install() on Mac OS X
BA 7- GP function galoisexport
IZ 8- logstyle and TeXstyle defaults
9- [GP defaults:] support 'G' suffix (for Giga) (already supported k and M)
10- extend GP command line: once flags (-xxx) are processed, remaining
args are taken to be filenames, read upon startup [ _after_ the gprc
read statements have been processed ]
GH 11- IA64 level0 inline assembly kernel
BA 12- GP function galoisidentify and groups identification facility
13- public function GENtoGENstr [ for GP2C ]. (was private: gtostr())
14- function coefs_to_vec()
NS 15- support for Qt graphical library [ hi-res plot ]
Remove
1- remove emacs/compile [ integrated in Makefile ]
2- src/kernel/sparcv[89]
3- config/MANIFEST [ now built dynamically ]
4- config/Makefile.DLLs [ use recent libtool instead of dirty hacks ]
--
Karim Belabas Tel: (+33) (0)1 69 15 57 48
Dép. de Mathématiques, Bât. 425 Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud http://www.math.u-psud.fr/~belabas/
F-91405 Orsay (France) http://www.parigp-home.de/ [PARI/GP]