[Top][All Lists]

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

Release of GMP 5.1.0

From: Torbjorn Granlund
Subject: Release of GMP 5.1.0
Date: Wed, 19 Dec 2012 09:58:56 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (berkeley-unix)

A new major release of the GNU Multiple Precision Arithmetic Library
(GMP) is now available.  The new release is identified as 5.1.0.

The release can be downloaded from here:

These files should also soon be found at the GNU main site as well as
its many mirrors.

The 5.1.0 release contains lots of new code, and many improvements to
existing code.  Please see below for the some highlights.

It cannot be said enough times: Please run "make check" after you've
built your library.  And if "make check" stops with an error, do not
use the compiled library.  When this happens, you've almost surely run
into a compiler bug, not a GMP bug, since we've of course made sure
the library passes its own test suite.  The first thing to try at this
point is using a different compiler.  See also

This release would not have been possible without the very devoted
work of Niels Möller and Marco Bodrato, or Marc Glisse's work on the
C++ interface.  As usual, Torbjörn Granlund coordinated the
development and release, and did a fair amount of development work

Changes between GMP version 5.0.* and 5.1.0

  * When reading a C++ number (like mpz_class) in an istream reaches the end
    of the stream, the eofbit is now set.

  * The result sign of mpz_rootrem's remainder is now always correct.

  * The mpz_remove function now handles negative divisors.

  * Contains all fixes from release 5.0.5.

  * The n-factorial and n-over-k functions have been reimplemented for great
    speedups for small and large operands.

  * New subquadratic algorithm for the Kronecker/Jacobi/Legendre symbol.
  * Major speedup for ARM, in particular ARM Cortex-A9 and A15, thanks to broad
    assembly support.

  * Significant speedup or POWER6 and POWER7 thanks to improved assembly.

  * The performance under M$ Windows' 64-bit ABI has been greatly improved
    thanks to complete assembly support.

  * Minor speed improvements of many functions and for many platforms.

  * Many new CPUs recognised.

  * New functions for multi-factorials, and primorial: mpz_2fac_ui,
    mpz_mfac_uiui and mpz_primorial_ui.

  * The mpz_powm_sec function now uses side-channel silent division for
    converting into Montgomery residues.

  * The fat binary mechanism is now more robust in its CPU recognition.

  * Inclusion of assembly code is now controlled by the configure options
    --enable-assembly and --disable-assembly.  The "none" CPU targets is gone.

  * In C++, the conversions mpq_class->mpz_class, mpf_class->mpz_class and
    mpf_class->mpq_class are now explicit.

  * Includes "mini-gmp", a small, portable, but less efficient, implementation
    of a subset of GMP's mpn and mpz interfaces. Used in GMP bootstrap, but it
    can also be bundled with applications as a fallback when the real GMP
    library is unavailable.

  * The ABIs under AIX are no longer called aix32 and aix64, but mode64 and 32.
    This is more consistent with other powerpc systems.

  * The coverage of the testsuite has been improved, using the lcov tool.  See

  * It is now possible to compile GMP using a C++ compiler.

  * K&R C compilers are no longer supported.

  * The BSD MP compatibility functions have been removed.

Torbjörn's work on GMP is sponsored by Stiftelsen för Strategisk Forskning,
through CIAM at KTH,


reply via email to

[Prev in Thread] Current Thread [Next in Thread]