Karim Belabas on Sun, 01 May 2011 13:56:08 +0200

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

pari-2.4.4.BETA released

Dear PARI lovers,

I would like to announce the release of pari-2.4.4-BETA. The sources
are available at the address


The testing development branch is now mature enough to become the next 
stable branch: pari-2.4.4-BETA is a release candidate for pari-2.5.0-STABLE
Please help us test this Beta release!

-- How to report problems:

-- List of known minor bugs in this release:
(These will not be fixed before the STABLE release)

This is mostly a bugfix release coming on top of pari-2.4.3.
Some new features, still:

[Basic arithmetic]
  - subquadratic gcd over prime finite fields
  - private "prime table" (addprimes) must now contain primes only: its
    entries are now used in all arithmetic functions [new function
    addpseudoprimes to cover old usage: in factorint() only]

[Number Fields]
  - bnfinit: huge improvements for fields of large degree or admitting
    non-trivial automorphisms (series of patches by Loic Grenie).

  - new default 'histfile', to save your typing history in between sessions !
  - all GP functions are now understood by GP2C

Have fun,


P.S: The Changelog.

Done for version 2.4.4 (released 29/04/2011):

BA  1- FpX_gcd did not garbage-collect for large input.
BA  2- 'make all' failed to build the documentation.
    3- typo in polgalois() when new_galois_format is 0 : returned [3,1,2]
       instead of [3,1,1] for C_3
    4- rnfkummer was using too much stack.
    5- nfgaloisapply did not work on extended ideals.
    6- Strprintf and printf0 prototypes were wrong.
    7- Mod(4*x+1,Mod(1,2)*x) -> SEGV [#1116]
    8- gcd(t_INTMOD, t_FRAC) -> SEGV
    9- qfjacobi failed on a matrix of zeros (or in presence of 0s of large
       exponent) [#990]
   10- t_SER / t_SER where denominator has 0 leading term -> SEGV [#1120]
   11- (t_COMPLEX of t_INTMOD) + t_PADIC -> SEGV [#1121]
   12- (t_QUAD of t_INTMOD) + t_PADIC -> SEGV [#1122]
LGr13- bnfinit: various performance improvement.
BA 14- several instance of random garbage collection were broken.
BA 15- [install]: support for D0,G, and D"str",s, in prototype code.
BA 16- [gp2c]: foo(x:mp)=... did not work.
   17- when the divisor's leading term was 0, RgX_divrem(,,&rem) created rem
       before the quotient (invalidating the use of cgiv() suggested in the
       documentation) [#1129]
   18- gadd(t_COMPLEX of t_REAL, t_QUAD = 0) -> SEGV [#1131]
   19- log(11+11^2+O(11^3)) -> bug in log_p [#1136]
BA 20- (ffgen(ffinit(2,10))*0)^-1 -> oo-loop
BA 21- ispseudoprime(-3,0) != ispseudoprime(-3,1)
BA 22- text form of a closure now include the closure context.
BA 23- reading compressed files could corrupt the stack.
BA 24- t_CLOSURE==t_CLOSURE and t_CLOSURE===t_CLOSURE did not work.
   25- gequal1(0.*x + 1) returned 0
   26- ispower((100!)^2) -> 0 [#1155] Affected pure powers divisible by more
       than 22 of the 26 primes <= 101. (introduced in 2.4.3)
BA 27- LLL could fail (rarely) due to insufficient precision [#1154]
   28- rnfisnorminit(y,x^2-Mod(2+y,y)): polynomial not in Z[X] in nfinit [#1157]
   29- factorff failed to merge identical irreducible factors [#1159]
BA 30- ploth(x=0,1,0,"Complex|Recursive") -> SEGV [#1163]
   31- mathnf(dim > 8) could return a non-HNF upper triangular matrix [#1153]
BA 32- forsubgroup() did not handle break/next/return.
   33- modular resultant, e.g. rnfequation(polcyclo(17,y), x+y^6,1) [#1151]
   34- gequal1(x) / gequalm1(x) did not implement gequal(x, 1) for t_COL/t_MAT
   35- matsize(vecextract(M,0,y)) -> [;] instead of matrix with 0 and the
       requested number of columns [#1170]
   36- readline completion : allow commas ',' in directory names [#105]
   37- List() == List() returned 0.
   38- [Configure] C_INCLUDE_PATH was not used when looking for libgmp
BA 39- polroots(1) returned [] instead of []~.
   40- a succession of <C-C> in breakloop context would reinitialize timer
   41- matsnf(matdiagonal([x,0])) --> [x,0] instead of [0,x]
BA 42- qfbred(large discriminant, small prec): precision too low in truncr [#1173]
PMo43- erfc(large x) was slow and inaccurate [#364]
   44- erfc() : allow t_COMPLEX inputs
   45- stack corruption in ifac_decomp_break() [#1115]
   46- factor(0) returned 0^1, but factorint(0) raised an error. Allow
       factorint(0), core(0), coredisc(0), etc.
   47- ellwp, ellzeta, ellsigma only used realprecision, instead of the input
       precision [#1184]
BA 48- tuning for 32bit and 64bit, with or without GMP5.
   49- idealintersect(K, 1/2,1/2) -> 1/4 instead of 1/2 [#1192]

LGr1- universal constants (gen_0,gen_1, etc.) are now read-only
   2- qfjacobi : sort eigenvalues by increasing order
   3- [libpari] gtoser : add a third precdl argument.
   4- [libpari] swap the last 2 arguments of ellwp0 (prec and precdl)
   5- ellwp now outputs a number of terms equal to the default seriesprecision,
      instead of *twice* that number.
   6- Ser, ellwp, taylor, elltaniyama: add an optional 'precdl' argument (by
      default equal to 'seriesprecision'). One no longer has to rely on (and
      change locally) a global variable to handle conversion to power series.
LGr7- add information to the version() output [backward compatible if version()
      used as recommended in the documentation] [#1130]
   8- O(x^0) is now printed as is, not as O(1). t_SER and t_PADIC are now
      treated in the same way.
   9- inverse trigonometric functions (acos,asin,atan,acosh,asinh,atanh):
      values on the branch cuts changed to conform to standards, e.g.
      "implementations shall map a cut so the function is continuous as the cut
      is approached coming around the finite endpoint of the cut in a counter
      clockwise direction." (ISO C99) [initial patch Richard Kreckel, #1084]
BA 10-[libpari] nf_get_TrInv renamed to nf_get_diff
   11- Qfb() : forbid square discriminants (-> corrupted objects [#1145])
   12- allow gequal1 / gequalm1 to return 'true' for t_SER
   13- follow-up to (2.4.3, C104) [#1156]:
       - stop using the undocumented feature Z_factor_limit(x,1) = Z_factor(x).
       - abide by the "lim" parameter in all cases :
          factor(100,1 or 2) -> [10; 2] (was [2,2; 5,2])
   14- include GP defaults in the function description system + use standard
       hashtables instead of ad hoc types
   15- cleanup and document term_color() and term_get_color()
BA 16- prototype of summations functions now is fun(void *E, GEN call(void*, GEN),...)
BA 17- traversesubgroups renamed to forsubgroup.
   18- t_QFR with the same coefficients but different distance component are
       now tested equal by == (they are still different according to ===).
   19- bnfinit no longer outputs a warning when fundamental units couldn't be
       computed (annoying and rather useless) [#1166]
   20-[Configure] no longer support a link to an uninstalled readline library
      in PARI toplevel
   21- thue() no longer outputs a Warning when the result is conditional on
       the GRH.
   22- [libpari] rename TIMER -> timer_delay, TIMERread -> timer_get,
       TIMERstart -> timer_start, msgTIMER -> timer_printf
BA 23- polrootsff now returns a t_COL
   24- default(a, b) used to return "b". Now returns gnil
   25- [libpari] remove allocatemem0 [make it private to GP], write allocatemem
   26- matdet() : allow Gauss-Bareiss to develop somewhat wrt. rows/columns
       [ cf test O1 in Lewis-Wester's bench ]
   27- addprimes() now includes its argument as-is (used to take gcds,
       making an insertion linear in the table size instead of O(1); filling
       an inially empty table was quadratic in the final table size). They
       must be true primes, otherwise number theoretic routines may return
       wrong values. [#322]
   28- rename fprintferr -> err_printf, flusherr -> err_flush
   29- ellpow (CM case). Try to determine the discriminant of the
       endomorphism ring first [#1186]

BA  1- trap keyword "syntaxer" to trap syntax error from eval.
BA  2- Flx_shift now support negative shift
BA  3- [gp2c] add description _(_) for closure evaluation
BA  4- PARI function FpX_halfgcd() and subquadratic FpX_gcd(), FpX_extgcd()
BA  5- PARI function Flx_halfgcd() and subquadratic Flx_gcd(), Flx_extgcd()
BA  6- random() now allow to draw random polynomials
BA  7- PARI functions pol_0, pol0_Flx, pol0_F2x
VB  8- [mingw] --datadir=@ option to Configure
BA  9- PARI functions FlxqX_div
   10- PARI function ismpzero
BA 11- PARI function bnr_get_clgp
   12- new default 'histfile' (to save readline history in between sessions)
   13- PARI function cmp_universal
BA 14- [gp2c] add descriptions to support intnum/suminf type functions.
BA 15- function diffop
   16- PARI function zero_Flm_copy
   17- PARI function mantissa_real
BA 18- PARI functions F2v_clear, F2m_clear, Z_to_F2x, F2x_set, F2x_clear, F2x_flip, F2x_coeff
BA 19- PARI functions F2xq_sqrt, F2x_deriv
BA 20- PARI functions FpXQ_trace, Flxq_trace, F2xq_trace
BA 21- PARI functions FpM_det, Flm_det, F2m_det

BA  1- PARI function CM_CardEFp (ellsea script deprecated).
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux1.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux1.fr/  [PARI/GP]