Karim BELABAS on Fri, 27 Oct 2000 21:42:08 +0200 (MET DST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

update pari-2.0.21.beta


Hi PARI lovers,

   here's another update, mostly bugfix, but some of them involving new
implementations  e.g:

1) improved bnf* numerical stability, due to a new hnfLLL [ try mathnf(,4),
it's much better than it used to be, and should replace the default (naive)
algorithm ]

2) rewritten bnfisprincipal, profiting from 1) above + improved
reduction/splitting strategy + taking advantage of known factorizations
instead of splitting gigantic ideals (most class group related functions
benefit heavily when class group is large).

3) factorization over Z[X] (van Hoeij's knapsack algorithm) or over finite
fields when the polynomial is defined over the prime field (Allomber's
algorithm).

Have fun,

    Karim.

P.S: This release is available on the cvs server as release-2-0-21. I've
updated the (PostScript and PDF) manuals on the megrez server. I haven't
updated the binaries (DOS, etc.) for this release.

P.S2: the detailed Changelog.

===========================================================================
Done for version 2.0.21 (released 27/10/2000):
  Fixed
    1- trap(gdiver2,a,1/0) <C-D> trap(,a,1/0); trap(gdiver2,a,1/0) --> crash
    2- lllgramintern could reduce a wrong lattice (after precision problems)
XR  3- not enough GC in bezout()
    4- use hnfmodid in ideallllred  (work mod I \cap Z, not mod N(I))
IS  5- C++ compilation problem (compl is a C++ operator + casts)
    6- factor(x^2 - 16810110*x + 62994937599000) --> division by 0
BA  7- Pocklington-Lehmer didn't stop factorisation after sqrt(N)
    8- exp(log(Pi+x+y)*1.) --> SEGV (still gives an error, but a decent one)
    9- factorff needed a prime field F_p where p was single precision
   10- more digits than were significant could be printed (ex: precision(Pi,1))
   11- rnfisnorm didn't accept vectors on Zk basis as argument
   12- [cygwin] fixed timer (always returned 0)
IS 13- function prototypes (missing 'extern')
   14- quadray(bnf, ...) didn't work when bnf.disc < 0. Could also return
       a relative equation over an intermediate field
   15- deficient argument checks: asinh(2*x-1), agm(1,1-x), zetakinit(2*x-1),
       idealinv( , wrongtype), nfnewprec([2*x-1]), thueinit(non-monic or
       degree 1), lcm(x, 0) rnfidealmul(2*x-1,0), galoisfixedfield(2*x-1),
       qfbnupow(2*x-1, 0), polred([x,x]), bezout(Mod(x,x^2+1),0),
       numtoperm(-1,0), polred(nf), idealhnf(nf,y+z), factorpadic(,y,),
       nfelftreduce, rnfsteinitz, idealappr(not an nf, ...): SEGV
   16- check variable numbers in algtobasis: nfalgtobasis(nfinit(P(y), x))
   17- factorcantor(x^4 - x^3 - 2*x - 1, 3) --> SEGV [typo!]
   18- matsupplement(non-exact entries): fixed zero test (--> |x| < eps)
   19- precision(I*1.) --> +oo (should be realprecision)
   20- global() could check uninitialized memory
   21- default(prettyprinter,"non-existent-file") ---> SIGPIPE and GP crash
   22- gamma(1+O(3^2)+x) --> SIGFPE
   23- typo in cxgamma (gamma(-4.1+Pi*I/2) --> exponent overflow)
   24- Odos/paricfg.h defined PARIINFO incorrectly
   25- inconsistenty t_POLMOD specification: Mod(x,y)+16 --> invalid object
   26- bnfsunit error (impossible I-->S) when large class group
   27- qfminim([;],...) / qfperfection([;]) --> SEGV
   28- idealpow(,,,1) only reduced at the end, not after each multiplication
   29- typo in zbrent (always used bisection)
BA 30- cotan(x) wasn't accepted
   31- wrong internal prototype for thetanullk (prec not taken into account)
   32- various bugs in gphelp -detex (??\a)
   33- trap + ^C + next would interrupt \r or read()
IZ 34- external prettyprinter incompatible with colors
   35- idealval used much larger numbers than necessary
   36- sqrtint very inefficient (computed with full precision all along)
   37- bnfisprincipal couldn't deal with some non-Galois fields
   38- listcreate allowed creating longer lists than GP could later handle
   39- INPUT colors was "leaking out" (affected status messages)
   40- idealpowred(, power > 2^32) --> wrong result
   41- when lines > 0, output driver didn't reset properly after overflow
   42- huge precision losses in bnfinit computations (--> truncation error)
   43- mateigen([1,2;3,4]) wouldn't work at default precision
   44- leftover debugging statements in gphelp -to_pod
   45- zeta(x) didn't always use the precision of x (contrary to the other
       trans. functions)
   46- some Warnings from MIPSPro 7.2.1 compiler (contributed by PM)
BA 47- gdiv(SER,POL) --> SEGV when POL has lgef < lg
   48- check relative pol is monic before calling a rnf* function
XR 49- cleaned up bnrL1 character computations
XR 50- round 4: possible problems when increasing p-adic precision
   51- stack corruption in mppgcd(huge t_FRAC, huge t_FRAC)
BA 52- abs(t_SER) not allowed
   53- nfdisc(non monic polynomial,, disc factorization) returned wrong answer
   54- rnfidealnormrel(rnfinit(nfinit(y^2-2),x),2) --> SIGBUS
   55- hardcoded paths in a few scripts (tex2mail, gpflog, make_vi_tags)

  Changed
BA  1- more efficient quadratic Hensel lift
    2- made ya optional in polinterpolate
BA  3- more efficient factorff when pol belongs to Fp[X] (based on Fp_isom)
    4- catch SIGFPE
    5- made poltchebi efficient
    6- write all real zeroes in exponential format (0e28) in format 'g'
    7- bnfsunit: try to compute S-units even when the class group is large
                 reduce class group generators
    8- 0.e N now inputs a real 0 of decimal exponent N (was N-defaultprecision)
    9- try to avoid errors due to precision loss (while computing archimedian
       components) in bnfnewprec/bnfmake
   10- restore \o2 to previous meaning, use \o3 for alternate prettyprinter
   11- normalized output of idealfactor (sort factors)
   12- better TeXization (\left / \right)
   13- allow color changes in error messages (when sample input is given)
   14- format for bnf[9] (new isprincipal)
   15- cleaned up isprincipal + bnfinit (small_norm, getfu, class_group_gen)
XR 16- added flag for D>0 in quadhilbert: if non-zero, try more modulii
   17- idealred: reduce huge ideals as Z-module first (using lllintpartial)
   18- TeXmacs interface

  Added
    1- library function zerovec
    2- van Hoeij's algo. for modular factors recombination (factor over Z[X])
    3- algdep for p-adic numbers
IZ  4- default values for 'colors' (light/dark) and 'prettyprinter' (tex2mail)
    5- hnflll implementation (old one was preliminary and didn't work at all)
GN  6- squfof implementation
    7- numerical derivation
XR  8- GP interface to hensel_lift functions (polhensellift)

  Removed
    1- quadrayimagwei, preliminary implementation to quadray(D < 0) 
-- 
Karim Belabas                    email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud             Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France)           Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://www.parigp-home.de/