GMP 4.3.0 released

Torbjorn Granlund tg at
Tue Apr 14 22:24:10 CEST 2009

It is my great pleasure to announce the availability a new major release of
the GNU Multiple Precision Arithmetic Library (GMP).  The new release is
identified as 4.3.0.

These files can also be found on a GNU mirror near you.

The GMP web site can be found at

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.  If this happens, you've almost surely run into a
compiler bug.  The first thing to try is using a different version of the
compiler.  See also  GCC 4.3.2 is known to miscompile
this GMP release, and many older releases do that as well.

This release contains a large amount of new code, and countless
improvements to existing code.  No past GMP release has contained more
new code than this release.  Most of the new code is at the mpn level.

Some of new mpn level code is left undocumented, since its interfaces are
not finalised.

Part of the new code is not used by GMP internally, or used only in some
places.  There are several reasons for this, the main one is that more work
is needed, but we did not want to delay the release.

Changes since the last release (for credits, please see below):

  * Fixed bug in mpz_perfect_power_p with recognition of negative perfect
    powers that can be written both as an even and odd power.
  * We might accidentally have added bugs since there is a large amount of
    new code in this release.

  * Vastly improved assembly code for x86-64 processors from AMD and Intel.
  * Major improvements also for many other processor families, such as
    Alpha, PowerPC, and Itanium.
  * New sub-quadratic mpn_gcd and mpn_gcdext, as well as improved basecase
    gcd code.
  * The multiply FFT code has been slightly improved.
  * Balanced multiplication now uses 4-way Toom in addition to schoolbook,
    Karatsuba, 3-way Toom, and FFT.
  * Unbalanced multiplication has been vastly improved.
  * Improved schoolbook division by means of faster quotient approximation.
  * Several new algorithms for division and mod by single limbs, giving
    many-fold speedups.
  * Improved nth root computations.
  * The mpz_nextprime function uses sieving and is much faster.
  * Countless minor tweaks.

  * Updated support for fat binaries for x86_32 include current processors
  * Lots of new mpn internal interfaces.  Some of them will become public
    in a future GMP release.
  * Support for the 32-bit ABI under x86-apple-darwin.
  * x86 CPU recognition code should now default better for future
  * The experimental nails feature does not work in this release, but
    it might be re-enabled in the future.

  * The gmp_version variable now always contains three parts.  For this
    release, it is "4.3.0".

In addition to Torbjorn Granlund, many people have contributed to this

  * David Harvey helped write the new x86-64 assembly code, and suggested
    the new internal division-by-special-constant algorithm.
  * Marco Bodrato and Niels Moeller helped implement the new multiply code.
  * Niels Moeller wrote the new gcd code, and the new mpz_nextprime code.
  * Niels Moeller helped write some of the new division code, and suggested
    some of the algorithms.
  * Alberto Zanoni and Marco Bodrato suggested the unbalanced multiply
  * Peter Montgomery suggested the new mod-by-single-limb algorithm.
  * Paul Zimmermann suggested the algorithm and helped write the new mpn
    nth root code.

There is now a public repository for GMP, please see the GMP home page
for more information.

Torbjorn's work on GMP is sponsored by CIAM,


More information about the gmp-announce mailing list