Karim BELABAS on Thu, 12 Sep 2002 23:49:25 +0200 (MEST)

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

pari-2.2.4.alpha released


  I'm releasing a snapshot of my sources, which have stabilized again after a
rather hectic summer. You can fetch them from


or from CVS as usual [ the tag is release-2-2-4 ].

1) Lots of miscellaneous bug fixes, and invisible internal cleanup [ e.g.
removal of global variables, unified use of the prime table diffptr ]

2) The following routines should be much better behaved:

    rnfkummer, nffactor, rnfisnorm [WARNING: input format changed]
    rnfpolredabs [try new flag 16]

3) I have cleaned up and documented the way trap() and break loops are handled
by GP [ It has changed somewhat. Check out section 2.7 of the manual ], so
that we can discuss the interface before freezing things for beta.

4) There is initial support for mnemonic flags (using symbolic litterals
instead of meaningless integer constants). See p.53 and 54 of user's manual.

Have fun,



Done for version 2.2.4 (released 12/09/2002):
    1- add default 'new_galois_format' to make 2.2.3 C-22 optional (by default,
       old format will be used, preserving compatibility)
 BA 2- FreeBSD: DL_DFLT_NAME value was incorrect
    3- Configure: TIOCGWINSZ not detected on Linux
 BA 4- FpV_roots_to_pol not reduced when applied to a singleton
    5- (a.x = [a]); "a".x ---> [a]  \\ should be ["a"]
    6- (a.x = [a]); print("a".x) ---> a0.E-28x  \\ should be ["a"]
    7- (a.x = [a]); 1.x ---> error \\ should be [1]
    8- wrong rnfidealnorm[rel | abs] (wrong result if O_L not free O_K-module)
    9- gcd(x + 1, x + 1/2) --> 1 \\ should be 1/2  [introduced in 2.2.1]
   10- gcd for multivariate polynomials over finite fields slower than
       in characteristic 0
   11- [library:] typo in vpariputs: pariputsf("%Z%Z",x,y) did not work
       (prints x and address of y)
IZ 12- [gnuplot + dynamic link:] allow building even when dlopen() not available
   13- [CVS:] warnings about unknown files (added .cvsignore files)
   14- f()=return \\ return "void"
       g()=return(f()) \\ return eval("void") = 0
       now g() returns "void" also
   15- f(x=11,y=x)=local(t=ff(),u=t);1 --> parse error
   16- conjvec([[],[],[]]) --> SEGV
   17- galoisisabelian(x) --> SEGV
   18- nfeltreducemodpr(nfinit(x),1,1) --> SEGV
   19- idealmul(nf, principal ideal, prime ideal) returned wrong result
       [introduced sometime in 2.2]
   20- elltors(ellinit([...], 1)) --> SEGV
   21- try to make sure life of GP variables is not too short. Was:
         v = [0,0]; v + [v=0,v=0] --> SEGV
         u = Mod(x*Mod(1,2),polcyclo(25)*Mod(1,2)); sum(i=1,4,u=u^32) --> SEGV
   22- typo in to_Fp_simple [ bnfcertify(bnfinit(x^2-40!)) --> type error ]
   23- memory leak in gp when handling '&' arguments
   24- removed hack in gcopy [ did not reset the isclone() flag because
       gunclone checks isonstack(). But other routines may want to use it ].
   25- apparent oo loop in bnfcertify [when computing lower bound for
   26- ideallistarch(nfinit(x),[1,1],0); --> SEGV [bad input]
   27- factor(x-I) --> x - #<16382>
   28- ellsigma(...,matid(1)) --> SEGV [bad input]
   29- ideleprincipal([],1) --> SEGV [bad input]
   30- factorback(matid(1),nfinit(x)) --> SEGV [bad input]
   31- incomplete help message for vecsort
   32- polredabs fails to reduce
       [typo in chk_gen_init: skipfirst not initialized properly]
MW 33- (recent) typo in localred (char 2)
   34- 2.2.3-C20 had broken backward compatibility: restore
       [inefficient, useless] previous output of nfelt*modpr routines
   35- idealappr(nfinit(y),matid(2),1) --> SEGV  [bad input]
   36- sqrtn(0,...) ---> error
   37- galoisinit(x^4 + 5264*x^3 + 8034856*x^2 + 4205424384*x + 504485485632)
       --> weird error
   38- qfsign([;]) --> SEGV
MW 39- torsion group of [0,0,0,-6648,208633] reported as C2 instead of C6
   40- bnfinit: very rare stack corruption
   41- bnfinit: used too much memory when needing huge number of relations
       [when computing fundamental units]
   42- bnrL1(bnr with conductor 1) --> SEGV
   43- "impossible inverse modulo ..." when using addprimes() + ROUND 2
MSo44- [gp: \x] missing 'break' statement in escape()
   45- wrong bound in nf_LLL_cmbf (nffactor) [no counter example to
       the old bound, but proof was wrong anyway...]
   46- [gp:] memory leak when assigning to multidimensional arrays (x[i][j]=1)
   47- added user-friendly error message if Configure not run properly + fix
       INSTALL.tex about make gp.dbg / gp.prf
   48- matcompanion(x*y) --> weird error
   49- typos in hilbert(), e.g
         hilbert(Mod(1,2), y) --> SEGV,
         hilbert(-1+O(2^3), 12 + O(2^3)) accepted wheras 2-adic precision too
         low to decide
BA 50- [FreeBSD:] PORTOBJFORMAT undefined by the system --> Configure fails
   51- rnfisnorm() [errors, SEGV]. Had to change the prototype.
BA 52- Oxxx/Makefile was not compatible with BSD make.
   53- errors in files read from .gprc, containing trap() --> SEGV
   54- bezoutres(Pol(sin(x)+Pi),Pol(cos(x))) --> "bug in subresext"
   55- nfsubfields had a different output format when using galoissubfieds
   56- polcoeff(1/x, -3) --> SEGV
   57- (-2/x)/(-1/x) --> -2/-1
BA 58- [GP internals:] trap() had an invalid prototype [DI,DI]
   59- M[,2][1]=1 --> error; M[1,][2]=1 --> no effect  [ now <==> M[1,2]=1 ]
   60- [GP:] newline in multiline comments /* */ was not ignored
   61- [GP:] when using default 'colors' for input at \gn>1, first debugging
       msg could be colored
   62- [GP:] in break loop, trailing ; was ignored (all results were printed)
XR 63- smarter precision increase in update_alpha() (ROUND 4) [stick to
       padics don't go over Z]
       Ex: factorpadic(polzagier(18,3), 2, 30) much faster than before.
   64- E=ellinit([0,0,0,-10301051460877581926458079712219,-12725370882271967125361344545020920373899020890]); ellap(E,1167254453) --> wrong result
   65- factor(x^2 + I*1.) --> SEGV
   66- when printing x < 0 t_REAL, was rounded in the wrong direction
   67- [WINCE port:] small and SID are already defined in windows.h

    1- remove most global variables from gp.c (put them in struct gp_data).
    2- use better bounds for size of factors in nffactor()
    3- tuning for van Hoeij's factorizer (factor + nffactor)
       nffactor: call factornf when deg(pol) << deg(nf) + remove a priori
       overlift for d-1/d-2 test [major overkill]
    4- automatic concatenation for strings: use longest match for expression.
       print("a"[1]) is not valid since "a" is not a vector
       print("a", [1])  prints  'a[1]'
IZ  5- [gphelp:] allow uninstalled operation from $TOPDIR or $TOPDIR/Oarch
IZ  6- [gphelp:] better error messages in case TeX compilation fails
    7- [development version:] add version number for this file to the gp
       header when using CVS
IZ  8- [library:] unified access to diffptr (NEXT_PRIME_VIADIFF macro)
    9- buchall: re-use the same random seed when doubling prec (for units)
   10- major cleanup in thue / thueinit
   11- major improvements in rnfkummer (use elements in factored form):
       much faster, give smaller elements, allow arbitrary prime degree
   12- improved quadray(D < 0) when relative degree is huge
   13- improved bnfisprincipal when class group large: use factorisation
       (+idealred) instead of arch. components (require much less precision)
   14- [library:] allow trapping invmoder and recovering the offending INTMOD
   15- improved factor over Z[X] for _huge_ degrees (factorizations mod p)
   16- change in ordering for primedec output [use cmp_prime_over_p]
   17- [library:] moved (formerly) gp-specific write* and print* to libpari
   18- input format to rnfisnorm() [use rnfisnorminit]
   19- [GP:] break loop prompt from '>' to 'break>'
   20- [GP:] don't get out of break loop after \r
   21- type f(x=1)=; twice ---> x = 1
   22- [trap:] the way default error handlers operate, how to get out of
       break loops (see section 2.7 of manual)

 BA 1- Add PARI_VERSION and PARI_VERSION_CODE to paricfg.h
 BA 2- Add pari_release at top of dft.Config.in
    3- rnfpolredabs: flag to use partial factorization
    4- [gprc:] test against VERSION number in .gprc
    5- [gprc:] multiline constructs
 IZ 6- mnemonics for flags
    7- internal flag nf_GEN_IF_PRINCIPAL to bnfisprincipal [isprincipalall]
    8- routine rnfisnorminit()
 BA 9- [Makefile:] bzdist target
   10- [library:] CATCH / TRY mechanism [ encapsulate err_catch ]

    1- (useless, undocumented) macros buchgen*, buchinit*
Karim Belabas                    Tel: (+33) (0)1 69 15 57 48
Dép. de Mathematiques, Bat. 425  Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud             Email: Karim.Belabas@math.u-psud.fr
F-91405 Orsay (France)           http://www.math.u-psud.fr/~belabas/
PARI/GP Home Page: http://www.parigp-home.de/