GMP 6.3 is upwardly source and binary compatible with 6.2, 6.1, 6.0, 5.1,
5.0, 4.x, and 3.x, except for applications that use the semi-documented
mpn_bdivmod
function.
Changes between GMP version 6.2.* and 6.3.0
BUGS FIXED
-
A possible overflow of type int is avoided for mpz_cmp on huge operands.
-
A possible error condition when a malformed file is read with
mpz_inp_raw is now correctly handled.
FEATURES
-
New public function mpz_prevprime, companion of the existing
mpz_nextprime.
-
New documented pointer types mpz_ptr, mpz_srcptr, and similar for
other GMP types. Refer to the manual for full list and suggested
usage. These types have been present in gmp.h at least since
GMP-4.0, but previously not advertised to users.
-
Support for 64-bit Arm under Macos.
-
Support for the loongarch64 CPU family.
-
Support for building with LTO, link-time optimisations.
SPEEDUPS
-
New special code for base = 2 in mpz_powm reduces the average time
for the functions that test primality.
-
Speedup for the function mpz_nextprime on large operands.
-
Speedup for multiplications (some sizes only) thanks to new
internal functions to compute small negacyclic products.
-
Special assembly code for IBM z13 and later "mainframe" CPUs, resulting in
a huge speedup.
-
Improved assembly for several 64-bit x86 CPUs, Risc-V, 64-bit Arm.
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.
There is a public repository for GMP, please see
the GMP repository usage instructions for
more information.