GMP 4.2 is upwardly binary compatible with older 4.x, and 3.x versions.
Changes in GMP 4.2.4
Bugs:
- Fix bug with parsing exponent '+' sign in mpf.
- Fix an allocation bug in mpf_set_str, also affecting mpf_init_set_str, and
mpf_inp_str.
Speedups:
- None, except that proper processor recognition helps affected processors.
Features:
- Recognize new AMD processors.
Changes in GMP 4.2.3
Bugs:
- Fix x86 CPU recognition code to properly identify recent AMD and Intel
64-bit processors.
- The >> operator of the C++ wrapper gmpxx.h now does floor rounding, not
truncation.
- Inline semantics now follow the C99 standard, and works with recent GCC
releases.
- C++ bitwise logical operations work for more types.
- For C++, gmp.h now includes cstdio, improving compiler compatibility.
- Bases > 36 now work properly in mpf_set_str.
Speedups:
- None, except that proper processor recognition helps affected processors.
Features:
- The allocation functions now detect overflow of the mpz_t type. This means
that overflow will now cause an abort, except when the allocation
computation itself overflows. (Such overflow can probably only happen in
powering functions; we will detect powering overflow in the future.)
Changes in 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.)
Changes in 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.
Changes in 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@gmplib.org
Copyright 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.