GMP 5.1.0 released!
tg at gmplib.org
Tue Dec 18 22:26:58 CET 2012
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 will 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 http://gmplib.org/.
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
* 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, http://www.kth.se/sci/centra/ciam.
More information about the gmp-announce