GMP 4.2 is upwardly binary compatible with older 4.x, and 3.x versions.
New features of GMP 4.2.2
- License is now LGPL version 3.
Bugs:
- Shared library numbers corrected for libcxx.
- Fixed serious bug in gmpxx.h where a=a+b*c would generate garbage.
Note that this only affects C++ programs.
- Fix crash in mpz_set_d for arguments with large negative exponent.
- Fix 32-bit ABI bug with Itanium assembly for popcount and hamdist.
- Fix assembly syntax problem for powerpc-ibm-aix with AIX native assembler.
- Fix problems with x86 --enable-fat, where the compiler was told to
generate code for the build machine, not plain i386 code as it should.
- Improved recognition of powerpc systems wrt Altivec/VMX capability.
- Misc minor fixes, mainly workarounds for compiler/assembler bugs.
Speedups:
- "Core 2" and Pentium 4 processors, running in 64-bit mode will get a
slight boost as they are now specifically recognized.
Features:
- New support for x86_64-solaris
- New, rudimentary support for x86-apple-darwin and x86_64-apple-darwin.
(Please see
http://gmplib.org/macos.html
for more information.)
New features of GMP 4.2.1
Bugs:
- Shared library numbers corrected.
- Broken support for 32-bit AIX fixed.
- Bug fixed in hamdist/popcount for powerpc64 mode32.
- Misc minor fixes.
Speedups:
- Exact division (mpz_divexact) now falls back to plain division for large
operands.
Features:
- Support for some new systems.
New features of GMP 4.2
Bugs:
- Minor bug fixes and code generalizations.
Speedups:
- 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.
Features:
- 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
gmp_randinit_default.
- 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 >= 231 bits.
Mis-features:
- mpfr is gone, and will from now on be released only separately. Please
see the MPFR web pages.
Please send comments about this page to gmp-discuss@swox.com
Copyright 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.