Annotation of OpenXM_contrib/gmp/NEWS, Revision 1.1.1.4
1.1.1.4 ! ohara 1: Copyright 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
! 2:
! 3: This file is part of the GNU MP Library.
! 4:
! 5: The GNU MP Library is free software; you can redistribute it and/or modify
! 6: it under the terms of the GNU Lesser General Public License as published by
! 7: the Free Software Foundation; either version 2.1 of the License, or (at your
! 8: option) any later version.
! 9:
! 10: The GNU MP Library is distributed in the hope that it will be useful, but
! 11: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
! 12: or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
! 13: License for more details.
! 14:
! 15: You should have received a copy of the GNU Lesser General Public License
! 16: along with the GNU MP Library; see the file COPYING.LIB. If not, write to
! 17: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
! 18: 02111-1307, USA.
! 19:
! 20:
! 21: Changes between MP version 4.1.1 and 4.1.2
! 22:
! 23: * Bug fixes.
! 24:
! 25: Changes between MP version 4.1 and 4.1.1
! 26:
! 27: * Bug fixes.
! 28: * New systems supported: NetBSD and OpenBSD sparc64.
! 29:
! 30: Changes between MP version 4.0.1 and 4.1
! 31:
! 32: * Bug fixes.
! 33: * Speed improvements.
! 34: * Upwardly binary compatible with 4.0, 4.0.1, and 3.x versions.
! 35: * Asymptotically fast conversion to/from strings (mpz, mpq, mpn levels), but
! 36: also major speed improvements for tiny operands.
! 37: * mpn_get_str parameter restrictions relaxed.
! 38: * Major speed improvments for HPPA 2.0 systems.
! 39: * Major speed improvments for UltraSPARC systems.
! 40: * Major speed improvments for IA-64 systems (but still sub-optimal code).
! 41: * Extended test suite.
! 42: * mpfr is back, with many bug fixes and portability improvements.
! 43: * New function: mpz_ui_sub.
! 44: * New functions: mpz_export, mpz_import.
! 45: * Optimization for nth root functions (mpz_root, mpz_perfect_power_p).
! 46: * Optimization for extended gcd (mpz_gcdext, mpz_invert, mpn_gcdext).
! 47: * Generalized low-level number format, reserving a `nails' part of each
! 48: limb. (Please note that this is really experimental; some functions
! 49: are likely to compute garbage when nails are enabled.)
! 50: * Nails-enabled Alpha 21264 assembly code, allowing up to 75% better
! 51: performance. (Use --enable-nails=4 to enable it.)
! 52:
! 53: Changes between MP version 4.0 and 4.0.1
! 54:
! 55: * Bug fixes.
! 56:
! 57: Changes between MP version 3.1.1 and 4.0
! 58:
! 59: * Bug fixes.
! 60: * Speed improvements.
! 61: * Upwardly binary compatible with 3.x versions.
! 62: * New CPU support: IA-64, Pentium 4.
! 63: * Improved CPU support: 21264, Cray vector systems.
! 64: * Support for all MIPS ABIs: o32, n32, 64.
! 65: * New systems supported: Darwin, SCO, Windows DLLs.
! 66: * New divide-and-conquer square root algorithm.
! 67: * New algorithms chapter in the manual.
! 68: * New malloc reentrant temporary memory method.
! 69: * New C++ class interface by Gerardo Ballabio (beta).
! 70: * Revamped configure, featuring ABI selection.
! 71: * Speed improvements for mpz_powm and mpz_powm_ui (mainly affecting small
! 72: operands).
! 73: * mpz_perfect_power_p now properly recognizes 0, 1, and negative perfect
! 74: powers.
! 75: * mpz_hamdist now supports negative operands.
! 76: * mpz_jacobi now accepts non-positive denominators.
! 77: * mpz_powm now supports negative exponents.
! 78: * mpn_mul_1 operand overlap requirements relaxed.
! 79: * Float input and output uses locale specific decimal point where available.
! 80: * New gmp_printf, gmp_scanf and related functions.
! 81: * New division functions: mpz_cdiv_q_2exp, mpz_cdiv_r_2exp, mpz_divexact_ui.
! 82: * New divisibility tests: mpz_divisible_p, mpz_divisible_ui_p,
! 83: mpz_divisible_2exp_p, mpz_congruent_p, mpz_congruent_ui_p,
! 84: mpz_congruent_2exp_p.
! 85: * New Fibonacci function: mpz_fib2_ui.
! 86: * New Lucas number functions: mpz_lucnum_ui, mpz_lucnum2_ui.
! 87: * Other new integer functions: mpz_cmp_d, mpz_cmpabs_d, mpz_get_d_2exp,
! 88: mpz_init2, mpz_kronecker, mpz_lcm_ui, mpz_realloc2.
! 89: * New rational I/O: mpq_get_str, mpq_inp_str, mpq_out_str, mpq_set_str.
! 90: * Other new rational functions: mpq_abs, mpq_cmp_si, mpq_div_2exp,
! 91: mpq_mul_2exp, mpq_set_f.
! 92: * New float tests: mpf_integer_p, mpf_fits_sint_p, mpf_fits_slong_p,
! 93: mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p, mpf_fits_ushort_p.
! 94: * Other new float functions: mpf_cmp_d, mpf_get_default_prec, mpf_get_si,
! 95: mpf_get_ui, mpf_get_d_2exp.
! 96: * New random functions: gmp_randinit_default, gmp_randinit_lc_2exp_size.
! 97: * New demo expression string parser (see demos/expr).
! 98: * New preliminary perl interface (see demos/perl).
! 99: * Tuned algorithm thresholds for many more CPUs.
! 100:
1.1.1.3 maekawa 101: Changes between MP version 3.1 and 3.1.1
102:
103: * Bug fixes for division (rare), mpf_get_str, FFT, and miscellaneous minor
104: things.
105:
1.1.1.2 maekawa 106: Changes between MP version 3.0 and 3.1
107:
108: * Bug fixes.
109: * Improved `make check' running more tests.
110: * Tuned algorithm cutoff points for many machines. This will improve speed for
111: a lot of operations, in some cases by a large amount.
112: * Major speed improvments: Alpha 21264.
113: * Some speed improvments: Cray vector computers, AMD K6 and Athlon, Intel P5
114: and Pentium Pro/II/III.
115: * The mpf_get_prec function now works as it did in GMP 2.
116: * New utilities for auto-tuning and speed measuring.
117: * Multiplication now optionally uses FFT for very large operands. (To enable
118: it, pass --enable-fft to configure.)
119: * Support for new systems: Solaris running on x86, FreeBSD 5, HP-UX 11, Cray
120: vector computers, Rhapsody, Nextstep/Openstep, MacOS.
121: * Support for shared libraries on 32-bit HPPA.
122: * New integer functions: mpz_mul_si, mpz_odd_p, mpz_even_p.
123: * New Kronecker symbol functions: mpz_kronecker_si, mpz_kronecker_ui,
124: mpz_si_kronecker, mpz_ui_kronecker.
125: * New rational functions: mpq_out_str, mpq_swap.
126: * New float functions: mpf_swap.
127: * New mpn functions: mpn_divexact_by3c, mpn_tdiv_qr.
128: * New EXPERIMENTAL function layer for accurate floating-point arithmetic, mpfr.
129: To try it, pass --enable-mpfr to configure. See the mpfr subdirectory for
130: more information; it is not documented in the main GMP manual.
131:
132: Changes between MP version 3.0 and 3.0.1
133:
134: * Memory leaks in gmp_randinit and mpz_probab_prime_p fixed.
135: * Documentation for gmp_randinit fixed. Misc documentation errors fixed.
136:
137: Changes between MP version 2.0 and 3.0
138:
139: * Source level compatibility with past releases (except mpn_gcd).
140: * Bug fixes.
141: * Much improved speed thanks to both host independent and host dependent
142: optimizations.
143: * Switch to autoconf/automake/libtool.
144: * Support for building libgmp as a shared library.
145: * Multiplication and squaring using 3-way Toom-Cook.
146: * Division using the Burnikel-Ziegler method.
147: * New functions computing binomial coefficients: mpz_bin_ui, mpz_bin_uiui.
148: * New function computing Fibonacci numbers: mpz_fib_ui.
149: * New random number generators: mpf_urandomb, mpz_rrandomb, mpz_urandomb,
150: mpz_urandomm, gmp_randclear, gmp_randinit, gmp_randinit_lc_2exp, gmp_randseed,
151: gmp_randseed_ui.
152: * New function for quickly extracting limbs: mpz_getlimbn.
153: * New functions performing integer size tests: mpz_fits_sint_p,
154: mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p, mpz_fits_ulong_p,
155: mpz_fits_ushort_p.
156: * New mpf functions: mpf_ceil, mpf_floor, mpf_pow_ui, mpf_trunc.
157: * New mpq function: mpq_set_d.
158: * New mpz functions: mpz_addmul_ui, mpz_cmpabs, mpz_cmpabs_ui, mpz_lcm,
159: mpz_nextprime, mpz_perfect_power_p, mpz_remove, mpz_root, mpz_swap,
160: mpz_tdiv_ui, mpz_tstbit, mpz_xor.
161: * New mpn function: mpn_divexact_by3.
162: * New CPU support: DEC Alpha 21264, AMD K6 and Athlon, HPPA 2.0 and 64,
163: Intel Pentium Pro and Pentium-II/III, Sparc 64, PowerPC 64.
164: * Almost 10 times faster mpz_invert and mpn_gcdext.
165: * The interface of mpn_gcd has changed.
166: * Better support for MIPS R4x000 and R5000 under Irix 6.
167: * Improved support for SPARCv8 and SPARCv9 processors.
168:
169: Changes between MP version 2.0 and 2.0.2
170:
171: * Many bug fixes.
172:
173: Changes between MP version 1.3.2 and 2.0
1.1 maekawa 174:
175: * Division routines in the mpz class have changed. There are three classes of
176: functions, that rounds the quotient to -infinity, 0, and +infinity,
177: respectively. The first class of functions have names that begin with
178: mpz_fdiv (f is short for floor), the second class' names begin with mpz_tdiv
179: (t is short for trunc), and the third class' names begin with mpz_cdiv (c is
180: short for ceil).
181:
182: The old division routines beginning with mpz_m are similar to the new
183: mpz_fdiv, with the exception that some of the new functions return useful
184: values.
185:
186: The old function names can still be used. All the old functions names will
187: now do floor division, not trunc division as some of them used to. This was
188: changed to make the functions more compatible with common mathematical
189: practice.
190:
191: The mpz_mod and mpz_mod_ui functions now compute the mathematical mod
192: function. I.e., the sign of the 2nd argument is ignored.
193:
194: * The mpq assignment functions do not canonicalize their results. A new
195: function, mpq_canonicalize must be called by the user if the result is not
196: known to be canonical.
197: * The mpn functions are now documented. These functions are intended for
198: very time critical applications, or applications that need full control over
199: memory allocation. Note that the mpn interface is irregular and hard to
200: use.
201: * New functions for arbitrary precision floating point arithmetic. Names
202: begin with `mpf_'. Associated type mpf_t.
203: * New and improved mpz functions, including much faster GCD, fast exact
204: division (mpz_divexact), bit scan (mpz_scan0 and mpz_scan1), and number
205: theoretical functions like Jacobi (mpz_jacobi) and multiplicative inverse
206: (mpz_invert).
207: * New variable types (mpz_t and mpq_t) are available that makes syntax of
208: mpz and mpq calls nicer (no need for & before variables). The MP_INT and
209: MP_RAT types are still available for compatibility.
210: * Uses GNU configure. This makes it possible to choose target architecture
211: and CPU variant, and to compile into a separate object directory.
212: * Carefully optimized assembly for important inner loops. Support for DEC
1.1.1.2 maekawa 213: Alpha, Amd 29000, HPPA 1.0 and 1.1, Intel Pentium and generic x86, Intel
1.1 maekawa 214: i960, Motorola MC68000, MC68020, MC88100, and MC88110, Motorola/IBM
215: PowerPC, National NS32000, IBM POWER, MIPS R3000, R4000, SPARCv7,
216: SuperSPARC, generic SPARCv8, and DEC VAX. Some support also for ARM,
217: Clipper, IBM ROMP (RT), and Pyramid AP/XP.
218: * Faster. Thanks to the assembler code, new algorithms, and general tuning.
219: In particular, the speed on machines without GCC is improved.
220: * Support for machines without alloca.
221: * Now under the LGPL.
222:
223: INCOMPATIBILITIES BETWEEN GMP 1 AND GMP 2
224:
225: * mpq assignment functions do not canonicalize their results.
226: * mpz division functions round differently.
227: * mpz mod functions now really compute mod.
228: * mpz_powm and mpz_powm_ui now really use mod for reduction.
1.1.1.2 maekawa 229:
230:
231:
232: ----------------
233: Local variables:
234: mode: text
235: fill-column: 76
236: End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>