Karim Belabas on Mon, 22 May 2006 21:05:39 +0200

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

pari-2.3.0 (STABLE) released

Dear PARI lovers,

I would like to announce the release of pari-2.3.0 (STABLE) ! The sources
and a pre-compiled binary for Windows can be obtained through the address


This is a major STABLE release, ending the 2.2.* development cycle, which
started about 5 years ago. For those still using pari-2.1.*, it is time
to upgrade !

%%%%%%%%%%%%%%%%%%%%%%%%%%%% VERSION 2.3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   * The GP2C compiler is available at


    GP2C compiles GP scripts to the C language, easing the task of writing
    PARI programs. It can transparently compile them to object code and
    load the resulting functions in gp. Low-level gp2c-compiled scripts
    typically run 3 or 4 times faster. Minor hand editing (specifying types)
    typically gains a further factor 2.

   * Cremona's database of elliptic curves is available through the 'elldata'
     package [ to be downloaded separately ]
     ? E = ellinit([1,1,0,10,10]);
     ? id = ellidentify(E)[1]   \\ [1] = discard change of variables
     %2 = ["69950b1", [1, 1, 0, 10, 10], [[-1, 1], [-1/4, 23/8]]]
     \\ gives name and generators

     ? E = ellinit("11a1"); E.disc
     %3 = -161051

     ? ellsearch(11); \\ all curves of conductor 11

     ? forell(E, 10,20, print(E))   \\ iterate over curves of conductor 10-20
     ["11a1", [0, -1, 1, -10, -20], []]


   * Use 'Configure --with-gmp' to replace the native multiprecision kernel by
     the GNU MP library (featuring asymptotically fast arithmetic).

   * Cleanup of all architecture specific kernels (all macroized); added
     support for x86_64, ppc64, hppa and hppa64, ia64, sparc64, m68k.

   * Faster algorithms for "transcendental" functions (divide/conquer square
     root, AGM for log and Pi, Newton for exp and most trigonometric functions,
     AGM for inverse trigonometric functions, rewrite for gamma and zeta =>
     faster Bernoulli, Mestre's AGM for ellheight)

   * Faster and cleaner kernel for modular arithmetic. Try e.g.
     factormod/factorff or polcompositum.

   * Major internal cleanups: separate lgef for t_POLs is gone, zero t_SER
     and t_POL now handled in a uniform way, heuristic soft copies in
     t_INTMOD, t_POLMOD, t_PADIC are gone [ led to fatal errors in complex
     scripts, no performance penalty ]

   * The "syntax" of GP routines and operators are no longer hard-coded in
     the sources, but maintained in a separate database (pari.desc). This
     way, external tools like GP2C need not be modified when the GP language
     is changed.

Algebraic number Theory:
   * Faster integral LLL (still not super fast, but getting better), and
     polynomial factorization routines (over finite fields [ new modular
     kernel ], Q or general number fields [ van Hoeij's algorithm ])

   * Faster maximal order (round4 rewrite) and polredabs (esp. with flag
     16: don't factor the discriminant; yields a canonical equation for a
     field), faster ideal arithmetic (prime decomposition, approximation,

   * Faster and more reliable class-field theoretic functions quadclassunit,
     bnfinit, bnfisprincipal, bnrinit (and related functions, e.g. bnrconductor
     or bnrdisc), rnfkummer, thue (fast enumeration of small solutions, don't
     assume the full unit group is known).
   * A set of fast routines for Galois theory (galoisininit, nfgaloisconj,
     galoisisabelian, galoisfixedfield, galoissubfields, galoissubcyclo for
     abelian fields, galoisidentify to identify large Galois fields up to
     degree 127).
     'galdata' package [ to be downloaded separately ]: polgalois is safer
     and orders of magnitudes faster in tough cases, output is now
     human readable
     ? polgalois(x^11-2)
     time = 1,759 ms.   \\ used to be ~ 1 hour
     %1 = [110, -1, 4, "F_110(11)=11:10"]

   * For convenience, the manual was split in two parts: the GP user's manual
     and the libpari user's manual, the latter being substantially expanded.
     Many formerly private functions have been renamed, specified,
     cleaned up and documented.

   * Initial implementation of the APR-CL primality prover, faster
     compositeness tests (BPSW)

   * A new set of fast numerical summation and integration routine,
     variations on the Ooura-Mori "double exponential" method. See ??intnum
     Library interface to all these functions and standard iterators (e.g.
   * Error messages now mention the GP function where the error occurred.

   * Input/output and convenience functions: Str(a,1,c) --> "a1c", 
     Strexpand("~") --> "/home/a2x/belabas", substvec (parallel substitutions),
     substpol(expr, x^2, y), writebin (write objets in binary format for
     fast retrieval), readvec (load a file's content into a vector)

   * Support for new graphic libraries (Qt, FLTK) [ ==> hi-res plots now
     also available under Mac OS X and Windows ]


See http://pari.math.u-bordeaux.fr/Bugs/ for pending problems (and for how
to report new ones). If you are running Mac OS X, please see this FAQ before
reporting problems with 'readline' (line editing):


Have fun !

Karim Belabas                  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-bordeaux.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]