GMP 5.1 is upwardly source and binary compatible with 5.0, 4.x, and 3.x, except
for applications that use the semi-documented mpn_bdivmod
function.
Changes in GMP 5.1.3
GMP
5.1.3 release announcement
BUGS FIXED
- The internal functions mpn_sbpi1_div_qr_sec mpn_sbpi1_div_r_sec could
compute garbage with a low probability. They are now rewritten, and the
test code has been improved.
- A bug in the ia64 implementation of mpn_divrem_2, clobbering some
callee-save registers, has been fixed. This is an internal function,
with the bug manifesting itself as miscomputation in, e.g., mpn_sqrtrem.
- The documentation now correctly says 'const' for input arguments.
SPEEDUPS
FEATURES
MISC
Changes in GMP 5.1.2
GMP
5.1.2 release announcement
BUGS FIXED
- A bug in mpz_powm_ui triggered by base arguments of at least 15000
decimal digits or mod arguments of at least 7500 decimal digits has been
fixed.
- An AMD Bulldozer specific bug affecting the 64-bit Windows ABI has been
fixed. This bug was in a key function (mpn_mul_1) and made both Bulldozer
specific builds and fat builds run on Bulldozer completely non-functional.
SPEEDUPS
FEATURES
MISC
- Fixes and generalisations to the test suite.
- Minor portability enhancements.
Changes in GMP 5.1.1
GMP
5.1.1 release announcement
BUGS FIXED
- On Windows 64-bit, an error causing link errors about
__gmp_binvert_limb_table
has been fixed.
- Aarch64 alias ARM64 support now works.
- A possible buffer overrun in
mpz_ior
has been fixed.
- A rare sign flip in
mpz_remove
has been fixed.
- A bug causing problems with mpf numbers with absolute value ≥ 231 has
been fixed.
- Several bugs in mini-gmp have been fixed.
- A bug caused by automake, related to the 'distcheck' target, has been fixed
by upgrading the automake used for GMP release engineering.
SPEEDUPS
FEATURES
- Preliminary support for the x32 ABI under x86-64.
MISC
- The mini-gmp testsuite now tests the entire set of functions.
- Various improvements of the GMP testsuite.
Changes in GMP 5.1.0
GMP
5.1.0 release announcement
BUGS FIXED
- 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.
SPEEDUPS
- 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 for 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.
FEATURES
- 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.
MISC
- Inclusion of assembly code is now controlled by the configure options
--enable-assembly and --disable-assembly. The "none" CPU target 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
also //gmplib.org/devel/lcov/.
- 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.
The GMP 5.1 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 himself. Please see
the GMP manual for a
complete list of GMP contributors.
There is a public repository for GMP, please see
the GMP repository usage instructions for
more information.
Torbjörn's work on GMP is sponsored
by Stiftelsen för Strategisk
Forskning, through CIAM.