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]