GMP 6.2 is upwardly source and binary compatible with 6.1, 6.0, 5.1, 5.0,
4.x, and 3.x, except for applications that use the semi-documented
Changes in GMP 6.2.1
A possible overflow of type int is avoided for mpz_cmp on huge operands.
Overflows are more carefully detected and reported for mpz_pow_ui.
A bug in longlong.h for aarch64 sub_ddmmss, not affecting GMP, was healed.
Mini-GMP: mpz_out_str and mpq_out_str now correctly handle out
of range bases.
Initial support for Darwin on arm64, and improved portability.
Support for more processors.
None, except indirectly through recognition of new CPUs.
Changes between GMP version 6.1.* and 6.2.0
gmp_snprintf now correctly reports an error (returns -1) when snprintf
Conversion to double is now more robust even if the configuration process
does not recognize the float format.
mpz_powm could return a not completely normalised value, when the
exponent was 1 and the base < 0.
mpf_set_str could create invalid mpf_t variables for input strings with
many leading zeros.
New C++ functions factorial, primorial and fibonacci for mpz_class.
Functions to detect primality now substitute the first 24 Miller-Rabin
iterations with the BPSW test.
Mini-GMP: new functions mpz_2fac_ui and mpz_mfac_uiui.
Mini-GMP: mpz_sizeinbase, mpz_get_str, and mpz_set_str now support bases
up to 62.
Mini-GMP: added support for the mpq_t layer.
MIPS r6 cores are now supported.
Major speedup for AMD Ryzen and Epyc thanks to an extensive set of
Major speedup for IBM POWER9 thanks to assembly code making use of new
Speedup for 64-bit ARM CPUs thanks to new/improved assembly code.
The n-over-k function mpz_bin_ui has been reimplemented for great
speedups for large operands.
Speedup for the worst case of mpz_perfect_power_p.
Speedup for gcd for small and medium size operands.
Speedup for really huge multiplies thanks to much larger FFT tables.
Internal representation of the mpz_t variables now supports lazy
allocation; memory is allocated only when a value is stored.
Small improvements and better coverage for the test suite.
The tune/speed program can measure some more functions.
The low-level function mpn_mul no longer diverts to mpn_sqr, users should
call mpn_sqr directly when applicable.
New installed files gmp.pc and gmpxx.pc, for use with pkg-config.
Contributed by Hugh McMaster.
This release would not have been possible without the continuous work of
improvement, revision and refinement by the whole GMP team: Torbjörn
Granlund, Niels Möller, Marco Bodrato, and Marc Glisse.
Please see the GMP
manual for a complete list of GMP contributors.