version 1.1, 2000/01/10 15:35:21 |
version 1.1.1.4, 2003/08/25 16:05:54 |
|
|
NOTEWORTHY CHANGES IN GNU MP IN VERSION 2 |
Copyright 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
|
|
|
This file is part of the GNU MP Library. |
|
|
|
The GNU MP Library is free software; you can redistribute it and/or modify |
|
it under the terms of the GNU Lesser General Public License as published by |
|
the Free Software Foundation; either version 2.1 of the License, or (at your |
|
option) any later version. |
|
|
|
The GNU MP Library is distributed in the hope that it will be useful, but |
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public |
|
License for more details. |
|
|
|
You should have received a copy of the GNU Lesser General Public License |
|
along with the GNU MP Library; see the file COPYING.LIB. If not, write to |
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
|
02111-1307, USA. |
|
|
|
|
|
Changes between MP version 4.1.1 and 4.1.2 |
|
|
|
* Bug fixes. |
|
|
|
Changes between MP version 4.1 and 4.1.1 |
|
|
|
* Bug fixes. |
|
* New systems supported: NetBSD and OpenBSD sparc64. |
|
|
|
Changes between MP version 4.0.1 and 4.1 |
|
|
|
* Bug fixes. |
|
* Speed improvements. |
|
* Upwardly binary compatible with 4.0, 4.0.1, and 3.x versions. |
|
* Asymptotically fast conversion to/from strings (mpz, mpq, mpn levels), but |
|
also major speed improvements for tiny operands. |
|
* mpn_get_str parameter restrictions relaxed. |
|
* Major speed improvments for HPPA 2.0 systems. |
|
* Major speed improvments for UltraSPARC systems. |
|
* Major speed improvments for IA-64 systems (but still sub-optimal code). |
|
* Extended test suite. |
|
* mpfr is back, with many bug fixes and portability improvements. |
|
* New function: mpz_ui_sub. |
|
* New functions: mpz_export, mpz_import. |
|
* Optimization for nth root functions (mpz_root, mpz_perfect_power_p). |
|
* Optimization for extended gcd (mpz_gcdext, mpz_invert, mpn_gcdext). |
|
* Generalized low-level number format, reserving a `nails' part of each |
|
limb. (Please note that this is really experimental; some functions |
|
are likely to compute garbage when nails are enabled.) |
|
* Nails-enabled Alpha 21264 assembly code, allowing up to 75% better |
|
performance. (Use --enable-nails=4 to enable it.) |
|
|
|
Changes between MP version 4.0 and 4.0.1 |
|
|
|
* Bug fixes. |
|
|
|
Changes between MP version 3.1.1 and 4.0 |
|
|
|
* Bug fixes. |
|
* Speed improvements. |
|
* Upwardly binary compatible with 3.x versions. |
|
* New CPU support: IA-64, Pentium 4. |
|
* Improved CPU support: 21264, Cray vector systems. |
|
* Support for all MIPS ABIs: o32, n32, 64. |
|
* New systems supported: Darwin, SCO, Windows DLLs. |
|
* New divide-and-conquer square root algorithm. |
|
* New algorithms chapter in the manual. |
|
* New malloc reentrant temporary memory method. |
|
* New C++ class interface by Gerardo Ballabio (beta). |
|
* Revamped configure, featuring ABI selection. |
|
* Speed improvements for mpz_powm and mpz_powm_ui (mainly affecting small |
|
operands). |
|
* mpz_perfect_power_p now properly recognizes 0, 1, and negative perfect |
|
powers. |
|
* mpz_hamdist now supports negative operands. |
|
* mpz_jacobi now accepts non-positive denominators. |
|
* mpz_powm now supports negative exponents. |
|
* mpn_mul_1 operand overlap requirements relaxed. |
|
* Float input and output uses locale specific decimal point where available. |
|
* New gmp_printf, gmp_scanf and related functions. |
|
* New division functions: mpz_cdiv_q_2exp, mpz_cdiv_r_2exp, mpz_divexact_ui. |
|
* New divisibility tests: mpz_divisible_p, mpz_divisible_ui_p, |
|
mpz_divisible_2exp_p, mpz_congruent_p, mpz_congruent_ui_p, |
|
mpz_congruent_2exp_p. |
|
* New Fibonacci function: mpz_fib2_ui. |
|
* New Lucas number functions: mpz_lucnum_ui, mpz_lucnum2_ui. |
|
* Other new integer functions: mpz_cmp_d, mpz_cmpabs_d, mpz_get_d_2exp, |
|
mpz_init2, mpz_kronecker, mpz_lcm_ui, mpz_realloc2. |
|
* New rational I/O: mpq_get_str, mpq_inp_str, mpq_out_str, mpq_set_str. |
|
* Other new rational functions: mpq_abs, mpq_cmp_si, mpq_div_2exp, |
|
mpq_mul_2exp, mpq_set_f. |
|
* New float tests: mpf_integer_p, mpf_fits_sint_p, mpf_fits_slong_p, |
|
mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p, mpf_fits_ushort_p. |
|
* Other new float functions: mpf_cmp_d, mpf_get_default_prec, mpf_get_si, |
|
mpf_get_ui, mpf_get_d_2exp. |
|
* New random functions: gmp_randinit_default, gmp_randinit_lc_2exp_size. |
|
* New demo expression string parser (see demos/expr). |
|
* New preliminary perl interface (see demos/perl). |
|
* Tuned algorithm thresholds for many more CPUs. |
|
|
|
Changes between MP version 3.1 and 3.1.1 |
|
|
|
* Bug fixes for division (rare), mpf_get_str, FFT, and miscellaneous minor |
|
things. |
|
|
|
Changes between MP version 3.0 and 3.1 |
|
|
|
* Bug fixes. |
|
* Improved `make check' running more tests. |
|
* Tuned algorithm cutoff points for many machines. This will improve speed for |
|
a lot of operations, in some cases by a large amount. |
|
* Major speed improvments: Alpha 21264. |
|
* Some speed improvments: Cray vector computers, AMD K6 and Athlon, Intel P5 |
|
and Pentium Pro/II/III. |
|
* The mpf_get_prec function now works as it did in GMP 2. |
|
* New utilities for auto-tuning and speed measuring. |
|
* Multiplication now optionally uses FFT for very large operands. (To enable |
|
it, pass --enable-fft to configure.) |
|
* Support for new systems: Solaris running on x86, FreeBSD 5, HP-UX 11, Cray |
|
vector computers, Rhapsody, Nextstep/Openstep, MacOS. |
|
* Support for shared libraries on 32-bit HPPA. |
|
* New integer functions: mpz_mul_si, mpz_odd_p, mpz_even_p. |
|
* New Kronecker symbol functions: mpz_kronecker_si, mpz_kronecker_ui, |
|
mpz_si_kronecker, mpz_ui_kronecker. |
|
* New rational functions: mpq_out_str, mpq_swap. |
|
* New float functions: mpf_swap. |
|
* New mpn functions: mpn_divexact_by3c, mpn_tdiv_qr. |
|
* New EXPERIMENTAL function layer for accurate floating-point arithmetic, mpfr. |
|
To try it, pass --enable-mpfr to configure. See the mpfr subdirectory for |
|
more information; it is not documented in the main GMP manual. |
|
|
|
Changes between MP version 3.0 and 3.0.1 |
|
|
|
* Memory leaks in gmp_randinit and mpz_probab_prime_p fixed. |
|
* Documentation for gmp_randinit fixed. Misc documentation errors fixed. |
|
|
|
Changes between MP version 2.0 and 3.0 |
|
|
|
* Source level compatibility with past releases (except mpn_gcd). |
|
* Bug fixes. |
|
* Much improved speed thanks to both host independent and host dependent |
|
optimizations. |
|
* Switch to autoconf/automake/libtool. |
|
* Support for building libgmp as a shared library. |
|
* Multiplication and squaring using 3-way Toom-Cook. |
|
* Division using the Burnikel-Ziegler method. |
|
* New functions computing binomial coefficients: mpz_bin_ui, mpz_bin_uiui. |
|
* New function computing Fibonacci numbers: mpz_fib_ui. |
|
* New random number generators: mpf_urandomb, mpz_rrandomb, mpz_urandomb, |
|
mpz_urandomm, gmp_randclear, gmp_randinit, gmp_randinit_lc_2exp, gmp_randseed, |
|
gmp_randseed_ui. |
|
* New function for quickly extracting limbs: mpz_getlimbn. |
|
* New functions performing integer size tests: mpz_fits_sint_p, |
|
mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p, mpz_fits_ulong_p, |
|
mpz_fits_ushort_p. |
|
* New mpf functions: mpf_ceil, mpf_floor, mpf_pow_ui, mpf_trunc. |
|
* New mpq function: mpq_set_d. |
|
* New mpz functions: mpz_addmul_ui, mpz_cmpabs, mpz_cmpabs_ui, mpz_lcm, |
|
mpz_nextprime, mpz_perfect_power_p, mpz_remove, mpz_root, mpz_swap, |
|
mpz_tdiv_ui, mpz_tstbit, mpz_xor. |
|
* New mpn function: mpn_divexact_by3. |
|
* New CPU support: DEC Alpha 21264, AMD K6 and Athlon, HPPA 2.0 and 64, |
|
Intel Pentium Pro and Pentium-II/III, Sparc 64, PowerPC 64. |
|
* Almost 10 times faster mpz_invert and mpn_gcdext. |
|
* The interface of mpn_gcd has changed. |
|
* Better support for MIPS R4x000 and R5000 under Irix 6. |
|
* Improved support for SPARCv8 and SPARCv9 processors. |
|
|
|
Changes between MP version 2.0 and 2.0.2 |
|
|
|
* Many bug fixes. |
|
|
|
Changes between MP version 1.3.2 and 2.0 |
|
|
* Division routines in the mpz class have changed. There are three classes of |
* Division routines in the mpz class have changed. There are three classes of |
functions, that rounds the quotient to -infinity, 0, and +infinity, |
functions, that rounds the quotient to -infinity, 0, and +infinity, |
respectively. The first class of functions have names that begin with |
respectively. The first class of functions have names that begin with |
Line 38 NOTEWORTHY CHANGES IN GNU MP IN VERSION 2 |
|
Line 210 NOTEWORTHY CHANGES IN GNU MP IN VERSION 2 |
|
* Uses GNU configure. This makes it possible to choose target architecture |
* Uses GNU configure. This makes it possible to choose target architecture |
and CPU variant, and to compile into a separate object directory. |
and CPU variant, and to compile into a separate object directory. |
* Carefully optimized assembly for important inner loops. Support for DEC |
* Carefully optimized assembly for important inner loops. Support for DEC |
Alpha, Amd 29000, HPPA 1.0 and 1.1, Intel pentium and generic x86, Intel |
Alpha, Amd 29000, HPPA 1.0 and 1.1, Intel Pentium and generic x86, Intel |
i960, Motorola MC68000, MC68020, MC88100, and MC88110, Motorola/IBM |
i960, Motorola MC68000, MC68020, MC88100, and MC88110, Motorola/IBM |
PowerPC, National NS32000, IBM POWER, MIPS R3000, R4000, SPARCv7, |
PowerPC, National NS32000, IBM POWER, MIPS R3000, R4000, SPARCv7, |
SuperSPARC, generic SPARCv8, and DEC VAX. Some support also for ARM, |
SuperSPARC, generic SPARCv8, and DEC VAX. Some support also for ARM, |
Line 54 INCOMPATIBILITIES BETWEEN GMP 1 AND GMP 2 |
|
Line 226 INCOMPATIBILITIES BETWEEN GMP 1 AND GMP 2 |
|
* mpz division functions round differently. |
* mpz division functions round differently. |
* mpz mod functions now really compute mod. |
* mpz mod functions now really compute mod. |
* mpz_powm and mpz_powm_ui now really use mod for reduction. |
* mpz_powm and mpz_powm_ui now really use mod for reduction. |
|
|
|
|
|
|
|
---------------- |
|
Local variables: |
|
mode: text |
|
fill-column: 76 |
|
End: |