Annotation of OpenXM_contrib/gmp/NEWS, Revision 1.1.1.2
1.1.1.2 ! maekawa 1: Changes between MP version 3.0 and 3.1
! 2:
! 3: * Bug fixes.
! 4: * Improved `make check' running more tests.
! 5: * Tuned algorithm cutoff points for many machines. This will improve speed for
! 6: a lot of operations, in some cases by a large amount.
! 7: * Major speed improvments: Alpha 21264.
! 8: * Some speed improvments: Cray vector computers, AMD K6 and Athlon, Intel P5
! 9: and Pentium Pro/II/III.
! 10: * The mpf_get_prec function now works as it did in GMP 2.
! 11: * New utilities for auto-tuning and speed measuring.
! 12: * Multiplication now optionally uses FFT for very large operands. (To enable
! 13: it, pass --enable-fft to configure.)
! 14: * Support for new systems: Solaris running on x86, FreeBSD 5, HP-UX 11, Cray
! 15: vector computers, Rhapsody, Nextstep/Openstep, MacOS.
! 16: * Support for shared libraries on 32-bit HPPA.
! 17: * New integer functions: mpz_mul_si, mpz_odd_p, mpz_even_p.
! 18: * New Kronecker symbol functions: mpz_kronecker_si, mpz_kronecker_ui,
! 19: mpz_si_kronecker, mpz_ui_kronecker.
! 20: * New rational functions: mpq_out_str, mpq_swap.
! 21: * New float functions: mpf_swap.
! 22: * New mpn functions: mpn_divexact_by3c, mpn_tdiv_qr.
! 23: * New EXPERIMENTAL function layer for accurate floating-point arithmetic, mpfr.
! 24: To try it, pass --enable-mpfr to configure. See the mpfr subdirectory for
! 25: more information; it is not documented in the main GMP manual.
! 26:
! 27: Changes between MP version 3.0 and 3.0.1
! 28:
! 29: * Memory leaks in gmp_randinit and mpz_probab_prime_p fixed.
! 30: * Documentation for gmp_randinit fixed. Misc documentation errors fixed.
! 31:
! 32: Changes between MP version 2.0 and 3.0
! 33:
! 34: * Source level compatibility with past releases (except mpn_gcd).
! 35: * Bug fixes.
! 36: * Much improved speed thanks to both host independent and host dependent
! 37: optimizations.
! 38: * Switch to autoconf/automake/libtool.
! 39: * Support for building libgmp as a shared library.
! 40: * Multiplication and squaring using 3-way Toom-Cook.
! 41: * Division using the Burnikel-Ziegler method.
! 42: * New functions computing binomial coefficients: mpz_bin_ui, mpz_bin_uiui.
! 43: * New function computing Fibonacci numbers: mpz_fib_ui.
! 44: * New random number generators: mpf_urandomb, mpz_rrandomb, mpz_urandomb,
! 45: mpz_urandomm, gmp_randclear, gmp_randinit, gmp_randinit_lc_2exp, gmp_randseed,
! 46: gmp_randseed_ui.
! 47: * New function for quickly extracting limbs: mpz_getlimbn.
! 48: * New functions performing integer size tests: mpz_fits_sint_p,
! 49: mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p, mpz_fits_ulong_p,
! 50: mpz_fits_ushort_p.
! 51: * New mpf functions: mpf_ceil, mpf_floor, mpf_pow_ui, mpf_trunc.
! 52: * New mpq function: mpq_set_d.
! 53: * New mpz functions: mpz_addmul_ui, mpz_cmpabs, mpz_cmpabs_ui, mpz_lcm,
! 54: mpz_nextprime, mpz_perfect_power_p, mpz_remove, mpz_root, mpz_swap,
! 55: mpz_tdiv_ui, mpz_tstbit, mpz_xor.
! 56: * New mpn function: mpn_divexact_by3.
! 57: * New CPU support: DEC Alpha 21264, AMD K6 and Athlon, HPPA 2.0 and 64,
! 58: Intel Pentium Pro and Pentium-II/III, Sparc 64, PowerPC 64.
! 59: * Almost 10 times faster mpz_invert and mpn_gcdext.
! 60: * The interface of mpn_gcd has changed.
! 61: * Better support for MIPS R4x000 and R5000 under Irix 6.
! 62: * Improved support for SPARCv8 and SPARCv9 processors.
! 63:
! 64: Changes between MP version 2.0 and 2.0.2
! 65:
! 66: * Many bug fixes.
! 67:
! 68: Changes between MP version 1.3.2 and 2.0
1.1 maekawa 69:
70: * Division routines in the mpz class have changed. There are three classes of
71: functions, that rounds the quotient to -infinity, 0, and +infinity,
72: respectively. The first class of functions have names that begin with
73: mpz_fdiv (f is short for floor), the second class' names begin with mpz_tdiv
74: (t is short for trunc), and the third class' names begin with mpz_cdiv (c is
75: short for ceil).
76:
77: The old division routines beginning with mpz_m are similar to the new
78: mpz_fdiv, with the exception that some of the new functions return useful
79: values.
80:
81: The old function names can still be used. All the old functions names will
82: now do floor division, not trunc division as some of them used to. This was
83: changed to make the functions more compatible with common mathematical
84: practice.
85:
86: The mpz_mod and mpz_mod_ui functions now compute the mathematical mod
87: function. I.e., the sign of the 2nd argument is ignored.
88:
89: * The mpq assignment functions do not canonicalize their results. A new
90: function, mpq_canonicalize must be called by the user if the result is not
91: known to be canonical.
92: * The mpn functions are now documented. These functions are intended for
93: very time critical applications, or applications that need full control over
94: memory allocation. Note that the mpn interface is irregular and hard to
95: use.
96: * New functions for arbitrary precision floating point arithmetic. Names
97: begin with `mpf_'. Associated type mpf_t.
98: * New and improved mpz functions, including much faster GCD, fast exact
99: division (mpz_divexact), bit scan (mpz_scan0 and mpz_scan1), and number
100: theoretical functions like Jacobi (mpz_jacobi) and multiplicative inverse
101: (mpz_invert).
102: * New variable types (mpz_t and mpq_t) are available that makes syntax of
103: mpz and mpq calls nicer (no need for & before variables). The MP_INT and
104: MP_RAT types are still available for compatibility.
105: * Uses GNU configure. This makes it possible to choose target architecture
106: and CPU variant, and to compile into a separate object directory.
107: * Carefully optimized assembly for important inner loops. Support for DEC
1.1.1.2 ! maekawa 108: Alpha, Amd 29000, HPPA 1.0 and 1.1, Intel Pentium and generic x86, Intel
1.1 maekawa 109: i960, Motorola MC68000, MC68020, MC88100, and MC88110, Motorola/IBM
110: PowerPC, National NS32000, IBM POWER, MIPS R3000, R4000, SPARCv7,
111: SuperSPARC, generic SPARCv8, and DEC VAX. Some support also for ARM,
112: Clipper, IBM ROMP (RT), and Pyramid AP/XP.
113: * Faster. Thanks to the assembler code, new algorithms, and general tuning.
114: In particular, the speed on machines without GCC is improved.
115: * Support for machines without alloca.
116: * Now under the LGPL.
117:
118: INCOMPATIBILITIES BETWEEN GMP 1 AND GMP 2
119:
120: * mpq assignment functions do not canonicalize their results.
121: * mpz division functions round differently.
122: * mpz mod functions now really compute mod.
123: * mpz_powm and mpz_powm_ui now really use mod for reduction.
1.1.1.2 ! maekawa 124:
! 125:
! 126:
! 127: ----------------
! 128: Local variables:
! 129: mode: text
! 130: fill-column: 76
! 131: End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>