Karim Belabas on Wed, 16 Dec 1998 17:47:14 +0100 (MET)

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

PARI-2.0.13.alpha update

Hi all,

   here's another update (2.0.13.alpha):


If anybody is interested in diffs from 2.0.12.alpha, here they are:

This update includes a few _very_ important fixes for 2.0.12 as posted on
this list, plus the patches from Ilya (graphics + technical stuff for

See the Changelog below. Highlights:

*** the bench timings shouldn't be compared with versions 2.0.11 and 2.0.12
the nffactor() function reset the timer in the 'nfields' bench, which was was
not fully taken into account (about 15% of total time...) [this version _is_
faster than 2.0.11 and about as fast as 2.0.12].

*** The extended help is slightly more powerful now, and is able to search
arbitrary chapters in the documentation (in principle. In practice only 
chapter 2 and 3). In particular it understands more keywords now (??operator,
??member, ??userfun, ??\ps, ??t_QUAD, ??integer, ...). I just tried to
include some useful ones, not to be really complete. 

I would be interested in hearing about additional keywords you think should
be included (they may also be missing from the documentation...).

*** Since I had to fix a very bad bug in user functions code, I introduced
the following syntax

   name(x_0, x_1,...) = 
      local(t_0, t_1,...);

to declare local variables [Aside: this can only be used right after a
function declaration, not within arbitrary blocks, e.g in the body of a for
loop. I decided against this since
  1) it would offset the code/syntax much more than was needed to correct the
original bug
  2) it didn't look that useful
  3) it would be slightly inefficient (right now it's preprocessed upon
declaration) ]

The former syntax which did not distinguish between actual parameters and
local variables
     name(x_0, x_1, t_0, t_1,...) = 
is still recognized, but shouldn't be used anymore.

*** We also have a new pari.el by Olivier Ramare who will now maintain the
emacs files [no point in having a vi(m) junkie like myself maintain a set of
elisp files, is there?]. In particular, to use GP under emacs, you should now
include the following lines in your .emacs

  (autoload 'gp-mode "pari" nil t)
  (autoload 'gp-script-mode "pari" nil t)
  (autoload 'gp "pari" nil t)
  (autoload 'gpman "pari" nil t)
  (setq auto-mode-alist
    (append '(("\\.gp\\'"  . gp-script-mode)) auto-mode-alist))

(see emacs/pariemacs.txt)


Done for version 2.0.13 alpha (released 14/12/98):
IK  1- Configure hangs on FreeBSD systems
RD  2- Incorrectly applied Roland's patch (2.0.11: Fixed- 42)
    3- stack corruption in glcm (if operands > 10^155)
    4- index wrap-around in polsubcyclo (n > sqrt(2^31))
    5- incorrect placement of strings in psdraw
    6- memory corruption in rhoimag0
    7- fix up memory debug mode (\gm) when switching to alternate stack
    8- memory corruption (new_chunk + mulii) in gmul/gdiv (t_FRAC)
    9- escape chars in GP strings sometimes parsed twice (e.g Str("\\") --> "")
   10- nfinit(x^18+16) --> impossible inverse mod(0,2) (bug in eltppm()
       introduced in 2.0.12)
   11- weird SEGVs due to variable handling (changed the 'bloc' structure)
   12- moved highlvl.c to src/gp (libpari was missing symbols from plotport)
   13- polcyclo ignored its second argument (introduced in 2.0.12)
TP 14- minor fixes in paridecl.h (poldivres, gredsp: C++ compiler exits)
HC 15- still sign problems in resultant (see 2.0.12: Fixed-58)
   16- (Solaris):GNU ld doesn't like empty object files: remove kernel2.o
IZ 17- make bench forgot to treat the install() BUG in a special way
   18- factor(x^2 + I) --> SEGV (also with t_QUADs)
   19- factornf(x^3+1,y^2-1) --> stack doubling (now output error msg)
IZ 20- for Math::Pari fix valence of factormod()
IZ 21- outfile rename pari_outfile (conflict with gnuplot headers)
   22- DEBUGLEVEL could be modified and not reset upon interrupt
IK 23- make perl -wc gphelp happy
   24- incorrect use of gettime() in the library (nffactor) --> wrong timings
       (in particular for the 'nfield' bench)
   25- polred/polredabs used different types for output. Made both t_VEC.
   26- remove duplicate polynomials in polredabs(x,4) and polred
XR 27- precision fixes in modules/[nffactor|stark].c
   28- in compatible mode, \precision didn't work anymore
   29- typo in Round4 (case "p small" and "p huge" were swapped)
   30- incorrect prototype for conductor in compatible mode
   31- factor((x^2-1)/2) --> SEGV (factpol assumed integer entries)
   32- memory usage in Round2: nfbasis(*, 2) (also cleared some inefficiencies)
IK 33- typo in primitive_pol_to_monic
   34- deplin did not check its arguments
   35- quadray() assumed variable "y" was not in use

    1- glength() returns a C-long integer
    2- in hnfmodid(x,d) reduce mod d immediately
    3- allow vector(n), and matrix(n,m)  (filled with 0s)
    4- under GP, wait for input if line ends with '=' (cf \)
    5- wait for input when a line ends with an '=' sign
    6- modified extended help to (potentially) search the whole manual
    7- in nfdisc, specific error message if discriminant is 0
    8- use divide_conquer_prod() in factorback()
IZ  9- in test suite, add setrand(1) in front of poltschirnaus
IZ 10- M-( bound by default
IZ 11- improved gnuplot support
   12- improved gcmp[1|_1](t_REAL)
OR 13- new pari.el (see emacs/pariemacs.txt)

    1- members e, f, p, gen for prime ideals
    2- mathnf([M, M2]) computes mathnf(M), updating M2 (equivalent to
       v=mathnf(M,1) then M2*v[2], but much faster if M2 is small or over a
       finite field)
    3- local() keyword for user function definitions in GP
IZ  4- new functions plotfile(), plotpointsize()
IZ  5- splines for ploth (flag 256)

    1- \k metacommand
Karim Belabas                    email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud             Tel: (33 1) 01 69 15 57 48
F-91405 Orsay (France)           Fax: (33 1) 01 69 15 60 19
PARI/GP Home Page: http://pari.home.ml.org