Karim BELABAS on Fri, 5 Mar 1999 19:54:35 +0100 (MET)

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


Hi all, 

  pari-2.0.14.alpha is now available at


This should have been released long ago since 2.0.13.alpha suffered from a
couple of severe bugs. But some alpha testers (kudos to Igor Schein, in
particular) were a bit too successful, hence the TODO list grew out of

All bugs known to me have now been cleared out (except an obscure one having
to do with readline completion which I could not reproduce). This was
supposed to be a bugfix release only, but :

1) gphelp has been improved in various ways, most useful being "apropos help",
which is queried using ??? pattern under GP (and gphelp -k from the shell),
which searches the whole manual to look for entries mentioning this topic
(there's no indexing, just a simple pattern matching). E.g:

(19:43) gp > ???GRH
bnfcertify    bnfclassunit  bnfisintnorm  bnfisnorm     quadclassunit
rnfisnorm     thue          thueinit      

See also:
  Functions related to general number fields

(19:43) gp > ???reduction
ellglobalred elllocalred  idealpow     idealred     mathnf
matkerint    nfinit       polred       qfbcompraw   qfbpowraw
qfbred       rnfpolredabs 

All such entries are accessible from the online help (e.g ??"Functions related
to general number fields" will work now), and one can get help from different
chapters in the manual:

(19:48) gp > ???gerepile@    \\ @ = search all installed chapters

Chapter 4:
Assignments Examples    

See also:
  A complete program
  PARI variables
  Some hints and tricks
  The calling interface from GP
  Why and how

Chapter 5:
  Memory allocation on the PARI stack

(19:47) gp > ??Assignments@4  \\ search chapter 4 only

   Firstly, if x and y are both declared as GEN (i.e. pointers to something),
the  ordinary  C  assignment  y = x makes perfect sense: we are just moving a
pointer around. [...]

2) while clearing out some problems related to local(), I introduced another
scope declaration function: global(), to explicitly restrict the use of
"globally declared" parameters (forbidden as loop index, local parameters,

3) I added a function znlog (discrete log in F_p^*, using simple-minded
baby-step/giant step) as per the gp script posted on pari-user . It's small,
doesn't break existing code and performs orders of magnitude faster than the
generic ideallog.

Done for version 2.0.14.alpha (released 05/03/99):

    1- factormod(2*x+1, 2) --> "factor for general pol. not implemented"
IK  2- gphelp could leak temporary files
BD  3- for native Win32 build: buffer overflow in get_home, incomplete
       paricfg.h, typo in try_pipe (#endif misplaced)
    4- nfsubfields: could miss subfields if index > 1
    5- removed 3 useless setrand(1) in subfields.c
    6- rare and obscure memory bug in inverseimage (lost pointers in gerepile)
    7- memory bug in factorpadic4 (prime not copied before result)
    8- memory consumption in round2 (allbase)
GT  9- m68k version: duplicate symbols from mp.c
IS 10- Cygwin: in mpqs.c, open files in binary mode (otherwise fseek goes crazy)
   11- bnfisprincipal().gen gives the expected answer
IZ 12- signatures for Math::Pari in highlvl.c / init.c + GNUPLOT
       set-output-file problem
   13- if we think readline needs libiberty, check whether it's installed first
DB 14- PowerMac: header inclusion in highlvl.c, lround def'd in system headers
XR 15- rnfkummer makes sure to return an integer
XR 16- rnfconductor accepts polynomials with rational coeffs.
   17- polredabs + internal precision change --> nfnewprec forgets nf[5][1]
   18- don't log lines twice when pariecho is set
   19- glitches in content() (e.g content("a") --> SEGV)
   20- get_sep(2) reacted incorrectly to empty strings.
   21- rootmod could destroy its argument
   22- Fp_pow_mod_pol(x, 1,...) should return gcopy(x), not x
   23- galoisconj1 computed wrongly the precision needed (+ prototype change)
IZ 24- remove __OPTIMIZE__ dependence (define GCC_INLINE instead)
   25- off-by-1 error in apell1
   26- misleading error message in minimalexponent()
XR 27- in nffactor, forgot to update precision when increasing exponent
       (+ various typos)
   28- sparc + non-gcc --> kernel2 possibly not included: compilation failure
   29- when echo is set don't print prompt if line is empty
   30- ellpointtoz sometimes return -x instead of x
   31- gp -b 1 --> hangs gp
DE 32- many glitches in manual
   33- mathnf(x, 3) when x hasn't maximal rank (SEGV)
   34- differences in buchall 32bit/64bit (PRECREG too high. bnfinit(x^13-6))
   35- various inefficiencies in nfshanks ("module too large in nfshanks")
   36- memory leak in buchall (= bnf*)
   37- "not a definite matrix in lllgram" after a call to bnf*
   38- typo in factorff(x^3+2,3,y^2+1) --> SEGV
   39- [internal] missing tags (e.g zprimestar) after make ctags
   40- idealstar(*, big prime) --> cryptic error msg (more tolerant now)
   41- have Mod(0,1)^-1 return Mod(0,1) (fixes znstar(prime))
   42- ginv(-1/2) --> 2
   43- heap leak when using local()
   44- overflow in addssmod
   45- changed the syntax of round()
   46- sqrt(1. + O(x)) --> infinite recursion
IZ 47- don't create GP variables when expanding strings
   48- internal variable 'parisize' not properly updated after allocatemem()
IS 49- config/display didn't work properly with ActivePerl
IS 50- Configure didn't handle most recent Cygwin
   51- polinterpolate([],[]) --> SEGV
   52- adapted gp_rl.c to readline 4.0
   53- glitches in whatnow database (new file src/gp/whatnow.c)
   54- all warnings from gcc 2.8.1
   55- uninitialized tetpil in gscal() (bnfreg(x^2+1))
   56- precision problems in polgalois (degree > 7)
   57- config/locatelib prompted a lot of useless work (returning too many
       libraries) and could pick up the wrong library.
   58- very rare bug in nfbasis (discriminant ok, but wrong basis)
   59- quadclassunit: make sure sub factor base is big enough (oo loop)
   60- more flexible "colors" default (initial work IZ)

    1- x.fu outputs polynomials (as all bnf* functions), not polmods
    2- improved mppgcd (including vali)
    3- improved division vector/scalar
    4- \x to print a * in front of out-of-stack moduli (t_[INT|POL]MOD)
IZ  5- better commandline usage message
    6- don't buffer log messages going to pari.log
    7- accept [nf, t_POLMOD] where nf is expected
    8- poldisc() and quadgen() accept an optional variable name
    9- when defining user function check for duplicate variable names
   10- [internal] is_entry always uses function_hash (use is_entry_intern)
OR 11- pari.el updated (see emacs/pariemacs.txt)
   12- removed shiftl from lgcdii
   13- use roots_to_pol in polgalois
   14- precision heuristic in gauss_get_prec
   15- cleaned up lllall and lllgramall
   16- sort the output of nffactor, nfroots, factorff and factornf
   17- nfgaloisconj now guaranteed to find all conjugates (use nffactor)
   18- Removed flag 1 in nfisisom/nfisincl: function checks its arguments,
       and uses the best algorithm (both guaranteed complete). Changed the
       names (nfiso/nfincl) in library mode to match GP usage.
   19- gerepile(ltop,lbot,0) no longer returns ltop - lbot
   20- improved floor and round(t_FRAC).
   21- removed some duplicate code from nffactor
   22- passing a pointer to GEN in a GP funciton now explicitly requires an &
IZ 23- more verbose error messages for online help
   24- increased a bit poltschirnaus's period
   25- DOS version: don't use more for external help
   26- cleaned up buchall code
   27- removed unnecessary gres from polarit1.c:to_fq()

    1- apropos command in gphelp (-k switch), ??? under GP
    2- function global()
    3- function gp_variable to use sums, etc in library mode
    4- [internal] new functions mulmat_real
    5- new functions gerepileupto[leaf|int]
    6- function znlog()
IZ  7- added default(color, "yes" / "no")
    8- --static flag to Configure

    1- isinclfast/isisomfast
    2- rounderror
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://hasse.mathematik.tu-muenchen.de/ntsw/pari/