Karim BELABAS on Thu, 7 May 1998 18:19:33 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
pari-2.0.8 update. |
Hello all, here's yet an other update (still Alpha) ftp://megrez.math.u-bordeaux.fr/pub/pari/unix/pari.tar.gz The diff file with previous version 2.0.7.alpha can be found at ftp://megrez.math.u-bordeaux.fr/pub/pari/2.0.7.a-2.0.8.a.gz As Gerhard put it on his Website: > PARI-GP will make a star appearance in the Special Session on Mathematical > Software of the ICM'98 in Berlin, probably on Friday, August 21, 1998 [see http://www.zib.de/Symbolik/ICM98] Since I'd like to have a stable release ready by that time, I'm freezing all changes. The next update, scheduled early next month, will be bug-fixes only and WILL be a Beta (famous last words). I think many important problems were fixed this time so if you've been waiting to upgrade for some time, please try out this one. Enjoy ! Karim. P.S: The Changelog =========================================================================== Done for version 2.0.8.alpha (released 07/05/98): Fixed 1- improved garbage collecting in polroots 2- zetak did not check its nfz argument properly. 3- warnings from MSVC GN 4- isprime() did not work for numbers in [2^(BIL-1), 2^BIL-1]. GN 5- precprime sometimes missed a prime. 6- quaddisc(x in Q\Z) did not always work. 7- powering of zero series 8- factorization of null matrices (SEGV). 9- mateigen for non-diagonalizable matrices (SEGV). GN 10- infinite loops in some arithmetical functions when arg = big prime GN 11- cleaned up paridecl.h 12- gimag/greal for type t_RFRAC/t_RFRACN (fix: Terje Sparre Olsen) GN 13- ordinal numbers to number components seen through \x HC 14- lllgram: incorrect gabage collecting in first "warnmem". 15- theta(q exact, z) entered infinite loop 16- typo in gdiventres (x<-->y in last line). MS 17- gtrunc for p-adics when valp(x) < 0 MS 18- polresultant(u+v,u-v,v) => x + u; polresultant(u+v,u-v) => 2*u MS 19- issquare(Pol), where Pol(0) = 0 IZ 20- use 15 points (by default) for recursive plotting as documented 21- matsnf for singular matrices (supersedes a patch by GN) LG 22- micro kernel support for HPUX LG 23- compilation with Sun's C++ compiler (version 4.2) 24- SEGV when factoring polynomials of huge degree (removed expos[100],etc) 25- garbage collection in gpuigs GN+BH 26- micro kernel support for ix86 running SunOS. HC 27- handling of 0x0 matrix in some hnf* functions HC 28- bug in discrayabslist* (try bnrdisclist(bnfinit(y^2-2),200,,1) in 2.0.7) Changed: 1- moved hnf and snf from base1.c to alglin2.c (base1.c too big). 2- use gexpo in linear algebra functions when entries contain real numbers (work for inexact polynomial entries now). Still does not work properly for p-adics. GN 3- in sigma() fall back to numbdiv() or sumdiv() when k < 2. 4- made comments started in file through read("file") local to file. (not so \r file) 5- valuation(0) now returns VERYBIGINT instead of raising an error. MS 6- simplified gegal in case t_FRAC IZ+GN 7- faster initprimes, using less memory LG 8- improved Configure Added: 1- new function write1. MS 2- new Lisp-like quote operator 'a IZ 3- readline: electric parentheses, move across balanced expressions, add formal arguments to completion of GP command (when unique). 4- micro-kernel for hppa 5- quiet mode (gp -q) to suppress headers =========================================================================== Done for version 2.0.7.alpha (released 21/03/98): Fixed XR 1- SEGV in get_regulator for imag. quad. fields 2- "beautified" output (still ugly, less buggy, ok for simple objects). 3- error during "print()" could change output default. 4- SEGV when syntax errors in gprc. 5- make install failed when libpari.$sodest had been removed. 6- moved term_width and term_heigth to es.c HC 7- inefficiency in mulii (Karatsuba used too easily). XR 8- many problems in stark.c XR 9- bugs in rnfpolredabs (+ new flag) GN 10- _many_ typos in tutorial and user's manual. New, much nicer, layout. 11- whatnow not robust enough + faulty call by err_new_fun ==> SEGV 12- idealadd treated incorrectly the 0 ideal 13- default(realprecision) gave wrong value when format had been changed. 14- bnfs structure was inefficient for applications (inverted 2nd comp.) 15- buffersize was incorrectly updated during complicated read() 16- one-line comments "ignored" if buffersize too small. 17- using eval on object containing killed variables caused a SEGV. 18- contfrac lost last term when first parameter was rational and numerators were supplied. 19- problems when dividing with polynomials/series whose leading coeff is non-exact 0. BD 20- missing #ifdef ZCAT in es.c BD 21- check in paricom.h whether min / max are already defined BD 22- universal_constants freed early in freeall() (problems on Windows NT) BH 23- update Makefile.dos (nf.h --> parinf.h) BH 24- changed kernel/ix86/level0asm.c (FUNBEGIN/FUNEND + ALIGN) 25- cleaned the gauss_pivot functions + garbage collecting in gauss(). 26- mathnfmod did not check its second argument. 27- since 2.0.4 (item 24) install did not work anymore on FreeBSD + gp-dyn 28- cleaner malloc in plotX.c (to remove Warnings when debugmem > 0) 29- slightly optimized matdet (gsub --> gadd(,gneg)) 30- ? x=1; Pol(1) *** variable name expected: x,n, ^--- is fixed everwhere (wherever an optional variable name is expected). setting "x" to some value is now safe. IZ 31- nicer looking plot() function 32- warnings while building for m68k arch. 33- sqrt(Mod(1,2)) went into an infinite loop. 34- ?? did not resolve aliases. 35- besselk near integers entered an infinite loop 36- p-adic sqrt (bad valp) 37- hnfmodid could output wrong results (wrong diagonal) and wreck the powering of prime ideals 38- added garbage collecting in izeta. 39- ??a_number now works as gphelp. 40- in prettymatrix format, matrices 0xn and nx0 are always printed as [;] 41- 1 - "a" ==> SEGV Changed 1- reorganized output functions (es.c). 2- have mulir check if integer is small. 3- part of GENtostr inlined (check_output_length()). HC 4- functions where it makes sense now admit an optional argument for "variable number" (intformal, deriv, things having to do with polynomials, etc) 5- lines of any length can be input interactively (previously 1k at most). 6- remove {} and \ from readline history 7- improve treatment of sample programs in gphelp -d 8- uniformized debugmem messages. 9- simplify the coinit function (Michael Somos) 10- changing the function set through default(compatible,) no longer resets installed functions. 11- renamed nfker-->nfkermodpr, nfgauss-->nfsolvemodpr. 12- simplified/extended dummycopy 13- listput gives more informative error messages Added 1- default: lines HC 2- (made known to GP) functions nfmodprinit, nfkermodpr & nfsolvemodpr. XR 3- function bnrstark 4- install code D& (optional pointer). 5- function name_var (to use after fetch_var) 6- concatenation of lists (or row vectors) of objects (overloaded concat). 7- ranges for vecextract (eg. vecextract(x, "1..3")) Removed 1- useless code 'F' in analyzer. 2- perl directory (moved the files in ./perl to ./doc) =========================================================================== Done for version 2.0.6.alpha (released 22/02/98): Fixed 1- \x (voir2) did not always print the correct number of words 2- in changevar, type POLMOD, modulus and polynomial were interchanged. 3- all occurences of former header file names in the documentation 4- (from 2.0.5. item C5) using allocatemem in a script aborted file reading. 5- expanded the documentation for bnrrootnumber 6- factor(pol. with rational non integer coeff) could corrupt the stack 7- Euler gave wrong results when prec > 80502 digits (cleaned up Pi as well) 8- cleaned up ggcd, grando0, tayl and factorpadic2. 9- is_scalar_t --> is_const_t in gvar/gvar2 IZ 10- Configure and example Makefile for OS/2 11- idealprincipal did not accept n x 1 matrices 12- idealhnf(nf,a,b) did not work for quadratic fields 13- matsolve[mod]([;],.) could corrupt the stack or accept incorrect input. 14- modules/galois.c unnecessarily included <sys/stat.h> BH 15- symbol name problem in level0asm.c (cancels patch by IZ) XR 16- fixes in stark.c 17- cleaned all occurences of HIGHVALPBIT and HIGHEXPOBIT 18- serconvol assumed main variable was "x" 19- (x + O(x^2))^(3/2) gave a stupid error message 20- types not checked correctly in gtoser 21- check more seriously arguments to default() 22- in Makefile: added some missing $(RM), changed an "ln -s" in $(LN) 23- extra '\n' after print1 + sequence of warnings 24- simplified a statement in addii() 25- typo in classno() (classno(-200183): "division by 0") + cleaned classno 26- all compiler warnings + most of lint's 27- make install would not work anymore if emacs was not found 28- HNF reduction not always complete when rank is small compared to dim 29- gphelp -d did not handle ~ properly (+ cosmetic changes) Removed 1- unused files src/kernel/ix86/{asmi386.h,asmi386inline.h} 2- useless macro gcopyifstack and global variable RAVYZARC 3- useless error message gcder1 4- useless (undocumented) function fasthnf Changed 1- simplified isonstack 2- extended valid inputs for matsolvemod. 3- don't output a '\n' before an empty matrix. 4- mpsincos no longer static (so that it can be installed). 5- reorganized gp_initrc() to cater for for non-UNIX arch. 6- the "obsolete function" message now launches whatnow() directly. (and caters for the special cases "i" and "o" now). 7- improved stack management in hnf/allhnfmod/fasthnf. 8- moved powering functions to trans1.c 9- disable logfile while reading .gprc 10- (slightly) the output of whatnow() Added BH 1- support for DOS build using EMX (dos directory + fixes) 2- function cotan() and bernfrac() 3- a code for pointers (&) for analyzer and install(). 4- ??readline now includes info about completion and online help =========================================================================== Done for version 2.0.5.alpha (released 07/02/98): Fixed BH 1- LOCAL_HIREMAINDER added twice more in mp.c LG 2- some symbols declared extern in gp_rl.c to avoid compiler warnings. LG 3- isprime could corrupt the stack (isprime_proto removed) LG 4- possible redeclaration of macro from system header (MAX in bibli1.c) 5- typos in the user's manual 6- removed unused error numbers and fixed their ordering in mp.s 7- a ; or : after read/extern was not always correctly taken into account. 8- a bug in polroots (possible SEGV in very rare cases) (Paul Zimmermann) Changed LG 1- (huge) reorganization of PARI kernel and headers 2- logfile example in gprc.dft to take advantage of "time expansion" XR 3- stark units module rewritten HC 4- rnfpolredabs improved 5- errors now cause GP to close any file it was reading instead of going on 6- increased the static limit for the number of files opened simultaneously Added XR 1- function bnrrootnumber =========================================================================== Done for version 2.0.4.alpha (released 26/01/98): Fixed 1- recovery on startup was not correctly disabled. GN 2- pari.el (see emacs/pari.el-changes) 3- "" missing around a DLLD caused Configure to fail if shared library not available. 4- component of GEN could be created before its root in gadd(t_SER, t_SER) 5- nffactormod did not like big primes 6- removed the `.' binary concat operator introduced in last update. (broke semantics). Instead Str() argument evaluated in string context. 7- solve did not find some obvious zeroes (solve(x=-2,1,x) for instance) 8- Configure -pg did not work 9- 68k version didn't work: corrected mp.s, moved some code & defines. 10- subst(x,variable(x),1) did not work. 11- flag acted contrary to doc in matsolvemod 12- in rare cases the prompt could still start at column > 1 13- bnfissunit much faster now 14- idealval could make mistakes with non-integers. 15- Mat([1])[1,] gave a stack error 16- zetakinit(x-1) as well 17- zetakinit(K, even integer) gave a wrong result whenever r1(K)>0. 18- typo in whatnow(hermite) and ?bnfsunit 19- missing newline in user error after print1 20- various typos and omissions in chapters 1, 2 and 5 of manual. 21- (x-x)==(y-y) returned FALSE 22- polfactormod(f,0) gave a SIGFPE. 23- some missing #ifdef UNIX BH 24- install() now works for gp-sta under Linux and OSF BH 25- gcc Warnings in gp.c + es.c BH 26- problems when installing from a different non-priviledged account BH 27- inefficiencies in mpinline.h (replace memory access by a constant) Changed 1- when logging mode is on, record command line as well as result, and flush buffer often 2- subdirectory lib now called misc. Changed some filenames in it. 3- defaults psfile and logfile are now run through strftime 4- for benches total time now taken into account ([BUG] was excluded) 5- noerr is now the LAST error message (for CLISP interface) 6- cleaned path expansion (default(path,...)) 7- renamed types.h and cast.h (prefixed by "pari"). 8- renamed type Rect to PariRect. 9- kernel/kerPPC.s replaced by kernel/kerPPC.c (Dominique Bernardi) 10- made static the arrays in check_isin() (for the Mac port) BH 11- overflow/hiremainder use local variables as much as possible 12- prompt not printed during a batch job, unless echo is set Added 1- gplogfilter script in misc 2- check for strftime in Configure 3- support for alpha running linux (include portability fix on keralpha.s) 4- file MACHINES 5- made message for "array index out of range" error more precise. 6- more frequent garbage collecting in mathnf BH 7- inline asm for i386 GN 8- support for native compiler on AIX Removed 1- support for dynamic linking on AIX (did not work) =========================================================================== Done for version 2.0.3.alpha (released 13/01/98): Fixed: 1- rare bug in gadd (PADIC + PADIC) which caused one of the arguments to be overwritten. 2- typos in refcard. 3- galois.c still couldn't compile on the HP (_INCLUDE_POSIX_SOURCE) 4- introduced in 2.0.2: item 14 used gexpo incorrectly (bnfinit sometimes did not give units it could have computed). 5- replaced INFINITY by pariINFINITY in rootpol.c (cancels Warning on OS/2) 6- on OS/2, target ../gp-$dft in o.xxx/Makefile could not be built (extraneous $exe_suff) 7- command line switches so that one can enter them with or without white space (new function read_arg in gp.c) 8- setdcolors so that it can't unset disable_colors if we are under emacs. 11- random did not check its argument correctly (random(2^32) was accepted) 12- b=10; for(a=1,b, b=2) exited immediately, whereas the upper bound is supposed to be evaluated only once. 13- reorganized the error recovery system (initially because errpile could cause SEGV on Linux systems) 14- typo. problems in doc and refcard (interletter spacing in $nfz$...) Changed: 1- Reorganized Makefile.SH: extraction twice as fast. 2- pari.menu and pariemacs.txt rewritten, pari.el updated. 3- expanded the man gp.1 to mention command line switches 4- the implied input from non-interactive input command (like extern and read) does not go into the GP history (%x) anymore (it never went into readline's). The final output (value of last expression evaluated) of course still does! 5- updated chapter 5 of the User's Manual (removed obsolete information). Added: 1- better settings for handling the Meta key under readline in examples/Inputrc 2- support for shared libraries under FreeBSD (Y. Uchikawa) 3- colors under Emacs (thx for the help Gerhard!) 1) emulate exactly the "colors" default after a M-x gp 2) .gp files edited get a special highlighting. 4- a flag to default() to get the result under GP. 5- overloaded the "." (member) operator to concatenate as strings if LHS is a string. 6- .gprc accepts some limited preprocessing directive (#if READL and #if EMACS (and #ifnot as well)). Updated lib/gprc.default to reflect the changes. Removed: 1- some unused, undocumented functions (allocatemem(), checksqid()) made static some other (op_ReIm). =========================================================================== Done for version 2.0.2.alpha (released 15/12/1997): Fixed: 1- typos in the documentation for the random() function 2- removed an extra -emacs flag in pari.el 3- decodefactor was incorrectly remembered by whatnow (it's factorback now) 4- test mode did not prevent all prompt expansion (==> bug in make test) 5- gphelp stopped abruptly when meeting a cross-referencing macro. 6- zetainit now aborts cleanly when disc. too big (could cause memory fault) 7- exceedingly rare bug in the printing of real numbers (missing decimals) 8- too early rounding in polroots which in rare cases made GP think some error had happened. 9- text overflowed the manual pages (and tutorial) on non-A4 paper. 10- polred incorrectly assumed that nf arguments were totally real (in a non critical part: that just led to some unnecessary computations). 11- polred(f,2) could try to overwrite universal integer gzero 12- check if we are using GNU as or GNU ld in Configure. 13- empty -R argument to $CC when building GP without graphics (==> link failed). 14- bnfinit acts sensibly when fundamental units are too large (before: "overflow in R*R") 15- cleaned up buch2.c (removed ideallllredpart1, removed gerepile in class_group_generators(), not_given now called from getfu) 16- nfgaloisconj(...,2) was unusable (tried an illegal multiplication). 17- is_totally_split was very inefficient (==> nfgaloisconj was very slow). 18- some unimportant typos (gexpo) in polgalois. 19- compiling without readline gave a Warning in gp.c (already_hist). 20- some make programs out there don't like $< (suppressed from doc/Makefile) 21- ellap sometimes assumed (wrongly) that coeffs of the curve were integers. 22- flag 0 and 1 in ellap had been mixed up. 23- print an extra \n before an error message if last output did not include it. 24- component(any non recursive type) gave a SEGV. 25- suminf / prodinf / prodeuler assumed they treated a real expression. 26- lindep / algep had problems with numbers having a rational component. 27- last significant digits of bessel* and hyperu were wrong (now only the last one is). 28- expi now returns a long as documented (expi(gzero) returned 0 on 64-bit machines!). 29- g++ could not compile libpari.a (casts missing, extraneous extern "C", faulty inline, etc.). 30- cleaned up the enums in gp.h 31- incorrect target veryclean in doc/Makefile Changed: 1- '_' is now valid in GP identifiers. 2- removed subsections from table of contents. pages in the manual are now numbered consecutively. 3- gexpo now accepts exact 0 arguments (return -HIGHEXPOBIT). gexpo for complex numbers now return max(gexpo(Re), gexpo(Im)) 4- parts of lib/gprc.default 5- the second argument of subgrouplist is now optional Removed: 1- buggy label/goto functions 2- (now unused) error messages: labeler, gexpoer2. 3- _ as shorthand for conj() 4- (useless, undocumented) function gnormalize 5- some files in the lib directory (functions, gp) Added: 1- some files in the lib directory (README, pari.xbm, xgp) ============================================================================== Done for version 2.0.1.alpha (released 29/11/1997): Fixed: 1- multiple factors forgotten when factoring univariate pols over Z. 2- extraneous modifications of the random seed (period of random generator was ridiculously small for some buchxxx functions). Change the bench results (in a non essential way). 3- bad terminal size determination. 4- aliases incorrectly killed (possible SEGV). 5- incrementing/decrementing array elements with the (valid) syntax v[i]++ / v[i]-- caused a weird error message. 6- subgrouplist() could end up by a SEGV on Linux systems. 7- on HP-UX, flag -Aa was not taken into account in Configure (caused it to fail on has_TIOCGWINSZ.c) 8- added a missing #define _INCLUDE_POSIX_SOURCE in galois.c (last 2 indepently fixed by Oliver Voigt and LG). GN 9- the script examples/cl.gp called vecconcat() instead of concat() GN 10- make install-sta rebuilt gp-sta unnecessarily. GN 11- many, many typos in the tutorial. 12- tu / fu applied incorrectly to a bnfclassunit. 13- bnfclassunit did not output a valid object (matrix whose elements were rows instead of columns). 14- conversion bug from t_QUAD to t_REAL/t_COMPLEX 15- off-by-1 error in the history recovery after an error. 16- in fprintferr() (e.g. debug messages), embedded %Z did not work correctly 17- rnfequation over Q yielded a SEGV. 18- string() in compatibility mode corrupted the stack. 19- it is now safe to have colours in prompt and input line under readline. 20- default colours restored upon exiting. 21- default colors in lib/gprc.default used 0 instead of -1 for "no color". 22- psi and lngamma could give wrong results when the argument was not real 23- the make test-graphic bench was missing a newline. 24- Pol(break) gave a SEGV. 25- x=1; Pol(1) gave a stupid error message. IZ 26- tutorial.tex was unnecessarily rebuilt 27- typos in ggcd (cases nobody will ever access: gcd of a non-reduced LG fraction with an intmod, etc.) LG 28- incorrect handling of integrals of vectors 29- gcd of polynomials with non-exact coeffs gave stupid results (now, they are just often wrong, since the mathematical notion is rather imprecise). 30- typos in rnfkummer (incorrect flag handling) 31- typo in idealpowprime (negative exponent gave wrong denominator) 32- multiplication t_COMPLEX x t_COMPLEX used 4 mult. instead of 3. 33- some modular functions (j, f, f2) rewritten to take advantage of new eta function (trueta). Changed: 1- ?? (gphelp) starts in detex mode (-d) from a console window. tmp files now placed according to the $TMPDIR environment variable (in /tmp by default). 2- /usr/local/lib/pari/data is a better place for the Galois resolvents (which are not included yet in the standard distribution). 3- The example for prompt in gprc.default to discuss escape sequences under readline. 4- Configure now starts by searching the toplevel directory for a temporary readline installation. 5- The output of default(colors) was confusing. It is a string now. 6- third argument of polinterpolate can be arbitrary and is now optional ("x" by default) (it had to be numeric). 7- directory configure renamed config, some of the Makefiles in there as well (to avoid confusion). 8- the low_stack macro to facilitate dynamic stack expansion 9- if, back to GP main loop, the last command was a print1(), output an extra newline. This way the prompt is guaranteed to be anchored on column 1 (suppresses a readline display bug as well). 10- Due to 9, pari.el now supposes the prompt starts in col. 1. 11- Better handling of version numbers (LG) 12- decodefactor() renamed to factorback(). Removed: 1- The (unused, undocumented) Malloc_Procs functions and macros. 2- The (now unused) error message numvarer. 3- some (useless, undocumented) targets in the top Makefile 4- (useless, undocumented) function polgcd() Added: 1- This file ! 2- new flags -ch, -cb, -cu (colour support) to gphelp (see its header). IZ 3- OS/2 (+ enough tools...) supported by Configure 4- file examples/Inputrc (example of .inputrc for readline). 5- Weber f1 function implemented. 6- Karatsuba multiplication t_REAL x t_REAL (development code, not used by PARI yet). Test it with install if you wish. -- Karim Belabas e-mail: 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 Fax: (33 1) 01 69 15 60 19