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]