GMP 4.2 released

Torbjorn Granlund tg at
Mon Mar 27 12:59:00 CEST 2006

Version 4.2 of the GNU Multiple Precision Arithmetic Library (GMP) has been
released after many years of development.

The new release is available at


and on a mirror near you.

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.  Most compilers released today are riddled with bugs that cause them
to miscompile code.

GMP 4.2 was finished and released by Torbjörn Granlund, but an enormous amount
of work for GMP 4.2 was done by Kevin Ryde.  The FFT and Toom3 improvements
were done by Paul Zimmermann, the n-factorial improvements were done by Jason
Moxham, and the random number generator improvements were done by Pedro Gimeno.

Special thanks to INRIA Lorraine, France, for their support to the actual
release work.

Changes between GMP version 4.1.4 and 4.2

  * Minor bug fixes and code generalizations.

  * Many minor optimizations, too many to mention here.
  * Division now always subquadratic.
  * Computation of n-factorial much faster.
  * Added basic x86-64 assembly code.
  * Floating-point output is now subquadratic for all bases.
  * FFT multiply code now about 25% faster.
  * Toom3 multiply code faster.

  * Much improved configure.
  * Temporary allocations are now made on the stack only if small.
  * New systems supported: HPPA-2.0 gcc, IA-64 HP-UX, PowerPC-64 Darwin,
    Sparc64 GNU/Linux.
  * New i386 fat binaries, selecting optimised code at runtime (--enable-fat).
  * New build option: --enable-profiling=instrument.
  * New memory function: mp_get_memory_functions.
  * New Mersenne Twister random numbers: gmp_randinit_mt, also now used for
  * New random functions: gmp_randinit_set, gmp_urandomb_ui, gmp_urandomm_ui.
  * New integer functions: mpz_combit, mpz_rootrem.
  * gmp_printf etc new type "M" for mp_limb_t.
  * gmp_scanf and friends now accept C99 hex floats.
  * Numeric input and output can now be in bases up to 62.
  * Comparisons mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d recognise infinities.
  * Conversions mpz_get_d, mpq_get_d, mpf_get_d truncate towards zero,
    previously their behaviour was unspecified.
  * Fixes for overflow issues with operands >= 2^31 bits.

  * mpfr is gone, and will from now on be released only separately.  Please see


More information about the gmp-announce mailing list