summaryrefslogtreecommitdiff
path: root/Build/source/libs/gmp/gmp-6.0.0/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gmp/gmp-6.0.0/ChangeLog')
-rw-r--r--Build/source/libs/gmp/gmp-6.0.0/ChangeLog32941
1 files changed, 32941 insertions, 0 deletions
diff --git a/Build/source/libs/gmp/gmp-6.0.0/ChangeLog b/Build/source/libs/gmp/gmp-6.0.0/ChangeLog
new file mode 100644
index 00000000000..540c025c51d
--- /dev/null
+++ b/Build/source/libs/gmp/gmp-6.0.0/ChangeLog
@@ -0,0 +1,32941 @@
+2014-03-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 6.0.0 released.
+
+ * mpn: Update countless gmp-mparam.h files.
+
+2014-03-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
+ * gmp-h.in: Bump version.
+
+2014-03-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Remove clipper, i960, ns32k, pyr, a29k, z8000.
+ * mpn/clipper: Remove directory and all its files.
+ * mpn/i960: Likewise.
+ * mpn/ns32k: Likewise.
+ * mpn/pyr: Likewise.
+ * mpn/a29k: Likewise.
+ * mpn/z8000: Likewise.
+ * mpn/Makefile.am (TARG_DIST): Purge removed directories.
+ * doc/gmp.texi: Remove special mentions of removed architectures.
+
+2014-03-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpz_probab_prime_p): Micro-optimisation.
+
+2014-03-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/bd2/gmp-mparam.h: New file.
+ * mpn/x86_64/bd2/gmp-mparam.h: New file.
+
+2014-03-06 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-pprime_p.c (check_composites): New function.
+ (check_primes): New function.
+ (main): Call them. Also use TESTS_REPS.
+
+ * mini-gmp/mini-gmp.c (gmp_millerrabin): New internal function.
+ (mpz_probab_prime_p): New function.
+ * mini-gmp/mini-gmp.h (mpz_probab_prime_p): Declare it.
+ * mini-gmp/tests/t-pprime_p.c: New test program.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-pprime_p.
+
+2014-03-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/mini-gmp.c (mpz_congruent_p): New function.
+ * mini-gmp/mini-gmp.h: Declare it.
+ * mini-gmp/tests/t-cong.c: New file, based on tests/mpz/t-cong.c.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cong.
+
+ * mini-gmp/tests/testutils.c (dump): New function. Deleted static
+ functions in other files.
+ (mpz_set_str_or_abort): Moved function here, from...
+ * mini-gmp/tests/t-cmp_d.c: ... old location.
+
+ * mini-gmp/tests/t-reuse.c (dump3): Renamed, from ...
+ (dump): ...old name.
+
+2014-03-01 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sec_powm.c (mpn_sec_powm): Clarify comment and
+ asserts.
+
+2014-02-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c (fake_cpuid): Handle id 7, make bold claims.
+
+2014-02-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat_entry.asm: Zero ecx for the benefit of new BMI2
+ feature test.
+
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Run CPUVEC_SETUP_coreihwl
+ conditionally on BMI2 availability.
+
+ * config.guess: Revert "coreihwl" to "coreisbr" if cpuid indicates that
+ BMI2 is missing.
+ (x86 cpuid, 2 variants): Zero ecx for the benefit of new BMI2 feature
+ test.
+
+2014-02-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpn_sqrtrem): New function.
+ * mini-gmp/mini-gmp.h: Declare it.
+ * mini-gmp/tests/t-sqrt.c: Test it.
+
+2014-02-17 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/div_qr_1.c (mpn_div_qr_1): Revert yesterday's fix.
+ Hopefully no longer needed.
+
+ * mpn/s390_64/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
+ * mpn/s390_64/z10/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1.
+
+ * tune/tuneup.c (tune_div_qr_1): Ensure DIV_QR_1_NORM_THRESHOLD,
+ DIV_QR_1_UNNORM_THRESHOLD >= 1.
+
+2014-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/div_qr_1.c: Disallow DIV_QR_1_NORM_THRESHOLD==0.
+
+2014-02-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-div.c: Fix typo.
+
+2014-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * doc/gmp.texi (mpz_roinit_n, MPZ_ROINIT_N): Document that
+ at least a readable limb is required.
+ * mini-gmp/mini-gmp.c (mpz_div_qr): init + set = init_set .
+
+2014-02-14 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (Low-level Functions): Update docs for
+ mpn_sec_powm, to specify that left-over exponent bits must be
+ zero.
+
+2014-02-11 Niels Möller <nisse@lysator.liu.se>
+
+ * Makefile.am (EXTRA_DIST): Distribute COPYING.LESSERv3,
+ COPYINGv2, and COPYINGv3.
+
+ * doc/gmp.texi (Low-level Functions): Updated mpn_sec_powm docs.
+
+ * mpn/generic/sec_powm.c (mpn_sec_powm): Replaced exponent limb
+ count argument by bit count. Don't leak high exponent bits, and
+ drop the requirement that the most significant exponent limb is
+ non-zero.
+ (mpn_sec_powm_itch): Analogous interface change.
+ * gmp-h.in: Updated prototypes.
+ * mpz/powm_sec.c (mpz_powm_sec): Update mpn_sec_powm* calls.
+ * tune/tuneup.c (tune_powm_sec): Likewise. Also deleted code
+ fiddling with the high exponent bits.
+
+2014-02-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-limbs.c: New test for mpz_limbs_*.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Add it.
+
+2014-02-09 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (tune_powm_sec): Avoid timing of the nonsensical
+ parameters nbits = 1, winsize = 2. Decrement tabulated values, to
+ better match the > comparison when the table is used.
+
+ * mpn/generic/sec_powm.c (win_size): Comment why we always get
+ win_size(eb) <= eb. Make the table const.
+ (mpn_sec_powm): Deleted handling of winsize > initial ebi. For
+ now, replaced with an ASSERT_ALWAYS.
+
+2014-02-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpz_realloc2, mpz_limbs_read, mpz_limbs_modify
+ mpz_limbs_write, mpz_limbs_finish, mpz_roinit_n): New functions.
+ (mpn_perfect_square_p): New function.
+ * mini-gmp/mini-gmp.h: Declare them.
+
+ * mini-gmp/tests/t-mul.c: Use roinit and limbs_read to test mpn.
+ * mini-gmp/tests/t-sqrt.c: Test also mpn_perfect_square_p.
+
+2014-02-08 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sec_invert.c (mpn_cnd_neg_itch): #if:ed out unused
+ function.
+
+ * mpn/generic/sec_div.c: Simplified code for the normalized case.
+
+ * tests/mpn/t-div.c (main): Test mpn_sec_div_qr and mpn_sec_div_r
+ with normalized d.
+
+2014-02-04 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (Low-level Functions): Document mpn_sec_add_1 and
+ mpn_sec_sub_1.
+
+2014-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpn_rootrem): Allow NULL argument.
+
+ * mini-gmp/mini-gmp.c (mpn_zero): New function.
+ (mpz_perfect_square_p): New function.
+ * mini-gmp/mini-gmp.h: Declare them.
+
+ * mini-gmp/tests/t-sqrt.c: Test mpz_perfect_square_p.
+ * mini-gmp/tests/t-root.c: Test also 1-th root, allow perfect powers.
+
+2014-01-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Floating-point Functions): Revise.
+
+2014-01-29 Niels Möller <nisse@lysator.liu.se>
+
+ * README: Don't refer to specific COPYING* files, instead refer to
+ manual for details.
+
+ * COPYING.LIB: Renamed, to...
+ * COPYING.LESSERv3: ... new name.
+ * COPYING: Renamed, to...
+ * COPYINGv3: ... new name.
+ * COPYINGv2: New file, GPLv2.
+
+ * doc/gmp.texi (Copying): Document dual licensing.
+
+2014-01-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * Update library files license to use LGPL3+ and GPL2+.
+
+2014-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpn/t-aors_1.c: Check sec_aors_1 red zones (not smart).
+
+ * mpn/generic/sec_aors_1.c: Mark the 2nd argument as const.
+ * gmp-h.in (mpn_sec_add_1, mpn_sec_sub_1): Likewise.
+
+2014-01-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c (fake_cpuid_table): Use proper steamroller and
+ excavator values.
+
+ * config.guess: Amend last AMD change.
+
+ * mpn/s390_64/lshift.asm: Align loop.
+ * mpn/s390_64/rshift.asm: Likewise.
+ * mpn/s390_64/lshiftc.asm: Likewise.
+ * mpn/s390_64: Add z10 cycle numbers.
+
+2014-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * printf/repl-vsnprintf.c: Feed case 'z' in switch (type) with case 'z'
+ in switch (fchar).
+
+ * mini-gmp/tests/t-aorsmul.c: New file, test for mpz_{add,sub}mul{,_ui}
+ * mini-gmp/tests/Makefile: Add t-aorsmul.
+
+2014-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * acinclude.m4 (GMP_FUNC_VSNPRINTF): Get rid of varargs.
+
+2014-01-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Fix duplicate entries for
+ AMD "jaguar".
+
+ * demos/expr: Get rid of varargs code and references.
+
+2014-01-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Add new AMD CPUs (piledriver, steamroller, excavator,
+ jaguar).
+ * config.sub: Corresponding updates.
+ * configure.ac: Likewise.
+ * acinclude.m4 (X86_64_PATTERN): Likewise.
+ * mpn/x86_64/fat/fat.c: Likewise.
+
+ * Rename mpn_sec_minvert => mpn_sec_invert, many files affected.
+ * mpn/generic/sec_invert.c: New name for sec_minvert.c.
+
+ * doc/gmp.texi: Undocument mpz_array_init.
+
+ * acinclude.m4 (GMP_C_STDARG): Comment out.
+ * configure.ac: Suppress GMP_C_STDARG invocation.
+
+ * Get rid of varargs code and references, many file affected.
+
+ * Use mpq_t in favour of MP_RAT, many mpq files affected.
+
+ * Get rid of BYTES_PER_MP_LIMB, most files affected.
+
+ * mpz/iset.c: Avoid overflow in allocation computation.
+ * mpz/mul.c: Likewise.
+ * mpf/init.c: Likewise.
+ * mpf/init2.c: Likewise.
+ * mpf/iset.c: Likewise.
+ * mpf/iset_d.c: Likewise.
+ * mpf/iset_si.c: Likewise.
+ * mpf/iset_str.c: Likewise.
+ * mpf/iset_ui.c: Likewise.
+
+ * mpz/array_init.c: Avoid two overflow scenarios in allocation
+ computation.
+
+ * mpn/s390_64/z10/gmp-mparam.h: New file.
+
+ * mpz/clears.c: Call __gmp_free_func ourselves instead of via
+ mpz_clears.
+ * mpf/clears.c: Analogous change.
+ * mpq/clears.c: Analogous change.
+
+ * mpz/clear.c: Add cast to avoid overflow of (later ignored) argument.
+ * mpf/clear.c: Likewise.
+
+2014-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpn_popcount): New function.
+ (mpz_popcount): Use it.
+ (mpz_addmul_ui, mpz_addmul, mpz_submul_ui, mpz_submul): Added.
+ * mini-gmp/mini-gmp.h: Declare them.
+
+2014-01-18 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-aors_1.c: Test also mpn_sec_add_1 and mpn_sec_sub_1.
+
+ * tests/mpn/t-minvert.c (main): Pass smallest allowed bit_size
+ argument to mpn_sec_minvert.
+
+2014-01-18 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/gmp.texi (C++ Interface Limitations): Warn against C++11 auto.
+
+2014-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/t-parity.c: Use 1UL to generate unsigned constants.
+ * tests/t-constants.c: Disable a non portable (unneeded) check.
+
+2014-01-18 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sec_aors_1.c (mpn_sec_add_1, mpn_sec_sub_1): New
+ file.
+
+ * mpn/generic/sec_minvert.c (mpn_sec_add_1_itch, mpn_sec_add_1):
+ Deleted static definitions.
+ (mpn_cnd_swap): Use volatile.
+
+ * configure.ac (gmp_mpn_functions): sec_add_1 and sec_sub_1.
+ (GMP_MULFUNC_CHOICES): Set up for sec_aors_1.
+
+2014-01-16 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c (speed_mpn_sec_minvert): New function.
+ * tune/speed.h: Declare it.
+ (SPEED_ROUTINE_MPN_SEC_MINVERT): New macro.
+ * tune/speed.c (routine): Added mpn_sec_minvert.
+
+ * mini-gmp/mini-gmp.c (mp_bits_per_limb): New const value.
+ * mini-gmp/mini-gmp.h: Declare it.
+
+2014-01-12 Marc Glisse <marc.glisse@inria.fr>
+
+ * demos/expr/expr.h: Add extern "C" for C++.
+
+2014-01-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Notes for Particular Systems): Add items about old
+ NetBSD and current FreeBSD m4 problems. Add item about FreeBSD's
+ broken limits.h.
+
+2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h: Declare all _itch functions using ATTRIBUTE_CONST.
+
+2014-01-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (alpha): Set extra_functions conditionally.
+
+ * gmp-h.in (mpn_sec_minvert): Remove formal parameters.
+
+ * doc/gmp.texi: Improve doc for several functions.
+
+ * mpn/generic/sec_tabselect.c: Declare input arg using 'const'.
+ * gmp-h.in: Analogous change.
+
+ * gmp-h.in: Declare all itch functions using __GMP_ATTRIBUTE_PURE.
+ * gmp-impl.h: Likewise.
+
+2014-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpn/t-minvert.c: Always compare with mpz_invert results,
+ add red zone to scratch.
+ * tests/mpn/t-sizeinbase.c: New test.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-sizeinbase.c .
+ * tests/mpn/t-div.c: Use mpn_sec_div_*_itch().
+
+ * mpn/generic/pow_1.c: Micro-optimisation.
+
+2014-01-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * acinclude.m4 (GMP_PROG_M4): Avoid hex output, since case varies.
+
+2014-01-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Support newer haswell, broadwell, silvermont.
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Likewise.
+
+ * acinclude.m4 (GMP_PROG_M4): Check that eval's radix argument work.
+
+ * mpz/invert.c: Rely on gcdext for all operands, removing faulty
+ special case.
+ * tests/mpz/t-invert.c: Enforce correct behaviour for |mod| = 1.
+
+2014-01-02 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (Low-level Functions): Document mpn_sizeinbase.
+
+ Enable previously unused mpn_sizeinbase function.
+ * configure.ac (gmp_mpn_functions): Added sizeinbase.
+ * gmp-h.in (mpn_sizeinbase): New prototype.
+
+2014-01-02 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmp-impl.h: Always include <limits.h>.
+ * tests/mpn/t-get_d.c: Remove comment about <limits.h>
+
+ * gmp-h.in (__GMP_USHRT_MAX): Use the promoted type.
+ * gmp-impl.h (USHRT_HIGHBIT, SHRT_MIN, SHRT_MAX): Likewise.
+ * tests/t-constants.c: Adapt printf strings.
+ * tests/t-gmpmax.c: Likewise.
+
+ * tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Add parentheses.
+
+2014-01-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Low-level Functions for cryptography): Update interface
+ for mpn_sec_div_qr and fix typos in mpn_sec_minvert text.
+
+ * mpn/generic/sec_div.c: Rewrite to make mpn_sec_div_qr return high
+ quotient limb.
+ * gmp-h.in (mpn_sec_div_qr): Update declaration.
+ * tests/mpn/t-div.c: Adapt.
+
+2013-12-31 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (Low-level Functions for cryptography): Document
+ mpn_sec_minvert.
+
+2013-12-30 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/gmp.texi (C++ interface internals): Break long line.
+
+2013-12-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Low-level Functions for cryptography): New section.
+
+2013-12-29 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-minvert.
+ * tests/mpn/t-minvert.c: New file.
+
+ * configure.ac (gmp_mpn_functions): Added sec_minvert.
+ * gmp-h.in (mpn_sec_minvert, mpn_sec_minvert_itch): New
+ declarations.
+ * mpn/generic/sec_minvert.c (mpn_sec_minvert)
+ (mpn_sec_minvert_itch): New functions.
+ (mpn_sec_add_1, mpn_cnd_neg, mpn_cnd_swap, mpn_sec_eq_ui): New
+ helper functions.
+
+2013-12-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/sec_powm.c: Fix an ASSERT.
+
+ * gmp-h.in (mpn_sec_mul, mpn_sec_mul_itch): New declarations.
+ * gmp-h.in (mpn_sec_sqr, mpn_sec_sqr_itch): Likewise.
+ * mpn/generic/sec_mul.c: New file.
+ * mpn/generic/sec_sqr.c: New file.
+
+ * gmp-h.in (mpn_sec_powm, mpn_sec_powm_itch): New declarations.
+ * gmp-h.in (mpn_sec_div_qr, mpn_sec_div_qr_itch): Likewise.
+ * gmp-h.in (mpn_sec_div_r, mpn_sec_div_r_itch): Likewise.
+ * gmp-impl: Remove declarations of above functions.
+
+ * configure.ac (gmp_mpn_functions): Add sec_mul and sec_sqr.
+
+2013-12-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * Update many file's encoding to UTF-8.
+ * doc/tasks.html: Update <meta content> accordingly.
+ * doc/projects.html: Likewise.
+
+2013-12-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Rename mpn_blah_sec to mpn_sec_blah.
+ * gmp-impl.h: Corresponding changes.
+ * mpn/asm-defs.m4: Corresponding changes.
+ * tune/Makefile.am: Corresponding changes.
+ * tune/common.c: Corresponding changes.
+ * tune/speed.c: Corresponding changes.
+ * tune/speed.h: Corresponding changes.
+ * tune/tuneup.c: Corresponding changes.
+ * mpz/powm_sec.c: Update calls.
+ * tests/mpn/t-div.c: Likewise.
+
+ * mpn/generic/sec_powm.c: New name for mpn/generic/powm_sec.c.
+ * mpn/generic/sec_div.c: New name for mpn/generic/sb_div_sec.c.
+ * mpn/generic/sec_pi1_div.c: New name for mpn/generic/sbpi1_div_sec.c.
+ * mpn/generic/sec_tabselect.c: New name for mpn/generic/tabselect.c.
+
+ * mpn/alpha/sec_tabselect.asm: New name for tabselect.asm.
+ * mpn/arm/neon/sec_tabselect.asm: New name for tabselect.asm.
+ * mpn/arm/sec_tabselect.asm: New name for tabselect.asm.
+ * mpn/ia64/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/powerpc32/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/powerpc64/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/sparc64/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86/mmx/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/bd1/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/core2/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/coreinhm/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/coreisbr/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/fastsse/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/k10/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/pentium4/sec_tabselect.asm: New name for tabselect.asm
+ * mpn/x86_64/sec_tabselect.asm: New name for tabselect.asm
+
+2013-12-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/powm_sec.c: Handle 0^e mod m specially.
+ * mpn/generic/powm_sec.c: ASSERT that the base is non-zero.
+
+2013-12-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm_sec.c (redcify): Use passed scratch instead of
+ locally allocated.
+ (mpn_powm_sec_itch): Accommodate mpn_sb_div_r_sec's scratch needs.
+
+2013-12-20 Mark Sofroniou <marks@wolfram.com>
+
+ * mpn/generic/mul_fft.c: Major overhaul of types.
+
+2013-12-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Low-level Functions): Rewrite mpn_set_str docs.
+
+2013-12-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * mpn/powerpc32/darwin.m4: Allow (and ignore) optional
+ 'toc' parameter to PROLOGUE_cpu.
+ * mpn/powerpc32/elf.m4: Likewise.
+
+2013-12-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * configure.ac: Check for ELFv2 ABI on PowerPC.
+ * mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2
+ and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences.
+ Support optional 'toc' parameter to PROLOGUE_cpu.
+ * mpn/powerpc64/aix.m4: Allow (and ignore) optional
+ 'toc' parameter to PROLOGUE_cpu.
+ * mpn/powerpc64/darwin.m4: Likewise.
+
+ * mpn/powerpc64/mode64/dive_1.asm (mpn_divexact_1): Add 'toc'
+ parameter to PROLOGUE.
+ * mpn/powerpc64/mode64/divrem_1.asm (mpn_divrem_1): Likewise.
+ * mpn/powerpc64/mode64/divrem_2.asm (mpn_divrem_2): Likewise.
+ * mpn/powerpc64/mode64/gcd_1.asm (mpn_gcd_1): Likewise.
+ * mpn/powerpc64/mode64/invert_limb.asm (mpn_invert_limb): Likewise.
+ * mpn/powerpc64/mode64/mod_1_1.asm (mpn_mod_1_1p_cps): Likewise.
+ * mpn/powerpc64/mode64/mod_1_4.asm (mpn_mod_1s_4p_cps): Likewise.
+ * mpn/powerpc64/mode64/mode1o.asm (mpn_modexact_1c_odd): Likewise.
+ * mpn/powerpc64/mode64/p7/gcd_1.asm (mpn_gcd_1): Likewise.
+ * mpn/powerpc64/p6/lshift.asm (mpn_lshift): Likewise.
+ * mpn/powerpc64/p6/lshiftc.asm (mpn_lshiftc): Likewise.
+ * mpn/powerpc64/p6/rshift.asm (mpn_rshift): Likewise.
+ * mpn/powerpc64/vmx/popcount.asm (mpn_popcount): Likewise.
+
+2013-12-07 Niels Möller <nisse@lysator.liu.se>
+
+ * configfsf.sub: Updated to version 2013-10-01, from gnulib.
+ * configfsf.guess: Updated to version 2013-11-29, from gnulib.
+
+2013-12-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/div_qr_1.c: Make constant args asm inlines become limbs.
+ * mpn/generic/div_qr_1n_pi1.c: Likewise.
+ * mpn/generic/div_qr_2.c: Likewise.
+ * mpn/generic/div_qr_2.c: Likewise.
+ * mpn/generic/mod_1_1.c: Likewise.
+ * mpn/generic/mod_1_2.c: Likewise.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_4.c: Likewise.
+ * mpn/generic/mulmid_basecase.c: Likewise.
+ * mpn/generic/mulmod_bnm1.c: Likewise.
+ * mpn/generic/sqrmod_bnm1.c: Likewise.
+ * mpn/sparc64/divrem_1.c: Likewise.
+ * mpn/sparc64/mod_1_4.c: Likewise.
+
+ * mpn/generic/toom_interpolate_7pts.c (BINVERT_15): Fix typo.
+
+2013-11-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/dos64.m4 (CALL): Provide to override default.
+
+2013-11-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/x86_64-defs.m4 (CALL): Swap PIC test and macro defn.
+
+ * mpn/generic/div_qr_2.c: Test HAVE_HOST_CPU_FAMILY_x86, not i386.
+
+ * doc/gmp.texi: Update many URLs.
+
+2013-11-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Set symbol OPENBSD for x86-openbsd hosts.
+ * mpn/x86_64/fat/fat_entry.asm (PRETEND_PIC): New name for
+ PIC_OR_DARWIN.
+ (PRETEND_PIC): Set also for OPENBSD.
+
+2013-10-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * printf/doprnt.c (__gmp_doprnt): Use memcpy instead of strcpy.
+
+2013-10-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/div_qr_1u_pi2.c: New file.
+ * mpn/generic/div_qr_1n_pi2.c: New file.
+
+2013-10-24 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/div_qr_1n_pi1.asm: Bugfixes, for case n == 1 and
+ in-place operation.
+ * mpn/x86_64/k8/div_qr_1n_pi1.asm: Likewise.
+
+ * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Bug fixes,
+ off-by-one MPN_INCR_U, and support for in-place operation.
+
+2013-10-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/fat/fat.c (fake_cpuid_table): Add Haswell.
+
+2013-10-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'.
+ (regnum): Use x86_lookup, feed oplist.
+
+2013-10-22 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/devel/try.c: Support mpn_div_qr_1n_pi1.
+
+ * mpn/x86_64/k8/div_qr_1n_pi1.asm: Moved the below k10 file here.
+ Applied tweak from Torbjörn to get it to run well on k8.
+
+ * mpn/x86_64/k10/div_qr_1n_pi1.asm: New file (renamed above).
+ Differs from generic x86_64 version by using cmov.
+
+ * mpn/x86_64/div_qr_1n_pi1.asm: Reordered arguments to second mul.
+ Deleted misleading cycle annotations.
+
+2013-10-21 Niels Möller <nisse@lysator.liu.se>
+
+ * configure.ac: Add HAVE_NATIVE_mpn_div_qr_1n_pi1 to config.in.
+
+ * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Fix typos
+ affecting ASSERT.
+
+2013-10-20 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/div_qr_1n_pi1.asm: New file.
+
+ * tune/div_qr_1_tune.c (__gmpn_div_qr_1n_pi1): Check
+ div_qr_1n_pi1_method only when !HAVE_NATIVE_mpn_div_qr_1n_pi1.
+
+ * mpn/asm-defs.m4 (define_mpn): Add div_qr_1n_pi1.
+
+ * tune/common.c (speed_mpn_div_qr_1): New function, replacing...
+ (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): ... deleted functions
+ (speed_mpn_div_qr_1n_pi1, speed_mpn_div_qr_1n_pi1_1)
+ (speed_mpn_div_qr_1n_pi1_2): New functions.
+ * gmp-impl.h [TUNE_PROGRAM_BUILD]: Declare div_qr_1-related tuning
+ variables.
+ * tune/tuneup.c (speed_mpn_div_qr_1_tune, tune_div_qr_1): New
+ functions.
+ (div_qr_1n_pi1_method, div_qr_1_norm_threshold)
+ (div_qr_1_unnorm_threshold): New globals.
+ * tune/speed.c (routine): Replaced mpn_div_qr_1n and mpn_div_qr_1u
+ by mpn_div_qr_1, requiring ".r" parameter. Added mpn_div_qr_1n_pi1
+ and variants.
+ * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): Use the "r" parameter
+ as divisor.
+ * tune/div_qr_1n_pi1_2.c: New file.
+ * tune/div_qr_1n_pi1_1.c: New file.
+ * tune/div_qr_1_tune.c: New file.
+ * tune/Makefile.am (libspeed_la_SOURCES): Added div_qr_1n_pi1_1.c,
+ div_qr_1n_pi1_2.c, and div_qr_1_tune.c.
+
+ * tune/speed.c (routine): Added mpn_div_qr_1n and mpn_div_qr_1u.
+ * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): New macro.
+ (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): Declare.
+ * tune/common.c (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): New
+ functions.
+
+ * gmp-impl.h (mpn_div_qr_1n_pi1): Declare function.
+ * gmp-h.in (mpn_div_qr_1): Declare function.
+ * configure.ac (gmp_mpn_functions): Added div_qr_1 and
+ div_qr_1n_pi1.
+ * mpn/generic/div_qr_1.c (mpn_div_qr_1): New file and function.
+ * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): New file and
+ function.
+ * tests/mpn/t-div.c (main): Test mpn_div_qr_1.
+
+2013-10-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (alpha): Pass -mieee via gcc_cflags_maybe.
+
+2013-10-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Let AMD64 cpuid bit override pessimistic cpu guesses.
+
+ * mpn/alpha/unicos.m4 (DATASTART): Accept optional align parameter.
+ * mpn/alpha/divrem_2.asm: Use provided gp mechanisms.
+ * mpn/alpha/default.m4 (PROLOGUE): Provide "..ng" post-gp label.
+ * mpn/alpha/invert_limb.asm: Align table to 8-byte boundary. Make code
+ work if table is not fully aligned. Properly test for BWX.
+
+2013-10-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/default.m4 (DATASTART): Use RODATA instead of DATA;
+ accept optional align parameter.
+ * mpn/alpha/invert_limb.asm: Align table.
+ * mpn/alpha/ev5/diveby3.asm: Likewise.
+
+2013-10-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/mod_1_1.asm: Use 'subl' form to avoid ambiguity.
+ * mpn/x86/k7/mod_1_4.asm: Likewise.
+
+ * configure.ac (X86_64_PATTERN): Append "cc" to cclist_64 and
+ cclist_x32.
+
+2013-10-08 Torbjorn Granlund <tege@gmplib.org>
+ Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/mpf/reuse.c (main): Compare addresses instead of names.
+ Use larger numbers for exponents.
+
+2013-10-08 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/mdate-sh, doc/texinfo.tex, install-sh, missing, ylwrap: Remove.
+ * .bootstrap: Use autoreconf (and in particular automake -a).
+
+ * gmp-h.in: Remove __need_size_t. Include <stddef.h>, not <cstddef>.
+
+ * tests/mpf/reuse.c (main): Use small numbers as exponents.
+
+2013-10-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/aorsmul_1.asm: Slight tweak.
+
+ * doc/gmp.texi (ABI and ISA): Document x32.
+
+ * mpn/sparc64/ultrasparct3/dive_1.asm: Use our register names.
+
+2013-09-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/redc_1.asm: New file.
+
+2013-09-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bobcat/redc_1.asm: Make the code for 1 <= n <= 3 work.
+
+2013-09-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/redc_1.asm: Slightly tweak basecase code.
+
+ * mpn/x86_64/core2/redc_1.asm: New file.
+
+ * mpn/x86_64/bobcat/redc_1.asm: New file.
+
+2013-09-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreinhm/redc_1.asm: New file.
+
+2013-09-21 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/mpn/t-mulmid.c: Cast arguments of printf to int to match %d.
+ * tests/rand/t-urbui.c: Use 1UL for unsigned constant.
+ * mpn/generic/get_str.c: Avoid temporarily pointing outside an array.
+
+2013-09-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/redc_1.asm: New file.
+
+ * mpn/x86_64/k8/redc_1.asm: Complete rewrite.
+
+ * mpn/x86_64/coreisbr/mullo_basecase.asm: Postpone pushes, short-
+ circuit a branch.
+ * mpn/x86_64/coreihwl/mullo_basecase.asm: Short-circuit a branch.
+
+ * mpn/x86_64/core2/mullo_basecase.asm: New file.
+
+2013-09-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/copyi-palignr.asm: Allocate more stack under DOS.
+
+2013-09-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/mul_basecase.asm: New file.
+ * mpn/x86_64/core2/sqr_basecase.asm: New file.
+
+ * mpn/x86_64/coreihwl/mullo_basecase.asm: New file.
+ * mpn/x86_64/coreisbr/mullo_basecase.asm: New file.
+
+2013-09-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/copyi-palignr.asm: Preserve xmm6-xmm8 under DOS.
+
+2013-09-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/tabselect.asm: Use R8 for bit testing.
+
+ * mpn/x86_64/coreihwl/mul_basecase.asm: Replace mul_1 code.
+
+ * mpn/x86_64/coreisbr/aorsmul_1.asm: Rewrite.
+
+2013-09-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/gcd_1.asm: Use dep for combining table base and low bits.
+
+ * mpn/x86_64/fastsse/com-palignr.asm: Implement temp fix to properly
+ handle overlap.
+
+2013-09-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/copyi-palignr.asm: Rewrite rp != up (mod 16) code
+ to make it handle any allowed overlap.
+
+2013-09-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/com.asm: New file, grabbing fastsse code.
+
+ * mpn/x86_64/bd1/copyi.asm: New file, grabbing fastsse code.
+ * mpn/x86_64/bd1/copyd.asm: Likewise.
+ * mpn/x86_64/bd1/com.asm: Likewise.
+
+ * mpn/x86_64/fastavx/copyi.asm: New file.
+ * mpn/x86_64/fastavx/copyd.asm: New file.
+
+2013-09-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreihwl/aorsmul_1.asm: Streamline.
+
+2013-09-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreihwl/sqr_basecase.asm: Implement larger "corner".
+ Misc tuning.
+
+2013-09-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreihwl/redc_1.asm: New file.
+
+ * mpn/x86_64/x86_64-defs.m4 (mulx): Handle negative offsets.
+
+2013-08-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/sqr_basecase.asm: New file.
+
+ * mpn/x86_64/sqr_diag_addlsh1.asm: New file.
+
+2013-08-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/mul_basecase.c: New file.
+ * mpn/x86_64/fat/sqr_basecase.c: New file.
+ * mpn/x86_64/fat/mullo_basecase.c: New file.
+ * mpn/x86_64/fat/redc_1.c: New file.
+
+2013-08-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/k8/mul_basecase.asm: Move top-level basecase file to k8
+ subdir.
+ * mpn/x86_64/k8/sqr_basecase.asm: Likewise.
+ * mpn/x86_64/k8/redc_1.asm: Likewise.
+ * mpn/x86_64/k8/mullo_basecase.asm: Likewise.
+ * mpn/x86_64/k8/mulmid_basecase.asm: Likewise.
+
+ * mpn/ia64/aors_n.asm: Clean up some bundlings.
+
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Support Haswell.
+ (fake_cpuid_table): Likewise.
+
+ * configure.ac (x86): Remove any mulx paths. Let bwl path = hwl path.
+ (fat_path): Add coreihwl.
+
+ * mpn/x86_64/coreihwl/aorsmul_1.asm: Move from `mulx' directory, use
+ mulx() macro.
+ * mpn/x86_64/coreihwl/mul_1.asm: Likewise.
+ * mpn/x86_64/coreihwl/mul_2.asm: Likewise.
+ * mpn/x86_64/coreihwl/mul_basecase.asm: Likewise.
+ * mpn/x86_64/coreihwl/sqr_basecase.asm: Likewise.
+
+ * mpn/x86_64/x86_64-defs.m4 (mulx): New macro.
+ (regnum, regnumh, ix): Supporting macros.
+
+2013-08-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/divrem_1.asm: New file.
+
+2013-08-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/com-palignr.asm: New file, closely based on
+ copyi-palignr.asm.
+
+ * mpn/x86_64/fastsse/copyi.asm Use "test R8(reg)" instead of "bt".
+ * mpn/x86_64/fastsse/copyd-palignr.asm: Likewise.
+ * mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
+ * mpn/x86_64/fastsse/lshift-movdqu2.asm: Likewise.
+ * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
+ * mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
+ * mpn/x86_64/fastsse/tabselect.asm: Likewise.
+
+ * mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm: New file.
+
+ * mpn/alpha/aorslsh2_n.asm: New file.
+ * mpn/alpha/aorslsh1_n.asm: Rewrite.
+ * mpn/alpha/ev6/aorslsh1_n.asm: New file.
+
+2013-08-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/sqr_diag_addlsh1.asm: New file.
+ * mpn/alpha/sqr_diagonal.asm: Remove.
+ * mpn/alpha/ev6/sqr_diagonal.asm: Remove.
+
+2013-08-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc32/sqr_diag_addlsh1.asm: New file.
+ * mpn/powerpc32/sqr_diagonal.asm: Remove.
+
+2013-08-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreihwl/mulx/sqr_basecase.asm: New file.
+
+2013-08-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/aors_n.asm: Complete rewrite.
+
+2013-08-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreihwl/mulx/mul_basecase.asm: New file.
+
+ * mpn/x86_64/bd1/mul_2.asm: New file.
+
+ * mpn/x86_64/coreihwl/gmp-mparam.h: New file.
+
+2013-08-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreihwl/mulx/mul_2.asm: New file.
+ * mpn/x86_64/coreihwl/mulx/addmul_2.asm: New file.
+
+ * mpn/x86_64/coreinhm/aorsmul_1.asm: New file.
+
+ * mpn/x86_64/coreisbr/mul_basecase.asm: Save some O(n) and O(1) cycles.
+
+ * mpn/x86_64/coreisbr/mul_2.asm: New file.
+
+2013-08-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/addmul_2.asm: Complete rewrite.
+
+2013-08-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bd1/mul_basecase.asm: New file.
+
+ * mpn/x86_64/coreisbr/mul_basecase.asm: New file.
+
+ * mpn/x86_64/coreihwl/aorsmul_1.asm: New file.
+
+2013-07-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/mul_2.asm: New file.
+ * mpn/x86_64/atom/addmul_2.asm: New file.
+ * mpn/x86_64/atom/mul_1.asm: New file.
+ * mpn/x86_64/atom/aorsmul_1.asm: New file.
+
+ * mpn/x86_64/coreihwl/mul_1.asm: New file.
+
+ * configure.ac (x86): Add Haswell-specific path.
+
+ * configure.in (fat_functions): Add cnd_add_n, cnd_sub_n..
+ * gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
+ * gmp-impl.h: Adjust corresponding declarations.
+
+ * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
+ * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.
+
+2013-07-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/popcount.asm: New file.
+
+2013-07-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bobcat/aors_n.asm: New file.
+
+ * mpn/x86_64/pentium4/aorslshC_n.asm: Remove a spurious emms insn.
+
+ * mpn/x86_64/bd1/aorrlsh1_n.asm: New file.
+ * mpn/x86_64/bd1/sublsh1_n.asm: New file.
+
+2013-07-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/mod_1_1.asm: Handle little-endian mode.
+ * mpn/powerpc64/mode64/mod_1_4.asm: Likewise.
+
+2013-07-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi: Declare countless of function arguments as 'const'.
+
+2013-07-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/aors_n.asm: Rewrite.
+
+ * mpn/generic/sb_div_sec.c: Compute inverse as floor(B^2/(dh+1)), per
+ Niels' suggestion.
+ * mpn/generic/sbpi1_div_sec.c: Remove inverse rounding-up code.
+
+2013-07-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/divrem_1.asm: Remove explicit nop after CALL.
+ * mpn/powerpc64/mode64/divrem_2.asm: Likewise.
+ * mpn/powerpc64/mode64/mod_1_1.asm: Likewise.
+ * mpn/powerpc64/mode64/mod_1_4.asm: Likewise.
+
+2013-07-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/cnd_add_n.asm: New file.
+ * mpn/x86/atom/cnd_sub_n.asm: New file.o
+
+2013-07-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/sbpi1_div_sec.c: Partial rewrite.
+
+2013-07-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/cnd_aors_n.asm: Tweak for better speed on K8, bobcat, bd1,
+ NHM, Atom.
+
+2013-07-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/p7/copyi.asm: Handle n = 0.
+ * mpn/powerpc64/p7/copyd.asm: Likewise.
+
+2013-07-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/p7/aormul_2.asm: New file.
+
+ * mpn/powerpc64/darwin.m4 (EXTRA_REGISTER): New define.
+ * mpn/powerpc64/aix.m4: New define (actually undefine).
+ * mpn/powerpc64/elf.m4: Likewise.
+
+2013-07-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/com.asm: Rewrite.
+
+ * mpn/powerpc64/p7/copyi.asm: New file.
+ * mpn/powerpc64/p7/copyd.asm: New file.
+
+2013-07-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/gcd_1.asm: New file.
+ * mpn/powerpc64/mode64/p7/gcd_1.asm: New file.
+
+2013-07-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Comment out AC_PROG_F77.
+
+ * mpn/powerpc64/mode64/rsh1add_n.asm: Remove.
+ * mpn/powerpc64/mode64/rsh1sub_n.asm: Remove.
+ * mpn/powerpc64/mode64/rsh1aors_n.asm: New file, code not based on
+ removed files.
+
+2013-06-28 Marc Glisse <marc.glisse@inria.fr>
+
+ * cxx/ismpf.cc: Use GMP_DECIMAL_POINT.
+ * cxx/osmpf.cc: Likewise.
+ * tests/cxx/t-locale.cc: Likewise.
+
+2013-06-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm: New file.
+ * mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm: New file.
+ * mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm: New file.
+
+ * mpn/powerpc64/mode64/aorsorrlshC_n.asm: Use alias regname.
+
+2013-06-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/p7/aors_n.asm: New file.
+
+2013-06-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * aorslshC_n.asm, aorslsh2_n.asm, aorslsh1_n.asm: Remove.
+ * aorsorrlshC_n.asm, aorsorrlsh1_n.asm, aorsorrlsh2_n.asm: New files.
+
+2013-06-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/p6/lshift.asm: Rewrite switching-into-loop code.
+ * mpn/powerpc64/p6/rshift.asm: Likewise.
+ * mpn/powerpc64/p6/lshiftc.asm: Likewise.
+
+2013-06-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/p6/lshift.asm: Fix typo in label reference.
+ For 32-bit mode, zero extend `n' argument and split retval.
+ * mpn/powerpc64/p6/rshift.asm: Likewise.
+ * mpn/powerpc64/p6/lshiftc.asm: Likewise.
+
+2013-06-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_div_q.c: Remove obsolete comment.
+
+2013-06-09 Marc Glisse <marc.glisse@inria.fr>
+
+ * mpn/generic/get_d.c (mpn_get_d): Avoid signed overflow.
+ * mpz/kronzs.c (mpz_kronecker_si): Use ABS_CAST.
+
+2013-05-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_div_q.c: Call mpn_mu_divappr_q for entire division,
+ never just for tail. (This fixes performance issues at the expense of
+ memory needs.)
+
+2013-05-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (*sparc*-*-*): Major overhaul.
+
+2013-05-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Reporting Bugs): Ask for configure's output.
+
+ * mpn/ia64/divrem_2.asm: Don't clobber f16-f18.
+
+2013-05-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/udiv.asm: Change spacing to work around binutils bug.
+
+2013-05-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
+
+ * tests/misc.c (tests_hardware_getround, tests_hardware_setround):
+ Avoid assembly dependency unless WANT_ASSEMBLY.
+
+ * configure.ac (WANT_ASSEMBLY): Conditionally define.
+
+2013-05-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (arm1156): Don't fall back to plain v6 compiler option.
+
+2013-05-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/mul_1.asm: Handle n = 1 for DOS64. Streamline.
+ * mpn/x86_64/coreisbr/aorsmul_1.asm: Streamline.
+
+2013-05-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/aorsmul_1.asm: Fix, then enable DOS64 support.
+ * mpn/x86_64/coreisbr/mul_1.asm: Enable DOS64 support.
+
+ * mpn/x86/p6/mmx/gmp-mparam.h: Set down SQR_TOOM2_THRESHOLD to parent
+ directory value.
+
+2013-05-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (--enable-fake-cpuid): New option.
+ * mpn/x86_64/fat/fat.c (WANT_FAKE_CPUID): Remove defaulting.
+ * mpn/x86/fat/fat.c (WANT_FAKE_CPUID): Likewise.
+
+ * mpn/x86_64/bd1/mul_1.asm: Fix typo.
+
+2013-05-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c (fake_cpuid): Handle 0x80000001 request.
+ (fake_cpuid_available): Remove unused function.
+
+ * mpn/generic/mod_1_1.c: Cast constant udiv_rnnd_preinv arguments.
+ * mpn/generic/mod_1_2.c: Likewise.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_4.c: Likewise.
+ * mpn/generic/divrem_2.c: Likewise.
+
+2013-05-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess (power*): Handle all ppc970 variants.
+
+2013-05-03 David S. Miller <davem@davemloft.net>
+
+ * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
+ speed_mpn_rsblsh1_n, speed_mpn_addlsh2_n, speed_mpn_sublsh2_n,
+ speed_mpn_rsblsh2_n): Don't define if these routines are macros.
+ * tune/speed.c (routine): Likewise don't table if they are macros.
+
+ * mpn/sparc64/ultrasparct3/addmul_1.asm: Add T4 and T3 timings.
+ * mpn/sparc64/ultrasparct3/aormul_4.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/aorslsh_n.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/submul_1.asm: Likewise.
+
+2013-05-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/aorslsh_n.asm: Invoke INITCY where it has
+ effect.
+
+ * gmp-impl.h: Amend last change.
+ * tests/devel/try.c (choice_array): Don't try to table addlsh1_n etc if
+ a macro.
+
+2013-05-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/copyd.asm: Suppress dead pointer update.
+ * mpn/arm/copyi.asm: Likewise.
+ * mpn/arm/neon/logops_n.asm: Likewise.
+ * mpn/arm/neon/tabselect.asm: Likewise.
+ * mpn/arm/rshift.asm: Likewise.
+ * mpn/arm/tabselect.asm: Likewise.
+ * mpn/arm/v6/dive_1.asm: Likewise
+ * mpn/arm/v7a/cora15/neon/copyi.asm: Likewise.
+
+ * mpn/arm/v7a/cora15/neon/com.asm: New file.
+
+2013-05-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/aormul_4.asm: New file.
+
+ * configure.ac (GMP_MULFUNC_CHOICES): Support mul_3 + addmul_3 and
+ mul_4 + addmul_4.
+
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: Optimise lead-in code.
+
+ * mpn/sparc64/ultrasparct3/missing.m4 (addxccc): Allow g2 as input.
+ (umulxhi): Save and restore o7 to allow it as in/out parameter.
+
+2013-04-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named.
+
+ * mpn/sparc64/ultrasparct3/addmul_1.asm: Rewrite.
+
+ * mpn/sparc64/ultrasparct3/submul_1.asm: Rewrite.
+
+ * mpn/sparc64/ultrasparct3/cnd_aors_n.asm: New file.
+
+ * gmp-impl.h: Override mpn_addlsh1_n, mpn_addlsh2_n, mpn_sublsh1_n, etc
+ with mpn_addlsh_n, etc when !HAVE_NATIVE the former but HAVE_NATIVE the
+ latter.
+
+ * mpn/sparc64/ultrasparct3/aorslsh_n.asm: New file.
+
+ * configure.ac (sparc-*-*): Recognise t5 along with t3 and t4.
+ Remove sparc64/ultrasparct1 from path_64 for T3, T3, and T5.
+
+2013-04-27 Mike Frysinger <vapier@gentoo.org>
+
+ * configure.ac (arm*-*-*): Set up path also for plainest CPU variants.
+
+2013-04-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v6/popham.asm: New file.
+
+ * mpn/arm/v7a/cora15/cnd-aors_n.asm: New file.
+
+2013-04-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/mod_34lsub1.asm: Clear carry smarter.
+
+ * mpn/arm/v7a/cora15/logops_n.asm: Conditionally suppress conditionally
+ used code.
+
+ * mpn/arm/v7a/cora15/submul_1.asm: New file.
+
+2013-04-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v7a/cora15/com.asm: New file.
+
+ * mpn/arm/v7a/cora15/logops_n.asm: New file.
+
+2013-04-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v7a/cora15/aors_n.asm: New file.
+
+ * mpn/arm/v7a/cora15/addmul_1.asm: Rewrite.
+
+2013-04-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/tabselect.asm: New file.
+
+2013-04-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc32/tabselect.asm: New file.
+
+ * longlong.h (arm64 count_trailing_zeros): New.
+
+ * mpn/arm64/invert_limb.asm: New file.
+
+ * mpn/generic/dive_1.c: Rewrite to use Hensel division also for
+ size = 1.
+
+ * mpn/generic/mod_1_1.c (add_mssaaaa): Provide VIS3 variant.
+
+ * configure.ac: Remove "missing" from extra_functions_64 for coreibwl.
+
+ * mpn/sparc64/ultrasparct3/mul_1.asm: Decrease loop alignment.
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: Likewise.
+
+2013-04-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/invert_limb.asm: Generate table.
+ * mpn/powerpc64/mode64/invert_limb.asm: Likewise.
+ * mpn/s390_64/invert_limb.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
+ * mpn/x86_64/invert_limb_table.asm: Likewise.
+
+2013-04-15 David S. Miller <davem@davemloft.net>
+
+ * mpn/sparc32/sparc-defs.m4 (LEA64): New macro.
+ * mpn/sparc64/gcd_1.asm: Use it.
+ * mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
+
+ * mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE.
+
+2013-04-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: Avoid addend for GOT entry,
+ it is not portable.
+
+ * mpn/sparc64/tabselect.asm: New file.
+
+ * mpn/x86/mmx/tabselect.asm: New file.
+ * configure.ac (x86): Add x86/mmx to path for relevant CPUs.
+
+ * mpn/sparc64/gcd_1.asm: Use rdpc for PIC.
+ * mpn/sparc64/ultrasparct3/mode1o.asm: Use rdpc for PIC.
+ * mpn/sparc64/ultrasparct3/dive_1.asm: Use rdpc for PIC.
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: Handle PIC, use rdpc.
+
+ * Revert remaining parts of recent sparc LEA changes.
+
+2013-04-14 David S. Miller <davem@davemloft.net>
+
+ * mpn/sparc32/v9/sqr_diagonal.asm: Revert LEA and INT32 changes.
+ * mpn/sparc64/gcd_1.asm: Likewise.
+
+2013-04-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bd1/tabselect.asm: New file.
+ * mpn/x86_64/coreisbr/tabselect.asm: New file.
+ * mpn/x86_64/k10/tabselect.asm: New file.
+ * mpn/x86_64/coreinhm/tabselect.asm: New file.
+ * mpn/x86_64/core2/tabselect.asm: New file.
+ * mpn/x86_64/pentium4/tabselect.asm: New file.
+
+ * mpn/x86_64/fastsse/tabselect.asm: New file.
+ * mpn/arm/neon/tabselect.asm: Rewrite.
+ * mpn/arm/tabselect.asm: Rewrite.
+ * mpn/powerpc64/tabselect.asm: Rewrite.
+ * mpn/x86_64/tabselect.asm: Rewrite.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_TABSELECT): Implement special code,
+ making .r argument be table width.
+
+2013-04-11 David S. Miller <davem@davemloft.net>
+
+ * mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label.
+ (LEA_LEAF): Likewise.
+
+2013-04-11 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/arm/v6/submul_1.asm: New file, using the corresponding
+ addmul_1 loop + complement trick.
+
+2013-04-10 David S. Miller <davem@davemloft.net>
+
+ * acinclude.m4 (GMP_ASM_SPARC_GOTDATA,
+ GMP_ASM_SPARC_SHARED_THUNKS): New feature tests.
+ * configure.ac: Call GMP_ASM_SPARC_GOTDATA and
+ GMP_ASM_SPARC_SHARED_THUNKS on sparc.
+ * mpn/sparc32/sparc-defs.m4 (LEA, LEA_LEAF, LEA_THUNK): New macros.
+ * mpn/sparc32/udiv.asm: Convert over to LEA, LEA_LEAF, and LEA_THUNK.
+ * mpn/sparc32/v8/addmul_1.asm: Likewise.
+ * mpn/sparc32/v8/mul_1.asm: Likewise.
+ * mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
+ * mpn/sparc32/v8/udiv.asm: Likewise.
+ * mpn/sparc64/gcd_1.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/dive_1.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise.
+ * mpn/sparc64/ultrasparct3/mode1o.asm: Likewise.
+ * mpn/sparc32/v9/sqr_diagonal.asm: Likewise and use INT32.
+
+2013-04-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3.
+
+ * config.guess (sparc*): Invoke set_cc_for_build to get $dummy.
+
+2013-04-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Rework tmp file names, make sure to remove tmp files.
+
+ * mpn/arm/dive_1.asm: Rewrite count-trailing-zeros code, using private
+ table.
+
+ * mpn/arm: Canonicalise arm assembly to use old style "mov ... lsl" for
+ shift ops.
+
+2013-04-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/mod_34lsub1.asm: New file.
+
+ * longlong.h (sparc64): Define umul_ppmm, add_ssaaaa, and
+ count_leading_zeros conditionally under the symbol __sparc_vis3.
+
+ * mpn/arm/dive_1.asm: New file.
+ * mpn/arm/v6/dive_1.asm: New file.
+
+ * mpn/arm/v6t2/mode1o.asm: Make trivial change to avoid v6t2...
+ * mpn/arm/v6/mode1o.asm: ...instruction, move file accordingly.
+
+ * mpn/powerpc64/mode64/invert_limb.asm: Put all multiplies low-limb first.
+
+2013-04-04 David S. Miller <davem@davemloft.net>
+
+ * mpn/sparc64/ultrasparct3/add_n.asm: Rewrite.
+ * mpn/sparc64/ultrasparct3/sub_n.asm: Rewrite.
+
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: Align table.
+
+2013-04-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc32/sparc-defs.m4: Provide dummy lzcnt.
+
+ * tests/mpn/logic.c: Seed using RANDS, then use mpz_rrandomb.
+
+ * tests/mpn/t-div.c (random_word): Remove. Let callers invoke urandom.
+
+ * mpn/sparc64/ultrasparct3/mul_1.asm: Rewrite.
+
+ * mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm: New file.
+ * mpn/sparc64/ultrasparct3/dive_1.asm: New file.
+ * mpn/sparc64/ultrasparct3/invert_limb.asm: New file.
+ * mpn/sparc64/ultrasparct3/mod_1_4.asm: New file.
+ * mpn/sparc64/ultrasparct3/mode1o.asm: New file.
+
+2013-04-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: Reschedule for better speed.
+
+2013-04-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/missing.m4: Misc tweaks.
+ (lzcnt): New.
+ * mpn/sparc64/ultrasparct3/missing.asm (__gmpn_lzcnt): New function.
+
+ * mpn/sparc32/sparc-defs.m4: Put FAKE_T3 stuff here...
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: ...moved from here.
+
+ * mpn/sparc64/ultrasparc1234/lshift.asm: Remove.
+ * mpn/sparc64/ultrasparc1234/rshift.asm: Remove.
+
+2013-04-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr,
+ allowing use in functions that does not do save/restore.
+
+ * mpn/sparc64/gcd_1.asm: Tweak for tighter loop.
+
+2013-03-31 David S. Miller <davem@davemloft.net>
+
+ * mpn/sparc64/lshift.asm: New file.
+ * mpn/sparc64/rshift.asm: New file.
+ * mpn/sparc64/lshiftc.asm: New file.
+
+2013-03-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct1/lshift.asm: Remove.
+ * mpn/sparc64/ultrasparct1/rshift.asm: Remove.
+ * mpn/sparc64/ultrasparct1/lshiftc.asm: Remove.
+
+2013-03-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: Always do mulx before umulxhi.
+
+2013-03-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p): Make precomputed arg 'const'.
+ (mpn_mod_1s_4p_cps): Update from generic code.
+
+2013-03-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/trialdiv.c: Make variables 'const' to match tables.
+
+ * mpn/generic/mod_1_1.c (mpn_mod_1_1p): Make precomputed arg 'const'.
+ * mpn/generic/mod_1_2.c (mpn_mod_1s_2p): Likewise.
+ * mpn/generic/mod_1_3.c (mpn_mod_1s_3p): Likewise.
+ * mpn/generic/mod_1_4.c (mpn_mod_1s_4p): Likewise.
+ * gmp-impl.h: Update prototypes.
+
+ * mpn/x86_64/mulx/aorsmul_1.asm: New file.
+ * mpn/x86_64/mulx/addmul_1.asm: Remove.
+
+2013-03-26 Niels Möller <nisse@lysator.liu.se>
+
+ Make mpn_cnd_add_n and mpn_cnd_sub_n public.
+ * doc/gmp.texi (Low-level Functions): Document mpn_cnd_add_n and
+ mpn_cnd_sub_n.
+ * gmp-h.in (mpn_cnd_add_n, mpn_cnd_sub_n): Moved prototypes
+ here...
+ * gmp-impl.h: ... from here.
+
+2013-03-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/pentium4/sse2/cnd_add_n.asm: New file.
+ * mpn/x86/pentium4/sse2/cnd_sub_n.asm: New file.
+ * mpn/x86/cnd_aors_n.asm: New file.
+
+2013-03-25 David S. Miller <davem@davemloft.net>
+
+ * mpn/sparc64/ultrasparct3/hamdist.asm: New file.
+ * mpn/sparc64/ultrasparct3/popcount.asm: New file.
+
+2013-03-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/aorsorrlshC_n.asm: Generalised from aorslshC_n.asm.
+ * mpn/ia64/aorsorrlsh1_n.asm: Generalised from aorslsh1_n.asm.
+ * mpn/ia64/aorsorrlsh2_n.asm: Generalised from aorslsh2_n.asm.
+
+2013-03-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm: New file.
+ * mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm: New file.
+ * mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm: New file.
+ * mpn/arm/v7a/cora15/neon/rsh1aors_n.asm: New file.
+
+ * configure.ac (GMP_MULFUNC_CHOICES): Support add+sub+rsb lsh files.
+
+ * tests/refmpn.c (refmpn_addlsh_nc, refmpn_sublsh_nc): Remove silly
+ assert of mp_limb being non-negative.
+
+2013-03-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/neon/lshiftc.asm: New file.
+
+ * mpn/arm/v6/sqr_basecase.asm: Trim 'sqr_diag_addlsh1' loop.
+
+ * gen-trialdivtab.c: Output just raw data, remove actual variables.
+ * mpn/generic/trialdiv.c: Put variables from gen-trialdivtab.c here,
+ and make them 'const'.
+
+2013-03-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Rework arm CPU recognition.
+ * config.sub: Corresponding updates.
+ * configure.ac: Likewise.
+
+ * mpn/x86_64/mulx/adx/addmul_1.asm: Let FAKE_MULXADX be off by default.
+
+ * mpn/arm/v7a/cora15/neon/copyi.asm: Move from "..".
+ * mpn/arm/v7a/cora15/neon/copyd.asm: Likewise.
+
+ * config.guess: Tack on "neon" for appropriate arm CPUs.
+ * configure.ac (arm*-*-*): Recognise neon suffix for a8, a9, and a15.
+
+2013-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpf/fits_u.h: Accept numbers truncating to zero before checking the
+ sign.
+ * tests/mpf/t-fits.c: Check new edges.
+
+2013-03-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/arm32check.c: Get printing of clobbered register right.
+
+ * mpn/arm/neon/popcount.asm: New file.
+ * mpn/arm/neon/hamdist.asm: New file.
+
+ * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add arm32call.asm and
+ arm32check.c.
+
+2013-03-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (arm*-*-*): Define CALLING_CONVENTIONS_OBJS.
+
+ * tests/arm32call.asm: New file.
+ * tests/arm32check.c: New file.
+
+ * mpn/arm/arm-defs.m4 (LEA): Rewrite to properly handle repeated use.
+ (EPILOGUE_cpu): Define.
+
+ * mpn/arm/v6/addmul_3.asm: Make code work for PIC.
+
+ * tests/x86call.asm: Modernise asm syntax.
+ * tests/amd64call.asm: Likewise.
+
+ * mpn/x86/darwin.m4 (m4append): Move definition from here...
+ * mpn/asm-defs.m4: ...to here.
+
+2013-03-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * doc/gmp.texi (--enable-fat): No quote in concept index.
+
+ * mpf/swap.c: Reduce the number of variables.
+
+2012-03-17 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: New file.
+ * tests/cxx/Makefile.am: Add new file. Reorder the tests.
+
+2013-03-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul_fft.c: Use TMP_BALLOC*, but combine several areas.
+
+ * mpz/powm_ui.c (mod): Use TMP_BALLOC in mu code.
+
+ * mpn/arm/v6/addmul_3.asm: New file.
+
+ * mpn/arm/v7a/cora15/copyd.asm: Tweak.
+
+ * mpn/arm64/copyi.asm: New file.
+ * mpn/arm64/copyd.asm: New file.
+
+2013-03-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v6/addmul_2.asm: Tweak for better A9 performance.
+
+2013-03-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/cnd_aors_n.asm: New file.
+
+ * mpn/arm64/cnd_aors_n.asm: New file.
+
+ * mpn/arm64/aors_n.asm (ADDSUB): Remove unused definition.
+
+ * mpn/ia64/aors_n.asm: Remove a redundant ASM_START.
+
+ * mpn/arm/cnd_aors_n.asm: Avoid ARM conditional insn execution.
+
+ * mpn/x86_64/missing.asm: Move from mulx/adx since we cannot currently
+ prune missing.asm from path.
+ * mpn/x86_64/mulx/adx/missing-call.m4: Likewise.
+ * mpn/x86_64/mulx/adx/missing-inline.m4: Likewise.
+ * mpn/x86_64/mulx/adx/addmul_1.asm: Update hardwired path.
+
+2013-03-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/cong_2exp.c: Write loops in a cleaner way.
+ * mini-gmp/mini-gmp.c: Likewise.
+ * gmp-impl.h (mpz_zero_p): Likewise.
+
+2013-03-12 Niels Möller <nisse@lysator.liu.se>
+
+ New names mpn_cnd_add_n and mpn_cnd_sub_n.
+ * mpn/generic/cnd_add_n.c (mpn_cnd_add_n): Renamed file and
+ function, from addcnd.c:mpn_addcnd_n.
+ * mpn/generic/cnd_sub_n.c (mpn_cnd_sub_n): Renamed, from
+ subcnd.c:mpn_subcnd_n.
+ * mpn/arm/cnd_aors_n.asm: Renamed file, from aorscnd.asm, and
+ renamed functions.
+ * mpn/x86_64/cnd_aors_n.asm: Analogous renaming.
+ * mpn/powerpc64/mode64/cnd_aors_n.asm: Analogous renaming.
+ * gmp-impl.h (mpn_cnd_add_n, mpn_cnd_add_n): Updated prototypes
+ with new names.
+ * configure.ac: Updated for new names.
+ * tests/refmpn.c (refmpn_cnd_add_n): Renamed, from refmpn_addcnd_n.
+ (refmpn_cnd_sub_n): Renamed, from refmpn_subcnd_n.
+ * tests/tests.h (refmpn_cnd_add_n, refmpn_cnd_sub_n): Updated
+ prototypes with new names.
+ * tune/common.c (speed_mpn_cnd_add_n): Renamed, from
+ speed_mpn_addcnd_n, call mpn_cnd_add_n.
+ (speed_mpn_cnd_sub_n): Renamed, from speed_mpn_subcnd_n, call
+ mpn_cnd_sub_n.
+ * tune/speed.h (speed_mpn_cnd_add_n, speed_mpn_cnd_sub_n): Updated
+ prototypes with new names.
+ * tune/speed.c (routine): Updated list with new names.
+ * tests/devel/try.c: Updated for new mpn_cnd_* names.
+ * mpn/generic/sbpi1_div_sec.c: Likewise.
+ * mpn/generic/powm_sec.c: Likewise.
+
+2013-03-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Add "missing" to extra_functions_64 for coreibwl.
+
+ * mpn/x86_64/mulx/adx/addmul_1.asm: Simplify. Make FAKE_MULXADX the
+ default awaiting proper qemu behaviour.
+
+2013-03-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorscnd_n.asm: Read 32 bits for 'n' arguments on DOS64.
+
+ * tests/mpz/t-powm_ui.c: Test larger arguments. General cleanup.
+
+ * mpz/powm_ui.c (mod): Adhere to mpn_mu_div_qr's overlap requirements.
+
+2013-03-10 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sbpi1_div_sec.c: Update calls of mpn_addcnd_n and
+ mpn_subcnd_n.
+ * mpn/generic/powm_sec.c (MPN_REDC_1_SEC, MPN_REDC_2_SEC)
+ (mpn_powm_sec): Update calls of mpn_subcnd_n.
+
+ * tests/tests.h (refmpn_addcnd_n, refmpn_subcnd_n): Update
+ declarations.
+ * tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): Similar
+ reorder of arguments.
+ * tests/devel/try.c (call): Pass condition first, for
+ TYPE_ADDCND_N and TYPE_SUBCND_N.
+
+ * tune/common.c (speed_mpn_addcnd_n, speed_mpn_subcnd_n): Update
+ to pass condition as first argument.
+
+ * gmp-impl.h (mpn_addcnd_n, mpn_subcnd_n): Updated declarations.
+
+ * mpn/generic/addcnd_n.c (mpn_addcnd_n): Reordered arguments, make
+ condition the first argument.
+ * mpn/generic/subcnd_n.c (mpn_subcnd_n): Likewise.
+ * mpn/arm/aorscnd_n.asm: Likewise.
+ * mpn/x86_64/aorscnd_n.asm: Likewise.
+ * mpn/powerpc64/mode64/aorscnd_n.asm: Likewise.
+
+2013-03-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mulx/adx/missing.asm: Simulate some mulx/adx insns.
+ * mpn/x86_64/mulx/adx/missing-call.m4: Call variant.
+ * mpn/x86_64/mulx/adx/missing-inline.m4: Inline variant.
+
+ * mpn/sparc64/ultrasparct3/missing.asm: Simulate some v9-2011 insns.
+ * mpn/sparc64/ultrasparct3/missing.m4: Inline or invoke missing.asm for
+ v9-2011 insn.
+
+ * configure.ac: Strip `haswell' from paths for now.
+
+ * mpn/x86_64/mulx/addmul_1.asm: New.
+ * mpn/x86_64/mulx/mul_1.asm: Rewrite file from `haswell' subdir.
+ * mpn/x86_64/mulx/adx/addmul_1.asm: Likewise.
+ * mpn/x86_64/haswell: Remove.
+
+ * mpn/arm/v7a/cora15/mul_1.asm: New file.
+ * mpn/arm/v7a/cora15/addmul_1.asm: New file.
+
+2013-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/t-cong_2exp.c: Improve coverage.
+
+2013-03-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparc1234/add_n.asm: Use g5 instead of g4.
+ * mpn/sparc64/ultrasparc1234/sub_n.asm: Likewise.
+
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: Fix a typo.
+
+2013-03-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v7a/cora9/gmp-mparam.h: New file.
+
+ * configure.ac (GMP_MULFUNC_CHOICES): Support mul_2 + addmul_2.
+
+ * mpn/sparc64/ultrasparct3/aormul_2.asm: New file.
+
+ * mpn/sparc64/ultrasparct3/submul_1.asm: Optimise out two carry
+ propagating adds.
+
+2013-03-06 David Miller <davem@davemloft.net>
+
+ * config.guess: Recognize UltraSparc T4 under Linux.
+ * configure.ac: Add sparc64/ultrasparct3 to path_64 when T3 or T4.
+ Append -xarch=v8plusd or -xarch=v9d to command line, as needed.
+ * mpn/sparc64/ultrasparct3/mul_1.asm: New file.
+ * mpn/sparc64/ultrasparct3/addmul_1.asm: New file.
+ * mpn/sparc64/ultrasparct3/submul_1.asm: New file.
+ * mpn/sparc64/ultrasparct3/add_n.asm: New file.
+ * mpn/sparc64/ultrasparct3/sub_n.asm: New file.
+
+ * mpn/sparc32/ultrasparct1/mul_1.asm: Unroll main loop one time, add
+ T2/T3/T4 timings.
+ * mpn/sparc32/ultrasparct1/addmul_1.asm: Likewise.
+ * mpn/sparc32/ultrasparct1/submul_1.asm: Likewise.
+
+2013-03-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/neon/lorrshift.asm: New file.
+
+2013-03-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v7a/cora15/copyd.asm: New file.
+ * mpn/arm/v7a/cora15/copyi.asm: New file.
+
+ * mpn/arm64/logops_n.asm: New file.
+ * mpn/arm64/gcd_1.asm: New file.
+ * mpn/arm64/aorsmul_1.asm: New file.
+ * mpn/arm64/addmul_1.asm: Remove.
+ * mpn/arm64/aors_n.asm: Complete rewrite.
+
+ * mpn/arm/tabselect.asm: New file.
+ * mpn/arm/neon/tabselect.asm: New file.
+
+ * mpn/arm/copyi.asm: Software pipeline.
+ * mpn/arm/copyd.asm: Likewise.
+
+ * config.guess: Rework tmp file handling to resemble configfsf.guess's.
+
+2013-03-03 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (Integer Special Functions): Document
+ mpz_limbs_read, mpz_limbs_write, mpz_limbs_modify,
+ mpz_limbs_finish, mpz_roinit_n and MPZ_ROINIT_N.
+
+ * mpz/roinit_n.c (mpz_roinit_n): Normalize the input.
+
+2013-02-27 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c (speed_measure): Increase repetition count if we
+ get a zero measurement.
+
+2013-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpz_div_q_2exp): Adjust only if needed.
+ (mpn_common_scan): New service function to unify scan loops.
+ (mpz_scan0, mpz_scan1): Simplify by using mpn_common_scan.
+ (mpz_make_odd): Simplify, assume in-place operation on positive.
+ (mpn_scan0, mpn_scan1): New functions.
+ * mini-gmp/mini-gmp.h (mpn_scan0, mpn_scan1): New declarations.
+ * mini-gmp/tests/t-scan.c: Test also mpn_scan0 and mpn_scan1.
+
+2013-02-26 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-limbs.c (check_roinit): Test MPZ_ROINIT_N only if
+ compiler supports c99.
+
+2013-02-25 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-double.c (testmain): Declare double variables
+ as volatile, to drop extended precision.
+
+ * mini-gmp/tests/testutils.c (testfree): New function. Use it
+ everywhere where test programs deallocate storage allocated via
+ the mini-gmp allocation functions, including uses of mpz_get_str
+ for various test failure messages.
+
+ * mpz/limbs_finish.c (mpz_limbs_finish): New file and function.
+ * mpz/limbs_modify.c (mpz_limbs_modify): New file and function.
+ * mpz/limbs_read.c (mpz_limbs_read): New file and function.
+ * mpz/limbs_write.c (mpz_limbs_write): New file and function.
+ * mpz/roinit_n.c (mpz_roinit_n): New file and function.
+ * gmp-h.in: Declare new functions.
+ (MPZ_ROINIT_N): New macro.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Added new files.
+ * Makefile.am (MPZ_OBJECTS): Added new object files.
+
+ * tests/mpz/t-limbs.c: New testcase.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Added t-limbs.
+
+2013-02-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Fix typo in adx/mulx path stripping code.
+ * config.sub: Match coreibwl.
+
+2013-02-20 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpq/t-get_d.c (check_random): Rewrote to make test less
+ dependent on float operations. Fixes problem with m68k-linux and
+ extended float precision.
+
+2013-02-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/haswell/mulx/adx/addmul_1.asm: New file.
+
+ * configure.ac: Support coreibwl. Use proper name for ADX extension.
+ * acinclude.m4 (GMP_ASM_X86_ADX): Rename from GMP_ASM_X86_ADOX.
+
+ * tests/tests.h (TESTS_REPS): Keep count >= 1.
+
+2013-02-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c: Move asserts to work-around a compiler bug.
+ (mpz_export): Reorder branches.
+ (mpz_mul_ui): Avoid temporary allocation (mpn_mul_1 can work in-place).
+
+ * mini-gmp/tests/t-reuse.c: Fix typo causing the same negation
+ condition to be applied to all operands. (See 2013-02-03, Torbjorn)
+
+2013-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmpxx.h (mpq_class, mpf_class) [init_ui, init_si, assign_si]:
+ Optimise _si using _ui for positive arguments.
+ (__gmp_hypot_function): Use _mul_ui to square an ui, abs for si.
+
+ * mini-gmp/mini-gmp.c (mpz_mul): Read sizes just once.
+ (mpn_set_str_other): Remove a redundant variable.
+ (mpz_abs_add): Use SWAP once, to order sizes.
+ (mpz_mul_ui): Micro-optimisation.
+ (mpz_rootrem): Use _init2 before _setbit.
+ (mpz_set_str): Optimise-out a variable.
+ (mpz_import): Normalise only if needed.
+ (mpn_div_qr_1): Speed-up the d=1 case, delaying a branch.
+
+ * rand/randmts.c: Use init2, as size of variables is known in advance.
+ (mangle_seed): Get a single argument.
+
+ * mpz/remove.c: Delay allocation in the generic case; use swap
+ instead of set.
+ * mpn/generic/remove.c: Delay (possibly smaller) allocation.
+
+2013-02-17 Marc Glisse <marc.glisse@inria.fr>
+
+ * cxx/osdoprnti.cc: Use <stdarg.h> and <string.h> rather than <cstdarg>
+ and <cstring> (revert 2002-12-21).
+
+ * tests/cxx/Makefile.am: Link with libm.
+ * tests/cxx/t-ops2.cc: Comment about more tests. Use <math.h> rather
+ than <cmath> and using namespace. Don't include <iostream>.
+
+ * gmpxx.h (__GMPXX_BITS_TO_LIMBS, __GMPQ_NUM_DBL_LIMBS,
+ __GMPQ_DEN_DBL_LIMBS, __GMPXX_TMPQ_D): New macros.
+ (__gmp_binary_plus, __gmp_binary_minus, __gmp_binary_multiplies,
+ __gmp_binary_divides, __gmp_binary_equal, __gmp_binary_less,
+ __gmp_cmp_function): Use __GMPXX_TMPQ_D.
+ * tests/cxx/t-ops2.cc: Test __GMPXX_TMPQ_D on DBL_MIN, DBL_MAX.
+
+ * gmpxx.h (__gmp_binary_multiplies, __gmp_binary_divides): Use
+ __GMPXX_CONSTANT_TRUE.
+
+2013-02-16 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h: Include <algorithm>.
+
+2013-02-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/Makefile.am (TARG_DIST): Add arm64.
+
+ * mpn/x86_64/x86_64-defs.m4 (PROTECT): Emit '.hidden' instead of
+ '.protected" to please Sun's assembler, but also for semantic reasons.
+
+2013-02-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac (arm64*-*-*): Match this.
+
+ * mpn/arm64/aors_n.asm: New file.
+ * mpn/arm64/addmul_1.asm: New file.
+ * mpn/arm64/mul_1.asm: New file.
+
+2013-02-15 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS,
+ __GMPXX_DEFINE_ARITHMETIC_ASSIGNMENTS): New macros.
+ (mpz_class, mpq_class, mpf_class) [init_ui, init_si, init_d,
+ assign_ui, assign_si, assign_d]: New functions.
+ (__gmp_expr::__gmp_expr, __gmp_expr::operator=): Replace with macros.
+ (__GMPXX_CONSTANT_TRUE): New macro.
+
+2013-02-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (NEG_CAST, ABS_CAST): Use __GMP_CAST.
+ * mpz/fits_s.h: Use NEG_CAST.
+
+2013-02-14 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_binary_greater): Forward to __gmp_binary_less.
+ (__gmp_binary_equal): Forward to itself after swapping operands.
+
+2013-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mp_dv_tab.c (__gmp_digit_value_tab): Remove a line of unused values.
+ * mpf/set_str.c: Update offset accordingly.
+ * mpz/inp_str.c: Likewise.
+ * mpz/set_str.c: Likewise.
+
+ * gmp-h.in (mpq_cmp_ui): Optimise comparison with 1/1.
+ * tests/mpq/t-cmp_ui.c: Test special comparisons: 0/1, 1/1.
+
+ * mpz/clrbit.c: Reorganise branches.
+ * mpz/setbit.c: Likewise.
+ * mpz/combit.c: Same micro-optimisations as in set/clr.
+
+ * mpz/aors_ui.h: No realloc if size was zero.
+ * mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U.
+
+ * gmp-impl.h (NEG_CAST): New macro, used by ABS_CAST.
+ * mpq/cmp_si.c: Use NEG_CAST.
+ * mpz/cmp_si.c: Reorganise branches.
+
+2013-02-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * acinclude.m4 (GMP_ASM_X86_MULX, GMP_ASM_X86_ADOX): New feature tests.
+ * configure.ac: Use new feature tests.
+
+ * mpn/x86_64/haswell/mulx/mul_1.asm: File moved to cope with older
+ assemblers.
+ * configure.ac: Update haswell path to include "mulx".
+
+2013-02-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Recognise haswell.
+ * config.guess: Recognise haswell.
+ * config.sub: Match haswell.
+
+ * mpn/x86_64/haswell/mul_1.asm: New file, mainly for testing HNI.
+
+2013-02-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (MPZ_PROVOKE_REALLOC): Remove unused macro.
+ * gen-fac.c (gen_consts): Remove obsolete code, use swap instead of set.
+ * mini-gmp/mini-gmp.c (fac_ui, bin_uiui): Use shorter and faster code.
+
+ * mpn/generic/mulmod_bnm1.c: Reorganise branches.
+ * mini-gmp/mini-gmp.c: Reduce branches.
+
+ * mpz/bin_ui.c: Avoid a copy when n < 0.
+ * mpz/mfac_uiui.c: Reduce memory usage.
+ * mpz/primorial_ui.c: Use MPZ_NEWALLOC.
+
+ * mpz/import.c: Use BITS_TO_LIMBS and MPZ_NEWALLOC.
+ * mpz/inp_raw.c: Likewise.
+ * mpz/rrandomb.c: Likewise.
+ * mpz/urandomb.c: Likewise.
+ * mpn/generic/random2.c: Likewise.
+
+ * mpn/generic/brootinv.c: Micro-optimisation.
+
+ * mpf/set_str.c: Don't chech base==0 when base is strictly positive.
+
+2013-02-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 5.1.1 released.
+
+2013-02-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MUL): Use operands from struct s.
+ * tune/README: Document new parameter syntax mpn_mul.<#> .
+
+2013-02-06 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-jac.c (check_large_quotients): Rewrote. Now uses a
+ more efficient method for generating the test inputs.
+
+2013-02-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-div.c: Limit random dbits to avoid an infinite loop.
+
+2013-02-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/reuse.c: Fix typo causing the same negation condition to be
+ applied to all operands. Fix condition for when to invoke mpz_remove.
+ Make different-size random operands.
+
+2013-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/remove.c: Correct the sign in case of reuse.
+
+2013-02-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (DIGITS_IN_BASE_PER_LIMB): Add a cast.
+ (LIMBS_PER_DIGIT_IN_BASE): Likewise.
+
+ * tests/refmpn.c (refmpn_mul): Use toom6h instead of toom44 for the
+ largest operands.
+
+2013-01-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom44_mul.c: Revert last change in favour of a simple
+ change (thanks Marco!).
+ * mpn/generic/toom4_sqr.c: Likewise.
+
+2013-01-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom44_mul.c (MAYBE_mul_toom44): Take toom6h and toom8h
+ into account, using new macro MUL_NEXTALG_THRESHOLD.
+ * mpn/generic/toom4_sqr.c (MAYBE_sqr_toom4): Likewise.
+
+2013-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/remove.c: init+set=init_set, cast before shifting.
+
+ * mpz/cmp_si.c: Use ABS_CAST.
+
+2013-01-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/logic.c: Set things up to always test library logops, not
+ gmp-impl.h's inlined variants. Test also mpn_com.
+
+ * tests/mpn/t-mod_1.c: Test also mpn_mod_1s_3p.
+
+ * mpn/generic/mod_1_3.c: Swap some lines to make it similar to mod_4.c.
+
+ * tests/mpz/reuse.c: Fix typo in last change.
+
+2013-01-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify.
+ (mpz_set_str): Behaviour more adherent to the real GMP.
+
+ * mini-gmp/tests/t-str.c: Cast size_t to unsigned long, for printf.
+ * mini-gmp/tests/t-import.c: Likewise.
+ * mini-gmp/tests/t-comb.c: Remove an unused var.
+ * mini-gmp/tests/t-div.c: Remove unused args passed to fprintf.
+ * mini-gmp/tests/t-double.c: Use float immediates with float vars.
+
+2013-01-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
+ * gmp-h.in: Bump version.
+
+ * tests/mpz/reuse.c: Delete always zero 'failures' and code depending
+ on it. Replace rotating progress with real measure.
+
+ * Makefile.am (check-mini-gmp): Fix typo in last change.
+
+2013-01-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/mini-gmp.c (mpz_cmp_d): Simplified, just sort out
+ signs, then call mpz_cmpabs_d.
+
+ * mini-gmp/tests/testutils.h: Include stdio.h and stdlib.h.
+ (numberof): New define.
+
+ * mini-gmp/tests/t-cmp_d.c: New file, copied from
+ tests/mpz/t-cmp_d.c with minor changes.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cmp_d,
+
+ * mini-gmp/mini-gmp.c (mpz_cmpabs_d): New function.
+ * mini-gmp/mini-gmp.h: Declare it.
+
+2013-01-21 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-str.c (testmain): Test mpz_out_str, using
+ the tmpfile function for i/o.
+
+2013-01-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (check-mini-gmp): Set also DYLD_LIBRARY_PATH for the
+ benefit of Darwin.
+
+ * tests/mpn/t-div.c: Test mpn_sb_div_qr_sec and mpn_sb_div_r_sec.
+ (main): Separate divisor into normalised (dnp) and unnormalised (dup),
+ pass appropriate variant to each function.
+ (main): Make negative `test' index value mean divisor bits, for better
+ small operands coverage.
+ (main): Put random junk at qp[] instead of zeroing.
+
+ * tests/mpz/t-remove.c: Back out last change which left `divisor_size'
+ uninitialised; achieve change's aim with a parameter tweak.
+
+2013-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/testutils.c (testhalves): New function, test default
+ memory functions.
+ * mini-gmp/tests/testutils.h (testhalves): Declare it
+ * mini-gmp/tests/t-logops.c: Use testhalves.
+
+ * mini-gmp/mini-gmp.c (mpz_init_set_str): New function.
+ * mini-gmp/mini-gmp.h (mpz_init_set_str): Declare it.
+ * mini-gmp/tests/t-str.c: Test mpz_init_set_str.
+
+2013-01-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/memory.c (PTRLIMB): New macro, used for conformant casting.
+
+2013-01-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-double.c (testmain): Get the current free
+ function using mp_get_memory_functions.
+ * mini-gmp/tests/t-str.c (testmain): Likewise.
+
+ * mini-gmp/tests/testutils.h (tu_free): Remove declaration.
+
+ * mini-gmp/tests/testutils.c (block_check, tu_free): Mark static.
+
+ * tests/mpz/t-set_str.c: Check also failing conditions.
+
+ * tests/mpz/t-remove.c: Test removal of 1.
+
+2013-01-18 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-str.c (test_small): New function, exercising
+ parsing of whitespace and base prefixes.
+ (testmain): Call it.
+
+ * mini-gmp/tests/t-gcd.c (gcdext_valid_p): Fixed memory leak.
+
+ * mini-gmp/tests/t-double.c (testmain): Call tu_free rather than
+ free, for storage allocated by mpz_get_str.
+ * mini-gmp/tests/t-str.c (testmain): Likewise.
+
+ * mini-gmp/tests/testutils.c (block_init, block_check): New
+ functions.
+ (tu_alloc, tu_realloc, tu_free): New functions.
+ (main): Use mp_set_memory_functions.
+ * mini-gmp/tests/testutils.h (tu_free): Declare.
+
+ * mini-gmp/tests/testutils.h: New file, declarations for test
+ programs.
+
+ * mini-gmp/tests/testutils.c (main): New file, with shared main
+ function for all the test programs. Also includes mini-gmp.c.
+ Calls testmain after initialization. All other test programs
+ updated to define testmain rather than main.
+
+2013-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-signed.c: Slightly larger coverage.
+ * mini-gmp/tests/t-double.c: Test also mpz_init_set_d.
+
+2013-01-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused
+ variable.
+
+ * mini-gmp/tests/t-div.c: Test mpz_divisible_p and mpz_divisible_ui_p.
+
+ * tests/tests.h (TESTS_REPS): Fix printf argument type clashes.
+
+ * mini-gmp/tests/t-div.c: Test also mpz_mod, mpz_mod_ui. Compare
+ mpz_divisible_p just to ceil, to save time.
+
+ * mini-gmp/mini-gmp.c: Prefix some names with GMP_.
+
+2013-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-double.c: Test mpz_cmp_d.
+ * mini-gmp/mini-gmp.c (mpz_cmp_d): Correct multiword comparison.
+
+ * mini-gmp/mini-gmp.c (mpz_set_str): Handle the empty string.
+ * mini-gmp/tests/t-str.c: Test base <= 0.
+
+2013-01-15 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-str.c (main): Use x->_mp_d rather than x[0]._mp_d.
+ * mini-gmp/tests/t-invert.c (main): Likewise.
+
+ * mini-gmp/tests/t-mul.c (main): Test mpn_mul_n and mpn_sqr.
+
+ * mini-gmp/tests/hex-random.h (enum hex_random_op): New value
+ OP_SQR.
+
+ * mini-gmp/tests/mini-random.c (mini_random_op3): Renamed, from...
+ (mini_random_op): ... old name. Updated callers.
+ (mini_random_op2): New function.
+
+ * mini-gmp/tests/hex-random.c (hex_random_op3): Renamed, from...
+ (hex_random_op): ... old name. Updated callers.
+ (hex_random_op2): New function.
+
+2013-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-logops.c: Improve popcount/hamdist testing.
+ * mini-gmp/tests/t-signed.c: Test more cases.
+
+2013-01-15 Torbjorn Granlund <tege@gmplib.org>
+
+ From Mike Frysinger:
+ * configure.ac: Add x32 ABI for x86_64.
+
+2013-01-14 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-str.c (main): Added tests for mpn_get_str and
+ mpn_set_str.
+
+2013-01-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * doc/gmp.texi (gmp_version): Remove "was used" repetition.
+ (Upward compatibility): Mention mpn_bdivmod, GMP 4 -> GMP 5.
+
+2013-01-13 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead
+ of mpz_perfect_square_p.
+
+2013-01-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-comb.c: New test program, testing both
+ mpz_fac_ui and mpz_bin_uiui.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-comb.
+
+ * mini-gmp/mini-gmp.c (mpz_mul_si): Simplify.
+ (mpz_mul_ui, mpz_mul, mpz_div_qr): Replace init+REALLOC with init2.
+
+ * mini-gmp/mini-gmp.c (NEG_CAST): New macro.
+ (mpz_mul_si, mpz_set_si, mpz_cmp_si): Use NEG_CAST.
+
+ * mini-gmp/mini-gmp.c (mpz_set_si, mpz_cmp_si): Simplify by using
+ the _ui variant.
+
+ * mini-gmp/tests/t-root.c: Use mpz_ui_pow_ui, when base fits an ui.
+
+ * mini-gmp/tests/t-mul.c: Test also mpz_mul_si.
+ * mini-gmp/tests/t-sub.c: Test also mpz_ui_sub.
+
+ * mini-gmp/mini-gmp.c (mpz_fits_slong_p): Correct range.
+ * mini-gmp/tests/t-signed.c: New test program, for get/set/cmp_si.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-signed.
+
+ * mini-gmp/mini-gmp.c (mpz_hamdist): Handle different sizes.
+ * mini-gmp/tests/t-logops.c: Test also popcount and hamdist.
+
+2013-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/export.c: Less restrictive ASSERTs.
+ * mini-gmp/mini-gmp.c (mpz_export, mpz_import): Likewise.
+ * mini-gmp/tests/t-import.c: Test also size=0 or count=0.
+
+2013-01-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mini-gmp/tests/t-import.c (main): Don't drop off function end.
+
+ * Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing
+ with dynamic main GMP build.
+
+2013-01-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c (mpz_export): Support op=0 countp=NULL.
+
+2013-01-08 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-import.c: New test program, testing both
+ mpz_import and mpz_export.
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-import.
+
+ * mini-gmp/tests/mini-random.c (mini_rrandomb_export): New
+ function.
+ * mini-gmp/tests/mini-random.h: Declare it.
+ * mini-gmp/tests/hex-random.c (hex_rrandomb_export): New function.
+ * mini-gmp/tests/hex-random.h: Declare it.
+
+ * mini-gmp/mini-gmp.c (mpz_export): Compute accurate word count up
+ front, to avoid generating any high zero words.
+
+2013-01-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/README: Document base limitation for conversions.
+ * mini-gmp/mini-gmp.c (mpz_set_str): Remove goto.
+ (mpz_import, mpz_export): Correctly use order/endianness.
+
+2013-01-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work.
+
+2013-01-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ From shuax:
+ * mini-gmp/mini-gmp.c (mpz_import): Reset limb after storing it.
+
+2013-01-04 Torbjorn Granlund <tege@gmplib.org>
+
+ From Marko Lindqvist:
+ * configure.ac: Use AC_CONFIG_HEADERS instead of the obsolete
+ AM_CONFIG_HEADER.
+
+2013-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/bit.c: Wider testing for mpz_combit.
+ * tests/mpz/logic.c: Check the -2^n case.
+
+ * mpz/ior.c: Fixed an allocation bug in the -2^n case.
+
+2012-12-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/get_d.c: Minor reorg, add vax D code.
+
+ * gmp-impl.h (double_extract): New union type for vax D floats.
+
+ * tests/mpq/t-get_d.c (check_random): Limit exponents on vax.
+
+2012-12-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/bit.c (check_clr_extend): Check _set shrink.
+
+2012-12-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * demos/calc/calc.c: Remove generated file from repo.
+ * demos/calc/calc.h: Likewise.
+ * demos/calc/calclex.c: Likewise.
+
+2012-12-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/get_d.c: Complete rewrite of non-IEEE code.
+
+ * tests/mpq/t-get_d.c (main): Suppress check_random for vax.
+
+2012-12-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bdiv_q_1.asm: Use LEA for binvert_limb_table.
+
+2012-12-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-get_d.c (check_onebit): Decrease vax limit to avoid
+ overflow in last, unused 'want' value.
+
+ * config.guess: Recognise AMD family 22 as a future bobcat.
+
+2012-12-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.ac: Rename configure.in.
+
+2012-12-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 5.1.0 released.
+
+ * configure.in (none-*-*): Allow this again, but print a warning.
+
+2012-12-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/n_pow_ui.c: Fix typos in an ASSERT.
+
+2012-12-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr): Explicitly use
+ MPN_COPY_INCR for slightly overlapping copy.
+
+2012-12-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpn/toom-sqr-shared.h: Skip ALLOCs if the test is skipped.
+
+2012-12-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/dos64.m4 (PIC): Move definition early.
+ (JMPENT): Remove PIC variant.
+
+ * mpn/x86_64/darwin.m4 (JUMPTABSECT): Define to .text, instead of
+ something sensible.
+
+2012-12-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/x86_64-defs.m4 (JMPENT): New macro.
+ * mpn/x86_64/dos64.m4: Likewise.
+ * mpn/x86_64/darwin.m4: Likewise.
+ * mpn/x86_64/mod_34lsub1.asm: Use JMPENT to properly support PIC.
+ * mpn/x86_64/mullo_basecase.asm: Likewise.
+ * mpn/x86_64/sqr_basecase.asm: Likewise.
+
+2012-12-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mod_34lsub1.asm: Try different jump table for the benefit
+ of broken Apple linkers.
+
+2012-12-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Make GMP_NONSTD_ABI ABI specific.
+
+2012-12-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info.
+ * gmp-h.in: Bump version.
+
+2012-12-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpq/reuse.c: New test (adapted from mpf/reuse.c).
+ * tests/mpq/Makefile.am (check_PROGRAMS): Add reuse.
+
+ * mpz/abs.c: Use NEWALLOC.
+ * mpz/neg.c: Likewise.
+ * mpz/com.c: Reduce branches.
+
+2012-12-05 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/brootinv.c (mpn_brootinv): Make valgrind happier, at
+ the cost of a redundant MPN_ZERO.
+
+ * mpz/jacobi.c (mpz_jacobi): Check for asize == 0 or bsize == 0
+ before using the low limbs.
+
+2012-12-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/set_str.c (mpn_dc_set_str): Work around a valgrind issue.
+
+ * mpz/powm_ui.c: Don't assume >= 2 limbs in mod argument.
+
+ * tests/tests.h (TESTS_REPS): Handle float GMP_CHECK_REPFACTOR.
+
+ * longlong.h: Refine cpp test for vax.
+ * tests/mpn/t-get_d.c: Likewise.
+ * tests/mpz/t-get_d.c: Likewise.
+ * tests/mpz/t-cmp_d.c: Likewise.
+ * tests/mpz/t-get_d.c: Likewise.
+ * tests/mpq/t-get_d.c: Likewise.
+ * tests/mpf/t-get_d.c: Likewise.
+
+2012-11-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * gen-fac.c (gen_consts): Correct printf types.
+
+ * mpn/arm/v7a/cora15/gmp-mparam.h: New file.
+
+ * configure.in (arm*-*-*): New compiler optional "tune". Pass value for
+ selected processors. Add more specific path components.
+
+2012-11-29 Torbjorn Granlund <tege@gmplib.org>
+
+ From Andoni Morales Alastruey:
+ * longlong.h: Conditionalise ARM asm on !__thumb__.
+
+2012-11-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess (arm*-*-*): Support specific ARM processors.
+ * config.sub: Match arm CPUs.
+ * configure.in (arm*-*-*): Likewise.
+
+ * mpz/powm.c: Move new_b out since it lives on through b.
+
+ * configure.in (arm*-*-*): Pass -marm to deal with compilers defaulting
+ to thumb code.
+
+2012-11-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/cxx/t-ops2.cc (checkz): Reduce huge numbers to avoid vax
+ overflow.
+
+2012-11-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/get_d.c: Reinsert non-IEEE code.
+
+ * mpn/vax/add_n.asm: New file.
+ * mpn/vax/add_n.s: Remove.
+ * mpn/vax/addmul_1.asm: New file.
+ * mpn/vax/addmul_1.s: Remove.
+ * mpn/vax/lshift.asm: New file.
+ * mpn/vax/lshift.s: Remove.
+ * mpn/vax/mul_1.asm: New file.
+ * mpn/vax/mul_1.s: Remove.
+ * mpn/vax/rshift.asm: New file.
+ * mpn/vax/rshift.s: Remove.
+ * mpn/vax/sub_n.asm: New file.
+ * mpn/vax/sub_n.s: Remove.
+ * mpn/vax/submul_1.asm: New file.
+ * mpn/vax/submul_1.s: Remove.
+
+ * mpn/vax/elf.m4: New file.
+ * configure.in (vax*-*-*elf*): New case, grabbing vax/elf.m4.
+
+ * tests/mpn/t-get_d.c (check_onebit): Get vax bounds right.
+ (main): Switch off check_rand for vax.
+
+2012-11-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/run-tests: Copied latest version from GNU Nettle.
+ Minor fix to the use of $EMULATOR, and proper copyright notice.
+
+2012-11-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm_sec.c (redcify): Use mpn_sb_div_r_sec.
+
+ * mpn/generic/sb_div_sec.c: New file.
+ * mpn/generic/sbpi1_div_sec.c: New file.
+ * configure.in (gmp_mpn_functions): Add new files.
+ * gmp-impl.h: Declare new functions.
+
+2012-11-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h: Add ARM64 support.
+ * longlong.h: Add AVR support.
+
+ * mpn/powerpc64/mode64/divrem_1.asm: Tune, simplify.
+
+ * mpq/md_2exp.c: Use MPN_COPY_INCR, not MPN_COPY_DECR.
+ * tests/mpq/t-md_2exp.c (check_random): New function.
+
+2012-11-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/remove.c (mpn_bdiv_qr_wrap): Make static.
+
+2012-11-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/powm_ui.c: Rewrite.
+
+2012-11-01 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/brootinv.c (mpn_brootinv): Input size in limbs
+ rather than bits. Use single-precision iterations for the first
+ limb.
+ * mpn/generic/perfpow.c (is_kth_power): Update mpn_brootinv call.
+ * tests/mpn/t-brootinv.c (main): Likewise.
+ * tune/speed.h (SPEED_ROUTINE_MPN_BROOTINV): Likewise.
+ * gmp-impl.h (mpn_brootinv): Updated prototype.
+
+ * mpn/generic/hgcd2.c (mpn_hgcd2): Removed redundant loop exit
+ tests in the single-precision loop.
+
+ * mpz/combit.c (mpz_combit): Rewrite, optimizing for the common
+ case.
+
+2012-10-31 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-brootinv.
+ * tests/mpn/t-brootinv.c: New file
+
+ * mpn/generic/broot.c (mpn_broot_invm1): Avoid a mullo_n in the
+ loop, and do powering as a plain mpn_sqr followed by mpn_powlo.
+
+ * tune/speed.c (routine): Added mpn_broot, mpn_broot_invm1,
+ mpn_brootinv.
+
+ * tune/common.c (speed_mpn_broot, speed_mpn_broot_invm1)
+ (speed_mpn_brootinv): New functions.
+ * tune/speed.h (SPEED_ROUTINE_MPN_BROOT)
+ (SPEED_ROUTINE_MPN_BROOTINV): New macros.
+
+ * mpn/generic/broot.c (mpn_broot_invm1): Made non-static (mainly
+ for benchmarking).
+ * gmp-impl.h (mpn_broot_invm1): Declare it.
+
+2012-10-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (gmp_mpn_functions): Add new files.
+ * gmp-impl.h: Declare new functions.
+ * mpn/generic/perfpow.c: Overhaul.
+ (binv_root, binv_sqroot): Remove.
+ * mpn/generic/brootinv.c: New file, code from overhauled binv_root.
+ * mpn/generic/bsqrtinv.c: New file, code from overhauled binv_sqroot.
+ * mpn/generic/bsqrt.c: New file.
+
+ * tests/mpn/t-broot.c: Add a forgotten TMP_MARK.
+
+2012-10-28 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/broot.c (mpn_broot): New file and function.
+ * configure.in (gmp_mpn_functions): Add broot.
+ * gmp-impl.h (mpn_broot): Declare.
+ * tests/mpn/t-broot.c: New testcase.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-broot.
+
+2012-10-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/remove.c: Get remainder allocation right.
+
+2012-10-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h: De-support old POWER asm syntax.
+
+ * tests/mpz/t-remove.c: Run more tests, but use a tad smaller operands.
+
+ * mpn/generic/remove.c (mpn_bdiv_qr_wrap): New function.
+ (mpn_remove): Call mpn_bdiv_qr_wrap.
+ * mpz/remove.c: Enable suppressed mpn_remove call.
+
+2012-10-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/powm_ui.c (mpz_powm_ui): Deflect to mpz_powm for large exponent.
+
+2012-09-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * demos/factorize.c: Rewrite no more current form. Implement Lucas
+ prime proving, and make its use the default.
+ * demos/primes.h: New file.
+
+2012-08-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * demos/factorize.c: Overhaul.
+
+2012-08-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * doc/gmp.texi (mpn_neg): Correctly document returned type.
+
+ * gmp-impl.h (_mpz_newalloc, log_n_max): mark with inline (spotted by Niels).
+
+2012-07-28 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (std::common_type): New partial specializations with builtin
+ types.
+ * tests/cxx/t-cxx11.cc: Test it.
+
+2012-07-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc32/vmx/mod_34lsub1.asm: Fix r0 clobbering issue with
+ "large" code affecting elf+darwin PIC.
+
+2012-07-21 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__GMPXX_CONSTANT): Disable for g++-3.4.
+
+2012-06-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (LIBMP_LT_*): Remove these.
+
+2012-06-26 Marc Glisse <marc.glisse@inria.fr>
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Update comment for 5.1.0.
+
+2012-06-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * configure.in (CALLING_CONVENTIONS_OBJS): Disable any use of
+ assembly code with the --disable-assembly option.
+ * mpz/oddfac_1.c: Use the ASSERT_CODE macro.
+ * gen-trialdivtab.c (mpz_log2): Use mpz_sizeinbase (., 2).
+
+ * gmp-impl.h (MPN_SIZEINBASE_16): Replace with MPN_SIZEINBASE_2EXP
+ from mpz/export.c .
+ * mpz/export.c (MPN_SIZEINBASE_2EXP): Removed.
+ * mpn/generic/sizeinbase.c: Use MPN_SIZEINBASE.
+
+ * mpz/nextprime.c: Use MPN_SIZEINBASE_2EXP to count bits.
+ * mpn/generic/perfpow.c: Likewise.
+ * mpn/generic/rootrem.c: Likewise.
+ * mpz/get_d_2exp.c: Likewise.
+ * mpn/generic/powm_sec.c: Likewise, nailify.
+ * mpn/generic/powlo.c: Likewise.
+ * mpn/generic/powm.c: Likewise.
+
+ * mini-gmp/mini-gmp.c (mpz_div_r_2exp, mpz_div_q_2exp): Improve
+ adjustment condition.
+
+2012-06-23 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (numeric_limits): Make content public.
+ * cxx/limits.cc: New file, proper declarations.
+ * Makefile.am: List new file.
+ * cxx/Makefile.am: Likewise.
+ * cxx/t-misc.cc: Add minimal test for numeric_limits.
+
+2012-06-09 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_resolve_expr::srcptr_type): New typedef.
+ (__gmp_temp): Wrapper for mp*_class, the constructor copies the
+ precision of its second argument for mpf_t.
+ (__gmp_expr::eval(p, prec)): Remove.
+ (__gmp_expr::eval(p)): Use __gmp_temp.
+ (__gmp_set_expr): Never pass prec to eval().
+
+2012-06-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (__GMP_WITHIN_CONFIGURE): Use the same #if as in gmp-h.in.
+ (MPN_NORMALIZE_NOT_ZERO): Tighter ASSERT.
+ (MPZ_NEWALLOC): New macro.
+ * mpq: Use the new macro when possible.
+ * mpz/bin_uiui.c: Likewise.
+ * mpz/oddfac_1.c: Likewise.
+ * mpz/prodlimbs.c: Likewise.
+
+ * mini-gmp/mini-gmp.c (mpz_realloc): remove a branch.
+
+2012-06-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/aix.m4 (ASM_START): Claim machine type "any".
+
+2012-06-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (mpn_gcdext): Deleted code for handling
+ impossible case u1 == 0, Simplified test for unlikely case u0 == 0.
+
+2012-06-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/lshiftc.asm: New file.
+
+2012-06-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/aorslsh1_n.asm: Use cmp/cmn instead of subs/adds in more
+ places.
+
+ * mpz/get_str.c: Don't strip leading zeros since current mpn_get_str
+ won't generate any. Misc streamlining.
+ * mpz/out_str.c: Analogous changes.
+
+ * tests/mpz/io.c: Use a wider range of bases.
+
+ * tests/mpz/t-cong.c (check_random): Rewrite random generation for
+ exponentially distributed operand sizes.
+
+2012-06-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpq: Use more macros and MPZ_REALLOC return value when possible.
+
+ * gmp-impl.h (LIMBS): Removed, was an alias for PTR.
+ * mpz/combit.c: Use PTR and CNST_LIMB.
+
+ * tests/mpn/t-bdiv.c: Test also mpn_bdiv_qr.
+ * mpn/generic/bdiv_qr.c: Add an ASSERT.
+
+ * mpn/generic/remove.c: Add a zero limb to use bdiv_qr...
+
+2012-05-31 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (mpq_class::mpq_class): Handle mpq_class(0,1).
+ * tests/cxx/t-constr.cc: Test it.
+
+2012-05-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64 (FUNC_ENTRY): New name for DOS64_ENTRY.
+ * mpn/x86_64 (FUNC_EXIT): New name for DOS64_EXIT.
+
+2012-05-29 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/remove.c: Optimise branches.
+
+ * mpn/generic/toom6h_mul.c: less branches in the LIKELY balanced path.
+ * mpn/generic/toom8h_mul.c: Likewise.
+
+2012-05-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v5/mod_1_1.asm: New file.
+
+2012-05-28 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (compute_v): Simplified carry handling a
+ bit, reduced stated scratch need from 2n+1 to 2n. Also comment and
+ ASSERT improvements.
+
+2012-05-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Add new x86 CPUs.
+ * mpn/x86/fat/fat.c: Likewise.
+ * mpn/x86_64/fat/fat.c: Likewise.
+
+2012-05-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86_64/fat/fat.c: abort iff longmode-capable-bit is turned off.
+
+ * mpn/generic/toom8h_mul.c: mark UNLIKELY branches.
+
+2012-05-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz: Use MPZ_REALLOC return value when possible.
+
+2012-05-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/tests/t-div.c: Test all _qr, _q, _r variants.
+ * mini-gmp/tests/t-lcm.c: Test the _ui variant.
+
+ * mini-gmp/mini-gmp.c (mpz_mod, mpz_mod_ui): New functions.
+ * mini-gmp/mini-gmp.h (mpz_mod, mpz_mod_ui): Prototypes.
+
+ * mpz/scan1.c: Simplify, and add a shortcut for scan1(z, 0).
+
+2012-05-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/n_pow_ui.c: Cast non-limb count_leading_zeros argument.
+
+2012-05-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/remove.c: Support negative divisor.
+ * tests/mpz/t-remove.c: Test negative divisor.
+
+2012-05-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/reuse.c: Major rewrite.
+
+2012-05-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/sqrt.c: Further simplify.
+ * mpz/sqrtrem.c: Likewise.
+
+ * Mark failing branches with UNLIKELY. Many files affected.
+
+2012-05-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/sqrt.c: Allocate less for overlapping operands, simplify.
+ * mpz/sqrtrem.c: Likewise.
+
+2012-05-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom8_sqr.c: Reduce branches for recursion.
+ * mpn/generic/toom8h_mul.c: Likewise.
+
+ * tests/mpn/t-toom8h.c: Don't use GMP_NUMB_BITS when not yet defined.
+
+2012-05-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-gcd.c: Rewrite.
+
+2012-05-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-gcd.c: Generate larger operands for better gcd code
+ coverage; distribute size exponentially.
+
+2012-05-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpf/pow_ui.c: Simplify.
+ * tests/mpf/reuse.c (dsi_func): Exercise pow_ui.
+
+ * tests/mpf/t-set_ui.c (check_data): LONG_HIGHBIT -> ULONG_HIGHBIT.
+ * tests/mpf/t-set.c (check_random): New check, both set and init_set.
+
+ * tests/cxx/t-ops.cc (check_mpq): Check squaring.
+ * tests/mpq/t-equal.c (check_various): Check different den-size.
+
+ * mpn/generic/mullo_n.c: Disable MAYBE_ if WANT_FAT_BINARY.
+ * mpz/cmpabs_d.c: Remove an unused branch.
+
+ * tests/mpz/t-get_d_2exp.c (check_zero): New check.
+ * tests/mpz/t-inp_str.c: A few more cases.
+ * tests/mpz/t-cmp_d.c: More bases and symbols, a few cases.
+
+ * mpz/rootrem.c: Correctly handle odd roots of negatives.
+ * tests/mpz/t-root.c: Test it.
+
+2012-05-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpf/t-eq.c (check_random): New function, meat from old main().
+ (check_data): New function.
+
+2012-05-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/rsh1aors_n.asm: New file.
+ * mpn/arm/v5/mod_1_2.asm: New file.
+
+2012-05-11 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (explicit operator bool): New functions.
+ * tests/cxx/t-cxx11.cc: Test the above.
+
+2012-05-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (__gmpn_cpuvec_initialized): Was __gmpn_cpuvec.initialized
+ * mpn/x86/fat/fat.c: Use separated _initialized variable.
+ * mpn/x86_64/fat/fat.c: Likewise.
+ * tests/mpn/t-fat.c: Likewise.
+
+ * mpn/generic/toom2_sqr.c: Override global __gmpn_cpuvec_initialized.
+ * mpn/generic/toom22_mul.c: Likewise.
+ * mpn/generic/toom3_sqr.c: Likewise.
+ * mpn/generic/toom33_mul.c: Likewise.
+
+2012-05-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.c: merge mpz_rootrem and mpz_sqrtrem.
+
+ * mpn/generic/sqrtrem.c (invsqrttab): Reduce size removing common byte.
+
+ * mpz/bin_uiui.c (mul3, mul4, mul8): Remove unneeded shifts.
+ (MAXFACS): Redefine, using the shared (safer) log_n_max.
+
+2012-05-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/minithres/gmp-mparam.h (REDC_1_TO_REDC_N_THRESHOLD): Up to 9, for
+ coherency with ASSERT in mpn/generic/redc_n.c.
+
+2012-05-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/minithres/gmp-mparam.h: Updated TOOM6 and FAC_DSC.
+ * tests/mpn/toom-sqr-shared.h: Don't test if no range.
+
+ * mpz/oddfac_1.c: Add ASSERTs to warn about small threshold.
+ * tune/tuneup.c: Update minimal threshold for FAC_DSC.
+
+2012-05-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v6/sqr_basecase.asm: Simplify n=4 code.
+
+2012-05-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/invert.c: Mark a branch UNLIKELY.
+ * tune/tuneup.c (tune_fac_u): Update DSC_THRESHOLD minimum.
+ * gmp-impl.h (FAC_???_THRESHOLD): Update default values.
+ (ABOVE_THRESHOLD): New definition with __builtin_constant_p.
+
+ * mpn/generic/toom22_mul.c: Disable MAYBE_ if WANT_FAT_BINARY.
+ * mpn/generic/toom33_mul.c: Likewise.
+ * mpn/generic/toom2_sqr.c: Likewise.
+ * mpn/generic/toom3_sqr.c: Likewise.
+
+2012-05-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c: Measure POWM_SEC_TABLE after the REDC thresholds.
+
+2012-05-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm_sec.c: Use redc_2.
+ (INNERLOOP): Use this mechanism, like plain powm.c.
+ (WANT_CACHE_SECURITY): Remove, feature now unconditional.
+
+2012-05-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/bin_uiui.c: Make use of CNST_LIMB.
+
+2012-05-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/mfac_uiui.c: Support limb != ui.
+
+2012-05-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/logops_n.asm: Work around register clobbering issue.
+
+ * mpn/arm/aorscnd_n.asm: New file.
+
+2012-05-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Put arm dirs in path in proper prio order.
+
+ * mpn/arm/logops_n.asm: New file.
+
+ * mpz/2fac_ui.c: Fix assumed typo.
+
+ * mpn/arm/v6/gmp-mparam.h: New file.
+
+ * mpn/arm/v5/gcd_1.asm: Hack for undefined BMOD_1_TO_MOD_1_THRESHOLD.
+ * mpn/arm/v6t2/gcd_1.asm: Likewise.
+
+2012-04-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v6/sqr_basecase.asm: New file.
+
+2012-04-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/comb_tables.c: New file.
+ * configure.in: Add it.
+ * gen-fac.c: Define table limits.
+ * gmp-impl.h: Declare tables.
+ (log_n_max): New static function.
+ * mpz/2fac_ui.c: Use shared tables.
+ * mpz/bin_uiui.c: Likewise.
+ * mpz/oddfac_1.c: Likewise.
+ * mpz/primorial_ui.c: Likewise.
+
+ * mpz/mfac_uiui.c: New file.
+ * Makefile.am: Compile it.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add mpz_mfac_uiui.c
+ * gmp-h.in (mpz_mfac_uiui): Declare.
+
+ * tests/mpz/t-mfac_uiui.c: New file.
+ * tests/mpz/Makefile.am: Run it.
+
+ * doc/gmp.texi: Document mpz_mfac_uiui, collapsing with other factorial functions.
+
+ * tests/mpz/t-lcm.c: Test zero too.
+
+ * mpz/prodlimbs.c: Simplify threshold (should be tuned, not guessed).
+
+2012-04-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/aors_n.asm: Tune for more stable performance.
+
+ * mpn/arm/aorslsh1_n.asm: New file.
+
+ * mpn/arm/mod_34lsub1.asm: New file.
+
+ * mpn/arm/v6t2/divrem_1.asm: New file.
+
+2012-04-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/thumb/add_n.asm: New file.
+ * mpn/thumb/sub_n.asm: New file.
+ * mpn/thumb/add_n.s: Remove broken code.
+ * mpn/thumb/sub_n.s: Likewise.
+
+ * mpn/arm/v6/addmul_1.asm: Rewrite for stable speed, smaller size.
+ * mpn/arm/v6/mul_1.asm: Likewise.
+
+2012-04-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Search arm/v6t2 for arm7.
+
+ * mpn/arm/v5/gcd_1.asm: New file.
+ * mpn/arm/v6t2/gcd_1.asm: New file.
+
+ * mpn/arm/mode1o.asm: New file.
+ * mpn/arm/v6t2/mode1o.asm: New file.
+
+ * mpn/arm/arm-defs.m4 (LEA): New define.
+ * mpn/arm/invert_limb.asm: Use LEA.
+
+2012-04-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/bin_uiui.c (bc_bin_uiui): Nail support.
+ * tests/cxx/t-ops2.cc: Test 0/3.
+ * oddfac_1.c: assume n > 26.
+ * tests/mpz/t-jac.c (mpn_jacobi_n): Enlarge tested sizes.
+
+2012-04-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/v6/addmul_2.asm: New file.
+ * mpn/arm/v6/mul_2.asm: New file.
+
+2012-04-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/aorsmul_1.asm: Tweak loop control for a 6% speed increase.
+
+2012-04-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Recognise ARM sub-architectures.
+
+ * configfsf.guess: Update to current FSF version.
+ * configfsf.sub: Likewise.
+
+ * mpn/arm/bdiv_dbm1c.asm: New file.
+
+ * mpn/arm/v6/mul_1.asm: New file.
+ * mpn/arm/v6/addmul_1.asm: New file.
+
+2012-04-22 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gen-fac.c: Renamed, was gen-fac_ui.c .
+ * Makefile.am: Renamed gen-fac.c and fac_table.h .
+ * gmp-impl.h: #include "fac_table.h".
+ * mpz/oddfac_1.c: Use generated constant.
+ * mpz/bin_ui.c: Small optimisations.
+
+ * tune/common.c (speed_mpz_bin_ui): New function.
+ * tune/speed.h: Declare it.
+ * tune/speed.c: Use it.
+
+2012-04-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/mul_1.asm: Cleanup.
+ * mpn/arm/copyi.asm: Cleanup, assume allocate-on-write cache.
+ * mpn/arm/copyd.asm: Likewise.
+
+ * mpn/arm/add_n.asm: Delete.
+ * mpn/arm/sub_n.asm: Delete.
+ * mpn/arm/aors_n.asm: New file, made from old files.
+
+ * mpn/arm/addmul_1.asm: Delete.
+ * mpn/arm/submul_1.asm: Delete.
+ * mpn/arm/aorsmul_1.asm: New file, made from old files.
+
+ * mpn/arm/com.asm: New file.
+ * mpn/arm/lshift.asm: New file.
+ * mpn/arm/rshift.asm: New file.
+
+2012-04-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpq/io.c: New file.
+ * tests/mpq/Makefile.am: Run it.
+
+ * mpz/clrbit.c: Simplify along the lines of setbit.c.
+
+2012-04-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/setbit.c: Simplify.
+
+ * gmp-impl.h (LOG2C): Define.
+ * mpz/fac_ui.c (LOG2C): Remove.
+ * mpz/2fac_ui.c (LOG2C): Remove.
+ * mpz/oddfac_1.c (LOG2C): Remove.
+ * mpn/generic/binvert.c (LOG2C): Remove.
+ * mpn/generic/invertappr.c (LOG2C): Remove.
+
+ * mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): Move declarations,
+ and assume that n and k are not small.
+
+2012-04-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-remove.
+
+ * tests/mpz/t-remove.c: Clear out mpz variables.
+
+ * tests/mpz/t-cong.c (check_random): Use much larger numbers.
+ (check_data): Check congruences mod 0.
+
+ * tests/mpz/t-divis.c: Test divisibility by zero.
+
+ * tests/mpz/reuse.c: Test mpz_mod.
+
+ * mpz/setbit.c: Remove dead code. Use CNST_LIMB.
+ * mpz/clrbit.c: Use CNST_LIMB.
+
+2012-04-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * primesieve.c: New file, with functions from mpz/oddfac_1.c .
+ * mpz/oddfac_1.c (bitwise_primesieve): Re-moved.
+ * Makefile.am (libgmp_la_SOURCES): Add primesieve.c .
+ * gmp-impl.h (gmp_primesieve): Declare.
+
+ * mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): New, factor-based
+ implementation.
+ * tests/mpz/t-bin.c: Extend tests, to cover _goetgheluck.
+
+ * mpz/primorial_ui.c: New file.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add mpz/primorial_ui.c
+ * Makefile.am (MPZ_OBJECTS): Add mpz/primorial_ui$U.lo
+ * gmp-h.in (mpz_primorial_ui): Declare.
+ * tests/mpz/t-primorial_ui.c: New test for the new function.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-primorial_ui.
+ * doc/gmp.texi: Short documentation for the new function.
+
+2012-04-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/aorsmul_1.asm: Fix some DOS64 issues.
+ * mpn/x86_64/coreisbr/mul_1.asm: Likewise.
+
+ * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Adhere to DOS64 register
+ partitioning rules.
+
+ * mpn/x86_64/fastsse/copyi-palignr.asm: Implement temporary workaround
+ to overlap issue.
+
+2012-04-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/bin_uiui.c: Support small limbs (fallback on bin_ui).
+
+ * tests/mpn/toom-sqr-shared.h: Use a restricted range.
+ * tests/mpn/t-toom2-sqr.c: Specify correct range.
+ * tests/mpn/t-toom3-sqr.c: Likewise.
+ * tests/mpn/t-toom4-sqr.c: Likewise.
+ * tests/mpn/t-toom6-sqr.c: Likewise.
+ * tests/mpn/t-toom8-sqr.c: Likewise, but extended.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add t-toom?-sqr tests.
+
+ * mpn/generic/sbpi1_bdiv_q.c: Move ASSERTs, to support qp = np.
+
+2012-04-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/copyd.asm: Rewrite.
+ * mpn/x86_64/copyi.asm: Rewrite.
+
+2012-04-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/lshift-movdqu2.asm: Add DOS entry/exit sequences.
+ * mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise.
+ * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise.
+
+ * mpn/x86_64/x86_64-defs.m4 (palignr): New macro.
+ (x86_opcode_regxmm, x86_opcode_regxmm_list): New, made from x86 mmx
+ counterparts.
+ (x86_lookup): Copy from x86/x86-defs.m4.
+ * mpn/x86_64/fastsse/copyd-palignr.asm: Use palignr macro.
+ * mpn/x86_64/fastsse/copyi-palignr.asm: Likewise.
+
+2012-04-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/t-bin.c: Add more tests on small values.
+ * mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Smaller temporary areas.
+
+2012-04-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/copyd-palignr.asm: New file.
+ * mpn/x86_64/fastsse/copyi-palignr.asm: New file.
+ * mpn/x86_64/core2/copyd.asm: New file.
+ * mpn/x86_64/core2/copyi.asm: New file.
+ * mpn/x86_64/nano/copyd.asm: New file.
+ * mpn/x86_64/nano/copyi.asm: New file.
+ * mpn/x86_64/atom/copyd.asm: New file.
+ * mpn/x86_64/atom/copyi.asm: New file.
+
+2012-04-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/bin_uiui.c: Rewrite (some parts are Torbjorn's).
+ * gen-fac_ui.c: Generate new constants for bin_uiui.
+
+ * mini-gmp/mini-gmp.h (mpz_fac_ui, mpz_bin_uiui): New definitions.
+ * mini-gmp/mini-gmp.c (mpz_fac_ui, mpz_bin_uiui): Trivial
+ implementation.
+
+ * tests/mpz/t-fac_ui.c: Check Wilson's theorem on a big value.
+
+ * mpn/generic/invert.c: Remove support for scratch == NULL.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Allocate scratch
+ space for mpn_invert.
+
+ * mpz/mul_i.h: Small clean-up.
+
+ * tests/mpn/toom-sqr-shared.h: New file.
+ * tests/mpn/t-toom2-sqr.c: New file.
+ * tests/mpn/t-toom3-sqr.c: New file.
+ * tests/mpn/t-toom4-sqr.c: New file.
+ * tests/mpn/t-toom6-sqr.c: New file.
+ * tests/mpn/t-toom8-sqr.c: New file.
+ * tests/mpn/Makefile.am (EXTRA_DIST): Add toom-sqr-shared.h .
+
+ * mpn/generic/toom62_mul.c: Use add_n, sub_n, when possible.
+
+2012-04-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/lshift-movdqu2.asm: New file.
+ * mpn/x86_64/fastsse/rshift-movdqu2.asm: New file.
+ * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: New file.
+ * mpn/x86_64/coreisbr/lshift.asm: New file.
+ * mpn/x86_64/coreisbr/rshift.asm: New file.
+ * mpn/x86_64/coreisbr/lshiftc.asm: New file.
+ * mpn/x86_64/k10/lshift.asm: New file.
+ * mpn/x86_64/k10/rshift.asm: New file.
+ * mpn/x86_64/k10/lshiftc.asm: New file.
+
+ * mpn/x86_64/fastsse/lshift.asm: Simplify to very basic form.
+
+2012-04-11 Niels Möller <nisse@lysator.liu.se>
+
+ * Makefile.am (check-mini-gmp): Pass -I../.. in EXTRA_CFLAGS, to
+ locate gmp.h.
+
+2012-04-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mini-gmp/mini-gmp.h (mpz_root, mpz_rootrem): define (correctly).
+ * mini-gmp/mini-gmp.c (mpz_rootrem): Extended code from _root.
+ (mpz_root): Use mpz_rootrem.
+ (mpz_mul_ui): Correctly handle negative operands.
+
+ * mini-gmp/tests/Makefile (CHECK_PROGRAMS): add t-root.
+ * mini-gmp/tests/t-root.c: New file.
+ * mini-gmp/tests/t-reuse.c: Enable root{,rem} tests.
+
+2012-04-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gen-fac_ui.c (mpz_root): Remove.
+ * mini-gmp/mini-gmp.c (mpz_root): New, support negative operands.
+ * mini-gmp/mini-gmp.h (mpz_root): define.
+ (mpz_out_str): Test also __STDIO_LOADED (for VMS).
+ * mpz/2fac_ui.c: Cosmetic change.
+
+2012-04-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/gcd_1.asm: Rewrite inner loop to use ctz table.
+
+2012-04-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/p7/popcount.asm: Properly extend arg n for mode32.
+ * mpn/powerpc64/p7/hamdist.asm: Likewise.
+
+2012-04-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/p7/popcount.asm: New file.
+ * mpn/powerpc64/p7/hamdist.asm: New file.
+
+ * longlong.h (ARM count_leading_zeros): Enable for more arch versions.
+
+ * mpn/x86_64/gcd_1.asm: Make room for DOS64 regparm shadow area.
+ * mpn/x86_64/core2/gcd_1.asm: Likewise.
+
+2012-04-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/aorrlsh_n.asm: Make it actually work for DOS64.
+
+2012-04-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/oddfac_1.c: Initialize size for ASSERT.
+
+2012-04-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (_GMP_H_HAVE_FILE): Test also __STDIO_LOADED (for VMS).
+
+ * gmp-impl.h (doprnt_format_t, etc): Remove bogus __GMP_DECLSPECs.
+
+2012-03-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86_64/sqr_basecase.asm: Speed-up for small cases.
+
+2012-03-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/gcd_1.asm: New file.
+
+2012-03-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Fix typo in coreisbr recognition.
+
+2012-03-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86_64/gcd_1.asm: Reduce latency.
+ * mpn/x86_64/mul_basecase.asm: Save one jump.
+
+ * mpz/iset_ui.c: Don't realloc.
+
+2012-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mp_clz_tab.c: Add __clz_tab[128].
+ * longlong.h (count_trailing_zeros): Use it in pure C variant.
+
+2012-03-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (x86 fat_path): Add many missing directories.
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Rewrite.
+ (fake_cpuid_table): Add many more CPUs.
+
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Minor spacing cleanup.
+
+2012-03-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/x86-defs.m4 (CALL, PIC_WITH_EBX): New macros.
+ * mpn/x86/darwin.m4: Likewise.
+ * mpn/x86/k7/gcd_1.asm: Use new macros to support PIC.
+ * mpn/x86/p6/gcd_1.asm: Likewise.
+
+2012-03-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gen-fac_ui.c: Generate more constants (possible mini-mpz_root).
+ * mpz/oddfac_1.c: Improve ASSERTs.
+ (log_n_max): Use precomputed table.
+
+ * longlong.h (_PROTO): Remove.
+
+2012-03-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h (count_trailing_zeros): Write better pure C default
+ variant.
+
+ * mpn/x86/p6/gcd_1.asm: Remove forgotten x86_64 reference.
+
+ * mpn/x86/p6/gmp-mparam.h: Update, to get BMOD_1_TO_MOD_1_THRESHOLD
+ defined for fat binaries.
+
+2012-03-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/gcd_1.asm: Rewrite.
+ * mpn/x86/p6/gcd_1.asm: New file.
+
+ * mpn/x86_64/core2/gcd_1.asm: Conditionally suppress reduction calls.
+ * mpn/x86_64/gcd_1.asm: Rewrite.
+
+2012-03-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/gcd_1.c: Parameterise zerotab code.
+
+ * mpn/x86_64/nano/gcd_1.asm: New file, grabbing core2 asm file.
+
+ * mpn/x86_64/core2/gcd_1.asm: Speed up loop code, simplify non-loop
+ code.
+
+2012-03-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/gcd_1.asm: Add hack to support fat builds.
+
+ * mpn/x86_64/core2/gcd_1.asm: Shorten critical path.
+
+2012-03-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/gcd_1.asm: New file.
+ * mpn/x86_64/k10/gcd_1.asm: New file, grabbing core2 asm file.
+ * mpn/x86_64/bd1/gcd_1.asm: Likewise.
+
+ * mpn/x86_64/bobcat/sqr_basecase.asm: New file.
+ * mpn/x86_64/bobcat/mul_basecase.asm: Minor tuning.
+
+2012-03-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (fat_functions): Add addlsh1_n, addlsh2_n, addmul_2,
+ mullo_basecase, redc_1, redc_2, sublsh1_n.
+
+ * gmp-impl.h (struct cpuvec_t): Add fields for new fat functions.
+ * gmp-impl.h: Adjust corresponding declarations.
+
+ * mpn/generic/redc_2.c (mpn_addmul_2): Make static.
+
+ * mpn/x86_64/fat/fat_entry.asm (FAT_INIT): Expand before fat_init to
+ reduce branch offsets. Pass plain 0,1,3... in %al since we'd else run
+ out of 8-bit range.
+
+ * mpn/x86_64/fat/fat_entry.asm (fat_init): Scale passed index value.
+ * mpn/x86/fat/fat_entry.asm (fat_init): Use movzbl for expanding index
+ value.
+
+ * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions.
+ * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise.
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise.
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise.
+
+ * mpn/x86_64/fat/redc_2.c: New file.
+ * mpn/x86/fat/mullo_basecase.c: New file.
+ * mpn/x86/fat/redc_1.c: New file.
+ * mpn/x86/fat/redc_2.c: New file.
+
+ * tests/mpn/t-fat.c: Test mullo_basecase.
+
+2012-03-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/addmul_2.asm: Port to DOS64.
+
+2012-02-29 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h: Ignore partial C++11 support in g++-4.6.
+ * tests/cxx/t-cxx11.cc: Likewise.
+
+ * gmpxx.h (operator""): New functions.
+ * tests/cxx/t-cxx11.cc: Test the above.
+ * doc/gmp.texi: Document the above.
+
+2012-03-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * acinclude.m4 (GMP_H_ANSI): Remove.
+ * configure.in: Don't use GMP_H_ANSI.
+ * gmp-h.in (__GMP_HAVE_PROTOTYPES): Remove.
+
+2012-03-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c (fake_cpuid_table): Recognise "bulldozer".
+ (__gmpn_cpuvec_init): Overhaul to match configure.in.
+
+ * configure.in: Adjust bulldozer path_64.
+
+2012-03-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (x86_64 fat_path): List recently added AMD directories.
+
+ * mpn/x86_64/bobcat/copyi.asm: New file.
+ * mpn/x86_64/bobcat/copyd.asm: New file.
+
+ * config.guess: Handle AMD 11h correctly.
+
+ * tune/tuneup.c (tune_redc): Better handle situation where redc_2 is
+ never faster.
+
+2012-03-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bobcat/mul_basecase.asm: New file.
+
+2012-03-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bobcat/mul_1.asm: New file.
+ * mpn/x86_64/bobcat/aorsmul_1.asm: New file.
+
+2012-03-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/invert.c: Remove mod 0 branch.
+ * tests/mpz/t-invert.c: Avoid testing mod 0.
+ * doc/gmp.texi (mpz_invert): Specify mod 0 is not handled.
+
+ * gmp-h.in (__gmp_signed, __gmp_const): Remove.
+ (__GMP_HAVE_TOKEN_PASTE, __GMP_HAVE_CONST): Remove.
+ * gmp-impl.h: Strip __GMP_HAVE_TOKEN_PASTE and __GMP_HAVE_CONST.
+ * demos/expr/: Strip __gmp_const usage from all files.
+
+ * tests/mpz/t-powm.c (allsizes_seen): Require unsigned*.
+
+2012-03-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/k8/gmp-mparam.h: New file.
+ * mpn/x86_64/k10/gmp-mparam.h: New file.
+
+ * mpn/generic/hgcd_step.c (mpn_hgcd_step): Remove unused variables.
+ * mpn/generic/hgcd_jacobi.c (hgcd_jacobi_step): Likewise.
+ * mpn/generic/hgcd_reduce.c (hgcd_matrix_apply): Likewise.
+ * mpn/generic/mu_bdiv_qr.c: Likewise.
+ * mpz/jacobi.c: Likewise.
+ * mpz/mod.c: Likewise.
+
+ * mpn/generic/toom42_mul.c: Remove unread variable.
+ * mpn/generic/set_str.c (mpn_set_str_compute_powtab): Likewise.
+ * mpn/generic/rootrem.c (mpn_rootrem_internal): Likewise.
+ * tests/refmpn.c (refmpn_mul): Likewise.
+ * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Propagate mask computation
+ into ASSERT, remove variable.
+
+ * gmp-h.in (__GMP_PROTO): Remove.
+ * Strip __GMP_PROTO usage from all files.
+ * Strip prototype parameter names from all files.
+
+2012-03-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * doc/gmp.texi (mpz_invert): Correctly document result range.
+ * tests/mpz/t-invert.c: Small range correction.
+
+2012-03-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mullo_basecase.asm: New file.
+
+2012-02-29 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (std::numeric_limits): New partial specialization.
+
+2012-02-29 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp/tests/t-reuse.c: New test case, based on
+ tests/mpz/reuse.c.
+
+ * mini-gmp/mini-gmp.c (mpz_cdiv_r_ui): New function.
+ (mpz_fdiv_r_ui): New function.
+ (mpz_tdiv_r_ui): New function.
+ (mpz_powm_ui): New function.
+ (mpz_pow_ui): New function.
+ (mpz_ui_pow_ui): Use mpz_pow_ui.
+ (mpz_gcdext): Fixed input/output overlap, for the case of one
+ input being zero.
+ (mpz_sqrtrem): Fix for the case r NULL, U zero.
+
+ * Makefile.am (check-mini-gmp): Use $(MAKE).
+ (clean-mini-gmp): New target.
+ (clean-local, distclean-local): New automake targets. Depend on
+ clean-mini-gmp.
+
+2012-02-28 Niels Möller <nisse@lysator.liu.se>
+
+ * Makefile.am (check-mini-gmp): New target, for running the
+ mini-gmp testsuite.
+
+ * mini-gmp/tests/Makefile (srcdir, MINI_GMP_DIR): New make
+ variables. These can be overridden when using a separate build
+ directory.
+ (EXTRA_CFLAGS): Renamed, was OPTFLAGS.
+
+ * mini-gmp/mini-gmp.c (mpz_abs_add): Don't cache limb pointers
+ over MPZ_REALLOC, since that breaks in-place operation. Bug
+ spotted by Torbjörn.
+ (mpz_and, mpz_ior, mpz_xor): Likewise.
+ (mpz_cmp): Fixed comparison of negative numbers.
+
+2012-02-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fastsse/lshiftc.asm: New file.
+ * mpn/x86_64/fastsse/com.asm: New file.
+
+ * mpn/x86_64/bd1/popcount.asm: New file.
+ * mpn/x86_64/bd1/hamdist.asm: New file.
+
+ * mpn/x86_64/fastsse/copyi.asm: New file.
+ * mpn/x86_64/fastsse/copyd.asm: New file.
+ * mpn/x86_64/fastsse/lshift.asm: New file.
+
+2012-02-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/addmul_2.asm: New file.
+
+ * tests/devel/try.c (param_init): Don't require addmul_N to handle
+ overlap.
+
+ * mpn/x86_64/bd1/mul_1.asm: New file.
+ * mpn/x86_64/bd1/aorsmul_1.asm: New file.
+
+2012-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/2fac_ui.c: New file: implements n!!.
+ * Makefile.am (MPZ_OBJECTS): Add mpz/2fac_ui.
+ * gmp-h.in: Declare mpz_2fac_ui.
+ * tests/mpz/t-fac.c: Test mpz_2fac_ui.
+ * doc/gmp.texi: Document mpz_2fac_ui.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add 2fac_ui.c.
+
+ * mpz/oddfac_1.c (mpz_oddfac_1): Use umul_ppmm when size = 2.
+
+2012-02-26 Niels Möller <nisse@lysator.liu.se>
+
+ * mini-gmp: New subdirectory. For use by GMP bootstrap, and as a
+ fallback for applications needing bignums but not high
+ performance.
+
+ * bootstrap.c: New file, replacing dumbmp.c. Uses mini-gmp for the
+ standard GMP functions, and then defines the few functions
+ particular for the bootstrap.
+ * dumbmp.c: Deleted file. A few functions moved to bootstrap.c.
+
+ * gen-bases.c: Include bootstrap.c, not dumbmp.c.
+ * gen-fac_ui.c: Likewise.
+ * gen-trialdivtab.c: Likewise.
+ * gen-fib.c: Include bootstrap.c, not dumbmp.c. Use assert rather
+ than ASSERT. Deleted casts of xmalloc return value.
+ * gen-psqr.c: Likewise.
+ (COLLAPSE_ELEMENT): Use memmove rather than mem_copyi.
+
+ * Makefile.am: Replaced all uses of dumbmp.c by bootstrap.c.
+ (EXTRA_DIST, dist-hook): Arrange for distribution of the mini-gmp
+ files.
+
+2012-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/invert.c: Use ABSIZ, MPZ_EQUAL_1_P.
+ * mpz/abs.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
+ * mpz/aors_ui.h: Likewise.
+ * mpz/com.c: Likewise.
+ * mpz/neg.c: Likewise.
+
+ * mpz/invert.c: Reply "no-inverse" when modulus is zero.
+ * tests/mpz/t-invert.c: Add more checks.
+ * doc/gmp.texi (mpz_invert): Inverse can not be zero.
+
+2012-02-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/logic.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add logic.
+
+ * tests/mpz/t-invert.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-invert.
+
+2012-02-24 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/mpq/t-cmp.c: Move NUM and DEN macros...
+ * tests/mpq/t-cmp_ui.c: Likewise...
+ * gmp-impl.h: ... to here.
+
+ * mpq/abs.c: Use NUM, DEN, SIZ, ALLOC, PTR, MPZ_REALLOC.
+ * mpq/aors.c: Likewise.
+ * mpq/canonicalize.c: Likewise.
+ * mpq/clear.c: Likewise.
+ * mpq/cmp.c: Likewise.
+ * mpq/cmp_si.c: Likewise.
+ * mpq/cmp_ui.c: Likewise.
+ * mpq/div.c: Likewise.
+ * mpq/equal.c: Likewise.
+ * mpq/get_d.c: Likewise.
+ * mpq/get_den.c: Likewise.
+ * mpq/get_num.c: Likewise.
+ * mpq/get_str.c: Likewise.
+ * mpq/init.c: Likewise.
+ * mpq/inp_str.c: Likewise.
+ * mpq/inv.c: Likewise.
+ * mpq/md_2exp.c: Likewise.
+ * mpq/mul.c: Likewise.
+ * mpq/neg.c: Likewise.
+ * mpq/set.c: Likewise.
+ * mpq/set_d.c: Likewise.
+ * mpq/set_den.c: Likewise.
+ * mpq/set_f.c: Likewise.
+ * mpq/set_num.c: Likewise.
+ * mpq/set_si.c: Likewise.
+ * mpq/set_str.c: Likewise.
+ * mpq/set_ui.c: Likewise.
+ * mpq/set_z.c: Likewise.
+ * mpq/swap.c: Likewise.
+
+ * tests/mpq/t-inv.c: New test file.
+ * tests/mpq/Makefile.am: Add the above.
+
+ * gmpxx.h (__gmp_set_expr): Use mpq_set_z.
+
+ * mpq/md_2exp.c: Collapse MPZ_REALLOC(x,.) and PTR(x).
+ * mpq/set_d.c: Likewise.
+ * mpq/set_f.c: Likewise.
+
+2012-02-24 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/core2/aorsmul_1.asm: Added mpn_addmul_1c and
+ mpn_submul_1c entry points.
+
+2012-02-23 Marc Glisse <marc.glisse@inria.fr>
+
+ * mpz/abs.c: Use ALLOC, SIZ, ABSIZ, PTR, MPZ_REALLOC.
+ * mpz/aors_ui.h: Likewise.
+ * mpz/array_init.c: Likewise.
+ * mpz/cdiv_q.c: Likewise.
+ * mpz/cdiv_qr.c: Likewise.
+ * mpz/cdiv_r.c: Likewise.
+ * mpz/clear.c: Likewise.
+ * mpz/clrbit.c: Likewise.
+ * mpz/cmp_si.c: Likewise.
+ * mpz/com.c: Likewise.
+ * mpz/fdiv_q.c: Likewise.
+ * mpz/fdiv_qr.c: Likewise.
+ * mpz/fdiv_r.c: Likewise.
+ * mpz/get_si.c: Likewise.
+ * mpz/get_str.c: Likewise.
+ * mpz/init.c: Likewise.
+ * mpz/inp_str.c: Likewise.
+ * mpz/iset.c: Likewise.
+ * mpz/iset_d.c: Likewise.
+ * mpz/iset_si.c: Likewise.
+ * mpz/iset_str.c: Likewise.
+ * mpz/iset_ui.c: Likewise.
+ * mpz/mod.c: Likewise.
+ * mpz/neg.c: Likewise.
+ * mpz/out_str.c: Likewise.
+ * mpz/random2.c: Likewise.
+ * mpz/set_si.c: Likewise.
+ * mpz/set_str.c: Likewise.
+ * mpz/set_ui.c: Likewise.
+ * mpz/setbit.c: Likewise.
+ * mpz/sqrt.c: Likewise.
+ * mpz/swap.c: Likewise.
+ * mpz/tdiv_r_2exp.c: Likewise.
+
+ * tests/cxx/t-ops.cc: Test mpz_abs reallocation.
+
+2012-02-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/rsh1aors_n.asm: Complete rewrite.
+ * mpn/x86_64/coreisbr/rsh1aors_n.asm: Move old core2 code here.
+
+ * mpn/x86_64/redc_1.asm: Make it work for DOS64 (broken in last edit).
+
+2012-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_8pts.c: Compute carry iif non-trivial.
+
+ * mpz/gcdext.c: Adapt to relaxed mpn_gcdext's input requirements.
+
+ * mpz/and.c: Use mpn_ logic everywhere. Reduce branches.
+ * mpz/ior.c: Likewise.
+ * mpz/xor.c: Likewise.
+
+2012-02-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreisbr/mul_1.asm: New file.
+
+ * mpn/x86_64/coreisbr/aorsmul_1.asm: New file.
+
+ * mpn/x86_64/mod_34lsub1.asm: Avoid ",pt" branch hint since many
+ assemblers don't support it.
+
+2012-02-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_1.c: Put back mpn_add_n call, return its carry.
+ Reintroduce previously removed RP argument.
+ * mpn/x86_64/redc_1.asm: Likewise.
+
+ * mpn/generic/redc_2.c: Remove mpn_sub_n call, return carry from
+ mpn_add_n call.
+
+ * gmp-impl.h (mpn_redc_1, mpn_redc_2): Now return an mp_limb_t.
+
+ * tune/speed.h (SPEED_ROUTINE_REDC_1): Adopt to pass RP argument.
+
+ * tests/refmpn.c (refmpn_redc_1): Adopt to new redc_1 interface.
+
+ * mpn/generic/powm.c (MPN_REDC_1): Pass rp parameter to mpn_redc_1.
+ * mpn/generic/powm_sec.c (MPN_REDC_1_SEC): Likewise.
+ * mpn/generic/powm.c (MPN_REDC_2): New macro, use for mpn_redc_2.
+
+2012-02-18 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (std::common_type): New partial specialization in C++11.
+ * tests/cxx/t-cxx11.cc: Test it.
+
+ * gmpxx.h: Don't declare long double functions that are never defined.
+
+ * gmpxx.h (__gmp_binary_expr): Let things happen in place: q=q*q+z*z
+ becomes tmp=z*z, q=q*q, q+=tmp.
+ * tests/cxx/t-binary.cc: More variable reuse tests.
+
+2012-02-17 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmp-h.in (__GMP_WITHIN_GMP): Test with #ifdef instead of #if, for
+ the benefit of applications using gcc -Wundef.
+ (__GMP_WITHIN_GMPXX): Likewise.
+
+2012-02-16 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_binary_expr): Let things happen in place: e=a*b-c*d
+ becomes tmp=c*d, e=a*b, e-=tmp.
+ * tests/cxx/t-binary.cc: More variable reuse tests.
+
+2012-02-15 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (mul_toom43_to_toom54_threshold): New global.
+ (tune_mul): Added tuning of MUL_TOOM43_TO_TOOM54_THRESHOLD.
+ * tune/speed.h (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM54_MUL): New macro.
+ (SPEED_ROUTINE_MPN_TOOM54_FOR_TOOM43_MUL): New macro.
+ Prototypes for corresponding functions.
+ * tune/common.c (speed_mpn_toom43_for_toom54_mul): New function.
+ (speed_mpn_toom54_for_toom43_mul): New function.
+
+ * gmp-impl.h (MPN_TOOM43_MUL_MINSIZE): Corrected constant.
+ (MPN_TOOM53_MUL_MINSIZE): Likewise.
+ (MPN_TOOM54_MUL_MINSIZE): New constant.
+ (mpn_toom54_mul): Added prototype.
+ (MUL_TOOM43_TO_TOOM54_THRESHOLD): New threshold. Default value and
+ tuning setup.
+
+2012-02-14 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom54_mul.c: New file, originally contributed by
+ Marco.
+ * gmp-impl.h (mpn_toom54_mul_itch): New function.
+ * configure.in (gmp_mpn_functions): Added toom54_mul.
+ * tests/mpn/t-toom54.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom54.
+
+2012-02-13 Niels Möller <nisse@lysator.liu.se>
+
+ * configure.in: Display summary of options.
+
+2012-02-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/tests.h (TESTS_REPS): Print any non-standard repetitions.
+
+2012-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * doc/gmp.texi (Factorial): Shortly describe current algorithm.
+ (Multiplication Algorithms): Add Toom[68]'n'half, (too) shortly.
+ * gmp-impl.h (ASSERT_ALWAYS): Consider failures UNLIKELY.
+
+2012-02-10 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-gcd.c (gcdext_valid_p): Enforce slightly stricter
+ bound for cofactors.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): Corrected
+ handling of unlikely (maybe impossible?) case u1n < un. Related to
+ the 2012-02-05 bugfix of gcdext_subdiv_step.c in the gmp-5.0 repo.
+
+2012-02-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (mpn_toom3*_itch): Support any recursion depth.
+ * tests/refmpn.c (refmpn_mul): Restore tight allocations.
+
+ * mpz/oddfac_1.c (mpz_oddfac_1): Get ready for n!!
+ * gmp-impl.h (mpz_oddfac_1): Update signature.
+ * mpz/fac_ui.c (mpz_fac_ui): Update call to mpz_oddfac_1.
+
+2012-02-09 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmp-impl.h (ABS_CAST): New macro.
+ * mpf/cmp_si.c: Use ABS_CAST.
+ * mpf/get_si.c: Use ABS_CAST.
+ * mpf/iset_si.c: Use ABS_CAST.
+ * mpf/set_si.c: Use ABS_CAST.
+ * mpq/set_si.c: Use ABS_CAST.
+ * mpz/cmp_si.c: Use ABS_CAST.
+ * mpz/get_si.c: Use ABS_CAST.
+ * mpz/iset_si.c: Use ABS_CAST.
+ * mpz/mul_i.h: Use ABS_CAST.
+ * mpz/set_si.c: Use ABS_CAST.
+
+2012-02-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc32/divrem_2.asm: Fix off-by-one condition in invert_limb
+ code.
+
+2012-02-08 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (mpz_gcdext): Clarified corner cases in cofactor
+ canonicalization.
+
+2012-02-07 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (mpn_gcdext): Fixed assert, related to the
+ special case A = (2k+1) G, B = 2 G. Fix copied from gmp-5.0 repo.
+
+2012-02-06 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd_matrix.c (hgcd_matrix_update_q): Fixed carry
+ handling bug. Fix copied from gmp-5.0 repo, where the function is
+ found in hgcd.c.
+
+ * tests/mpz/t-gcd.c (main): Use mpz_rrandomb for test operands,
+ not mpz_urandomb. Change copied from gmp-5.0 repo.
+ * tests/mpn/t-hgcd.c (main): Likewise.
+
+2012-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/refmpn.c (refmpn_mul): More conservative allocations.
+
+2012-02-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bd1/gmp-mparam.h: New file.
+
+ * longlong.h (udiv_qrnnd from sdiv_qrnnd): Declare udiv_w_sdiv.
+
+ * mpn/generic/udiv_w_sdiv.c: Use c89 function header.
+
+2012-02-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/fac_ui.c: mpz_oddfac_1 removed, with many related functions.
+ * mpz/oddfac_1.c: New file, mpz_oddfac_1 implementation.
+ * gmp-impl.h: mpz_oddfac_1 declaration.
+ * Makefile.am (MPZ_OBJECTS): add mpz/oddfac_1$U.lo .
+ * mpz/Makefile.am (libmpz_la_SOURCES): add oddfac_1.c .
+ * tune/Makefile.am (fac_ui.c): include mpz/oddfac_1.c .
+
+2012-02-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_16pts.c: Correct an unlikely 32-bit bug.
+
+2012-02-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom63_mul.c: Allow s+t==n by adjusting an ASSERT.
+ * mpn/generic/toom_interpolate_8pts.c: Perform final incr iff s+t!=n.
+
+ * tests/mpn/t-toom6h.c (MIN_BN): Make more consistent with ASSERT in
+ tested function.
+
+2012-02-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-mul.c: New file.
+ * tests/mpn/Makefile.am: Compile it.
+
+2012-02-01 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h: Remove check for g++ older than 2.91.
+
+2012-02-01 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/mul.c: Added diagram on where toom functions can be
+ called.
+
+2012-02-01 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_unary_expr): Make the constructor explicit.
+ (__gmp_expr(__gmp_expr&&)): New move constructors.
+ (__gmp_expr::operator=(__gmp_expr&&)): New move assignments.
+ (swap): Mark as noexcept.
+ (__GMPXX_USE_CXX11): New macro.
+ (__GMPXX_NOEXCEPT): New macro.
+ * tests/cxx/t-cxx11.cc: New file.
+ * tests/cxx/Makefile.am: Added t-cxx11.
+
+2012-01-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm_sec.c (SQR_BASECASE_LIM): New name for
+ SQR_BASECASE_MAX.
+ (SQR_BASECASE_LIM, fat variant): Define to read __gmpn_cpuvec.
+ (SQR_BASECASE_LIM, native variant): Define to SQR_TOOM2_THRESHOLD
+ straight, without arithmetic.
+ (mpn_local_sqr): Use BELOW_THRESHOLD as per Marco's suggestion.
+
+2012-01-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-powm.c: Ensure all sizes are seen.
+
+2012-01-30 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_binary_expr): Let things happen in place: d=a+b+c
+ when d != c.
+ * tests/cxx/t-binary.cc: Test variable reuse: c=a+b+c.
+
+2012-01-28 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h: Don't compute -LONG_MIN.
+
+ * doc/gmp.texi (gmp_randclass::get_z_bits): Use mp_bitcnt_t.
+ * gmpxx.h: Replace unsigned long with mp_bitcnt_t.
+
+2012-01-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * Upgrade to libtool 2.4.2.
+
+2012-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/t-fac_ui.c: Increase default test cases.
+
+ * mpz/prodlimbs.c: New file, mpz_prodlimbs implementation.
+ * gmp-impl.h: mpz_prodlimbs declaration.
+ * Makefile.am (MPZ_OBJECTS): add mpz/prodlimbs$U.lo .
+ * mpz/Makefile.am (libmpz_la_SOURCES): add prodlimbs.c .
+ (fac_ui.h): remove target (moved up one directory).
+ * mpz/fac_ui.c: mpz_prodlimbs removed, micro-optimisations.
+
+2012-01-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c: Remove unused tuneup variables.
+
+2012-01-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/fac_ui.c: Reduce branches in basecases.
+
+2012-01-18 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/gmp.texi (mpf_class::mpf_class): Use mp_bitcnt_t.
+
+2012-01-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Add ultrasparc T4 support.
+
+ * demos/isprime.c (main): Run 25 millerrabin tests.
+
+2012-01-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/fac_ui.c (SIEVE_SEED): Define value for small limb size.
+ (mpz_oddswing_1): Reduce the number of divisions.
+ (mpz_oddfac_1): Reduce memory usage.
+ * mpn/minithres/gmp-mparam.h: Correct minimum for FAC_DSC_.
+ * tune/tuneup.c (tune_fac_ui): Likewise.
+
+2012-01-15 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/scan0.c (mpz_scan0): Use ~(mp_bitcnt_t) 0, rather than
+ ULONG_MAX, when returning "infinity".
+ * mpz/scan1.c (mpz_scan1): Likewise.
+
+2012-01-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/t-popc.c: Test longer bit strings.
+
+2012-01-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/divexact.c: Tight realloc, delayed if variables are reused.
+ * mpz/lcm.c: Smaller temp space, avoid goto.
+ * gmp-impl.h (popc_limb): avoid double & (for 8-bits limb).
+
+2012-01-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/minithres/gmp-mparam.h: New FAC_ODD_ and FAC_DSC_ thresholds.
+ * tune/tuneup.c (tune_fac_ui): Correct minimum for FAC_DSC_.
+
+2012-01-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/mul_2exp.c: Rewrite.
+ * mpz/tdiv_q_2exp.c: Rewrite.
+
+2012-01-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gen-fac_ui.c: Remove currently unused constants; add new odd
+ double factorial table.
+ * mpz/fac_ui.c (RECURSIVE_PROD_THRESHOLD): Increase default.
+ (mpz_oddfac_1): New function: a merge of _bc_odd and _dsc_odd.
+ (mpz_prodlimbs): More in-place computations.
+
+ * tune/tuneup.c (tune_fac_ui): min_is_always for FAC_ODD_.
+
+2012-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tune/tuneup.c (tune_fac_ui): Compute FAC_DSC before FAC_ODD.
+
+2011-12-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (fac_ui.h): Put file in top-level dir, not in mpz.
+
+2011-12-31 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tune/Makefile.am (fac_ui.c): New target.
+ (nodist_tuneup_SOURCES,CLEANFILES): Add fac_ui.c.
+ * tune/tuneup.c (mpz_fac_ui_tune): Declare prototype.
+ (fac_odd_threshold,fac_dsc_threshold): New global variables.
+ (speed_mpz_fac_ui_tune,tune_fac_ui): New functions.
+ (all): Call tune_fac_ui.
+ * gmp-impl.h (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
+ New thresholds: default values, and setup for tuning.
+ (FAC_DSC_THRESHOLD_LIMIT): Define (when tuning).
+ * mpz/fac_ui.c (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD):
+ Default values removed.
+
+2011-12-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/hamdist.c: Fix typo in a return statement.
+
+ * mpn/generic/powm_sec.c (SQR_BASECASE_MAX): Set safely from
+ SQR_TOOM2_THRESHOLD.
+
+2011-12-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-perfpow.c: Decrease default # of tests.
+
+2011-12-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/refmpn.c (AORS_1): Fix typo in variable type.
+
+2011-12-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/sbpi1_bdiv_q.c: Delay quotient limb stores in order to
+ allow quotient and dividend to completely overlap.
+ * mpn/generic/sbpi1_bdiv_qr.c: Likewise.
+
+2011-12-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/fac_ui.c: fac_bc_ui inlined in fac_ui.
+
+2011-12-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm_sec.c: Handle fat binaries better.
+
+ * mpz/fac_ui.c (mpz_bc_fac_1): Fix typo in allocation size.
+
+ * mpn/x86/fat/com.c: New file.
+
+ * mpn/x86_64/pentium4/aors_n.asm: Make it actually work for DOS64.
+ * mpn/x86_64/pentium4/rsh1aors_n.asm: Conditionalise jump on DOS64
+ to avoid overhead for standard ABIs.
+
+ * mpn/x86_64/gcd_1.asm: Support DOS64.
+
+2011-12-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Fix typo making HAVE_NATIVE_mpn_X fail for fat
+ functions.
+
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Add a missing break.
+
+2011-12-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gen-fac_ui.c: Generate two more tables: odd factorial, swing.
+
+ * mpz/fac_ui.c: Rewrite.
+
+2011-12-06 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd): Use hgcd_reduce for first
+ recursive call.
+
+2011-12-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/mod_1_1-1.c: Redefine the mpn_ functions, not __gmpn_ (for the
+ benefit of fat builds).
+ * tune/mod_1_1-2.c: Likewise.
+
+2011-12-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/fat/lshiftc.c: New file.
+ * mpn/x86/fat/mod_1_1.c: New file.
+ * mpn/x86/fat/mod_1_2.c: New file.
+ * mpn/x86/fat/mod_1_4.c: New file.
+
+ * mpn/x86/fat/diveby3.c: Remove no longer fat function.
+ * mpn/x86_64/fat/diveby3.c: Likewise.
+
+ * mpn/x86_64/fat/gcd_1.c: Remove since always provided as asm.
+ * mpn/x86_64/fat/mode1o.c: Likewise.
+
+ * configure.in (fat_functions): Update to more relevant function set.
+ Add special handling for mod_1_N_cps functions.
+ * gmp-impl.h (struct cpuvec_t) : Corresponding changes. Also add
+ vrious declarations for new functions.
+ * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
+ * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes.
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
+ * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Corresponding changes.
+
+ * mpn/x86_64: Port most remaining x86_64 files to DOS64.
+
+ * mpn/x86_64/coreisbr/aors_n.asm: Add forgotten DOS64_EXIT.
+
+ * mpn/x86_64/x86_64-defs.m4 (LEA): Handle non-PIC code.
+ * mpn/x86_64/darwin.m4 (LEA): Likewise.
+
+2011-12-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c (MAKE_FMS): Rewrite to handle modern CPUs.
+ * mpn/x86/fat/fat.c (MAKE_FMS): Likewise.
+
+ * mpn/x86_64/darwin.m4 (PROTECT): Define to potentially useful value.
+
+2011-12-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/invert_limb_table.asm: Use PROTECT.
+ * mpn/x86_64/invert_limb.asm: Likewise.
+
+ * mpn/x86_64/darwin.m4 (PROTECT, IFELF): New defines.
+ * mpn/x86_64/dos64.m4 (PROTECT, IFELF): New defines.
+ * mpn/x86_64/x86_64-defs.m4 (PROTECT, IFELF): New defines.
+
+2011-12-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c: Copy fake cpuid code from x86/fat/fat.c.
+
+ * mpn/x86_64 (STD64, IFSTD): New names for ELF64, IFELF (since these
+ denote all standard calling conventions).
+
+ * mpn/x86_64: Add DOS64 ABI support to more files.
+
+ * mpn/x86_64/mod_1_1.asm: Finish DOS64 support.
+ * mpn/x86_64/mod_1_2.asm: Likewise.
+ * mpn/x86_64/mod_1_4.asm: Likewise.
+
+ * configure.in: Add GMP_NONSTD_ABI also for fat builds.
+
+ * mpn/x86_64/fat/fat_entry.asm: Rewrite to support DOS64.
+
+ * mpn/x86_64/dos64.m4 (IFDOS, IFSTD): New defines.
+ * mpn/x86_64/x86_64-defs (IFDOS, IFSTD): New defines.
+
+ * mpn/x86_64/dive_1.asm: Add DOS64 ABI support.
+ * mpn/x86_64/mode1o.asm: Likewise.
+
+ * mpn/x86_64/mod_34lsub1.asm: Enable for DOS64.
+
+ * mpn/x86_64/invert_limb.asm: Wrap .protected decl.
+
+ * gmp-impl.h (DECL_divexact_1): Fix typo in return type.
+
+ * mpn/x86_64/dos64.m4 (LEA): New define.
+ (PIC): Define.
+
+2011-11-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64: Add DOS64 ABI support to most files.
+
+2011-11-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mul_basecase.asm: Support ABI DOS64.
+ * mpn/x86_64/sqr_basecase.asm: Support ABI DOS64.
+ * mpn/x86_64/aorsmul_1.asm: Support ABI DOS64.
+ * mpn/x86_64/mul_1.asm: Support ABI DOS64.
+
+ * mpn/x86_64/x86_64-defs.m4 (DOS64_ENTRY, DOS64_EXIT): New, empty defs.
+
+ * mpn/x86_64/dos64.m4: New file.
+
+ * mpn/asm-defs.m4 (ABI_SUPPORT): New dummy macro.
+
+ * configure.in (64-bit mingw/cygwin): Define HOST_DOS64,GMP_NONSTD_ABI.
+ No longer clear out path_64.
+ (mpn code selection loop): Handle GMP_NONSTD_ABI.
+
+ * mpn/generic/udiv_w_sdiv.c: Use CNST_LIMB for some constants.
+
+2011-11-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * x86/*: Many new gmp-mparam.h file for 64-bit CPUs in 32-bit mode.
+
+ * configure.in: Overhaul x86/x86_64 support, merging three case
+ statements into one.
+
+2011-11-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Formatted Output Strings): Clarify rules for mpf_t
+ precision.
+
+ * mpn/powerpc32/p7/gmp-mparam.h: New file.
+
+ * tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Up min_size to karatsuba's
+ threshold.
+
+2011-11-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/p6/aorsmul_1.asm: New file.
+
+ * configure.in: Don't fail fat builds under 64-bit DOS.
+
+ * mpn/powerpc64/mode64/aors_n.asm: Align loop for slightly better
+ power5 performance.
+
+2011-11-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GNU_MP_RELEASE): Renamed from typo name.
+
+2011-11-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Split x86 CPUs into more subtypes for more accurate
+ passing of gcc flags.
+
+ * mpn/powerpc32/p3-p7/aors_n.asm: New file.
+
+ * configure.in: Pass -m32 for powerpc64 with abi=32, using via _maybe
+ mechanism.
+
+ * configure.in: Support powerpc32/p3-p7 directory for affected CPUs.
+
+2011-11-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.c (routine): Add mpn_tabselect.
+ * tune/common.c (speed_mpn_tabselect): New function.
+ * tune/speed.h (SPEED_ROUTINE_MPN_COPY_CALL): New macro, made from
+ old SPEED_ROUTINE_MPN_COPY.
+ (SPEED_ROUTINE_MPN_COPY): Just invoke SPEED_ROUTINE_MPN_COPY_CALL.
+ (SPEED_ROUTINE_MPN_TABSELECT): New macro.
+
+2011-11-17 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (tune_hgcd_appr): Increase stop_since_change.
+
+2011-11-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc32/tabselect.asm: New file.
+
+ * mpn/powerpc64/mode64/aorscnd_n.asm: New file.
+
+2011-11-15 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.h (speed_mpn_hgcd_appr_lehmer): New prototype.
+ (mpn_hgcd_lehmer_itch): Likewise.
+ (mpn_hgcd_appr_lehmer): Likewise.
+ (mpn_hgcd_appr_lehmer_itch): Likewise.
+ (MPN_HGCD_LEHMER_ITCH): Deleted macro.
+
+ * tune/speed.c (routine): Added mpn_hgcd_appr_lehmer.
+
+ * tune/common.c (speed_mpn_hgcd_lehmer): Use mpn_hgcd_lehmer_itch
+ rather than similarly named macro.
+ (speed_mpn_hgcd_appr_lehmer): New function.
+
+ * tune/Makefile.am (libspeed_la_SOURCES): Added
+ hgcd_appr_lehmer.c.
+
+ * tune/hgcd_appr_lehmer.c: New file.
+
+ * tune/tuneup.c (tune_hgcd_appr): Increased min_size to 50; some
+ machines got small thresholds which appear to be bogus.
+
+2011-11-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm_sec.c (mpn_local_sqr): Remove forgotten TMP_* calls.
+ (redcify): Likewise.
+ (mpn_powm_sec): Likewise.
+
+ * mpn/generic/powm_sec.c (mpn_powm_sec): Rework scratch usage
+ (mpn_powm_sec_itch): Rewrite.
+
+ * mpn/generic/powm_sec.c (mpn_powm_sec): Use mpn_tabselect also in
+ initialisation.
+
+ * configure.in: Amend 2011-11-03 gcc_cflags change.
+
+ * mpn/powerpc64/tabselect.asm: New file.
+ * mpn/x86_64/tabselect.asm: New file.
+ * mpn/x86/tabselect.asm: New file.
+ * mpn/ia64/tabselect.asm: New file.
+
+ * mpn/asm-defs.m4 (define_mpn): Add tabselect.
+
+ * configure.in (gmp_mpn_functions): Add tabselect.
+ (HAVE_NATIVE): Add entries for addncd_n, subcnd_n, tabselect.
+
+ * mpn/generic/powm_sec.c: Remove mpn_tabselect implementation.
+ * mpn/generic/tabselect.c: New file with removed code.
+
+2011-11-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add powm_sec.c.
+
+ * mpn/generic/powm_sec.c (win_size): Use POWM_SEC_TABLE
+ (POWM_SEC_TABLE): Define default.
+
+ * tune/tuneup.c (tune_powm_sec): New function computing POWM_SEC_TABLE.
+ (all): Call new function.
+
+ * mpn/generic/powm_sec.c (win_size): Define only when
+ TUNE_PROGRAM_BUILD is not set.
+
+2011-11-13 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (tune_hgcd_appr): Use default min_size.
+ (tune_hgcd_reduce): Increase max_size and step_factor, to 7000
+ and 0.04, respectively.
+
+2011-11-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: Remove.
+
+2011-11-11 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/hgcd_reduce_2.c: New file.
+ * tune/hgcd_reduce_1.c: New file.
+
+ * tune/tuneup.c (hgcd_appr_threshold): New threshold variable.
+ (hgcd_reduce_threshold): Likewise.
+ (tune_hgcd_appr): New function.
+ (tune_hgcd_reduce): New function.
+ (all): Call tune_hgcd_appr and tune_hgcd_reduce.
+
+ * tune/speed.h (speed_mpn_hgcd_reduce): Declaration.
+ (speed_mpn_hgcd_reduce_[12]): Likewise.
+ (mpn_hgcd_reduce_[12]): Likewise.
+ (SPEED_ROUTINE_MPN_HGCD_REDUCE_CALL): New macro.
+
+ * tune/speed.c (routine): Added mpn_hgcd_reduce,
+ mpn_hgcd_reduce_1, and mpn_hgcd_reduce_2.
+
+ * tune/common.c (speed_mpn_hgcd_reduce): New function.
+ (speed_mpn_hgcd_reduce_[12]): Likewise.
+
+ * tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_reduce_1.c
+ hgcd_reduce_2.c.
+ (TUNE_MPN_SRCS_BASIC): Added hgcd_appr.c and hgcd_reduce.c.
+
+ * mpn/generic/hgcd_appr.c (submul, hgcd_matrix_apply): Deleted
+ functions, earlier copied to hgcd_reduce.c.
+ (mpn_hgcd_appr): Use hgcd_reduce.
+
+2011-11-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/sqr_basecase.asm: New file.
+
+ * mpn/x86_64/aorscnd_n.asm: New file.
+
+ * tune/speed.c (routine): Add measuring of mpn_addcnd_n, mpn_subcnd_n.
+ * tune/common.c (speed_mpn_addcnd_n,speed_mpn_subcnd_n): New functions.
+ * tune/speed.h: Declare them.
+
+ * tests/devel/try.c: Add tests for mpn_addcnd_n and mpn_subcnd_n.
+ * tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): New functions.
+ * tests/tests.h: Declare them.
+
+ * configure.in (gmp_mpn_functions): Add addcnd_n and subcnd_n.
+
+2011-11-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_1.c: Just reduce U operand using Hensel norm, but
+ not fully canonically; leave add_n and conditional sub_n to caller.
+ Therefore omit R argument.
+
+ * mpn/generic/redc_1_sec.c: Remove.
+
+ * gmp-impl.h (mpn_redc_1): Update declaration.
+ (mpn_redc_1_sec): Remove declaration.
+
+ * configure.in (gmp_mpn_functions): Remove redc_1.
+
+ * mpn/x86_64/redc_1.asm: Adopt to new defined functionality/interface.
+ * tune/speed.h (SPEED_ROUTINE_REDC_1): Likewise.
+
+ * tests/refmpn.c (refmpn_redc_1): Likewise; also call refmpn_addmul_1
+ instead of mpn_addmul_1.
+
+ * mpn/generic/powm.c (MPN_REDC_1): New macro, use for mpn_redc_1.
+ * mpn/generic/powm_sec.c (MPN_REDC_1_SEC): New macro, use for
+ mpn_redc_1_sec.
+
+2011-11-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * dumbmp.c (mpz_sub): Abort for non-handled case.
+
+ * mpn/powerpc64/mode64/lshiftc.asm: Move file from here...
+ * mpn/powerpc64/lshiftc.asm: ...to here, with trivial modifications.
+
+ * configure.in: Pass -m32 in more cases, using _maybe mechanism.
+ Inherit default gcc_cflags in more places.
+
+ * mpn/powerpc64/mode64/p7/gmp-mparam.h: New file.
+
+2011-11-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/invert_limb.asm: Slight optimisation.
+
+ * configure.in (s390): Set gcc_32_cflags_maybe.
+
+ * mpn/s390_32/gmp-mparam.h: Put in proper data.
+ * mpn/s390_32/esame/gmp-mparam.h: New file.
+
+ * mpn/x86_64/bobcat/gmp-mparam.h: New file.
+
+ * mpn/s390_32/lshift.asm: New file.
+ * mpn/s390_32/rshift.asm: New file.
+ * mpn/s390_32/lshiftc.asm: New file.
+
+2011-10-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/sqr_diagonal.asm: Move from here...
+ * mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here.
+
+ * mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file.
+
+ * mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code.
+ * mpn/s390_32/esame/sqr_basecase.asm: Likewise.
+
+2011-10-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/lshift.asm: Complete rewrite.
+ * mpn/s390_64/rshift.asm: Likewise.
+
+ * mpn/s390_64/lshiftc.asm: New file.
+
+2011-10-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_32/esame/aors_n.asm: New file, with rewritten add/sub code.
+
+2011-10-27 Torbjorn Granlund <tege@gmplib.org>
+
+ From Per Olofsson:
+ * gmp-impl.h (BSWAP_LIMB): Rename variable to avoid BSWAP_LIMB_FETCH
+ clash.
+
+ * mpn/s390_32/esame/mul_basecase.asm: New file.
+
+ * mpn/s390_32/esame/sqr_basecase.asm: New file.
+
+ * mpn/s390_32/logops_n.asm: New file.
+
+ * mpn/s390_64/logops_n.asm: Fix rp=up code. Remove a leftover insn.
+
+2011-10-26 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (mpn_hgcd_reduce, mpn_hgcd_reduce_itch): Added
+ prototypes.
+ (HGCD_APPR_THRESHOLD): Set up threshold for tuning.
+ (HGCD_REDUCE_THRESHOLD): Likewise.
+
+ * configure.in (gmp_mpn_functions): Added hgcd_reduce.
+
+ * mpn/generic/hgcd_reduce.c: New file.
+
+2011-10-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/sqr_basecase.asm: Put intermediate result into R, don't
+ allocate any stack space.
+
+2011-10-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/logops_n.asm: Use nc, oc, xc when possible.
+
+ * tune/common.c (speed_mpn_and_n, speed_mpn_andn_n, etc):
+ Pass correct input args.
+
+ * mpn/s390_64/mod_34lsub1.asm: Use llgfr for zero extensions.
+
+ * mpn/s390_64/mul_basecase.asm: New file.
+
+ * mpn/s390_64/sqr_basecase.asm: New file.
+ * mpn/s390_64/sqr_diag_addlsh1.asm: Removed, lives on in sqr_basecase.
+
+ * mpn/s390_64/bdiv_dbm1c.asm: Shave off 1 c/l.
+
+ * mpn/s390_64/aorrlsh1_n.asm: New file, developed from aorslsh1_n.asm.
+ * mpn/s390_64/sublsh1_n.asm: New file.
+ * mpn/s390_64/aorslsh1_n.asm: Remove file.
+
+2011-10-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/logops_n.asm: New file.
+
+ * mpn/s390_64/aors_n.asm: New file, with rewritten add/sub code.
+
+2011-10-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_SQR_DIAL_ADDLSH1_CALL): New macro.
+ * tune/common.c (speed_mpn_sqr_diag_addlsh1): New function.
+ * tune/speed.c (routine): Measure mpn_sqr_diag_addlsh1.
+
+ * mpn/s390_64/sqr_diag_addlsh1.asm: Rewrite like s390_32/esame code.
+
+ * mpn/s390_32/esame/sqr_diag_addlsh1.asm: Save just needed registers.
+
+2011-10-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_32/esame/add_n.asm: Rewrite, similar to s390_64 code.
+ * mpn/s390_32/esame/add_n.asm: Likewise.
+
+2011-10-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_32/esame/aorslsh1_n.asm: New file.
+
+2011-10-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_32/esame/sqr_diag_addlsh1.asm: New file.
+
+ * mpn/s390_32/copyi.asm: New file.
+ * mpn/s390_32/copyd.asm: New file.
+
+ * mpn/s390_64/copyd.asm: Optimise.
+
+ * mpn/s390_64/copyi.asm: Rewrite along the lines of glibc memcpy.
+
+ * mpn/s390_64/aorslsh1_n.asm: New file.
+
+ * mpn/s390_64/mod_34lsub1.asm: New file.
+
+ * mpn/s390_64/sqr_diag_addlsh1.asm: New file.
+
+2011-10-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (s390): Rewrite support to handle known CPUs.
+ * config.guess: Recognise s390 CPUs.
+ * config.sub: Match s390 CPUs.
+ * acinclude.m4 (S390_PATTERN, S390X_PATTERN): New defines.
+
+2011-10-14 Torbjorn Granlund <tege@gmplib.org>
+
+ From Per Olofsson:
+ * mpn/generic/popham.c: Add __GMP_NOTHROW to make it match gmp.h.
+ * mpn/generic/gcd_1.c: Separate declarations and initialisers for the
+ benefit of C++.
+
+ * configure.in: AC_DEFINE HAVE_HOST_CPU_s390_zarch.
+ * longlong.h (s390): Use it.
+ (s390 umul_ppmm): Fix typo in pure C variant.
+
+2011-10-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h (s390): Put back an accidentally deleted #else.
+
+ * configure.in (s390): Unset extra_functions for s390x.
+
+2011-10-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/lshift.asm: Reduce register usage.
+ * mpn/s390_64/rshift.asm: Likewise.
+
+ * longlong.h (s390 umul_ppmm): With new-enough gcc, avoid asm.
+
+ From Andreas Krebbel:
+ * longlong.h (s390 umul_ppmm): Support 32-bit limbs with gcc using
+ 64-bit registers.
+ (s390 udiv_qrnnd): Likewise.
+
+2011-10-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (s390x): Pass -mzarch to gcc in 32-bit mode.
+
+ * longlong.h (s390x): Add __CLOBBER_CC for relevant asm patterns.
+ * mpn/generic/mod_1_1.c (s390x add_mssaaaa): Likewise.
+
+ * mpn/s390_64/copyd.asm: New file.
+
+2011-10-10 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd_appr.c: Deleted debugging code.
+
+ * tests/mpn/t-hgcd_appr.c (main): Added -v flag.
+ (hgcd_appr_valid_p): Increased margin of non-minimality for
+ divide-and-conquer algorithm. Display bit counts only if
+ -v is used.
+
+ * mpn/generic/hgcd_appr.c (submul): New (static) function.
+ (hgcd_matrix_apply): New function.
+ (mpn_hgcd_appr_itch): Account for divide-and-conquer algorithm.
+ (mpn_hgcd_appr): Implemented divide-and-conquer.
+
+2011-10-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_1.c (add_mssaaaa): Add s390x variant. Put arm code
+ inside __GNUC__.
+
+ * tune/time.c (STCK): Use proper memory constraint.
+
+ From Marco Trudel:
+ * tests/mpz/t-scan.c (check_ref): Fix loop end bound.
+
+2011-10-10 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h: (HGCD_APPR_THRESHOLD): New threshold.
+
+ * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Interface change.
+ Destroy inputs, let caller make working copies if needed.
+ (mpn_hgcd_appr_itch): Reduced scratch need.
+ * gmp-impl.h: Updated mpn_hgcd_appr prototype.
+ * tests/mpn/t-hgcd_appr.c (one_test): Make working copies for
+ hgcd_appr.
+ * tune/common.c (speed_mpn_hgcd_appr): Use SPEED_ROUTINE_MPN_HGCD_CALL.
+ * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): Deleted.
+
+2011-10-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/copyi.asm: New file.
+ * mpn/s390_64/lshift.asm: New file.
+ * mpn/s390_64/rshift.asm: New file.
+
+ * mpn/s390_64/add_n.asm: Rewrite using lmg/stmg.
+ * mpn/s390_64/sub_n.asm: Likewise.
+
+ * mpn/s390_64/invert_limb.asm: Save a callee-saves register less.
+
+ * tune/time.c (getrusage_backwards_p): Properly cast printed values.
+
+ * longlong.h (s390x): Put back UDItype casts to make gcc reloading use
+ right more for constants.
+ (s390x count_leading_zeros): Disable until we support z10 specifically.
+ (s390x add_ssaaaa): Remove algsi/slgsi until we support z10.
+
+2011-10-09 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd_matrix.c (mpn_hgcd_matrix_adjust): Declare
+ matrix argument const.
+
+2011-10-08 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Adjusted the
+ allowed margin of non-minimality for hgcd_appr.
+
+ * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Fixed handling of
+ extra_bits, starting at zero, to ensure that we don't produce too
+ small remainders. Added a final reduction loop when we we
+ otherwise terminate with extra_bits > 0, to make the returned
+ remainders closer to minimal.
+
+2011-10-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h (s390): Add 32-bit zarch umul_ppmm and udiv_qrnnd.
+ (s390): Overhaul 32-bit and 64-bit code.
+
+2011-10-07 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.h (speed_mpn_hgcd_appr): New prototype.
+ (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): New macro.
+ * tune/common.c (speed_mpn_hgcd_appr): New function.
+ * tune/speed.c (routine): Added mpn_hgcd_appr.
+
+ * tests/mpn/t-hgcd_appr.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-hgcd_appr.
+
+ * configure.in (gmp_mpn_functions): Added hgcd_step and hgcd_appr.
+
+ * gmp-impl.h: Added prototypes for mpn_hgcd_step,
+ mpn_hgcd_appr_itch and mpn_hgcd_appr.
+
+ * mpn/generic/hgcd_appr.c: New file.
+
+ * mpn/generic/hgcd_step.c: New file, extracted from hgcd.c.
+ (mpn_hgcd_step): Renamed, from...
+ * mpn/generic/hgcd.c (hgcd_step): ...old name. Renamed and moved
+ to hgcd_step.c.
+ (hgcd_hook): Also moved to hgcd_step.c.
+ (mpn_hgcd): Updated for hgcd_step renaming.
+
+2011-10-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/invert_limb.asm: New file.
+
+2011-10-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/s390_64/submul_1.asm: New file.
+ * mpn/s390_32/esame/submul_1.asm: New file.
+
+ * mpn/generic/mulmid.c (mpn_mulmid): Move a TMP_DECL to block start.
+
+ * mpn/Makefile.am (TARG_DIST): Add s390_32 and s390_64, remove s390 and
+ z8000x.
+
+ * doc/gmp.texi (Custom Allocation): Rephrase a paragraph.
+
+ * demos/factorize.c: Run 25 Miller-Rabin tests.
+
+ * mpz/nextprime.c: Run 25 mpz_millerrabin tests (was 10).
+
+2011-10-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Support s390x.
+
+ * longlong.h: Add support for 64-bit s390x.
+
+ * mpn/s390_64: New directory.
+ * mpn/s390_64/add_n.asm: New file.
+ * mpn/s390_64/sub_n.asm: New file.
+ * mpn/s390_64/mul_1.asm: New file.
+ * mpn/s390_64/addmul_1.asm: New file.
+ * mpn/s390_64/bdiv_dbm1c.asm: New file.
+ * mpn/s390_64/gmp-mparam.h: New file, taken from x86_64.
+
+ * mpn/s390_32: Directory renamed from mpn/s390.
+ * mpn/s390_32/gmp-mparam.h: New file, taken from x86_64.
+ * mpn/s390_32/esame/add_n.asm: New file.
+ * mpn/s390_32/esame/sub_n.asm: New file.
+ * mpn/s390_32/esame/mul_1.asm: New file.
+ * mpn/s390_32/esame/addmul_1.asm: New file.
+ * mpn/s390_32/esame/bdiv_dbm1c.asm: New file.
+
+2011-10-03 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-mulmid.
+ * tests/mpn/t-mulmid.c: New file.
+
+ mulmid-related assembly for x86_64, from David Harvey:
+ * mpn/asm-defs.m4 (define_mpn): Added [add,sub]_err[1,2,3]_n and
+ mulmid_basecase. Also use m4_not_for_expansion on the
+ corresponding OPERATION_* symbols.
+ * mpn/x86_64/aors_err1_n.asm: New file.
+ * mpn/x86_64/aors_err2_n.asm: Likewise.
+ * mpn/x86_64/aors_err3_n.asm: Likewise.
+ * mpn/x86_64/mulmid_basecase.asm: Likewise.
+ * mpn/x86_64/core2/aors_err1_n.asm: Likewise.
+ * mpn/x86_64/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): New value.
+ * mpn/x86_64/core2/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): Likewise.
+
+ Tuning of mulmid, from David Harvey:
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added mulmid.c
+ mulmid_n.c toom42_mulmid.c.
+ * tune/speed.h: Prototypes for mulmid-related functions.
+ (struct speed_params): Increased max number of sources to 5.
+ (SPEED_ROUTINE_MPN_BINARY_ERR_N_CALL): New macro.
+ (SPEED_ROUTINE_MPN_BINARY_ERR1_N): Likewise.
+ (SPEED_ROUTINE_MPN_BINARY_ERR2_N): Likewise.
+ (SPEED_ROUTINE_MPN_BINARY_ERR3_N): Likewise.
+ (SPEED_ROUTINE_MPN_MULMID): Likewise.
+ (SPEED_ROUTINE_MPN_MULMID_N): Likewise.
+ (SPEED_ROUTINE_MPN_TOOM42_MULMID): Likewise.
+ * tune/common.c (mpn_[add,sub]_err[1,2,3]_n): New functions.
+ (speed_mpn_mulmid_basecase): New function.
+ (speed_mpn_mulmid): New function.
+ (speed_mpn_mulmid_n): New function.
+ (speed_mpn_toom42_mulmid): New function.
+ * tune/speed.c (routine): Added mpn_[add,sub]_err[1,2,3]_n,
+ mpn_mulmid_basecase, mpn_toom42_mulmid, mpn_mulmid_n, and
+ mpn_mulmid.
+ * tune/tuneup.c (mulmid_toom42_threshold): New threshold variable.
+ (tune_mulmid): New function.
+ (all): Call tune_mulmid.
+
+ Testing of mulmid, from David Harvey:
+ * tests/refmpn.c (AORS_ERR1_N): New macro.
+ (refmpn_add_err1_n, refmpn_sub_err1_n): New functions.
+ (AORS_ERR2_N): New macro.
+ (refmpn_add_err2_n, refmpn_sub_err2_n): New functions.
+ (AORS_ERR3_N): New macro.
+ (refmpn_add_err3_n, refmpn_sub_err3_n): New functions.
+ (refmpn_mulmid_basecase): New function.
+ (refmpn_toom42_mulmid): New function, wrapper for
+ refmpn_mulmid_basecase.
+ (refmpn_mulmid_n): Likewise.
+ (refmpn_mulmid): Likewise.
+ * tests/tests.h: Prototypes for new functions.
+ * tests/devel/try.c (NUM_SOURCES): Increased to 5.
+ (struct try_t): Use NUM_SOURCES and NUM_DESTS constants.
+ (SIZE_4, SIZE_6, SIZE_DIFF_PLUS_3, SIZE_ODD): New constants.
+ (OVERLAP_NOT_DST2): New flag.
+ (param_init): New mulmid-related operation types.
+ (mpn_toom42_mulmid_fun): New function.
+ (choice_array): Added mulmid-related entries.
+ (overlap_array): Extended for larger NUM_SOURCES.
+ (OVERLAP_COUNT): Handle OVERLAP_NOT_DST2.
+ (call): Support mulmid-related functions.
+ (pointer_setup): Handle SIZE_4, SIZE_6, and SIZE_DIFF_PLUS_3.
+ (SIZE_ITERATION): Handle SIZE_ODD.
+ (SIZE2_FIRST): Handle SIZE_CEIL_HALF.
+ (SIZE2_LAST): Likewise.
+
+ Implementation of mulmid, from David Harvey:
+ * mpn/generic/add_err1_n.c (mpn_add_err1_n): New file and function.
+ * mpn/generic/add_err2_n.c (mpn_add_err2_n): Likewise.
+ * mpn/generic/add_err3_n.c (mpn_add_err3_n): Likewise.
+ * mpn/generic/sub_err1_n.c (mpn_sub_err1_n): Likewise.
+ * mpn/generic/sub_err2_n.c (mpn_sub_err2_n): Likewise.
+ * mpn/generic/sub_err3_n.c (mpn_sub_err3_n): Likewise.
+ * mpn/generic/mulmid_basecase.c (mpn_mulmid_basecase): Likewise.
+ * mpn/generic/mulmid_n.c (mpn_mulmid_n): Likewise.
+ * mpn/generic/toom42_mulmid.c (mpn_toom42_mulmid): Likewise.
+ * configure.in (gmp_mpn_functions): Added mulmid-related
+ functions.
+ (GMP_MULFUNC_CHOICES): Handle aors_err1_n, aors_err2_n, and
+ aors_err3_n.
+ * gmp-impl.h: Added prototypes for mulmid functions.
+ (MPN_TOOM42_MULMID_MINSIZE): New constant.
+ (MULMID_TOOM42_THRESHOLD): New threshold.
+ (mpn_toom42_mulmid_itch): New macro.
+
+2011-10-03 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tune-gcd-p.c (main): Fixed broken loop conditions.
+
+2011-09-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sh/sh2/submul_1.asm: Make this old submul_1 implementation
+ actually compute intended function.
+
+ * longlong.h (SH): Recognise predefs for all SH processors as defined
+ by current gcc versions.
+
+2011-09-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sh: Migrate files to '.asm'.
+ * configure.in: Recognise sh3 and sh4.
+
+2011-09-21 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (mpz_class::swap): New function.
+ (mpq_class::swap): Likewise.
+ (mpf_class::swap): Likewise.
+ (swap): New function.
+ * tests/cxx/t-assign.cc: Test the above.
+ * doc/gmp.texi (swap): Document the above.
+
+2011-08-21 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/cxx/t-ops2.cc: check mul-div by 2.
+
+ * gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p).
+ (__gmp_binary_lshift): Move before multiplication. Optimize x << 0.
+ (__gmp_binary_rshift): Move before division. Optimize x >> 0.
+ (__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer.
+ (__gmp_binary_minus): Optimize x - 0 and 0 - x.
+ Rewrite rational - integer.
+ (__gmp_binary_multiplies): Optimize x * 2^n.
+ (__gmp_binary_divides): Optimize x / 2^n.
+ (__gmp_binary_*): Deduplicate code for symmetric operations.
+
+2011-08-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for
+ one more digit.
+
+2011-08-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpf/sub.c: Fix typo in copy condition. Delay an allocation.
+
+2011-08-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (LIMBS_PER_DIGIT_IN_BASE): Fix typo.
+
+2011-08-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (DIGITS_IN_BASEGT2_FROM_BITS): New.
+ (DIGITS_IN_BASE_FROM_BITS): Compute more accurate result.
+ (MPN_SIZEINBASE): Use DIGITS_IN_BASEGT2_FROM_BITS.
+
+ * tests/rand/t-lc2exp.c (check_bigc): Call abort after reporting error.
+
+2011-08-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/out_str.c (mpz_out_str): Reinsert accidentally deleted str_size
+ adjustment.
+
+ * gmp-impl.h (DIGITS_IN_BASE_FROM_BITS): Simplify, also avoiding
+ overflow for base 2.
+
+2011-08-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (struct bases): Add log2b and logb2 field, remove
+ chars_per_limb_exactly field.
+ (DIGITS_IN_BASE_FROM_BITS): New.
+ (DIGITS_IN_BASE_PER_LIMB): New.
+ (LIMBS_PER_DIGIT_IN_BASE): New.
+ * gen-bases.c: Generate log2b and logb2 fields; do not generate
+ chars_per_limb_exactly field.
+ * mpf/get_str.c mpf/out_str.c mpf/set_str.c mpn/generic/get_str.c
+ mpn/generic/sizeinbase.c mpq/get_str.c mpz/inp_str.c mpz/out_str.c
+ mpz/set_str.c printf/doprntf.c tune/speed.h tune/tuneup.c:
+ Use new macros.
+
+2011-08-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * dumbmp.c (mpz_root): Reinsert accidentally removed line.
+
+2011-08-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * dumbmp.c (mpz_tdiv_qr): Correctly handle dividend value being equal
+ to divisor value.
+ (mpz_root): Create reasonable starting approximation.
+ (mpz_sqrt): New function.
+ (mpz_mul_2exp): Add faster block shifting code, disabled for now.
+
+2011-07-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/arm/invert_limb.asm: Swap around some registers to silence 'as'
+ warnings.
+
+2011-07-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q): Get mpn_sub_1 size
+ argument right.
+
+2011-07-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/misc/t-locale.c: Disable test for mingw.
+
+ * configure.in (x86_64 *-*-mingw*): Handle also cygwin here; clear out
+ extra_functions_64.
+
+2011-07-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Don't print newline in x86 cpuid function.
+ Rewrite x86-64 cpu recognition asm code to work under Windoze.
+
+2011-06-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * acinclude.m4 (GMP_ASM_RODATA): Fix typo in 2011-04-20 change.
+
+ * configure.in: Surround tr ranges with [] for portability.
+
+2011-05-25 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tune-gcd-p.c (search): New function to search for minimum.
+ (main): Replaced slow linear search.
+
+2011-05-24 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/Makefile.am (EXTRA_PROGRAMS): Added tune-gcd-p. Also added
+ related automake variables.
+
+ * mpn/Makefile.am (tune-gcd-p): Deleted target.
+
+ * tune/tune-gcd-p.c: New file, extracted from mpn/generic/gcd.c
+ and updated.
+ * mpn/generic/gcd.c: Deleted the corresponding code, including
+ main function.
+
+2011-05-23 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/jacobi.c (mpz_jacobi): Simplified by swapping operands when
+ needed, to get asize >= bsize. Use the reciprocity law generalized
+ to work when one operand is even.
+
+2011-05-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/jacobi.c (mpz_jacobi): Another bugfix for the asize == 1
+ case. Sometimes, powers of two in b were taken into account twice.
+
+2011-05-21 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/jacobi.c (mpz_jacobi): The handling of asize == 1 was
+ broken. Rewrote it.
+
+ * tests/mpz/t-jac.c (mpz_nextprime_step): Sanity check that prime
+ candidate and step has no common factor.
+ (check_data): Added some test cases related to the asize == 1 case
+ in mpz_jacobi.
+
+2011-05-20 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h: Jacobi-related prototypes.
+
+ * configure.in (gmp_mpn_functions): Added jacobi_2, jacobi,
+ hgcd2_jacobi, hgcd_jacobi, and removed jacobi_lehmer.
+
+ * mpz/jacobi.c (STRIP_TWOS): Deleted macro.
+ (mpz_jacobi): Partially rewritten, to no longer makes the A
+ operand odd. Use new mpn_jacobi_n.
+
+ * mpn/generic/jacobi_lehmer.c: Deleted file.
+
+ * mpn/generic/jacobi.c (mpn_jacobi_n): New subquadratic jacobi
+ implementation. Supersedes jacobi_lehmer.c.
+
+ * mpn/generic/hgcd_jacobi.c (mpn_hgcd_jacobi): New file and
+ function. A copy of mpn_hgcd, using mpn_hgcd2_jacobi, and with calls to
+ mpn_jacobi_update when appropriate.
+
+ * mpn/generic/jacobi_2.c (mpn_jacobi_2): New file. Extracted from
+ jacobi_lehmer.c.
+ * mpn/generic/hgcd2_jacobi.c (mpn_hgcd2_jacobi): Likewise.
+
+ * mpn/generic/hgcd.c (hgcd_hook): Avoid using NULL.
+
+2011-05-19 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/hgcd_lehmer.c (__gmpn_hgcd_itch): Don't rename symbols for
+ the functions moved to hgcd_matrix.c.
+
+ * configure.in (gmp_mpn_functions): Added hgcd_matrix.
+
+ * mpn/generic/hgcd.c (hgcd_matrix_update_1): Deleted. Several other
+ helper functions moved to hgcd_matrix.c, see below.
+ (hgcd_hook): New function.
+ (hgcd_step): Simplified, using mpn_gcd_subdiv_step and hgcd_hook.
+
+ * mpn/generic/hgcd_matrix.c: New file.
+ (mpn_hgcd_matrix_init): Moved here, from hgcd.c.
+ (mpn_hgcd_matrix_update_q): Likewise.
+ (mpn_hgcd_matrix_mul_1): Likewise.
+ (mpn_hgcd_matrix_mul): Likewise.
+ (mpn_hgcd_matrix_adjust): Likewise.
+
+ * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): New
+ argument s, for use by hgcd.
+ * gmp-impl.h (mpn_gcd_subdiv_step): Update declaration.
+
+ * mpn/generic/gcd.c (mpn_gcd): Pass s = 0 to mpn_gcd_subdiv_step.
+ * mpn/generic/gcdext.c (mpn_gcdext): Likewise. Also added an ASSERT.
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
+ (mpn_gcdext_hook): Added some ASSERTs.
+ * mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): Likewise.
+
+2011-05-17 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (mpn_gcd, mpn_gcdext): Document input requirements:
+ Must have un >= vn > 0, and V normalized.
+ * mpn/generic/gcdext.c (mpn_gcdext): Added ASSERT for input
+ normalization.
+ * mpn/generic/gcd.c (mpn_gcd): Added ASSERTs for input
+ requirements.
+
+2011-05-15 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (operator<<): Dedup.
+ * tests/cxx/t-iostream.cc: Test on compound types.
+
+ * gmpxx.h (__gmp_binary_expr): Let things happen in place: c=(a+b)/2.
+
+2011-05-10 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_unary_expr): Let things happen in place: c=-(a+b).
+ (operator>>): Clean the commenting out.
+ * tests/cxx/t-iostream.cc: New file.
+ * tests/cxx/Makefile.am: Added t-iostream.
+
+2011-05-10 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (mpz_gcd): Document that gcd(0,0) = 0.
+ (mpz_gcdext): Document range for cofactors.
+
+2011-05-09 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/gcdext.c (mpz_gcdext): Increased sp allocation to bsize+1 limbs.
+ * doc/gmp.texi (mpn_gcdext): Fixed documentation of allocation
+ requirements; one extra limb is still needed for S.
+
+2011-05-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
+ * mpn/x86_64/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define.
+
+2011-05-08 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h: Replace unsigned long with mp_bitcnt_t in many places.
+ * doc/gmp.texi: Likewise.
+
+2011-05-06 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (mpz_class): Make constructor from mp[qf]_class explicit.
+ (mpq_class): Make constructor from mpf_class explicit.
+ * doc/gmp.texi: Document the above.
+ * NEWS: Likewise, and mention the EOF istream fix.
+ * tests/cxx/t-mix.cc: New file.
+ * tests/cxx/Makefile.am: Added t-mix.
+
+ * tests/cxx/t-assign.cc: Minor tweak.
+ * tests/cxx/t-misc.cc: Likewise.
+
+ * gmpxx.h (__gmp_resolve_temp): Remove.
+ (__gmp_set_expr): Remove some overloads.
+ (mpq_class): mpz_init_set the numerator and denominator instead of
+ mpq_init + mpq_set.
+ (mpz_class): Dedup the string constructors.
+ (mpq_class): Likewise.
+
+ * tests/cxx/t-ops3.cc: New file.
+ * tests/cxx/Makefile.am: Added t-ops3.
+
+2011-05-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/gcdext.c: Correct sgn computation.
+ Use MPZ_REALLOC.
+
+2011-05-05 Marc Glisse <marc.glisse@inria.fr>
+
+ * mpn/x86_64/fat/fat.c: Update for Sandy Bridge.
+ * config.guess: warning to keep it in sync with fat.c.
+
+2011-05-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat_entry.asm (PIC_OR_DARWIN): New symbol. Use it to
+ work around Darwin problems.
+
+2011-05-04 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/gcdext.c (mpz_gcdext): Reduced temporary allocations. Use
+ mpz_divexact when computing the second cofactor.
+
+2011-05-03 David Harvey <dmharvey@cims.nyu.edu>
+
+ * configure.in: make invert_limb_table work correctly with
+ --disable-assembly (from Niels Möller)
+
+2011-05-02 Marc Glisse <marc.glisse@inria.fr>
+
+ * .bootstrap: libtoolize doesn't need -c.
+
+ * configfsf.guess: Update to version of 2011-02-02.
+ * configfsf.sub: Update to version of 2011-03-23.
+
+2011-05-02 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/gcdext.c (mpz_gcdext): Don't allocate extra limbs at the end
+ of mpn_gcdext parameters.
+
+ * doc/gmp.texi (mpn_gcdext): Updated doc.
+
+2011-05-01 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Fixed ASSERT.
+
+2011-04-30 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmp-h.in (mpz_cdiv_q_2exp): Use mp_bitcnt_t to match the definition
+ and the documentation.
+ (mpz_remove): Likewise.
+ (mpf_eq): Likewise.
+
+ * ltmain.sh: Remove.
+ * .bootstrap: Let libtoolize generate ltmain.sh.
+
+ * tests/cxx/t-ops2.cc: Add a couple tests.
+ * tests/cxx/t-rand.cc: Likewise.
+
+ * doc/gmp.texi (mpf_urandomb): Explicit the fact that it does not
+ change the precision.
+
+ * gmp-h.in (__GMP_EXTERN_INLINE): Recent g++ uses gnu_inline.
+
+2011-04-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (x86_64): Support bobcat specifically.
+ (x86): Match bobcat and bulldozer, handle like k10.
+
+2011-04-28 David Harvey <dmharvey@cims.nyu.edu>
+
+ * README.HG: update autotools version numbers.
+
+2011-04-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (speed_cyclecounter): Always use PIC variant when
+ compiled with Apple's GCC.
+
+ * mpn/x86/darwin.m4 (LEA): Complete rewrite.
+ (m4append): New macro.
+
+2011-04-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc32/sparc-defs.m4 (changecom): Don't redefine '!' as it
+ interferes with expressions.
+
+2011-04-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * acinclude.m4 (GMP_ASM_RODATA): Make 'foo' larger to avoid clang
+ problems.
+
+2011-04-12 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/invert_limb.asm [PIC]: Declare mpn_invert_limb_table
+ as .protected.
+
+2011-04-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/invert_limb.asm: Use deflit for Darwin bug workaround.
+ Undo 2011-03-28 change.
+
+ * mpn/asm-defs.m4 (define_mpn): Use deflit.
+
+2011-04-10 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/asm-defs.m4 (define_mpn): Added invert_limb_table.
+
+ * configure.in: Add invert_limb_table to extra_functions_64 on
+ x86_64.
+
+ * mpn/x86_64/invert_limb.asm: Changed references from approx_tab
+ mpn_invert_limb_table.
+
+ * mpn/x86_64/invert_limb_table.asm (mpn_invert_limb_table): New
+ file. Extracted approximation table from invert_limb.asm, renamed
+ and made global.
+
+2011-03-30 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/div_qr_2u_pi1.asm: New file.
+
+ * configure.in (gmp_mpn_functions): Add div_qr_2u_pi1.
+
+ * gmp-impl.h (mpn_div_qr_2u_pi1): Declare.
+
+ * mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Moved to
+ separate file, from...
+ * mpn/generic/div_qr_2.c: ... old location.
+
+ * mpn/generic/div_qr_2n_pi1.c: Renamed file, from...
+ * mpn/generic/div_qr_2_pi1_norm.c: ...old name.
+ * mpn/x86_64/div_qr_2n_pi1.asm: Renamed file, from...
+ * mpn/x86_64/div_qr_2_pi1_norm.asm: ...old name.
+
+ * gmp-impl.h (mpn_div_qr_2n_pi1): Use new name in declaration.
+ * tune/speed.h (speed_mpn_div_qr_2n): Likewise.
+ (speed_mpn_div_qr_2u): Likewise.
+
+ * tune/tuneup.c (tune_div_qr_2): Use new name speed_mpn_div_qr_2n.
+
+ * tune/speed.c (routine): Use new names mpn_div_qr_2n and
+ mpn_div_qr_2u, also on the command line.
+
+ * tune/common.c (speed_mpn_div_qr_2n): Renamed, from...
+ (speed_mpn_div_qr_2_norm): ... old name.
+ (speed_mpn_div_qr_2u): Renamed, from...
+ (speed_mpn_div_qr_2_unnorm): ... old name.
+
+ * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2n_pi1): Renamed,
+ from...
+ (mpn_div_qr_2_pi1_norm): ...old name.
+ * mpn/x86_64/div_qr_2_pi1_norm.asm: Likewise.
+
+ * mpn/generic/div_qr_2.c (mpn_div_qr_2n_pi2): Renamed, from...
+ (mpn_div_qr_2_pi2_norm): ... old name.
+ (mpn_div_qr_2u_pi1): Renamed, from...
+ (mpn_div_qr_2_pi1_unnorm): ... old name.
+ (mpn_div_qr_2): Call functions using new names.
+
+ * mpn/asm-defs.m4: Renamed div_qr_2-functions to new names.
+
+2011-03-29 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/div_qr_2_pi1_norm.asm: Updated to use a separate rp
+ argument.
+
+ * gmp-impl.h (mpn_div_qr_2_pi1_norm): Updated declaration.
+ * gmp-h.in (mpn_div_qr_2): Likewise.
+
+ * tests/mpn/t-div.c (main): Adapted to new mpn_div_qr2 interface.
+ * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_2): Likewise.
+
+ * mpn/generic/div_qr_2.c (mpn_div_qr_2_pi2_norm): Added rp
+ argument. Don't clobber the input dividend.
+ (mpn_div_qr_2_pi1_unnorm): Likewise.
+ (mpn_div_qr_2): Likewise.
+ * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Likewise.
+
+2011-03-29 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86/k7/invert_limb.asm: Use mov rather than push and pop.
+ Earlier load of divisor from stack.
+
+2011-03-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/invert_limb.asm: Protect movzwl register parameters from
+ being interpreted as m4 macro parameters.
+
+2011-03-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/div_qr_2_pi1_norm.asm: Copied optimized inner loop
+ from divrem_2.asm.
+
+ * mpn/x86_64/div_qr_2_pi1_norm.asm: First working, but poorly
+ optimized, implementation.
+
+ * mpn/asm-defs.m4 (define_mpn): Added div_qr_2_pi[12]_*norm.
+
+ * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Moved
+ to separate file, from...
+ * mpn/generic/div_qr_2.c: ... old location.
+
+ * gmp-impl.h (mpn_div_qr_2_pi1_norm): Declare.
+
+ * configure.in (gmp_mpn_functions): Added div_qr_2_pi1_norm.
+
+2011-03-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (powerpc): Reinsert lost AIX cpu_path 32-bit handling.
+ Reinsert lost linux/bsd cpu_path handling.
+
+ * mpn/generic/mod_1_1.c: Disable powerpc asm for _LONG_LONG_LIMB.
+ * mpn/generic/div_qr_2.c: Likewise.
+
+ * mpn/generic/div_qr_2.c: Use asm just for gcc.
+ Make powerpc add_sssaaaa work for 32-bit case, and use less strict
+ constraints.
+
+2011-03-21 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (div_qr_2_pi2_threshold): New global variable.
+ (tune_div_qr_2): New function.
+ (all): Call tune_div_qr_2.
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added div_qr_2.c.
+
+ * gmp-impl.h (DIV_QR_2_PI2_THRESHOLD): Setup for tuning.
+
+ New 4/2 division loop, based on Torbjörn's work:
+ * mpn/generic/div_qr_2.c (add_sssaaaa, add_csaac): New macros.
+ (udiv_qr_4by2): New macro.
+ (invert_4by2): New function.
+ (mpn_div_qr_2_pi2_norm): New function.
+ (DIV_QR_2_PI2_THRESHOLD): New threshold.
+ (mpn_div_qr_2_pi1_norm): Renamed, from...
+ (mpn_div_qr_2_norm): ... old name.
+ (mpn_div_qr_2_pi1_unnorm): Renamed, from...
+ (mpn_div_qr_2_unnorm): ... old name.
+ (mpn_div_qr_2): Use mpn_div_qr_2_pi2_norm for large enough
+ normalized divisors.
+
+ * gmp-impl.h (udiv_qr_3by2): Avoid a copy.
+
+2011-03-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (hppa): Under linux, treat 64-bit processors as if they
+ were 32-bit processors.
+
+ * mpn/generic/addcnd_n.c: New file.
+ * mpn/asm-defs.m4 (define_mpn): Add addcnd_n and subcnd_n.
+ * configure.in (gmp_mpn_functions): Add addcnd_n.
+ * gmp-impl.h (mpn_addcnd_n): Declare.
+
+ * mpn/generic/subcnd_n.c: Combine nails and non-nails functions.
+
+ * gmp-impl.h (invert_pi1): Prepend _ to local variables, protect
+ parameters within () where necessary.
+
+ * mpn/asm-defs.m4 (define_mpn): Add div_qr_2.
+ * configure.in (gmp_mpn_functions): Reinsert mercurial-bug-removed
+ line.
+
+2011-03-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (powerpc): Add cpu_path for all three ABIs.
+ Rename "aix64" to "mode64" for consistency.
+
+2011-03-16 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_binary_not_equal): Remove, use !__gmp_binary_equal.
+ (__gmp_binary_less_equal): Remove, use !__gmp_binary_greater.
+ (__gmp_binary_greater_equal): Remove, use !__gmp_binary_less.
+ * tests/cxx/t-ops2.cc: Typo.
+
+2011-03-20 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c (speed_mpn_div_qr_2_norm): New function.
+ (speed_mpn_div_qr_2_unnorm): New function.
+ * tune/speed.c (routine): Recognize above functions.
+ * tune/speed.h: Declarations for above functions.
+ (SPEED_ROUTINE_MPN_DIV_QR_2): New macro.
+
+ * tests/mpn/t-div.c (main): Added tests for mpn_divrem_2 and
+ mpn_div_qr_2.
+
+ * mpn/generic/div_qr_2.c (mpn_div_qr_2): New file and function.
+ Intended to eventually replace divrem_2.
+ * configure.in (gmp_mpn_functions): Add div_qr_2.
+
+2011-03-16 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__gmp_set_expr): Remove broken declarations.
+
+2011-03-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/fac_ui.c (mpz_fac_ui): Use MPZ_REALLOC for standard, conditional
+ reallocation.
+
+2011-03-19 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/divrem_2.c (mpn_divrem_2): Fixed comment and assert
+ regarding q and n overlap.
+
+2011-03-16 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__mpz_set_ui_safe): New inline function.
+ (__mpz_set_si_safe): Likewise.
+ (__GMPXX_TMPZ_UI): Use the new function.
+ (__GMPXX_TMPZ_SI): Likewise.
+ (__GMPXX_TMPQ_UI): Likewise.
+ (__GMPXX_TMPQ_SI): Likewise.
+ * tests/cxx/t-ops2.cc: test converting 0 to stack mpq_t.
+
+2011-03-15 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h (__GMPXX_TMPQ_UI): New macro.
+ (__GMPXX_TMPQ_SI): New macro.
+ (struct __gmp_binary_multiplies): Rewrite, using the new macros.
+ (struct __gmp_binary_divides): Likewise.
+
+ * gmpxx.h (__GMPZ_ULI_LIMBS): Rewrite.
+ * tests/cxx/t-ops2.cc: test converting ULONG_MIN to stack mpq_t.
+
+2011-03-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_16pts.c: Remove ambiguity.
+
+2011-03-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mul): Set tuning min size considering print skew.
+
+ * doc/gmp.texi: Make reference to "Formatted I/O" chapters from type
+ specific I/O sections.
+
+ * mpn/alpha/add_n.asm: Add _nc entry point.
+ * mpn/alpha/sub_n.asm: Likewise.
+ * mpn/mips64/add_n.asm: Likewise.
+ * mpn/mips64/sub_n.asm: Likewise.
+ * mpn/sparc64/ultrasparc1234/add_n.asm: Likewise.
+ * mpn/sparc64/ultrasparc1234/sub_n: Likewise.
+
+2011-03-13 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/cxx/t-ops2.cc: New file.
+ * tests/cxx/Makefile.am: Added t-ops2.
+
+2011-03-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom32_mul.c (mpn_toom32_mul): Make 'hi' be limb-sized
+ for better code.
+
+ * gmp-impl.h (MPN_IORD_U): Handle x86_64 as well as x86_32. Generate
+ no code for incrementing by constant 0.
+
+2011-03-12 Marc Glisse <marc.glisse@inria.fr>
+
+ * gmpxx.h: Rename __GMPXX_TMP_* to __GMPXX_TMPZ_*. Use in more places.
+
+2011-03-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/rshift.asm: Accept/return values correctly also for
+ 32-bit ABI.
+ * mpn/powerpc64/lshift.asm: Likewise.
+
+ * tune/powerpc.asm: Use powerpc syntax, not power syntax.
+
+ * tune/common.c (speed_udiv_qrnnd_preinv1, etc): Remove.
+ * tune/speed.c (routine): Remove udiv_qrnnd_preinv1, etc.
+
+2011-03-12 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/cxx/t-istream.cc: Restrict mpq test in t-istream -s.
+
+ * gmpxx.h: Remove leftover #undefs.
+
+2011-03-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (udiv_qrnnd_preinv1, udiv_qrnnd_preinv2,
+ udiv_qrnnd_preinv2gen): Remove obsolete macros.
+ (udiv_qrnnd_preinv): New name for udiv_qrnnd_preinv3.
+
+2011-03-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h: Declare many mpn_{sub,add}lsh*_n_ip[12] functions/macros.
+ * mpn/generic/toom_interpolate_5pts.c: Use mpn_sublsh1_n_ip1.
+
+ * tests/devel/try.c: Tests for {add,sub}lsh*_n_ip[12].
+ * tests/refmpn.c: New reference for mpn_{add,sub}lsh*_n_ip[12].
+ * tests/tests.h: Declarations for reference functions above.
+
+ * tune/common.c: New speed_mpn_{add,sub}lsh*_n_ip[12] functions.
+ * tune/speed.h: Prototypes for functions above.
+ * tune/speed.c: Support for mpn_{add,sub}lsh*_n_ip[12].
+
+ * mpn/x86/k7/sublsh1_n.asm: Replaced generic sublsh1 code with faster _ip1.
+ * mpn/x86/atom/sublsh1_n.asm: Changed PROLOGUE accordingly.
+
+ * configure.in: Define HAVE_NATIVE_mpn_addlsh*_n*_ip[12].
+ * mpn/asm-defs.m4: Declare mpn_addlsh*_n*_ip[12].
+
+2011-03-10 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/cxx/t-istream.cc: Explicit conversion to streampos.
+
+2011-03-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/sse2/mul_basecase.asm: Suppress wind-down rp updates.
+
+ * Move new aorrlsh_n.asm to new k8 dir. Revert
+ mpn/x86_64/aorrlsh_n.asm.
+ * configure.in: Setup path for new k8 directory.
+
+2011-03-10 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/pentium4/sse2/bdiv_dbm1c.asm: New file, was in atom.
+ * mpn/x86/atom/sse2/bdiv_dbm1c.asm: Grab file above.
+
+2011-03-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorrlsh_n.asm: Complete rewrite.
+
+ * mpn/x86_64/core2/aorrlsh_n.asm: New file, grabbing another asm file.
+
+2011-03-09 Marc Glisse <marc.glisse@inria.fr>
+
+ * tests/cxx/t-ostream.cc: Use bool instead of int.
+ * tests/cxx/t-istream.cc: Likewise.
+ * tests/cxx/t-misc.cc: Likewise.
+
+ * cxx/ismpznw.cc: Don't clear eofbit.
+ * cxx/ismpq.cc: Likewise.
+ * cxx/ismpf.cc: Likewise.
+ * tests/cxx/t-istream.cc: Test accordingly.
+
+2011-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/sse2/bdiv_dbm1c.asm: New file.
+
+2011-03-09 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/gmp.texi: Remove void return type from constructors. Document
+ explicit constructors. Document mpf_class::mpf_class(mpf_t).
+
+2011-03-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/sse2/sqr_basecase.asm: Postponed pushes. Cleaned
+ outer loop exit.
+
+2011-03-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/gcd_1.asm: Workaround Oracle assembler bug.
+
+ * mpn/x86/atom/sse2/mul_basecase.asm: Replace addmul_1 loops.
+ Tweak outer loop rp updates.
+
+2011-03-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/sse2/sqr_basecase.asm: New file.
+
+2011-03-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bdiv_dbm1c.asm: Write proper feed-in code.
+
+2011-03-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/addmul_2.asm: Rewrite for linear performance.
+
+2011-03-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_1.c (add_mssaaaa): Canonicalise layout. Add arm
+ variant. Enable sparc64 code and powerpc code (the latter for 32-bit
+ and 64-bit).
+
+ * mpn/generic/sqrtrem.c (mpn_dc_sqrtrem): Use mpn_addlsh1_n.
+
+ * gmp-impl.h (mpn_addlsh_nc, mpn_rsblsh_nc): Declare.
+ * mpn/asm-defs.m4: Likewise.
+
+ * mpn/x86_64/coreisbr/aorrlsh_n.asm: Disable mpn_rsblsh_n due to
+ carry-in issues.
+ * mpn/x86_64/coreinhm/aorrlsh_n.asm: Likewise.
+ * mpn/x86_64/coreisbr/aorrlsh2_n.asm: Likewise.
+
+2011-03-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/mod_1_1.c (add_mssaaaa): For x86 and x86_64, treat m
+ as in output operand only. Added sparc32 implementation. Also
+ added #if:ed out attempts at sparc64 and powerpc64.
+
+ * tune/tuneup.c (tune_mod_1): Record result of MOD_1_1P_METHOD
+ measurement for use by mpn_mod_1_tune. And omit measurement if
+ mpn_mod_1_1p is native assembly code.
+
+ * mpn/generic/mod_1.c (mpn_mod_1_1p) [TUNE_PROGRAM_BUILD]: Macro
+ to check mod_1_1p_method and call the right function.
+ (mpn_mod_1_1p_cps) [TUNE_PROGRAM_BUILD]: Likewise.
+
+ * gmp-impl.h (MOD_1_1P_METHOD) [TUNE_PROGRAM_BUILD]: Define macro.
+ (mod_1_1p_method) [TUNE_PROGRAM_BUILD]: Declare variable.
+
+2011-03-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/coreinhm/aorrlsh_n.asm: New file.
+ * mpn/x86_64/coreisbr/aorrlsh_n.asm: New file.
+
+2011-03-01 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Eliminated a neg and
+ two mov instructions.
+
+ * mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
+ computation, analogous to recent x86_64/mod_1_1.asm changes.
+ (mpn_mod_1_1p): Corresponding changes. Don't shift b.
+
+ * mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p_cps): Use udiv_rnnd_preinv
+ rather than udiv_rnd_preinv.
+ (mpn_mod_1s_4p): Likewise.
+
+2011-03-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/pentium4/sse2/mul_1.asm: Swap entry insns to share more code
+ between entry points.
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
+
+ * mpz/divegcd.c: Rewrite, as per Marc Glisse's suggestion. Also fix
+ problem with passing a longlong limb to a _ui function.
+
+ * gmp-impl.h (udiv_qrnnd_preinv3): Cast truth value to mask's type.
+ (udiv_rnnd_preinv): Likewise.
+ * mpn/generic/mod_1_1.c (mpn_mod_1_1p): Likewise.
+
+2011-02-28 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/mod_1_1.c (add_mssaaaa): Typo fix, define
+ add_mssaaaa, not add_sssaaaa.
+
+ * tune/tuneup.c (tune_mod_1): Measure mpn_mod_1_1_1 and
+ mpn_mod_1_1_2, to set MOD_1_1P_METHOD.
+
+ * tune/speed.c (routine): Added mpn_mod_1_1_1 and mpn_mod_1_1_2.
+
+ * tune/speed.h: Declare speed_mpn_mod_1_1_1, speed_mpn_mod_1_1_2,
+ mpn_mod_1_1p_1, mpn_mod_1_1p_2, mpn_mod_1_1p_cps_1, and
+ mpn_mod_1_1p_cps_2.
+
+ * tune/common.c (speed_mpn_mod_1_1_1): New function.
+ (speed_mpn_mod_1_1_2): New function.
+
+ * tune/Makefile.am (libspeed_la_SOURCES): Added mod_1_1-1.c
+ mod_1_1-2.c.
+
+ * tune/mod_1_1-1.c: New file.
+ * tune/mod_1_1-2.c: New file.
+
+ * mpn/generic/mod_1_1.c: Implemented an algorithm with fewer
+ multiplications, configured via MOD_1_1P_METHOD.
+
+ * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified
+ computation of B2modb, use B^2 mod (normalized b).
+ (mpn_mod_1_1p): Corresponding changes. Don't shift b.
+
+ * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Use udiv_rnnd_preinv rather
+ than udiv_rnd_preinv.
+ (mpn_mod_1_1p): Likewise.
+ * mpn/generic/mod_1_4.c: Analogous changes.
+ * mpn/generic/mod_1_3.c: Analogous changes.
+ * mpn/generic/mod_1_2.c: Analogous changes.
+ * mpn/generic/mod_1.c: Analogous changes.
+ * mpn/generic/pre_mod_1.c: Analogous changes.
+
+ * gmp-impl.h (udiv_qrnnd_preinv3): Eliminated unpredictable branch
+ using masking logic. Further optimization of the nl == constant 0
+ case, similar to udiv_rnd_preinv.
+ (udiv_rnnd_preinv): Likewise.
+ (udiv_rnd_preinv): Deleted, use udiv_rnnd_preinv with nl == 0
+ instead.
+
+ * tests/mpn/t-divrem_1.c (check_data): Added testcase to exercise
+ the nl == constant 0 special case in udiv_qrnnd_preinv3.
+
+2011-02-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/rootrem.c (mpn_rootrem): Combine two similar scalar
+ divisions. Misc minor cleanup.
+
+ * mpn/x86/atom/sse2/aorsmul_1.asm: Shorten software pipeline.
+
+ * mpn/x86/atom/mul_basecase.asm: Remove file no longer used.
+
+ * mpn/generic/rootrem.c (mpn_rootrem_internal): Delay O(log(U))
+ allocations until they are known to be needed.
+
+2011-02-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/sse2/mul_1.asm: New code.
+
+2011-02-27 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (udiv_rnnd_preinv): New macro.
+
+2011-02-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/sse2/mul_basecase.asm: New file.
+
+2011-02-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/sse2/aorsmul_1.asm: Optimise non-loop code.
+
+2011-02-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
+ * mpn/m68k/mc68020/aorsmul_1.asm: Likewise.
+
+ * mpn/powerpc64/mode64/aorsmul_1.asm: Add missing MULFUNC_PROLOGUE.
+ * mpn/m68k/mc68020/aorsmul_1.asm: Likewise.
+
+2011-02-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/sse2/aorsmul_1.asm: New file.
+ * mpn/x86/atom/aorsmul_1.asm: File removed.
+
+2011-02-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/sse2/divrem_1.asm: New file (was in x86/atom).
+ * mpn/x86/atom/sse2/mul_1.asm: Likewise.
+ * mpn/x86/atom/sse2/popcount.asm: Likewise.
+ * mpn/x86/atom/divrem_1.asm: ReMoved (in sse2/ now).
+ * mpn/x86/atom/mul_1.asm: Likewise.
+ * mpn/x86/atom/popcount.asm: Likewise.
+
+ * configure.in: Set up mmx path for atom.
+ * mpn/x86/atom/mmx/copyd.asm: New file (was in x86/atom).
+ * mpn/x86/atom/mmx/copyi.asm: Likewise.
+ * mpn/x86/atom/mmx/hamdist.asm: Likewise.
+ * mpn/x86/atom/copyd.asm: ReMoved (in mmx/ now).
+ * mpn/x86/atom/copyi.asm: Likewise.
+ * mpn/x86/atom/hamdist.asm: Likewise.
+
+2011-02-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/sse2/mod_1_1.asm: New file.
+ * mpn/x86/atom/sse2/mod_1_4.asm: New file.
+ * configure.in: Set up sse2 path for atom.
+
+ * mpn/x86/p6/sse2/mod_1_1.asm: New file.
+ * mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE.
+
+2011-02-24 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p): Rewrite using the same
+ algorithm as the x86_64 version.
+
+2011-02-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/logops_n.asm: New file (same loop as aors_n).
+
+2011-02-23 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Shaved off one
+ instruction and one register in the inner loop. Rearranged
+ registers slightly, and no longer needs the callee-save register
+ %r12.
+
+2011-02-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Export SHLD_SLOW and SHRD_SLOW to config.m4, also
+ fixing typo in exporting code.
+
+ * mpn/x86_64/nano/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
+ * mpn/x86_64/atom/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define.
+
+2011-02-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Rewrite.
+
+2011-02-22 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/lshiftc.asm: New file (a copy of lshift.asm with a handful of neg added).
+
+2011-02-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/aors_n.asm: Move _nc entry to after main code. Align loop
+ and _n entry for claimed performance. Normalise mnemonic usage.
+
+ * mpn/x86/atom/aorrlsh1_n.asm: New file (code from rsblsh_1, slightly
+ slower for addlsh_1 for large operands, but much faster for small).
+ * mpn/x86/atom/addlsh1_n.asm: Remove.
+ * mpn/x86/atom/rsblsh1_n.asm: Remove.
+
+2011-02-20 Marc Glisse <marc.glisse@inria.fr>
+
+ * mpq/aors.c: Rewrite to remove redundant division.
+
+2011-02-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/atom/lshift.asm: New file.
+ * mpn/x86/atom/rshift.asm: Normalise mnemonic usage.
+
+ * gmp-impl.h (mpn_divexact_by7): Relax inclusion condition.
+
+ * mpz/divegcd.c (mpz_divexact_by5): New conditionally enabled function.
+ (mpz_divexact_by3): Wrap inside appropriate conditions.
+ (mpz_divexact_gcd): Rewrite.
+
+ * mpn/x86/bdiv_dbm1c.asm: Save a jump.
+
+2011-02-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/aorslshC_n.asm: New file.
+ * mpn/x86/atom/sublsh2_n.asm: New file.
+
+ * mpn/x86/atom/aors_n.asm: New code.
+ * mpn/x86/atom/rshift.asm: Atom64 code adapted to 32-bit.
+ * mpn/x86/atom/lshift.asm: Likewise.
+
+2011-02-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/rsh1aors_n.asm: New file.
+
+ * mpn/x86_64/atom/lshift.asm: New file.
+ * mpn/x86_64/atom/rshift.asm: New file.
+ * mpn/x86_64/atom/lshiftc.asm: New file.
+
+2011-02-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/aorsmul_1.asm: Small improvements for small sizes.
+ * mpn/x86/atom/aorrlshC_n.asm: Tiny size improvements.
+
+2011-02-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Fix k8/k10 32-bit path setup problem.
+
+2011-02-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/aorsmul_1.asm: Revive an old k7/aorsmul.
+
+2011-02-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (mpn_sublsh_n): Declare.
+ * mpn/asm-defs.m4: Likewise.
+
+ * mpn/x86/atom/aorrlshC_n.asm: New file (was k7).
+ * mpn/x86/k7/aorrlshC_n.asm: ReMoved.
+ * mpn/x86/atom/aorrlsh2_n.asm: Grab atom/aorrlshC_n.asm.
+ * mpn/x86/atom/rsblsh1_n.asm: Grab atom/aorrlshC_n.asm.
+
+2011-02-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/aorrlsh2_n.asm: New file.
+
+2011-02-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorrlsh_n.asm: Minor tweaks, update c/l numbers.
+
+ * mpn/x86_64/atom/sublsh1_n.asm: New file.
+
+ * mpn/x86_64/atom/aorrlsh1_n.asm: New file.
+
+2011-02-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/mod_1_1.asm: Fix Darwin syntax issues.
+
+2011-02-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/mod_1_4.asm: Tune away a cycle for 970.
+
+2011-02-11 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/k7/addlsh1_n.asm: Faster core loop (Torbjorn's).
+
+ * configure.in: Add HAVE_NATIVE_{add,sub,rsb}lsh{,1,2}_nc.
+ * tests/tests.h: refmpn_{add,sub,rsb}lsh{,1,2}_nc prototypes.
+ * tests/refmpn.c: New refmpn_{add,sub,rsb}lsh{,1,2}_nc.
+ * tests/devel/try.c: Tests for mpn_{add,sub,rsb}lsh{,1,2}_nc.
+
+ * mpn/x86/k7/aorrlshC_n.asm: New file.
+ * mpn/x86/atom/aorrlsh2_n.asm: Grab k7/aorrlshC_n.asm.
+ * mpn/x86/atom/rsblsh1_n.asm: Grab k7/aorrlshC_n.asm.
+
+2011-02-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/k7/addlsh1_n.asm: New file.
+ * mpn/x86/k7/sublsh1_n.asm: New file.
+ * mpn/x86/atom/addlsh1_n.asm: Grab k7/addlsh1_n.asm.
+ * mpn/x86/atom/sublsh1_n.asm: Grab k7/sublsh1_n.asm.
+
+2011-02-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (mpn_addlsh1_nc, mpn_addlsh2_nc, mpn_sublsh1_nc,
+ mpn_sublsh2_nc, mpn_rsblsh1_nc, mpn_rsblsh2_nc): Declare.
+ * mpn/asm-defs.m4: Likewise.
+
+ * mpn/x86_64/coreisbr/aorrlshC_n.asm: New file.
+ * mpn/x86_64/coreisbr/aorrlsh1_n.asm: New file.
+ * mpn/x86_64/coreisbr/aorrlsh2_n.asm: New file.
+
+ * mpn/x86_64/coreisbr/aors_n.asm: New file, based on old
+ atom/aors_n.asm.
+ * mpn/x86_64/atom/aors_n.asm: Grab coreisbr/aors_n.asm.
+
+2011-02-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (mpn_toom6_mul_n_itch): Handle threshold == zero.
+ (mpn_toom8_mul_n_itch): Likewise.
+ (MPN_TOOM6H_MIN, MPN_TOOM8H_MIN): Define.
+ * tests/mpn/t-toom6h.c: No tests below MPN_TOOM6H_MIN.
+ * tests/mpn/t-toom8h.c: No tests below MPN_TOOM8H_MIN.
+
+ * mpz/lucnum_ui.c: Use mpn_addlsh2_n.
+
+2011-02-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/rsh1aors_n.asm: Add a MULFUNC_PROLOGUE.
+ * mpn/x86_64/atom/dive_1.asm: Likewise.
+ * mpn/x86_64/atom/popcount.asm: Likewise.
+ * mpn/x86_64/core2/popcount.asm: Likewise.
+ * mpn/x86_64/coreinhm/hamdist.asm: Likewise.
+ * mpn/x86_64/coreinhm/popcount.asm: Likewise.
+ * mpn/x86_64/nano/popcount.asm: Likewise.
+ * mpn/x86_64/pentium4/popcount.asm: Likewise.
+
+2011-02-04 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/mode1o.asm: New file, grabbing another asm file.
+ * mpn/x86/atom/mul_1.asm: Claim mul_1c.
+
+2011-02-02 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): Fixed one
+ speed_operand_dst call.
+
+2011-02-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (struct speed_params): Allow for 4 dst operands.
+ * tune/common.c (TOLERANCE): Increase from 0.5% to 1%.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): New macro, mainly based
+ on old speed_mpn_hgcd, but with speed_operand_src calls (as suggested
+ by Niels).
+ * tune/common.c (speed_mpn_hgcd): Invoke SPEED_ROUTINE_MPN_HGCD_CALL.
+ (speed_mpn_hgcd_lehmer): Likewise.
+
+ * configure.in: Set up 32-bit x86 paths for new corei* CPU strings.
+
+2011-01-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Recognise new Intel processors.
+
+ * config.guess: Support 'coreinhm' and 'coreisbr'.
+ * config.sub: Likewise.
+ * configure.in: Likewise.
+
+2011-01-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Support x86/geode.
+ * mpn/x86/geode/gmp-mparam.h: New file.
+
+2011-01-29 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/addlsh1_n.asm: Removed.
+ * mpn/x86/atom/rsh1add_n.asm: Likewise.
+
+2011-01-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/ev6/slot.pl: Add some missing insns.
+
+2011-01-28 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/atom/copyd.asm: New file, grabbing another asm file.
+ * mpn/x86/atom/copyi.asm: Likewise.
+ * mpn/x86/atom/aors_n.asm: Likewise.
+ * mpn/x86/atom/addlsh1_n.asm: Likewise.
+ * mpn/x86/atom/aorsmul_1.asm: Likewise.
+ * mpn/x86/atom/bdiv_q_1.asm: Likewise.
+ * mpn/x86/atom/dive_1.asm: Likewise.
+ * mpn/x86/atom/divrem_1.asm: Likewise.
+ * mpn/x86/atom/hamdist.asm: Likewise.
+ * mpn/x86/atom/logops_n.asm: Likewise.
+ * mpn/x86/atom/lshift.asm: Likewise.
+ * mpn/x86/atom/mod_34lsub1.asm: Likewise.
+ * mpn/x86/atom/mul_1.asm: Likewise.
+ * mpn/x86/atom/mul_basecase.asm: Likewise.
+ * mpn/x86/atom/popcount.asm: Likewise.
+ * mpn/x86/atom/rsh1add_n.asm: Likewise.
+ * mpn/x86/atom/rshift.asm: Likewise.
+ * mpn/x86/atom/sqr_basecase.asm: Likewise.
+
+2011-01-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file.
+ * mpn/x86_64/atom/popcount.asm: Likewise.
+ * mpn/x86_64/atom/dive_1.asm: Likewise.
+ * mpn/x86_64/nano/popcount.asm: Likewise.
+
+2011-01-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/invert_limb.asm: Complete rewrite.
+
+2011-01-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc32/invert_limb.asm: New file.
+
+2011-01-25 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/pentium4/sse2/bdiv_q_1.asm: New file.
+ * mpn/x86/k7/bdiv_q_1.asm: New file.
+
+2011-01-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mul_n, tune_sqr): Loop, re-measuring thresholds
+ until no tiny ranges remain.
+
+2011-01-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/mul_2.asm: Tweak to 1.5 c/l, less overhead.
+
+ * mpn/ia64/addmul_2.asm: Rewrite, adding mpn_addmul_2s entry point.
+
+2011-01-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/aors_n.asm: Fix some incorrect bundle types.
+
+ * mpn/ia64/sqr_diagonal.asm: Remove.
+
+ * mpn/ia64/sqr_diag_addlsh1.asm: New file.
+
+ * mpn/ia64/ia64-defs.m4: Define some shorter convenience mnemonics.
+
+ * mpn/generic/sqr_basecase.c (MPN_SQR_DIAG_ADDLSH1): New macro, using
+ new function mpn_sqr_diag_addlsh1 or defining its equivalent.
+
+ * gmp-impl.h (mpn_addmul_2s): Declare.
+ (mpn_sqr_diag_addlsh1): Declare.
+ * mpn/asm-defs.m4 (define_mpn): Add addmul_2s and sqr_diag_addlsh1.
+
+ * configure.in: Add HAVE_NATIVEs for mpn_sqr_diag_addlsh1 and
+ mpn_addmul_2s.
+ (gmp_mpn_functions_optional): Add sqr_diag_addlsh1.
+
+2011-01-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/devel/try.c: Initial support for mpn_bdiv_q_1.
+ * mpn/x86/pentium/bdiv_q_1.asm: New file.
+ * mpn/x86/p6/bdiv_q_1.asm: New file.
+
+2011-01-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.c (run_gnuplot): Update to current gnuplot syntax.
+
+ * mpn/powerpc64/mode64/aorsmul_1.asm: Trim away 0.5 c/l for submul_1
+ for POWER5.
+
+2011-01-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/rsh1aors_n.asm: New file.
+
+2011-01-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/x86/bdiv_q_1.asm: New file (same core alg. as dive_1).
+
+2011-01-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/divexact.c: Avoid COPY if not needed.
+
+2011-01-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (struct cpuvec_t): Add field bmod_1_to_mod_1_threshold.
+ * configure.in (fat_thresholds): Add BMOD_1_TO_MOD_1_THRESHOLD.
+
+2011-01-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/mul.c: Remove redundant size computation.
+
+2011-01-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/devel/try.c (types enum): Add TYPE_MUL_5 and TYPE_MUL_6.
+ (param_init): Support new types.
+ (choice_array): Support testing of mpn_mul_5 and mpn_mul_6.
+ (call): Support new routines.
+
+ * tests/refmpn.c (refmpn_mul_5, refmpn_mul_6): New functions.
+ * tests/tests.h (refmpn_mul_5, refmpn_mul_6): Declare.
+ Remove parameter names from some other functions.
+
+ * gmp-impl.h (mpn_mul_5, mpn_mul_6): Declare.
+ * mpn/asm-defs.m4: Likewise, also declare mpn_addmul_5, mpn_addmul_6,
+ mpn_addmul_7, and mpn_addmul_8.
+
+ * configure.in (gmp_mpn_functions_optional): Add mul_5 and mul_6.
+
+ * tune/speed.c (routine): Add measuring of mpn_mul_5 and mpn_mul_6.
+ * tune/common.c (speed_mpn_mul_5, speed_mpn_mul_6): New functions.
+ * tune/speed.h: Declare new functions.
+
+2011-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpz/aors.h: Remove #ifdef BERKELEY_MP, and cleanup.
+ * mpz/cmp.c: Likewise.
+ * mpz/gcd.c: Likewise.
+ * mpz/mul.c: Likewise.
+ * mpz/powm.c: Likewise.
+ * mpz/set.c: Likewise.
+ * mpz/sqrtrem.c: Likewise.
+ * mpz/tdiv_qr.c: Likewise.
+
+2010-12-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/minithres/gmp-mparam.h: Update with several recent thresholds.
+
+2010-12-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/mod_1_1.asm: Canonicalise cmov forms.
+ * mpn/x86/k7/mod_1_4.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mod_1_1.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
+ * mpn/x86_64/core2/divrem_1.asm: Likewise.
+ * mpn/x86_64/divrem_1.asm: Likewise.
+ * mpn/x86_64/mod_1_1.asm: Likewise.
+ * mpn/x86_64/mod_1_2.asm: Likewise.
+ * mpn/x86_64/mod_1_4.asm: Likewise.
+
+ * mpn/x86/k7/gcd_1.asm: Rewrite. Remove slow 'div' loop. Call
+ mpn_mod_1 for operands with mode than BMOD_1_TO_MOD_1_THRESHOLD limbs.
+ Misc cleanups.
+
+2010-12-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/gcd_1.asm: Call mpn_mod_1 for operands with mode than
+ BMOD_1_TO_MOD_1_THRESHOLD limbs.
+
+ * configure.in: Generalise code for putting THRESHOLDs in config.m4.
+ Add BMOD_1_TO_MOD_1_THRESHOLD to list.
+
+ * mpn/x86_64/core2/divrem_1.asm: Tweak slightly, correct cycle counts.
+
+ * mpn/x86_64/addmul_2.asm: Remove constant index.
+ * mpn/x86_64/lshiftc.asm: Likewise.
+ * mpn/x86_64/pentium4/lshift.asm: Likewise.
+ * mpn/x86_64/pentium4/lshiftc.asm: Likewise.
+ * mpn/x86_64/pentium4/rshift.asm: Likewise.
+
+2010-12-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mod_34lsub1.asm: Complete rewrite.
+ * mpn/x86_64/pentium4/mod_34lsub1.asm: New file, old
+ mpn/x86_64/mod_34lsub1.asm.
+
+2010-12-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/vmx/popcount.asm: Rewrite to use vperm count table.
+
+2010-12-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mp-h.in: Remove.
+ * configure.in: Remove mp-h.in from AC_OUTPUT invocation.
+
+2010-12-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/mod.c: Rewrite.
+
+ * mpn/x86_64/corei/popcount.asm: New file.
+ * mpn/x86_64/corei/hamdist.asm: New file.
+
+ * mpn/x86_64/k10/hamdist.asm: New file.
+
+ * configure.in: Amend last change for lame /bin/sh.
+
+2010-12-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Comment out M4=m4-not-needed.
+
+ * mpn/x86_64/k10/popcount.asm: New file.
+ * configure.in: Setup special path for k10 and later AMD CPUs.
+ Remove special x86_64'k8' path, since directory is non-existent.
+
+2010-12-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc32/ultrasparct1: New directory.
+ * mpn/sparc32/ultrasparct1/add_n.asm: New file.
+ * mpn/sparc32/ultrasparct1/sub_n.asm: New file.
+ * mpn/sparc32/ultrasparct1/mul_1.asm: New file.
+ * mpn/sparc32/ultrasparct1/addmul_1.asm: New file.
+ * mpn/sparc32/ultrasparct1/submul_1.asm: New file.
+ * mpn/sparc32/ultrasparct1/sqr_diagonal.asm: New file.
+
+ * config.guess: Support Ultrasparc T2 and T3.
+ * config.sub: Likewise.
+ * configure.in: Likewise.
+
+ * config.guess: Generalise BSD Sparc recognition by allowing any
+ caps (needed for OpenBSD which spells things innovatively).
+
+2010-12-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Match new AMD processors, allow finer distinctions
+ among old ones.
+ * acinclude.m4 (X86_64_PATTERN): Likewise.
+ * config.sub: Likewise.
+ * configure.in: Rudimentarily support new AMD processors.
+
+ * configure.in (--enable_assembly): New option.
+ (target none-*-*): Disable, give error.
+
+2010-11-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/x86-defs.m4 (LEA): Support non-PIC code.
+ * mpn/x86/darwin.m4 (LEA): Likewise.
+
+ * tests/amd64call.asm: Rewrite for code size, and to match calls and
+ returns.
+
+ * tests/x86call.asm: Rewrite for code size, to support PIC, and to
+ match calls and returns.
+ * tests/x86check.c: Rewrite.
+
+2010-11-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/get_str.c: Make all bases either work or return an error.
+ * mpz/out_str.c: Likewise.
+ * mpq/get_str.c: Likewise.
+ * mpf/get_str.c: Likewise.
+
+2010-11-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/misc/t-printf.c: Add explicit casts for type conversions.
+ * mpn/generic/toom62_mul.c: Likewise.
+
+2010-11-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/get_d.c: Misc cleanup. Fail with a syntax error for
+ non-IEEE fp formats.
+
+ * tests/devel/try.c (malloc_region): Add explicit casts for type
+ conversions.
+
+ * acinclude.m4 (GMP_ASM_RODATA): Make test code snippet C++ compatible.
+ (GMP_C_DOUBLE_FORMAT): Likewise.
+ (GMP_FUNC_VSNPRINTF): Likewise.
+
+ * config.guess (x86): Make test C snippet C++ compatible.
+
+2010-11-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am: Remove mpbsd.
+ * configure.in: Remove mpbsd.
+ * doc/configuration: Remove mpbsd mentions.
+ * doc/gmp.texi: Remove mpbsd docs.
+ * tests/Makefile.am: Remove mpbsd.
+ * libmp.sym: Remove.
+ * mpbsd: Remove directory and files.
+ * tests/mpbsd: Remove directory and files.
+
+2010-11-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/aors_n.asm: Don't rely on ZF after 'bt' insn.
+ Use 64-bit 'test' to support operands of 2^32 limbs and more.
+
+ * rand: New directory, move rand*.c and randmt.h here.
+ * rand/Makefile.am: New file.
+ * Makefile.am (SUBDIRS): Add rand.
+ (RANDOM_OBJECTS): New variable.
+ (libgmp_la_SOURCES): Remove random objects.
+ (libgmp_la_DEPENDENCIES): Add RANDOM_OBJECTS.
+ * configure.in (AC_OUTPUT): Add rand/Makefile.
+
+ * ansi2knr.1: File removed.
+ * ansi2knr.c: File removed.
+
+2010-11-10 Torbjorn Granlund <tege@gmplib.org>
+
+ Make it possible to compile GMP with g++:
+
+ * gmp-impl.h: Declare __gmp_digit_value_tab here.
+ * mpbsd/min.c: ...not here.
+ * mpbsd/xtom.c: ...nor here.
+ * mpf/set_str.c: ...nor here.
+ * mpz/inp_str.c: ...nor here.
+ * mpz/set_str.c: ...nor here.
+
+ * mpn/generic/toom43_mul.c: Add casts for logical operations on enums.
+ * mpn/generic/toom44_mul.c: Likewise.
+ * mpn/generic/toom4_sqr.c: Likewise.
+ * mpn/generic/toom52_mul.c: Likewise.
+ * mpn/generic/toom53_mul.c: Likewise.
+ * mpn/generic/toom62_mul.c: Likewise.
+
+ * mpz/clrbit.c: Clean up typing using MPZ_REALLOC.
+ * mpz/setbit.c: Likewise.
+
+ * mpz/powm.c: Avoid variable name 'new'.
+
+ * randlc2x.c: Add explicit casts for type conversions.
+ * tests/misc/t-printf.c: Likewise.
+ * tests/misc/t-scanf.c: Likewise.
+ * tests/misc.c: Likewise.
+ * tests/mpz/convert.c: Likewise.
+ * tests/refmpn.c: Likewise.
+
+ * tests/tests.h: Unconditionally use <sstream> for now.
+
+ * tests/memory.c: Include "tests.h.
+
+ * mp_get_fns.c: Add a __GMP_NOTHROW for coherency with prototype.
+ * mp_set_fns.c: Likewise.
+ * mpf/cmp.c: Likewise.
+ * mpf/cmp_si.c: Likewise.
+ * mpf/cmp_ui.c: Likewise.
+ * mpf/fits_s.h: Likewise.
+ * mpf/fits_u.h: Likewise.
+ * mpf/get_dfl_prec.c: Likewise.
+ * mpf/get_prc.c: Likewise.
+ * mpf/get_si.c: Likewise.
+ * mpf/get_ui.c: Likewise.
+ * mpf/int_p.c: Likewise.
+ * mpf/set_dfl_prec.c: Likewise.
+ * mpf/set_prc_raw.c: Likewise.
+ * mpf/size.c: Likewise.
+ * mpf/swap.c: Likewise.
+ * mpq/equal.c: Likewise.
+ * mpq/swap.c: Likewise.
+ * mpz/cmp.c: Likewise.
+ * mpz/cmp_si.c: Likewise.
+ * mpz/cmp_ui.c: Likewise.
+ * mpz/cmpabs.c: Likewise.
+ * mpz/cmpabs_ui.c: Likewise.
+ * mpz/cong_2exp.c: Likewise.
+ * mpz/divis_2exp.c: Likewise.
+ * mpz/fits_s.h: Likewise.
+ * mpz/get_si.c: Likewise.
+ * mpz/hamdist.c: Likewise.
+ * mpz/scan0.c: Likewise.
+ * mpz/scan1.c: Likewise.
+ * mpz/sizeinbase.c: Likewise.
+ * mpz/swap.c: Likewise.
+ * mpz/tstbit.c: Likewise.
+ * tal-reent.c: Likewise.
+
+2010-11-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Get rid of K&R support.
+ * Makefile.am: Likewise.
+ * mpn/Makefile.am: Likewise.
+ * doc/configuration: Update docs wrt K&R support.
+ * doc/gmp.texi: Likewise.
+
+ * configure.in (AC_INIT): Amend bug reporting address with manual
+ reference.
+
+2010-11-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: If cpuid says we have 32bit-only x86 but
+ configfsf.guess return x86_64, return the latter.
+
+ * mpn/x86_64/aors_n.asm: Rewrite not to rely on ZF after 'bt' insn.
+
+2010-10-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/trialdiv.c: Update documentation.
+
+2010-10-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/gcd_1.asm: Use m4_lshift to avoid << operator.
+ * mpn/x86_64/aorrlshC_n.asm: Likewise.
+ * mpn/x86_64/pentium4/aorslshC_n.asm: Likewise.
+ * mpn/x86/k7/gcd_1.asm: Likewise.
+
+2010-08-20 Niels Möller <nisse@lysator.liu.se>
+
+ Suggested by Ozkan Sezer:
+ * configure.in: If $M4 is already set in the environment, don't
+ touch it. Fixed the case that no assembler files are used, and
+ GMP_PROG_M4 is omitted.
+
+2010-08-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/fat/fat.c: Recognise many more processors.
+
+2010-06-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_2.asm: Tune.
+
+2010-06-19 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MOD_1_1): Pass normalized
+ divisor to the benchmarked function.
+
+2010-06-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
+ * mpn/x86_64/mod_1_2.asm (mpn_mod_1s_2p_cps): Rewrite.
+ * mpn/x86_64/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
+
+ * gmp-impl.h (udiv_rnd_preinv): Simplify.
+
+ * mpn/x86/k7/mod_1_1.asm: New file.
+ * mpn/x86/pentium4/sse2/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite.
+ * mpn/x86/k7/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
+ * mpn/x86/pentium4/sse2/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
+
+ * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Store results as they are
+ computed.
+ * mpn/generic/mod_1_2.c (mpn_mod_1s_2p_cps): Likewise.
+ * mpn/generic/mod_1_4.c (mpn_mod_1s_4p_cps): Likewise.
+
+ * mpn/x86/k7/invert_limb.asm: Moved from mpn/x86/invert_limb.asm.
+
+2010-06-15 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-mod_1.
+ * tests/mpn/t-mod_1.c: New file.
+
+2010-05-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): Trim out space
+ for inverse, since that is passed in already.
+
+2010-05-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): New function.
+ * gmp-impl.h: Declare it.
+ * tune/common.c (speed_mpn_mupi_div_qr): Use new itch function.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Pass parameters right
+ for new itch function.
+
+ * mpn/powerpc32/lshiftc.asm: New file.
+
+2010-05-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mod_1): Revert to version of 2010-05-06.
+
+2010-05-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (ia64): Get 32-bit sizeof test right.
+
+ * tune/tuneup.c (tune_mod_1): Undo unintensional change to tuning of
+ PREINV_MOD_1_TO_MOD_1_THRESHOLD.
+
+2010-05-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/mod_1.c: Rewrite.
+ * mpn/sparc64/sparc64.h (umul_ppmm_s): New macro.
+ * mpn/sparc64/mod_1_4.c: New file.
+
+ * mpn/generic/divrem_1.c: Minor cleanup.
+ * mpn/generic/mod_1.c: Likewise.
+ * mpn/generic/mod_1_1.c: Likewise.
+ * mpn/generic/mod_1_2.c: Likewise.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_4.c: Likewise.
+
+ * configure.in (ia64-hpux): Do sizeof tests for 32-bit and 64-bit ABI.
+
+ * tune/tuneup.c (tune_mod_1): Completely finish MOD_1_N tuning before
+ tuning MOD_1U_TO_MOD_1_1_THRESHOLD.
+
+2010-05-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_2.c: Use asm code just for GNU C.
+
+2010-05-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64/ultrasparc1234: New directory. Move all code that uses
+ floating-point into this directory.
+ * configure.in: Point to ultrasparc1234 for appropriate CPUs.
+
+ * mpn/sparc64/ultrasparct1/add_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/addlsh2_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/addmul_1.asm: New file.
+ * mpn/sparc64/ultrasparct1/lshift.asm: New file.
+ * mpn/sparc64/ultrasparct1/mul_1.asm: New file.
+ * mpn/sparc64/ultrasparct1/rsblsh2_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/rshift.asm: New file.
+ * mpn/sparc64/ultrasparct1/sublsh1_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/sublshC_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/addlsh1_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/addlshC_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/lshiftc.asm: New file.
+ * mpn/sparc64/ultrasparct1/rsblsh1_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/rsblshC_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/sub_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/sublsh2_n.asm: New file.
+ * mpn/sparc64/ultrasparct1/submul_1.asm: New file.
+ * mpn/sparc64/ultrasparct1/gmp-mparam.h: New file.
+
+ * configure.in: Give ultrasparct1 and ultrasparct2 special code path.
+
+ * mpn/x86_64/pentium4/gmp-mparam.h: Disable mpn_addlsh_n, mpn_rsblsh_n.
+
+2010-05-12 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/jacobi.c (mpz_jacobi): Fixed off-by-one error in use of
+ scratch space.
+
+ * tune/common.c (speed_mpz_powm_sec): New function.
+ * tune/speed.h: Declare speed_mpz_powm_sec.
+ * tune/speed.c (routine): Added speed_mpz_powm_sec.
+
+ * tune/common.c (speed_mpn_addlsh_n, speed_mpn_sublsh_n)
+ (speed_mpn_rsblsh_n): New functions.
+ * tune/speed.h: Declare new functions.
+ * tune/speed.c (routine): Add new functions.
+
+2010-05-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mod_1_4.asm: Tune for more processors.
+
+ * mpn/x86_64/pentium4/lshiftc.asm: New file.
+
+2010-05-11 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/jacobi.c (mpz_jacobi): Deleted old implementation.
+ Reorganized new implementation, to handle small inputs efficiently.
+
+ * tests/mpz/t-jac.c (check_large_quotients): Reduced test sizes.
+ (check_data): One more input pair related to a fixed bug.
+ (main): Enable check_large_quotients.
+
+2010-05-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorrlsh2_n.asm: Fix typo.
+
+2010-05-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorrlshC_n.asm: New file based on aorrlsh2_n.asm.
+ * mpn/x86_64/aorrlsh2_n.asm: Now just include aorrlshC_n.asm.
+ * mpn/x86_64/core2/aorrlsh1_n.asm: New file, include ../aorrlshC_n.asm.
+ * mpn/x86_64/core2/aorrlsh2_n.asm: Likewise.
+
+ * mpn/x86_64/core2/sublshC_n.asm: New file based on aorslsh1_n.asm.
+ * mpn/x86_64/core2/aorslsh1_n.asm: Remove.
+ * mpn/x86_64/core2/sublsh1_n.asm: Just include sublshC_n.asm.
+ * mpn/x86_64/core2/sublsh2_n.asm: Likewise.
+
+2010-05-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/gmp-mparam.h: Disable mpn_rsh1add_n, mpn_rsh1sub_n.
+
+ * mpn/x86_64/pentium4/aorslshC_n.asm: New file based on aorslsh1_n.asm.
+ * mpn/x86_64/pentium4/aorslsh1_n.asm: Now just include aorslshC_n.asm.
+ * mpn/x86_64/pentium4/aorslsh2_n.asm: New file.
+
+2010-05-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/sparc64: Support operands of >= 2^32 limbs.
+
+ * mpn/sparc64/lshiftc.asm: New file.
+
+ * mpn/ia64/divrem_2.asm: Complete rewrite.
+
+2010-05-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (all): Don't call tune_divrem_2.
+
+ * mpn/generic/divrem_2.c: Complete rewrite.
+
+ * tune/tuneup.c (tune_mod_1): Fix typo.
+
+2010-05-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Use macro register names.
+ (mpn_mod_1_1p_cps): Rewrite.
+
+ * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Micro-optimise.
+
+ * longlong.h: Undo 2009-03-01 change for powerpc64, it gives poor code.
+
+ * mpn/x86/pentium4/sse2/mod_1_1.asm: New file.
+
+ * mpn/powerpc64/mode64/mod_1_1.asm: New file.
+
+ * tune/tuneup.c (tune_mod_1): Use more typical divisor, for the benefit
+ of machines with early-out multipliers.
+
+2010-05-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mod_1): Fix typo.
+
+ * mpn/generic/mod_1_1.c: Undo last change.
+ * mpn/x86_64/mod_1_1.asm: Likewise.
+
+2010-05-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/jacobi_lehmer.c (jacobi_hook): New function.
+ (mpn_jacobi_subdiv_step): Deleted function.
+ (mpn_jacobi_lehmer): Use general mpn_gcd_subdiv_step.
+
+ * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
+ to use a single hook function.
+ * mpn/generic/gcdext.c (mpn_gcdext): Adapted to new hook
+ interface.
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): New unified hook
+ function.
+ * mpn/generic/gcd.c (gcd_hook): Renamed from gcd_done, and adapted
+ to new hook interface.
+ * gmp-impl.h (gcd_subdiv_step_hook): New typedef, now a function
+ type, not a struct.
+ (mpn_gcdext_hook): Declare.
+
+2010-05-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_1.c: Avoid multiply for 2 limb feed-in.
+ * mpn/generic/mod_1_2.c: Likewise.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_4.c: Likewise.
+ * mpn/x86_64/mod_1_1.asm: Likewise.
+ * mpn/x86_64/mod_1_2.asm: Likewise.
+ * mpn/x86_64/mod_1_4.asm: Likewise.
+ * mpn/x86/k7/mod_1_4.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise.
+ * mpn/alpha/ev6/mod_1_4.asm: Likewise.
+
+ * tune/tuneup.c (tune_mod_1): Measure MOD_1_1_TO_MOD_1_2_THRESHOLD and
+ MOD_1_2_TO_MOD_1_4_THRESHOLD before MOD_1U_TO_MOD_1_1_THRESHOLD for
+ correctness.
+
+ * mpn/powerpc64/sqr_diagonal.asm: Complete rewrite.
+
+ * mpn/powerpc64/mode64/mod_1_4.asm: New file.
+
+2010-05-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Recognise power7.
+
+ * configure.in: Major overhaul of powerpc support.
+
+ * mpn/powerpc64/p6/lshift.asm: New file.
+ * mpn/powerpc64/p6/lshiftc.asm: Likewise.
+ * mpn/powerpc64/p6/rshift.asm: Likewise.
+
+2010-04-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (powerpc64): Support CPU specific mode-less subdirs.
+
+ * mpn/powerpc64/aix.m4 (PROLOGUE_cpu): Use "named csect" making
+ requested alignment actually honoured.
+
+2010-04-30 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Fixed handling of
+ the case bl == 1. Fixed missing application of reciprocity.
+
+2010-04-29 Niels Möller <nisse@lysator.liu.se>
+
+ * configure.in (gmp_mpn_functions): Deleted gcdext_subdiv_step.
+
+ * mpn/generic/gcdext.c (mpn_gcdext): Use new generalized
+ mpn_gcd_subdiv_step.
+
+ * mpn/generic/gcdext_lehmer.c (gcdext_update): New function.
+ (gcdext_done): New function.
+ (gcdext_hook): New const hook struct.
+ (mpn_gcdext_lehmer_n): Use new generalized mpn_gcd_subdiv_step.
+
+ * mpn/generic/gcd.c (gcd_done): New function.
+ (gcd_hook): New const hook struct.
+ (mpn_gcd): Adapted to new mpn_gcd_subdiv_step interface.
+
+ * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized
+ function. Added hook function pointers to the argument list, so
+ the same function can be used for gcd, gcdext, and jacobi.
+
+ * gmp-impl.h (struct gcd_subdiv_step_hook): New struct.
+ (mpn_gcdext_subdiv_step): Deleted prototype.
+ (struct gcdext_ctx): New struct.
+ (gcdext_hook): Declare const struct.
+ (mpn_gcd_subdiv_step): Updated prototype.
+
+ * mpn/generic/gcdext_subdiv_step.c: Deleted file.
+
+2010-04-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/lshift.asm: Rewrite.
+ * mpn/powerpc64/rshift.asm: Likewise.
+ * mpn/powerpc64/mode64/lshiftc.asm: New file.
+
+ * mpn/powerpc64/aix.m4: Align functions to 32-byte boundary.
+ * mpn/powerpc64/darwin.m4: Likewise.
+ * mpn/powerpc64/elf.m4: Likewise.
+
+2010-04-28 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-jac.c (check_data): Added some more test cases.
+
+ * mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Bugfix, count
+ trailing zeros, not leading.
+
+2010-04-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/p6/mul_basecase.asm: New file.
+
+2010-04-23 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (MPN_GCD_LEHMER_N_ITCH): Deleted.
+ (mpn_gcd_lehmer_n): Deleted declaration.
+
+ * mpn/generic/gcd.c (gcd_2): Moved from gcd_lehmer.c.
+ (mpn_gcd): Inlined the code from mpn_gcd_lehmer_n. Also use
+ MPN_GCD_SUBDIV_STEP_ITCH rather than MPN_GCD_LEHMER_N_ITCH.
+
+2010-04-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/bdiv_dbm1c.asm: Swap multiply insns to make them
+ consecutive, for the benefit of POWER6.
+
+ * mpn/powerpc64/mode64/p6/gmp-mparam.h: New file.
+
+2010-04-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/gcd_lehmer.c: Deleted file.
+
+ * mpn/powerpc64/mode64/divrem_1.asm: Swap multiply insns to make them
+ consecutive, for the benefit of POWER6.
+ * mpn/powerpc64/mode64/dive_1.asm: Likewise.
+ * mpn/powerpc64/mode64/divrem_2.asm: Likewise.
+ * mpn/powerpc64/mode64/mul_1.asm: Likewise.
+ * mpn/powerpc64/mode64/aorsmul_1.asm: Likewise.
+
+ * mpn/powerpc64/mode64/aorslshC_n.asm: Swap ldx operands as a temporary
+ workaround for POWER6 pipeline glitch.
+
+2010-04-19 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/jacobi.c (mpz_jacobi): New implementation using
+ mpn_jacobi_lehmer. Currently #if:ed out.
+
+ * mpn/generic/jacbase.c (mpn_jacobi_base)
+ [JACOBI_BASE_METHOD < 4]: Support inputs with a >= b.
+
+ * gmp-impl.h (mpn_jacobi_lehmer): Added prototype.
+ (jacobi_table): Declare.
+ (mpn_jacobi_init): New inline function.
+ (mpn_jacobi_finish): Likewise.
+ (mpn_jacobi_update): Likewise.
+
+ * mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): New file, new
+ function.
+
+ * configure.in (gmp_mpn_functions): Added jacobi_lehmer.
+
+2010-04-14 Niels Möller <nisse@lysator.liu.se>
+
+ * configure.in (gmp_mpn_functions): Added
+ matrix22_mul1_inverse_vector.
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
+ matrix22_mul1_inverse_vector.c.
+
+ * gmp-impl.h (mpn_matrix22_mul1_inverse_vector): Updated for
+ rename of mpn_matrix22_mul1_inverse_vector.
+ * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Likewise.
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise.
+ * mpn/generic/hgcd.c (hgcd_step): Likewise.
+
+ * mpn/generic/matrix22_mul1_inverse_vector.c
+ (mpn_matrix22_mul1_inverse_vector): New file, function moved and
+ renamed...
+ * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_inverse_vector):
+ ...from here.
+
+2010-04-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-toom6h.c (SIZE_LOG): Define.
+ * tests/mpn/t-toom8h.c (SIZE_LOG): Likewise.
+
+2010-04-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/lorrshift.asm: Rewrite feed-in and wind-down code.
+
+ * mpn/ia64/aorslsh1_n.asm: Adapt to new aorslsh1_n.
+ * mpn/ia64/aorslsh1_n.asm: Likewise.
+
+ * mpn/ia64/aors_n.asm: Complete rewrite.
+ * mpn/ia64/aorslsh1_n.asm: Likewise.
+
+ * mpn/ia64/add_n_sub_n.asm: Misc cleanups. Add slotting comments.
+
+ * mpn/ia64/lshiftc.asm: New file.
+
+ * mpn/x86_64/pentium4/gmp-mparam.h: No longer disable rsh1add_n and
+ rsh1sub_n; instead disable rsblsh1_n, addlsh2_n, rsblsh2_n.
+
+ * mpn/x86/divrem_2.asm: Use "orb" instead of "or" to work around
+ Solaris assembler bug.
+ * mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise.
+
+ * mpn/x86/aors_n.asm: Use operand-less shift-by-1 insn form.
+ * mpn/x86/pentium/aors_n.asm: Likewise.
+ * mpn/x86_64/invert_limb.asm: Likewise.
+
+ * mpn/x86_64/pentium4/aors_n.asm: Let non-nc code fall into nc code.
+
+ * mpn/x86_64/pentium4/rsh1aors_n.asm: New file.
+
+2010-03-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/add_n_sub_n.asm: New file.
+
+ * mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage.
+ * mpn/generic/toom3_sqr.c: Likewise.
+ * mpn/generic/toom63_mul.c: Likewise.
+
+ * mpn/generic/add_n_sub_n.c: Renamed from addsub_n.c.
+
+2010-03-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_2.asm: Use mpn_invert_limb instead of div insn.
+
+ * mpn/ia64/aorslshC_n.asm: New file, generalised from last iteration of
+ aorslsh1_n.asm.
+ * mpn/ia64/aorslsh1_n.asm: Use aorslshC_n.asm.
+ * mpn/ia64/aorslsh1_n.asm: New file, use aorslshC_n.asm.
+
+2010-03-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/invert_limb.asm: Rewrite to exploit cancellation
+ in the Newton iteration.
+
+2010-03-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_8pts.c: Use mpn_sublsh2_n.
+
+2010-03-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/aorslshC_n.asm: New file, generalised from
+ last iteration of aorslsh1_n.asm.
+ * mpn/powerpc64/mode64/aorslsh1_n.asm: Use aorslshC_n.asm.
+ * mpn/powerpc64/mode64/aorslsh1_n.asm: New file, use aorslshC_n.asm.
+
+2010-03-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/nano/dive_1.asm: New file.
+
+ * mpn/x86_64/divrem_1.asm: Avoid shld since it is slow on several CPU
+ types. Unconditionally provide code for normalised and unnormalised
+ divisors. Cleanup labels.
+
+ * mpn/x86_64/core2/divrem_1.asm: Remove special code for normalised
+ divisors. Cleanup labels.
+
+ * mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and
+ mpn_sublsh_n with correct args.
+
+ * tests/devel/try.c: Use enum for TYPE_*.
+
+ * tests/devel/try.c: Test mpn_sublsh2_n.
+ * tests/refmpn.c (refmpn_sublsh2_n): New function.
+ * tests/tests.h (refmpn_sublsh2_n): Declare.
+
+ * mpn/powerpc64/mode64/aorslsh1_n.asm: New file, with faster
+ mpn_addlsh1_n and mpn_sublsh1_n.
+ * mpn/powerpc64/mode64/addlsh1_n.asm: Delete.
+ * mpn/powerpc64/mode64/sublsh1_n.asm: Delete.
+
+2010-03-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (*-*-aix): Define gcc_32_cflags_maybe, ar_32_flags and
+ nm_32_flags.
+
+ * mpn/x86/pentium4/sse2/addlsh1_n.asm: Tune for slightly better speed.
+ Misc cleanups. Add cycle table.
+
+ * mpn/x86_64/copyi.asm: Update cycle table.
+ * mpn/x86_64/copyd.asm: Likewise.
+ * mpn/x86_64/rsh1aors_n.asm: Likewise.
+ * mpn/x86_64/dive_1.asm: Likewise.
+
+ * mpn/x86/pentium4/sse2/add_n.asm: Misc cleanups. Add cycle table.
+ * mpn/x86/pentium4/sse2/sub_n.asm: Likewise.
+
+2010-03-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_1.asm: Use mpn_invert_limb instead of div insn.
+ * mpn/x86_64/core2/divrem_1.asm: Likewise.
+
+ * tune/speed.c (routine): Add FLAG_R_OPTIONAL for many binops.
+
+2010-03-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/ev6/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite.
+
+ * mpn/ia64/aors_n.asm: Insert explicitly typed nops to trigger intended
+ bundling.
+ * mpn/ia64/aorslsh1_n.asm: Likewise.
+ * mpn/ia64/dive_1.asm: Likewise.
+
+2010-03-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/pentium4/sse2/submul_1.asm: Rewrite.
+
+ * mpn/powerpc64/mode64/aorsmul_1.asm: New file, faster than old code
+ for both mpn_addmul_1 and mpn_submul_1.
+ * mpn/powerpc64/mode64/addmul_1.asm: Remove.
+ * mpn/powerpc64/mode64/submul_1.asm: Remove.
+
+2010-03-11 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcd_lehmer.c (gcd_2): Use sub_ddmmss.
+
+ * mpn/generic/jacbase.c (mpn_jacobi_base): Reorganized the
+ JACOBI_BASE_METHOD 4 slightly. Now requires that b > 1.
+
+2010-03-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_1.asm: Make fraction code take documented # of
+ cycles. Annotate code for more CPUs. Misc cleanups.
+ * mpn/x86_64/core2/divrem_1.asm: Annotate code for more CPUs.
+
+ * mpn/alpha/ev6/mod_1_4.asm: New file.
+
+ * mpn/ia64/mod_34lsub1.asm: New file.
+
+ * doc/gmp.texi (Language Bindings): Update Python site, add Ruby.
+
+2010-03-10 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (tune_jacobi_base): Consider mpn_jacobi_base_4.
+ * tune/speed.c (routine): Added mpn_jacobi_base_4.
+ * tune/common.c (speed_mpn_jacobi_base_4): New function.
+ * tune/speed.h (speed_mpn_jacobi_base_4): Declare it.
+ * tune/Makefile.am (libspeed_la_SOURCES): Added jacbase4.c.
+ * tune/jacbase4.c: New file.
+
+ * mpn/generic/jacbase.c (mpn_jacobi_base): New function, for
+ JACOBI_BASE_METHOD 4.
+
+2010-03-09 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-jac.c (check_large_quotients): Also generate inputs
+ with large quotients and a large gcd.
+
+2010-03-09 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/t-bin.c (randomwalk): New test-generator function.
+
+2010-03-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.c (routine): Force r argument for several mod_1 calls.
+
+2010-03-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_1.asm: Disable SPECIAL_CODE_FOR_NORMALIZED_DIVISOR.
+ Misc clean up.
+
+ * mpn/x86_64/mod_1_1.asm: New file.
+ * mpn/x86_64/mod_1_2.asm: New file.
+ * mpn/x86_64/mod_1_4.asm: Update cycle counts.
+
+ * tests/tests.h (TESTS_REPS): Fix typo.
+
+2010-03-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/divrem_1.asm: New file.
+
+2010-02-26 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.c (routine): Added udiv_qrnnd_preinv3.
+
+ * tune/common.c (speed_udiv_qrnnd_preinv3): New function.
+ * tune/speed.h: Added prototype for it.
+
+2010-02-26 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-jac.c (check_large_quotients): New test. Currently
+ disabled, since it's quite slow.
+ (mpz_nextprime_step): New function.
+
+2010-02-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/pa64/aors_n.asm: Fix typo in last change.
+
+2010-02-25 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-jac.c (ref_jacobi): New reference implementation,
+ using factorization and legendre symbols computed by powm.
+
+ * tests/devel/try.c (param_init, call): Don't pass negative values
+ for the second argument to mpz_jacobi and refmpz_jacobi.
+
+ * tests/refmpz.c (refmpz_jacobi): Require that b is odd and positive.
+
+ * tests/devel/try.c (param_init): Support mpz_legendre.
+ (choice_array): Added mpz_kronecker (apparently forgotten) and
+ mpz_legendre.
+ (call): Added TYPE_MPZ_LEGENDRE.
+ (try_one): Added support for DATA_SRC1_ODD_PRIME.
+
+ * tests/refmpz.c (refmpz_legendre): Rewrote using powm.
+
+2010-02-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Make "corei" default for unrecognised Intel P6 CPUs.
+
+ * tests/mpz/t-perfpow.c (check_random): Use mp_limb_t type for limb
+ variables.
+
+ * tests/mpn/t-toom6h.c (COUNT): Define.
+ * tests/mpn/t-toom8h.c (COUNT): Define.
+
+ * tests/mpn/t-div.c: Cast a switch index to placate HP's cc.
+ * tests/mpn/t-bdiv.c: Likewise.
+
+ * mpn/pa64/aors_n.asm: Fix support of the 2.0n ABI.
+
+2010-02-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpz/t-bin.c (data): Replace (2k,k), tested by twos ().
+ * tests/mpf/t-inp_str.c (data): Test also "+" in the exponent.
+
+2010-02-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_3.c: Cast a switch index to placate HP's cc.
+
+ * mpn/generic/sqrtrem.c: Use CNST_LIMB.
+
+2010-02-20 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.h (mpn_gcd_accel): Deleted prototype.
+ (mpn_hgcd_lehmer): New prototype.
+ (MPN_HGCD_LEHMER_ITCH): New macro (previously in gmp-impl.h).
+
+ * tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_lehmer.c.
+ * tune/hgcd_lehmer.c: New file.
+ * tune/gcd_accel.c: Deleted obsolete file.
+
+ * gmp-impl.h (MPN_HGCD_LEHMER_ITCH): Deleted macro.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_lehmer): Deleted function,
+ (mpn_hgcd): Don't call mpn_hgcd_lehmer, instead use inlined loop
+ around hgcd_step.
+ (mpn_hgcd_itch): Substitute n for MPN_HGCD_LEHMER_ITCH (n).
+
+2010-02-19 Niels Möller <nisse@lysator.liu.se>
+
+ * Makefile.am (mpn/jacobitab.h): Added the rules needed to
+ generate this file.
+
+ * gen-jacobitab.c: New file.
+
+2010-02-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm.c: Honour SQR_BASECASE_THRESHOLD in innerloop
+ expansions.
+
+2010-02-16 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/time.c (cgt_works_p): Added rudimentary sanity check for
+ clock_gettime working.
+
+2010-02-15 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/time.c (speed_time_init): Make use of cycle counter
+ configurable, via the speed_option_cycles_broken flag.
+ * tune/common.c (speed_option_cycles_broken): New global variable.
+ (speed_option_set): Recognize option "cycles-broken".
+
+ * tune/time.c (cycles_works_p): Deleted hack to disable cycle
+ counter on linux. Needs to be replaced by something more
+ selective.
+
+2010-02-11 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/time.c (speed_time_init): Fix speed_time_string when using
+ clock_gettime.
+ (cycles_works_p): On linux, don't use the cycle counter.
+
+ * tune/Makefile.am: Add $(TUNE_LIBS) when linking programs.
+
+ * configure.in: Check if -lrt is needed for clock_gettime, and if
+ so, add that flag to TUNE_LIBS.
+
+2010-02-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_redc): Set min_size and min_is_always when
+ measuring REDC_1_TO_REDC_2_THRESHOLD.
+ (tune_mod_1): Set min_size for PREINV_MOD_1_TO_MOD_1_THRESHOLD.
+
+ * mpn/x86_64/aorrlsh_n.asm (cnt): Fix a typo.
+ * mpn/x86_64/lshsub_n.asm: Likewise.
+
+2010-02-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 5.0.1 released.
+
+ * mpn/generic/powm.c: Use rp target area for power table computation in
+ order to use less scratch.
+
+ * mpn/generic/binvert.c (mpn_binvert_itch): Enable more economical
+ mpn_mulmod_bnm1_itch call.
+
+ * mpn/generic/mu_div_qr.c: Remove always true #if.
+ * mpn/generic/mu_divappr_q.c: Likewise.
+ * mpn/generic/mu_bdiv_q.c: Likewise.
+ * mpn/generic/mu_bdiv_qr.c: Likewise.
+
+2010-02-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
+ Bump version info.
+
+ * mpn/powerpc64/mode64/gmp-mparam.h: Remove {MUL,SQR}_FFT_TABLE2.
+ * mpn/x86/p6/gmp-mparam.h: Likewise.
+ * mpn/x86/p6/mmx/gmp-mparam.h: Likewise.
+ * mpn/generic/mul_fft.c: Don't depend on FFT_TABLE2, it was broken.
+
+2010-01-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft_internal): Remove arguments n, m,
+ k and rec; add argument sqr. Don't call mpn_mul_fft_decompose here,
+ instead do that in all callers.
+ (mpn_mul_fft): Trim allocation when squaring, and use TMP_ALLOC*, not
+ explicit alloc/free.
+ (mpn_fft_div_2exp_modF): Avoid a scalar division.
+ (mpn_fft_mul_modF_K): Replace some multiplies by K with shifting by k.
+ (mpn_fft_mul_2exp_modF): Make function more symmetrical.
+
+2010-01-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): Rewrite.
+ * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Re-enable
+ better mulmod itch estimate.
+ * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
+ * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
+ * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
+
+2010-01-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Disabled guessed
+ estimate, enabled a conservative one.
+ * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
+ * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
+ * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
+
+2010-01-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Partial rewrite to
+ reduce memory usage.
+ * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
+ (mpn_sqrmod_bnm1_next_size): New function.
+
+ * gmp-impl.h (mpn_mulmod_bnm1_itch): Accepts 3 parameters now.
+ (mpn_sqrmod_bnm1_itch): New inline function.
+ (mpn_sqrmod_bnm1_next_size): Declaration and mangling.
+ * mpn/generic/nussbaumer_mul.c: Use the new functions.
+
+ * mpn/generic/invertappr.c (mpn_ni_invertappr): Use new syntax for
+ mpn_mulmod_bnm1_itch.
+ * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise.
+ * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise.
+ * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise.
+ * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Likewise.
+ * mpn/generic/binvert.c (mpn_binvert_itch): Likewise.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): Likewise.
+ (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Likewise.
+
+ * tests/mpn/t-sqrmod_bnm1.c, tests/mpn/t-mulmod_bnm1.c: Test
+ reduced memory usage.
+
+2010-01-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (INSERT_FFTTAB): New macro, like old insertion code but
+ also inserting a sentinel.
+ (fftmes): Use INSERT_FFTTAB for inserting new measurements.
+ Limit k range to best_k - 4 ... best_k + 4.
+
+2010-01-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump.
+ (__GMP_MP_RELEASE): New macro.
+
+ * mpf/div.c: Rewrite to use mpn_div_q.
+
+2010-01-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * Add FFT_TABLE3 tables for a basic set of machines.
+
+ * configure.in: Use -mtune=nocona for 64-bit pentium4.
+
+ * config.guess: Recognise many more Intel processors.
+
+ * tune/common.c: Whitespace cleanup.
+ (speed_mpn_matrix22_mul): Rewrite.
+
+2010-01-21 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Take
+ advantage of new mpn_mulmod_bnm1 interface, to reduce allocation.
+
+ * tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1, main): Adapted to
+ mpn_mulmod_bnm1 interface change.
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Interface change,
+ in case an + bn < rn, only write an + bn output limbs. New input
+ requirement, an + bn > rn/2.
+ * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Corresponding
+ changes.
+
+2010-01-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (fftmes): Round up initial n according to initial k.
+ Limit k to 24 in loop. Remove an obsolete always-true condition.
+ Remove a redundant trace printout.
+
+2010-01-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (fftmes): New function
+ (fft): Rewrite.
+ (mpn_mul_fft_lcm): New function, copied from mpn/generic/mul_fft.c.
+ (fftfill): New function, code taken from mul_fft.c (mpn_mul_fft).
+ (cached_measure): New function.
+
+ * gmp-impl.h (struct fft_table_nk): Moved from mul_fft.c.
+ (MUL_FFT_TABLE3, SQR_FFT_TABLE3): Provide dummy versions for tuneup
+ builds.
+ (FFT_TABLE3_SIZE): Increase value for tuneup builds.
+
+ * mpn/generic/mul_fft.c: Handle a new FFT threshold table type ("3").
+ Misc cleanups to old table type code.
+
+2010-01-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/darwin.m4: Fix typo in last change.
+
+2010-01-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GMP_EXTERN_INLINE): Remove "extern" for newer Sun C.
+
+ * gmp-impl.h (GMP_LIMB_BYTES): New define.
+
+ * mpn/x86_64/darwin.m4 (LEA): New define.
+
+ * mpn/x86/invert_limb.asm (approx_tab): Use DEF_OBJECT.
+ Rename and globalise it to work around Mac OS bug.
+
+ With Philip McLaughlin:
+ * mpn/x86_64/gcd_1.asm (ctz_table): Don't use local prefix, but
+ use DEF_OBJECT...END_OBJECT.
+ Keep stack pointer at ABI mandated alignment over call.
+
+2010-01-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.c (routine): Remove obsolete mpn_dc_tdiv_qr and
+ mpn_dc_div_qr_n.
+ * tune/common.c (speed_mpn_dc_tdiv_qr, speed_mpn_dcpi1_div_qr_n):
+ Remove now unused functions.
+ * tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_N,
+ SPEED_ROUTINE_MPN_DC_DIVREM_SB, SPEED_ROUTINE_MPN_DC_TDIV_QR): Remove
+ now unused macros.
+
+ * mpn/x86_64/fat/fat_entry.asm (mpn_cpuid_available): Remove function.
+
+ * ltmain.sh: Upgrade from 1.5.24 to 2.2.6b.
+ * ylwrap: New file.
+ * .bootstrap: Remove explicit versions.
+
+ * doc/gmp.texi (Block-wise Barrett Division): New node.
+
+ * mpn/generic/powm.c: Change some #if to plain 'if' to avoid fat build
+ problems.
+
+2010-01-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): Accept arguments for size
+ restrictions.
+ * tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
+ (speed_mpn_sbpi1_divappr_q, speed_mpn_dcpi1_divappr_q): Pass size
+ limits for SPEED_ROUTINE_MPN_PI1_DIV.
+
+ * tune/speed.c (routine): Allow .r argument for mpn_sbpi1_divappr_q and
+ mpn_dcpi1_divappr_q.
+
+2010-01-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 5.0.0 released.
+
+ * mpn/generic/div_q.c: Handle mpn_*_divappr_q returning high limb
+ everywhere.
+
+2010-01-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * Update MUL_FFT_TABLE2 and SQR_FFT_TABLE2 for many machines.
+
+ * mpn/generic/mu_div_q.c: Account for divisor truncation error as well
+ as mpn_mu_divappr_q's error.
+
+ * mpn/generic/mu_div_q.c: Handle mpn_preinv_mu_divappr_q returning a
+ high limb.
+
+ * tests/mpn/t-bdiv.c: Move a random call for debugability.
+ * tests/mpn/t-div.c: Likewise.
+
+ * mpn/generic/mu_divappr_q.c: Rewrite quotient round-up code.
+
+ * mpn/generic/mu_div_qr.c: Handle carry-out from a carry propagation
+ subtract.
+ * mpn/generic/mu_divappr_q.c: Likewise.
+
+ * mpn/generic/mu_divappr_q.c
+ (mpn_preinv_mu_divappr_q, mpn_mu_divappr_q): Declare dividend constant.
+ * gmp-impl.h: Likewise.
+
+ * perfpow.c (mpn_perfect_power_p): Call mpn_divexact instead of
+ mpn_bdiv_q (with too little scratch space!).
+
+ From Niels Möller:
+ * tests/mpn/t-div.c (check_one): Get rid of the poorly managed variable
+ tn.
+
+ * mpn/minithres/gmp-mparam.h: Add all lately defined thresholds.
+
+ * mpn/generic/div_q.c: Use SB division for small quotients as well as
+ small divisors. Fix typo in itch call.
+
+2010-01-06 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-div.c (check_one): Checking based on multiplication,
+ refmpn_mul, rather than refmpn_tdiv_qr.
+
+2010-01-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom8h_mul.c: Avoid overflows of mp_size_t.
+
+2010-01-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GNU_MP__): Bump.
+ (__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL):
+ Bump version info.
+ * mp-h.in (__GNU_MP__): Bump.
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
+ Bump version info.
+
+ * doc/gmp.texi: Rewrite mpn_gcdext text. Remove some out-of-date
+ text in Algorithms chapter.
+
+ * mpn/generic/div_q.c: Properly handle np=scratch. Fix critical typo
+ in final adjustment code. Misc cleanups.
+
+ * mpn/generic/rootrem.c: Use mpn_div_q.
+ * mpz/tdiv_q.c: Likewise.
+
+ * tests/mpn/t-div.c: Test mpn_div_q.
+ (SIZE_LOG): Up to 17.
+
+ * mpn/generic/div_q.c: New file.
+ * configure.in (gmp_mpn_functions): Add div_q.
+
+ * mpn/generic/mu_div_q.c: Actually declare dividend constant.
+
+2010-01-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (fft): Separate tuning of modf and full products.
+ (struct fft_param_t): New field, mul_modf_function.
+ (tune_fft_sqr): Fix typo.
+ (tune_fft_mul, tune_fft_sqr): Initialise mul_modf_function field.
+ * tune/common.c (speed_mpn_fft_mul, speed_mpn_fft_sqr): New functions.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Clean up.
+
+ * mpn/generic/mul.c: Simplify rational expression.
+
+ * gmp-impl.h: Cleanup threshold variables; remove obsolete ones and
+ make all possibly needed definitions for existing ones.
+ * tune/tuneup.c (tune_mul): Write fractions-compensated values to
+ threshold variables.
+
+2010-01-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tune/common.c, tune/speed.c, tune/speed.h: Support measuring
+ mpn_toom43_mul.
+
+ * mpn/generic/toom_interpolate_6pts.c: Small reorganisation.
+
+2010-01-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
+ INV_MULMOD_BNM1_THRESHOLD/2 instead.
+
+ * gmp-impl.h (INV_APPR_THRESHOLD, INV_MULMOD_BNM1_THRESHOLD): Default
+ here...
+ * mpn/generic/invert.c, mpn/generic/invertappr.c: ...not here.
+
+ * tests/mpn/t-div.c: Rewrite operand generation code.
+
+2010-01-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to
+ INV_MULMOD_BNM1_THRESHOLD.
+
+2010-01-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/dcpi1_div_q.c: Handle divappr approximation problem more
+ efficiently.
+ * mpn/generic/mu_div_q.c: Likewise.
+
+ * mpn/generic/invert.c: Remove duplicated code.
+
+2010-01-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 0.
+
+ * mpn/generic/mu_div_qr.c: Rewrite to use mpn_mulmod_bnm1. Clean up
+ scratch usage. Improve itch functions.
+ * mpn/generic/mu_divappr_q.c: Likewise.
+ * mpn/generic/mu_bdiv_qr.c: Likewise.
+ * mpn/generic/mu_div_q.c: Likewise.
+
+ * mpn/generic/dcpi1_bdiv_qr.c: Add parameter ASSERTs.
+ * mpn/generic/dcpi1_bdiv_q.c: Likewise.
+
+ * tests/mpn/t-bdiv.c: Replace with unit testing code, based on t-div.c.
+ Increase COUNT to 500.
+
+ * tests/mpn/t-div.c: Avoid generating too small test operands.
+ Move SB suppression limit downwards. Increase COUNT to 200.
+
+2009-12-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/tdiv_qr.c: Handle numerator/remainder overlap in MU case.
+
+ * tests/tests.h (TESTS_REPS): New macro.
+ * tests/mpz/dive.c: Use larger operands, decrease default reps, use
+ TESTS_REPS.
+ * tests/mpz/convert.c: Likewise.
+ * tests/mpz/t-sqrtrem.c: Likewise.
+ * tests/mpz/reuse: Likewise.
+ * tests/mpz/t-root.c: Likewise.
+ * tests/mpz/t-tdiv.c: Likewise.
+ * tests/mpz/t-gcd.c: Likewise.
+ * tests/mpz/t-powm.c: Likewise.
+
+2009-12-31 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom8_sqr.c (SQR_TOOM8_MAX): Avoid overflow.
+ * mpn/generic/toom6_sqr.c (SQR_TOOM6_MAX): Likewise.
+
+ * mpn/generic/mulmod_bnm1.c: Don't mention MISUSE any more,
+ simply consider UNLIKELY any unexpected size.
+
+2009-12-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (speed_mpn_sbordcpi1_div_qr): New function.
+ (tune_mu_div): Use it.
+
+2009-12-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mu_bdiv, tune_dc_bdiv, tune_mu_div)
+ (tune_dc_div): Clear global s.r to make speed functions do 2n/n.
+
+ * tune/speed.c (routine): New entries for mpn_mu_div_qr and
+ mpn_mupi_div_qr. Allow .r parameter for mpn_sbpi1_div_qr,
+ mpn_dcpi1_div_qr.
+ * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV, SPEED_ROUTINE_MPN_MU_DIV_QR)
+ (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Handle .r parameter.
+
+ * tests/mpz/t-tdiv.c: Increase operands size again.
+
+ * mpn/generic/tdiv_qr.c: Attempt to choose between DC and MU cleverer.
+
+ * mpn/generic/tdiv_qr.c: Don't overwrite rp with unnecessary temporary
+ alloc.
+
+2009-12-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mu_div): Tune MUPI_DIV_QR_THRESHOLD.
+ * tune/speed.h (struct speed_params): Allow 3 source operands.
+ (SPEED_ROUTINE_MPN_MUPI_DIV_QR): New macro.
+ * tune/common.c (speed_mpn_mupi_div_qr): New function.
+
+ * mpn/generic/tdiv_qr.c: Call mpn_mu_div_qr.
+
+ * tests/mpz/t-tdiv.c: Use larger test operands.
+
+ * mpn/generic/mu_div_qr.c (mpn_mu_div_qr2): Remove code for dn==1.
+
+ * mpz/mul.c: Call mpn_sqr directly. Use PTR,SIZ,ALLOC.
+
+ * tune/tuneup.c (tune_mu_div): Set min_size to 6, DC functions require
+ this.
+
+ * tests/mpn/t-div.c: Call mu_div functions with operands that generate
+ a high quotient limb.
+
+ * mpn/generic/mu_div_qr.c: Rewrite to return a high quotient limb,
+ to let dividend argument be constant, and as a general cleanup.
+ * mpn/generic/mu_divappr_q.c: Likewise.
+ * mpn/generic/mu_div_q.c: Likewise.
+ * gmp-impl.h: Update declarations of changed functions.
+
+ * mpn/generic/invertappr.c (mpn_invertappr): Allocate scratch space
+ when caller passed NULL.
+
+2009-12-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom_couple_handling.c: Prefix name with mpn_.
+ * gmp-impl.h: Likewise.
+ * mpn/generic/toom63_mul.c: Likewise.
+ * mpn/generic/toom6_sqr.c: Likewise.
+ * mpn/generic/toom6h_mul.c: Likewise.
+ * mpn/generic/toom8_sqr.c: Likewise.
+ * mpn/generic/toom8h_mul.c: Likewise.
+
+ * configure.in (gmp_mpn_functions_optional) Move "com" from here...
+ (gmp_mpn_functions): ...to here.
+ * mpn/generic/com.c: New file.
+ * (mpn_com): New name for mpn_com_n. Make public.
+ * (mpn_neg): Analogous changes.
+
+ * tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Set step_factor.
+
+ * tune/common.c, tune/speed.c, tune/speed.h: Support measuring
+ mpn_lshiftc.
+
+ * tests/devel/try.c: Test mpn_lshiftc.
+ * tests/refmpn.c (refmpn_com): New function.
+ (refmpn_lshiftc): Likewise.
+
+ * configure.in (gmp_mpn_functions_optional) Move lshiftc from here...
+ (gmp_mpn_functions): ...to here.
+ * mpn/generic/lshiftc.c: New file.
+ * mpn/x86_64/lshiftc.asm: New file.
+ * mpn/x86_64/core2/lshiftc.asm: New file.
+ * mpn/generic/mul_fft.c (mpn_lshiftc): Remove.
+
+ * mpn/x86_64/core2/lshift.asm: Tweak for better Core iN performance.
+ * mpn/x86_64/core2/rshift.asm: Likewise.
+
+2009-12-27 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mul.c: Use toom6h and toom8h for almost balanced.
+
+ * mpn/generic/mullo_n.c (mpn_dc_mullo_n): New ratio, to be used in
+ Toom-8 range.
+
+2009-12-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * (mpn_sqr): New name for mpn_sqr_n. Many files affected.
+
+ * tune/tuneup.c (tune_mullo): Up step_factor for MULLO_MUL_N_THRESHOLD.
+ (tune_invertappr, tune_invert, tune_binvert): Let max_size default.
+
+ * tune/tuneup.c (tune_mu_div, tune_mu_bdiv) New functions.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MU_DIV_Q): New macro.
+ (SPEED_ROUTINE_MPN_MU_DIV_QR): Likewise.
+ (SPEED_ROUTINE_MPN_MU_BDIV_Q): Likewise.
+ (SPEED_ROUTINE_MPN_MU_BDIV_QR): Likewise.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add bdiv_q.c and bdiv_qr.c.
+ * tune/common.c (speed_mpn_mu_div_qr): New function.
+ (speed_mpn_mu_divappr_q): Likewise.
+ (speed_mpn_mu_div_q): Likewise.
+ (speed_mpn_mu_bdiv_q): Likewise.
+ (speed_mpn_mu_bdiv_qr): Likewise.
+
+ * mpn/*/gmp-mparam.h: Fix incorrect MOD_1U_TO_MOD_1_1_THRESHOLD 0
+ values.
+
+ * gmp-impl.h (MODEXACT_1_ODD_THRESHOLD): Remove.
+ (BMOD_1_TO_MOD_1_THRESHOLD): New parameter, with the reverse meaning of
+ MODEXACT_1_ODD_THRESHOLD.
+ (MPN_MOD_OR_MODEXACT_1_ODD): Use BMOD_1_TO_MOD_1_THRESHOLD.
+ * mpn/generic/divis.c, mpz/{cong.c,cong_ui.c,divis_ui.c}: Likewise.
+ * tune/tuneup.c (tune_modexact_1_odd): Tune BMOD_1_TO_MOD_1_THRESHOLD;
+ Do not assume native mpn_modexact_1_odd is faster than mpn_mod_1.
+ (tuned_speed_mpn_mod_1): Remove variable.
+ (tune_mod_1): Fix thinkos. Suppress printing of "always" etc.
+ (all): Measure for divrem_1, mod_1, divexact_1, etc first, since Toom
+ depends on some of them.
+
+ * mpn/generic/toom22_mul.c (TOOM22_MUL_REC): New name for
+ TOOM22_MUL_MN_REC.
+
+2009-12-26 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Relax
+ requirements a bit.
+
+ * mpn/generic/toom32_mul.c (mpn_toom32_mul): Relax requirement on
+ input sizes, to support s+t>=n (used to be s+t>=n+2). Keep high
+ limbs of the evaluated values in scalar variables.
+
+ * mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Remove
+ unused variables.
+
+ * mpn/generic/toom32_mul.c (mpn_toom32_mul): Fixed left-over use
+ of mpn_addsub_n which should be mpn_add_n_sub_n.
+
+2009-12-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add new toom files (spotted by Torbjorn).
+
+ * gmp-impl.h (mpn_toom6_sqr_itch): Rename to mpn_toom6_mul_n_itch and redefine.
+ (mpn_toom8_sqr_itch): Rename to mpn_toom8_mul_n_itch and redefine.
+ * mpn/generic/mul_n.c: Use renamed _itch macros.
+
+2009-12-25 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Tightened requirements.
+ * gmp-impl.h (mpn_toom32_mul_itch): Updated. Less scratch needed
+ by toom32 itself, and also the pointwise multiplications are
+ currently mpn_mul_n with no supplied scratch.
+ * mpn/generic/toom32_mul.c (mpn_toom32_mul): Reorganized
+ interpolation to use less scratch space. No longer supports the
+ most extreme size ratios.
+
+2009-12-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_preinv_mod_1): Purge.
+ (tune_mod_1): Use speed_mpn_mod_1_tune for
+ PREINV_MOD_1_TO_MOD_1_THRESHOLD
+
+ * mpn/generic/dcpi1_divappr_q.c: Handle 2n/n properly. Don't use full
+ precision in mpn_sbpi1_divappr_q call. Misc cleanup.
+
+ * tune/tuneup.c (tune_mod_1): Add a check_size for
+ PREINV_MOD_1_TO_MOD_1_THRESHOLD.
+
+2009-12-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/mod_1_div.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
+ (MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
+ * tune/mod_1_inv.c (MOD_1N_TO_MOD_1_1_THRESHOLD,
+ (MOD_1U_TO_MOD_1_1_THRESHOLD): Set.
+
+ * gmp-impl.h (USE_PREINV_MOD_1): Remove.
+ (MPN_MOD_OR_PREINV_MOD_1): Define to choose functions dynamically in
+ terms of PREINV_MOD_1_TO_MOD_1_THRESHOLD (used to choose statically
+ using USE_PREINV_MOD_1).
+ * mpn/generic/perfsqr.c (PERFSQR_MOD_PP): Corresponding updates.
+
+ * tune/tuneup.c (tune_mod_1): Rewrite.
+ * gmp-impl.h (MOD_1N_TO_MOD_1_1_THRESHOLD): New.
+ (MOD_1U_TO_MOD_1_1_THRESHOLD): New name for MOD_1_1_THRESHOLD.
+ (MOD_1_1_TO_MOD_1_2_THRESHOLD): Mew name for MOD_1_2_THRESHOLD.
+ (MOD_1_2_TO_MOD_1_4_THRESHOLD): New name for MOD_1_4_THRESHOLD.
+ * mpn/generic/mod_1.c: Corresponding updates.
+
+2009-12-24 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mul_n.c: Use also toom6h and toom8h.
+ * mpn/generic/sqr_n.c: Use also toom6 and toom8.
+ * gmp-impl.h: Initial support for tuning of Toom-6half and Toom-8half.
+ * tune/tuneup.c: Tune Toom-6half and Toom-8half thresholds.
+
+2009-12-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_4.c: Get ASSERT right.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_2.c: Likewise.
+
+ * mpn/generic/powm_sec.c: Use SQR_TOOM2_THRESHOLD as limit for a native
+ mpn_sqr_basecase, not TUNE_SQR_TOOM2_MAX.
+
+2009-12-23 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
+ mpn_toom8h_mul and mpn_toom8_sqr speed.
+
+ * mpn/generic/toom_eval_pm2exp.c: Fix ASSERTs.
+
+ * mpn/generic/toom8h_mul.c: New file.
+ * mpn/generic/toom8_sqr.c: New file.
+ * mpn/generic/toom_interpolate_16pts.c: New file.
+ * gmp-impl.h: Provide corresponding declarations.
+ * configure.in (gmp_mpn_functions): List toom_interpolate_16pts,
+ toom8h_mul, and toom8h_sqr.
+ * tests/mpn/t-toom8h.c: New test program.
+
+ * mpn/generic/toom6_sqr.c: New file, was part of toom6h_mul.
+ * mpn/generic/toom6h_mul.c: Removed _sqr.
+
+ * mpn/generic/mulmod_bnm1.c: Nailify CRT.
+ * mpn/generic/sqrmod_bnm1.c: Likewise.
+
+ * mpn/generic/mullo_n.c: Split dc_mullo_n function;
+ ALLOC memory at once.
+
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Update.
+
+ * mpn/generic/toom6h_mul.c: Add prefix to toom_interpolate_12pts.
+ * mpn/generic/toom_interpolate_12pts.c: Likewise.
+
+ * mpn/generic/invertappr.c (mpn_bc_invertappr): Use mpn_divrem_2.
+ * mpn/generic/invert.c: Faster basecase, use mpn_sbpi1_div_q.
+
+ * mpn/generic/toom_eval_pm2exp.c: Assert support for degree 3.
+ * mpn/generic/toom6h_mul.c: Avoid obsolete _itch function.
+
+2009-12-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
+ mpn_mod_1_1p, mpn_mod_1s_2p, mpn_mod_1s_3p, mpn_mod_1s_4p.
+
+ * tests/mpz/t-powm.c: Test mpz_powm_sec.
+
+ * mpz/powm_sec.c: New file.
+ * gmp-h.in: Declare it.
+ * Makefile.am, mpz/Makefile.am: Compile it.
+ * doc/gmp.texi: Document it.
+
+ * mpn/generic/powm_sec.c (mpn_powm_sec_itch): New function.
+ (mpn_powm_sec): Use passed scratch, no local allocation.
+ Allow exp argument = 1.
+ (win_size): Start loop from 1.
+
+ * mpn/generic/powm.c (win_size): Start loop from 1.
+
+2009-12-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-div.c: New file.
+ * tests/mpn/Makefile.am: Compile it.
+
+ * mpn/generic/mu_divappr_q.c: Handle quotient overflow.
+
+ * mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): New function.
+
+2009-12-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sbpi1_div_q.c: Use udiv_qr_3by2. Intended to change
+ nothing after preprocessing.
+
+ * mpn/generic/sbpi1_divappr_q.c: For the last call to udiv_qr_3by2,
+ avoid using memory locations as output parameters, and revert to
+ explicitly copying n1 and n0 to memory.
+
+ * gmp-impl.h (udiv_qr_3by2): Tweaked to expand to precisely the
+ same code as was used before the introduction of this macro.
+ Eliminated some local variables, instead do multiple updates to
+ the output parameters.
+
+2009-12-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-toom6h.c (MIN_AN): Set to MUL_TOOM6H_THRESHOLD to avoid
+ invalid recursive sizes.
+
+ * tests/mpn/t-bdiv.c: Get itch function calls right.
+
+ * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Rewrite.
+ * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify.
+
+ * mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Simplify, don't allocate.
+ (mpn_bdiv_qr_itch): Conditionalise on MU_BDIV_QR_THRESHOLD.
+
+2009-12-18 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-bdiv.c: Add red-zones.
+
+2009-12-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/sbpi1_div_q.c: Fix fixup code to work for qn = 0.
+
+ * mpn/generic/dcpi1_divappr_q.c: Handle qn = 1 and qn = 2 for initial
+ quotient block (code block copied from dcpi1_div_qr.c).
+
+ * mpn/generic/dcpi1_div_qr.c: Rewrite singular case giving q limb of
+ GMP_NUMB_MAX. Remove an impossible qn = 0 case.
+
+ * mpn/generic/dcpi1_bdiv_q.c: Remove a spurious mpn_sub_1.
+
+ * mpn/generic/mul.c: Put back call to mpn_mul_n.
+
+ * tune/tuneup.c (all): Call tune_mulmod_bnm1 before tuning fft due to
+ dependency on mulmod_bnm1 from both mul_fft_mul and from mullo_n.
+
+ * mpn/generic/dcpi1_divappr_q.c: ASSERT that dn >= 6 and nn > dn.
+ * mpn/generic/dcpi1_div_q.c: ASSERT that dn >= 6 and nn-dn >= 3.
+ * mpn/generic/dcpi1_div_qr.c: ASSERT that dn >= 6 and nn-dn >= 3.
+
+ * mpn/generic/bdiv_q_1.c (mpn_pi1_bdiv_q_1): Renamed from
+ mpn_bdiv_q_1_pi1.
+ * All references changed.
+
+ * configure.in: Add --enable-old-fft-full.
+ * tune/speed.c (routine): Conditionalise mpn_mul_fft_full references on
+ WANT_OLD_FFT_FULL.
+ * tune/common.c (speed_mpn_mul_fft_full)
+ (speed_mpn_mul_fft_full_sqr): Likewise.
+ * mpn/generic/mul_fft.c (mpn_mul_fft_full): Include iff
+ WANT_OLD_FFT_FULL.
+
+2009-12-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (mpn_toom6h_mul_itch): New inline function.
+ (MUL_TOOM6H_THRESHOLD): Default value.
+ (SQR_TOOM6_THRESHOLD): Default value.
+ * mpn/generic/toom6h_mul.c: Remove definitions moved to gmp-impl.h.
+ * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring
+ mpn_toom6h_mul and mpn_toom6_sqr speed.
+
+ * mpn/generic/toom63_mul.c: Remove unused TMP_*.
+
+ * mpn/generic/toom_eval_pm2rexp.c: New file.
+ * gmp-impl.h: Provide corresponding declaration.
+ * configure.in (gmp_mpn_functions): List toom_eval_pm2rexp.
+ * mpn/generic/toom6h_mul.c: Use shared toom_eval_pm2rexp.
+
+ * mpn/generic/toom_couple_handling.c: New file, helper function
+ for high degree Toom.
+ * gmp-impl.h: Provide corresponding declaration.
+ * configure.in (gmp_mpn_functions): List toom_couple_handling.
+ * mpn/generic/toom6h_mul.c: Use shared toom_couple_handling.
+ * mpn/generic/toom63_mul.c: Likewise.
+
+ * mpn/generic/toom6h_mul.c: New file.
+ * mpn/generic/toom_interpolate_12pts.c: New file.
+ * gmp-impl.h: Provide corresponding declarations.
+ * configure.in (gmp_mpn_functions): List toom_interpolate_12pts,
+ toom6h_mul.
+ * tests/mpn/t-toom6h.c: New test program.
+
+ * tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1): Use ref_mul.
+ * tests/mpn/t-sqrmod_bnm1.c (ref_sqrmod_bnm1): Likewise.
+
+2009-12-20 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): New CRT.
+ * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise.
+
+2009-12-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * Change all bit counts for bignums to use mp_bitcnt_t.
+
+ * mpn/generic/bdivmod.c: File removed. All references purged.
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft_full): Disable.
+
+ * gmp-impl.h: Define mpn_fft_mul as an alias for mpn_nussbaumer_mul.
+ * mpn/generic/mul.c: Refer mpn_fft_mul.
+ * mpn/generic/mul_n.c: Likewise.
+ * mpn/generic/sqr_n.c: Likewise.
+ * mpn/generic/mullo_n.c: Likewise.
+
+ * mpn/generic/mul.c: Loop also over mpn_nussbaumer_mul, as suggested by
+ Marco. Use TMP_SALLOC_LIMBS in more places. Clean up ws allocation.
+
+2009-12-19 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_8pts.c: Nailify.
+
+2009-12-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul.c: Major rewrite. Use toom43, toom53, toom63.
+ Call mpn_nussbaumer_mul for largest operands.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM43_MUL): New macro.
+ (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM32_MUL): New macro.
+ (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM53_MUL): New macro.
+ (SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM32_MUL): New macro.
+ (SPEED_ROUTINE_MPN_TOOM42_FOR_TOOM53_MUL): New macro.
+ (SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM42_MUL): New macro.
+ * tune/common.c (speed_mpn_toom63_mul): New function.
+ (speed_mpn_toom32_for_toom43_mul): New function.
+ (speed_mpn_toom43_for_toom32_mul): New function.
+ (speed_mpn_toom32_for_toom53_mul): New function.
+ (speed_mpn_toom53_for_toom32_mul): New function.
+ (speed_mpn_toom42_for_toom53_mul): New function.
+ (speed_mpn_toom53_for_toom42_mul): New function.
+ * tune/tuneup.c (tune_mul_n): New name for old tune_mul.
+ (tune_sqr_n): New name for old tune_sqr.
+ (tune_mul): New function, for unbalanced multiplication.
+ * gmp-impl.h: Provide declarations for corresponding threshold vars.
+
+ * gmp-impl.h (mpn_rsh1add_nc, mpn_rsh1sub_nc): Declare.
+ * mpn/asm-defs.m4: Likewise.
+ * configure.in: Add corresponding HAVE_NATIVEs.
+ * mpn/x86_64/rsh1aors_n.asm: Add _nc entry point.
+
+2009-12-18 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/divexact.c: Rewrite to use mpn_divexact.
+
+ * mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Deleted some unused
+ variables.
+
+ * mpn/generic/toom52_mul.c (mpn_toom52_mul)
+ [HAVE_NATIVE_mpn_add_n_sub_n]: Moved declaration of cy to avoid a
+ compiler warning.
+
+ * gmp-impl.h (gmp_pi1_t): Eliminated inv21 member.
+ (invert_pi1): ...and don't store it here.
+
+ * mpn/generic/toom63_mul.c (mpn_toom63_mul): Simplified
+ calculation of block size n.
+ * gmp-impl.h (mpn_toom63_mul_itch): Likewise.
+
+ * mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Fixed
+ output asserts.
+
+2009-12-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-toom63.c: New test program.
+
+2009-12-18 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/invert.c: Nailify.
+ * mpn/generic/invertappr.c: Nailify.
+ * mpn/generic/mulmod_bnm1.c: Nailify.
+ * mpn/generic/sqrmod_bnm1.c: Nailify.
+
+ * tests/mpn/t-invert.c: New test program.
+
+ * mpn/generic/toom63_mul.c: New file.
+ * mpn/generic/toom_interpolate_8pts.c: New file.
+ * gmp-impl.h: Provide corresponding declarations.
+ * configure.in (gmp_mpn_functions): List toom_interpolate_8pts and
+ toom63_mul.
+
+2009-12-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul.c: Move allocation of ws to where it is used.
+ Identify toom22, 32, 42, in that order (in two places). Use midline
+ between toom22, 32, 42.
+ * mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): Call also
+ mpn_toom32_mul.
+
+ * doc/gmp.texi: Update References section. Update Contributors
+ section. Misc updates.
+
+ * gmp-impl.h: Renew default values for all THRESHOLDs.
+
+2009-12-17 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/divexact.c (mpn_divexact): Don't require that the
+ dividend is normalized. Use MPN_DIVREM_OR_PREINV_DIVREM_1. When
+ shifting, allocate and process only the low qn+1 limbs. Eliminated
+ code for the impossible case nn < qn.
+
+ * mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): Added some input
+ asserts.
+
+ * mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): In the case that
+ the initial quotient block is a single limb, use 3/2 division,
+ thereby eliminating the only use of gmp_pi1_t->inv21.
+
+2009-12-17 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/invert.c: Added some comment.
+ * mpn/generic/invertappr.c: Slightly better threshold handling.
+ * gmp-impl.h (INV_NEWTON_THRESHOLD): Default to 200.
+
+ * mpn/generic/nussbaumer_mul.c: New file.
+ * configure.in (gmp_mpn_functions): Add nussbaumer_mul.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add nussbaumer_mul.
+ * gmp-impl.h (mpn_nussbaumer_mul): Added prototype and name-mangling.
+ * tune/speed.h (speed_mpn_nussbaumer_mul): Declare function.
+ * tune/common.c (speed_mpn_nussbaumer_mul): New function.
+ * tune/speed.c (routine): Add speed_mpn_nussbaumer_mul.
+
+ * mpn/generic/sqrmod_bnm1.c: New file.
+ * configure.in (gmp_mpn_functions): Add sqrmod_bnm1.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrmod_bnm1.
+ * gmp-impl.h (mpn_sqrmod_bnm1): Added prototype and name-mangling.
+ (SQRMOD_BNM1_THRESHOLD): support for the new threshold.
+ * tune/speed.h (speed_mpn_sqrmod_bnm1): Declare function.
+ * tune/common.c (speed_mpn_sqrmod_bnm1): New function.
+ * tune/speed.c (routine): Add speed_mpn_sqrmod_bnm1.
+ * tests/mpn/t-mulmod_bnm1.c: Attribution.
+ * tests/mpn/t-sqrmod_bnm1.c: New test file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add t-sqrmod_bnm1.
+
+ * tune/tuneup.c: Tune SQRMOD_BNM1_THRESHOLD.
+
+ * mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Mimic fft_mul,
+ use squaring if operands coincide.
+ * tune/speed.h (speed_mpn_nussbaumer_mul_sqr): Declare function.
+ * tune/common.c (speed_mpn_nussbaumer_mul_sqr): New function.
+ * tune/speed.c (routine): Add speed_mpn_nussbaumer_mul_sqr.
+
+2009-12-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/bdiv_q.c (mpn_bdiv_q_itch): Rewrite.
+
+2009-12-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpn/t-bdiv.c (bdiv_q_valid_p, bdiv_qr_valid_p): Call refmpn_mul
+ instead of refmpn_mul_basecase.
+ * tests/mpn/toom-shared.h: Likewise.
+ * tests/refmpn.c (refmpn_mullo_n,refmpn_sqr,refmpn_mul_any): Likewise.
+
+ * minithres/gmp-mparam.h: Add new thresholds, trim old values.
+
+ * mpn/generic/powm.c: Use mp_bitcnt_t for bit counts.
+ Handle REDC_1_TO_REDC_N_THRESHOLD < MUL_TOOM22_THRESHOLD in
+ non-WANT_REDC_2 INNERLOOP expansion code.
+ * mpn/generic/powm_sec.c: Use mp_bitcnt_t for bit counts.
+
+2009-12-16 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-gcd.c (main): Added test case to exercise the
+ unlikely u0 == u1 case in mpn_gcdext_lehmer_n.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Get ASSERT
+ right.
+
+2009-12-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-mul.c: Misc cleanups.
+ (mul_basecase): Remove.
+ (ref_mpn_mul): Remove.
+ * tests/refmpn.c (refmpn_mul): New function, mainly from t-mul.c's
+ ref_mpn_mul.
+ (refmpn_mullo_n): Add a missing free.
+
+ * tune/speed.c (routine): Measure speed_mpn_{sb,dc}pi1_div_qr,
+ mpn_{sb,dc}pi1_divappr_q, mpn_{sb,dc}pi1_bdiv_qr, and
+ mpn_{sb,dc}pi1_bdiv_q.
+
+ * mpn/generic/invertappr.c: New file, meat from invert.c.
+ * mpn/generic/invert.c: Leave just mpn_invert.c.
+ * configure.in (gmp_mpn_functions): Add invertappr.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invertappr.c.
+ * gmp-impl.h (mpn_invert_itch, mpn_invertappr_itch): New macros.
+
+2009-12-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/gcdext_subdiv_step.c: Get an ASSERT right.
+
+2009-12-15 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): A very small step
+ towards nail support.
+
+2009-12-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h (mpn_ni_invertappr): Added prototype and name-mangling.
+ * mpn/generic/mulmod_bnm1.c: Comment representation of class [0].
+
+2009-12-14 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Use
+ udiv_qr_3by2.
+
+2009-12-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_binvert): Remove BINV_MULMOD_BNM1_THRESHOLD
+ tuning, it was always zero and caused BINV_NEWTON_THRESHOLD to be
+ wrong (as pointed out by Marco).
+ * (BINV_MULMOD_BNM1_THRESHOLD): Clean from other files too.
+
+2009-12-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/invert.c: Improved comments.
+ (mpn_bc_invertappr): Conditionally re-enable mpn_dcpi1_divappr_q.
+
+2009-12-14 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (udiv_qr_3by2): Fix typo in argument list.
+
+2009-12-13 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (udiv_qr_3by2): New macro.
+ * mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): Use udiv_qr_3by2.
+
+2009-12-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q): Avoid a buffer
+ overrun.
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft_full): Handle carry-out from 2nd
+ mpn_mul_fft, add an ASSERT for the 1st mpn_mul_fft. Replace some
+ comments on cc's range with ASSERTs.
+
+ * mpn/generic/gcdext.c (compute_v): Normalise tp[] after mpn_mul.
+
+ * mpz/powm.c: Rework buffer handling.
+
+2009-12-13 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/toom-shared.h (main): Use refmpn_mul_basecase to check
+ results (slow!). Iteration counts of all toom tests reduced
+ considerably.
+
+2009-12-13 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/invert.c (mpn_invertapp): Split in _bc and _ni.
+ (mpn_bc_invertappr): New function, the basecase.
+ (mpn_ni_invertapp): New function, Newton iteration.
+ (mpn_invert): Use mpn_ni_invertapp.
+ * tune/tuneup.c (tune_invert): Min for INV_APPR_THRESHOLD.
+ (tune_invertappr): Min for INV_NEWTON_THRESHOLD.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_NI_INVERTAPPR): New macro.
+ (speed_mpn_ni_invertappr): Declare function.
+ * tune/common.c (speed_mpn_ni_invertappr): New function.
+ * tune/speed.c (routine): Add speed_mpn_ni_invertappr.
+
+ * tune/tuneup.c (tune_invertappr): Use speed_mpn_ni_invertappr to
+ tune INV_MULMOD_BNM1_THRESHOLD.
+
+2009-12-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Rewrite.
+
+2009-12-12 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpn/t-mulmod_bnm1.c (main): Disable B^n+1 stressing test
+ for odd sizes.
+
+ * mpn/generic/invert.c: Complete rewrite. Uses Newton iterations.
+ * gmp-impl.h (mpn_invertappr): Added prototype and name-mangling.
+ (mpn_invertappr_itch): Added prototype and name-mangling.
+ (INV_APPR_THRESHOLD): Support for a new tunable const.
+ * tune/speed.h (SPEED_ROUTINE_MPN_INVERTAPPR): New macro.
+ (speed_mpn_invertappr): Declare function.
+ * tune/common.c (speed_mpn_invertappr): New function.
+ * tune/speed.c (routine): Add speed_mpn_invertappr.
+ * tune/tuneup.c (tune_invertappr): New function: was tune_invert.
+ (tune_invert): Now tune only INV_APPR_THRESHOLD.
+ (all): Enable call to tune_invert and tune_invertappr.
+
+2009-12-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/binvert.c: Use mpn_mulmod_bnm1 instead of FFT wrapping.
+ Old, evidently broken wrapping code removed.
+ * tune/tuneup.c (tune_binvert): Tune BINV_MULMOD_BNM1_THRESHOLD.
+ * gmp-impl.h: Provide declarations for corresponding threshold var.
+
+ * tests/mpn/t-bdiv.c (COUNT): Decrease to keep run time reasonable.
+
+ * tune/tuneup.c (tune_invert): Tune INV_MULMOD_BNM1_THRESHOLD.
+ * gmp-impl.h: Provide declarations for corresponding threshold var.
+
+ * tests/mpn/t-mulmod_bnm1.c: Avoid a division by zero.
+
+ * configure.in: Set up different paths for different 64-bit sparc
+ processors.
+ * mpn/sparc64/ultrasparc34/gmp-mparam.h: New file.
+
+2009-12-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/*/gmp-mparam.h: Regenerate many of these files.
+
+2009-12-10 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (mpn_divexact): Removed scratch pointer from
+ prototype.
+ * mpn/generic/gcdext.c (divexact): Deleted, moved to...
+ * mpn/generic/divexact.c (mpn_divexact): New implementation (moved
+ from gcdext.c). The bidirectional divexact is kept but #if:ed out.
+ Interface change, since the new code doesn't take a scratch
+ argument.
+
+ * tests/mpn/t-mulmod_bnm1.c (main): Ensure that an >= bn. Lowered
+ MIN_N to 1. Various fixes to handle n == 1 properly.
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Small interface
+ change, require an >= bn.
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Fixed non-recursive
+ case to not write beyond end of result area.
+
+2009-12-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): New macro, made
+ from now deleted SPEED_ROUTINE_MPN_MULMOD_BNM1.
+ * tune/common.c (speed_mpn_bc_mulmod_bnm1): New function.
+ (speed_mpn_mulmod_bnm1): Use SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL.
+ * tune/speed.c (routine): Add mpn_bc_mulmod_bnm1.
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
+
+ * tune/tuneup.c (tune_mulmod_bnm1): Rewrite.
+
+2009-12-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mulmod_bnm1.c (mpn_bc_mulmod_bnm1,
+ mpn_bc_mulmod_bnp1): Added a parameter for scratch area, possibly
+ same as result area (as suggested by Niels Möller).
+ (mpn_mulmod_bnm1): Calls changed accordingly.
+
+2009-12-08 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Use
+ table lookup for count_trailing_zeros. Binary algorithm still
+ disabled by default.
+
+ * mpn/generic/gcdext.c (divexact): Local definition of divexact,
+ using mpn_bdiv_q.
+ (compute_v): Use it.
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-bdiv.
+
+ * tests/mpn/t-bdiv.c: New file.
+
+ * mpn/generic/bdiv_q.c (mpn_bdiv_q): Fixed bad quotient length,
+ should have qn == nn.
+
+ * mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Pass correct nn length to
+ the lower-level functions.
+
+2009-12-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): New define.
+ * tune/common.c (speed_mpn_mulmod_bnm1_rounded): New function.
+ * tune/speed.c (routine): Add mpn_mulmod_bnm1_rounded for measuring
+ mpn_mulmod_bnm1 at recommended sizes.
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite.
+ (mpn_bc_mulmod_bnm1): Use mpn_add_n instead of mpn_add.
+
+ * tune/speed.c (routine): Add mpn_invert.
+
+ * tune/tuneup.c (tune_invert): New function.
+ * tune/speed.h (SPEED_ROUTINE_MPN_INVERT): New macro.
+ * tune/common.c (speed_mpn_invert): New function.
+ * gmp-impl.h: Provide declarations for corresponding threshold var.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invert.c.
+
+2009-12-08 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/devel/try.c: Test mpn_addlsh2_n and mpn_{add,sub}lsh_n;
+ mpn_rsblsh_n now tests all shift values.
+ * tests/refmpn.c (refmpn_addlsh_n, refmpn_sublsh_n): New functions.
+ (refmpn_addlsh1_n): Use generic refmpn_addlsh_n.
+ (refmpn_sublsh1_n): Use generic refmpn_sublsh_n.
+ (refmpn_addlsh2_n): New function.
+ * tests/tests.h: Declare new functions.
+
+2009-12-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mulmod_bnm1): Up min_size to 12.
+
+ * Globally: Rename *mullow* to *mullo*, *MULLOW* to *MULLO*.
+
+ * configure.in: Don't include ev5 directory for ev6* and ev7. Misc
+ alpha path cleanups.
+ * mpn/alpha/add_n.asm: Replaced by mpn/alpha/ev5/add_n.asm.
+ * mpn/alpha/sub_n.asm: Replaced by mpn/alpha/ev5/sub_n.asm.
+ * mpn/alpha/lshift.asm: Replaced by mpn/alpha/ev5/lshift.asm.
+ * mpn/alpha/rshift.asm: Replaced by mpn/alpha/ev5/rshift.asm.
+ * mpn/alpha/com_n.asm: New, moved from mpn/alpha/ev5/rshift.asm.
+ * mpn/alpha/ev5/diveby3.asm: New, moved from mpn/alpha/diveby3.asm.
+
+ * mpn/powerpc64/mode64/diveby3.asm: Remove, it is slower than
+ mpn_bdiv_dbm1c on all hardware.
+
+ * mpn/generic/powm_sec.c: Rework logic for mpn_sqr_basecase size limit.
+
+ * gmp-impl.h (mpn_redc_1_sec): Declare.
+ * configure.in (gmp_mpn_functions): Add redc_1_sec.
+
+2009-12-06 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/devel/try.c (try_one): DATA_SRC0_HIGHBIT sets the high bit.
+
+2009-12-05 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_eval_dgr3_pm1.c: Change return value: 0 or ~0.
+ * mpn/generic/toom_eval_dgr3_pm2.c: Likewise.
+ * mpn/generic/toom_eval_pm1.c: Likewise.
+ * mpn/generic/toom_eval_pm2exp.c: Likewise.
+ * mpn/generic/toom_eval_pm2.c: Rewrite to use mpn_addlsh2_n.
+
+ * mpn/generic/toom_interpolate_5pts.c: Param sa is a flag, not a sign.
+
+ * mpn/generic/toom33_mul.c: Adapt to changes above.
+ * mpn/generic/toom3_sqr.c: Likewise.
+ * mpn/generic/toom42_mul.c: Likewise.
+ * mpn/generic/toom43_mul.c: Reduce branches.
+ * mpn/generic/toom44_mul.c: Likewise.
+ * mpn/generic/toom53_mul.c: Likewise.
+ * mpn/generic/toom62_mul.c: Likewise.
+
+ * mpn/generic/toom52_mul.c: Use toom_eval_ functions.
+
+ * mpn/generic/toom4_sqr.c: Avoid C99 construct.
+ * mpn/generic/toom_interpolate_7pts.c: Likewise.
+
+2009-12-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_1_sec.c: New file.
+ * mpn/generic/powm_sec.c: Use redc_1_sec. Use dummy full subtract
+ instead of mpn_cmp since the latter leaks to the side channel.
+ (mpn_local_sqr_n): New function, with associated macros.
+ (mpn_powm_sec): Use mpn_local_sqr_n.
+
+ * configure.in (HAVE_NATIVE): Add missing functions, then sort.
+
+2009-12-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_dc_div): Up min_size to 6.
+ (tune_mod_1): Set MOD_1_1_THRESHOLD min_size to 2.
+
+ * tune/speed.h: Negate "binvert"-type inverses, as required.
+
+ * mpn/generic/redc_1.c: Add ASSERTs.
+ * mpn/generic/redc_2.c: Likewise.
+
+ * mpn/generic/sbpi1_bdiv_q.c: Simplify loops, indexing.
+
+2009-12-03 Yann Droneaud <yann@droneaud.fr>
+
+ * acinclude.m4 ([long long reliability test 1]): Add a "static" for C99
+ inline semantics compatibility.
+
+2009-12-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Move intptr_t test into common AC_CHECK_TYPES.
+
+ * mpn/generic/gcdext.c: Add a TMP_FREE.
+
+2009-12-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
+ Added various masking tricks.
+
+ * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]:
+ Reimplemented binary gcdext, with proper canonicalization.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Handle v == 0
+ from mpn_gcdext_1.
+ * mpn/generic/gcdext_1.c (mpn_gcdext_1): Allow inputs with a < b,
+ assertions fixed accordingly.
+
+2009-12-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c: Tune DC_DIVAPPR_Q_THRESHOLD. Rewrite
+ DC_DIV_QR_THRESHOLD tuning code.
+ (tune_dc_div): Rewrite.
+ * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): New macro.
+ * tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr,
+ speed_mpn_sbpi1_divappr_q, speed_mpn_sbpi1_bdiv_qr): New functions.
+ * gmp-impl.h: Provide declarations for corresponding threshold vars.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_divappr_q.c.
+
+ * tune/tuneup.c (tune_binvert): Up max_size.
+
+2009-12-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/devel/try.c: Test mpn_rsblsh2_n and mpn_rsblsh_n.
+ * tests/refmpn.c (refmpn_rsblsh_n, refmpn_rsblsh2_n): New functions.
+ (refmpn_rsblsh1_n): Use generic refmpn_rsblsh_n.
+ * tests/tests.h: Declare new functions.
+
+2009-12-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step):
+ Select the right cofactor in the cases A == B or A == 2B.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Deleted
+ handling of ap[0] == 0 and bp[0] == 0; these cases don't happen.
+ Select the right cofactor in the case ap[0] == bp[0].
+ * mpn/generic/gcdext.c (mpn_gcdext): Analogous changes.
+
+2009-12-02 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-h.in (mpn_gcdext_1): Updated prototype.
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
+ signed cofactors from gcdext_1.
+ * mpn/generic/gcdext_1.c (mpn_gcdext_1): Use Euclid's algorithm,
+ and return signed cofactors.
+
+2009-12-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Low-level Functions): Document mpn_sqr_n.
+
+ * tune/speed.c (routine): Add mpn_binvert.
+
+ * tune/tuneup.c: Tune BINV_NEWTON_THRESHOLD.
+ (tune_binvert): New function.
+ * tune/speed.h (SPEED_ROUTINE_MPN_BINVERT): New macro.
+ * tune/common.c (speed_mpn_binvert): New function.
+ * gmp-impl.h: Provide declarations for corresponding threshold var.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add binvert.c.
+
+ * tune/tuneup.c: Tune DC_BDIV_QR_THRESHOLD and DC_BDIV_Q_THRESHOLD.
+ (tune_dc_bdiv): New function.
+ (tune_dc_div): New name for tune_dc.
+ * tune/speed.h (SPEED_ROUTINE_MPN_PI1_BDIV_QR,
+ SPEED_ROUTINE_MPN_PI1_BDIV_Q): New macros.
+ * tune/common.c (speed_mpn_sbpi1_bdiv_qr, speed_mpn_dcpi1_bdiv_qr,
+ speed_mpn_sbpi1_bdiv_q, speed_mpn_dcpi1_bdiv_q): New functions.
+ * gmp-impl.h: Provide declarations for corresponding threshold vars.
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_bdiv_qr.c and
+ dcpi1_bdiv_q.c.
+
+2009-12-01 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom53_mul.c: Removed double computation of vinf.
+
+ * mpn/x86_64/aorrlsh_n.asm: Correct return value for rsblsh_n.
+ * mpn/asm-defs.m4 (define_mpn): Add rsblsh_n.
+ * gmp-impl.h (mpn_rsblsh_n): Added prototype and name-mangling.
+
+ * mpn/generic/fib2_ui.c: Reduce the amount of temporary storage.
+ Use mpn_rsblsh_n.
+
+2009-12-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_n.c: Rework temp allocation.
+
+ * mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n_itch): Add pi1 also
+ to this function.
+
+ * mpn/generic/dcpi1_bdiv_q.c: Get the mpn_sbpi1_bdiv_q call right.
+ Misc cleanups.
+
+ * tune/speed.c (routine): Fix typo in last change.
+ Add mpn_redc_2.
+
+ * tune/speed.h (SPEED_ROUTINE_REDC_N): Set min size properly.
+
+2009-12-01 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.c (routine): Added mpn_toom42_mul and mpn_redc_n.
+ * tune/speed.h (SPEED_ROUTINE_MPN_TOOM42_MUL): New macro.
+ (speed_mpn_toom42_mul): Declare function.
+ * tune/common.c (speed_mpn_toom42_mul): New function.
+ * gmp-impl.h (MPN_TOOM42_MUL_MINSIZE): New constant.
+
+2009-11-30 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/fib2_ui.c: Use mpn_rsblsh2_n.
+
+2009-11-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/pentium4/gmp-mparam.h
+ (HAVE_NATIVE_mpn_addlsh1_n, HAVE_NATIVE_mpn_sublsh1_n): Don't undef.
+
+ * Makefile.am (EXTRA_DIST): Remove macos.
+
+2009-11-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_redc): Set min_size to 16 for redc_n tuning.
+
+ * mpn/x86_64/sqr_basecase.asm (SQR_TOOM2_THRESHOLD_MAX): Avoid quoting
+ to allow configure.in parse it more easily. Trim from 120 to 80.
+
+2009-11-28 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mulmod_bnm1.c: Basecases made simpler, this also corrects
+ a bug affecting previous version.
+
+2009-11-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Handle atom also in 32-bit mode.
+ * mpn/x86/atom/gmp-mparam.h: New file.
+
+ * gmp-impl.h (MULMOD_BNM1_THRESHOLD): Default.
+
+ * mpn/generic/redc_n.c: Use mpn_mulmod_bnm1 instead of mpn_mul_n.
+
+ * Use TMP_ALLOC_LIMBS consistently.
+ * Finish renaming BITS_PER_MP_LIMB to GMP_LIMB_BITS.
+
+ * macos: Remove entire directory.
+
+2009-11-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/corei/gmp-mparam.h: New file.
+ * mpn/x86_64/core2/gmp-mparam.h: Now for just core2.
+ * mpn/powerpc64/mode64/p3/gmp-mparam.h: New file.
+ * mpn/powerpc64/mode64/p4/gmp-mparam.h: New file.
+ * mpn/powerpc64/mode64/p5/gmp-mparam.h: New file.
+
+ * config.guess: Return "corei" for core i7 and core i5.
+ * config.sub: Recognise "corei".
+ * acinclude.m4 (X86_64_PATTERN): Add corei.
+ * configure.in (powerpc): Set up more CPU-specific paths.
+ (x86): Handle corei.
+
+ * mpz/powm.c: Allow input operand overlap also when exponent = 1.
+ Misc cleanups.
+
+2009-11-26 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * tests/mpn/t-mulmod_bnm1.c: New test file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add t-mulmod_bnm1.
+
+ * mpn/generic/mullow_n.c: Comments on Mulders' trick implementation.
+
+2009-11-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm.c: Make comments reflect current code state.
+
+ * tests/devel/try.c: Make mpn_mullow_n testing actually work.
+
+2009-11-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/powm.c: Clean up unused defs.
+
+2009-11-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_redc): Rewrite.
+ * mpn/generic/powm.c: Use REDC_1_TO_REDC_2_THRESHOLD,
+ REDC_1_TO_REDC_N_THRESHOLD, and REDC_2_TO_REDC_N_THRESHOLD.
+ Get rid of previous REDC params, including LOCAL_REDC_N_THRESHOLD.
+ (WANT_REDC_2): Define.
+ * gmp-impl.h: Corresponding changes.
+
+2009-11-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm.c: Fix typo.
+ Define LOCAL_REDC_N_THRESHOLD, use in REDC_2_THRESHOLD...
+ REDC_N_THRESHOLD chain.
+
+2009-11-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mullow): Set min_size to 1.
+
+ * mpn/generic/powm_sec.c: Use just mpn_mul_basecase and
+ mpn_sqr_basecase for multiplication and squaring.
+
+ * tune/tuneup.c: Tune REDC_2_THRESHOLD and REDC_N_THRESHOLD.
+ (tune_redc): New function.
+ (tune_powm): Remove function.
+ * tune/speed.h (SPEED_ROUTINE_REDC_2, SPEED_ROUTINE_REDC_N): New.
+ * tune/common.c (speed_mpn_redc_2, speed_mpn_redc_n): New.
+
+ * mpz/powm.c: Complete rewrite. Use mpn_powm and mpn_powlo.
+ * mpn/generic/powm.c: Rewrite.
+ * mpn/generic/redc_n.c: New file.
+ * configure.in (gmp_mpn_functions): Add redc_n.
+ * gmp-impl.h (REDC_2_THRESHOLD, REDC_N_THRESHOLD): Default, and define
+ for tuneup.
+
+2009-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mullow_n.c: Disable Mulders' trick for small operands,
+ use fft for bigger ones.
+ * tests/mpn/t-mullo.c: New test file.
+
+2009-11-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mullow): Rewrite.
+
+2009-11-21 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * gmp-impl.h: Removed unused macros (CACHED_ABOVE_THRESHOLD and
+ CACHED_BELOW_THRESHOLD).
+
+ * mpn/generic/mullow_n.c: Use Mulders' trick.
+ * tune/tuneup.c (tune_mullow): MULLOW_MUL_N_THRESHOLD range of
+ search depends on FFT tuning;
+ (all): Anticipate tune_fft_{mul,sqr}.
+
+ * tune/speed.c (routine): Add entry related to mpn_mulmod_bnm1.
+
+2009-11-19 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom_eval_dgr3_pm2.c (mpn_toom_eval_dgr3_pm2)
+ [HAVE_NATIVE_mpn_add_n_sub_n]: Fixed typo in mpn_add_n_sub_n call
+ (spotted by Marco Bodrato).
+ * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): Likewise.
+ * mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Likewise.
+
+ * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2) [HAVE_NATIVE_mpn_addlsh_n]:
+ Fixed missing declaration.
+
+ * mpn/asm-defs.m4 (define_mpn): Add addlsh_n.
+ * gmp-impl.h (mpn_addlsh_n): Added prototype and name-mangling.
+
+2009-11-19 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): New file.
+ * mpn/generic/toom53_mul.c (mpn_toom53_mul): Use mpn_toom_eval_pm2.
+ * mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
+ * configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
+
+2009-11-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (mpn_and_n, etc): Adapt to now-public logic functions.
+
+ * config.guess: Recognise VIA nano.
+ * config.sub: Likewise.
+ * configure.in: Generalise x86_64 support; recognise VIA nano.
+
+2009-11-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.c (routine): Add measurement of mpn_addlsh2_n,
+ mpn_sublsh2_n, mpn_rsblsh2_n.
+ * tune/common.c: Add speed routines for lsh2 functions.
+
+ * mpn/generic/divis.c: Use MU_BDIV_QR_THRESHOLD.
+
+ * configure.in (gmp_mpn_functions_optional): Add *lsh_n functions.
+
+ * mpn/generic/toom_eval_pm2exp.c: Make HAVE_NATIVE_mpn_addlsh_n code
+ work.
+
+ * mpn/x86_64/aorrlsh2_n.asm: Optimise inner loop.
+
+ * configure.in (gmp_mpn_functions_optional): Remove copyi,copyd, they
+ are now in gmp_mpn_functions. Analogously move logical functions.
+
+2009-11-16 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom53_mul.c: Use addlsh2 for evaluation (and fix typo).
+ * mpn/generic/toom_eval_dgr3_pm2.c: Likewise (affects toom44 and 43).
+
+ * mpn/asm-defs.m4: Fix comments for op_lsh2 new functions.
+ * gmp-impl.h: Likewise.
+ * tests/mpz/t-fac_ui.c: Fix a comment.
+
+2009-11-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorrlsh2_n.asm: New file.
+ * configure.in: Add support for addlsh2_n, sublsh2_n, and rsblsh2_n,
+ including mulfuncs.
+ * gmp-impl.h (mpn_addlsh2_n, mpn_sublsh2_n, mpn_rsblsh2_n): Declare.
+ * mpn/asm-defs.m4: Likewise.
+
+ * mpn/generic/copyi.c: New file.
+ * mpn/generic/copyd.c: Likewise.
+ * mpn/generic/zero.c: Likewise.
+ * gmp-h.in: Declare new functions.
+ * configure.in (gmp_mpn_functions): Add new functions.
+
+2009-11-15 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): fix typo
+
+ * mpn/generic/toom33_mul.c: Use rsblsh1 for evaluation.
+ * mpn/generic/toom3_sqr.c: Likewise.
+
+2009-11-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom52_mul.c: Use mpn_addlsh1_n.
+
+ * mpn/generic/toom52_mul.c: Toggle the right flag bit in an
+ HAVE_NATIVE_mpn_add_n_sub_n arm.
+
+ * tests/mpz/t-remove.c: New file.
+
+ * mpn/generic/remove.c: Major overhaul. Add parameter 'cap'.
+
+ * mpn/generic/binvert.c: Fix typo in last change.
+
+ * mpn/generic/bdiv_qr.c: Make it actually work. Also use passed-in
+ scratch space.
+
+ * mpn/generic/mu_bdiv_qr.c: Reset FFT parameters for each call.
+
+2009-11-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/gcd_1.asm (MASK): Compute from MAXSHIFT.
+
+2009-11-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/binvert.c: Simplify, fix comments.
+
+ * tests/devel/try.c: Test mpn_invert and mpn_binvert.
+
+ * tests/refmpn.c (refmpn_invert, refmpn_binvert): New functions.
+ * tests/tests.h: Declare new functions.
+
+2009-11-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Supply compiler options for atom in 32-bit mode.
+
+ * acinclude.m4 (X86_64_PATTERN): New.
+ * configure.in: Setup and use X86_64_PATTERN.
+
+ * mpn/x86_64/fat/fat.c: New file.
+ * mpn/x86_64/fat/fat_entry.asm: New file.
+ * mpn/x86_64/fat: Copy C placeholder files from mpn/x86/fat.
+ * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): New, copied from
+ mpn/x86/x86-defs.m4.
+ * configure.in: Move down x86 fat setup code until after ABI has been
+ determined; generalise to handle x86_64.
+
+2009-11-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/fat/mod_1.c: New file.
+
+ * acinclude.m4 (GMP_C_FOR_BUILD_ANSI): Avoid poor quoting.
+
+2009-11-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (MPN_LOGOPS_N_INLINE): Rewrite, update interface. Callers
+ updated.
+ * mpn/generic/logops_n.c: New file.
+ * doc/gmp.texi (Low-level Functions): Document logical mpn functions.
+
+2009-11-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): Adapt to new
+ mpn_mulmod_bnm1 interface.
+
+2009-11-07 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mulmod_bnm1.c: New interface, with size
+ specified for all operands in mpn_mulmod_bnm1.
+ * gmp-impl.h: Changed mpn_mulmod_bnm1 prototype.
+
+2009-11-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/gcd_1.asm: Actually use div-reduced value.
+ Mnemonic cleanup.
+
+ * mpn/x86_64/gcd_1.asm: New file.
+
+2009-11-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqr_n.c.
+
+2009-11-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_6pts.c: removed an addmul_1 and cleanup.
+
+2009-11-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (gmp_mpn_functions): Remove obsolete functions
+ dc_divrem_n and sb_divrem_mn.
+ * gmp-impl.h: Misc cleanup.
+ (mpn_sb_divrem_mn, mpn_dc_divrem_n): Remove.
+ (DIV_DC_THRESHOLD): Remove.
+ * mpn/generic/dc_divrem_n.c: Remove.
+ * mpn/generic/sb_divrem_mn.c: Remove.
+ * mpn/generic/tdiv_qr.c: Use DC_DIV_QR_THRESHOLD, not DIV_DC_THRESHOLD.
+
+ * tests/devel/try.c: Replace mpn_sb_divrem_mn by mpn_sbpi1_div_qr.
+ * tests/refmpn.c (refmpn_sb_div_qr): New name for refmpn_sb_divrem_mn.
+
+ * tune/Makefile.am (libspeed_la_SOURCES): Remove sb_div.c and sb_inv.c.
+ (TUNE_MPN_SRCS_BASIC): Remove sb_divrem_mn.c.
+ * tune/common.c (speed_mpn_dcpi1_div_qr_n): New function.
+ Remove mpn_sb_divrem_mn related functions.
+ * tune/speed.c (routine): Remove entries related to mpn_dc_divrem and
+ mpn_sb_divrem.
+ (routine): New entry for mpn_dc_div_qr_n.
+ * tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_CALL): Compute inverse
+ needed by pi1 calls.
+ (SPEED_ROUTINE_MPN_SB_DIVREM_M3): Remove.
+ * tune/tuneup.c (tune_sb_preinv): Remove.
+ (tune_dc): Update to measure DC_DIV_QR_THRESHOLD.
+
+ * mpn/generic/sb_divappr_q.c: Remove.
+
+2009-11-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h: Misc minor cleanups.
+
+2009-10-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (toom itch functions): Simplify, make some into macros.
+ (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Remove.
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove.
+ * mpn/generic/mul_n.c (mpn_sqr_n): Move from here...
+ * mpn/generic/sqr_n.c: ...to this new file.
+ * configure.in (gmp_mpn_functions): Add sqr_n.
+
+ * Globally change
+ MUL_TOOM3_THRESHOLD => MUL_TOOM33_THRESHOLD,
+ MUL_KARATSUBA_THRESHOLD => MUL_TOOM22_THRESHOLD,
+ SQR_KARATSUBA_THRESHOLD => SQR_TOOM2_THRESHOLD,
+ and associated names analogously.
+
+2009-10-31 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom_interpolate_7pts.c: Changed evaluation points,
+ replacing -1/2 by -2.
+ * mpn/generic/toom44_mul.c: Updated to use new evaluation points,
+ and use mpn_toom_eval_dgr3_pm2.
+ * mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Likewise.
+ * mpn/generic/toom53_mul.c (mpn_toom53_mul): Updated to use new
+ evaluation points, and use mpn_toom_eval_pm1 and
+ mpn_toom_eval_pm2exp.
+ * mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise.
+
+ * mpn/generic/toom_eval_pm2exp.c: New file.
+ * mpn/generic/toom_eval_pm1.c: New file.
+
+ * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
+ mpn_toom_eval_dgr3_pm2.
+
+2009-10-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom2* and toom3* files.
+
+2009-10-30 Niels Möller <nisse@lysator.liu.se>
+
+ * configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2.
+ * gmp-impl.h: Added prototype for mpn_toom_eval_dgr3_pm2.
+ * mpn/generic/toom_eval_dgr3_pm2.c: New file.
+
+2009-10-29 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use
+ mpn_toom_eval_dgr3_pm1.
+ * mpn/generic/toom42_mul.c (mpn_toom42_mul): Likewise.
+
+2009-10-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mulmod_bnm1.c: Replace some add_1 by INCR.
+
+ * gmp-impl.h (mpn_mulmod_bnm1_itch): New macro.
+
+ * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Call mpn_mul_fft.
+ (mpn_mulmod_bnm1_next_size): Adopt to SS FFT.
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft): Make it return high limb.
+ (mpn_mul_fft_internal): Likewise.
+
+ * mpn/generic/mulmod_bnm1.c: New file, by Niels Möller.
+ * configure.in (gmp_mpn_functions): Add mulmod_bnm1.
+ * gmp-impl.h: Add related declarations.
+ * tune/tuneup.c: Tune MULMOD_BNM1_THRESHOLD.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): New macro.
+ * tune/common.c (speed_mpn_mulmod_bnm1): New function.
+ * Makefile.am (TUNE_MPN_SRCS_BASIC): Add mulmod_bnm1.c.
+
+ * gmp-impl.h (mpn_kara_mul_n, mpn_kara_sqr_n): Remove declarations.
+ * tune/common.c: Remove/rename kara functions.
+ * tune/speed.h: Likewise.
+
+ * tests/devel/try.c: Clean up usage of %p printf arguments.
+
+ * gmp-impl.h: Update MUL/SQR MINSIZE macros to reflect new function
+ names and limitations
+ * tune/tuneup.c: Use updated macro names.
+ * tune/speed.h: Likewise.
+ * tests/devel/try.c: Test new mul/sqr functions, remove old tests.
+
+2009-10-29 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.c: Added support for mpn_toom4_sqr,
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_TOOM4_SQR): New macro.
+ (SPEED_ROUTINE_MPN_KARA_MUL_N): Deleted.
+ (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Deleted.
+ (SPEED_ROUTINE_MPN_TOOM2_SQR): Use mpn_toom2_sqr_itch.
+
+ * gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove
+ declarations.
+ (mpn_toom2_sqr_itch): Add margin for recursive calls.
+
+2009-10-28 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n): Deleted old Karatsuba
+ implementation.
+ (mpn_kara_sqr_n): Likewise deleted.
+
+ * mpn/generic/mul_n.c (mpn_sqr_n): Use mpn_toom2_sqr and
+ mpn_toom3_sqr, not the old implementations.
+
+ * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE): Deleted, replaced by
+ mpn_toom33_mul_itch.
+ (MPN_TOOM3_SQR_N_TSIZE): Deleted, replaced by
+ mpn_toom3_sqr_itch.
+ (mpn_toom33_mul_itch): Needs more scratch.
+ (mpn_toom3_sqr_itch): Likewise.
+ * tune/speed.h (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Use
+ mpn_toom33_mul_itch.
+ (SPEED_ROUTINE_MPN_TOOM3_SQR_N): Use mpn_toom3_sqr_itch.
+ * mpn/generic/mul_n.c (mpn_mul_n): Use mpn_toom33_mul_itch.
+ (mpn_sqr_n): Use mpn_toom3_sqr_itch.
+
+ * mpn/generic/toom33_mul.c (mpn_toom33_mul): Avoid TMP_ALLOC. Needs
+ some more supplied scratch instead.
+ * mpn/generic/toom3_sqr.c (mpn_toom3_sqr): Likewise.
+
+2009-10-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (invert_pi1): Streamline, as suggested by Niels.
+
+2009-10-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/bdiv_q.c: Update to call new functions.
+ * mpn/generic/bdiv_qr.c: Likewise.
+ * mpn/generic/binvert.c: Likewise.
+ * mpn/generic/divexact.c: Likewise.
+ * mpn/generic/divis.c: Likewise.
+ * mpn/generic/perfpow.c: Likewise.
+ * mpn/generic/tdiv_qr.c: Likewise.
+ * mpn/generic/dcpi1_bdiv_q.c: New file.
+ * mpn/generic/dcpi1_bdiv_qr.c: New file.
+ * mpn/generic/dcpi1_div_q.c: New file.
+ * mpn/generic/dcpi1_div_qr.c: New file.
+ * mpn/generic/dcpi1_divappr_q.c: New file.
+ * mpn/generic/sbpi1_bdiv_q.c: New file.
+ * mpn/generic/sbpi1_bdiv_qr.c: New file.
+ * mpn/generic/sbpi1_div_q.c: New file.
+ * mpn/generic/sbpi1_div_qr.c: New file.
+ * mpn/generic/sbpi1_divappr_q.c: New file.
+ * mpn/generic/dc_bdiv_q.c: Removed.
+ * mpn/generic/dc_bdiv_qr.c: Removed.
+ * mpn/generic/dc_div_q.c: Removed.
+ * mpn/generic/dc_div_qr.c: Removed.
+ * mpn/generic/dc_divappr_q.c: Removed.
+ * mpn/generic/sb_bdiv_q.c: Removed.
+ * mpn/generic/sb_bdiv_qr.c: Removed.
+ * mpn/generic/sb_div_q.c: Removed.
+ * mpn/generic/sb_div_qr.c: Removed.
+
+ * configure.in (gmp_mpn_functions): Add new division functions, remove
+ obsolete division functions.
+
+ * gmp-impl.h: Add declarations of new division functions, remove
+ corresponding obsolete declarations.
+ (gmp_pi1_t, gmp_pi2_t): New types.
+ (invert_pi1): New macro for computing 2/1 and 3/2 inverses.
+
+2009-10-23 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (mpn_toom62_mul_itch): New function.
+
+ * tests/mpn/t-toom53.c: New test program.
+ * tests/mpn/t-toom62.c: New test program.
+
+2009-10-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/get_d.c: Fix code handling denorms for 64-bit machines.
+ * tests/mpf/t-get_d.c (test_denorms): New function.
+
+2009-10-23 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom52_mul.c (mpn_toom52_mul): Use supplied scratch
+ space, not TMP_ALLOC. Interface change, now requires input sizes
+ such that s + t >= 5.
+
+ * gmp-impl.h (mpn_toom52_mul_itch): New function.
+
+ * tests/mpn/t-toom52.c: New test program.
+
+2009-10-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/sqr_basecase.asm: Tune for speed and a 7% size decrease.
+
+2009-10-22 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-toom44.c: New test program.
+ * tests/mpn/t-toom33.c: New test program.
+
+ * tests/mpn/toom-shared.h (main): Reorganized input generation.
+ Users are now supposed to define macros MAX_AN, MIN_BN and MAX_BN.
+ Updated existing toom test programs.
+
+2009-10-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/devel/try.c: Fix typos in last change.
+
+2009-10-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/asm-defs.m4 (define_mpn): Add mullow_basecase.
+
+ * tests/devel/try.c: Test mpn_mullow_n.
+
+ * tests/refmpn.c (refmpn_mullow_n): New function.
+ * tests/tests.h: Declare it.
+
+2009-10-21 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/toom-shared.h (main): Check for writes outside of the
+ product or scratch area.
+
+ * gmp-impl.h (mpn_toom43_mul_itch): New function.
+
+ * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use supplied scratch
+ space, not TMP_ALLOC. Interface change, now requires input sizes
+ such that s + t >= 5.
+
+2009-10-20 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/toom-shared.h (MIN_BLOCK): New constant, which can be
+ overridden by users. Needed by t-toom42 and t-toom43.
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom32,
+ t-toom42 and t-toom43.
+ * tests/mpn/t-toom43.c: New test program.
+ * tests/mpn/t-toom42.c: New test program.
+ * tests/mpn/t-toom32.c: New test program.
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom22.
+ * tests/mpn/t-toom22.c: New test file.
+ * tests/mpn/toom-shared.h: New file. Test framework for Toom
+ functions.
+
+2009-10-14 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd_itch): Thanks to the new
+ mpn_matrix22_mul_strassen, the scratch need is reduced by 16%.
+
+2009-10-14 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): New
+ Strassen-like algorithm, to reduce the amount of temporary
+ storage.
+ (mpn_matrix22_mul_itch): Updated to reflect the reduced storage
+ need.
+
+2009-10-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * Rename mpn_addsub_n to mpn_add_n_sub_n.
+
+2009-10-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/tdiv_qr.c: Call mpn_divrem_1 and mpn_dc_div_qr instead of
+ old functions.
+
+ * mpn/generic/mul_n.c: Call toom22 and toom33 instead of old functions.
+
+ * mpn/generic/toom42_mul.c (TOOM42_MUL_N_REC): Renamed from
+ TOOM22_MUL_N_REC. Unconditionally call the generic mpn_mul_n.
+ * mpn/generic/toom32_mul.c: Analogous changes.
+
+2009-09-28 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86_64/invert_limb.asm: Rewrite. Exploit cancellation in the
+ Newton iteration.
+
+2009-09-27 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86/invert_limb.asm: Reduce register usage. Eliminated $1
+ arguments to add, sub and shift.
+
+2009-09-25 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86/invert_limb.asm: New file.
+
+2009-09-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom33_mul.c: Use new toom functions for all recursive
+ products.
+ * mpn/generic/toom3_sqr.c: Likewise.
+ * mpn/generic/toom44_mul.c: Likewise.
+ * mpn/generic/toom4_sqr.c: Likewise.
+
+ * mpn/generic/add_n.c: Relax operand overlap ASSERTs.
+ * mpn/generic/sub_n.c: Likewise.
+
+2009-09-15 Torbjorn Granlund <tege@gmplib.org>
+
+ Suggested by Uwe Mueller:
+ * printf/doprnt.c: Use "%ld" for exponent printing.
+ * printf/doprntf.c (__gmp_doprnt_mpf): Make expval "long".
+
+2009-09-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Handle mingw64.
+ * gmp-impl.h (gmp_intptr_t): Declare.
+ * tests/amd64check.c (calling_conventions_values): Use CNST_LIMB.
+ * tests/memory.c: Use gmp_intptr_t; print pointers using C90 "%p".
+ * tests/misc.c: Use gmp_intptr_t.
+ * tests/mpq/t-get_str.c: Print pointers using C90 "%p".
+
+2009-08-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Remove silly ASSERT code.
+
+ * mpn/asm-defs.m4 (define_mpn): Remove mod_1s_1p, add mod_1_1p.
+
+ * mpn/arm/invert_limb.asm: Complete rewrite.
+
+ * longlong.h: Document LONGLONG_STANDALONE and NO_ASM.
+
+2009-08-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/dive_ui.c (check_random): Avoid zero divisors.
+
+2009-07-31 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_1.c: Tweak to handle any modulus (possibility
+ pointed out by Per Austrin).
+ (mpn_mod_1_1p): Renamed from mpn_mod_1s_1p.
+ (mpn_mod_1_1p_cps): Renamed from mpn_mod_1s_1p_cps.
+ *mpn/generic/mod_1.c (mpn_mod_1): Reorganise to call mpn_mod_1_1p for
+ any modulus.
+
+2009-07-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Pass arch for x86 also in 64-bit mode.
+
+2009-07-26 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess (_cpuid): Recognise more Intel "Core" processors.
+
+2009-07-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpf/eq.c: Rewrite.
+
+ * tests/mpf/t-eq.c: New test.
+
+2009-07-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (__mp_bases): Remove this alias.
+
+ * mpf/get_str.c: Use less overflow prone expression for computing limb
+ allocation.
+ * mpz/inp_str.c: Likewise.
+ * mpf/set_str.c: Likewise.
+ * mpz/set_str.c: Likewise.
+
+2009-07-03 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcd_1.c (mpn_gcd_1): Use masking tricks to reduce
+ the number of branches in the loop.
+
+2009-06-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * demos/factorize.c (factor_using_pollard_rho): Rewrite.
+
+ * mpz/clears.c: New file.
+ * mpq/clears.c: New file.
+ * mpf/clears.c: New file.
+ * gmp-h.in (mpz_clears, mpq_clears, mpf_clears): Declare.
+ * mpz/Makefile.am: Add clears.c.
+ * mpq/Makefile.am: Add clears.c.
+ * mpf/Makefile.am: Add clears.c.
+ * Makefile.am: Add these also to respective OBJECTS variables.
+ * doc/gmp.texi: Document inits function and clears functions.
+
+2009-06-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mp-h.in (mp_bitcnt_t): Declare here too.
+
+2009-06-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpq/inits.c: New file.
+ * mpf/inits.c: New file.
+ * gmp-h.in (mpz_inits, mpq_inits, mpf_inits): Declare .
+
+ * mpn/generic/remove.c: New file.
+ * configure.in (gmp_mpn_functions): Add remove.
+ * gmp-impl.h (mpn_remove): Declare.
+
+ * gmp-h.in (mp_bitcnt_t): New basic type.
+ * mpn/generic/perfpow.c (mp_bitcnt_t): Remove private definition.
+
+ * mpn/generic/bdiv_qr.c: Make it actually work.
+
+ * mpn/x86_64/core2/aorsmul_1.asm: Rewrite to use shorter pipeline and
+ to need fewer registers.
+
+2009-06-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/rsh1aors_n.asm: New file.
+ * mpn/x86_64/rsh1add_n.asm: Remove.
+ * mpn/x86_64/rsh1sub_n.asm: Remove.
+
+ * mpz/inits.c: New file.
+
+ * gen-trialdivtab.c: Wrap limb constants into CNST_LIMB.
+
+ With Martin Boij:
+ * mpn/generic/perfpow.c (binv_root, binv_sqroot): Change from being
+ recursive to being iterative.
+ (mpn_perfect_power_p): Reorganise temp memory usage to avoid a buffer
+ overrun. Trim allocation of next and prev. Never create oversize
+ products in the multiplicity binary search.
+
+ * mpn/generic/dc_div_q.c: Add missing TMP_FREE.
+
+2009-06-16 Torbjorn Granlund <tege@gmplib.org>
+
+ Revert:
+ * mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.
+
+2009-06-16 Martin Boij <mboij@kth.se>
+
+ * mpn/generic/perfpow.c (logs): Use more conservative table.
+
+2009-06-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/pa64/aors_n.asm: New file.
+ * mpn/pa64/add_n.asm: Remove.
+ * mpn/pa64/sub_n.asm: Remove.
+
+ * mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive.
+
+2009-06-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bdiv_q_1.asm: Optimise away a mov insn.
+ * mpn/x86_64/dive_1.asm: Likewise.
+
+ * mpn/generic/perfpow.c (binv_root): Use mpn_bdiv_q_1, not
+ mpn_divexact_itch for 2-adic division.
+ (all functions): Micro optimise.
+
+ * Makefile.am (libmp_la_SOURCES): Add nextprime.c.
+
+2009-06-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (mpn_perfect_power_p): Declare.
+ * configure.in (gmp_mpn_functions): Add perfpow.
+ * mpz/perfpow.c: Now trivial, simply calls mpn_perfect_power_p.
+
+2009-06-13 Martin Boij <mboij@kth.se>
+
+ * mpn/generic/perfpow.c: New file.
+ * tests/mpz/t-perfpow.c: Rewrite.
+
+2009-06-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/bdiv_qr.c: New file.
+ * mpn/generic/bdiv_q.c: New file.
+ * configure.in (gmp_mpn_functions): Add bdiv_qr and bdiv_q.
+ * gmp-impl.h: Declare new functions.
+
+ * nextprime.c: New file.
+ * gmp-impl.h (gmp_primesieve_t, gmp_init_primesieve, gmp_nextprime):
+ Declare.
+ * Makefile.am (libgmp_la_SOURCES): Add nextprime.c.
+
+2009-06-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/trialdiv.c: New file.
+ * gen-trialdivtab.c: New file.
+ * configure.in (gmp_mpn_functions): Add trialdiv.
+ * gmp-impl.h (mpn_trialdiv): Declare
+ * Makefile.am: Add rules for gen-trialdivtab and trialdiv.
+
+ * longlong.h (arm count_leading_zeros): Define for armv5.
+
+ * gmp-impl.h: Move down toom itch functions to after we've #defined
+ all THRESHOLDs.
+
+ * dumbmp.c (isprime): Replace with slightly less inefficient code.
+ (mpz_tdiv_r): New function.
+
+2009-06-11 Niels Möller <nisse@lysator.liu.se>
+
+ Support for mpn_toom32_mul in speed:
+ * tune/speed.c (routine): Added mpn_toom32_mul.
+ * tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_MUL): New macro.
+ * tune/common.c (speed_mpn_toom32_mul): New function.
+
+ * gmp-impl.h (mpn_toom32_mul_itch): Count scratch space needed
+ for the calls to mpn_toom22_mul.
+ (ABOVE_THRESHOLD): Moved this and related macros so it can be used
+ by mpn_toom32_mul_itch.
+ (mpn_toom22_mul_itch): Count scratch space for recursive calls.
+
+2009-06-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/mod_1_4.asm: New file, mainly for k7, but perhaps useful
+ also for k6 and non-sse p6.
+
+2009-06-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mod_1_4.asm: Minor size reducing tweaks.
+
+ * mpn/x86/mod_1.asm: Remove obsolete file.
+ * mpn/x86/k7/mmx/mod_1.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mod_1.asm: Likewise.
+ * mpn/x86/p6/mod_1.asm: Likewise.
+ * mpn/x86/pentium/mod_1.asm: Likewise.
+
+2009-06-08 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Reorganized, to reduce
+ the need for scratch space, and get rid of TMP_ALLOC. Also use
+ mpn_toom_eval_dgr3_pm1.
+
+ * mpn/generic/toom_interpolate_6pts.c (mpn_toom_interpolate_6pts):
+ Stricter ASSERTs based on maximum size of polynomial coefficients.
+ Improved comments on the signedness of intermediate values.
+
+2009-06-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom2_sqr.c: Make it actually work.
+
+ * mpn/generic/toom3_sqr.c: Reduce local scratch space.
+
+2009-06-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul_fft.c (FFT_TABLE2_SIZE): Default to 200.
+ (MUL_FFT_TABLE2_SIZE, SQR_FFT_TABLE2_SIZE): Let these decide
+ FFT_TABLE2_SIZE if they are defined.
+ (struct nk): Use bit field.
+
+2009-06-05 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/toom44_mul.c (mpn_toom44_mult): Use
+ mpn_toom_eval_dgr3_pm1.
+
+ * mpn/generic/toom_eval_dgr3_pm1.c: New file.
+
+ * mpn/generic/toom_interpolate_7pts.c (mpn_toom_interpolate_7pts):
+ Minor cleanup, use mpn_add rather than mpn_add_n + MPN_INCR_U.
+
+ * mpn/generic/toom44_mul.c (mpn_toom44_mul): Reorganized, to
+ reduce the need for scratch space, and get rid of TMP_ALLOC.
+
+2009-06-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom_interpolate_7pts.c: Fall back mpn_divexact_byN to
+ mpn_bdiv_q_1_pi1, if the latter is NATIVE.
+
+2009-06-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/bdiv_q_1.asm: New file.
+
+ * configure.in (HAVE_NATIVE): Add recently added functions.
+ (GMP_MULFUNC_CHOICES): Handle addlsh_n, sublsh_n, rsblsh_n.
+
+ * tune/common.c (speed_mpn_bdiv_q_1, speed_mpn_bdiv_q_1_pi1):
+ New functions.
+ * tune/speed.c (routine): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
+ * tune/speed.h (SPEED_ROUTINE_MPN_BDIV_Q_1_PI1): New #define.
+ (SPEED_ROUTINE_MPN_BDIV_Q_1): Mew #define.
+
+ * configure.in (gmp_mpn_functions): Add bdiv_q_1.
+ * mpn/generic/bdiv_q_1.c: New file.
+ * mpn/asm-defs.m4 (define_mpn): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1.
+ * gmp-impl.h (mpn_bdiv_q_1, mpn_bdiv_q_1_pi1): Declare.
+
+ * mpn/x86_64/lshift.asm: Cleanup.
+ * mpn/x86_64/rshift.asm: Cleanup.
+
+ * mpn/x86_64/addlsh1_n.asm: Removed.
+ * mpn/x86_64/aorrlsh1_n.asm: Generalised addlsh1_n.asm to handle
+ addlsh1_n and rsblsh1_n functionality.
+
+ * tests/refmpn.c (refmpn_rsblsh1_n): New function.
+ * tests/devel/try.c: Test mpn_rsblsh1_n.
+ * tests/tests.h: Declare refmpn_rsblsh1_n.
+ * tune/common.c (speed_mpn_rsblsh1_n): New function.
+ * tune/speed.c (routine): Add mpn_rsblsh1_n.
+ * tune/speed.h (mpn_rsblsh1_n): Declare.
+
+ * configure.in (gmp_mpn_functions_optional): Add rsblsh1_n.
+ (GMP_MULFUNC_CHOICES): Handle rsblsh1_n defined with a mulfunc.
+ * mpn/asm-defs.m4 (define_mpn): Add rsblsh1_n.
+ * gmp-impl.h (mpn_rsblsh1_n): Declare.
+
+ * mpn/generic/toom32_mul.c: Consistently use TOOM22_MUL_N_REC.
+
+2009-06-03 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom43_mul.c: New file.
+ * mpn/generic/toom52_mul.c: New file.
+ * mpn/generic/toom_interpolate_6pts.c: New file.
+
+2009-06-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (gmp_mpn_functions): Add toom43_mul, toom52_mul, and
+ toom_interpolate_6pts, but also some previously forgotten functions.
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Likewise.
+ * gmp-impl.h: Declare new functions. Sort toom function declarations.
+
+ * gmp-impl.h: Rename toom4_* flags enum to toom7_*. Relevant C files
+ updated.
+
+ * mpn/generic/toom_interpolate_7pts (divexact_2exp): Remove.
+
+2009-06-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * demos/factorize.c: Add -q command line option.
+
+2009-06-02 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/toom_interpolate_7pts.c: Streamline, resulting in speed
+ improvements.
+
+ * mpn/generic/toom_interpolate_5pts.c: Likewise, but also completely
+ do away with explicit scratch space.
+ * gmp-impl.h (mpn_toom_interpolate_5pts): Update prototype.
+
+ * mpn/generic/mul_n.c (mpn_toom3_sqr_n, mpn_toom3_mul_n):
+ Update toom_interpolate_5pts call without scratch space parameter.
+ * mpn/generic/toom3_sqr.c: Likewise.
+ * mpn/generic/toom42_mul.c: Likewise.
+ * mpn/generic/toom33_mul.c: Likewise.
+
+ * mpn/generic/toom33_mul.c: Reduce local scratch space.
+ * mpn/generic/toom32_mul.c: Rewrite to not use local scratch space.
+
+2009-06-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): New macro, use it for
+ oo point.
+
+2009-06-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul.c: Loop to avoid excessive recursion in toom33 and
+ toom44 slicing code.
+
+ * mpz/remove.c: Correctly handle multiplicity that does not fit an int.
+
+ * Makefile.am (dist-hook): Check library version consistency.
+
+ * mpn/generic/mul.c: Rewrite.
+
+2009-05-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-divis.c (check_random): Create huge test operands.
+
+ * mpn/generic/toom44_mul.c: Allocate temp space using one TMP_ALLOC
+ call, not multiple TMP_SALLOC.
+ * mpn/generic/toom4_sqr.c: Likewise.
+
+ * gmp-impl.h (mpn_toom22_mul_itch): Replace totally wrong code.
+
+ * mpn/generic/mullow_n.c: Relax overlap requirement implied by ASSERT.
+
+ * mpn/generic/divis.c: Rewrite.
+
+ * gmp-impl.h (mpn_mu_bdiv_qr): Now returns mp_limb_t.
+ (mpn_toom2_sqr_itch): Simplify.
+
+ * mpn/generic/mu_bdiv_qr.c: Implement properly.
+
+2009-05-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mod_1_1.c: Add proper ASSERT functionality cps function.
+ * mpn/generic/mod_1_2.c: Likewise.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_4.c: Likewise.
+
+ * tune: Add speed measuring of toom22, toom33, and toom44.
+
+ * mpn/generic/toom22_mul.c: Handle potentially unbalanced coefficient
+ product better.
+
+2009-05-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-mul.c (ref_mpn_mul): Use mpn_toom44_mul in FFT range for
+ better huge-operands performance.
+
+2009-05-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Try "$L" too, before "$".
+
+2009-05-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (mpn_mod_1s_1p,mpn_mod_1s_2p,mpn_mod_1s_3p,mpn_mod_1s_4p):
+ Declare using __GMP_ATTRIBUTE_PURE.
+
+ * tune/tuneup.c (tune_mod_1): Specify check_size for measuring mod_1_N
+ functions.
+ (one): Remove redundant size loop exit condition.
+
+2009-05-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/pentium4/sse2/mod_1_4.asm: New file.
+ * mpn/x86/p6/sse2/mod_1_4.asm: New file (grabbing pentium4 code).
+
+2009-05-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 4.
+ (__GNU_MP_VERSION_PATCHLEVEL): Set to -1.
+
+ * mpn/x86_64/mod_1_4.asm: New file.
+
+ * mpn/asm-defs.m4: Correct names for mod_1_N functions.
+ Add defines for corresponding cps functions.
+
+ * mpn/generic/mod_1_2.c: Support any sizes > 1.
+ * mpn/generic/mod_1_3.c: Likewise.
+ * mpn/generic/mod_1_4.c: Likewise.
+
+2009-05-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 4.3.1 released.
+
+2009-05-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
+ Bump version info.
+
+2009-05-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz: Add MPZ_CHECK_FORMAT to many tests.
+
+2009-05-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/pentium4/sse2/mul_basecase.asm: Avoid L(ret), "ret" is
+ defined in x86-defs.m4.
+
+2009-05-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/p6/aors_n.asm: Use L() for labels.
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mul_1.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mul_basecase.asm: Likewise.
+ * mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
+ * mpn/x86_64/lshift.asm: Likewise.
+ * mpn/x86_64/rshift.asm: Likewise.
+
+ * tests/cxx/t-locale.cc (point_string): Declare as extern "C" to
+ placate compilers that mangle variable names.
+
+2009-05-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-gcd.c: Generate operands that are multiple of each other.
+
+2009-05-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GMP_EXTERN_INLINE): Support for more systems.
+ (gmp_randinit_set): Add missing __GMP_DECLSPEC.
+
+2009-04-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/neg_n.c: New file.
+ * configure.in (gmp_mpn_functions): Add neg_n.
+ * mpn/asm-defs.m4 (define_mpn): Add neg_n.
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add neg_n.c.
+ * gmp-h.in: Handle mpn_neg_n properly.
+
+ * mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Nailify.
+
+ * mpn/generic/gcdext.c: Change some MPN_NORMALIZE to
+ MPN_NORMALIZE_NOT_ZERO.
+ * mpn/generic/gcdext_lehmer.c: Likewise.
+ Add a MPN_NORMALIZE_NOT_ZERO.
+
+ * mpn/generic/binvert.c: Remove own mpn_neg_n.
+
+ * tests/mpz/t-gcd.c: Add some MPZ_CHECK_FORMAT calls.
+
+2009-04-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/Makefile.am (TARG_DIST): Add minithres.
+
+ * mpn/generic/bdiv_dbm1c.c: Handle nails.
+
+2009-04-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Recognise more POWER processor types.
+
+2009-04-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/pentium4/sse2/popcount.asm: Work around Apple reloc bug.
+ * mpn/x86/darwin.m4: Define symbol "DARWIN".
+
+2009-04-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm.c (mpn_redc_n): Use ASSERT_ALWAYS, not abort().
+ * mpn/generic/powm_sec.c: Likewise.
+
+ * mpn/powerpc64/aix.m4 (EXTERN_FUNC): New define. Add dummy variants
+ for other m4 files.
+ * mpn/powerpc64/mode64/divrem_1.asm: Use EXTERN_FUNC.
+ * mpn/powerpc64/mode64/divrem_1.asm: Likewise.
+
+2009-04-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/x86_64-defs.m4 (JUMPTABSECT): New define.
+ * mpn/x86_64/darwin.m4: Likewise.
+ * mpn/x86_64/sqr_basecase.asm: Rework switch code using JUMPTABSECT.
+
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
+ Remove an unused variable.
+
+ * mpn/x86/x86-defs.m4 (LEA): Get SIZE arguments right.
+
+2009-04-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * Version 4.3.0 released.
+
+ * scanf/doscan.c (__gmp_doscan): Pad 3-operand scanf call with dummy
+ argument.
+ * scanf/sscanffuns.c (scan): Disable vsscanf variant for now.
+
+2009-04-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * scanf/sscanffuns.c (scan): Rewrite to use stdarg.
+
+ * tests/mpz/t-root.c: Rewrite. Add unconditional gcc 4.3.2 tests.
+
+2009-04-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/powm.c: New file.
+ * mpn/generic/powlo.c: New file.
+ * mpn/generic/powm_sec.c: New file.
+ * configure.in (gmp_mpn_functions): List new functions.
+
+2009-04-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/urandomm.c: Amend last fix.
+
+2009-04-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Support Sun cc for x86_64.
+
+ * mpz/urandomm.c: Handle operand overlap.
+
+2009-03-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (powerpc): Brave removing -Wa,-mppc64, in the hope that
+ GCC now passes the proper options.
+
+2009-03-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_1.asm: Add a nop to save a cycle in unnormalised
+ case.
+
+2009-03-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * ia64/gmp-mparam.h, arm/gmp-mparam.h, x86/p6/mmx/gmp-mparam.h,
+ pa32/hppa2_0/gmp-mparam.h sparc32/v9/gmp-mparam.h: Update.
+
+2009-03-03 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/ia64/bdiv_dbm1c.asm: Accept/return carry.
+
+2009-03-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (64-bit sparc/solaris): Pass -xO3, not -O3 to solaris
+ system compiler.
+
+2009-03-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * longlong.h (mips, powerpc): Provide assembly-free umul_ppmm for newer
+ gcc.
+
+2009-02-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_2.c: Remove code for testing and timing. Update
+ to current FSF header.
+ * mpn/generic/redc_1.c: Update to current FSF header.
+
+2009-01-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/powm.c (redc): Remove.
+ (mpz_powm): Use mpn_redc_1 instead of redc.
+
+ * tests/mpz/t-powm.c: Rewrite reference code.
+
+2009-01-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz: Increase reps for many tests.
+
+ * mpn/generic/rootrem.c (mpn_rootrem_internal): Use MPN_DECR_U instead of
+ mpn_sub_1 (works around gcc 4.3 bugs and is also faster).
+
+2009-01-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/tests.h: Declare refmpn_divrem_2.
+
+2009-01-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/perfpow.c: Add TMP_FREE before every return statement.
+
+ * mpn/generic/rootrem.c (mpn_rootrem_internal): Add a missing TMP_FREE.
+
+ * configure.in (gcc_cflags, gcc_64_cflags): Revert from -O3 to -O2,
+ the change was accidental and cause too much miscompilation.
+
+2009-01-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mod_1): Run MOD_1_x_THRESHOLD tests also when
+ longlong.h specified UDIV_PREINV_ALWAYS.
+
+ * mpn/generic/mod_1.c (mpn_mod_1): Properly check for normalisation
+ divisor.
+
+2009-01-13 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_mod_1): Tune for MOD_1_1_THRESHOLD,
+ MOD_1_2_THRESHOLD, and MOD_1_4_THRESHOLD.
+
+ * mpn/generic/mod_1.c: Rewrite.
+ * mpn/generic/mod_1_1.c: New file.
+ * mpn/generic/mod_1_2.c: New file.
+ * mpn/generic/mod_1_3.c: New file.
+ * mpn/generic/mod_1_4.c: New file.
+ * configure.in (gmp_mpn_functions): Add mod_1_*.
+ * mpn/asm-defs.m4 (define_mpn): Add mod_1_*.
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mod_1_*.c.
+ * gmp-impl.h: Declare new mpn_mod_1s_* functions and associated
+ THRESHOLD macros.
+ (udiv_rnd_preinv): New macro.
+
+2009-01-12 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/tuneup.c (tune_gcd_dc,tune_gcdext_dc): Lower step_factor to 0.1.
+
+2009-01-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-nextprime.c: New test file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-nextprime.
+
+ From Niels Möller:
+ * mpz/nextprime.c: Handle large prime gaps by limiting incr.
+
+2009-01-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/and.c, mpz/ior.c, mpz/xor.c: Re-read only necessary source
+ pointers after reallocation. Misc cleanup.
+
+ * gmp-impl.h (MPN_TOOM44_MAX_N): New define, replaces MPN_TOOM3_MAX_N.
+
+ * mpn/x86/fat/diveby3.c: New file.
+
+2008-12-30 Niels Möller <nisse@lysator.liu.se>
+
+ * doc/gmp.texi (Greatest Common Divisor Algorithms): Updated
+ section on GCD algorithms.
+
+2008-12-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Multiplication Algorithms): Add descriptions of Toom-4
+ and unbalanced multiplication.
+ (Radix to Binary): Add warning that text is outdated,
+ (Contributors): Fix typos.
+
+ * mpn/generic/toom*.c: Use coherent MAYBE_ macros for trimming
+ unreachable recursive functions.
+ * gmp-impl.h: Update toom itch functions.
+
+ * mpn/x86_64/sqr_basecase.asm: Slightly increase stack allocation, to
+ placate tuneup.
+
+2008-12-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/pentium4/aors_n.asm: Tune prologue code.
+
+ * mpn/x86_64/pentium4/aorslsh1_n.asm: New file.
+
+ * mpn/x86_64/darwin.m4: Define symbol "DARWIN".
+ * mpn/x86_64/invert_limb.asm: Work around darwin quirks.
+
+ * mpn/x86_64/sqr_basecase.asm: Further optimize, support Darwin.
+
+ * mpn/x86_64/invert_limb.asm: New file.
+
+2008-12-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/aorslsh1_n.asm: New file.
+
+2008-12-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/perfpow.c: Handle negative arguments properly.
+ * tests/mpz/t-perfpow.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-perfpow.
+
+2008-12-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-mul.c (dump_abort): Improve error message.
+
+ * gcd.c gcd_subdiv_step.c gcdext.c gcdext_subdiv_step.c:
+ Remove private mpn_zero_p.
+
+ * tune/tuneup.c (tune_mul): Tune for MUL_TOOM44_THRESHOLD.
+ (tune_sqr): Tune for SQR_TOOM4_THRESHOLD.
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom44_mul.c and
+ toom4_sqr.c.
+
+ * configure.in (gmp_mpn_functions): Toom function updates.
+
+ * Rename mpn/mul_toomMN.c to mpn/toomMN_mul.c. Function names changed
+ accordingly.
+
+ * mpn/toomMN_mul.c: Add scratch parameter. Do recursive multiplies
+ properly. Misc tuning. Remove CHECK and TIMING code.
+
+ * mpn/toom2_sqr.c, mpn/toom3_sqr.c, mpn/toom4_sqr.c: New files.
+
+ * gmp-impl.h (mpn_toomMN_mul_itch): Several new functions.
+ (mpn_zero_p): New functions.
+ Add various TOOM4/TOOM44 related parameters.
+ Update mpn_toomMN_mul prototypes.
+
+ * mpn/generic/mul_n.c (mpn_mul_n): Call mpn_toom44_mul. Use TMP_BALLOC
+ instead of malloc.
+ (mpn_sqr_n): Analogous changes.
+
+ * mpn/generic/mul.c: Update unbalanced toom code to pass scratch space.
+
+2008-12-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/nextprime.c: Add TMP_SDECL/MARK/FREE.
+
+2008-12-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/sqrtrem.c (mpn_sqrtrem1): Rewrite, improve interface.
+ (invsqrttab): New table, remove table approx_tab.
+ (mpn_sqrtrem2): Optimize, update mpn_sqrtrem1 call.
+ (mpn_sqrtrem): Update mpn_sqrtrem1 call.
+
+2008-12-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/nextprime.c: Run 10 mpz_millerrabin tests (was 5).
+ Give credit to authors.
+
+ * mpn/x86_64/redc_1.asm: Align stack as mandated by ABI.
+
+ * mpn/x86_64/divrem_2.asm: Add some comments.
+
+ * mpn/x86_64/darwin.m4: New file.
+ * configure.in: Use x86_64/darwin.m4.
+
+2008-12-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/projects.html: Remove GCD and division projects, update text on
+ multiplication.
+
+ * doc/tasks.html: Add a caution about that the file is somewhat
+ outdated.
+
+2008-12-14 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/ev6/aorsmul_1.asm: New file (same code for mpn_addmul_1,
+ much improved for mpn_submul_1).
+ * mpn/alpha/ev6/addmul_1: File removed.
+ * mpn/alpha/ev6/submul_1: File removed.
+
+2008-12-09 Torbjorn Granlund <tege@gmplib.org>
+
+ From David Harvey:
+ * mpn/x86_64/mul_basecase.asm: Further tweaks for code size and speed.
+
+ * mpn/powerpc64/mode64/divrem_1.asm: Rewrite.
+
+ * mpn/powerpc64/mode64/mul_basecase.asm: New file.
+
+2008-12-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/powerpc64/mode64/gmp-mparam.h: New file.
+
+ * gmp-impl.h: Additional cleanups.
+ (mpn_set_str_compute_powtab): New prototype.
+ (mpn_powm, mpn_powlo): New prototypes.
+
+ * mpz/pow_ui.c: Handle some small exponents locally.
+
+2008-12-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/set_str.c: Remove prototypes (they are in gmp-impl.h).
+
+ * tune/set_strs.c, tune/set_strb.c: Make prototypes effective by moving
+ the #define mpn_set_str* before including gmp-impl.h.
+
+ * All files: Change _PROTO => __GMP_PROTO.
+
+ * tune/speed.c (routine): Remove non-working choice mpn_set_str_subquad.
+ * tune/common.c (speed_mpn_dc_set_str): Remove, it is broken.
+
+ * mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Make this static,
+ and inline it.
+
+ * gmp-impl.h: Major cleanup.
+ (Remove formal parameter names. Use __GMP_PROTO consistently. Move
+ __GMP_PROTO and __MPN use to adjacent lines for declared function.
+ Fix typos. Remove code inside #if 0.)
+
+ * configure.in (gmp_mpn_functions): Add mul_toom33. Reformat.
+
+2008-12-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/redc_1.c: New file.
+ * mpn/generic/redc_2.c: New file.
+
+ * configure.in (gmp_mpn_functions): List redc_1 and redc_2.
+ (HAVE_NATIVE): Likewise.
+
+ * tune/common.c (speed_mpn_redc_1): Renamed from speed_redc.
+ * tune/speed.c (routine): Remove "redc", and "mpn_redc_1".
+ * tune/speed.h (SPEED_ROUTINE_REDC_1): Renamed from SPEED_ROUTINE_REDC.
+ Updated call.
+ * tune/tuneup.c (tune_powm): Update redc call.
+
+2008-12-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/sqr_basecase.asm: Inline a combined diagonal product code
+ and addlsh1 loop. Misc cleanup.
+
+2008-12-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/sqr_basecase.asm: New file.
+
+2008-11-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/sqr_basecase.c: Fix typo in mpn_addmul_2s variant.
+
+2008-11-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/redc_1.asm: Rewrite.
+
+2008-11-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/refmpn.c (refmpn_redc_1): New function.
+
+2008-11-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/aorsmul_1.asm: Actually handle mpn_submul_1.
+
+2008-11-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/divrem_1.asm: Rewrite.
+
+ * alpha/divrem_2.asm: New file.
+ * powerpc32/divrem_2.asm: New file.
+ * powerpc64/mode64/divrem_2.asm: New file.
+ * x86/divrem_2.asm: New file.
+ * x86_64/divrem_2.asm: New file.
+ * tests/refmpn.c (refmpn_divrem_2): New function.
+
+2008-11-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k7/mul_1.asm: Rewrite for smaller size and better speed.
+ * mpn/x86/k7/aorsmul_1.asm: Likewise.
+
+ * acinclude.m4 (GMP_VERSION): Include last component even when zero.
+
+2008-11-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/README: Rewrite.
+
+ * tests/devel/try.c (malloc_region, mprotect_maybe): Add casts for
+ printf type correctness.
+
+ * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump.
+
+ * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
+ Bump version info.
+
+2008-11-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h: Rename modlimb_invert to binvert_limb.
+ * tune/speed.h: Likewise.
+ * tune/modlinv.c: Likewise.
+ * tune/common.c: Likewise.
+ * tests/t-modlinv.c: Likewise.
+ * tests/t-constants.c: Likewise.
+ * mpn/sparc64/mode1o.c: Likewise.
+ * mpn/alpha/dive_1.c: Likewise.
+ * mpn/sparc64/dive_1.c: Likewise.
+ * mpn/generic/mode1o.c: Likewise.
+ * mpn/generic/dive_1.c: Likewise.
+ * mpn/generic/bdivmod.c: Likewise.
+ * mpn/alpha/mode1o.asm: Likewise.
+ * mpn/asm-defs.m4: Likewise.
+ * mpn/ia64/mode1o.asm: Likewise.
+ * mpn/powerpc32/README: Likewise.
+ * mpn/powerpc32/mode1o.asm: Likewise.
+ * mpn/powerpc64/mode64/dive_1.asm: Likewise.
+ * mpn/powerpc64/mode64/mode1o.asm: Likewise.
+ * mpn/x86/dive_1.asm: Likewise.
+ * mpn/x86/k6/mmx/dive_1.asm: Likewise.
+ * mpn/x86/k6/mode1o.asm: Likewise.
+ * mpn/x86/k7/dive_1.asm: Likewise.
+ * mpn/x86/k7/mode1o.asm: Likewise.
+ * mpn/x86/p6/dive_1.asm: Likewise.
+ * mpn/x86/p6/mode1o.asm: Likewise.
+ * mpn/x86/pentium/dive_1.asm: Likewise.
+ * mpn/x86/pentium/mode1o.asm: Likewise.
+ * mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
+ * mpn/x86_64/dive_1.asm: Likewise.
+ * mpn/x86_64/mode1o.asm: Likewise.
+
+ * mpn/x86_64/aors_n.asm: Replace with slightly faster, more alignment
+ neutral loop.
+
+2008-11-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Remove gcd_finda related declarations.
+ * gmp-impl.h (mpn_gcd_finda): Remove declaration.
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Remove gcd_finda.
+ * mpn/asm-defs.m4: Remove define_mpn(gcd_finda).
+ * mpn/x86/k6/gcd_finda.asm: Remove file.
+ * tests/devel/try.c (param_init): Remove mpn_gcd_finda.
+ (choice_array): Remove mpn_gcd_finda.
+ * tests/mpn/t-instrument.c (check): Remove testing of mpn_gcd_finda.
+ * tests/refmpn.c (refmpn_gcd_finda): Remove.
+ * tests/tests.h (refmpn_gcd_finda): Remove declaration.
+ * tune/common.c (speed_mpn_gcd_finda): Remove.
+ * tune/gcd_finda_gen.c: Remove file.
+ * tune/speed.h (speed_mpn_gcd_finda): Remove declaration.
+ * tune/speed.c (routine): Remove mpn_gcd_finda entry.
+
+ * tests/mpz/t-powm.c: Print test number when failing a test.
+
+ * mpn/x86_64/redc_1.asm (CALL): Move from here...
+ * mpn/x86_64/x86_64-defs.m4: ...to here.
+
+ * gmp-impl.h (mpn_jacobi_base): Remove parameter names.
+
+2008-11-11 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpf/t-conv.c: Add some specific tests, supplementing the random
+ tests.
+
+2008-11-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpf/set_str.c: Default 'base' before letting exp_base inherit it.
+
+ * tests/cxx/t-prec.cc: Use the right precision for all float constants.
+
+2008-11-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi (Float Comparison): Update mpf_eq documentation.
+
+ * mpf/eq.c: Compare the right number of bits.
+
+2008-11-02 Torbjorn Granlund <tege@gmplib.org>
+
+ Undo, it made testing too slow:
+ * tests/mpz/t-mul.c: Use slower geometric progression for operand
+ sizes.
+
+ * mpn/x86/k7/mod_34lsub1.asm: Use movzb for masking low 8 bits.
+
+2008-10-31 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd2.c (div1): New function (taken from old gcdext
+ implementation)
+ (mpn_hgcd2): Use single precision for the second half of the work.
+
+2008-10-30 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/p6/sse2/gmp-mparam.h: New file.
+
+2008-10-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (x86 fat_path): Add "x86/p6/sse2".
+
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Recognize sse2 capable p6
+ (pentiumm, core2).
+
+ * mpn/x86/p6/sse2/mul_1.asm: New file.
+ * mpn/x86/p6/sse2/addmul_1.asm: New file.
+ * mpn/x86/p6/sse2/submul_1.asm: New file.
+ * mpn/x86/p6/sse2/mul_basecase.asm: New file.
+ * mpn/x86/p6/sse2/sqr_basecase.asm: New file.
+ * mpn/x86/p6/sse2/popcount.asm: New file.
+
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Handle "extended" fields for
+ model and family.
+
+2008-10-28 Torbjorn Granlund <tege@gmplib.org>
+
+ From Mickael Gastineau:
+ * gmp-h.in (gmp_urandomm_ui, gmp_urandomb_ui): Add __GMP_DECLSPEC.
+
+2008-10-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (mpn_gcdext_1): Remove bogus __GMP_ATTRIBUTE_PURE.
+
+2008-10-27 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c (speed_mpn_hgcd): Call mpn_hgcd_matrix_init once
+ for each call to mpn_hgcd.
+ (speed_mpn_hgcd_lehmer): Likewise.
+
+2008-10-26 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Point to p6/sse2 for pentiumm and core2.
+
+ * gmp-impl.h (mpn_add_nc, mpn_sub_nc): Move these macros to after fat
+ definitions.
+
+ * tune/common.c, tune/speed.c, tune/speed.h:
+ Add speed measurement of mpn_bdiv_dbm1c.
+
+2008-10-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/gmp-mparam.h (MUL_FFT_TABLE2, SQR_FFT_TABLE2): Extend.
+
+ * mpz/nextprime.c: Move declarations to function beginning.
+
+2008-10-23 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (DECL_gcdext_1): Deleted.
+
+2008-10-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/atom/aors_n.asm: New file.
+ * mpn/x86_64/atom/gmp-mparam.h: New file.
+
+2008-10-21 Torbjorn Granlund <tege@gmplib.org>
+
+ With Neils Möller:
+ * mpz/nextprime.c: Rewrite.
+
+ * tests/devel/try.c (main): Use strtol for 's' and 'S' optargs.
+
+ * mpn/x86_64/pentium4/rshift.asm: Misc cleanups.
+ * mpn/x86_64/pentium4/lshift.asm: Likewise.
+
+ * mpn/x86_64/pentium4/aors_n.asm: Use fewer registers.
+
+ * configure.in: Set up specific path for x86_64/atom.
+
+2008-10-21 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Removed
+ qstack.c.
+ * mpn/generic/qstack.c: Deleted obsolete file.
+
+2008-10-20 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/core2/aorsmul_1.asm: New file.
+
+2008-10-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aors_n.asm: Remove redundant MULFUNC_PROLOGUE.
+
+ * gmp-impl.h (popc_limb): Remove redundant checks of GMP_LIMB_BITS
+ inside several of these macros.
+
+2008-10-17 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-mul.c: Use slower geometric progression for operand
+ sizes. Do every other tests for same size operands.
+
+2008-10-15 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/mul_basecase.asm: Simplify addressing in epilogue.
+
+ * mpn/mips64/divrem_1.asm: Remove file, it is n32-only, and uses an old
+ algorithm.
+
+ * config.guess, config.sub, configure.in: Support Intel Atom processor.
+
+2008-10-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpq/mul.c: Fix typo in last change.
+
+2008-10-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/refmpn.c (refmpn_sb_divrem_mn): Work around a gcc bug.
+
+2008-10-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpq/mul.c: Use TMP_ALLOC. Cleanup.
+ * mpq/div.c: Likewise.
+
+ * mpn/x86_64/mul_basecase.asm: Use lea directly for loading entry point
+ addresses.
+
+2008-10-09 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/x86/k7/gmp-mparam.h: Updated GCD-related values.
+
+2008-10-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft_internal): Do store
+ mpn_fft_norm_modF return value, if (rec).
+
+2008-10-04 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aorsmul_1.asm: Replace with faster code.
+ * mpn/x86_64/mul_1.asm: Likewise.
+ * mpn/x86_64/addmul_2.asm: Likewise.
+ * mpn/x86_64/mul_2.asm: Likewise.
+ * mpn/x86_64/mul_basecase.asm: Likewise.
+
+2008-10-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/minithres/gmp-mparam.h: Update FFT values.
+
+2008-10-02 Niels Möller <nisse@lysator.liu.se>
+
+ * hgcd.c (mpn_hgcd_matrix_mul): Fixed normalization bug.
+
+2008-09-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Handle --enable-minithres.
+ * mpn/minithres/gmp-mparam.h: Update all values.
+
+2008-09-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * tune/speed.c (routine): New entry for mpn_mul.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MUL): Renamed from
+ SPEED_ROUTINE_MPN_MUL_BASECASE.
+ (speed_mpn_mul): Renamed from speed_mpn_mul_basecase.
+ (SPEED_ROUTINE_MPN_MUL): Allocate our own memory of xp operand.
+
+ * tune/common.c: Corresponding changes.
+
+2008-09-22 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (hgcd_mul_matrix_vector): New function,
+ replaces addmul2_n. Needs less copying.
+ (mpn_gcdext): Use hgcd_mul_matrix_vector. Updated for interface
+ change in mpn_gcdext_subdiv_step
+
+ * mpn/generic/hgcd.c (hgcd_matrix_mul_1): Rewritten to use
+ mpn_hgcd_mul_matrix1_vector.
+ (hgcd_step): Updated for interface change in
+ mpn_hgcd_mul_matrix1_inverse_vector.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for
+ interface changes in mpn_hgcd_mul_matrix1_vector,
+ mpn_hgcd_mul_matrix1_inverse_vector and mpn_gcdext_subdiv_step.
+
+ * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Updated for
+ interface change in mpn_hgcd_mul_matrix1_inverse_vector.
+
+ * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): Use
+ separate scratch arguments for the quotient and for the cofactor
+ update.
+
+ * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Interface
+ change. Store first element in rp and leave ap unmodified. No
+ additional scratch space or copying needed. Callers that require
+ modification in place still need to copy one of the inputs.
+ (mpn_hgcd_mul_matrix1_inverse_vector): Likewise.
+
+2008-09-22 Niels Möller <nisse@lysator.liu.se> <nisse@king.swox.se>
+
+ * mpn/generic/hgcd.c (hgcd_matrix_mul_1): Use mpn_addaddmul_1msb0.
+ * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Likewise.
+
+ * mpn/generic/gcd.c: Use libspeed for timing measurements.
+
+ * gmp-impl.h: Declare mpn_addaddmul_1msb0.
+ * mpn/asm-defs.m4: Added addaddmul_1msb0.
+ * mpn/x86_64/addaddmul_1msb0.asm: New file.
+ * configure.in (gmp_mpn_functions_optional): Added
+ addaddmul_1msb0.
+ (HAVE_NATIVE): List addaddmul_1msb0.
+
+2008-09-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/get_str.c (GET_STR_DC_THRESHOLD): Remove default.
+ (GET_STR_PRECOMPUTE_THRESHOLD): Likewise.
+ Misc code cleanups.
+
+ * gmp-impl.h (mpn_dc_set_str_itch): Allocate GMP_LIMB_BITS more limbs.
+
+ Revert:
+ * mpn/generic/set_str.c:
+ (mpn_dc_set_str): Remove impossible case, replace by an ASSERT.
+
+2008-09-18 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/alpha/ev6/gmp-mparam.h (DIVEXACT_BY3_METHOD): Define.
+
+ * mpn/ia64/diveby3.asm: Remove.
+ * mpn/x86/diveby3.asm: Remove.
+ * mpn/x86/k6/diveby3.asm: Remove.
+ * mpn/x86/k7/diveby3.asm: Remove.
+ * mpn/x86/p6/diveby3.asm: Remove.
+ * mpn/x86/pentium/diveby3.asm: Remove.
+ * mpn/x86_64/diveby3.asm: Remove.
+ * mpn/x86/pentium4/sse2/diveby3.asm: Remove.
+
+ * configure.in (HAVE_NATIVE): List divexact_by3c.
+
+ * gmp-impl.h (mpn_divexact_by3c): Override gmp-h.in's definition.
+ (DIVEXACT_BY3_METHOD): Don't default to 0 if
+ HAVE_NATIVE_mpn_divexact_by3c.
+
+2008-09-18 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcd.c (main): Added code for tuning of CHOOSE_P.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Assert that inputs are
+ normalized.
+
+2008-09-17 Niels Möller <nisse@lysator.liu.se> <nisse@king.swox.se>
+
+ * mpn/generic/gcdext.c (mpn_gcdext): p = n/5 caused a
+ slowdown for large inputs. As a compromise, use p = n/2 for the
+ first iteration, and p = n/3 for the rest. Handle the first
+ iteration specially, since the initial u0 and u1 are trivial.
+
+ * mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
+ from 409 to 390.
+
+ * mpn/generic/gcdext.c (CHOOSE_P): New macro. Use p = n/5.
+ (mpn_gcdext): Use CHOOSE_P, and generalized the calculation of
+ scratch space.
+
+ * tune/tuneup.c (tune_hgcd): Use default step factor.
+
+ * mpn/x86_64/gmp-mparam.h: (GCD_DC_THRESHOLD): Reduced from 493 to
+ 412.
+
+ * mpn/generic/gcd.c (CHOOSE_P): New macro, to determine the
+ split when calling hgcd. Use p = 2n/3, as that seems better than
+ the more obvious split p = n/2.
+ (mpn_gcd): Use CHOOSE_P, and generalized the calculation of
+ scratch space.
+
+2008-09-16 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom_interpolate_7pts.c: Use new mpn_divexact_byN
+ functions.
+
+ * gmp-impl.h (mpn_divexact_by3, mpn_divexact_by5, mpn_divexact_by7,
+ mpn_divexact_by9, mpn_divexact_by11, mpn_divexact_by13,
+ mpn_divexact_by15): New macros, defined in terms of mpn_bdiv_dbm1.
+
+ * configure.in (gmp_mpn_functions): List bdiv_dbm1c.
+ (HAVE_NATIVE): Likewise.
+ * mpn/asm-defs.m4: Define bdiv_dbm1c.
+ * gmp-impl.h (mpn_bdiv_dbm1c): Declare.
+ (mpn_bdiv_dbm1): New macro.
+ * mpn/generic/bdiv_dbm1c.c: New file.
+ * mpn/alpha/bdiv_dbm1c.asm: New file.
+ * mpn/ia64/bdiv_dbm1c.asm: New file.
+ * mpn/powerpc32/bdiv_dbm1c.asm: New file.
+ * mpn/powerpc64/mode64/bdiv_dbm1c.asm: New file.
+ * mpn/x86/bdiv_dbm1c.asm: New file.
+ * mpn/x86_64/bdiv_dbm1c.asm: New file.
+
+ * mpn/generic/diveby3.c: Add mpn_bdiv_dbm1c based function.
+ Choose function depending on DIVEXACT_BY3_METHOD.
+ * gmp-impl.h (DIVEXACT_BY3_METHOD): Provide default.
+
+2008-09-16 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Moved function to
+ gcdext.c, where it is used.
+ * mpn/generic/gcdext.c (addmul2_n): Moved and renamed, was
+ mpn_hgcd_addmul2_n. Made static. Deleted input normalization.
+ Deleted rn argument.
+ (mpn_gcdext): Updated calls to addmul2_n, and added assertions.
+
+ * gmp-impl.h (MPN_HGCD_MATRIX_INIT_ITCH): Increased storage by 4 limbs.
+ (MPN_HGCD_LEHMER_ITCH): Reduced storage by one limb.
+ (MPN_GCD_SUBDIV_STEP_ITCH): Likewise.
+ (MPN_GCD_LEHMER_N_ITCH): Likewise.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Use two extra limbs.
+ (hgcd_step): Use overlapping arguments to mpn_tdiv_qr.
+ (mpn_hgcd_matrix_mul): Deleted normalization code. Tighter bounds
+ for the element size of the product. Needs two extra limbs of
+ storage for the elements.
+ (mpn_hgcd_itch): Updated storage calculation.
+
+ * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Use
+ overlapping arguments to mpn_tdiv_qr. Use mpn_zero_p.
+
+ * mpn/generic/gcd.c (mpn_gcd): Use mpn_zero_p.
+
+2008-09-15 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Updated for deleted
+ tp pointer.
+ (hgcd_matrix_update_q): Likewise.
+ (mpn_hgcd_matrix_mul): Likewise.
+ (mpn_hgcd_itch): Updated calculation of scratch space.
+
+ * gmp-impl.h (struct hgcd_matrix): Deleted tp pointer.
+ (MPN_HGCD_MATRIX_INIT_ITCH): Reduced storage.
+ (mpn_hgcd_step, MPN_HGCD_STEP_ITCH): Deleted declarations.
+
+2008-09-15 Niels Möller <nisse@lysator.liu.se> <nisse@king.swox.se>
+
+ * mpn/x86_64/gmp-mparam.h (MATRIX22_STRASSEN_THRESHOLD): New
+ threshold.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Use mpn_matrix22_mul.
+ (mpn_hgcd_itch): Updated calculation of scratch space. Use
+ count_leading_zeros to get the recursion depth.
+
+ * mpn/generic/gcd.c (mpn_gcd): Fixed calculation of scratch space,
+ and use mpn_hgcd_itch.
+
+2008-09-15 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (tune_matrix22_mul): New function.
+ (all): Use it.
+
+ * tune/common.c (speed_mpn_matrix22_mul): New function.
+
+ * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added matrix22_mul.c.
+
+ * tests/mpn/t-matrix22.c: Use MATRIX22_STRASSEN_THRESHOLD to
+ select sizes for tests.
+
+ * gmp-impl.h (MATRIX22_STRASSEN_THRESHOLD): New threshold
+
+ * configure.in (gmp_mpn_functions): Added matrix22_mul.
+ * gmp-impl.h: Added declarations for mpn_matrix22_mul and related
+ functions.
+
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added
+ matrix22_mul.c.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Added t-matrix22.
+
+ * tests/mpn/t-matrix22.c: New file.
+ * mpn/generic/matrix22_mul.c: New file.
+
+2008-09-11 Niels Möller <nisse@king.swox.se>
+
+ * tune/tuneup.c: Updated tuning of gcdext.
+
+ * mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold
+ from 713 to 409.
+
+2008-09-11 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h: Updated for gcdext changes.
+ (GCDEXT_DC_THRESHOLD): New constant, renamed from
+ GCDEXT_SCHOENHAGE_THRESHOLD.
+
+ * mpn/generic/gcdext.c (compute_v): Accept non-normalized a and b
+ as inputs.
+ (mpn_gcdext): Rewrote and simplified. Now uses the new mpn_hgcd
+ interface.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Renamed from addmul2_n
+ and made non-static. Changed interface to take non-normalized
+ inputs, and only two size arguments.
+ (mpn_hgcd_matrix_mul): Simplified using new mpn_hgcd_addmul2_n.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): Deleted
+ function.
+ (mpn_gcdext_lehmer_n): Renamed from mpn_gcd_lehmer. Now takes
+ inputs of equal size. Moved the code for the division step to a
+ separate function...
+ * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): New
+ file, new function.
+
+ * configure.in (gmp_mpn_functions): Added gcdext_subdiv_step.
+
+2008-09-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/devel/anymul_1.c: Include <string.h>.
+
+ * gmp-h.in: Unconditionally include <cstdio>.
+
+2008-09-10 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c: #if:ed out speed_mpn_gcd_binary and
+ speed_mpn_gcd_accel.
+ * tune/speed.c (routine): #if:ed out mpn_gcd_binary, mpn_gcd_accel
+ and find_a.
+ * tune/Makefile.am (libspeed_la_SOURCES): Removed gcd_bin.c
+ gcd_accel.c gcd_finda_gen.c.
+ * tune/tuneup.c: Enable tuning of GCD_DC_THRESHOLD.
+
+ * mpn/generic/gcd.c (mpn_gcd): Rewrote and simplified. Now uses
+ the new mpn_hgcd interface.
+
+ * */gmp-mparam.h: Renamed GCD_SCHOENHAGE_THRESHOLD to
+ GCD_DC_THRESHOLD.
+
+ * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Renamed (was
+ mpn_gcd_lehmer). Now takes inputs of equal size.
+
+ * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer): Reintroduced gcd_2,
+ to get better performance for small inputs.
+
+ * mpn/generic/hgcd.c: Don't hardcode small HGCD_THRESHOLD.
+ * mpn/x86_64/gmp-mparam.h (HGCD_THRESHOLD): Reduced from 145 to
+ 120.
+ * */gmp-mparam.h: Renamed HGCD_SCHOENHAGE_THRESHOLD to
+ HGCD_THRESHOLD.
+
+2008-09-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * doc/gmp.texi: Fix a typo and clarify mpn_gcdext docs.
+
+2008-09-09 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Adapted
+ to new hgcd interface.
+
+ * gmp-impl.h (MPN_HGCD_LEHMER_ITCH): New macro.
+
+ * hgcd.c (mpn_hgcd_lehmer): Renamed function, from hgcd_base. Made
+ non-static.
+
+ * gcd_lehmer.c (mpn_gcd_lehmer): Use hgcd2 also for n == 2.
+
+ * gcdext_lehmer.c (mpn_gcdext_lehmer): Simplified code for
+ division step. Added proper book-keeping of swaps, which affect
+ the sign of the returned cofactor.
+
+ * tests/mpz/t-gcd.c (one_test): Display co-factor when mpn_gcdext
+ fails.
+
+ * gcd_lehmer.c (mpn_gcd_lehmer): At end of loop, need to handle
+ the special case n == 1 correctly.
+
+ * gcd_subdiv_step.c (mpn_gcd_subdiv_step): Simplified function.
+ The special cancellation logic is not needed here.
+
+2008-09-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/invert.c: Add working but slow code.
+
+ * mpn/x86_64/x86_64-defs.m4 (R32, R8): New macros.
+
+ * mpn/ia64/submul_1.asm: Move some labels for broader assembler
+ compatibility.
+
+ * gmp-impl.h (mpn_mul_3, mpn_mul_4): Declare.
+ * tests/tests.h (refmpn_mul_3, refmpn_mul_4): Declare.
+ * tests/try.c (param_init): Set things up for mpn_mul_3 and mpn_mul_4.
+ (choice_array): Likewise.
+ (call): Likewise.
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES):
+ Add mul_3.c and mul_4.
+ * mpn/asm-defs.m4: Define mul_3 and mul_4.
+ * tests/refmpn.c (refmpn_mul_N): New function.
+ (refmpn_mul_2): Remove old definition, call refmpn_mul_N.
+ (refmpn_mul_3, refmpn_mul_4): New functions.
+ * tune/common.c (speed_mpn_mul_3, speed_mpn_mul_4): New functions.
+ * tune/speed.h (speed_mpn_mul_3, speed_mpn_mul_4): Declare.
+ * tune/speed.c (routine): New entries for mpn_mul_2 and mpn_mul_3.
+
+ * ltmain.sh: Update to libtool 1.5.24.
+
+ * mpn/generic/mul_toom22.c: Compute s and t more cleverly.
+
+2008-09-08 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/t-hgcd.c: Updated tests. Rewrite of hgcd_ref.
+
+ * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): New function.
+ (mpn_gcdext_lehmer): Various bugfixes.
+
+ * gcdext.c (mpn_gcdext): Allocate scratch space for gcdext_lehmer.
+
+ * mpn/generic/gcd_lehmer.c (gcd_2): ASSERT that inputs are odd.
+ (mpn_gcd_lehmer): Added tp argument, for scratch space. Make both
+ arguments odd before calling gcd_2.
+
+ * mpn/generic/hgcd.c (mpn_hgcd): Allow the trivial case n <= 2,
+ and return 0 immediately.
+
+ * gmp-impl.h (MPN_EXTRACT_NUMB): New macro.
+
+ * configure.in (gmp_mpn_functions): Added gcdext_lehmer.
+
+2008-09-05 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/toom_interpolate_7pts.c: Use mpn_divexact_by3c instead of
+ divexact_odd.
+
+ * doc/texinfo.tex: Update to 2007-06-29.13.
+
+ * doc/gmp.texi: Update GMP site URL. Fix some typos.
+
+ * demos/pexpr.c (main): Allow bases up to 62.
+
+ * gmp-impl.h: Remove formal parameter names from function prototypes.
+
+ * config.guess: Recognize recent AMD and Itanium CPUs.
+ Default X86 CPU recognition to configfsf.guess' value.
+
+ * configure.in: Handle core2 separately from athlon64.
+
+2008-09-05 Niels Möller <nisse@lysator.liu.se>
+
+ * */Makefile.in, configure, aclocal.m4, config.in: Removed files
+ from repository. They're instead generated by automake and
+ autoconf before distribution.
+
+2008-08-25 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpf/set_str.c: Allocate mantissa space based on mantissa size,
+ not on destination variable space.
+ * mpf/set_str.c: Accept unary plus before exponent.
+
+2008-08-06 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul_toom22.c: Add statistics gathering functionality,
+ triggered by cpp predef STAT.
+
+ From David Harvey:
+ * mpn/generic/mul_toom22.c: Decrease scratch space usage.
+
+2008-08-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/misc/t-scanf.c: Avoid negative arguments to _ui functions.
+ * tests/misc/t-printf.c: Likewise.
+
+ * acinclude.m4 (X86_PATTERN): Add geode.
+
+ * acinclude.m4 (CL_AS_NOEXECSTACK): Avoid -q flag to grep.
+
+2008-08-01 Torbjorn Granlund <tege@gmplib.org>
+
+ * acinclude.m4 (CL_AS_NOEXECSTACK): New.
+ * configure.in: Use CL_AS_NOEXECSTACK.
+ * mpn/Makeasm.am: Use ASM_FLAGS (defined by CL_AS_NOEXECSTACK).
+
+ * gmpxx.h (__GMP_DBL_LIMBS): Use DBL_MAX_EXP instead of
+ std::numeric_limits<double>::max_exponent for better portability.
+
+2008-07-29 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmpxx.h (__GMP_DBL_LIMBS): New #define.
+ (__GMP_ULI_LIMBS): New #define.
+ (__GMPXX_TMP_UI): New macro.
+ (__GMPXX_TMP_SI): New macro.
+ (__GMPXX_TMP_D): New macro.
+ (struct __gmp_binary_and): Rewrite, using the new macros.
+ (struct __gmp_binary_ior): Likewise.
+ (struct __gmp_binary_xor): Likewise.
+
+2008-07-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/cxx/t-binary.cc: Add some tests for logical operations.
+
+2008-07-24 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmpxx.h: Use __GMPZ_* instead of __GMPZZ_* for bitwise ops, remove
+ __GMPZZ_*.
+ Remove repeated #undefs.
+ (__gmp_alloc_cstring): Declare freefunc as extern "C".
+
+2008-07-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-h.in (__GMP_CC): New define, undocumented for now.
+ (__GMP_CFLAGS): Likewise.
+
+2008-07-21 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/amd64check.c: Fix a printf type clash.
+
+ * mpz/realloc.c: Amend last fix.
+
+ * gmp-h.in: Include <cstdlib> for C++.
+ * gmp-h.in: Handle new gcc 4.3 inline semantics defaults.
+
+ * configfsf.guess: Update to version of 2008-04-14.
+ * configfsf.sub: Update to version of 2008-06-16.
+
+ * configure.in: Separate core2 and athlon64 flags handling.
+
+2008-06-19 Torbjorn Granlund <tege@gmplib.org>
+
+ * config.guess: Recognize pentiumm and AMD geode.
+ * config.sub: Likewise.
+ * configure.in: Likewise.
+
+2008-06-02 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in: Disallow odd nails sizes.
+ * configure.in: Inherit default gcc_cflags/gcc_64_cflags everywhere.
+
+2008-05-23 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/init2.c: Rewrite to avoid internal overflow and to detect mpz_t
+ overflow.
+ * mpz/realloc2.c: Likewise.
+ * mpz/realloc.c: Detect mpz_t overflow.
+
+2008-05-22 Torbjorn Granlund <tege@gmplib.org>
+
+ * configure.in (sparc): Remove -fast, it causes documented
+ miscompilation.
+
+ * config.guess: Properly handle the "extended" variants of x86 cpuid.
+
+2008-05-09 Torbjorn Granlund <tege@gmplib.org>
+
+ * gmp-impl.h (mpn_mul_fft): Now void.
+ (udiv_qrnnd_preinv3): Special case for constant (nl).
+
+2008-05-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/generic/mul_fft.c: Clean up types in TRACE (printf (...)).
+ (TRACE): Redefine to allow command line control.
+ (mpn_mul_fft_internal): Now void, remove return value.
+ (mpn_mul_fft): Likewise.
+ (MPN_FFT_TABLE2_SIZE): Up size fro 256 to 512.
+ (mpn_fft_fft): Call mpn_fft_mul_2exp_modF just once instead of twice,
+ then add/subtract result. Get rid of temp allocation as a result.
+ Remove some redundant CNST_LIMB.
+ (mpn_fft_fftinv): Analogous changes.
+ (mpn_fft_sub_modF): Re-enable, now needed by mpn_fft_fft and
+ mpn_fft_fftinv.
+
+2008-03-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/mpz/t-mul.c (main): Let GMP_CHECK_FFT mean largest allowed
+ power-of-2 of test operands.
+
+2008-02-28 Torbjorn Granlund <tege@gmplib.org>
+
+ * tests/cxx/t-binary.cc (check_mpz): Expect floor rounding for right
+ shift.
+
+2008-02-27 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpz/mul_i.h: Check sml's size (not the signed small_mult).
+
+ * longlong.h (umul_ppmm) [alpha]: Define using __builtin_alpha_umulh
+ when possible.
+
+ * longlong.h (count_trailing_zeros): Force destination register mode.
+
+ * gmpxx.h (struct __gmp_binary_rshift): Use floor rounding, not
+ truncation.
+
+ * gmpxx.h (__gmp_binary_and, __gmp_binary_ior, __gmp_binary_xor):
+ Add variants with unsigned long int argument.
+
+ * config.sub: Recog geode.
+ * config.guess: Likewise.
+ * acinclude.m4 (X86_PATTERN): Likewise.
+
+2008-02-10 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/p6/aors_n.asm: Use Zdisp to work around GNU as bug.
+ * mpn/x86/x86-defs.m4 (Zdisp): Add more instructions.
+
+2008-02-08 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86_64/aors_n.asm: New file.
+ * mpn/x86_64/add_n.asm: Delete.
+ * mpn/x86_64/sub_n.asm: Delete.
+
+2008-02-07 Torbjorn Granlund <tege@gmplib.org>
+
+ * mpn/x86/k6/mmx/dive_1.asm: Fix typo in last change.
+
+2007-12-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/set_str.c (mpf_set_str): Write own code for converting the
+ exponent, avoids strtol base < 36 limitation.
+
+2007-10-28 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (mpn_dc_get_str_itch): New macro.
+ (mpn_dc_get_str_powtab_alloc): New macro.
+ (struct powers): Add field "shift".
+
+ * mpn/generic/get_str.c: Compute powers without low zero limbs; all
+ functions modified. Correct temporary allocation. Misc cleanups.
+
+ * mpn/generic/set_str.c: Compute powers without low zero limbs; all
+ functions modified.
+ (mpn_dc_set_str): Remove impossible case, replace by an ASSERT.
+
+2007-10-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/set_str.c: Remove default thresholds, not in gmp-impl.h.
+ (mpn_dc_set_str): Insert ASSERT_ALWAYS in a presumably dead code arm.
+
+2007-10-22 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (mpn_add_nc): Define as inline function, unless NATIVE.
+ (mpn_sub_nc): Likewise.
+
+2007-10-17 Torbjorn Granlund <tege@swox.com>
+
+ * tests/misc/t-printf.c: Fix a printf type clash.
+ * tests/mpq/t-get_str.c: Likewise.
+ * tests/mpz/t-import.c: Likewise.
+
+ * acinclude.m4: Conditionally disable some tests when compiled by a C++
+ compiler.
+
+ * gmp-impl.h (udiv_qrnnd_preinv3): Remove an unused variable.
+
+ * mpn/generic/hgcd.c: Add some WANT_ASSERTs to shut up warnings.
+
+2007-10-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/elf.m4 (LEAL): Define as an alias for LEA.
+ * mpn/powerpc32/darwin.m4 (LEAL): Likewise.
+ * mpn/powerpc64/aix.m4: Likewise.
+
+ * mpn/powerpc64/vmx/popcount.asm: Use LEAL.
+
+ * mpn/powerpc64/darwin.m4 (LEAL): New name for LEA, since it is only
+ usable for local symbols.
+ (LEA): Replace with code for external references.
+
+ * mpn/powerpc32/vmx/mod_34lsub1.asm: Use LEAL.
+
+2007-10-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/dive_1.asm: Use LEA, remove explicit movl_eip_*.
+ * mpn/x86/k6/mode1o.asm: Likewise.
+ * mpn/x86/k6/mmx/dive_1.asm: Likewise.
+ * mpn/x86/k7/dive_1.asm: Likewise.
+ * mpn/x86/k7/mode1o.asm: Likewise.
+ * mpn/x86/p6/dive_1.asm: Likewise.
+ * mpn/x86/p6/mode1o.asm: Likewise.
+ * mpn/x86/pentium4/sse2/dive_1.asm: Likewise.
+ * mpn/x86/pentium4/sse2/mode1o.asm: Likewise.
+ * mpn/x86/pentium4/sse2/popcount.asm: Likewise.
+
+ * mpn/x86/p6/aors_n.asm: Table cycle counts.
+
+ * mpn/x86/k7/mod_34lsub1.asm: Fix over-optimistic cycle count claims.
+
+ * mpn/x86/x86-defs.m4 (DEF_OBJECT, END_OBJECT): New define's.
+
+ * mpn/x86/darwin.m4 (LEA): Put also movl_eip_XX into EPILOGUE_cpu.
+ Expect target register to have prepended %.
+
+ * mpn/x86_64/add_n.asm: Use L() for labels.
+ * mpn/x86_64/addlsh1_n.asm: Likewise.
+ * mpn/x86_64/addmul_2.asm: Likewise.
+ * mpn/x86_64/aorrlsh_n.asm: Likewise.
+ * mpn/x86_64/aorsmul_1.asm: Likewise.
+ * mpn/x86_64/com_n.asm: Likewise.
+ * mpn/x86_64/copyd.asm: Likewise.
+ * mpn/x86_64/copyi.asm: Likewise.
+ * mpn/x86_64/diveby3.asm: Likewise.
+ * mpn/x86_64/logops_n.asm: Likewise.
+ * mpn/x86_64/lshsub_n.asm: Likewise.
+ * mpn/x86_64/mul_1.asm: Likewise.
+ * mpn/x86_64/mul_2.asm: Likewise.
+ * mpn/x86_64/mul_basecase.asm: Likewise.
+ * mpn/x86_64/popham.asm: Likewise.
+ * mpn/x86_64/redc_1.asm: Likewise.
+ * mpn/x86_64/rsh1add_n.asm: Likewise.
+ * mpn/x86_64/rsh1sub_n.asm: Likewise.
+ * mpn/x86_64/rshift.asm: Likewise.
+ * mpn/x86_64/sub_n.asm: Likewise.
+ * mpn/x86_64/sublsh1_n.asm Likewise.
+ * mpn/x86_64/pentium4/aors_n.asm: Likewise.
+ * mpn/x86_64/pentium4/lshift.asm: Likewise.
+ * mpn/x86_64/pentium4/rshift.asm: Likewise.
+
+ * mpn/x86_64/x86_64-defs.m4: New file, defining LEA, DEF_OBJECT, and
+ END_OBJECT.
+
+ * mpn/generic/mul.c: Put TMP_DECL as last decl.
+
+2007-10-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/popcount.asm: New file.
+
+2007-09-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/get_str.c: Cast a char index to int to shut up compilers.
+
+ * mpn/generic/dc_div_qr.c: Pass dummy scratch argument to mpn_invert.
+ * mpn/generic/dc_divappr_q.c: Likewise.
+ * mpn/generic/mu_div_qr.c: Likewise.
+ * mpn/generic/mu_divappr_q.c: Likewise.
+ * mpn/generic/mu_div_q.c: Likewise.
+ * mpn/generic/divexact.c: Likewise.
+
+ * mpn/generic/invert.c: New file, placeholder for now.
+
+2007-09-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/toom_interpolate_5pts.c: New file, contents from
+ mpn/generic/mul_n.c
+ * mpn/generic/mul_n.c (mpn_toom3_interpolate): Function removed.
+
+ * mpn/generic/toom_interpolate_7pts.c: New file.
+
+ * mpn/x86/k7/mmx/popham.asm: Table cycle counts.
+
+ * mpn/x86/k6/README: Update URLs.
+
+ * mpn/powerpc32/README: Update URL's, company names.
+
+ * mpn/generic/get_d.c: Complete rewrite.
+
+ * mpn/generic/mul_toom33.c: New file.
+
+ * mpn/generic/mul_toom22.c: Make orthogonal with other toomXY files.
+ * mpn/generic/mul_toom32.c: Likewise.
+ * mpn/generic/mul_toom42.c: Likewise.
+
+ * mpn/alpha/invert_limb.asm: Update cycle counts. Fix a comment typo.
+
+ * mpf/get_str.c: Include stdlib.h, not stdio.h for NULL.
+
+ * doc/gmp.texi: Fix a typo.
+
+ * memory.c (__gmp_default_allocate, __gmp_default_reallocate):
+ Cast size operands in error fprintf's.
+
+ * longlong.h (sub_ddmmss) [powerpc 64]: Add more variants for constant
+ args.
+
+ * gmp-impl.h (udiv_qrnnd_preinv3): New define.
+ * gmp-impl.h (ULONG_PARITY): Exclude masquerading __INTEL_COMPILER from
+ ia64 asm.
+
+ * gmp-h.in (mpn_neg_n): New function.
+
+2007-09-18 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (main): Add -v option.
+ (enum op_t): New tag TIMING.
+ (mpz_eval_expr): Execute TIMING.
+ (fns): Add TIMING entry.
+
+ * gmp-impl.h: Add decls and THRESHOLDs for new toom multiplication
+ functions and division functions.
+
+2007-09-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/addlsh1_n.asm: Use L() for labels.
+ * mpn/powerpc32/sublsh1_n.asm: Likewise.
+
+2007-09-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/x86-defs.m4 (LEA): New define.
+ * mpn/x86/darwin.m4: New file, for now just defining LEA.
+ * configure.in: Pick up x86/darwin.m4.
+ * mpn/x86/*: Use LEA for PIC references.
+
+ * configure.in: For X86/32, treat core2 like pentium3.
+
+2007-09-06 Torbjorn Granlund <tege@swox.com>
+
+ * tests/amd64check.c (calling_conventions_values): Put constants,
+ dynamic values in this array (was in scalars).
+ (calling_conventions_check): Corresponding changes.
+ * tests/amd64call.asm: Rewrite to be PIC, smaller, using amd64check.c's
+ array.
+
+2007-09-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/mul_basecase.asm: Misc cleanups.
+ * mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise.
+
+ * mpn/x86_64/mod_34lsub1.asm: Optimize loop, reduce code size.
+
+ * tests/amd64call.asm: Remove bogus no-op moves.
+
+2007-09-03 Torbjorn Granlund <tege@swox.com>
+
+ From Richard Guenther:
+ * gmp-h.in (__GMP_EXTERN_INLINE): Declare conditionally on
+ __GNUC_STDC_INLINE__.
+
+ * tests/cxx/t-locale.cc: #include <cstdlib>, for abort.
+
+ * mpn/x86_64/core2/popcount.asm: New file.
+ * mpn/x86_64/pentium4/popcount.asm: New file.
+
+ * mpn/x86_64/addmul_2.asm: New file.
+ * mpn/x86_64/mul_2.asm: New file.
+
+ * mpn/x86_64/aorsmul_1.asm: Use 32-bit mov for zeroing registers
+ (saves space).
+
+2007-09-01 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Handle athlon64, core2, and pentium4 separately for
+ 64-bit ABI.
+
+ * config.sub: Recog athlon64, core2, and opteron.
+
+ * config.guess: Do two x86 variants, for 32-bit ABI and 64-bit ABI.
+ Return "athlon64" and "core2", not x86_64.
+
+2007-08-31 Torbjorn Granlund <tege@swox.com>
+
+ From Patrick Pelissier:
+ * gmp-h.in: Don't refer to FILE from C++ unless we've seen FILE.
+
+2007-08-30 Torbjorn Granlund <tege@swox.com>
+
+ * demos/isprime.c: Include string.h for strcmp.
+
+ * demos/factorize.c (main): Declare to int.
+
+2007-06-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/pentium4/lshift.asm: Minor tuning.
+ * mpn/x86_64/pentium4/rshift.asm: Likewise.
+
+2007-05-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/aors_n.asm: Add _nc entry points.
+
+2007-05-22 Torbjorn Granlund <tege@swox.com>
+
+ * tests/memory.c: Cast calls to new mem* calls to avoid unaligned ops.
+
+2007-05-16 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/convert.c: Tweak operand sizes for best coverage.
+
+ * tests/memory.c: Add red zones around allocations.
+
+2007-05-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_1.asm: Make mul_1c entry point actually work.
+
+ * mpn/generic/set_str.c (mpn_dc_set_str): Avoid calling mpn_add_n when
+ ln == 0.
+
+ * tests/mpz/convert.c (string_urandomb): New function.
+ (main): Use it by enabling ifdef'ed out code.
+
+2007-04-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/mul_basecase.asm: Complete rewrite.
+
+ * mpn/x86_64/copyi.asm: Use short shift-by-one form. Misc cleanups.
+ * mpn/x86_64/copyi.asm: Likewise.
+ * mpn/x86_64/popham.asm: Likewise.
+
+ * mpn/x86_64/aorsmul_1.asm: Cleanup formatting.
+
+2007-04-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/divexact.c: Handle undefined case of |N| < |D| to avoid segfaults.
+
+2007-02-24 Torbjorn Granlund <tege@swox.com>
+
+ * doc/gmp.texi (Toom 3-Way Multiplication): Fix typo.
+ (mpz_scan0, mpz_scan1): Fix typos.
+ (Float Internals): Rewrite paragraph about struct types.
+
+2007-02-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/sqr_basecase.asm: Complete rewrite (except
+ diagonal code).
+
+2007-02-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_fft.c (mpn_fft_fft): New name for mpn_fft_fft_sqr,
+ old mpn_fft_fft removed.
+ (mpn_mul_fft_internal): Call mpn_fft_fft separately for each operand.
+ (mpn_fft_add_modF): Rewrite to avoid random branches.
+ (mpn_fft_sub_modF): Likewise.
+
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Complete rewrite.
+ * mpn/x86/pentium4/sse2/mul_1.asm: Complete rewrite.
+ * mpn/x86/pentium4/sse2/mul_basecase.asm: Complete rewrite, based on
+ new addmul and mul code.
+
+2007-01-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Get loop count for frac
+ development right.
+
+ * mpn/powerpc32/vmx/mod_34lsub1.asm: New file.
+
+ * mpn/powerpc32/aors_n.asm: New file, complete rewrite.
+ * mpn/powerpc32/add_n.asm: Remove.
+ * mpn/powerpc32/sub_n.asm: Remove.
+
+2007-01-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/core2/aors_n.asm: Add _nc entry points, minor cleanups.
+
+ * mpn/x86_64/core2/lshift.asm: Rewrite.
+ * mpn/x86_64/core2/rshift.asm: Rewrite.
+
+ * mpn/x86_64/pentium4/lshift.asm: Swap some loop insns for a small
+ speedup.
+ * mpn/x86_64/pentium4/rshift.asm: New file, based on lshift.asm.
+
+ * mpn/x86_64/pentium4/gmp-mparam.h: New file.
+
+ * mpn/x86_64/pentium4/aors_n.asm: Complete rewrite of add/subtract
+ code.
+ * mpn/x86_64/pentium4/add_n.asm: Remove.
+ * mpn/x86_64/pentium4/sub_n.asm: Remove.
+
+2007-01-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/lshift.asm: Add special case for cnt=1.
+
+2007-01-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/aorsmul_1.asm: New file, written from scratch, finally at
+ 3.0 c/l on K8 (addmul_1 was 3.3; submul_1 was 3.5).
+ * mpn/x86_64/addmul_1.asm: Remove.
+ * mpn/x86_64/submul_1.asm: Remove.
+
+2006-12-29 Torbjorn Granlund <tege@swox.com>
+
+ * randmt.c (__gmp_randclear_mt): Initialize ALLOC field, like in
+ __gmp_randinit_mt_noseed.
+ (__gmp_randclear_mt, __gmp_randinit_mt_noseed): Make similar functions
+ look similar.
+ (__gmp_randclear_mt): Pass actually allocated size.
+
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mul_toom22.c,
+ mul_toom32.c, mul_toom42.c.
+
+ * configure.in: Recognize athlon64 and core2 as alternatives to x86_64.
+ Provide special settings for core2.
+
+ * configure.in (gmp_mpn_functions): Add mul_toom22, mul_toom32,
+ mul_toom42.
+
+ * mpn/generic/mul_toom22.c: New file.
+ * mpn/generic/mul.c: Use mpn_mul_toom22. Trim cutoff points between
+ the mpn_mul_toomN2 functions. Handle balanced operands at function
+ entry.
+
+2006-12-29 Marco Bodrato <bodrato@mail.dm.unipi.it>
+
+ * mpn/generic/mul_n.c: Rewrite interpolation code.
+
+2006-12-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_toom32.c: New file.
+ * mpn/generic/mul_toom42.c: New file.
+ * mpn/generic/mul.c: Use mpn_mul_toom32 and mpn_mul_toom42 for
+ unbalanced operands.
+
+2006-12-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/aorrlsh_n.asm: New file.
+ * mpn/x86_64/lshsub_n.asm: New file.
+
+ * mpn/x86_64/core2/aors_n.asm: New file.
+ * mpn/x86_64/core2/lshift.asm: New file.
+ * mpn/x86_64/core2/rshift.asm: New file.
+
+ * mpn/x86/p6/aors_n.asm: Replace K7 grabbing code with P6 specific
+ code.
+
+ * mpn/x86/p6/lshsub_n.asm: New file.
+
+2006-11-23 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MUL_BASECASE): Allocate space for xp
+ locally, s->xp might be insufficient.
+
+2006-11-22 Torbjorn Granlund <tege@swox.com>
+
+ * randmt.c (__gmp_randinit_mt_noseed): Initialize ALLOC field of result
+ param.
+
+2006-11-06 Torbjorn Granlund <tege@swox.com>
+
+ * tune/set_strp.c: New file.
+
+2006-11-04 Torbjorn Granlund <tege@swox.com>
+
+ * extract-dbl.c: Rewrite to handle nails better, and for general
+ optimization.
+
+ * mpz/bin_uiui.c: Simplify.
+
+ * longlong.h (umul_ppmm) [mmix]: New.
+
+ * tune/tuneup.c, tune/common.c, tune/speed.c, tune/speed.h,
+ tune/set_strb.c, tune/set_strs.c: Add tuning and speed measurements
+ of separate SET_STR_DC_THRESHOLD and SET_STR_PRECOMPUTE_THRESHOLD.
+ Add tuning and speed measurement of mpn_addsub_n.
+
+2006-10-31 Torbjorn Granlund <tege@swox.com>
+
+ * gmpxx.h: Remove ternary stuff, it is hardly an optimization and it
+ writes to destination before reading all source operands.
+
+2006-10-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/set_str.c: Complete rewrite.
+ * mpn/generic/get_str.c: Likewise.
+
+ * gmp-impl.h (struct powers, powers_t): New types.
+ Restructure GET_STR_* and SET_STR_* thresholds.
+
+2006-09-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/rootrem.c: Remove some redundant casts.
+
+2006-07-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/nails/addmul_2.asm: Make it run at claimed speed.
+ * mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
+
+ * mpf/get_str.c: Avoid copying result when not needed. Misc cleanups.
+
+ * tests/amd64call.asm: Use jmp instead of jmpq to placate Solaris.
+
+2006-06-30 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (powerpc-*): Remove repeated path component.
+
+2006-06-15 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: (ia64-*-linux*): Don't use -O3.
+
+2006-06-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpq/get_str.c: Fix upper base limit boundary in an ASSERT.
+
+ * tests/refmpn.c (refmpn_sb_divrem_mn): Use ASSERT_CARRY for add-back.
+
+2006-05-31 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-set_d.c (check_data): Add more data points.
+
+ * mpz/set_d.c: Handle negative return values from __gmp_extract_double.
+
+2006-05-17 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Clear out gcc_cflags_cpu and gcc_cflags_arch for a fat
+ build.
+
+2006-05-16 Torbjorn Granlund <tege@swox.com>
+
+ * demos/primes.c (find_primes): Increase mpz_probab_prime_p cnt to 10.
+
+ * mpn/generic/addsub_n.c: Fix criteria form when to call _nc functions.
+
+2006-05-12 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Recognize more ppc processor types.
+
+2006-05-11 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.c (usage): Update URL for gnuplot and quickplot.
+
+2006-05-10 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (powerpc-*-*): Pass -maltivec to assembler for
+ appropriate CPUs.
+
+2006-05-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/aix.m4 (LEA): Remove [RW] attribute.
+
+2006-05-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n.
+
+2006-04-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/divexact.c: Call mpz_tdiv_q for large operands.
+
+ * configure.in (powerpc-*-darwin): Remove -fast, it affects PIC.
+
+2006-04-26 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1).
+ * config.sub: Handle ultrasparct1.
+
+2006-04-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and
+ non-GNUC data.
+
+2006-04-20 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/convert.c: Increase operands range.
+
+2006-04-19 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Support powerpc eABI.
+ * mpn/powerpc32/eabi.m4: New file.
+
+ * configure.in: Support powerpc *bsd.
+ * mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4.
+ * mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4.
+
+ * mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY.
+
+2006-04-18 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (gmp_mpn_functions_optional): Add lshiftc.
+ (HAVE_NATIVE): Add lshiftc.
+
+ * mpn/powerpc64/mode64/invert_limb.asm: Use LEA, not LDSYM.
+ * mpn/powerpc64/mode64/mode1o.asm: Likewise.
+ * mpn/powerpc64/mode64/dive_1.asm: Likewise.
+
+ * mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty.
+ * mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise.
+ * mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise.
+
+ * mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4.
+ * mpn/powerpc32/mode1o.asm: Use EXTERN.
+ * mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition.
+ * mpn/powerpc32/darwin.m4 (EXTERN): Likewise.
+
+2006-04-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_fft.c: Use new thresholds mechanism if MUL_FFT_TABLE2
+ is defined.
+ (mpn_lshiftc): New name for mpn_lshift_com (for consistency with some
+ stuff already in 4.1.4.
+ (mpn_fft_mul_2exp_modF): Reorganize initial operand reductions to avoid
+ divisions.
+
+ * tests/devel/try.c (choice_array): Add mpn_addsub_n[c].
+
+2006-04-11 Torbjorn Granlund <tege@swox.com>
+
+ * aclocal.m4: Regenerate with patched libtool.
+
+ * mpn/asm-defs.m4 (ASM_END): Provide (empty) default.
+
+2006-04-08 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (gmp_mpn_functions_optional): Add addsub.
+
+ * gmpxx.h: Remove missed MPFR references.
+
+ * gmp-impl.h (LIMBS_PER_DOUBLE): Adjust formula to not be pessimistic.
+
+ * gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument;
+ define TMP_SALLOC and TMP_BALLOC.
+
+ * mpn/minithres/gmp-mparam.h: New file.
+
+ * tests/mpz/t-io_raw.c: Fix printf type/arg mismatches.
+ * tests/mpz/t-export.c: Likewise.
+ * tests/mpz/io.c: Likewise.
+ * tests/t-constants.c: Likewise.
+
+ * mpn/ia64/popcount.asm: Append "cond.dptk" to conditional branches to
+ placate icc.
+ * mpn/ia64/hamdist.asm: Likewise.
+ * mpn/ia64/lorrshift.asm: Likewise.
+ * mpn/ia64/dive_1.asm: Likewise.
+
+2006-04-05 Torbjorn Granlund <tege@swox.com>
+
+ * tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker.
+ (__gmp_tmp_free): Likewise.
+
+ * mpn/generic/mul_fft.c: Optimize many scalar divisions and mod
+ operations into masks and shifts.
+ (mpn_fft_mul_modF_K): Fix a spurious ASSERT_NOCARRY.
+
+2006-03-26 Torbjorn Granlund <tege@swox.com>
+
+ * Version 4.2 released.
+
+ * mpn/powerpc64/aix.m4 (LEA): Renamed from LDSYM.
+ * mpn/powerpc64/darwin.m4: Likewise.
+ * mpn/powerpc64/linux64.m4: Likewise.
+ * mpn/powerpc64/vmx/popcount.asm: Use LEA, not LDSYM.
+
+2006-03-23 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h: (class gmp_allocated_string): Prefix strlen with std::.
+
+ * gmpxx.h (__GMP_DEFINE_TERNARY_EXPR2): Remove for now.
+ (struct __gmp_ternary_addmul2): Likewise.
+ (struct __gmp_ternary_submul2): Likewise.
+
+ * gmpxx.h: #include <cstring>.
+ (struct __gmp_alloc_cstring): Prefix strlen with std::.
+
+ * mpn/x86/pentium/com_n.asm: Add TEXT and ALIGN.
+ * mpn/x86/pentium/copyi.asm: Likewise.
+ * mpn/x86/pentium/copyd.asm: Likewise.
+
+2006-03-22 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-h.in: Add a "using std::FILE" for C++.
+ (_GMP_H_HAVE_FILE): Check also _ISO_STDIO_ISO_H.
+
+ * gmpxx.h: Remove mpfr code.
+ * tests/cxx: Likewise.
+
+ * gmp-impl.h (FORCE_DOUBLE): Rename a tempvar to avoid a clash with
+ GNU/Linux public include file.
+
+ * configure.in (powerpc64, darwin): New optional, gcc_cflags_subtype.
+ Grab powerpc32/darwin.m4 for ABI=mode32.
+
+ * configure.in: Use host_cpu whenever just the cpu type is needed.
+
+2006-03-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/get_si.c: Fix a typo.
+
+ * tests/mpq/t-get_d.c (check_random): Improve random generation for
+ nails.
+
+2006-02-28 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpq/t-get_d.c (check_random): New function.
+ (main): Call check_random.
+
+ * mpq/set_d.c: Make choices based on LIMBS_PER_DOUBLE, not
+ BITS_PER_MP_LIMB. Make it work for LIMBS_PER_DOUBLE == 4.
+ Use MPZ_REALLOC.
+
+ * mpz/set_d.c: Make it work for LIMBS_PER_DOUBLE == 4.
+
+ * extract-dbl.c: Make it work for LIMBS_PER_DOUBLE > 3.
+
+2006-02-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/cmp_d.c: Declare `i'.
+ * mpz/cmpabs_d.c: Likewise.
+
+2006-02-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits.
+ * mpn/powerpc32/vmx/copyi.asm: Likewise.
+
+2006-02-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/vmx/logops_n.asm: New file.
+
+ * mpn/powerpc32/diveby3.asm: Rewrite.
+
+2006-02-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/vmx/copyi.asm: New file.
+ * mpn/powerpc32/vmx/copyd.asm: New file.
+
+2006-02-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from
+ deleted mpn_sub_n.
+
+2006-02-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/addmul_1.asm: Correct slotting comments.
+
+2006-02-15 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/anymul_1.c: Copy error reporting code from addmul_N.c.
+
+ * tests/devel/addmul_N.c: New file.
+ * tests/devel/mul_N.c: New file.
+
+ * mpn/alpha/default.m4 (PROLOGUE_cpu): Align functions at 16-byte
+ boundary.
+
+ * mpn/alpha/ev6/nails/aors_n.asm: New file.
+ * mpn/alpha/ev6/nails/add_n.asm: Remove.
+ * mpn/alpha/ev6/nails/sub_n.asm: Remove.
+
+ * mpn/alpha/ev6/nails/addmul_1.asm: Rewrite.
+ * mpn/alpha/ev6/nails/submul_1.asm: Likewise.
+ * mpn/alpha/ev6/nails/mul_1.asm: Likewise.
+
+ * mpn/alpha/ev6/nails/addmul_2.asm: Use L() for labels.
+ * mpn/alpha/ev6/nails/addmul_3.asm: Use L() for labels.
+ * mpn/alpha/ev6/nails/addmul_4.asm: Use L() for labels.
+
+2006-02-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save
+ 1 c/l.
+
+ * mpn/x86_64/dive_1.asm: Use movabsq to support large model non-PIC.
+
+ * mpn/x86_64/rsh1add_n.asm: Replace high register with rbx.
+ * mpn/x86_64/rsh1sub_n.asm: Likewise.
+
+2006-02-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/sqr_diagonal.asm: Software pipeline.
+
+ * mpn/powerpc64/vmx/popcount.asm: Add prefetching.
+
+2006-02-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/diveby3.asm: Rewrite.
+
+2006-02-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/vmx/popcount.asm: Remove mpn_hamdist partial code.
+ Move compare for huge n so that it is always executed.
+
+2006-02-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/linux.m4 (LEA): Add support for PIC.
+
+ * configure.in (powerpc): New optional, gcc_cflags_subtype.
+
+ * mpn/x86_64/pentium4/add_n.asm: New file.
+ * mpn/x86_64/pentium4/sub_n.asm: New file.
+ * mpn/x86_64/pentium4/lshift.asm: New file.
+
+ * mpn/powerpc64/linux64.m4 (PROLOGUE_cpu): Align function start to
+ 16-multiple.
+ * mpn/powerpc64/aix.m4: Likewise.
+ * mpn/powerpc64/darwin.m4: Likewise.
+
+ * mpn/powerpc64/copyi.asm: Align loop to 16-multiple.
+ * mpn/powerpc64/copyd.asm: Likewise
+
+ * configure.in (powerpc): Add vmx to relevant paths.
+
+ * mpn/powerpc64/linux64.m4 (DEF_OBJECT): Accept 2nd argument, for
+ alignment.
+ * mpn/powerpc64/aix.m4: Likewise.
+ * mpn/powerpc64/darwin.m4: Likewise.
+
+ * mpn/powerpc32/linux.m4 (DEF_OBJECT, END_OBJECT): New macros,
+ inherited from powerpc64 versions.
+ * mpn/powerpc32/aix.m4: Likewise.
+ * mpn/powerpc32/darwin.m4: Likewise.
+
+ * mpn/powerpc64/vmx/popcount.asm: New file, for ppc32 and ppc64.
+ * mpn/powerpc32/vmx/popcount.asm: New file, grabbing above file.
+
+2006-01-22 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Generalize OS-dependent patterns for powerpcs.
+
+2006-01-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/popham.asm: Optimize.
+
+ * config.guess: Recognize power4 and up under linux-gnu.
+ * config.sub: Generalize power recognition code.
+ * acinclude.m4 (POWERPC64_PATTERN): Add 64-bit powerpc processors.
+ * configure.in: Recognize powerpc processors masquerading as power
+ processors.
+
+2006-01-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/logops_n.asm: Rewrite for more stable speed and smaller
+ code.
+ * mpn/x86_64/com_n.asm: Likewise.
+
+2006-01-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/addlsh1_n.asm: Rewrite to use indexed addressing.
+ * mpn/x86_64/sublsh1_n.asm: Likewise.
+
+2006-01-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/diveby3.c: Use GMP standard parameter names. Nailify
+ alternative code. Use restrict for params.
+
+ * configure.in: Recognize andn_n as not needing nailification.
+
+ * tests/mpq/t-equal.c (check_various): Disable a test that gives common
+ factors for GMP_NUMB_BITS == 62.
+
+2006-01-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation,
+ was inaccurate for nails.
+
+2006-01-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing.
+
+2006-01-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/sqr_diagonal.asm: New file.
+
+2006-01-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/mod_34lsub1.asm: Tune to 1.5 c/l.
+
+ * mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define.
+ (mpn_mullow_n): Use it.
+
+ * mpn/powerpc64/mode64/dive_1.asm: Use EXTERN.
+ * mpn/powerpc64/mode64/mode1o.asm: Likewise.
+
+ * mpn/powerpc64/aix.m4 (EXTERN): Define to import symbol.
+ (LDSYM): Remove [RW] attribute.
+ * mpn/powerpc64/linux64.m4 (EXTERN): Dummy definition.
+ * mpn/powerpc64/darwin.m4 (EXTERN): Likewise.
+
+2006-01-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/mode1o.asm: New file.
+
+ * mpn/powerpc64/mode64/dive_1.asm: Use L() for labels. Invoke ASM_END.
+
+ * mpn/powerpc64/mode64/invert_limb.asm: Invoke ASM_END.
+
+ * mpn/powerpc64/linux64.m4: Move toc entry generation from direct at
+ DEF_OBJECT to delayed via LDSYM, define ASM_END to output it.
+ * mpn/powerpc64/aix.m4: Likewise.
+ * mpn/powerpc64/darwin.m4: Define a dummy ASM_END.
+
+ * mpn/powerpc64/mode64/addmul_1.asm: Add POWER5 timings.
+ * mpn/powerpc64/mode64/mul_1.asm: Likewise.
+
+ * mpn/powerpc64/mode64/submul_1.asm: Tweak to save 1.5 c/l for POWER5.
+
+2006-01-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/dive_1.asm: New file.
+
+ * mpn/powerpc64/mode64/invert_limb.asm: Add missing ASM_START.
+
+ * mpn/powerpc64/mode64/addmul_1.asm: Fix a comment typo.
+
+ * mpn/x86_64/diveby3.asm: Rewrite.
+
+2006-01-03 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Update bugs reporting address.
+
+ * mpn/powerpc64/mode64/diveby3.asm: Trim a cycle off of POWER4 timing.
+ Misc cleanup.
+
+2006-01-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/linux64.m4 (CALL): New macro.
+ * mpn/powerpc64/aix.m4: Likewise.
+ * mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN".
+
+2005-12-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/mod_34lsub1.asm: New file.
+
+2005-12-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/mod_34lsub1.asm: New file.
+
+2005-12-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86_64/submul_1.asm: Save a push/pop by not using register r12.
+ Use addq instead of leaq for pointer updates; schedule them. (These
+ changes shaves one cycle of overhead and 0.25 c/l.)
+
+2005-12-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha.
+ * mpf/set_q.c: Likewise.
+
+2005-12-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/tdiv_qr.c: Remove statement with no effect.
+ Rename dead variable to `dummy'.
+
+2005-12-15 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (setup_error_handler): Add a missing ";".
+
+2005-11-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul.c: Crudely call mpn_mul_fft_full before checking
+ for unbalanced operands.
+
+ * mpn/generic/mul_fft.c: Remove many scalar divisions.
+ (mpn_mul_fft_lcm): Simplify.
+ (mpn_mul_fft_decompose): Rewrite to handle arbitrarily unbalanced
+ operands.
+
+2005-11-22 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Properly recognize all 32-bit Solaris releases.
+
+2005-11-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF,
+ mpn_fft_add_modF and mpn_fft_normalize.
+
+2005-11-02 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/reuse.c: Increase operand size, decrease # of reps.
+
+ * mpz/rootrem.c: Adapt to new mpn_rootrem.
+ * mpz/root.c: Likewise.
+
+ * tests/mpz/reuse.c: Test mpz_rootrem.
+
+ With Paul Zimmermann:
+ * mpn/generic/rootrem.c: Complete rewrite.
+
+2005-10-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/pprime_p.c (mpz_probab_prime_p): Considerably limit trial
+ dividing.
+
+ * mpz/perfpow.c (mpz_perfect_power_p): Use mpz_divisible_ui_p instead
+ of mpz_tdiv_ui.
+
+ * mpz/divegcd.c: Correct probability number for GCD == 1.
+
+ * mpn/x86_64/mul_basecase.asm: Remove an obsolete comment.
+
+ * mpn/x86: Add cycle counts for array of x86 processors.
+
+ * mpn/x86/k7/mod_34lsub1.asm: Remove spurious mentions of ebp.
+
+ * mpn/powerpc32: Add POWER5 timings.
+
+ * mpn/powerpc32/README: Describe global reference variations.
+
+ * mpn/ia64/divrem_2.asm: Add some comments.
+
+ * mpn/ia64/divrem_1.asm: Reformat.
+
+ * mpn/ia64/addmul_2.asm: Correct a comment on slotting.
+ * mpn/ia64/logops_n.asm: Likewise.
+
+ * mpn/ia64/addmul_1.asm: Remove a redundant preg mutex decl.
+
+ * mpn/generic/dive_1.c: Whitespace cleanup.
+
+ * mpn/alpha/ev6/nails/addmul_1.asm: Correct comments on slotting.
+ * mpn/alpha/ev6/nails/addmul_2.asm: Likewise.
+ * mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
+
+ * mpf/out_str.c: List some allocation improvement ideas.
+
+ * doc/gmp.texi: Update many URLs and email addresses.
+
+ * gmp-h.in (_GMP_H_HAVE_FILE): Check also _STDIO_H_INCLUDED.
+
+2005-10-26 Torbjorn Granlund <tege@swox.com>
+
+ * tune/tuneup.c (tune_mullow): Update param.max_size for each threshold
+ measurement.
+
+ * configure.in (POWERPC64_PATTERN/*-*-darwin*): Set
+ SPEED_CYCLECOUNTER_OBJ_mode64 and cyclecounter_size_mode64.
+ (POWERPC64_PATTERN/*-*-linux*): Likewise.
+
+2005-10-03 Torbjorn Granlund <tege@swox.com>
+
+ * demos/factorize.c (factor_using_division_2kp): Honor verbose flag.
+ (factor_using_pollard_rho): Divide out new factor before it's
+ clobbered. Don't stop factoring after a composite factor was found.
+
+2005-09-17 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (fns): Add factorial keywords.
+
+2005-08-16 Torbjorn Granlund <tege@swox.com>
+
+ * tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64".
+ * mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64".
+
+2005-08-15 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Change "amd64" => "x86_64".
+
+2005-06-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/pre_mod_1.c: Canonicalize variable names.
+
+ * mpn/generic/divrem.c: Rate qxn test as UNLIKELY.
+
+ * mpn/generic/gcdext.c (sanity_check_row): Invoke TMP_MARK.
+
+ * tune/tuneup.c (tune_mullow): Fix all max_size fields.
+
+ * gmp-impl.h (SQR_TOOM3_THRESHOLD_LIMIT): New #define.
+ * tune/tuneup.c (tune_sqr): Use SQR_TOOM3_THRESHOLD_LIMIT.
+ (sqr_toom3_threshold): Initialize from SQR_TOOM3_THRESHOLD_LIMIT.
+
+ * mpn/generic/mul_n.c (mpn_sqr_n): Use SQR_TOOM3_THRESHOLD_LIMIT.
+
+ * gmp-impl.h (mpn_nand_n, mpn_iorn_n, mpn_nior_n, mpn_xnor_n):
+ Handle nails.
+
+2005-06-13 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (gcdext_schoenhage): Check for the
+ (unlikely) case that one of the hgcd/euclid steps results in two
+ remainders of one limb each. Then use gcdext_1.
+
+2005-06-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last.
+
+2005-06-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/add_n.asm: Rewrite inner loop to load later.
+ Add mpn_add_nc entry.
+
+ * mpn/alpha/ev6/addmul_1.asm: Remove redundant initial loads.
+
+2005-06-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/dive_1.asm: Fix issues with HP-UX.
+
+2005-06-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/diveby3.asm: Update TODO list.
+
+ * mpn/ia64/mode1o.asm: Fix comment typos.
+
+ * mpn/ia64/dive_1.asm: New file.
+
+2005-06-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mode1o.asm: Add prefetching.
+
+ * mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result.
+
+2005-06-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/hamdist.asm: Complete rewrite.
+ * mpn/ia64/popcount.asm: Rewrite to use multi-pronged feed-in.
+
+ * mpn/ia64/aors_n.asm: Rewrite feed-in code.
+ * mpn/ia64/rsh1aors_n.asm: Likewise.
+ * mpn/ia64/aorslsh1_n.asm: Likewise.
+ * mpn/ia64/lorrshift.asm: Likewise.
+
+2005-06-04 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/try.c (choice_array): Exclude mpn_preinv_mod_1 unless
+ USE_PREINV_MOD_1.
+ (choice_array): Exclude mpn_sqr_basecase if SQR_KARATSUBA_THRESHOLD
+ is zero.
+
+2005-06-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$".
+ * mpn/alpha/ev6/mul_1.asm: Likewise.
+
+2005-06-02 Torbjorn Granlund <tege@swox.com>
+
+ * tests/refmpn.c (refmpn_divmod_1c_workaround): Implement workaround
+ to gcc 3.4.x bug triggered on powerpc64 with 32-bit ABI.
+
+2005-06-01 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/try.c (main): Fix a typo.
+
+2005-05-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch.
+
+2005-05-30 Torbjorn Granlund <tege@swox.com>
+
+ * tests/misc.c (tests_rand_start): Mask random seed to 32 bits.
+
+2005-05-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode32/mul_1.asm: Handle BROKEN_LONGLONG_PARAM.
+ * mpn/powerpc64/mode32/addmul_1.asm: Likewise.
+ * mpn/powerpc64/mode32/submul_1.asm: Likewise.
+
+ * mpn/powerpc32/mode1o.asm: Rewrite to actually work.
+
+ * mpn/powerpc32/aix.m4 (LEA): New macro.
+ (ASM_END): New macro.
+
+ * mpn/powerpc32/linux.m4: New file.
+ * mpn/powerpc32/darwin.m4: New file.
+ * configure.in: Use linux.m4 and darwin.m4.
+ (powerpc64-linux-gnu): Add support for mode32.
+
+2005-05-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mullow_n.c: Remove FIXME mentioning fixed flaw.
+
+ * tests/mpz/t-cmp_d.c (check_one): Fix printf fmt string typo.
+
+ * demos/isprime.c: #include stdlib.h.
+ * tests/rand/t-urbui.c: Likewise.
+ * tests/rand/t-urmui.c: Likewise.
+
+ * tests/mpz/t-popcount.c (check_random): Remove spurious printf arg.
+
+ * mpn/ia64/lorrshift.asm: Cleanup code layout.
+ * mpn/ia64/popcount.asm: Likewise.
+
+2005-05-24 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/try.c (param_init) [TYPE_GET_STR]: Set retval field.
+ (compare): Handle SIZE_GET_STR as SIZE_RETVAL.
+
+ * tests/refmpn.c (refmpn_get_str): Rewrite to make it work.
+
+2005-05-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/add_n.asm: Add mpn_add_nc entry point.
+ * mpn/amd64/sub_n.asm: Add mpn_sub_nc entry point.
+
+ * longlong.h (many places): Remove lvalue casts.
+
+ * gmp-impl.h (MPF_SIGNIFICANT_DIGITS): Cast prec to avoid overflow
+ for > 4G digits.
+
+ * mpn/alpha/ev6/add_n.asm: Prefetch using ldl.
+ * mpn/alpha/ev6/sub_n.asm: Likewise.
+
+ * mpn/alpha/ev6/slot.pl (optable): Recognize negq and ldl.
+
+ * mpn/ia64/aors_n.asm: Prefetch using lfetch.
+ * mpn/ia64/lorrshift.asm: Likewise.
+ * mpn/ia64/popcount.asm: Likewise.
+ * mpn/ia64/diveby3.asm: Likewise.
+
+2005-05-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev67/popcount.asm: Prefetch.
+ * mpn/alpha/ev67/hamdist.asm: Prefetch.
+
+ * longlong.h (add_ssaaaa) [x86]: Remove lvalue casts.
+ (sub_ddmmss) [x86]: Likewise.
+
+ * tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Add DATA_SRC1_ODD.
+ (param_init) [TYPE_MPZ_KRONECKER]: Clear inherited DATA_SRC1_ODD.
+ (param_init) [TYPE_DIVEXACT_1]: Use symbolic name DIVISOR_LIMB.
+
+2005-05-21 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Initialize divisor
+ field according to UDIV_NEEDS_NORMALIZATION.
+
+ * mpz/mul_i.h: Remove left-over TMP_XXXX marker arguments.
+
+2005-05-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/addmul_1.asm (mpn_addmul_1c): Put carry in
+ proper register.
+
+ * mpn/generic/sqr_basecase.c (mpn_sqr_basecase, addmul_2 version):
+ Avoid accesses out-of-bound in MPN_SQR_DIAGONAL applicate code.
+
+2005-05-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/diveby3.asm: Make it actually work.
+
+ * gmp-impl.h (MULLOW_BASECASE_THRESHOLD_LIMIT): New #define.
+ * mpn/generic/mullow_n.c: Use fixed stack allocation for the smallest
+ operands; use TMP_S* allocation for medium operands.
+
+ * gmp-impl.h: Remove nested TUNE_PROGRAM_BUILD test.
+
+2005-05-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c: Make squaring and multiplication code more
+ similar. Use TMP_S* functions.
+
+ * gmp-impl.h (TMP_DECL, TMP_MARK, TMP_FREE): Get rid of argument.
+ (TMP_SALLOC): New macro for "small" allocations.
+ (TMP_BALLOC): New macro for "big" allocations.
+ (TMP_SDECL, TMP_SMARK, TMP_SFREE): New macros for functions that use
+ just TMP_SALLOC.
+ (WANT_TMP_ALLOCA): Make default functions choose alloca or reentrant
+ functions, depending on size.
+
+ * *.c: Remove TMP_XXXX marker arguments.
+
+ * acinclude.m4 (WANT_TMP): Want tal-reent.lo also for alloca case.
+
+2005-05-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/gmp-mparam.h: Further extend FFT tables.
+
+2005-05-15 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa.
+ (udiv_qrnnd_preinv2gen): Likewise.
+
+2005-05-14 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate
+ operands.
+ * (sub_ddmmss) [x86_64]: Likewise.
+
+2005-05-02 Torbjorn Granlund <tege@swox.com>
+
+ * acinclude.m4 (GMP_HPC_HPPA_2_0): Make gmp_tmp_v1 sed pattern handle
+ version numbers like B.11.X.32509-32512.GP.
+
+ * mpn/m68k/aors_n.asm: Correct MULFUNC_PROLOGUE.
+
+ * mpn/powerpc64/mode64/aors_n.asm: Add a MULFUNC_PROLOGUE.
+
+ * mpf/inp_str.c: Use plain int for mpf_set_str return value (works
+ around gcc 4 bug).
+
+ * acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): Handle darwin's assembly
+ syntax.
+ (long long reliability test 1): New GMP_PROG_CC_WORKS_PART test.
+ (long long reliability test 2): New GMP_PROG_CC_WORKS_PART test.
+
+ * configure.in: Add mode64 support for darwin. Use darwin.m4.
+ Add cflags_opt flags for mode32 darwin.
+
+ * mpn/powerpc64: Use L() for all asm files.
+
+ * mpn/asm-defs.m4 (PIC_ALWAYS): Define PIC just iff PIC_ALWAYS = "yes".
+
+ * mpn/powerpc64/darwin.m4: New file.
+
+ * mpn/powerpc64/linux64.m4: Remove TOCREF, add LDSYM.
+ Rework DEF_OBJECT to need just one argument.
+ * mpn/powerpc64/aix.m4: Likewise.
+
+ * mpn/powerpc64/mode64/invert_limb.asm: Load approx_tab address with
+ LDSYM. Optimize somewhat. Remove 2nd DEF_OBJECT operand.
+
+2005-05-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/popham.c: Compute final summation differently for 64-bit.
+
+ * tests/mpz/t-popcount.c (check_random): New function.
+ (main): Call it.
+
+2005-04-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/add_n.asm: Use r9 instead of rbx to save push/pop.
+ * mpn/amd64/sub_n.asm: Likewise.
+
+2005-04-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/copyi.asm: If HAVE_ABI_mode32, ignore upper 32 bits of
+ mp_size_t argument.
+ * mpn/powerpc64/copyd.asm: Likewise.
+ * mpn/powerpc64/sqr_diagonal.asm: Likewise.
+ * mpn/powerpc64/lshift.asm: Likewise.
+ * mpn/powerpc64/rshift.asm: Likewise.
+ * mpn/powerpc64/logops_n.asm: Likewise.
+ * mpn/powerpc64/com_n.asm: Likewise.
+
+2005-04-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp.
+
+2005-04-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/add_n.asm: Add nc entry point.
+ * mpn/powerpc32/sub_n.asm: Likewise.
+
+ * mpn/amd64/*.asm: Add Prescott/Nocona cycle/limb numbers.
+
+ * mpn/alpha/add_n.asm: Add correct cycle/limb numbers.
+ * mpn/alpha/sub_n.asm: Likewise.
+ * mpn/alpha/ev5/add_n.asm: Likewise.
+ * mpn/alpha/ev5/sub_n.asm: Likewise.
+
+2005-03-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/k7/gmp-mparam.h: Fix typo in last change.
+
+2005-03-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/gmp-mparam.h: Update.
+
+ * mpn/alpha/gmp-mparam.h: Update.
+ * mpn/alpha/ev5/gmp-mparam.h: Update.
+ * mpn/alpha/ev6/gmp-mparam.h: Update.
+
+ * mpn/ia64/gmp-mparam.h: Update.
+
+ * mpn/x86/p6/mmx/gmp-mparam.h: Update.
+ * mpn/x86/pentium4/sse2/gmp-mparam.h: Update.
+ * mpn/x86/k7/gmp-mparam.h: Update.
+
+ * tests/mpz/t-gcd.c (main): Honor command line reps argument.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Simplify and correct code
+ for generating test operands.
+
+2005-03-17 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (qstack_adjust): New argument d, saying how much
+ to adjust the top quotient.
+ (hgcd_adjust): The quotient can be off by either 1 or 2.
+
+2005-03-16 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-gcd.c (MAX_SCHOENHAGE_THRESHOLD): Set to largest of
+ gcd,gcdext thresholds.
+
+2005-03-15 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (gcdext_schoenhage): When calling gcdext_lehmer,
+ reuse all temporary limb storage, including the storage used for the
+ qstack.
+
+2005-03-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/logops_n.asm: Add MULFUNC_PROLOGUE.
+
+2005-03-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/gmp-mparam.h: Extend MUL_FFT_TABLE and SQR_FFT_TABLE.
+ * mpn/ia64/gmp-mparam.h: Likewise.
+
+2005-02-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/divrem_1.asm: Add preinv entry point.
+
+2005-01-13 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t.
+ (MPN_SIZEINBASE_16): Likewise.
+
+2004-12-17 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.c (run_gnuplot): Use lines, not linespoints.
+ Output a reset gnuplot command initially.
+
+2004-12-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/random2.c (gmp_rrandomb): Rework again.
+ * mpz/rrandomb.c (gmp_rrandomb): Likewise.
+
+ * mpn/amd64/redc_1.asm: Call via PLT when PIC.
+
+2004-11-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/divrem_1.asm: Add preinv entry point.
+ * mpn/amd64/gmp-mparam.h: Set USE_PREINV_DIVREM_1 to 1.
+
+2004-11-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/diveby3.asm: Use correct prefetch instruction.
+
+2004-11-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE.
+ Add r31 dummy operand to `br' instruction.
+
+2004-11-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/addmul_1.asm: Rewrite.
+ * mpn/powerpc64/mode64/mul_1.asm: Rewrite.
+
+ * configure.in: Invoke AC_C_RESTRICT.
+
+2004-11-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/diveby3.asm: New file.
+
+2004-11-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/popham.asm: New file.
+
+2004-11-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/add_n.asm: Correct cycle count.
+ * mpn/amd64/sub_n.asm: Likewise.
+
+ * mpn/amd64/dive_1.asm: Speed divisors with many factors of 2.
+
+2004-11-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/dive_1.asm: New file.
+
+2004-11-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/popham.c: Add comment.
+
+2004-11-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/com_n.asm: New file.
+
+ * mpn/amd64/logops_n.asm: New file.
+
+2004-11-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/com_n.asm: New file.
+
+2004-11-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/diveby3.asm: New file.
+
+ * config.guess: Strip any PPC string in /proc/cpuinfo.
+ Recognize 970 in that code.
+
+2004-11-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/mul_basecase.asm: New file.
+
+ * mpn/amd64/redc_1.asm: New file.
+
+2004-10-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/addlsh1_n.asm: Correct cycle counts.
+
+ * mpn/powerpc64/README: Update POWER5/PPC970 pipeline information.
+
+ * mpn/generic/mul_basecase.c (MAX_LEFT): Add comment.
+
+ * doc/gmp.texi: Consistently use "x86" denotation.
+ (Assembler SIMD Instructions): Mention SSE2 usage.
+
+ * demos/pexpr.c (main): Handle "negative" base in mpz_sizeinbase call.
+
+2004-10-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/submul_1.asm: Shave 2 cycles/limb with new carry
+ inversion trick.
+
+2004-10-16 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Support icc under x86.
+ (ia64-*-linux*): Pass -no-gcc to icc.
+
+2004-10-15 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (ia64 umul_ppmm): Add version for icc.
+
+ * configure.in: Support icc under ia64-*-linux*.
+
+ * acinclude.m4: New "compiler works" test for icc 8.1 bug.
+ (GMP_PROG_CC_IS_GNU): Don't let Intel's icc fool us it is GCC.
+
+2004-10-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c: Add a few missing TMP_MARK.
+
+2004-10-14 Torbjorn Granlund <tege@swox.com>
+
+ * acinclude.m4 (GMP_ASM_W32): Try also "data4".
+
+ * mpn/ia64/logops_n.asm: Don't use naked "br", rejected by Intel
+ assembler.
+ * mpn/ia64/aors_n.asm: Likewise.
+
+ * mpn/ia64/divrem_2.asm: Add ".prologue".
+
+ * mpn/ia64/hamdist.asm: Put alloc first in bundle, enforced by the
+ Intel assembler.
+
+ * longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm.
+ * gmp-impl.h: Likewise.
+
+2004-10-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_2.asm: Rewrite function entry code, write new code for
+ n=2.
+ * mpn/ia64/addmul_2.asm: Likewise.
+
+ * tests/devel/try.c: Handle mpn_mul_2 like mpn_addmul_2.
+
+ * tune/speed.c (routine): Make R parameter optional for mpn_mul_2.
+
+2004-10-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/addmul_1.asm: Update a comment.
+
+ * tests/devel/aors_n.c: #include tests.h.
+ * tests/devel/anymul_1.c: Likewise.
+ * tests/devel/shift.c: Likewise.
+ * tests/devel/copy.c: Likewise.
+
+ * tests/devel/aors_n.c: Handle also mpn_addlsh1_n, mpn_sublsh1_n,
+ mpn_rsh1add_n, and mpn_rsh1sub_n.
+
+ * mpn/ia64/submul_1.asm: Add TODO item.
+
+ * mpn/ia64/aors_n.asm: Rewrite function entry code (again).
+ * mpn/ia64/aorslsh1_n.asm: Likewise.
+ * mpn/ia64/logops_n.asm: Likewise.
+
+ * mpn/ia64/rsh1aors_n.asm: Tune function entry and feed-in code.
+ * mpn/ia64/lorrshift.asm: Likewise. Remove several spurious loads.
+
+ * tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's
+ file removals and additions.
+
+2004-10-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/copyi.asm: Tune function entry code.
+ * mpn/ia64/copyd.asm: Likewise.
+
+ * mpn/ia64/logops_n.asm: Tune function entry and feed-in code for speed
+ and size.
+ * mpn/ia64/aors_n.asm: Likewise.
+
+ * mpn/powerpc64/logops_n.asm: Correct cycles counts.
+ * mpn/powerpc64/mode64/aors_n.asm: Likewise.
+
+ * tests/devel/copy.c: Handle both MPN_COPY_INCR and MPN_COPY_DECR.
+
+ * tests/devel/logops_n.c: New file, handle all logical operations.
+
+ * tests/devel/anymul_1.c: New file, handle mpn_mul_1, mpn_addmul_1, and
+ mpn_submul_1
+ * tests/devel/mul_1.c: Remove.
+ * tests/devel/addmul_1.c: Remove.
+ * tests/devel/submul_1.c: Remove.
+
+ * tests/devel/shift.c: New file, handle mpn_lshift and mpn_rshift.
+ * tests/devel/lshift.c: Remove.
+ * tests/devel/rshift.c: Remove.
+
+ * tests/devel/aors_n.c: New file, handle mpn_add_n and mpn_sub_n.
+ * tests/devel/add_n.c: Remove.
+ * tests/devel/sub_n.c: Remove.
+
+2004-10-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF.
+ * mpn/powerpc64/aix.m4: Likewise.
+ * mpn/powerpc64/mode64/invert_limb.asm: Use DEF_OBJECT, END_OBJECT, and
+ TOCREF for approx_tab.
+
+ * mpn/amd64/mul_1.asm: Add mpn_mul_1c entry point.
+
+2004-10-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/copyi.asm: New file.
+ * mpn/powerpc64/copyd.asm: New file.
+ * gmp-h.in: Remove PPC MPN_COPY variants.
+ * gmp-impl.h: Likewise.
+
+ * mpn/powerpc64/logops_n.asm: New file.
+
+ * mpn/powerpc64/mode64/invert_limb.asm: New file.
+
+2004-10-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/aors_n.asm: New file, optimized for POWER4 and
+ its derivatives.
+ * mpn/powerpc64/mode64/add_n.asm: Delete.
+ * mpn/powerpc64/mode64/sub_n.asm: Delete.
+
+ * configfsf.guess: Patch HP-UX code to accommodate HP compiler's new
+ inability to read from stdin.
+
+ * mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file.
+
+2004-10-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/README: Update for new developments, fix typos.
+
+ * mpn/amd64/mul_1.asm: Tweak addressing (3.25 => 3.0 cycles/limb).
+
+ * mpn/amd64/addmul_1.asm: Remove unreachable code block.
+
+2004-09-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/addmul_1.asm: Rewrite, now 3.25 cycles/limb.
+
+ * mpn/ia64/addmul_1.asm: Slightly enhance cross-jumping for code
+ density.
+ * mpn/ia64/mul_1.asm: Analogous changes.
+
+2004-09-29 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register
+ flag.
+
+2004-09-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/divrem_1.asm: Add cycle counts to loop.
+
+ * mpn/ia64/divrem_2.asm: New file.
+
+2004-09-28 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the
+ recursive fft parameters.
+
+2004-09-20 Torbjorn Granlund <tege@swox.com>
+
+ * tests/misc.c (tests_rand_start): Default to strtoul for re-seeding.
+
+ * tests/mpz/t-mul.c (ref_mpn_mul): Fudge tmp allocation for toom3.
+
+2004-09-19 Torbjorn Granlund <tege@swox.com>
+
+ * tests/misc.c (tests_rand_start): Shift tv_usec for better seeding.
+
+2004-09-18 Torbjorn Granlund <tege@swox.com>
+
+ * tests/misc.c (tests_rand_start): Invoke fflush after printing seed.
+
+ * tests/mpz/t-mul.c (main): Check environment for GMP_CHECK_FFT, run
+ extra FFT tests if set.
+ (ref_mpn_mul): Use library code for kara and toom, but skewded so that
+ we never use the same algorithm that we're testing.
+ (mul_kara): Delete.
+ (debug_mp): Print just one line of large numbers.
+ (ref_mpn_mul): Rework usage of tp temporary space.
+
+2004-09-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_2.asm: For HAVE_ABI_32, convert vp.
+ * mpn/ia64/addmul_2.asm: Likewise.
+
+2004-09-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/invert_limb.asm: Rewrite.
+
+ * mpn/ia64/logops_n.asm: Insert some more stops.
+
+2004-09-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/gmp-mparam.h: Update.
+ * mpn/amd64/gmp-mparam.h: Update.
+
+ * mpn/ia64/sqr_diagonal.asm: Shave off a few cycles.
+
+2004-09-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_2.asm: New file.
+ * mpn/ia64/addmul_2.asm: New file.
+
+ * mpn/ia64/addmul_1.asm: Tune a cycle from prologue.
+
+ * mpn/ia64/lorrshift.asm: Insert stops after several branches.
+ * mpn/ia64/aorslsh1_n.asm: Likewise.
+ * mpn/ia64/rsh1aors_n.asm: Likewise.
+
+ * mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2,
+ accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n.
+
+2004-09-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/submul_1.asm: Rewrite.
+
+ * mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
+ * mpn/ia64/mul_1.asm: Likewise.
+
+2004-09-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_1.asm: Optimize feed-in code.
+ * mpn/ia64/addmul_1.asm: Rewrite feed-in code.
+
+2004-08-29 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample.
+
+2004-07-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler.
+
+2004-06-17 Kevin Ryde <kevin@swox.se>
+
+ * doc/gmp.texi: Use @. when sentence ends with a capital, for good
+ spacing in tex.
+ (Language Bindings): Add gmp-d, reported by Ben Hinkle. Update SWI
+ Prolog URL, reported by Jan Wielemaker.
+
+2004-06-09 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Handle --enable-fat. Use that to enable x86 fat
+ builds, remove magic meaning of i386-*-*.
+
+2004-06-03 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (memset): Use a local char* pointer, in case parameter is
+ something else (eg. tune/common.c). Reported by Emmanuel Thomé.
+
+2004-06-01 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (i?86-*-*): Avoid "Illegal instruction" message which
+ goes to stdout on 80386 freebsd4.9.
+
+2004-05-23 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c (gcdext_1_u): New function.
+ (mpn_gcdext): Use it.
+
+2004-05-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps.
+
+2004-05-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers.
+
+ * mpn/amd64/divrem_1.asm: Shave a cycle from fraction development code.
+
+ * mpn/powerpc32/lshift.asm: Add more cycle numbers.
+ * mpn/powerpc32/rshift.asm: Likewise.
+
+ * mpn/ia64/addmul_1.asm: Reformat.
+
+2004-05-21 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (mpn_mullow_n, mpn_mullow_basecase): Declare.
+
+ * tune/Makefile.am: Compile gcdext.c.
+
+ * gmp-impl.h (GET_STR_THRESHOLD_LIMIT): Lower outrageous value to 150.
+ (GCDEXT_SCHOENHAGE_THRESHOLD): Set reasonable default. Override when
+ TUNE_PROGRAM_BUILD.
+ (GCDEXT_THRESHOLD): Remove.
+
+ * tune/tuneup.c (gcdext_schoenhage_threshold): New variable.
+ (gcdext_threshold): Remove variable.
+ (tune_gcd_schoenhage): Lower step_factor to 0.1.
+ (tune_gcdext_schoenhage): New function, based on tune_gcd_schoenhage.
+ (tune_gcdext): Remove function.
+ (all): Corresponding changes.
+
+2004-05-21 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/gcdext.c: Complete rewrite. Uses fast Lehmer code for
+ small operands, and Schoenhage code for large operands.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is
+ not smaller than 2nd operand.
+
+2004-05-17 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (mpz_get_ui): Use #if instead of plain if, and for nails
+ use ?: same as normal case, to avoid warnings from Borland C++ 6.0.
+ Reported by delta trinity.
+
+2004-05-15 Kevin Ryde <kevin@swox.se>
+
+ * tune/time.c (getrusage_backwards_p): New function
+ (speed_time_init): Use it to exclude broken netbsd1.4.1 getrusage.
+ * configure.in (m68*-*-netbsd1.4*): Remove code pretending getrusage
+ doesn't exist.
+ * tune/README (NetBSD 1.4.1 m68k): Update notes.
+
+ * configure.in (mips*-*-* ABI=n32): Remove gcc_n32_ldflags and
+ cc_n32_ldflags, libtool knows to put the linker in n32 mode.
+
+2004-05-15 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess (powerpc*-*-*): Add more processor types to mfpvr code.
+ * configure.in: Generalize powerpc subtype matching code.
+
+ * mpz/fac_ui.c: Misc cleanups, spelling corrections.
+
+2004-05-14 Kevin Ryde <kevin@swox.se>
+
+ * mpf/sub.c: When one operand cancels high limbs of the other, strip
+ high zeros on the balance before truncating to destination precision.
+ Truncating first loses accuracy and can lead to a result 0 despite
+ operands being not equal. Reported by John Abbott.
+ Also, ensure exponent is zero when result is zero, for instance if
+ operands are exactly equal.
+ * tests/mpf/t-sub.c (check_data): New function, exercising these.
+
+2004-05-12 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_PROG_RANLIB): New macro, supposedly required by
+ automake, though it doesn't complain.
+
+ * demos/expr/Makefile.am (ARFLAGS): Add a default setting, to
+ workaround an automake bug.
+
+2004-05-10 Kevin Ryde <kevin@swox.se>
+
+ * */Makefile.in, install-sh, aclocal.m4: Update to automake 1.8.4.
+
+ * doc/gmp.texi (Demonstration Programs): Add a remark about expression
+ evaluation in the main gmp library.
+
+ * demos/expr/exprfa.c (mpf_expr_a): Correction to mpX_init, use
+ mpf_init2 to follow requested precision.
+ * demos/expr/exprza.c, demos/expr/exprqa.c: Use wrappers for mpX_init,
+ to make parameters match.
+
+ * demos/expr/run-expr.c: Don't use getopt, to avoid needing configury
+ for optarg declaration. Remove TRY macro, rename foo and bar to var_a
+ and var_b, for clarity.
+ * demos/expr/expr-impl.h: Don't use expr-config.h.
+ * configure.in (demos/expr/expr-config.h): Remove.
+ * demos/expr/expr-config.in: Remove file.
+
+2004-05-08 Kevin Ryde <kevin@swox.se>
+
+ * doc/configuration (Configure): Update for current automake not
+ copying acinclude.m4 into aclocal.m4.
+
+ * configure.in, Makefile.am, doc/gmp.texi, doc/configuration,
+ tests/cxx/Makefile.am, demos/expr/Makefile.am, demos/expr/README,
+ demos/expr/expr.c, demos/expr/expr.h, demos/expr/expr-config-h.in,
+ demos/expr/expr-impl.h, demos/expr/run-expr.c, demos/expr/t-expr.c:
+ MPFR now published separately, remove various bits.
+ * mpfr/*, tests/cxx/t-headfr.cc, demos/expr/exprfr.c,
+ demos/expr/exprfra.c: Remove.
+
+2004-05-07 Kevin Ryde <kevin@swox.se>
+
+ * tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Amend c++ shared library
+ path hack, on k62-unknown-dragonfly1.0 /usr/bin/make runs its commands
+ "set -e", so we need an "|| true" in case there's nothing to copy (for
+ instance in a static build).
+
+2004-05-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/mode1o.c: Remove, in favour of ...
+ * mpn/alpha/mode1o.asm: New file.
+ * mpn/alpha/alpha-defs.m4 (bwx_available_p): New macro.
+
+ * tune/amd64.asm: Save rbx in r10 rather than on the stack.
+
+ * configure.in (x86_64-*-*): Try also "-march=k8 -mno-sse2", in case
+ we're in ABI=32 on an old OS not supporting xmm regs.
+ (GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): Run these tests under
+ -march=k8 too, and not under ABI=64.
+
+ * doc/gmp.texi (Converting Integers): For mpz_get_d, note truncation
+ and overflows. For mpz_get_d_2exp note truncation, note result if
+ OP==0, and cross reference libc frexp.
+ (Rational Conversions): For mpq_get_d, note truncation and overflows.
+ (Converting Floats): For mpf_get_d, note truncation and overflows.
+ For mpf_get_d_2exp, note truncation, note result if OP==0.
+ (Assembler Code Organisation): Note nails subdirectories.
+ Clarification of get_d_2exp OP==0 reported by Sylvain Pion.
+
+2004-05-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mullow_n.c, mpn/generic/mullow_basecase.c: New files
+ (mainly by Niels Möller).
+ * configure.in, mpn/Makefile.am: Add them.
+
+ * gmp-impl.h (MULLOW_BASECASE_THRESHOLD, MULLOW_DC_THRESHOLD,
+ MULLOW_MUL_N_THRESHOLD): Override for TUNE_PROGRAM_BUILD.
+
+ * tune/Makefile.am: Compile mullow_n.c.
+ * tune/common.c (speed_mpn_mullow_n, speed_mpn_mullow_basecase):
+ New functions.
+ * tune/speed.c (routine): Add entries for mpn_mullow_n and
+ mpn_mullow_basecase.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MULLOW_N_CALL,
+ SPEED_ROUTINE_MPN_MULLOW_BASECASE): New #defines.
+ * tune/tuneup.c (tune_mullow): New function.
+
+ * gmp-impl.h (invert_limb): Compute branch-freely.
+
+2004-05-02 Kevin Ryde <kevin@swox.se>
+
+ * mpn/amd64/mode1o.asm: Use movabsq to support large model non-PIC.
+ Use 32-bit insns to save code bytes, and to save a couple of cycles on
+ the initial setup multiplies.
+
+2004-05-01 Kevin Ryde <kevin@swox.se>
+
+ * doc/gmp.texi (References): Update gcc online docs url to
+ gcc.gnu.org.
+
+ * configure.in (mips*-*-irix[6789]*): Correction to m4 quoting of this
+ pattern. (Believe the mips64*-*-* part also used picks up all current
+ irix6 tuples anyway.) Reported by Rainer Orth.
+
+2004-04-30 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_X86_GOT_EAX_EMITTED,
+ GMP_ASM_X86_GOT_EAX_OK): New macros.
+ (GMP_PROG_CC_WORKS): Use them to detect an old gas bug tickled by
+ recent gcc. Reported by David Newman.
+
+ * doc/gmp.texi (Reentrancy): Note also gmp_randinit_default as an
+ alternative to gmp_randinit.
+
+2004-04-29 Torbjorn Granlund <tege@swox.com>
+
+ * configfsf.guess: Update to 2004-03-12.
+ * configfsf.sub: Likewise.
+
+2004-04-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/rrandomb.c (gmp_rrandomb): Rework to avoid extra limb allocation
+ and to generate even numbers.
+ * mpn/generic/random2.c (gmp_rrandomb): Likewise.
+
+2004-04-25 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (FORCE_DOUBLE): Don't use an asm with a match constraint
+ on a memory output, apparently not supported and provokes a warning
+ from gcc 3.4.
+
+2004-04-24 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (count_leading_zeros_gcc_clz,
+ count_trailing_zeros_gcc_ctz): New macros.
+ (count_leading_zeros, count_trailing_zeros) [x86]: Use them on gcc
+ 3.4.
+
+ * configure.in (x86-*-* gcc_cflags_cpu): Give a -mtune at the start of
+ each option list, for use by gcc 3.4 to avoid deprecation warnings
+ about -mcpu.
+
+ * mpz/aorsmul.c, mpz/aorsmul_i.c, mpz/cfdiv_q_2exp.c,
+ mpz/cfdiv_r_2exp.c, mpq/aors.c, mpf/ceilfloor.c: Give REGPARM_ATTR()
+ on function definition too, as demanded by gcc 3.4.
+
+2004-04-22 Kevin Ryde <kevin@swox.se>
+
+ * tests/rand/t-lc2exp.c (check_bigc1): New test.
+
+ * doc/fdl.texi: Tweak @appendixsubsec -> @appendixsec to match our
+ preference for this in an @appendix, and because texi2pdf doesn't
+ support @appendixsubsec directly within an @appendix.
+
+2004-04-20 Kevin Ryde <kevin@swox.se>
+
+ * doc/texinfo.tex: Update to 2004-04-07.08 from texinfo 4.7.
+ * doc/gmp.texi, mpfr/mpfr.texi (@copying): Don't put a line break in
+ @ref within @copying, recent texinfo.tex doesn't like that.
+
+ * demos/perl/GMP.xs (static_functable): Treat cygwin the same as mingw
+ DLLs.
+
+ * */Makefile.in, install-sh: Update to automake 1.8.3.
+ * ltmain.sh, aclocal.m4, configure: Update to libtool 1.5.6.
+
+ * gmp-impl.h (LIMB_HIGHBIT_TO_MASK): Use a compile-time constant
+ expression, rather than a configure test.
+ * acinclude.m4, configure.in (GMP_C_RIGHT_SHIFT): Remove, no longer
+ needed.
+ * tests/t-hightomask.c: New file.
+ * tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * macos/configure (parse_top_configure): Look for PACKAGE_NAME and
+ PACKAGE_VERSION now used by autoconf.
+ (what_objects): Only demand 9 object files, as for instance occurs in
+ the scanf directory.
+ (asm files): Transform labels L(foo) -> Lfoo. Take func name from
+ PROLOGUE to support empty "EPILOGUE()". Recognise and substitute
+ register name "define()"s.
+ * macos/Makefile.in (CmnObjs): Add tal-notreent.o.
+
+2004-04-19 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_ROOTREM): New #define.
+ (speed_mpn_rootrem): Declare.
+ * tune/common.c (speed_mpn_rootrem): New function.
+ * tune/speed.c (routine): Add entry for mpn_rootrem.
+
+2004-04-16 Kevin Ryde <kevin@swox.se>
+
+ * doc/fdl.texi: Update from FSF, just fixing a couple of typos.
+
+ * macos/configure, macos/Makefile.in: Add printf and scanf directories.
+
+ * tests/mpz/t-gcd.c (check_data): New function, exercising K6
+ gcd_finda bug.
+
+2004-04-14 Kevin Ryde <kevin@swox.se>
+
+ * doc/gmp.texi (Reentrancy, Random State Initialization): Note
+ gmp_randinit use of gmp_errno is not thread safe. Reported by Vincent
+ Lefèvre.
+
+ * doc/gmp.texi (Random State Initialization): Add index entries for
+ gmp_errno and constants.
+
+ * mpn/m68k/README: Update _SHORT_LIMB -> __GMP_SHORT_LIMB.
+
+ * configure.in (--enable-mpbsd): Typo Berkley -> Berkeley in help msg.
+
+2004-04-12 Kevin Ryde <kevin@swox.se>
+
+ * demos/perl/GMP.xs (static_functable): New macro, use it for all
+ function tables, to support mingw DLL builds.
+ * demos/perl/INSTALL (NOTES FOR PARTICULAR SYSTEMS): Remove note on
+ DLLs, should be ok now.
+
+ * demos/perl/sample.pl: Print the module and library versions in use.
+
+ * demos/perl/GMP.pm, Makefile.PL (VERSION): Set to '2.00'.
+ * demos/perl/GMP.pm (COPYRIGHT): New in the doc section.
+
+ * Makefile.am: Note 4.1.3 libtool versioning info, and REVISION policy.
+
+ * tal-debug.c: Add <stdlib.h> for abort.
+
+2004-04-07 Torbjorn Granlund <tege@swox.com>
+
+ * tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed.
+
+ * mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c).
+
+2004-04-07 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/gcd_finda.asm: Correction jbe -> jb in initial setups.
+ Zero flag is wrong here, it relects only the high limb of the compare,
+ leading to n1>=n2 not satisfied and wrong results. cp[1]==0x7FFFFFFF
+ with cp[0]>=0x80000001 provokes this.
+
+ * doc/gmp.texi (BSD Compatible Functions): Note "pow" name clash under
+ the pow function description too.
+ (Language Bindings): Add XEmacs (betas at this stage). Reported by
+ Jerry James.
+
+ * tests/refmpn.c (refmpn_mod2): Correction to ASSERTs, r==a is allowed.
+
+ * gen-psqr.c (generate_mod): Cast mpz_invert_ui_2exp args, for K&R.
+ * gen-bases.c, gen-fib.c, gen-psqr.c: For mpz_out_str, use stdout
+ instead of 0, in case a K&R treats int and FILE* params differently.
+
+2004-04-04 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (BSWAP_LIMB) [amd64]: New macro.
+ (FORCE_DOUBLE): Use this for amd64 too.
+
+ * tests/amd64check.c, tests/amd64call.asm: New files, derived in part
+ from x86check.c and x86call.asm.
+ * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add them.
+ * configure.in (x86_64-*-* ABI=64): Use them.
+
+2004-04-03 Kevin Ryde <kevin@swox.se>
+
+ * mpn/amd64/mode1o.asm: New file.
+ * mpn/amd64/amd64-defs.m4 (ASSERT): New macro.
+
+ * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/pentium4/sse2/divrem_1.asm: Add
+ note on how "dr" part of algorithm is handled.
+
+ * mpn/x86/k7/dive_1.asm, mpn/x86/k7/mod_34lsub1.asm,
+ mpn/x86/k7/mode1o.asm: Note Hammer (32-bit mode) speeds.
+
+2004-03-31 Kevin Ryde <kevin@swox.se>
+
+ * doc/gmp.texi (Language Bindings): Add GOO, MLGMP and Numerix.
+
+ * mpf/mul_2exp.c, mpf/div_2exp.c: Rate u==0 as UNLIKELY.
+
+2004-03-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/divrem_1.asm: Trim a few cycles.
+
+2004-03-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/sublsh1_n.asm: Fix typo.
+
+ * mpn/generic/divrem_1.c: Fix typo.
+
+ * mpn/generic/sqr_basecase.c: Fix typo.
+
+ * mpn/amd64/divrem_1.asm: New file.
+
+2004-03-20 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (power, powerpc): Add comments on how we select this code.
+
+ * gmp-h.in (mpz_get_ui): Use ?: instead of mask style, gcc treats the
+ two identically but ?: is a bit clearer.
+
+ * insert-dbl.c: Remove file, no longer used, scaling is now integrated
+ in mpn_get_d.
+ * Makefile.am (libgmp_la_SOURCES): Remove insert-dbl.c.
+ * gmp-impl.h (__gmp_scale2): Remove prototype.
+
+2004-03-17 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec_init, fake_cpuid_table): Add x86_64.
+
+ * mpq/get_d.c: Use mpn_tdiv_qr, demand den>0 per canonical form.
+
+2004-03-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and
+ mpn_addmul_2s.
+
+2004-03-14 Kevin Ryde <kevin@swox.se>
+
+ * mpf/mul_ui.c: Incorporate carry from low limbs, for exactness.
+ * tests/mpf/t-mul_ui.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpf/div.c: Use mpn_tdiv_qr. Use just one TMP_ALLOC. Use full
+ divisor, since truncating can lose accuracy.
+ * tests/mpf/t-div.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * tests/mpf/t-set_q.c, tests/mpf/t-ui_div.c (check_various): Amend
+ bogus 99/4 test.
+ * tests/mpf/t-ui_div.c (check_rand): Exercise r==v overlap.
+
+ * tests/refmpf.c, tests/tests.h (refmpf_set_overlap): New function.
+
+ * mpf/cmp_si.c [nails]: Correction, cast vval in exp comparisons, for
+ when vval=-0x800..00 and limb==longlong.
+
+ * mpf/cmp_si.c [nails]: Correction, return usign instead of 1 when
+ uexp==2 but value bigger than an mp_limb_t.
+ * tests/mpf/t-cmp_si.c (check_data): Add test cases.
+
+ * tests/trace.c (mpf_trace): Use ABS(mp_trace_base) to allow for
+ negative bases used for upper case hex in integer traces.
+
+2004-03-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/sb_divrem_mn.c: Correct header comment.
+
+2004-03-11 Kevin Ryde <kevin@swox.se>
+
+ * aclocal.m4, configure, ltmain.sh: Downgrade to libtool 1.5, version
+ 1.5.2 doesn't remove .libs/*.a files when rebuilding, which is bad for
+ development when changing contents or with duplicate named files like
+ we have.
+
+ Revert this, ie restore AR_FLAGS=cq:
+ * acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
+ does this itself on detecting duplicate object filenames in piecewise
+ linking mode.
+
+ * randbui.c, randmui.c [longlong+nails]: Correction to conditionals
+ for second limb.
+
+ * mpz/aors_ui.h, mpz/cdiv_q_ui.c, mpz/cdiv_qr_ui.c, mpz/cdiv_r_ui.c,
+ mpz/cdiv_ui.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr_ui.c, mpz/fdiv_r_ui.c,
+ mpz/fdiv_ui.c, mpz/gcd_ui.c, mpz/iset_ui.c, mpz/lcm_ui.c,
+ mpz/set_ui.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr_ui.c, mpz/tdiv_r_ui.c,
+ mpz/tdiv_ui.c, mpz/ui_sub.c, mpf/div_ui.c, mpf/mul_ui.c
+ [longlong+nails]: Amend #if to avoid warnings about shift amount.
+
+2004-03-07 Kevin Ryde <kevin@swox.se>
+
+ * mpf/reldiff.c: Use rprec+ysize limbs for d, to ensure accurate
+ result. Inline mpf_abs(d,d) and mpf_cmp_ui(x,0), and rate the latter
+ UNLIKELY.
+
+ * mpf/ui_div.c: Use mpn_tdiv_qr. Use just one TMP_ALLOC. Use full
+ divisor, since truncating can lose accuracy.
+ * tests/mpf/t-ui_div.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpf/set_q.c: Expand TMP_ALLOC_LIMBS_2, to make conditional clearer
+ and avoid 1 limb alloc when not wanted.
+
+ * gmp-impl.h (WANT_TMP_DEBUG): Define to 0 if not defined.
+ (TMP_ALLOC_LIMBS_2): Use "if" within macro rather than "#if", for less
+ preprocessor conditionals.
+
+ * mpf/mul_2exp.c, mpf/div_2exp.c: Add some comments.
+
+ * tests/refmpn.c (refmpn_sb_divrem_mn, refmpn_tdiv_qr): Nailify.
+
+2004-03-04 Kevin Ryde <kevin@swox.se>
+
+ * gen-psqr.c (print): Add CNST_LIMB in PERFSQR_MOD_TEST, for benefit
+ of K&R.
+ * tests/mpn/t-perfsqr.c (PERFSQR_MOD_1): Use CNST_LIMB for K&R.
+
+ * doc/configuration (Configure): Remove mkinstalldirs, no longer used.
+
+ * acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
+ does this itself on detecting duplicate object filenames in piecewise
+ linking mode.
+
+ * configure.in (hppa2.0*-*-*): Test sizeof(long) == 4 or 8 to verify
+ ABI=2.0n versus ABI=2.0w. In particular this lets CC=cc_bundled
+ correctly fall back to ABI=2.0n (we don't automatically add CC=+DD64
+ to that compiler, currently).
+
+ * doc/gmp.texi (Reentrancy): Note C++ mpf_class constructors using
+ global default precision.
+ (Random State Miscellaneous): Describe gmp_urandomb_ui as giving N
+ bits.
+ (C++ Interface Floats): Describe operator= copying the value, not the
+ precision, and what this can mean about copy constructor versus
+ default constructor plus assignment.
+
+ * mpf/set_q.c: Use mpn_tdiv_qr rather than mpn_divrem, so no shifting.
+ Don't truncate the divisor, it can make the result inaccurate.
+ * tests/mpf/t-set_q.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpf/set.c: Use MPN_COPY_INCR, in case r==u and ABSIZ(u) > PREC(r)+1.
+ No actual bug here, because MPN_COPY has thusfar been an alias for
+ MPN_COPY_INCR, only an ASSERT failure.
+ * tests/mpf/t-set.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpf/set.c, mpf/iset.c: Do MPN_COPY last, for possible tail call.
+
+ * mpf/set_d.c: Rate d==0 as UNLIKELY. Store size before extract call,
+ to shorten lifespan of "negative".
+
+ * mpf/init.c, mpf/init2.c, mpf/iset_d.c, mpf/iset_si.c,
+ mpf/iset_str.c, mpf/iset_ui.c: Store prec before alloc call, for one
+ less live quantity across that call.
+ * mpf/init.c, mpf/init2.c, mpf/iset_str.c: Store size and exp before
+ alloc call, to overlap with other operations.
+
+ * tests/refmpf.c, tests/tests.h (refmpf_fill, refmpf_normalize,
+ refmpf_validate, refmpf_validate_division): New functions.
+
+ * tests/refmpn.c, tests/tests.h (refmpn_copy_extend,
+ refmpn_lshift_or_copy_any, refmpn_rshift_or_copy_any): New functions.
+
+ * tal-debug.c: Add <string.h> for strcmp.
+
+ * tests/cxx/t-istream.cc (check_mpz, check_mpq, check_mpf): Use size_t
+ for loop index, to quieten g++ warning.
+
+2004-03-02 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpn/t-hgcd.c: Use __GMP_PROTO on prototypes.
+
+2004-03-01 Torbjorn Granlund <tege@swox.com>
+
+ With Karl Hasselström:
+ * mpn/generic/dc_divrem_n.c (mpn_dc_div_2_by_1): New function, with
+ meat from old mpn_dc_divrem_n. Accept scratch parameter. Rewrite to
+ avoid a recursive call.
+ (mpn_dc_div_3_by_2): New function, with meat from old
+ mpn_dc_div_3_halves_by_2. Accept scratch parameter.
+ (mpn_dc_divrem_n): Now just allocate scratch space and call new
+ mpn_dc_div_2_by_1.
+
+2004-02-29 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (count_leading_zeros) [alpha gcc]: New version, inlining
+ mpn/alpha/cntlz.asm cmpbge technique.
+
+ * aclocal.m4, configure, install-sh, missing, ltmain.sh,
+ */Makefile.in: Update to automake 1.8.2 and libtool 1.5.2.
+
+ * doc/gmp.texi (C++ Interface Integers): Note / and % rounding follows
+ C99 / and %.
+ (Exact Remainder): Index entries for divisibility testing algorithm.
+
+ * tune/time.c (speed_endtime): Return 0.0 for negative time measured.
+ Revise usage comments for clarity.
+ * tune/common.c (speed_measure): Recognise speed_endtime 0.0 for
+ failed measurement.
+
+ * tests/mpn/t-get_d.c (check_rand): Correction to nhigh_mask setup.
+
+2004-02-27 Torbjorn Granlund <tege@swox.com>
+
+ * tune/tuneup.c (tune_dc, tune_set_str): Up param.step_factor.
+
+ * tests/mpz/t-gcd.c: Decrease # of tests to 50.
+
+2004-02-27 Kevin Ryde <kevin@swox.se>
+
+ * tests/devel/try.c: Add a comment that this is not for Cray systems.
+
+ * mpf/set_q.c: Don't support den(q)<0, demand canonical form in the
+ usual way.
+
+2004-02-24 Torbjorn Granlund <tege@swox.com>
+
+ From Kevin:
+ * mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization
+ criterion met.
+
+2004-02-22 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS, GMP_OS_X86_XMM, GMP_PROG_CXX_WORKS):
+ Remove files that might look like compiler output, so our "||"
+ alternatives are not fooled.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Add test for lshift_com code
+ mis-compiled by certain IA-64 HP cc at +O3.
+
+ * gmp-impl.h (USE_LEADING_REGPARM): Disable under prof or gprof, for
+ the benefit of freebsd where .mcount clobbers registers. Spotted by
+ Torbjorn.
+ * configure.in (WANT_PROFILING_PROF, WANT_PROFILING_GPROF): New
+ AC_DEFINEs.
+
+2004-02-21 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (sparc64-*-*bsd*): Amend -m32 setup for ABI=32, so it's
+ not used in ABI=64 on the BSD systems.
+
+2004-02-18 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-gcd.c (gcdext_valid_p): New function.
+ (ref_mpz_gcd): Deleted function.
+ (one_test): Rearranged to call mpz_gcdext first, so that the
+ returned value can be validated.
+ (main): Don't use ref_mpz_gcd.
+
+2004-02-18 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MPN_TOOM3_MAX_N): Move to !WANT_FFT section.
+
+ * tests/mpz/t-mul.c: Exclude special huge operands unless WANT_FFT.
+
+ * mpz/rrandomb.c (gmp_rrandomb): Rewrite.
+
+ * mpn/generic/mul_n.c (mpn_toom3_sqr_n): Remove write-only variable c5.
+
+2004-02-18 Kevin Ryde <kevin@swox.se>
+
+ * mpf/iset_si.c, mpf/iset_ui.c, mpf/set_si.c, mpf/set_ui.c [nails]:
+ Always store second limb, to avoid a conditional.
+
+ * tests/mpf/t-get_ui.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+ * tests/mpf/t-get_si.c (check_limbdata): Further tests.
+ * gmp-impl.h (MP_EXP_T_MAX, MP_EXP_T_MIN): New defines.
+
+ * mpf/get_ui.c, mpf/get_si.c: Remove size==0 test, it's covered by
+ other conditions. Attempt greater clarity by expressing conditions as
+ based on available data range.
+ * mpf/get_si.c [nails]: Correction, don't bail on exp > abs_size,
+ since may still have second limb above radix point available.
+ * mpf/get_ui.c: Nailify.
+
+2004-02-16 Kevin Ryde <kevin@swox.se>
+
+ * mpz/scan0.c, mpz/scan1.c: Use count_trailing_zeros, instead of
+ count_leading_zeros on limb&-limb.
+
+ * mpf/sqrt.c: Use "/ 2" for exp, avoiding C undefined behaviour on
+ ">>" of negatives. Correction to comment, exp is rounded upwards.
+ SIZ(r) always prec now, no need for tsize expression. Store EXP(r)
+ and SIZ(r) where calculated to reduce variable lifespans. Make tsize
+ mp_size_t not mp_exp_t, though of course those are currently the same.
+
+ * gmp-h.in (GMP_ERROR_ALLOCATE, GMP_ERROR_BAD_STRING,
+ GMP_ERROR_UNUSED_ERROR): Remove, never used or documented, and we
+ don't want to use globals for communicating error information.
+
+ * mpz/gcd_ui.c [nails]: Correction, actually return a value.
+
+ * mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails==1]: Add code.
+
+2004-02-15 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-jac.c (check_data): Remove unnecessary variable
+ "answer".
+
+2004-02-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/aors_n.asm: Break a group with a RAW conflict.
+
+2004-02-14 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_C_RIGHT_SHIFT): Note that it's "long"s which we're
+ concerned about.
+
+ * mpn/generic/mul_n.c: Add some remarks about toom3 high zero
+ stripping.
+
+ * mpn/generic/scan0.c, mpn/generic/scan1.c: Remove design issue
+ remarks. What to do about going outside `up' space is a problem, but
+ anything to address it would be an incompatible change.
+
+2004-02-12 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpn/t-hgcd.c: Remove unused variables.
+
+ * mpn/ia64/hamdist.asm: Remove bundling incompatible with HP-UX
+ assembler. Misc HP-UX changes.
+ * mpn/ia64/gcd_1.asm: Add some syntax to placid the HP-UX assembler.
+
+2004-02-11 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (power, powerpc): Use HAVE_HOST_CPU_FAMILY_power and
+ HAVE_HOST_CPU_FAMILY_powerpc rather than various cpp defines.
+
+ * gmp-impl.h: Add remarks about limits.h and Cray etc.
+
+ * mpn/ia64/mul_1.asm: Don't put .pred directives on labelled lines,
+ hpux 11.23 assembler doesn't like that.
+ * mpn/ia64/README: Add a note on this.
+
+ * dumbmp.c (mpz_mul): Set ALLOC(r) for new data block used. Reported
+ by Jason Moxham.
+
+ * mpn/pa32/README, mpn/pa64/README (REFERENCES): New sections.
+
+2004-02-10 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-gcd.c: Decrease # of tests run.
+
+ * mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values.
+
+2004-02-01 Torbjorn Granlund <tege@swox.com>
+
+ From Kevin:
+ * config.guess: Recognize AMD's hammer processors, return x86_64.
+
+2004-01-31 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_cmp_sum3): Declare static.
+
+2004-01-25 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add t-hgcd.
+
+ * mpn/generic/hgcd.c (hgcd_jebelean): Simplify, use mpn_cmp_sum3.
+ (mpn_cmp_sum3): New function.
+ (mpn_diff_smaller_p): Remove.
+ (hgcd_final, hgcd_jebelean, hgcd_small_1, hgcd_small_2, euclid_step):
+ Remove tp,talloc arguments. Callers changed.
+
+2004-01-25 Torbjorn Granlund <tege@swox.com>
+
+ * tune/tuneup.c (all): Reenable calls of tune_gcd_schoenhage and
+ tune_hgcd.
+
+ * mpn/generic/gcd.c: Reenable Schoenhage code.
+
+ With Niels Möller:
+ * mpn/generic/hgcd.c: Add const and inline to several functions.
+ (qstack_push_start qstack_push_end qstack_push_quotient): Remove.
+ (euclid_step): Insert removed functions here.
+ (hgcd_adjust): Simplify, don't handle d != 1.
+ (qstack_adjust): Corresponding changes.
+ (mpn_hgcd2_lehmer_step): Remove redundant tests for bh against zero.
+ (hgcd_start_row_p): Tweak.
+ (hgcd_final): Shorten life of ralloc.
+
+2004-01-24 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpf/t-sqrt.c (check_rand1): Further diagnostic printouts.
+
+ * mpn/generic/sqrtrem.c (mpn_sqrtrem): Add ASSERT_MPN.
+ (mpn_dc_sqrtrem): Add casts for K&R.
+
+ * mpf/sqrt_ui.c: Nailify.
+
+ * mpf/set_z.c: Do MPN_COPY last, for possible tail call.
+
+ * doc/gmp.texi (Miscellaneous Float Functions): For mpf_random2, note
+ exponent is in limbs.
+
+ * mpn/ia64/README: Add remark about concentrating on itanium-2.
+
+2004-01-22 Kevin Ryde <kevin@swox.se>
+
+ * mpf/sqrt.c: Change tsize calculation to get prec limbs result
+ always, previously got prec+1 when exp was odd.
+ * tests/mpf/t-sqrt.c (check_rand1): New function, code from main.
+ (check_rand2): New function.
+
+ * mpf/sqrt_ui.c: Change rsize calculation to get prec limbs result,
+ previously got prec+1.
+ * tests/mpf/t-sqrt_ui.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * tests/refmpf.c, tests/tests.h (refmpf_add_ulp,
+ refmpf_set_prec_limbs): New functions.
+
+ * mpz/get_d_2exp.c, mpf/get_d_2exp.c: Remove x86+m68k force to double,
+ mpn_get_d now does this. Remove res==1.0 check for round upwards,
+ mpn_get_d now rounds towards zero. Move exp store to make mpn_get_d a
+ tail call.
+
+ * configure.in (x86-*-*): Use ABI=32 rather than ABI=standard.
+ Use gcc -m32 when available, to force mode on bi-arch amd64 gcc.
+ * configure.in, acinclude.m4 (x86_64-*-*): Merge into plain x86 setups
+ as ABI=64. Support ABI=32, using athlon code. Use gcc -mcpu=k8,
+ -march=k8.
+ (amd64-*-*): Remove pattern, config.sub only gives x86_64.
+ * doc/gmp.texi (ABI and ISA): Add x86_64 dual ABIs.
+
+ * mpn/amd64/README: Add reference to ABI spec.
+
+2004-01-17 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (hgcd_adjust): Backed out mpn_addlsh1_n
+ change for now.
+
+ * mpn/generic/hgcd.c (hgcd_adjust): Fixed calls of mpn_addlsh1_n.
+
+2004-01-17 Kevin Ryde <kevin@swox.se>
+
+ * tune/README: Remove open/mpn versions of toom3, no longer exist.
+ * tune/powerpc64.asm: Remove unused L(again).
+ * tune/time.c (mftb): Note single mftb possible for powerpc64.
+
+ * mpn/generic/mode1o.c: Use "c<s" to do underflow detection in last
+ step, for better parallelism.
+
+ * mpn/generic/get_d.c: Preserve comments about hppa fcnv,udw,dbl from
+ previous mpz_get_d code.
+
+ * tune/freq.c: Add some comments about systems not covered.
+
+ * gmp-h.in (_GMP_H_HAVE_FILE): Add _MSL_STDIO_H for Metrowerks.
+ Reported by Tomas Zahradnicky.
+
+2004-01-16 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_diff_smaller_p): Use MPN_DECR_U.
+ (hgcd_adjust): Use mpn_addlsh1_n when available.
+
+2004-01-16 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (powerpc64-*-linux*): Try gcc64. Try -m64 with
+ "cflags_maybe" to get it used in all probing. Add sizeof-long-8 test
+ to check the mode is right if -m64 is not applicable.
+
+2004-01-15 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (--with-readline=detect): Check for readline/readline.h
+ and readline/history.h. Report result of detection.
+
+2004-01-14 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/speed.c (routine): Disabled speed_mpn_hgcd_lehmer.
+ * tune/common.c (speed_mpn_hgcd_lehmer): Disabled function.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_lehmer_itch, mpn_hgcd_lehmer)
+ (mpn_hgcd_equal): Deleted functions.
+
+ * mpn/generic/gcd.c (hgcd_start_row_p): Deleted function.
+ (gcd_schoenhage): Deleted assertion code using mpn_hgcd_lehmer.
+
+ * mpn/generic/hgcd.c (hgcd_final): Fixed ASSERT typos.
+ (mpn_hgcd): To use Lehmer's algorithm, call hgcd_final directly,
+ not mpn_hgcd_lehmer.
+
+ * mpn/generic/gcd.c (gcd_schoenhage): Updated for changes to
+ mpn_hgcd and mpn_hgcd_fix. (Schoenhage code is still disabled).
+
+ * gmp-impl.h (mpn_hgcd_fix): Updated prototype.
+
+ * mpn/generic/hgcd.c (mpn_hgcd_fix): Replaced a bunch of arguments
+ by a pointer const struct hgcd_row *s. Updated callers.
+
+ * mpn/generic/hgcd.c (hgcd_start_row_p): Use const for the input.
+ Moved function definition before hgcd_jebelean.
+ (hgcd_jebelean): Interface change, analogous to hgcd2.
+ (mpn_hgcd_fix): Normalize v. Require that v > 0.
+ (hgcd_adjust): Fix bug in carry update.
+ (mpn_hgcd): Reorganized again, to adapt to mpn_hgcd/hgcd_jebelean
+ now sometimes returning 1. Reintroduced hgcd_adjust.
+
+ * mpn/generic/hgcd.c (hgcd_final): Streamlined logic for the first
+ hgcd2 call.
+
+ * mpn/generic/hgcd2.c (mpn_hgcd2): Interface change. Return 1
+ instead of 2, in the no progress case r0=A, r1=B.
+
+ * mpn/generic/hgcd.c (hgcd_adjust): Changed arguments and return
+ value. Now takes a struct hgcd_row * and the uv size, and returns
+ updated uvsize.
+ (hgcd_final): Special handling of the case hgcd2 returning 1. Now
+ uses hgcd_adjust, instead of a full Euclid division.
+
+2004-01-13 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (euclid_step, hgcd_case0): Merged into a
+ single function euclid_step.
+ (mpn_hgcd): Reorganized the logic for the second recursive call.
+ Avoid unnecessary Euclid steps.
+
+ * tests/mpn/t-hgcd.c (hgcd_values): One more test value.
+
+ * tests/mpn/t-hgcd.c (hgcd_values): Added values that trigged the
+ hgcd_jebelean bug.
+
+ * mpn/generic/hgcd.c (hgcd_jebelean): Fixed off by one error.
+ (mpn_hgcd): Simplified the logic for the first recursive call. Now
+ it uses only the correct values from the recursive call, and
+ doesn't do tricks with hgcd_adjust (hgcd_adjust will probably be
+ reintroduced later, though).
+
+ * tests/mpn/t-hgcd.c (mpz_mpn_equal, hgcd_ref_equal)
+ (hgcd_ref_init, hgcd_ref_clear): New functions.
+ (hgcd_ref): Reference implementation of hgcd, using mpz.
+ (one_test): Use hgcd_ref. Don't use mpn_hgcd_lehmer.
+ (main): Skip one_step if both input values are zero.
+
+2004-01-12 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (hgcd_final): Rewritten, now uses Lehmer
+ steps instead of a division loop.
+ (mpn_hgcd_lehmer): Deleted old Lehmer code, instead just
+ initialize and then call hgcd_final.
+
+ * tests/tests.h: Added refmpn_free_limbs prototype.
+ * tests/refmpn.c (refmpn_free_limbs): New function.
+
+ * tests/mpn/t-hgcd.c: Try the same kind of random inputs as for
+ mpz/t-gcd.
+
+2004-01-11 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd_lehmer): Rewritten, after some more
+ analysis of the size reduction for one Lehmer step.
+
+ * tests/mpn/t-hgcd.c: New file.
+
+2004-01-11 Torbjorn Granlund <tege@swox.com>
+
+ With Niels Möller:
+ * mpn/generic/hgcd.c (hgcd_normalize): Fix ASSERTs.
+ (hgcd_mul): Normalize R[1].uvp[1]. Add some more ASSERTs.
+ (hgcd_update_uv): Streamline. ASSERT that input and output is
+ normalized.
+
+2004-01-11 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/ev6/slot.pl: New file, derived in part from
+ mpn/x86/k6/cross.pl.
+
+ * mpn/alpha/alpha-defs.m4 (ASSERT): New macro.
+
+ * mpn/asm-defs.m4 (m4_ifdef): New macro, avoiding OSF 4.0 m4 bug.
+ (m4_assert_defined): Use it.
+
+ * mpn/alpha/default.m4, mpn/alpha/unicos.m4 (LDGP): New macro.
+ * mpn/alpha/ev67/gcd_1.asm: Use it to re-establish gp after jsr.
+
+ * configure.in, demos/calc/Makefile.am: Use -lcurses or -lncurses with
+ readline, when available.
+
+ * longlong.h (sub_ddmmss) [generic]: Use al<bl for the borrow rather
+ than __x>al, since the former can be done without waiting for __x,
+ helping superscalar chips, in particular alpha ev5 and ev6.
+
+ * longlong.h (sub_ddmmss) [ia64]: New macro.
+
+ * tests/t-sub.c: New file.
+ * tests/Makefile.am (check_PROGRAMS): Add it.
+ * tests/refmpn.c, tests/tests.h (refmpn_sub_ddmmss): New function.
+
+2004-01-09 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/p6/mod_34lsub1.asm: New file, derived in part from
+ mpn/x86/mod_34lsub1.asm.
+
+ * configure.in (IA64_PATTERN): Use -mtune on gcc 3.4.
+
+2004-01-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, mp-h.in (__GMP_SHORT_LIMB): Renamed from _SHORT_LIMB, to
+ keep in our namespace. (Not actually used anywhere currently.)
+ Reported by Patrick Pelissier.
+
+ * mp-h.in: Use "! defined (__GMP_WITHIN_CONFIGURE)" in the same style
+ as gmp-h.in (though mp-h.in is not actually used during configure).
+
+ * mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
+ Use __dllexport__ and __dllimport__ to keep out of application
+ namespace. Same previously done in gmp-h.in.
+
+2004-01-06 Kevin Ryde <kevin@swox.se>
+
+ * configfsf.sub, configfsf.guess: Update to 2004-01-05.
+ * configure.in (amd64-*-* | x86_64-*-*): Update comments on what
+ configfsf.sub does.
+
+2004-01-04 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/README (REFERENCES): Add tru64 assembly manuals.
+ (ASSEMBLY RULES): Note what gcc says about !literal! etc.
+
+2004-01-03 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/ev67/gcd_1.asm: New file.
+
+ * mpn/x86/pentium4/sse2/rsh1add_n.asm: New file, derived in part from
+ mpn/x86/pentium4/sse2/addlsh1_n.asm.
+
+ * mpn/x86/p6/p3mmx/popham.asm: Note measured speeds.
+
+ * mpn/ia64/hamdist.asm: Correction to inputs vs locals in alloc (makes
+ no difference to the generated code). Corrections to a couple of
+ comments.
+
+ * mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not
+ used, no such parameter.
+
+ * mpn/generic/gcd.c: Use <stdio.h> for NULL.
+
+ * doc/gmp.texi (Single Limb Division): Correction to tex expression
+ for (1/2)x1. And minor wording tweaks elsewhere.
+
+ * gmp-impl.h (mpn_rsh1add_n, mpn_rsh1sub_n): Correction to comments
+ about how carries returned.
+
+ * longlong.h (umul_ppmm) [generic]: Add comments about squaring
+ (dropped from tasks list)
+
+2003-12-31 Kevin Ryde <kevin@swox.se>
+
+ * demos/perl/GMP.xs (scan0, scan1): Return ~0 for not-found.
+ * demos/perl/GMP.pm: Describe this, remove the note about ULONG_MAX
+ being the same as ~0 (which is not true in old perl).
+ * demos/perl/test.pl: Update tests.
+ * demos/perl/typemap (gmp_UV): New type.
+
+ * demos/perl/test.pl (fits_slong_p): Comment out uv_max test, it won't
+ necessarily exceed a long.
+
+ * demos/perl/GMP.pm: Add a remark about get_str to the bugs section.
+
+ * mpn/generic/sqrtrem.c, mpz/fac_ui.c, tests/mpf/reuse.c: Add casts
+ for K&R.
+ * tests/mpf/t-muldiv.c: Make ulimb, vlimb into ulongs, which is how
+ they're used, for the benefit of K&R calling.
+
+ * doc/gmp.texi (Square Root Algorithm): Add a summary of the algorithm.
+ And add further index entries in various places.
+
+ * mpz/lucnum_ui.c, mpz/lucnum2_ui.c: Use mpn_addlsh1_n when available.
+
+ * gmp-impl.h, mpn/generic/mul_n.c (mpn_addlsh1_n, mpn_sublsh1_n,
+ mpn_rsh1add_n, mpn_rsh1sub_n): Move descriptions to gmp-impl.h with
+ the prototypes, for ease of locating.
+
+2003-12-30 Torbjorn Granlund <tege@swox.com>
+
+ * tune/tuneup.c (all): Disable calls of tune_gcd_schoenhage and
+ tune_hgcd for now.
+
+2003-12-29 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin.
+
+ * mpn/ia64/mul_1.asm: Amend TODO list.
+
+ * mpn/sparc64/README: Remove mpn_Xmul_2, done.
+ Add blurb about L1 cache conflicts.
+
+ * mpn/generic/gcd.c: Disable Schoenhage code for now.
+
+2003-12-29 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R.
+
+2003-12-27 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO.
+
+ * mpn/generic/gcd.c (NHGCD_SWAP4_2, NHGCD_SWAP3_LEFT),
+ mpn/generic/hgcd.c (HGCD_SWAP4_LEFT, HGCD_SWAP4_RIGHT, HGCD_SWAP4_2,
+ HGCD_SWAP3_LEFT): Aggregate initializers for automatics is an
+ ANSI-ism, avoid.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Restore this, giving no directory on
+ ansi2knr to avoid a circular build rule.
+ * configure.in (AM_INIT_AUTOMAKE): Note options also in Makefile.am.
+
+ * configure.in (cflags_maybe): Don't loop adding cflags_maybe if the
+ user has set CFLAGS.
+
+2003-12-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcd.c (gcd_schoenhage_itch): Avoid unary "+".
+ (mpn_gcd): Allocate scratch space on heap for gcd_schoenhage.
+ (mpn_gcd): Don't invoke MPN_NORMALIZE on input operands.
+
+2003-12-23 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (*sparc*-*-*): Test sizeof(long)==4 or 8 for ABIs, to
+ get the right mode when the user sets the CFLAGS.
+ (testlist): Introduce "any_<abi>_testlist" to apply to all compilers.
+
+ * demos/perl/typemap (MPZ_ASSUME, MPQ_ASSUME, MPF_ASSUME): Remove
+ output rules, these are only meant for inputs.
+ (MPZ_MUTATE): Remove, not used since changes for magic.
+
+ * demos/perl/GMP.xs (mpz_class_hv, mpq_class_hv, mpf_class_hv): New
+ variables, initialized in BOOT.
+ * demos/perl/GMP.xs, demos/perl/typemap: Use them and explicit
+ sv_bless, to save a gv_stashpv for every new object.
+
+2003-12-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/mode1o.c, mpn/alpha/dive_1.c: Moved from ev5/mode1o.c and
+ ev5/dive_1.c, these are good for ev4, and would like them in a generic
+ alpha build.
+
+2003-12-21 Kevin Ryde <kevin@swox.se>
+
+ * doc/gmp.texi (Integer Logic and Bit Fiddling): Say "bitwise" in
+ mpz_and, mpz_ior and mpz_xor, to avoid any confusion with what C means
+ by "logical". Reported by Rüdiger Schütz.
+
+ * gmp-h.in (_GMP_H_HAVE_FILE): Note why defined(EOF) is not good.
+
+2003-12-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/hgcd.c (mpn_diff_smaller_p): Use mpn_cmp instead of
+ mpn_sub_n where possible. Use mp_size_t for relevant variables.
+
+2003-12-20 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.h (SPEED_TMP_ALLOC_LIMBS): Correction to last change,
+ don't want "- 1" on the TMP_ALLOC_LIMBS.
+
+ * demos/expr/expr.h: Test #ifdef MPFR_VERSION_MAJOR for when mpfr.h is
+ included, not GMP_RNDZ which is now an enum.
+
+ * demos/expr/exprfra.c (e_mpfr_ulong_p): Use mpfr_integer_p and
+ mpfr_fits_ulong_p.
+ (e_mpfr_get_ui_fits): Use mpfr_get_ui.
+
+ * mpfr/*: Update to mpfr cvs head 2003-12-20.
+
+ * configure, config.in: Update to autoconf 2.59.
+ * */Makefile.in, configure, aclocal.m4, ansi2knr.c, install-sh,
+ doc/mdate-sh: Update to automake 1.8.
+
+ * mkinstalldirs: Remove, not required by automake 1.8.
+ * doc/gmp.texi (Build Options): HTML is a usual target in automake 1.8.
+
+ * configure.in (AC_PREREQ): Require autoconf 2.59.
+ (AM_INIT_AUTOMAKE): Require automake 1.8.
+ (AC_C_INLINE): Use rather than GMP_C_INLINE, now has #ifndef
+ __cplusplus we want.
+ (gettimeofday): Use AC_CHECK_FUNCS rather than our workaround code,
+ autoconf now ok.
+
+ * acinclude.m4 (GMP_C_INLINE): Remove.
+ (GMP_H_EXTERN_INLINE): Use AC_C_INLINE.
+ (GMP_PROG_AR): Comment on automake $ARFLAGS.
+
+2003-12-19 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_diff_smaller_p): Rewrote function. Tried
+ to explain how it works.
+ (slow_diff_smaller_p, wrap_mpn_diff_smaller_p) [WANT_ASSERT]: Use
+ CPP to wrap assertion checks around all calls to
+ mpn_diff_smaller_p.
+
+ * mpn/generic/hgcd.c (mpn_addmul2_n_1) [nails]: Fixed carry handling.
+
+ * mpn/generic/hgcd.c (mpn_diff_smaller_p) [nails]: Use
+ GMP_NUMB_MAX, not MP_LIMB_T_MAX.
+ (mpn_hgcd_itch): Improved size calculation.
+ (mpn_hgcd_max_recursion): Moved function from qstack.c. Should to
+ be recompiled when HGCD_SCHOENHAGE_THRESHOLD is tuned.
+
+ * mpn/generic/qstack.c (mpn_hgcd_max_recursion): ... moved from
+ here.
+
+2003-12-19 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpf/t-get_d.c: Print message before aborting.
+
+ * mpn/generic/hgcd2.c (mpn_hgcd2): Substitute always-zero variable
+ with 0. Remove bogus comment.
+
+ * mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails.
+
+2003-12-18 Niels Möller <niels@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (hgcd_update_r): Assert that the output r2 is
+ smaller than the input r1.
+
+2003-12-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/get_d.c: Don't include longlong.h.
+
+ * tests/mpz/t-mul.c (ref_mpn_mul): Handle un == vn specially, to avoid
+ a dummy r/w outside of allocated area.
+
+2003-12-18 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/unicos.m4 (ALIGN): Add comments on what GCC does.
+
+ * configure.in (fat setups), acinclude.m4 (GMP_INIT): Obscure
+ include() from automake 1.8 aclocal.
+ * acinclude.m4: Quote names in AC_DEFUN, for automake 1.8 aclocal.
+
+2003-12-17 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) [nails]:
+ Enabled code also for GMP_NAIL_BITS > 0.
+ * tune/speed.c [nails]: Enable speed_mpn_hgcd and
+ speed_mpn_hgcd_lehmer.
+ * tune/tuneup.c (tune_hgcd) [nails]: Likewise.
+
+ * mpn/generic/gcd.c [nails]: Use Schönhage's algorithm also for
+ GMP_NAIL_BITS > 0.
+
+ * mpn/generic/hgcd.c [nails]: Enable the code for GMP_NAIL_BITS > 0.
+ (MPN_EXTRACT_LIMB) [nails]: Handle nails.
+ (__gmpn_hgcd_sanity): Allocate temporaries on the heap, not on the
+ stack. Also check that r[i] >= r[i+1].
+ (mpn_hgcd2_lehmer_step) [nails]: Handle nails.
+ (mpn_hgcd_lehmer): When we temporarily have r3 > r2, avoid
+ trigging that assert in __gmpn_hgcd_sanity.
+ (mpn_hgcd): Likewise.
+
+ * mpn/generic/hgcd2.c (div2) [nails]: Alternative nail-aware
+ version.
+ (SUB_2): New macro of Kevin's, which reduces do sub_ddmmss in the
+ non-nail case.
+ (HGCD2_STEP): Use SUB_2, not sub_ddmmss. Added alternative version
+ for K&R compilers.
+ (mpn_hgcd2) [nails]: Use SUB_2, not sub_ddmmss. New nail-aware
+ code for checking Jebelean's condition.
+
+2003-12-13 Kevin Ryde <kevin@swox.se>
+
+ * mpq/get_d.c: Amend comments per mpn_get_d change.
+ (limb2dbl): Remove, no longer used.
+
+ * gmp-impl.h (DIVREM_1_NORM_THRESHOLD etc) [nails]: Correction to
+ comments, MP_SIZE_T_MAX means preinv never.
+
+ * gmp-impl.h (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD) [nails]:
+ Remove overrides, divexact_1 and modexact_1 have been nailified.
+
+ * mpz/inp_str.c (mpz_inp_str_nowhite): Use ASSERT_ALWAYS for EOF value
+ requirement.
+
+ * tests/refmpn.c (refmpn_rsh1add_n, refmpn_rsh1sub_n): Parens around
+ GMP_NUMB_BITS - 1 with ">>", to quieten gcc -Wall.
+ * tests/t-constants.c (main), tests/t-count_zeros.c (check_clz),
+ tests/t-modlinv.c (one), tests/mpz/t-jac.c (try_si_zi),
+ tests/mpq/t-get_d.c (check_onebit): : Correction to printfs.
+ * tests/mpn/t-fat.c: Add <string.h> for memcpy.
+ * tests/mpz/t-scan.c (check_ref): Remove unused variable "isigned".
+ * tests/mpq/t-get_d.c (check_onebit): Remove unused variable "limit".
+ * tests/mpf/t-set_si.c, tests/mpf/t-set_ui.c (check_data): Braces for
+ initializers.
+ * tests/devel/try.c (mpn_divexact_by3_fun, mpn_modexact_1_odd_fun):
+ Correction to return values.
+
+ * doc/gmp.texi (Miscellaneous Integer Functions): Note mpz_sizeinbase
+ can be used to locate the most significant bit. Reword a bit for
+ clarity.
+
+2003-12-12 Niels Möller <niels@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (__gmpn_hgcd_sanity): Fixed stack buffer
+ overrun.
+ * mpn/generic/hgcd.c: Improved comments.
+
+2003-12-11 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h: Change asm => __asm__, tabify.
+ * mpz/get_d_2exp.c: Likewise.
+ * mpf/get_d_2exp.c: Likewise.
+
+ * tests/cxx/t-ops.cc: #if .. #endif out tests that cause ambiguities.
+
+2003-12-10 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-gcd.c: Generate operands with sizes as a geometric
+ progression, to allow for larger operands and less varying timing.
+
+ * tune/tuneup.c (tune_gcd_schoenhage): Set param.step_factor.
+ (tune_hgcd): Likewise.
+
+2003-12-10 Kevin Ryde <kevin@swox.se>
+
+ * demos/perl/test.pl: Should be $] for perl version in old perl.
+
+ * configure.in (sparc64-*-*): Single block of gcc configs for all
+ systems, on unknown systems try both ABI 32 and 64.
+
+ * configure.in (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New AC_SUBSTs with
+ options to generate .def files with windows DLLs.
+ * Makefile.am (libgmp_la_LDFLAGS, libgmpxx_la_LDFLAGS): Use them.
+
+ * mpn/generic/gcd.c: Use ABOVE_THRESHOLD / BELOW_THRESHOLD, to follow
+ convention and cooperate with tune/tuneup.c.
+
+ * tune/tuneup.c (tune_gcd_schoenhage): Increase max_size to 3000, side
+ default 1000 is approx the crossover point on athlon.
+
+ * tune/common.c, tune/speed.c, tune/speed.h, tune/speed-ext.c,
+ tune/tuneup.c (SPEED_TMP_ALLOC_LIMBS): Take variable as parameter
+ rather than returning a value, avoids alloca in a function call.
+ * tune/common.c, tune/speed.h (speed_tmp_alloc_adjust): Remove, now
+ inline in SPEED_TMP_ALLOC_LIMBS, and using ptr-NULL for alignment
+ extraction.
+
+ * gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal,
+ __gmp_binary_less, __gmp_binary_less_equal, __gmp_binary_greater,
+ __gmp_binary_greater_equal, __gmp_cmp_function): Use mpfr_cmp_si and
+ mpfr_cmp_d.
+ * tests/cxx/t-ops.cc: Exercise this.
+
+ * demos/perl/Makefile.PL: Don't install sample.pl and test2.pl.
+
+ * demos/perl/GMP.xs (use_sv): Prefer PV over IV or NV to avoid any
+ rounding.
+ * demos/perl/test.pl: Exercise this.
+
+ * demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage.
+ * demos/perl/test.pl: Exercise this.
+
+2003-12-08 Kevin Ryde <kevin@swox.se>
+
+ * demos/perl/GMP.pm: Correction to canonicalize example.
+
+ * demos/perl/GMP.xs: New type check scheme, support magic scalars,
+ support UV when available. Remove some unused local variables.
+ (coerce_long): Check range of double.
+ (get_d_2exp): Remove stray printf.
+
+ * demos/perl/test.pl: Exercise magic, rearrange to make it clearer
+ what's being tested.
+
+2003-12-07 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd): Use BELOW_THRESHOLD, to follow the
+ convention of N<THRESH for the lower algorithm, not <=. Fixes
+ algorithm selection in tuneup.c.
+
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Use intended
+ align_xp, align_yp.
+
+ * tune/tuneup.c (mul_toom3_threshold): Use MUL_TOOM3_THRESHOLD_LIMIT,
+ for the benefit of ASSERT in mpn_mul_n.
+
+ * tune/tuneup.c (tune_mul): Correction to toom3 param.min_size, should
+ use MPN_TOOM3_MUL_N_MINSIZE.
+
+ * tune/speed.c (check_align_option): Correction to printf format.
+ * tune/freq.c (freq_sysctl_hw_model): Remove unused "i" variable.
+
+ * scanf/doscan.c: Correction to a couple of trace printfs.
+ Add <stdlib.h> for strtol.
+
+ * tests/misc/t-scanf.c (test_sscanf_eof_ok): New function.
+ (check_misc): Use it to suppress tests broken by libc.
+ And should be EOF rather than -1 in various places.
+
+2003-12-06 Torbjorn Granlund <tege@swox.com>
+
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer):
+ Move SPEED_TMP_ALLOC_LIMBS invocations out from calls.
+
+ * mpn/generic/get_str.c (mpn_get_str, POW2_P case):
+ Don't append extra '\0' byte.
+
+2003-12-05 Niels Möller <niels@lysator.liu.se>
+
+ * tune/common.c (speed_mpn_hgcd_lehmer, speed_mpn_hgcd):
+ Updated for the renaming hgcd_sanity -> ASSERT_HGCD.
+
+ * mpn/generic/gcd.c (gcd_schoenhage): TMP_DECL must be the final
+ declaration in the declaration section of a block.
+
+ * tune/speed.h (mpn_gcd_accel): Added prototype.
+
+2003-12-05 Torbjorn Granlund <tege@swox.com>
+
+ * randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions
+ inside "!=".
+
+ * mpf/get_str.c: Remove unused variable "fracn".
+
+2003-12-03 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, Makefile.am (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New
+ AC_SUBSTs, use them to create .def files with Windows DLLs.
+ * doc/gmp.texi (Notes for Particular Systems): Update notes on mingw
+ DLL with MS C.
+
+ * mpz/export.c: Allow NULL for countp.
+ * doc/gmp.texi (Integer Import and Export): Describe this.
+ Suggested by Jack Lloyd.
+
+ * mpn/x86/p6/aors_n.asm: New file, grabbing the K7 code.
+ Superiority of this reported by Patrick Pelissier.
+
+2003-11-30 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/ev67/popcount.asm, mpn/alpha/ev67/hamdist.asm: New files.
+
+ * mpn/alpha/ev67: New directory.
+ * configure.in (alphaev67, alphaev68, alphaev7*): Use it.
+
+ * doc/gmp.texi (GMPrefu, GMPpxrefu): Change back to plain ref and
+ pxref, remove macros.
+ (GMPreftopu, GMPpxreftopu): Remove URL parameter, rename to GMPreftop
+ and GMPpxreftop.
+ (Debugging): Remove debauch, seems to have disappeared.
+ (Language Bindings): Corrections to URLs for CLN, Omni F77, Pike.
+
+2003-11-29 Kevin Ryde <kevin@swox.se>
+
+ * demos/perl/GMP/Mpf.pm (overload_string): Use $OFMT to avoid warnings
+ about $#.
+
+ * demos/perl/GMP.xs (fits_slong_p): Use LONG_MAX+1 to avoid possible
+ rounding of 0x7F..FF in a double on 64-bit systems.
+
+ * configure.in (ppc601-*-*): Remove this case, it never matched
+ anything, the name adopted is powerpc601.
+ (powerpc601-*-*): Use gcc -mcpu=601, xlc -qarch=601.
+
+ * configure.in: Introduce ${cc}_cflags_maybe, used if they work.
+ (*sparc*-*-*) [ABI=32]: Add gcc_cflags_maybe=-m32 to force that mode.
+
+ * doc/gmp.texi (Introduction to GMP): Add AMD64 to optimizations list.
+ (Build Options): Add cpu types alphaev7 and amd64. Update texinfo
+ html cross reference.
+
+2003-11-28 Niels Möller <nisse@lysator.liu.se>
+
+ * tune/tuneup.c (tune_hgcd): Disable if GMP_NAIL_BITS > 0.
+ * tune/speed.c (routine): Likewise.
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Likewise.
+
+ * mpn/generic/gcd.c, mpn/generic/hgcd.c, mpn/generic/hgcd2.c
+ [GMP_NAIL_BITS]: Disabled new code if we have nails.
+
+ * mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed
+ for compilation with --enable-assert).
+
+ * tune/tuneup.c (hgcd_schoenhage_threshold,
+ gcd_schoenhage_threshold): New variables.
+ (tune_hgcd, tune_gcd_schoenhage): New functions.
+ (all): Call tune_hgcd and tune_gcd_schoenhage.
+
+ * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer)
+ (speed_mpn_gcd_accel): New functions.
+ * tune/speed.c (routine): Added mpn_hgcd, mpn_hgcd_lehmer and
+ mpn_gcd _accel.
+ * tune/speed.h: Added corresponding prototypes.
+
+ * tune/gcd_accel.c: New file.
+
+ * tune/gcd_bin.c (GCD_SCHOENHAGE_THRESHOLD): Set to MP_SIZE_T_MAX.
+
+ * tune/Makefile.am (libspeed_la_SOURCES): Added gcd_accel.c.
+ (TUNE_MPN_SRCS_BASIC): Added hgcd.c.
+
+ * mpn/x86/k7/gmp-mparam.h (HGCD_SCHOENHAGE_THRESHOLD)
+ (GCD_SCHOENHAGE_THRESHOLD): Tuned values.
+
+ * mpn/generic/gcd.c (mpn_gcd, gcd_binary_odd): Renamed the
+ old mpn_gcd function (which implements accelerated binary gcd) to
+ gcd_binary_odd.
+ (gcd_binary): New function, with the additional book keeping
+ needed when using gcd_binary_odd to compute the gcd of non-odd
+ numbers.
+ (hgcd_tdiv): New function.
+ (gcd_lehmer): New function, currently #if:ed out.
+ (hgcd_start_row_p): New function, duplicated from hgcd.c.
+ (gcd_schoenhage_itch): New function.
+ (gcd_schoenhage): New function.
+ (mpn_gcd): New advertised gcd function, which calls
+ mpn_gcd_binary_odd or mpn_gcd_schoenhage, depending on the size of
+ the input.
+
+ * mpn/generic/hgcd.c (mpn_hgcd2_lehmer_step): Renamed function
+ (was lehmer_step), and made non-static. Updated callers.
+
+ * gmp-impl.h (GCD_LEHMER_THRESHOLD): #if:ed out this macro.
+ (mpn_hgcd2_lehmer_step): Added prototype.
+
+2003-11-27 Niels Möller <nisse@lysator.liu.se>
+
+ * tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we
+ don't need to forward declare the array.
+
+2003-11-26 Niels Möller <nisse@lysator.liu.se>
+
+ * mpn/generic/hgcd.c (mpn_hgcd2_fix): Deleted duplicate definition
+ (the function belongs to hgcd2.c).
+
+2003-11-26 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-gcd.c: Generate random operands up to 32767 bits;
+ decrease # of test to 1000.
+ (gcd_values): Remove oversize test case.
+
+2003-11-26 Niels Möller <niels@lysator.liu.se>
+
+ * gmp-impl.h: Added name mangling for hgcd-related functions. Also
+ use __GMP_PROTO.
+ (MPN_LEQ_P, MPN_EXTRACT_LIMB): Moved macros to hgcd.c.
+ * mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
+ Adapted to name changes.
+
+ * tests/mpz/t-gcd.c (main): Added some tests with non-random
+ input.
+
+2003-11-25 Niels Möller <nisse@lysator.liu.se>
+
+ * gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros.
+ (struct qstack, struct hgcd2_row, struct hgcd2, struct hgcd_row)
+ (struct hgcd): New structs. Also added prototypes for new hgcd,
+ hgcd2, qstack and gcd functions.
+
+ * configure.in (gmp_mpn_functions): Added hgcd2, hgcd and qstack.
+
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added hgcd2.c,
+ hgcd.c and qstack.c.
+
+ * mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c:
+ New files, needed for the sub-quadratic gcd.
+
+2003-11-25 Kevin Ryde <kevin@swox.se>
+
+ * doc/gmp.texi (Language Bindings): Add Axiom.
+
+2003-11-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/README: More notes on assembler syntax variations.
+
+ * mpn/alpha/alpha-defs.m4, mpn/alpha/unicos.m4 (unop): Should be ldq_u
+ not bis, and move to alpha-defs.m4 since it can be happily used
+ everywhere.
+
+ * mpn/alpha/alpha-defs.m4, mpn/alpha/default.m4, mpn/alpha/unicos.m4
+ (bigend): Move to alpha-defs.m4 and base it on HAVE_LIMB_BIG_ENDIAN or
+ HAVE_LIMB_LITTLE_ENDIAN, so as not to hard code system endianness.
+
+ * mpn/alpha/alpha-defs.m4: New file.
+ * configure.in (alpha*-*-*): Use it.
+
+2003-11-21 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-21.
+
+ * mpn/alpha/ev5/com_n.asm: Change "not" to "ornot r31", since "not"
+ isn't recognised by on Cray Unicos. Add missing "gp" to PROLOGUE.
+ * mpn/alpha/README: Add a note on "not".
+
+2003-11-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/aorslsh1_n.asm: Slightly rework feed-in code, avoiding
+ spurious reads beyond operand limits.
+
+ * mpn/alpha/ev5/com_n.asm: Add ASM_START/ASM_END.
+
+ * mpn/generic/mul_fft.c (mpn_fft_zero_p): Remove unused function.
+ (mpn_lshift_com): Make static, nailify properly.
+
+2003-11-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/diveby3.c: Use a "q" variable to make it clearer what
+ the code is doing.
+
+ * mpn/powerpc32/750/lshift.asm, mpn/powerpc32/750/rshift.asm: New
+ files.
+
+ * mpn/alpha/ev5/com_n.asm: New file.
+
+ * doc/gmp.texi (Assembler Functional Units, Assembler Writing Guide):
+ New sections by Torbjorn, tweaked by me.
+
+2003-11-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32: Add power4/powerpc970 cycle counts.
+ Use cmpwi instead of cmpi to placate darwin.
+
+2003-11-15 Kevin Ryde <kevin@swox.se>
+
+ * config.guess: Add comments on MacOS "machine" command.
+
+ * tests/devel/try.c (main): Use gmp_randinit_default explicitly on
+ __gmp_rands, since RANDS doesn't allow seeding.
+
+ * doc/gmp.texi (Assigning Integers): Remove notes on possible change
+ to disallow whitespace, this would be an incompatible change and
+ really can't be made.
+ (Toom 3-Way Multiplication): Updates for Paul's new code.
+
+ * mpn/generic/mul_n.c (toom3_interpolate, mpn_toom3_mul_n): Put
+ if/else braces around whole of #if code, for readability.
+
+ * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
+ refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps
+ etc.
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-15.
+
+2003-11-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br".
+
+2003-11-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/aorslsh1_n.asm: New file.
+
+2003-11-12 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Add case provoking AIX power2
+ assembler, test code by Torbjorn.
+ * configure.in (power*-*-*): Add a comment about -mcpu=rios2 fallback.
+
+ * tune/speed.c (main): Use gmp_randinit_default explicitly on
+ __gmp_rands, since RANDS doesn't allow seeding.
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-12.
+
+ * gmp-impl.h, randmt.h (__gmp_randinit_mt_noseed): Move prototype to
+ gmp-impl.h, for use by RANDS.
+
+ * mpn/Makeasm.am (.s, .S, .asm): Quote $< in test -f, per automake.
+ (.obj): Use test -f and $(CYGPATH_W) as per automake.
+
+2003-11-11 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Make umul and udiv standard-optional objects, rather
+ than under various extra_functions.
+
+ * mpn/pa32/hppa1_1/pa7100/add_n.asm,
+ mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
+ mpn/pa32/hppa1_1/pa7100/lshift.asm,
+ mpn/pa32/hppa1_1/pa7100/rshift.asm,
+ mpn/pa32/hppa1_1/pa7100/sub_n.asm,
+ mpn/pa32/hppa1_1/pa7100/submul_1.asm: Use LDEF for labels.
+
+ * mpf/set_str.c: Don't use memcmp for decimal point testing, just a
+ loop is enough and avoids any chance of memcmp reading past the end of
+ the given string.
+
+ * randmts.c, randmt.h: New files.
+ * Makefile.am (libgmp_la_SOURCES): Add them.
+ * randmt.c: Move seeding to randmts.c, common defines in randmt.h.
+ * gmp-impl.h (RANDS): Use __gmp_randinit_mt_noseed.
+ * tests/misc.c (tests_rand_start): Use gmp_randinit_default
+ explicitly, not RANDS.
+
+ * mpn/ia64/ia64-defs.m4 (PROLOGUE_cpu): Use 32-byte alignment, for the
+ benefit of itanium 2.
+ * mpn/ia64/gcd_1.asm: Remove own .align 32.
+
+ * mpn/ia64/ia64-defs.m4 (ALIGN): New define, using IA64_ALIGN_OK.
+ * mpn/ia64/hamdist.asm: Use ALIGN instead of .align.
+
+ * acinclude.m4 (GMP_ASM_IA64_ALIGN_OK): New macro.
+ * configure.in (IA64_PATTERN): Use it.
+ * mpn/ia64/README: Add notes on gas big endian align problem.
+
+2003-11-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_1.asm: Rewrite.
+
+2003-11-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/aors_n.asm: Align loop to a multiple of 16. Also align
+ M4_function_n to a multiple of 16, to minimize alignment padding.
+ Update P6 cycle counts reflecting improvements with new alignment.
+
+2003-11-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (HAVE_HOST_CPU_alpha_CIX): New define.
+ (ULONG_PARITY, popc_limb): Use it, to pick up ev7 as well as 67 and 68.
+ * longlong.h (count_leading_zeros, count_trailing_zeros): Ditto.
+
+ * doc/gmp.texi (Notes for Package Builds): Add notes on multi-ABI
+ system packaging.
+ (ABI and ISA): Add GNU/Linux ABI=64.
+ (Binary GCD): Add notes on 1x1 GCD algorithms.
+
+ * mpn/alpha/README: Add some literature references.
+
+ * mpn/ia64/mode1o.asm: Various corrections to initial checkin.
+ * mpn/ia64/ia64-defs.m4 (ASSERT): Correction to arg quoting.
+
+2003-11-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/linux64.m4: New file.
+ * configure.in (POWERPC64_PATTERN): Handle *-*-linux*.
+ Use linux64.m4.
+
+ * mpn/ia64/logops_n.asm: New file.
+
+2003-11-05 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_sysctl_hw_model): Relax to just look for "%u MHz",
+ for the benefit of sparc cypress under netbsd 1.6.1.
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-11-05.
+
+ * mpn/alpha/ev5/dive_1.c: New file.
+
+ * configure.in (x86_64-*-*): Accept together with amd64-*-*.
+
+ * tune/speed.c: Check range of -x,-y,-w,-W alignment specifiers.
+ * tune/speed.h (CACHE_LINE_SIZE): Amend comments.
+
+2003-11-04 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd.
+
+2003-11-03 Kevin Ryde <kevin@swox.se>
+
+ * mpn/ia64/hamdist.asm: New file.
+ * mpn/ia64/mode1o.asm: New file.
+ * mpn/ia64/ia64-defs.m4 (ASSERT): New macro.
+
+ * tests/mpz/t-set_d.c (check_2n_plus_1): New test.
+
+2003-11-01 Kevin Ryde <kevin@swox.se>
+
+ * mpz/fac_ui.c (BSWAP_ULONG) [limb==2*long]: Remove this case, it
+ provokes code gen problems on HP cc.
+ (BSWAP_ULONG) [generic]: Rename __dst variable to avoid conflicts with
+ BITREV_ULONG.
+ Fix by Jason Moxham.
+
+ * mpn/powerpc32/mode1o.asm: Use 16-bit i*i for early out, no need to
+ truncate divisor. Amend stated 750/7400 speeds, and note operands
+ that give the extremes.
+
+ * mpz/set_d.c: Don't use a special case for d < MP_BASE_AS_DOUBLE, gcc
+ 3.3 -mpowerpc64 on darwin gets ulonglong->double casts wrong.
+
+ * mpn/generic/diveby3.c: Show a better style carry handling in the
+ alternative pipelined sample code.
+
+ Revert this, the longlong.h macros need -mpowerpc64:
+ * acinclude.m4 (GMP_GCC_POWERPC64): New macro.
+ * configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
+ when bad.
+
+2003-10-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode64/submul_1.asm: Move an instruction to save a
+ cycle on POWER4.
+
+ * mpn/powerpc64/mode64/divrem_1.asm: Fix several syntax problems
+ revealed on Mac OS X.
+
+ * mpn/powerpc64/mode64/*.asm: Add cycle counts for POWER4.
+
+ * mpn/powerpc64/sqr_diagonal.asm: Rewrite to save a cycle on POWER4.
+
+2003-10-31 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-31.
+
+ * mpn/powerpc64/README: Add subdirectory organisation notes.
+
+ * tests/mpn/t-get_d.c: Don't use limits.h, LONG_MIN is wrong on gcc
+ 2.95 with -mcpu=ultrasparc.
+
+ * acinclude.m4 (GMP_GCC_POWERPC64): New macro.
+ * configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
+ when bad.
+
+ * configure.in (powerpc64-*-darwin*) [ABI=mode32]: Use gcc -mcpu flags.
+
+ * mpn/ia64/divrem_1.asm, mpn/ia64/gcd_1.asm: Use "C" for comments.
+ * mpn/ia64/README, mpn/ia64/ia64-defs.m4: Note this.
+
+ * mpn/ia64/ia64-defs.m4: Renamed from default.m4, per other defs files.
+ * configure.in (IA64_PATTERN): Update GMP_INCLUDE_MPN.
+
+ * doc/gmp.texi (Notes for Particular Systems): Remove m68k ABI notes
+ for -mshort and PalmOS, now works.
+ (References): Correction, GMP Square Root proof already there, just
+ wanting URL from RRRR 4475.
+
+2003-10-29 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (sparc*-*-*): Use gcc -m32 when that option works, to
+ force 32-bit mode on dual 32/64 configurations like GNU/Linux.
+ (sparc64-*-linux*): Add support for ABI=64.
+
+ * mpn/generic/pre_divrem_1.c: In fraction part, use CNST_LIMB(0) with
+ udiv_qrnnd_preinv to avoid warning about shift > type.
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-29.
+
+ * tests/cxx/t-istream.cc: Avoid tellg() checks if putback() doesn't
+ update that, avoids certain g++ 2.96 problems.
+
+ * tests/mpn/t-fat.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add it.
+
+ * configure.in (CPUVEC_INSTALL, ITERATE_FAT_THRESHOLDS): New macros
+ for fat.h.
+ * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Use CPUVEC_INSTALL instead
+ of memcpy. Correction to location of "initialized" set. Improve
+ various comments.
+
+2003-10-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/mul_1.asm: Change addcc => add in a few places.
+ * mpn/sparc64/addmul_1.asm: Likewise.
+
+ * mpn/sparc32/v9/mul_1.asm: Apply cross-jumping.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+ * mpn/sparc32/v9/sqr_diagonal.asm: Likewise.
+
+2003-10-27 Kevin Ryde <kevin@swox.se>
+
+ * tests/cxx/t-misc.cc: Don't use <climits>, on g++ 2.95.4 (debian 3.0)
+ -mcpu=ultrasparc LONG_MIN is wrong and kills the compile.
+
+ * tests/cxx/t-istream.cc: Correction to tellg tests, don't assume
+ streampos is zero based.
+
+ * configure.in (HAVE_HOST_CPU_FAMILY_alpha): New define for config.h.
+ * mpn/generic/get_d.c: Use it instead of __alpha for alpha workaround,
+ since Cray cc doesn't define __alpha.
+
+ * mpn/x86/README: Revise PIC coding notes a bit, add gcc visibility
+ attribute.
+
+2003-10-25 Kevin Ryde <kevin@swox.se>
+
+ * mpn/ia64/gcd_1.asm: New file.
+
+ * tune/many.pl: Allow for PROLOGUE(fun,...), as used on alpha.
+
+ * doc/gmp.texi (C++ Formatted Input): Describe base indicator handling.
+
+ * tests/cxx/t-istream.cc: New file.
+ * tests/cxx/Makefile.am: Add it.
+
+ * cxx/ismpznw.cc: New file, integer input without whitespace ...
+ * cxx/ismpz.cc: ... from here.
+ * gmp-impl.h (__gmpz_operator_in_nowhite): Add prototype.
+ * cxx/ismpq.cc: Rewrite using mpz input routines. Change to accept a
+ separate base indicator on numerator and denominator. Fix base
+ indicator case where "123/0456" would stop at "123/0".
+ * Makefile.am, cxx/Makefile.am: Add cxx/ismpznw.cc.
+
+ * tests/mpz/t-set_d.c: New file, derived from tests/mpz/t-set_si.c
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpn/m68k/lshift.asm, mpn/m68k/rshift.asm: Support 16-bit int and
+ stack alignment.
+ * mpn/m68k/README: Add notes on this.
+ * configure.in (SIZEOF_UNSIGNED): New define in config.m4.
+ * mpn/m68k/m68k-defs.m4 (m68k_definsn): Add cmpw, movew.
+ Reported by Patrick Pelissier.
+
+ * mpn/m68k/t-m68k-defs.pl: Don't use -> with hashes, to avoid
+ deprecation warnings from perl 5.8.
+
+ * configure.in (viac3-*-*): Use just x86/pentium in $path not x86/p6.
+ If gcc is to be believed the old C3s don't have cmov.
+
+ * Makefile.am: Amend comments about not building from libtool
+ convenience libraries.
+
+ * mpn/asm-defs.m4 (PROLOGUE): Use m4_file_seen, for correct filename
+ in missing EPILOGUE error messages.
+ (m4_file_seen): Amend comments about where used.
+
+ * Makefile.am (CXX_OBJECTS): Remove $U, C++ files are not subject to
+ ansi2knr rules.
+
+ * gmp-h.in (mpn_divmod_1): Use __GMP_CAST, to avoid warnings in
+ applications using g++ -Wold-style-cast.
+
+ * mpn/z8000/README: New file.
+
+2003-10-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/get_d.c (CONST_1024, CONST_NEG_1023,
+ CONST_NEG_1022_SUB_53): Replace ALPHA_WORKAROUND with a non-gcc-ism,
+ and use on Cray Unicos alpha too, which has the same problem.
+
+ * configure.in (powerpc64-*-darwin*): Make ABI=32 available as the
+ final fallback, remove mode64 until we know how it will work.
+
+ * doc/gmp.texi (Build Options): Add powerpc970 to available CPUs.
+ (ABI and ISA): Add mode32 for Darwin.
+
+ * configure.in (gettimeofday): Use an explicit AC_TRY_LINK, to avoid
+ known autoconf 2.57 problems with gettimeofday in AC_CHECK_FUNCS on
+ HP-UX.
+
+ * configure.in (powerpc*-*-*): Use ABI=32 instead of ABI=standard for
+ the default 32-bit ABI. Fixes powerpc64-*-aix* which is documented as
+ choices "aix64 32" but had "aix64 standard".
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-22.
+
+ * doc/gmp.texi (Notes for Particular Systems): Note m68k gcc -mshort
+ and PalmOS calling conventions not supported. Reported by Patrick
+ Pelissier.
+ (References): Add Paul Zimmermann's Inria 4475 paper.
+
+2003-10-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/submul_1.asm: Slightly reschedule loop to accommodate
+ Itanium 2 getf.sig latency.
+
+2003-10-21 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpn/t-instrument.c: Add mpn_addlsh1_n, mpn_rsh1add_n,
+ mpn_rsh1sub_n, mpn_sub_nc, mpn_sublsh1_n. Typo in mpn_preinv_divrem_1
+ conditional.
+
+2003-10-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/mode32/add_n.asm: New file.
+ * mpn/powerpc64/mode32/sub_n.asm: New file.
+ * mpn/powerpc64/mode32/mul_1.asm: New file.
+ * mpn/powerpc64/mode32/addmul_1.asm: New file.
+ * mpn/powerpc64/mode32/submul_1.asm: New file.
+
+2003-10-19 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (AMD64): __x86_64__ => __amd64__.
+ (64-bit powerpc): Only define carry-dependent macros if
+ !_LONG_LONG_LIMB.
+
+ * acinclude.m4 (POWERPC64_PATTERN): Add powerpc970-*-*.
+
+ * configure.in (POWERPC64_PATTERN): Handle *-*-darwin*.
+ (POWERPC64_PATTERN, *-*-aix*): Prepend powerpc64/mode64 to path_aix64.
+
+ * mpn/powerpc64/mode64/mul_1.asm: Change cal => addi.
+ * mpn/powerpc64/mode64/addmul_1.asm: Likewise.
+ * mpn/powerpc64/mode64/submul_1.asm: Likewise.
+ * mpn/powerpc64/sqr_diagonal.asm: Likewise.
+
+ * mpn/powerpc64/mode64/mul_1.asm: Move from "..".
+ * mpn/powerpc64/mode64/addmul_1.asm: Likewise.
+ * mpn/powerpc64/mode64/submul_1.asm: Likewise.
+ * mpn/powerpc64/mode64/divrem_1.asm: Likewise.
+ * mpn/powerpc64/mode64/rsh1sub_n.asm: Likewise.
+ * mpn/powerpc64/mode64/add_n.asm: Likewise.
+ * mpn/powerpc64/mode64/addsub_n.asm: Likewise.
+ * mpn/powerpc64/mode64/sub_n.asm: Likewise.
+ * mpn/powerpc64/mode64/addlsh1_n.asm: Likewise.
+ * mpn/powerpc64/mode64/diveby3.asm: Likewise.
+ * mpn/powerpc64/mode64/rsh1add_n.asm: Likewise.
+ * mpn/powerpc64/mode64/sublsh1_n.asm: Likewise.
+
+ * mpn/powerpc64/lshift.asm: Handle mode32 ABI.
+ * mpn/powerpc64/rshift.asm: Likewise.
+ * mpn/powerpc64/umul.asm: Likewise.
+
+ * tune/powerpc64.asm: Make it actually work.
+
+2003-10-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/get_d.c: Add a workaround for alpha gcc signed constant
+ comparison bug.
+
+ * gmpxx.h (gmp_randclass gmp_randinit_lc_2exp_size constructor): Throw
+ std::length_error if size is too big.
+ * tests/cxx/t-rand.cc (check_randinit): Exercise this.
+
+ * mpn/x86/pentium4/sse2/addlsh1_n.asm: New file, derived in part from
+ mpn/x86/pentium4/sse2/add_n.asm.
+
+ * doc/gmp.texi (C++ Interface Integers, C++ Interface Rationals, C++
+ Interface Floats): Note std::invalid_argument exception for invalid
+ strings to constructors and operator=.
+ (C++ Interface Random Numbers): Note std::length_error exception for
+ size too big in gmp_randinit_lc_2exp_size.
+
+2003-10-18 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr-2-0-2-branch 2003-10-18.
+
+ * gmpxx.h (mpz_class, mpq_class, mpf_class, mpfr_class constructors
+ and operator= taking string or char*): Throw std::invalid_argument if
+ string cannot be converted.
+ * tests/cxx/t-constr.cc, tests/cxx/t-assign.cc: Exercise this.
+
+ * cxx/ismpz.cc, cxx/ismpq.cc, cxx/ismpf.cc: Use istream std::locale
+ ctype facet for isspace when available. Only accept space at the
+ start of the input, same as g++ libstdc++. Use ASSERT_NOCARRY to
+ check result of mpz_set_str etc.
+ * cxx/ismpf.cc: Don't accept "@" for exponent indicator.
+
+ * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Remove
+ _open and _mpn variants of mpn_toom3_mul_n, only one style now.
+ * tune/mul_n_open.c, tune/mul_n_mpn.c: Remove files.
+
+ * gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
+ (udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.
+
+ * tests/mpz/t-import.c, tests/mpz/t-export.c: Use octal for character
+ constants, hex is an ANSI-ism.
+
+ * mpn/alpha/ev5/mode1o.c: Corrections to ASSERTs, as per
+ mpn/generic/mode1o.c.
+
+ * mpn/generic/diveby3.c: Add commented out alternative code and notes
+ for taking the multiply off the dependent chain. Amend/clarify some
+ of the other comments.
+
+ * configure.in (powerpc970-*-*): Use gcc -mcpu=970 when available.
+ (powerpc7400-*-*): Fallback on gcc -mcpu=750 if -mcpu=7400 not
+ available.
+
+ * doc/gmp.texi (C++ Formatted Input): Note locale digit grouping not
+ supported.
+ (C++ Formatted Input, C++ Formatted Output): Cross reference class
+ interface on overloading.
+
+ * mpn/m68k/README: Add various ideas from doc/tasks.html.
+
+ * mpn/m88k/README: New file.
+
+2003-10-16 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Recognize powerpc970.
+
+2003-10-15 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Recognize powerpc970 under MacOS.
+
+2003-10-15 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, acinclude.m4 (GMP_C_RIGHT_SHIFT): New test.
+ * gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
+ (udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.
+
+ * mpn/amd64/amd64-defs.m4: New file, with a non-aligning PROLOGUE.
+ * configure.in (amd64-*-*): Use it.
+ * mpn/amd64/addlsh1_n.asm: Add ALIGN(16).
+
+ * mpfr/*: Update to mpfr cvs 2003-10-15.
+
+ * mpn/generic/get_d.c: Rewrite, simplifying and truncating towards
+ zero unconditionally.
+ * tests/mpn/t-get_d.c: Add various further tests.
+ * gmp-impl.h (FORCE_DOUBLE): New macro.
+
+ * gmp-h.in (__mpz_struct): Add comment on __mpz_struct getting into
+ C++ mangled function names.
+
+ * doc/gmp.texi (Build Options): Update notes for new doc subdir.
+ (Low-level Functions): Note mpn functions don't check for zero limbs
+ etc, it's up to an application to strip.
+
+ * doc/configuration (Configure): mdate-sh now in doc subdir, add
+ generated fat.h.
+
+2003-10-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/lorrshift.asm: Rewrite.
+
+ * mpn/ia64/diveby3.asm: Remove explicit bundling; add branch hints.
+
+2003-10-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/diveby3.asm: New file.
+
+2003-10-13 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc32/mod_34lsub1.asm: New file.
+
+ * mpn/powerpc32/diveby3.asm, mpn/powerpc64/diveby3.asm: src[] in
+ second operand of mullw, to allow possible early-out, which the
+ 0xAA..AB inverse cannot give. This improvement noticed by Torbjorn.
+
+ * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Print to config.log whether
+ local label is purely temporary or appears in object files, for
+ development purposes.
+
+ * doc/gmp.texi, doc/fdl.texi, doc/texinfo.tex, doc/mdate-sh: Moved
+ from top-level.
+ * doc/Makefile.am: New file.
+ * configure.in (AC_OUTPUT): Add doc/Makefile.
+ * Makefile.am (SUBDIRS): Move doc subdirectory from EXTRA_DIST.
+ (info_TEXINFOS, gmp_TEXINFOS): Moved to doc/Makefile.am.
+ * mpfr/Makefile.am (mpfr_TEXINFOS): fdl.texi now in doc subdir.
+ (TEXINFO_TEX): texinfo.tex now in doc subdir.
+ (AM_MAKEINFOFLAGS): Set -I to doc subdir.
+
+ * mpz/and.c: For positive/positive, use mpn_and_n, rate a realloc as
+ UNLIKELY.
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Don't test
+ for high zero limbs.
+
+2003-10-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/diveby3.asm: New file (trivial edits of
+ powerpc32/diveby3.asm).
+
+ * mpn/powerpc32/diveby3.asm: Update cycle counts with more processors.
+ * mpn/powerpc32/sqr_diagonal.asm: Likewise.
+
+ * mpn/pa64/add_n.asm: Correct PA8500 cycle counts.
+ * mpn/pa64/sub_n.asm: Likewise.
+
+ * mpn/m68k/aors_n.asm (INPUT PARAMETERS): Fix typo.
+ * mpn/m68k/lshift.asm: Likewise.
+ * mpn/m68k/rshift.asm: Likewise.
+
+ * mpn/m68k/README: Correct an URL; add some STATUS comments.
+
+ * mpn/ia64/aorslsh1_n.asm: Avoid shrp when shl/shr works just as well.
+
+ * mpn/powerpc32/addlsh1_n.asm: New file.
+ * mpn/powerpc32/sublsh1_n.asm: New file.
+
+2003-10-12 Kevin Ryde <kevin@swox.se>
+
+ * mpn/sparc64/divrem_1.c, mpn/sparc64/mod_1.c: New files.
+ * mpn/sparc64/sparc64.h (HALF_ENDIAN_ADJ, count_leading_zeros_32,
+ invert_half_limb, udiv_qrnnd_half_preinv): New macros.
+
+ * gmp-impl.h (udiv_qrnnd_preinv2): Use a ? : for getting the n1 bit,
+ so as not to depend on signed right shifts being arithmetic.
+
+ * mpn/powerpc32/diveby3.asm: New file.
+
+ * mpn/generic/divrem_1.c: Use CNST_LIMB(0) to avoid warnings from
+ udiv_qrnnd_preinv about shift count when int<long. Do the same with
+ udiv_qrnnd, for consistency.
+
+ * Makefile.am (install-data-hook): Print a warning recommending "make
+ check" to watch out for compiler bugs. Proposed by Torbjorn.
+
+ * mpn/ia64/README (mpn_lshift, mpn_rshift): Amend prospective itanium2
+ speed, 0.75 c/l with shrp plus shl/shr.
+
+ * mpn/ia64/popcount.asm: Add comment on optimality.
+
+2003-10-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/rsh1aors_n.asm: New file.
+
+ * mpn/asm-defs.m4: Handle rsh1aors_n.
+
+ * configure.in (tmp_mulfunc): Handle rsh1aors_n.
+
+2003-10-11 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium4/sse2/diveby3.asm: Remove non-PIC RODATA memory
+ access for 0xAAAAAAAB constant.
+
+ * gmp-impl.h (popc_limb, ULONG_PARITY) [ev67, ev68]: Add gcc asm
+ versions using ctpop.
+
+ * mpn/x86/k6/aorsmul_1.asm: Tweak some comments, remove M4_description
+ and M4_desc_retval used only in comments.
+
+ * mpn/x86/k6/mul_basecase.asm: Add comment on using mpn_mul_1.
+
+2003-10-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/addlsh1_n.asm: Tweak for 0.25 c/l better loop speed.
+ * mpn/powerpc64/sublsh1_n.asm: Likewise.
+
+2003-10-09 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-10-09.
+
+ * tests/devel/try.c (_SC_PAGESIZE): Define from _SC_PAGE_SIZE on
+ systems which use that, eg. hpux 9.
+
+2003-10-07 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_sysctl_hw_model): Correction to last sscanf change.
+
+ * configure.in: Check for psp_iticksperclktick in struct pst_processor.
+ * tune/freq.c (freq_pstat_getprocessor): Use this.
+
+ * tests/devel/try.c (divisor_array): Add a couple of half-limb values.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Correction to last change, need to
+ set result "yes" when cross compiling.
+
+2003-10-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c: Use __GMPN_ADD_1/_GMPN_SUB_1 instead of
+ mpn_add_1 and mpn_sub_1.
+
+ * mpn/pa64/aorslsh1_n.asm: Schedule register save and restore code.
+
+2003-10-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64/mul_1.asm: Misc comment cleanups.
+ * mpn/pa64/addmul_1.asm: Likewise.
+ * mpn/pa64/submul_1.asm: Likewise.
+
+ * mpn/pa64/README: Correct cycle counts.
+
+ * mpn/pa64/aorslsh1_n.asm: New file.
+
+2003-10-04 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_sysctl_hw_model, freq_sunos_sysinfo,
+ freq_sco_etchw, freq_bsd_dmesg, freq_irix_hinv): Demand matching of
+ MHz etc at end of sscanf format string. In particular need this for
+ freq_bsd_dmesg on i486-pc-freebsd4.7 to avoid the 486 cpu being used
+ for the frequency.
+
+ * tests/misc.c, tests/tests.h (tests_setjmp_sigfpe,
+ tests_sigfpe_handler, tests_sigfpe_done, tests_sigfpe_target,
+ tests_dbl_mant_bits): New.
+
+ * configure.in (viac3*-*-*): Add gcc VIA c3 options.
+
+ * mpfr/*: Update to mpfr cvs 2003-10-04.
+
+ * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
+ refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps.
+ * tests/tests.h (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
+ refmpn_rsh1sub_n): Add prototypes.
+
+ * tests/devel/try.c, tune/many.pl: Add mpn_addlsh1_n, mpn_sublsh1_n,
+ mpn_rsh1add_n, mpn_rsh1sub_n.
+
+2003-10-03 Torbjorn Granlund <tege@swox.com>
+
+ * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
+ refmpn_rsh1sub_n): New functions.
+
+2003-10-03 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/mul_n.c (toom3_interpolate): Use mpn_add_1/mpn_sub_1
+ instead of MPN_INCR_/MPN_DECR_U.
+
+2003-10-02 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (ia64*-*-hpux*): Fall back to +O1, not +O.
+
+2003-10-02 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (ia64*-*-hpux*): For cc, let +O optimization level
+ fallback if +O3 doesn't work.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Add a test of __builtin_alloca
+ when available, to pick up Itanium HP-UX cc internal errors in +O2.
+ Provoking code by Torbjorn.
+
+2003-10-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/gmp-mparam.h: Retune.
+
+ * mpn/asm-defs.m4: Handle aorslsh1_n.
+
+ * configure.in (tmp_mulfunc): Handle aorslsh1_n.
+
+ * mpn/ia64/aorslsh1_n.asm: New file.
+
+ * mpn/ia64/aors_n.asm: New file, complete rewrite of mpn_add_n and
+ mpn_sub_n.
+ * mpn/ia64/add_n.asm: Replace by aors_n.asm.
+ * mpn/ia64/sub_n.asm: Replace by aors_n.asm.
+
+2003-10-01 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Make bad ARM last byte into a
+ separate case and consider it non-IEEE, since it looks like this is
+ due to some sort of restricted or incorrect software floats.
+
+ * demos/calc/Makefile.am: Use automake yacc/lex support, seems fine in
+ separate objdir now.
+
+ * cxx/dummy.cc: Moved from top-level dummy.cc.
+ * Makefile.am (libgmpxx_la_SOURCES): Update to cxx/dummy.cc,
+ correction to comment about this.
+
+2003-09-30 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Correct documentation of -split.
+ (TIME): Remove cast of result to double.
+ (main): Change timing variables to int.
+ (main): #ifdef LIMIT_RESOURCE_USAGE, don't convert numbers of more than
+ 100000 digits.
+
+2003-09-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/*/*.asm: Clean up spacing, tabify.
+
+ * mpn/alpha/rshift.asm: Table cycle counts.
+ * mpn/alpha/lshift.asm: Likewise.
+ * mpn/alpha/ev5/rshift.asm: Likewise.
+ * mpn/alpha/ev5/lshift.asm: Likewise.
+ * mpn/alpha/ev6/add_n.asm: Likewise.
+ * mpn/alpha/ev6/sub_n.asm: Likewise.
+
+ * mpn/ia64/lorrshift.asm: Amend comments about performance.
+
+ * mpn/pa64/mul_1.asm: Fix comment typo.
+ * mpn/pa64/addmul_1.asm: Likewise.
+ * mpn/pa64/submul_1.asm: Likewise.
+
+ * mpn/amd64/addlsh1_n.asm: Save/restore carry using two insn to break
+ recurrency. Add remarks about possible further speedup.
+ * mpn/amd64/sublsh1_n.asm: Likewise.
+
+ * mpn/amd64/rsh1add_n.asm: Add remarks about possible further speedup.
+ * mpn/amd64/rsh1sub_n.asm: Likewise.
+
+2003-09-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info.
+
+ * mpn/powerpc64/rsh1add_n.asm: New file.
+ * mpn/powerpc64/rsh1sub_n.asm: New file.
+ * mpn/powerpc64/rshift.asm: Rewrite.
+ * mpn/powerpc64/lshift.asm: Rewrite.
+
+2003-09-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/addlsh1_n.asm: New file.
+ * mpn/powerpc64/sublsh1_n.asm: New file.
+
+2003-09-25 Torbjorn Granlund <tege@swox.com>
+
+ * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
+ speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): Conditionalize on
+ corresponding HAVE_NATIVE_*.
+
+2003-09-25 Kevin Ryde <kevin@swox.se>
+
+ * mpz/combit.c: Use GMP_NUMB_BITS not BITS_PER_MP_LIMB.
+
+ * demos/expr/exprfr.c: Allow for mpfr_inf_p, mpfr_nan_p and
+ mpfr_number_p merely returning non-zero, rather than 1 or 0.
+
+ * demos/expr/exprfr.c, demos/expr/t-expr.c: Add erf, integer_p, zeta.
+
+ * demos/expr/Makefile.am (LDADD): Update comments on $(LIBM).
+
+2003-09-24 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.c (routine): Add entries for mpn_addlsh1_n, mpn_sublsh1_n,
+ mpn_rsh1add_n, and mpn_rsh1sub_n.
+
+ * tune/speed.h: Declare speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
+ speed_mpn_rsh1add_n, and speed_mpn_rsh1sub_n.
+
+ * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
+ speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): New functions.
+
+ * gmp-impl.h: Declare mpn_addlsh1_n, mpn_sublsh1_n, mpn_rsh1add_n, and
+ mpn_rsh1sub_n.
+
+ * mpn/asm-defs.m4: Add define_mpn's for addlsh1_n, sublsh1_n,
+ rsh1add_n, and rsh1sub_n.
+
+ * mpn/powerpc64/*.asm: Add cycle counts in consistent style. Misc
+ styling edits.
+
+ * mpn/amd64/gmp-mparam.h: Retune.
+
+ * configure.in: Add #undefs for HAVE_NATIVE_mpn_addlsh1_n,
+ HAVE_NATIVE_mpn_sublsh1_n, HAVE_NATIVE_mpn_rsh1add_n,
+ HAVE_NATIVE_mpn_rsh1sub_n.
+ (gmp_mpn_functions_optional): List addlsh1_n, sublsh1_n, rsh1add_n,
+ and rsh1sub_n.
+
+ * mpn/amd64/addlsh1_n.asm: New file.
+ * mpn/amd64/sublsh1_n.asm: New file.
+ * mpn/amd64/rsh1add_n.asm: New file.
+ * mpn/amd64/rsh1sub_n.asm: New file.
+
+2003-09-24 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-09-24.
+
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files.
+
+2003-09-23 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128.
+
+2003-09-23 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const.
+
+2003-09-22 Torbjorn Granlund <tege@swox.com>
+
+ * tune/mul_n_mpn.c: (__gmpn_sqr_n): New #define.
+ * tune/mul_n_open.c (__gmpn_sqr_n): New #define.
+
+ * mpn/generic/mul.c (mpn_sqr_n): Move from here...
+ * mpn/generic/mul_n.c (mpn_sqr_n): ...to here.
+ (mpn_sqr_n): Allocate workspace for toom3 using TMP_* mechanism except
+ for very large operands when !WANT_FFT.
+
+ * mpn/generic/mul_n.c: Add a missing ";". Misc comment fixes.
+
+ * mpn/generic/mul.c: Remove spurious #include <stdio.h>.
+
+ * mpn/x86/k7/gmp-mparam.h: Retune.
+
+ * mpn/generic/mul_n.c (mpn_mul_n): Allocate workspace for toom3 using
+ TMP_* mechanism except for very large operands when !WANT_FFT.
+
+ * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE):
+ Define conditionally on WANT_FFT and HAVE_NATIVE_mpn_sublsh1_n.
+ (MPN_TOOM3_MAX_N): New #define.
+
+ * mpn/amd64/gmp-mparam.h: Retune.
+
+ * mpn/Makefile.am (TARG_DIST): Add amd64.
+
+ * mpn/generic/sqr_basecase.c: Use mpn_addlsh1_n when available.
+
+ * mpn/generic/mul_n.c: Use proper form for HAVE_NATIVE macros.
+
+2003-09-22 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-09-22.
+
+2003-09-21 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium4/sse2/gmp-mparam.h (USE_PREINV_DIVREM_1,
+ USE_PREINV_MOD_1): Set to 1 for new asm versions.
+
+ * mpfr/*: Update to mpfr cvs 2003-09-21.
+
+2003-09-21 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n): Conditionally use
+ mpn_sublsh1_n, mpn_rsh1add_n and mpn_rsh1sub_n, in addition to
+ mpn_addlsh1_n. Avoid all copying, at the expense of some additional
+ workspace.
+
+ * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Accommodate
+ latest toom3 code.
+
+2003-09-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm:
+ New files.
+
+2003-09-16 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.c (run_one): Don't scale the -1.0 not-available return.
+ Print "n/a" for times not-available.
+
+2003-09-13 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/mul_n.c (toom3_interpolate): New function.
+ (mpn_toom3_mul_n, mpn_toom3_sqr_n): Call toom3_interpolate.
+
+2003-09-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove unused
+ variables.
+ (mpn_toom3_mul_n, mpn_toom3_sqr_n): Use offset `+ 1', not `+ 2' in last
+ MPN_DECR_U calls.
+
+2003-09-12 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite.
+
+2003-09-12 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Reformulate
+ to use the same form as MPN_TOOM3_MUL_N_TSIZE.
+ (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Update for new Toom3
+ code requirements.
+ * mpn/generic/mul_n.c (evaluate3, interpolate3, add2Times): Remove.
+ (USE_MORE_MPN): Remove.
+
+2003-08-31 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-08-31.
+
+2003-08-30 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-08-30.
+
+2003-08-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/copyi.asm: New file.
+ * mpn/amd64/copyd.asm: New file.
+ * mpn/amd64/README: New file.
+
+2003-08-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/lshift.asm: New file.
+ * mpn/amd64/rshift.asm: New file.
+ * mpn/amd64/gmp-mparam.h: Retune.
+
+2003-08-23 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_getsysinfo): Correction to speed_cycletime value
+ established.
+
+ * mpz/rootrem.c, gmp-h.in, gmp.texi (mpz_rootrem): Don't return
+ exactness indication, can get that from testing the remainder.
+
+ * mpn/x86/k7/aors_n.asm, mpn/x86/k7/mmx/copyi.asm: Amend to comments
+ about loads and stores and what speed should be possible.
+
+2003-08-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/amd64/add_n.asm: New file.
+ * mpn/amd64/sub_n.asm: New file.
+ * mpn/amd64/mul_1.asm: New file.
+ * mpn/amd64/addmul_1.asm: New file.
+ * mpn/amd64/submul_1.asm: New file.
+
+2003-08-19 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (add_ssaaaa, sub_ddmmss) [hppa 64]: Move down into main
+ __GNUC__ block. Exclude for _LONG_LONG_LIMB (ie. ABI=2.0n) since
+ these forms are only for ABI=2.0w.
+
+ * longlong.h (count_leading_zeros) [__mcpu32__]: Check __mcpu32__ to
+ avoid bfffo on GCC 3.4 in CPU32 mode. Reported by Bernardo Innocenti.
+
+ * longlong.h (count_trailing_zeros) [x86_64]: Use "%q0" to force
+ 64-bit register destination. Pointed out by Torbjorn.
+
+ * mpz/combit.c: Correction to carry handling when extending a
+ negative, and use __GMPN_ADD_1. Correction to complement limb for a
+ negative when there's a non-zero low limb.
+ * tests/mpz/bit.c (check_clr_extend, check_com_negs): Exercise these.
+
+ * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add
+ get_d_2exp.
+ * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Rand.pm,
+ demos/perl/test.pl: Add gmp_urandomb_ui, gmp_urandomm_ui.
+ (GMP::Rand::randstate): Accept a randstate object to copy.
+ * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Mpz.pm,
+ demos/perl/test.pl: Add combit, rootrem.
+
+2003-08-19 Torbjorn Granlund <tege@swox.com>
+
+ * tune/Makefile.am (EXTRA_DIST): Add amd64.asm.
+
+2003-08-17 Kevin Ryde <kevin@swox.se>
+
+ * gmpxx.h [__MPFR_H]: Include full <iostream> for inlines.
+ * tests/cxx/t-headfr.cc: New file, exercising this.
+ * tests/cxx/Makefile.am: Add it.
+
+ * tests/cxx/t-constr.cc: Include config.h for WANT_MPFR.
+
+ * gmpxx.h: Correction to temp variable type in mpf -> mpfr assignment.
+ Reported by Derrick Bass.
+ * tests/cxx/t-assign.cc (check_mpfr): Exercise this.
+
+ * configure.in (WANT_MPFR): AC_DEFINE this, for the benefit of
+ tests/cxx/t-*.cc. (Was always meant to have been defined.)
+ * tests/cxx/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpfr.
+
+ * gmpxx.h: __gmp_default_rounding_mode -> __gmpfr_default_rounding_mode
+ (struct __gmp_hypot_function): Correction to mpfr_hypot addition.
+ * tests/cxx/t-misc.cc (check_mpfr_hypot): Corrections to mpfr/long
+ tests.
+
+2003-08-16 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (amd64): New.
+
+ * mpn/amd64/gmp-mparam.h: New file.
+
+ * tune/amd64.asm: New file, derived in part from tune/pentium.asm.
+
+2003-08-15 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_irix_hinv): Reinstate, for the benefit of IRIX 6.2.
+ (freq_attr_get_invent): Conditionalize on INFO_LBL_DETAIL_INVENT too.
+
+2003-08-14 Kevin Ryde <kevin@swox.se>
+
+ * mpq/get_d.c: Use mpn_get_d.
+ * tests/mpq/t-get_d.c (check_onebit): New test.
+
+ * gmp.texi (Notes for Particular Systems): Under x86 cpu types, note
+ i386 is a fat binary, remove pentium4 recommendation since i386 is now
+ quite reasonable for p4.
+ (Notes for Particular Systems): Under Windows DLLs, remove caveat
+ about --enable-cxx now ok, update .lib creation for new libtool,
+ remove .exp not needed for MS C.
+ (Notes for Package Builds): i386 is a fat binary.
+ (Reentrancy): Remove SCO ctype.h note, don't want to list every system
+ misfeature, and was quite possibly for non-threading mode anyway.
+ (Autoconf): Remove notes on gmp 2 detection, too old to want to
+ encourage anyone to use.
+ (Karatsuba Multiplication): Correction to threshold increase/decrease
+ for a and b terms. Reported by Richard Brent and Paul Zimmermann.
+ Also add various further index entries.
+
+ * tune/freq.c (freq_attr_get_invent): New function.
+ (freq_irix_hinv): Remove, in favour or freq_attr_get_invent.
+ * configure.in (AC_CHECK_FUNCS): Add attr_get.
+ (AC_CHECK_HEADERS): Add invent.h, sys/attributes.h, sys/iograph.h.
+
+2003-08-03 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT.
+
+2003-08-02 Kevin Ryde <kevin@swox.se>
+
+ * mpn/asm-defs.m4: Tweak some comments, add hpux11 to m4wrap 0xFF
+ problem systems.
+
+ * configure.in (*-*-sco3.2v5*): Remove lt_cv_archive_cmds_need_lc=no,
+ since libtool no longer uses it. This was a workaround fixing ctype.h
+ in SCO 5 shared libraries; not sure if libtool now gets it right on
+ its own, let's hope so.
+
+ * configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Remove, libtool no
+ longer demands HOST_CC.
+
+ * configure.in: When C or C++ compiler not found, refer user to
+ config.log.
+
+ * configure.in (i386-*-*): Turn i386 into a fat binary build.
+ * mpn/x86/fat/fat.c, mpn/x86/fat/fat_entry.asm,
+ mpn/x86/fat/gmp-mparam.h, mpn/x86/fat/gcd_1.c, mpn/x86/fat/mode1o.c:
+ New files.
+ * gmp-impl.h (struct cpuvec_t) [x86 fat]: New structure.
+ * longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB) [x86 fat]: Define.
+ * mpn/asm-defs.m4 (foreach): New macro.
+ * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): New define.
+ * mpn/x86/sqr_basecase.asm: New file, primarily as a fallback for fat
+ binaries.
+ * mpn/x86/p6/gmp-mparam.h, mpn/x86/p6/mmx/gmp-mparam.h: Add comments
+ about fat binary SQR_KARATSUBA_THRESHOLD for p6 and p6/mmx.
+
+ * configure.in: Add various supports for fat binaries, via fat_path,
+ fat_functions and fat_thresholds variables.
+ * acinclude.m4 (GMP_STRIP_PATH): Mung $fat_path too.
+ (GMP_FAT_SUFFIX, GMP_REMOVE_FROM_LIST): New macros.
+ * gmp-impl.h: Add various supports for fat binaries.
+ (DECL_add_n etc): New macros.
+ (mpn_mul_basecase etc): Define only if not already defined.
+ * mpn/asm-defs.m4 (m4_config_gmp_mparam): Mention fat binary.
+ (MPN): Use m4_unquote, for the benefit of fat binary name expansion.
+ * doc/configuration: Notes on fat binaries.
+ * gmp-impl.h (MUL_TOOM3_THRESHOLD_LIMIT): Define always.
+ (MUL_KARATSUBA_THRESHOLD_LIMIT): New define.
+ * mpn/generic/mul.c, mpn/generic/mul_n.c: Use these.
+ * tune/divrem1div.c, tune/divrem1inv.c, tune/mod_1_div.c,
+ tune/mod_1_inv.c: Define OPERATION_divrem_1 and OPERATION_mod_1, to
+ tell fat.h what's being done.
+
+ * config.guess (alpha-*-*): Update comments on what configfsf.guess
+ does and doesn't do for us.
+
+2003-07-31 Kevin Ryde <kevin@swox.se>
+
+ * config.guess: Remove $dummy.o files everywhere, in case vendor
+ compilers produce that even when not asked.
+
+ * demos/perl/GMP.xs (class_or_croak): Rename "class" parameter to
+ avoid C++ keyword.
+ (coerce_ulong, coerce_long): Move croaks to stop g++ 3.3 complaining
+ about uninitialized variables.
+
+ * demos/perl/INSTALL: Add notes on building with a DLL.
+
+ * longlong.h (count_trailing_zeros) [x86_64]: Ensure bsfq destination
+ is a 64-bit register. Diagnosed by Francois G. Dorais.
+
+2003-07-31 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h [ppc]: Remove nested test for vxworks.
+
+2003-07-24 Kevin Ryde <kevin@swox.se>
+
+ * gmpxx.h (struct __gmp_binary_multiplies): Use mpz_mul_si for
+ mpz*long and long*mpz.
+ * tests/cxx/t-ops.cc (check_mpz): Exercise mpz*long and mpz*ulong.
+
+ * cxx/ismpf.cc: Use std::locale decimal point when available. Expect
+ localeconv available always.
+ * tests/cxx/t-locale.cc: Enable check_input tests.
+
+ * gmpxx.h (struct __gmp_hypot_function): Use mpfr_hypot.
+ * tests/cxx/t-misc.cc (check_mpfr_hypot): New tests.
+
+ * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-ops.cc,
+ tests/cxx/t-prec.cc, tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc:
+ Include config.h for WANT_MPFR.
+
+ * tests/mpz/bit.c (check_single): Correction to a diagnostic print.
+
+2003-07-24 Niels Möller <nisse@lysator.liu.se>
+
+ * mpz/combit.c: New file.
+ * Makefile.am, mpz/Makefile.am: Add it.
+ * gmp-h.in (mpz_combit): Add prototype.
+ * tests/mpz/bit.c (check_single): Exercise mpz_combit.
+
+2003-07-16 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/get_d.c: Correction to infinity handling for large exp.
+
+2003-07-14 Kevin Ryde <kevin@swox.se>
+
+ * mpz/get_d.c, mpz/get_d_2exp.c, mpf/get_d.c, mpf/get_d_2exp.c: Use
+ mpn_get_d.
+
+ * mpn/generic/get_d.c: New file, based on mpz/get_d.c and insert-dbl.c.
+ * configure.in, mpn/Makefile.am: Add it.
+ * gmp-impl.h (mpn_get_d): Add prototype.
+
+ * tests/mpn/t-get_d.c: New file.
+ * tests/mpn/Makefile.am: Add it.
+
+ * tests/mpz/t-get_d_2exp.c (check_onebit, check_round): Test negatives.
+ (check_onebit): Add a few more bit sizes.
+
+ * tests/misc.c, tests/tests.h (tests_isinf): New function.
+
+2003-07-12 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (GMP_PROG_CXX_WORKS): Include $CPPFLAGS, same as
+ automake does in the actual build.
+
+ * acinclude.m4 (GMP_PROG_CXX_WORKS): In the namespace test, declare
+ namespace before trying to use. In std iostream test, provoke a
+ failure from Compaq C++ in pre-standard mode.
+
+2003-07-08 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Use separate compiles for various
+ known problems, and indicate to the user the reason for rejecting.
+ (GMP_PROG_CXX_WORKS): Ditto, and insist on being able to execute each
+ compiled program.
+
+2003-07-05 Kevin Ryde <kevin@swox.se>
+
+ * config.sub: Add comments to our alias transformations.
+
+ * configfsf.sub, configfsf.guess: Update to 2003-07-04.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS, GMP_PROG_CC_WORKS_LONGLONG): Show
+ failing program in config.log, per other autoconf tests.
+
+ * configure.in (i786-*-*): Recognise as pentium4, per configfsf.sub.
+
+2003-06-28 Kevin Ryde <kevin@swox.se>
+
+ * mpz/get_d_2exp.c, mpf/get_d_2exp.c: Avoid res==1.0 when floats round
+ upwards.
+
+ * tests/mpz/t-get_d_2exp.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+ * tests/mpf/t-get_d_2exp.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+ * tests/x86call.asm, test/tests.h (x86_fldcw, x86_fstcw): New
+ functions.
+ * tests/misc.c, tests/tests.h (tests_hardware_getround,
+ tests_hardware_setround): New functions.
+
+2003-06-25 Kevin Ryde <kevin@swox.se>
+
+ * mpn/sparc64/dive_1.c: New file.
+
+ * mpn/sparc64/sparc64.h: New file.
+ * mpn/sparc64/mode1o.c: Remove things now in sparc64.h.
+
+ * mpfr/*: Update to mpfr cvs 2003-06-25.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): In last change provoking gnupro
+ gcc, don't use ANSI style function definition.
+
+2003-06-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/pa32/hppa1_1/udiv.asm: Remove .proc, .entry, .exit and .procend,
+ handled by PROLOGUE and EPILOGUE. Comment out .callinfo, per other
+ asm files.
+
+ * gmpxx.h (mpz_class __gmp_binary_divides, __gmp_binary_modulus): Fix
+ long/mpz and long%mpz for dividend==LONG_MIN divisor==-LONG_MIN.
+ (mpz_class __gmp_binary_modulus): Fix mpz%long for negative dividend.
+ * tests/cxx/t-ops.cc (check_mpz): Add test cases for these, merging
+ operator/ and operator% sections for clarity.
+
+2003-06-21 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-06-21.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Add code by Torbjorn provoking an
+ ICE from gcc 2.9-gnupro-99r1 under -O2 -mcpu=ev6.
+ * configure.in (alpha*-*-* gcc_cflags_cpu): Fallback on -mcpu=ev56 for
+ this compiler.
+
+ * gmpxx.h (get_d): Remove comments about long double, double is
+ correct for get_d, a future long double form would be get_ld.
+
+2003-06-19 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-06-19.
+
+ * mpn/generic/dive_1.c: Share src[0] fetch among all cases. No need
+ for separate final umul_ppmm in even case, make it part of the loop.
+
+ * mpz/get_d_2exp.c, mpq/set_si.c, mpq/set_ui.c: Nailify.
+
+ * mpf/iset_si.c: Rewrite using mpf/set_si.c code, in particular this
+ nailifies it.
+ * tests/mpf/t-set_si.c: Nailify tests.
+
+ * mpf/iset_ui.c: Nailify, as per mpf/set_ui.c
+ * tests/mpf/t-set_ui.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+2003-06-15 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-06-15.
+
+ * mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT.
+
+2003-06-12 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (--enable-assert): Emit WANT_ASSERT to config.m4.
+ * mpn/powerpc32/powerpc-defs.m4, mpn/x86/x86-defs.m4 (ASSERT): Check
+ WANT_ASSERT is defined.
+
+ * mpn/sparc32/v9/udiv.asm: Amend heading, this file is for sparc v9.
+
+ * tests/cxx/Makefile.am (TESTS_ENVIRONMENT): In libtool openbsd hack,
+ discard error messages from cp, for the benefit of --disable-shared or
+ systems not using names libgmp.so.*.
+
+ * tests/devel/try.c (try_one): When overlapping, copy source data
+ after filling dst. Previously probably used only DEADVAL in
+ overlapping cases.
+
+2003-06-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/random2.c: Rewrite. Ignore sign of exp parameter.
+
+2003-06-10 Kevin Ryde <kevin@swox.se>
+
+ * mpn/sparc64/mode1o.c: New file.
+
+2003-06-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/lshift.asm: Add more cycle counts.
+ * mpn/powerpc32/rshift.asm: Add more cycle counts.
+
+ * mpn/ia64/addmul_1.asm: Reformat comments for 80 columns.
+
+ * gmp-impl.h (udiv_qrnnd_preinv1): New name for udiv_qrnnd_preinv.
+ (udiv_qrnnd_preinv2): New name for udiv_qrnnd_preinv2norm.
+ (udiv_qrnnd_preinv): New #define, making udiv_qrnnd_preinv2
+ the default.
+ * tune/speed.c: Corresponding changes.
+ * tune/speed.h: Likewise.
+ * tune/common.c: Likewise.
+
+ * mpf/get_str.c: Simplify `off' computation.
+
+ * longlong.h: Tabify.
+
+2003-06-09 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (ABI and ISA): FreeBSD has sparc64 too, just say "BSD" to
+ cover all flavours.
+ * configure.in: Ditto in some comments.
+
+ * mpfr/*: Update to mpfr cvs 2003-06-09.
+
+ * tests/cxx/Makefile.am (LDADD): Add -L$(top_builddir)/$(LIBS), for
+ the benefit of gcc 3.2 on itanium2-hp-hpux11.22.
+
+ * tune/many.pl (mul_2): Add speed routine settings.
+ (MAKEFILE): Close when done, for the benefit of development hackery.
+
+2003-06-08 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-06-08.
+
+ * mpn/x86/x86-defs.m4 (femms): Remove fallback to emms.
+ (cmovCC, psadbw): Remove simulated versions.
+ (cmov_available_p, psadbw_available_p): Remove.
+ This trickery was only ever for development purposes on machines
+ without those instructions. Removing it simplifies gmp and in
+ particular avoids complications for fat binary builds. Development
+ can be done with a wrapper around "as" if really needed.
+
+ * mpn/x86/divrem_1.asm: Don't use loop_or_decljnz, now K6 has its own
+ mpn/x86/k6/divrem_1.asm. Amend K6 comments now moved to there.
+ * mpn/x86/x86-defs.m4 (loop_or_decljnz): Remove, no longer used.
+
+ * mpn/x86/k6/divrem_1.asm: New file, derived from mpn/x86/divrem_1.asm.
+
+ * mpn/x86/k6/pre_mod_1.asm: Remove comments now in mpn/x86/mod_1.asm.
+
+ * mpn/x86/mod_1.asm: Put mpn_mod_1c after mpn_mod_1 for better branch
+ prediction. Put done_zero at end for less wastage in alignment. Use
+ decl+jnz unconditionally since in fact it's ok on k6. Amend comments.
+
+2003-06-07 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mode1o.c: Fix ASSERTs on return value.
+
+ * gmp.texi (Build Options): Add viac3 and viac32 cpu types.
+ (ABI and ISA): Note on sparcv9 ABI=32 vs ABI=64 speed. More indexing.
+
+ * configfsf.guess, configfsf.sub: Update to 2003-06-06.
+ * config.guess: Remove $RANDOM hack supporting netbsd 1.4, not needed
+ by new configfsf.guess.
+
+2003-06-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/submul_1.asm: Add branch over .align block.
+
+2003-06-05 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (add_ssaaaa) [pa64]: Output zero operand as register 0.
+ Allow more immediate operands.
+ (sub_ddmmss) [pa64]: Likewise.
+ (add_ssaaaa) [pa32]: Likewise.
+ (sub_ddmmss) [pa32]: Likewise.
+
+ * mpn/pa64: Change ".level 2.0W" to ".level 2.0w" to please
+ picky GNU assembler.
+
+2003-06-05 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Integer Special Functions): In mpz_array_init, fix type
+ shown for integer_array and give an example use.
+
+2003-06-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on
+ alpha.
+
+2003-06-03 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/README: Add 7 c/l mmx mul_1, tweak wordings.
+
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Use octal char constants in test
+ program, hex is not supported by K&R.
+
+2003-06-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips64/divrem_1.asm: New file.
+
+2003-06-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/lshift.asm: Reformat code.
+ * mpn/powerpc32/rshift.asm: Reformat code.
+
+2003-05-30 Kevin Ryde <kevin@swox.se>
+
+ * tests/misc.c (tests_start): Set stdout and stderr to unbuffered, to
+ avoid any chance of losing output on segv etc.
+
+2003-05-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE.
+ Remove redundant variable prec.
+
+2003-05-26 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/convert.c: Test bases up to 62.
+
+ * tests/mpf/t-conv.c: Test bases up to 62.
+
+ * demos/pexpr.c: Don't iterate to get accurate timing.
+
+ * mpf/set_str.c (mpn_pow_1_highpart): Cleanup.
+
+ * mp_dv_tab.c: Fix typo.
+
+ * mpf/get_str.c: Rewrite (now sub-quadratic).
+
+2003-05-22 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpn/t-divrem_1.c: New file.
+ * tests/mpn/Makefile.am: Add it.
+
+2003-05-22 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Recognize viac3* processors.
+
+2003-05-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/addmul_2.asm: New file.
+
+2003-05-19 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Recognize alphaev7* as alphaev67.
+
+ * config.guess: Recognize viac3* processors.
+ * configure.in: Set up path for viac3* processors.
+ * acinclude.m4 (X86_PATTERN): Include viac3* processors.
+
+2003-05-19 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_pstat_getprocessor): New function.
+ (freq_all): Use it.
+ * configure.in (AC_CHECK_HEADERS): Add sys/pstat.h.
+ (AC_CHECK_FUNCS): Add pstat_getprocessor.
+
+2003-05-15 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_fft.c (mpn_mul_fft_decompose): Remove "inline",
+ since the code is a bit too big. gcc doesn't actually inline when
+ alloca (TMP_ALLOC) is used anyway.
+
+2003-05-13 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Notes for Particular Systems): Libtool directory is .libs
+ not _libs for mingw dll. Reported by Andreas Fabri.
+
+2003-05-07 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Add code to generate sse2/xmm code
+ from gcc -march=pentium4, to check the assembler supports that.
+ (GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): New macros.
+ * configure.in (pentium4-*-*): Use them to see if gcc -march=pentium4
+ (with sse2) is ok.
+
+2003-05-06 Kevin Ryde <kevin@swox.se>
+
+ * mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1.
+
+ * tune/freq.c (<sys/sysinfo.h>): Include only when needed for
+ getsysinfo(), to avoid a problem with this file on AIX 5.1.
+
+2003-05-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/set_str.c: Do not ignore supposedly superfluous digits (in part
+ reverting last change).
+
+2003-05-03 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi: Use @code for files in @cindex entries, it looks nicer
+ than @file.
+
+ * Makefile.am: Note gmp 4.1.1 and 4.1.2 version info.
+
+ * configure.in, acinclude.m4 (GMP_CRAY_OPTIONS): New macro for Cray
+ system setups, letting AC_REQUIRE do its job instead of a hard coded
+ AC_PROG_EGREP.
+
+ * config.guess: Amend fake RANDOM to avoid ". configfsf.guess" which
+ segfaults on Debian "ash" 0.4.16.
+
+2003-05-01 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_CHECK_FUNCS): Add getsysinfo.
+ (AC_CHECK_HEADERS): Add sys/sysinfo.h and machine/hal_sysinfo.h.
+ * tune/freq.c (freq_getsysinfo): New function.
+ (freq_all): Use it.
+ (freq_sysctlbyname_i586_freq, freq_sysctlbyname_tsc_freq,
+ freq_sysctl_hw_cpufrequency, freq_sysctl_hw_model): Set
+ speed_cycletime before trying to print it, when verbose.
+
+2003-04-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/set_str.c: Major overhaul.
+ (mpn_pow_1_highpart): New helper function, meat extracted from
+ mpf_set_str.
+
+2003-04-24 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_GCC_ARM_UMODSI): Quote result string against m4.
+
+ * configure, ltmain.sh, aclocal.m4: Update to libtool 1.5.
+
+ * longlong.h (add_ssaaaa) [all]: Remove first "%" commutative in each,
+ since gcc only supports one per asm.
+
+ * printf/doprnt.c: Add M for mp_limb_t.
+ * tests/misc/t-printf.c: Exercise this.
+
+ * tests/mpz/t-cmp_d.c: Test infinities.
+ * tests/mpf/t-cmp_d.c: New file.
+ * tests/mpf/Makefile.am: Add it.
+
+ * mpz/cmp_d.c, mpz/cmpabs_d.c, mpf/cmp_d.c: NaN invalid, Inf bigger
+ than any value.
+ * mpz/set_d.c, mpq/set_d.c, mpf/set_d.c: Nan or Inf invalid.
+
+ * configure.in (AC_CHECK_FUNCS): Add raise.
+ * invalid.c: New file.
+ * Makefile.am: Add it.
+ * gmp-impl.h (__gmp_invalid_operation): Add prototype.
+ (DOUBLE_NAN_INF_ACTION): New macro.
+
+ * tests/trace.c, tests/tests.h (d_trace): New function.
+ * tests/misc.c, tests/tests.h (tests_infinity_d): New function.
+ * tests/misc.c (mpz_erandomb, mpz_errandomb): Use gmp_urandomm_ui.
+
+ * tune/tuneup.c, tune/common.c, tests/devel/try.c: Cast various
+ mp_size_t values for printf %ld in case mp_size_t==int. Use
+ gmp_printf for mp_limb_t values.
+
+ * gmp.texi (Nomenclature and Types): Add mp_exp_t, mp_size_t,
+ gmp_randstate_t. Note ulong for bit counts and size_t for byte
+ counts. Don't bother with @noindent.
+ (Debugging): New valgrind is getting MMX/SSE.
+ (Integer Comparisons): mpz_cmp_d and mpz_cmpabs_d on NaNs and Infs.
+ (Float Comparison): mpf_cmp_d behaviour on NaNs and Infs.
+ (Low-level Functions): Note with mpn_hamdist what hamming distance is.
+ (Formatted Output Strings): Add type M.
+ (Internals): Remove remarks on ulong bits and size_t bytes. Move int
+ field remarks to ...
+ (Integer Internals, Float Internals): ... here.
+
+2003-04-19 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions.
+
+ * mpn/x86/p6/mul_basecase.asm: New file.
+
+2003-04-18 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (m68060-*-*): Fallback to gcc -m68000 when -m68060 not
+ available, and don't use mpn/m68k/mc68020 asm routines. (Avoids 32x32
+ mul and 64/32 div which trap to the kernel on 68060. Advice by
+ Richard Zidlicky.)
+ * mpn/m68k/README: Update notes on directory usage.
+
+ * tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Add a hack to let the
+ test programs run with a shared libgmpxx on openbsd 3.2.
+
+ * gmp.texi (Language Bindings): Add Guile.
+
+2003-04-12 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (cygwin*, mingw*, pw32*, os2*): Add
+ -Wl,--export-all-symbols to GMP_LDFLAGS, no longer the default in
+ latest mingw and libtool.
+
+ * acinclude.m4 (GMP_ASM_COFF_TYPE): New macro.
+ * configure.in (x86s): Use it.
+ * mpn/x86/x86-defs.m4 (COFF_TYPE): New macro.
+ (PROLOGUE_cpu): Use it, for the benefit of mingw DLLs.
+
+ * gmp-impl.h (mpn_copyi, mpn_copyd): Add __GMP_DECLSPEC.
+
+ * gmp.texi (Known Build Problems): Remove windows test program .exe
+ repeated built, fixed by new libtool. Remove MacOS C++ shared library
+ creation, fixed by new libtool.
+ (Notes for Package Builds, Known Build Problems): Remove DESTDIR notes
+ on libgmpxx, fixed in new libtool.
+
+2003-04-10 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Match turbosparc.
+ * config.guess: Recognize turbosparc (just for *bsd for now).
+
+2003-04-09 Kevin Ryde <kevin@swox.se>
+
+ * mpf/mul_ui.c [nails]: Call mpf_mul to handle v > GMP_NUMB_MAX.
+
+ * tests/mpz/t-mul.c (main): Don't try FFT sizes when FFT disabled via
+ MP_SIZE_T_MAX, eg. for nails.
+
+ * tests/cxx/t-ternary.cc: Split up tests to help compile speed and
+ memory usage.
+
+ * tests/devel/try.c: Print seed under -R, add -E to reseed, use ulong
+ for seed not uint.
+
+ * gmp.texi: Add @: after various abbreviations, more index entries.
+ (leftarrow): New macro, for non-tex.
+ (Random State Initialization): Remove commented gmp_randinit_lc, not
+ going to be implemented.
+ (Random Number Algorithms): New section.
+ (References): Add Matsumoto and Nishimura on Mersenne Twister, add
+ Bertot, Magaud and Zimmermann on GMP Square Root.
+
+2003-04-06 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-gcd_ui.c: New file.
+ * tests/mpz/Makefile.am: Add it.
+
+ * mpz/gcd_ui.c: Correction to return value on longlong limb systems,
+ limb might not fit a ulong.
+
+2003-04-04 Kevin Ryde <kevin@swox.se>
+
+ * configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
+ 2003-04-02.
+
+2003-04-02 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (*-*-cygwin*): No longer force lt_cv_sys_max_cmd_len,
+ libtool has addressed this now.
+ (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): Remove this, libtool _LT_AC_LOCK
+ no longer needs it.
+
+ * acinclude.m4 (GMP_PROG_AR): Also set ac_cv_prog_AR and
+ ac_cv_prog_ac_ct_AR when adding flags to AR, so they're not lost by
+ libtool's call to AC_CHECK_TOOL.
+
+2003-04-01 Kevin Ryde <kevin@swox.se>
+
+ * configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
+ 2003-03-31.
+
+ * configure.in (AC_PROG_F77): Add a dummy AC_PROVIDE to stop libtool
+ running F77 probes.
+
+ * randlc2x.c (gmp_rand_lc_struct): Add comments about what exactly is
+ in each field.
+ (randseed_lc): Rename seedp to seedz to avoid confusion with seedp in
+ the lc function. Suggested by Pedro Gimeno.
+ (gmp_randinit_lc_2exp): Use __GMP_ALLOCATE_FUNC_TYPE. No need for
+ "+1" in mpz_init2 of _mp_seed. Don't bother with mpz_init2 for _mp_a.
+
+2003-03-29 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (m68k-*-*): Use -O2, no longer need to fallback to -O.
+ * acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): Remove macro.
+
+ * configure.in (AC_CHECK_TYPES): Add notes on why tested.
+
+ * gmp.texi (GMPrefu, GMPpxrefu, GMPreftopu, GMPpxreftopu): New macros,
+ use them for all external references to get URLs into HTML output.
+ (Random State Initialization): Add gmp_randinit_set.
+ (Random State Miscellaneous): New section.
+
+2003-03-29 Kevin Ryde <kevin@swox.se>
+
+ * randbui.c, randmui.c: New files.
+ * Makefile.am: Add them.
+ * gmp-h.in (gmp_urandomb_ui, gmp_urandomm_ui): Add prototypes.
+ * tests/rand/t-urbui.c, tests/rand/t-urmui.c: New files.
+ * tests/rand/Makefile.am: Add them.
+
+ * gmp-impl.h (gmp_randstate_srcptr): New typedef.
+ (gmp_randfnptr_t): Add randiset_fn.
+ * randiset.c: New file.
+ * Makefile.am: Add it.
+ * gmp-h.in (gmp_randinit_set): Add prototype.
+ * randlc2x.c, randmt.c: Add gmp_randinit_set support.
+ * tests/rand/t-iset.c: New file.
+ * tests/rand/Makefile.am: Add it.
+
+ * tests/misc.c, tests/tests.h (call_rand_algs): New function.
+
+2003-03-27 Kevin Ryde <kevin@swox.se>
+
+ * mpz/bin_uiui.c: Use plain "*" for kacc products rather than
+ umul_ppmm since high not needed, except for an ASSERT now amended.
+
+2003-03-26 Kevin Ryde <kevin@swox.se>
+
+ * demos/expr/exprfr.c (cbrt, cmpabs, exp2, gamma, nextabove,
+ nextbelow, nexttoward): New functions.
+ * demos/expr/t-expr.c: Exercise these.
+
+ * mpfr/*: Update to mpfr cvs 2003-03-26.
+
+ * gmp-impl.h (MPZ_REALLOC): Use UNLIKELY, to expect no realloc.
+
+ * tune/time.c (cycles_works_p): Scope variables down to relevant part
+ to avoid warnings about unused.
+
+ * configfsf.guess, configfsf.sub: Update to 2003-02-22.
+ * config.guess: Fake a $RANDOM variable when running configfsf.guess,
+ to workaround a problem on m68k NetBSD 1.4.1.
+
+ * mpz/fac_ui.c: Remove unused variable "z1".
+
+ * tune/freq.c (freq_irix_hinv): Allow "Processor 0" line from IRIX 6.5.
+
+2003-03-24 Torbjorn Granlund <tege@swox.com>
+
+ * randlc2x.c (randget_lc): Remove write-only variable rn.
+ * mpf/eq.c: Remove write-only variable usign.
+ * gen-psqr.c (main): Remove write-only variable numb_bits.
+
+2003-03-17 Torbjorn Granlund <tege@swox.com>
+
+ * Makefile.am (libgmp_la_SOURCES): Add mp_dv_tab.c.
+ (libmp_la_SOURCES): Add mp_dv_tab.c.
+
+ * mpn/alpha/invert_limb.asm: Add a few comments.
+
+ * mp_dv_tab.c: New file, defining __gmp_digit_value_tab.
+
+ * mpz/set_str.c: Get rid of function digit_value_in_base and use table
+ __gmp_digit_value_tab instead.
+ * mpz/inp_str.c: Likewise.
+ * mpf/set_str.c: Likewise.
+ * mpbsd/min.c: Likewise.
+ * mpbsd/xtom.c: Likewise.
+
+ * mpz/set_str.c: Allow bases <= 62. Return error for invalid bases.
+ * mpz/inp_str.c: Likewise.
+ * mpf/set_str.c: Likewise.
+ * mpz/out_str.c: Likewise.
+ * mpz/get_str.c: Likewise.
+ * mpf/get_str.c: Likewise.
+
+ * mpz/inp_str.c: Restructure to allocate more string space just
+ before needed.
+ * mpbsd/min.c: Likewise.
+
+ * longlong.h (__udiv_qrnnd_c): Remove redundant casts.
+ (32-bit sparc): Test HAVE_HOST_CPU_supersparc in addition to various
+ sparc_v8 spellings.
+
+2003-03-17 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-03-17.
+
+2003-03-15 Kevin Ryde <kevin@swox.se>
+
+ * Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC
+ sources, instead of a libdummy.la.
+
+2003-03-16 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Recognize supersparc and microsparc for *BSD systems.
+ Generalize some superscalar recognition patterns.
+
+2003-03-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/udiv.asm: New file.
+
+2003-03-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64: Table cycle counts. Update some comments.
+
+ * mpn/powerpc64/divrem_1.asm: New file.
+
+2003-03-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul.c (mpn_mul): Don't blindly expect
+ MUL_KARATSUBA_THRESHOLD to be a constant.
+
+2003-03-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul.c (mpn_mul): New operand splitting code for
+ avoiding cache misses when un >> MUL_KARATSUBA_THRESHOLD > vn.
+ (MUL_BASECASE_MAX_UN): New #define, default to 500 for now.
+
+2003-03-07 Kevin Ryde <kevin@swox.se>
+
+ * Makefile.am: Put gmp.h and mp.h under $(exec_prefix)/include.
+ * gmp.texi (Build Options): Add notes on this.
+ Reported by Vincent Lefèvre.
+
+2003-03-06 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (alpha*-*-* gcc): Add asm option before testing -mcpu,
+ for the benefit of gcc 2.9-gnupro-99r1 on alphaev68-dec-osf5.1 which
+ doesn't otherwise put the assembler in the right mode for -mcpu=ev6.
+
+2003-03-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/powerpc-defs.m4: Set up renaming for v registers.
+
+ * mpz/powm.c (redc): Instead of repeated mpn_incr_u invocations,
+ accumulate carries and add at the end.
+ (mpz_powm): Trim tp allocation, now as redc doesn't need carry guard.
+
+2003-02-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/copyd.asm: Correct header comment.
+
+ * mpn/arm/addmul_1.asm: Correct cycle counts.
+ * mpn/arm/submul_1.asm: Likewise.
+
+2003-02-20 Kevin Ryde <kevin@swox.se>
+
+ * demos/factorize.c (factor_using_pollard_rho): Test k>0 to avoid
+ infinite loop if k=0 and gcd!=1 reveals a factor. Reported by John
+ Pongsajapan.
+
+ * gmp.texi, fdl.texi: Update to FDL version 1.2.
+
+2003-02-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/arm/mul_1.asm: Fix typo introduced in last change.
+
+2003-02-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/gmp-mparam.h: Retune.
+
+ * mpn/sparc64/copyi.asm: Add some header comments.
+ * mpn/sparc64/copyd.asm: Likewise.
+
+ * mpn/arm/mul_1.asm: Put vl operand last for umull/umlal.
+ Add some header comments.
+ * mpn/arm/addmul_1.asm: Rewrite.
+ * mpn/arm/submul_1.asm: Rewrite.
+ * mpn/arm/gmp-mparam.h: Retune.
+
+2003-02-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/arm/copyi.asm: New file.
+ * mpn/arm/copyd.asm: New file.
+
+2003-02-16 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data
+ byte seen on an arm system.
+
+2003-02-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/arm/gmp-mparam.h: Retune.
+
+2003-02-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/750/com_n.asm: Add more cycle counts.
+
+2003-02-13 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_PREREQ): Bump to 2.57.
+
+ * configure.in, acinclude.m4 (GMP_GCC_WA_OLDAS): New macro, applying
+ -Wa,-oldas only when necessary.
+
+ * configure.in (powerpc*-*-*): Don't use -Wa,-mppc with gcc, it
+ overrides options recent gcc adds for -mcpu, making generated code
+ fail to assemble.
+
+ * tune/tuneup.c (mpn_fft_table): Remove definition, it's in mul_fft.c.
+
+2003-02-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/gmp-mparam.h: Retune.
+ * mpn/x86/k7/gmp-mparam.h: Retune.
+ * mpn/x86/k6/gmp-mparam.h: Retune.
+ * mpn/x86/p6/gmp-mparam.h: Retune.
+ * mpn/x86/p6/mmx/gmp-mparam.h: Retune.
+
+ * tests/mpz/t-mul.c (main): Rewrite FFT testing code.
+
+2003-02-10 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Recognize "power2" systems.
+
+ * mpn/powerpc64/gmp-mparam.h: Fix indentation.
+ * mpn/power/gmp-mparam.h: Retune.
+ * mpn/alpha/ev6/nails/gmp-mparam.h: Retune.
+ * mpn/sparc64/gmp-mparam.h: Retune.
+ * mpn/pa64/gmp-mparam.h: Retune.
+ * mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
+ * mpn/sparc32/v8/gmp-mparam.h: Retune.
+ * mpn/mips64/gmp-mparam.h: Retune.
+ * mpn/alpha/ev6/gmp-mparam.h: Retune.
+ * mpn/powerpc32/gmp-mparam.h: Retune.
+ * mpn/powerpc32/750/gmp-mparam.h: Retune.
+ * mpn/alpha/ev5/gmp-mparam.h: Retune.
+ * mpn/m68k/gmp-mparam.h: Retune.
+ * mpn/cray/gmp-mparam.h: Set GET_STR_PRECOMPUTE_THRESHOLD.
+
+ * configure.in: Undo this, problem doesn't happen any more:
+ (mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.
+
+2003-02-03 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens
+ around macro parameters. Reported by Jason Moxham.
+
+2003-02-01 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Low-level Functions): No overlap permitted by mpn_mul_n.
+ Reported by Jason Moxham.
+ (Formatted Input Strings): Correction to strtoul cross reference
+ formatting.
+ (BSD Compatible Functions): Add index entry for MINT.
+
+2003-01-29 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (mpn_mul_fft): Now returns int.
+
+2003-01-29 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/mul_fft.c: Major rewrite.
+
+2003-01-25 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (powerpc*-*-*): Remove $dummy.core file when mfpvr
+ fails on NetBSD.
+ (trap): Remove $dummy.core on abnormal termination too.
+
+ * mpfr/*: Update to mpfr cvs 2003-01-25.
+
+2003-01-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/README: Update cycle counts to match current code.
+
+2003-01-18 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-01-18.
+
+2003-01-17 Torbjorn Granlund <tege@swox.com>
+
+ * gmp.texi: Canonicalize URLs.
+
+2003-01-15 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Notes for Particular Systems): Add hardware floating point
+ precision mode.
+
+ * mpfr/*, configure, aclocal.m4, config.in: Update to mpfr cvs
+ 2003-01-15.
+
+2003-01-11 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to mpfr cvs 2003-01-11.
+
+2003-01-09 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/get_str.c: Update to mpfr cvs 2003-01-09.
+
+ * doc/configuration: Various updates.
+
+2003-01-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray.
+ * mpn/alpha/copyd.asm: Likewise.
+
+2003-01-05 Kevin Ryde <kevin@swox.se>
+
+ * demos/expr/t-expr.c (check_r): Tolerate mpfr_set_str new return
+ value.
+
+ * configure, aclocal.m4 (*-*-osf4*, *-*-osf5*): Regenerate with
+ libtool patch to avoid bash printf option problem when building shared
+ libraries with cxx.
+
+ * configure.in (pentium4-*-*): Use "-march=pentium4 -mno-sse2" since
+ sse2 causes buggy code from gcc 3.2.1 and is only supported on new
+ enough kernels.
+
+ * acinclude.m4 (GMP_PROG_NM): Add some notes about failures, per
+ report by Krzysztof Kozminski.
+
+ * gmp-h.in (mpz_mdivmod_ui, mpz_mmod_ui): Add parens around "r".
+
+ * gmp-h.in (__GMP_CAST): New macro, clean to g++ -Wold-style-cast.
+ (GMP_NUMB_MASK, mpz_cmp_si, mpq_cmp_si, mpz_odd_p, mpn_divexact_by3,
+ mpn_divmod): Use it. Reported by Krzysztof Kozminski.
+ (mpz_odd_p): No need for the outermost cast to "int".
+ * tests/cxx/t-cast.cc: New file.
+ * tests/cxx/Makefile.am: Add it.
+
+2003-01-04 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/set_str.c: Update to mpfr cvs 2003-01-04.
+
+ * demos/expr/exprfra.c (e_mpfr_number): Tolerate recent mpfr_set_str
+ returning count of characters accepted.
+
+2003-01-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/copyi.asm: New file.
+ * mpn/alpha/copyd.asm: New file.
+
+2003-01-03 Kevin Ryde <kevin@swox.se>
+
+ * demos/expr/t-expr.c: Use __gmpfr on some mpfr internals that have
+ changed.
+
+ * mpfr/*, aclocal.m4, config.in, configure: Update to mpfr cvs
+ 2003-01-03.
+
+ * gmp.texi (Introduction to GMP): Mention release announcements
+ mailing list, and put home page and ftp before mailing lists.
+
+2002-12-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify.
+
+2002-12-28 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (M68K_PATTERN): New macro.
+ (GMP_GCC_M68K_OPTIMIZE): Use it to avoid m6811 and friends.
+ * configure.in: Ditto.
+
+ * tests/mpz/t-import.c, tests/mpz/t-export.c: Use '\xHH' to avoid
+ warnings about char overflows.
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Ditto.
+
+2002-12-28 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * randmt.c (randseed_mt, default_state): Fix off-by-one bug on padding.
+ (randseed_mt): Add ASSERT checking result of mpz_export.
+
+2002-12-24 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Integer Import and Export): Clarify treatment of signs,
+ reported by Kent Boortz.
+
+ * randmt.c: Use gmp_uint_least32_t.
+ (randseed_mt): Add nails to mpz_export in case mt[i] more than 32 bits.
+
+ * gmp-impl.h (gmp_uint_least32_t): New typedef, replacing GMP_UINT32.
+ * configure.in (AC_CHECK_TYPES): Add uint_least32_t.
+ (AC_CHECK_SIZEOF): Add unsigned short.
+
+2002-12-22 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (ULONG_PARITY) [generic C]: Mask result to a single bit.
+ (ULONG_PARITY) [_CRAY, __ia64]: New macros.
+ * tests/t-parity.c: New test.
+ * tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * longlong.h (count_trailing_zeros) [ia64]: New macro.
+
+ * tests/t-count_zeros.c (check_various): Remove unused variable "n".
+
+ * mpn/x86/README: Revise notes on PIC, PLT and GOT.
+
+ * demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add "mt"
+ to GMP::Rand::randstate.
+
+2002-12-22 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * randmt.c (randseed_mt): Fix bug that might cause the generator to
+ return all zeros with certain seeds. Fix WARM_UP==0 case.
+ (gmp_randinit_mt): Initialize to a known state by default.
+ (randget_mt): Remove check for uninitialized buffer: no longer needed.
+ (recalc_buffer): Use ?: instead of two-element array.
+
+ * tests/rand/t-mt.c: New test.
+ * tests/rand/Makefile.am (check_PROGRAMS): Add it.
+
+2002-12-21 Kevin Ryde <kevin@swox.se>
+
+ * cxx/osdoprnti.cc: Use <cstdarg> and <cstring> rather than <stdarg.h>
+ and <string.h>. No need for <stdio.h>.
+
+ * demos/expr/expr.c, demos/expr/exprfa.c, demos/expr/exprfra.c,
+ demos/expr/exprza.c: Use mp_get_memory_functions, not
+ __gmp_allocate_func etc.
+ * demos/expr/t-expr.c: Don't use gmp-impl.h.
+ (numberof): New macro.
+
+ * gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
+ __gmp_free_func): Move declarations to gmp-impl.h
+
+ * mp_get_fns.c: New file.
+ * Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
+ * gmp-h.in (mp_get_memory_functions): Add prototype.
+ * gmp.texi (Custom Allocation): Add mp_get_memory_functions, refer to
+ "free" not "deallocate" function.
+ * gmpxx.h (struct __gmp_alloc_cstring): Use mp_get_memory_functions,
+ not __gmp_free_func.
+
+ * gmp-impl.h [__cplusplus]: Add <cstring> for strlen.
+ (gmp_allocated_string): Hold length in a field.
+ * cxx/osdoprnti.cc, cxx/osmpf.cc: Use this.
+
+2002-12-20 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-perfsqr.c (check_sqrt): Print more variables upon
+ failure.
+
+ * mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero.
+
+2002-12-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space
+ for pp temporary to allow for worst case overestimate of root.
+ Add some asserts.
+
+ * tests/mpz/t-root.c: Generalize and speed up.
+
+2002-12-19 Kevin Ryde <kevin@swox.se>
+
+ * tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt test.
+
+ * gmp-h.in: Don't bother trying to support Compaq C++ in pre-standard
+ I/O mode.
+ * gmp.texi (Notes for Particular Systems): Compaq C++ must be used in
+ "standard" iostream mode.
+
+2002-12-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/mod_34lsub1.asm: Add code for big-endian, using existing
+ little-endian code only if HAVE_LIMB_LITTLE_ENDIAN is defined.
+
+2002-12-18 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New
+ defines in config.m4.
+
+2002-12-17 Torbjorn Granlund <tege@swox.com>
+
+ * printf/printffuns.c (gmp_fprintf_reps): Make it actually work
+ for padding > 256.
+
+2002-12-17 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c: Add <string.h> for memcmp.
+
+ * mpz/pprime_p.c: Use MPN_MOD_OR_MODEXACT_1_ODD.
+
+ * gmp.texi (Formatted Output Strings): %a and %A are C99 not glibc.
+ (Formatted Input Strings): Type "l" is for double too. Hex floats are
+ accepted for mpf_t.
+ (Formatted Input Functions): Describe tightened parse rule, clarify
+ return value a bit.
+
+ * scanf/doscan.c: Add hex floats, tighten matching to follow C99, for
+ instance "0x" is no longer acceptable to "%Zi".
+ Rename "invalid" label to avoid "invalid" variable, SunOS cc doesn't
+ like them the same.
+ * tests/misc/t-scanf.c: Update tests.
+ * tests/misc/t-locale.c (check_input): Don't let "0x" appear from fake
+ decimal point.
+
+ * config.guess (sparc*-*-*): Look at BSD sysctl hw.model to recognise
+ ultrasparcs.
+
+ * mpfr/tests/dummy.c: New file.
+ * mpfr/tests/Makefile.am (libfrtests_a_SOURCES): Add it.
+
+2002-12-14 Kevin Ryde <kevin@swox.se>
+
+ * mpbsd/Makefile.am (nodist_libmpbsd_la_SOURCES): Move these mpz
+ sources to libmpbsd_la_SOURCES directly, automake 1.7.2 now gets the
+ ansi2knr setups right for sources in other directories.
+
+ * mpfr/tests/Makefile.am: Add libfrtests.a in preparation for new mpfr.
+
+2002-12-13 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/Makefile.am (mpfr_TEXINFOS, AM_MAKEINFOFLAGS): Allow for
+ fdl.texi in recent mpfr.
+
+ * configure.in (AC_PROG_EGREP): Ensure this is run outside the Cray
+ conditional AC_EGREP_CPP.
+
+ * configure.in (alpha*-*-*): Use gcc -Wa,-oldas if it works, to avoid
+ problems with new compaq "as" on OSF 5.1.
+
+ * mpn/Makefile.am (EXTRA_DIST): Remove Makeasm.am, automake 1.7.2 does
+ it automatically.
+
+ * acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Remove this hack, fixed by
+ autoconf 2.57.
+
+ * configure.in (AC_CONFIG_LIBOBJ_DIR): Set to mpfr, for the benefit of
+ new mpfr using LIBOBJ.
+
+ * configure.in: (AM_INIT_AUTOMAKE): Use "gnu no-dependencies
+ $(top_builddir)/ansi2knr".
+ * */Makefile.am (AUTOMAKE_OPTIONS): Remove, now in configure.in.
+
+ * configure, config.in, INSTALL.autoconf: Update to autoconf 2.57.
+ * */Makefile.in, configure, aclocal.m4, install-sh, mkinstalldirs:
+ Update to automake 1.7.2.
+
+ * gmp.texi (Build Options): Add hppa64 to cpu types.
+ (ABI and ISA): Add gcc to hppa 2.0.
+ (Debugging): Add maximum debuggability config options.
+ (Language Bindings): Add Arithmos, reported by Johan Vervloet.
+ (Formatted Output Strings): 128 bits is about 40 digits, ll is only
+ for long long not long double.
+ (Formatted Input Strings): ll is only for long long not long double.
+
+ * mpz/divis.c, mpz/divis_ui.c, mpz/cong.c, mpz/cong_ui.c: Allow d=0,
+ under the rule n==c mod d iff exists q satisfying n=c+q*d.
+ * gmp.texi (Integer Division): Describe this.
+ Suggested by Jason Moxham.
+
+2002-12-13 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * randlc2x.c (lc): Remove check for seedn < an, which is now
+ superfluous. Add ASSERT to ensure it's correct. Add ASSERT to check
+ precondition of __GMPN_ADD.
+ (gmp_randinit_lc_2exp): Avoid reallocation by allocating one extra bit
+ for both seed and a. Simplify seedn < p->_cn case.
+
+ * tests/rand/t-lc2exp.c (check_bigs): Test negative seeds.
+
+2002-12-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'.
+ Add empty `.callinfo'.
+
+2002-12-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a
+ label.
+
+2002-12-11 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (hppa*-*-*): Don't use gcc -mpa-risc-2-0 in ABI=1.0.
+
+ * mpn/pa32/pa-defs.m4: New file, arranging for .proc/.procend.
+ * configure.in (hppa*-*-*): Use it.
+
+ * printf/doprnt.c: Comments on "ll" versus "L".
+
+ * tests/mpz/t-div_2exp.c: Reduce tests, especially the random ones.
+
+2002-12-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/get_d.c (limb2dbl): New macro for conversion to `double'.
+ Define it to something non-trivial for 64-bit hppa.
+ * mpq/get_d.c: Likewise.
+ * mpf/get_d.c: Likewise.
+
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Unroll to save one c/l.
+
+2002-12-09 Kevin Ryde <kevin@swox.se>
+
+ * tune/Makefile.am: Don't use -static under --disable-static, it tends
+ not to work.
+ * configure.in (ENABLE_STATIC): New AM_CONDITIONAL.
+
+ * gmp-h.in: Use <iostream> instead of <iosfwd> with Compaq C++ in
+ pre-standard I/O mode.
+
+ * tests/mpz/t-jac.c, tests/mpz/t-scan.c: Reduce tests.
+
+2002-12-08 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (*-*-ultrix*): Remove forcible --disable-shared,
+ believe this was a generic problem with libtool, now gone.
+
+2002-12-08 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation.
+
+2002-12-07 Torbjorn Granlund <tege@swox.com>
+
+ * tests/cxx/t-misc.cc (check_mpq): Use 0/1 for canonical 0 in
+ mpq_cmp_ui calls.
+
+ * configure.in (hppa2.0*-*-*): Pass +O2 instead of +O3 to work around
+ compiler bug with mpfr/tests/tdiv.
+
+2002-12-07 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (hppa2.0*-*-* ABI=2.0n): Make -mpa-risc-2-0 optional.
+ New hppa-level-2.0 test using GMP_HPPA_LEVEL_20 to detect assembler
+ support for 2.0n.
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Add code that provokes an error
+ from gcc -mpa-risc-2-0 if the assembler doesn't know 2.0 instructions.
+ (GMP_HPPA_LEVEL_20): New macro.
+
+2002-12-07 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * gmp-impl.h (gmp_randfnptr_t.randseed_fn) Return void.
+ (LIMBS_PER_ULONG, MPN_SET_UI): New macros.
+ (MPZ_FAKE_UI): Rename couple of parameters.
+
+ * randlc2x.c (gmp_rand_lc_struct): _mp_c and _mp_c_limbs replaced
+ with mpn style _cp and _cn. All callers changed.
+ (randseed_lc): Fix limbs(seed) > bits_to_limbs(m2exp) case.
+ Remove return value.
+ (gmp_randinit_lc_2exp): Attempt to avoid redundant reallocation.
+
+ * randmt.c (mangle_seed): New function by Kevin.
+ (randseed_mt): Use it instead of mpz_powm, for performance. Remove
+ return value. Remove commented out code (an inferior alternative to
+ mpz_export).
+
+ * randsdui.c (gmp_randseed_ui): Use MPZ_FAKE_UI.
+
+ * tests/rand/t-lc2exp.c (check_bigm, check_bigs): New tests.
+ * tests/rand/t-urndmm.c: Add L to constants in calls, for K&R.
+
+2002-12-06 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Remove -g.
+ (hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0.
+
+2002-12-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend.
+ * mpn/pa64/udiv.asm: Likewise.
+
+2002-12-05 Kevin Ryde <kevin@swox.se>
+
+ * mpn/pa64/sub_n.asm: Remove space in "sub, db" which gas objects to.
+ * mpn/pa64/*.asm, tune/hppa2.asm: Use ".level 2.0" for 2.0n, since gas
+ doesn't like ".level 2.0N".
+
+ * configure.in (hppa*-*-*): Group path and flags choices, for clarity.
+ (hppa1.0*-*-*): Use gcc -mpa-risc-1-0 when available.
+ (hppa2.0*-*-*): Ditto -mpa-risc-2-0.
+ (*-*-hpux*): Exclude ABI=2.0w for hpux[1-9] and hpux10, rather than
+ the converse of allowing it for hpux1[1-9]; ie. list the bad systems
+ rather than try to guess the good systems.
+ (hppa2.0*-*-*) [ABI=2.0n ABI=2.0w]: Add gcc to likely compilers.
+ (hppa*-*-*) [gcc]: Test sizeof(long) to differentiate a 32-bit or
+ 64-bit build of the compiler.
+ (hppa64-*-*): Add this as equivalent to hppa2.0-*-*.
+ * acinclude.m4 (GMP_C_TEST_SIZEOF): New macro.
+
+ * tests/tests.h (ostringstream::str): Must null-terminate
+ ostrstream::str() for the string constructor.
+
+2002-12-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa32/hppa1_1/udiv.asm: Don't wrap symbol to INT64 in L() stuff.
+
+ * longlong.h (mpn_udiv_qrnnd_r based udiv_qrnnd): Fix typo.
+
+ * mpn/powerpc32/powerpc-defs.m4: Define float registers with `f'
+ prefix.
+
+2002-12-04 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Floating-point Functions): Note the mantissa is binary and
+ decimal fractions cannot be represented exactly. Suggested by Serge
+ Winitzki.
+ (Known Build Problems): Note libtool stripping options when linking.
+ Reported by Vincent Lefevre.
+
+ * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Don't make an empty result a
+ failure, that's a valid result.
+ (GMP_ASM_GLOBL): Establish this from the host cpu type.
+ (IA64_PATTERN): New macro.
+ (GMP_PROG_EXEEXT_FOR_BUILD, GMP_C_FOR_BUILD_ANSI,
+ GMP_CHECK_LIBM_FOR_BUILD): Remove temporary files created.
+ * configure.in: Use IA64_PATTERN.
+
+2002-12-03 Torbjorn Granlund <tege@swox.com>
+
+ * tune/hppa.asm: Use config.m4.
+ * tune/hppa2.asm: Likewise.
+ * tune/hppa2w.asm: Likewise.
+
+ * mpn/pa64: Use LDEF.
+
+2002-12-03 Kevin Ryde <kevin@swox.se>
+
+ * INSTALL: Use return rather than exit in the example programs.
+ Suggested by Richard Dawe.
+
+ * gmp.texi (Build Options): Move non-unix notes to ...
+ (Notes for Particular Systems): ... here. Mention MS Interix,
+ reported by Paul Leyland.
+ (C++ Interface Random Numbers): Add gmp_randinit_mt to examples.
+
+ * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Must test empty suffix first,
+ for the benefit of hppa hp-ux.
+ (GMP_ASM_UNDERSCORE): Grep the output of "nm" instead of trying to
+ construct an asm file, and in case of failure fallback on no
+ underscore and a warning.
+
+ * longlong.h (count_leading_zeros, count_trailing_zeros) [ev67, ev68]:
+ Restrict __asm__ ctlz and cttz to __GNUC__.
+
+ * gen-psqr.c (HAVE_CONST, const): New macros.
+
+ * tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt.
+
+2002-12-02 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h: Split popc_limb again, combined version gives too many
+ compiler warnings.
+
+2002-12-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c (div1): Disable unused function.
+
+ * mpz/root.c: Don't include stdlib.h or longlong.h.
+ * mpz/rootrem.c: Likewise.
+
+ * extract-dbl.c: abort => ASSERT_ALWAYS.
+ * mpz/set_d.c: Likewise.
+ * mpn/generic/tdiv_qr.c: Likewise.
+
+ * gen-psqr.c (f_cmp_fraction, f_cmp_divisor): Change parameter to
+ `const void *', to match qsort spec.
+
+2002-12-01 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Integer Division): Fix a couple of @math's for tex.
+ Use @dots in more places.
+
+ * tests/cxx/t-locale.cc: Test non std::locale systems too.
+ * tests/cxx/clocale.c: New file, reinstating what was localeconv.c,
+ and subverting nl_langinfo too.
+ * tests/cxx/Makefile.am (t_locale_SOURCES): Add it.
+
+ * tests/tests.h (ostringstream, istringstream): Provide fakes of these
+ if <sstream> not available.
+ * tests/cxx/t-locale.cc, tests/cxx/t-ostream.cc: Remove <sstream>.
+ * configure.in (AC_CHECK_HEADERS) [C++]: Add <sstream>.
+
+2002-11-30 Torbjorn Granlund <tege@swox.com>
+
+ * printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up
+ compiler warnings.
+
+ * mpn/ia64/invert_limb.asm: Add `many' hints to return insns.
+
+ * mpn/ia64/divrem_1.asm: Allocate more local registers; put b0 in
+ one of them.
+
+ * mpn/ia64/popcount.asm: Properly restore register ar.lc.
+
+ * longlong.h (umul_ppmm) [ia64]: Form both product parts in asm.
+
+ * mpz/bin_uiui.c: Cast umul_ppmm operands.
+
+ * scanf/doscan.c (gmpscan): Remove unused label store_get_digits.
+
+ * gmp-impl.h: #undef MIN and MAX before #defining.
+
+ * mpn/ia64/copyi.asm: Add `;' after bundle declarators.
+ * mpn/ia64/copyd.asm: Likewise.
+
+ * mpn/ia64/divrem_1.asm: Add some syntax to placid the HP-UX assembler.
+
+2002-11-30 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_CHECK_HEADERS): Add nl_types.h.
+ * tests/misc/t-locale.c: Use this, for nl_item on netbsd 1.4.1.
+
+2002-11-29 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/addmul_1.c: Provide prototype for mpn_print.
+ (OPS): Account for function overhead.
+ * tests/devel/{submul_1.c,mul_1.c,add_n.c,sub_n.c}: Likewise.
+
+ * mpn/ia64/addmul_1.asm: Rewrite.
+
+2002-11-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/sqr_diagonal.asm: Don't allocate any registers.
+
+ * mpn/ia64/submul_1.asm: Adapt to Itanium 2.
+
+ * mpn/ia64/mul_1.asm: Fix typo in HAVE_ABI_32 code.
+
+ * mpn/ia64/add_n.asm: Rewrite.
+ * mpn/ia64/sub_n.asm: Rewrite.
+
+2002-11-28 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Use this rather
+ than libdummy.
+ * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Use this for
+ x86call.asm and x86check.c rather than libdummy.
+
+2002-11-27 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-mul.c: Implement reference Karatsuba multiplication.
+ Rewrite testing scheme to run fewer really huge tests.
+
+2002-11-26 Torbjorn Granlund <tege@swox.com>
+
+ * tests: Decrease repetition count for some of the slowest tests.
+
+ * mpn/ia64/divrem_1.asm: New file.
+
+2002-11-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpfr/tests/tdiv.c: Decrease number of performed tests.
+
+2002-11-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_1.asm: Rewrite.
+
+2002-11-23 Kevin Ryde <kevin@swox.se>
+
+ * mpn/ia64/README: Add some references.
+
+ * gmp.texi (Build Options): Add itanium and itanium2, mention DocBook
+ and XML from makeinfo, add texinfo top level cross reference.
+ (Integer Division): Try to clarify 2exp functions a bit.
+ (C++ Interface Floats): Giving bad string to constructor is undefined.
+ (C++ Interface Integers, C++ Interface Rationals): Ditto, and show
+ default base in prototype, not the description.
+
+ * config.sub, config.guess, configure.in (itanium, itanium2): New cpu
+ types.
+
+ * tests/misc/t-printf.c, tests/misc/t-scanf.c (check_misc): Suppress
+ %zd test on glibc prior to 2.1, it's not supported.
+
+2002-11-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/copyi.asm: Optimize for Itanium 2.
+ * mpn/ia64/copyd.asm: Likewise.
+
+2002-11-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/sqr_diagonal.asm: New file.
+
+ * mpn/ia64/submul_1.asm: Handle vl == 0 specially.
+
+2002-11-20 Kevin Ryde <kevin@swox.se>
+
+ * tests/cxx/t-locale.cc: Test with locales imbued into stream, use
+ <sstream>, eliminated some C-isms. istream tests disabled, not yet
+ locale-ized.
+ * tests/cxx/Makefile.am (t_locale_SOURCES): Remove localeconv.c.
+ * tests/cxx/localeconv.c: Remove file.
+
+ * configure.in (AC_CHECK_TYPES) [C++]: Add std::locale.
+ * printf/doprntf.c: Add decimal point parameter, remove localeconv use.
+ * gmp-impl.h (__gmp_doprnt_mpf): Update prototype, bump symbol to
+ __gmp_doprnt_mpf2 to protect old libgmpxx.
+ * cxx/osmpf.cc: Use this with ostream locale decimal_point facet.
+ * printf/doprnt.c: Ditto, with GMP_DECIMAL_POINT.
+
+ * gmp-h.in: More comments on __declspec for windows DLLs.
+
+ * mpf/set_str.c, scanf/doscan.c: Cast through "unsigned char" for
+ decimal point string, same as input chars.
+
+ * configure.in (AC_CHECK_HEADERS): Add langinfo.h.
+ (AC_CHECK_FUNCS): Add nl_langinfo.
+ * gmp-impl.h (GMP_DECIMAL_POINT): New macro.
+ * mpf/out_str.c, mpf/set_str.c, scanf/doscan.c: Use it, and don't
+ bother with special code for non-locale systems.
+ * tests/misc/t-locale.c: Subvert nl_langinfo too.
+
+ * configure.in, acinclude.m4 (GMP_ASM_X86_GOT_UNDERSCORE): New macro.
+ * mpn/x86/x86-defs.m4 (_GLOBAL_OFFSET_TABLE_): New macro, inserting
+ extra underscore for OpenBSD.
+ * mpn/x86/README (_GLOBAL_OFFSET_TABLE_): Update notes.
+ Reported by Christian Weisgerber.
+
+ * tests/cxx/t-rand.cc (check_randinit): New function, collecting up
+ constructor tests.
+
+ * tests/cxx/t-ostream.cc: Use <sstream> instead of <strstream>, use
+ compare instead of strcmp.
+
+ * gmpxx.h (__gmp_randinit_lc_2exp_size_t): Return type is int.
+
+2002-11-18 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.c (r_string): Use CNST_LIMB with <N>bits, spotted by
+ Torbjorn.
+
+2002-11-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_1.asm: Remove redundant cmp from prologue code.
+ Streamline prologue.
+ * mpn/ia64/addmul_1.asm: Likewise.
+ * mpn/ia64/submul_1.asm: New file.
+ * mpn/ia64/submul_1.c: Remove.
+
+2002-11-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/popham.c: New file, using new faster algorithm.
+ * mpn/generic/popcount.c: Remove.
+ * mpn/generic/hamdist.c: Remove.
+
+ * mpn/ia64/addmul_1.asm: Don't clobber callee-saves register f16.
+ * mpn/ia64/mul_1.asm: Likewise.
+
+ * mpn/ia64/addmul_1.asm: Add pred.rel declarations. Resolve RAW
+ hazards for condition code registers, duplicating code as needed. Add
+ prediction to all branches.
+ * mpn/ia64/mul_1.asm: Likewise.
+ * mpn/ia64/add_n.asm: Likewise.
+ * mpn/ia64/sub_n.asm: Likewise.
+ * mpn/ia64/copyi.asm: Likewise.
+ * mpn/ia64/copyd.asm: Likewise.
+
+ * mpn/generic/random2.c: Add a cast to silence some compilers.
+
+2002-11-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed
+ values).
+
+2002-11-16 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, gmp.texi: Remove powerpc64 ABI=32L, doesn't work and
+ is unlikely to ever do so.
+ * configure.in: Allow ABI=32 for powerpc64.
+ Reported by David Edelsohn.
+
+2002-11-14 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add addmul_2.c
+ addmul_3.c addmul_4.c addmul_5.c addmul_6.c addmul_7.c addmul_8.c.
+
+ * gmp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
+ Use __dllexport__ and __dllimport__ to keep out of application
+ namespace.
+
+2002-11-14 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h (__gmp_randinit_default_t, __gmp_randinit_lc_2exp_t,
+ __gmp_randinit_lc_2exp_size_t): Use extern "C" { typedef ... }, for
+ the benefit of g++ prior to 3.2.
+
+2002-11-12 Kevin Ryde <kevin@swox.se>
+
+ * gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to
+ use extern "C" on C function pointer arguments.
+
+2002-11-09 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, Makefile.am, printf/Makefile.am,
+ printf/repl-vsnprintf.c: Handle vsnprintf replacement with C
+ conditionals.
+
+ * acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Workaround troubles recent
+ HP cc +O3 causes for AC_CHECK_FUNCS.
+
+ * gmp.texi (Notes for Particular Systems): Add Sparc app regs.
+ (Debugging): Note gcc -fstack options to detect overflow.
+ (Formatted Output Strings, Formatted Input Strings): Format strings
+ are not multibyte.
+
+2002-11-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/tdiv_qr.c: Remove a bogus assert.
+
+2002-11-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls.
+
+2002-11-04 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_C_INLINE): Don't define "inline" for C++.
+
+ * demos/expr/expr-impl.h (stdarg.h): Test __DECC same as gmp.h.
+
+ * mpbsd/mtox.c, printf/obprintf.c, printf/obvprintf.c,
+ scanf/vsscanf.c, demos/expr/expr.c, demos/expr/exprf.c,
+ demos/expr/exprfa.c, demos/expr/exprfr.c, demos/expr/exprq.c,
+ demos/expr/exprz.c, demos/expr/exprza.c: Add <string.h> for strlen and
+ memcpy.
+
+2002-11-02 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h: Test __x86_64__ not __x86_64. Reported by Andreas
+ Jaeger.
+
+ * mpz/import.c, mpz/export.c: Use char* subtract from NULL to get
+ pointer alignment, for the benefit of Cray vector systems.
+
+ * cxx/ismpf.cc: Use <clocale>.
+ * tests/cxx/t-locale.cc: No need to conditionalize <clocale>.
+
+ * scanf/doscan.c: Don't use isascii, rely on C99 ctype.h.
+
+ * gmp.texi (Build Options): Describe CC_FOR_BUILD, cross reference
+ texinfo manual.
+ (ABI and ISA): Add powerpc620 and powerpc630 to powerpc64, add NetBSD
+ and OpenBSD sparc64.
+ (Notes for Package Builds): Cross reference libtool manual.
+ (Notes for Particular Systems): Add OpenBSD to non-MMX versions of gas.
+ (Known Build Problems): Add MacOS X C++ shared libraries.
+
+2002-10-31 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
+ tests/devel/try.c, tests/tests.h, tests/refmpn.c (mpn_addmul_5,
+ mpn_addmul_6, mpn_addmul_7, mpn_addmul_8): Add testing and measuring.
+ * configure.in (config.in): Add #undefs of HAVE_NATIVE_mpn_addmul_5,
+ HAVE_NATIVE_mpn_addmul_6, HAVE_NATIVE_mpn_addmul_7,
+ HAVE_NATIVE_mpn_addmul_8.
+ (gmp_mpn_functions_optional): Add addmul_5 addmul_6 addmul_7 addmul_8.
+
+ * tests/devel/try.c (ASSERT_CARRY): Remove, now in gmp-impl.h
+ (try_one): Do dest setups after sources, for benefit of
+ dst0_from_src1.
+
+2002-11-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/tdiv_qr.c: Avoid quadratic behaviour for
+ sub-division when numerator is more than twice the size of the
+ denominator. Simplify loop logic for the same case. Clean up a
+ few comments.
+
+2002-10-29 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (*-cray-unicos*): Pass -hnofastmd again.
+
+2002-10-25 Torbjorn Granlund <tege@swox.com>
+
+ * tests/tadd.c: Disable test of denorms.
+
+2002-10-23 Linus Nordberg <linus@swox.se>
+
+ * gmp.texi (Introduction to GMP): Update section about mailing
+ lists.
+
+2002-10-23 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (__GMP_ATTRIBUTE_PURE): Suppress this when
+ __GMP_NO_ATTRIBUTE_CONST_PURE is defined.
+ * gmp-impl.h (ATTRIBUTE_CONST): Ditto.
+ * tune/common.c: Use __GMP_NO_ATTRIBUTE_CONST_PURE.
+
+ * tune/speed.h, tune/many.pl: Remove ATTRIBUTEs from prototypes.
+ * tune/speed.h: Remove various "dummy" variables attempting to keep
+ "pure" calls live, no longer necessary. They weren't sufficient for
+ recent MacOS cc anyway.
+
+2002-10-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/addmul_1.c: Handle overlap as in mul_1.c.
+ * mpn/cray/ieee/submul_1.c: Likewise.
+
+2002-10-19 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (sparcv9 etc -*-*bsd*): Add support for NetBSD and
+ OpenBSD sparc64. Reported by Christian Weisgerber.
+ (AC_CHECK_HEADERS): Add sys/param.h for sys/sysctl.h on *BSD.
+
+ * demos/calc/calc.y: Change ={ to {, needed for bison 1.50.
+
+ * longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]:
+ Should be UDItype.
+
+ * mpz/set_str.c, mpf/set_str.c, mpbsd/xtom.c, scanf/sscanffuns.c: Cast
+ chars through "unsigned char" to zero extend, required by C99 ctype.h.
+
+2002-10-18 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-root.c: Test also mpz_rootrem.
+
+ * mpn/generic/rootrem.c: Avoid overflow problem when n is huge.
+
+ * mpz/root.c: Avoid overflow problems in allocation computation; also
+ simplify it. Misc cleanups.
+
+ * mpz/rootrem.c: New file.
+ * Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.
+
+2002-10-17 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (popc_limb): Combine variants.
+
+2002-10-14 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_CHECK_HEADERS): Add sys/time.h for sys/resource.h
+ test, needed by SunOS, and next autoconf will insist headers actually
+ compile.
+
+2002-10-08 Kevin Ryde <kevin@swox.se>
+
+ * tune/time.c (speed_time_init): Allow for Cray times() apparently
+ being a cycle counter.
+
+ * dumbmp.c (mpz_get_str): Fix buf size allocation.
+
+ * tests/trace.c, tests/tests.h (mp_limb_trace): New function.
+
+ * tune/speed-ext.c (SPEED_EXTRA_PROTOS): Use __GMP_PROTO.
+ * tests/devel/try.c (malloc_region): Add a cast for SunOS cc.
+
+ * configure.in (AC_CHECK_FUNCS): Add strerror.
+ (AC_CHECK_DECLS): Add sys_errlist, sys_nerr.
+ * tune/time.c, tests/devel/try.c: Use them.
+
+2002-10-05 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_CHECK_HEADERS): Test float.h, not in SunOS cc.
+ * printf/repl-vsnprintf.c: Use this.
+
+ * configure.in (*sparc*-*-*): Collect up various options for clarity,
+ use gcc -mcpu=supersparc and ultrasparc3, use cc -xchip, don't use
+ -xtarget=native, use cc configs with acc, merge SunOS bundled cc and
+ SunPRO cc configs.
+
+ * gmp-impl.h (gmp_randfnptr_t): Use __GMP_PROTO.
+ (MPZ_REALLOC): Cast _mpz_realloc return value to mp_ptr, for the
+ benefit of SunOS cc which requires pointers of the same type on the
+ two legs of a ?:.
+
+ * dumbmp.c (mpz_realloc): Add a cast to avoid a warning from SunOS cc.
+
+ * acinclude.m4: Allow for i960 b.out default cc output.
+
+ * gmp.texi (Random State Initialization): Add gmp_randinit_mt.
+ (Perfect Square Algorithm): Describe new mpn_mod_34lsub1 use.
+ (Factorial Algorithm): Describe Jason's new code.
+ (Binomial Coefficients Algorithm): Ideas about improvements
+ moved to doc/projects.html.
+ (Contributors): Add Jason Moxham and Pedro Gimeno.
+
+2002-10-03 Kevin Ryde <kevin@swox.se>
+
+ * gen-psqr.c: New file.
+ * Makefile.am, mpn/Makefile.am: Use it to generate mpn/perfsqr.h.
+ * mpn/generic/perfsqr.c: Use generated data, put mod 256 data into
+ limbs to save space, use mpn_mod_34lsub1 when good.
+ * tests/mpn/t-perfsqr.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add it.
+ * tests/mpz/t-perfsqr.c (check_modulo): New test.
+ (check_sqrt): New function holding current tests.
+
+ * configure.in (AC_INIT): Modernize to package name and version here
+ rather than AM_INIT_AUTOMAKE, add bug report email.
+ (AC_CONFIG_SRCDIR): New macro.
+
+ * gmp-impl.h (ROUND_UP_MULTIPLE): Fix for non-power-of-2 moduli (not
+ normal in current uses), clarify the comments a bit.
+
+2002-09-30 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makeasm.am (.s.lo): Add --tag=CC for the benefit of CCAS!=CC,
+ same as .S.lo and .asm.lo.
+
+ * Makefile.am (gen-fac_ui, gen-fib, gen-bases): Quote source files in
+ test -f stuff to avoid Sun make rewriting them.
+
+2002-09-28 Kevin Ryde <kevin@swox.se>
+
+ * tests/devel/try.c, tune/speed.c: Avoid strings longer than C99
+ guarantees.
+
+ * tests/refmpn.c, tests/tests.h (refmpn_zero_extend, refmpn_normalize,
+ refmpn_sqrtrem): New functions.
+ * tests/devel/try.c (TYPE_SQRTREM): Use refmpn_sqrtrem.
+ (compare): Correction to tr->dst_size subscripting.
+
+ * dumbmp.c: Add several new functions, allow for initial n<d in
+ mpz_tdiv_q (now in mpz_tdiv_qr actually).
+
+ * gen-bases.c (chars_per_limb): Get GMP_NUMB_BITS for base==2,
+ similarly other powers of 2, which this was in the past.
+ * tests/refmpn.c (refmpn_chars_per_limb): Ditto.
+ * tests/mpn/t-mp_bases.c: Test chars_per_limb for power-of-2 bases too.
+
+ * Makefile.am, mpz/Makefile.am: Setups for gen-fac_ui.c generating
+ mpz/fac_ui.h.
+
+2002-09-28 Jason Moxham <J.L.Moxham@maths.soton.ac.uk>
+
+ * dumbmp.c (mpz_pow_ui, mpz_addmul_ui, mpz_root): New functions.
+ * gen-fac_ui.c: New file.
+ * mpz/fac_ui.c: Rewrite.
+
+2002-09-26 Kevin Ryde <kevin@swox.se>
+
+ * tests/cxx/localeconv.c: New file, split from t-locale.cc.
+ * tests/cxx/t-locale.cc: Use it.
+ * tests/cxx/Makefile.am (t_locale_SOURCES): Add it.
+
+ * tests/cxx/Makefile.am: Updates for Gerardo's new test programs.
+
+2002-09-26 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h (__gmp_cmp_function): Bug fixes in double/mpq and
+ double/mpfr comparisons.
+
+ * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-constr.cc,
+ tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: Revise and add various
+ tests, including some for mpfr, some split from t-expr.cc.
+ * tests/cxx/t-locale.cc: Modernize include files.
+ * tests/cxx/t-ostream.cc: Modernize include files, use cout rather
+ than printf for diagnostics.
+ * tests/cxx/t-misc.cc, tests/cxx/t-rand.cc: New file, split from
+ t-allfuns.cc.
+ * tests/cxx/t-ops.cc: New file, some split from t-allfuns.cc.
+ * tests/cxx/t-prec.cc: New file.
+ * tests/cxx/t-allfuns.cc, tests/cxx/t-expr.cc: Remove files.
+
+2002-09-25 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (*-cray-unicos*): Remove -hscalar0, it causes too much
+ performance loss. Let's trust Cray to fix their compilers.
+
+2002-09-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/add_n.asm: Rewrite.
+ * mpn/powerpc32/sub_n.asm: Rewrite.
+
+2002-09-24 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * randlc2x.c: Prepare for nails by changing type of _mp_c to mpz_t,
+ make _mp_seed fixed-size, disallow SIZ(a)==0 to optimize comparisons
+ for mpn_mul.
+ * gmp-impl.h (MPZ_FAKE_UI): New macro.
+
+ * randmt.c: Some constants made long for K&R compliance; remove UL at
+ the end of other constants; use mp_size_t where appropriate; use
+ mpz_export to split the seed.
+
+ * gmp-impl.h: Remove type cast in RNG_FNPTR and RNG_STATE, to allow
+ them to be used as lvalues.
+ * randclr.c, randlc2x.c, randmt.c, randsd.c: All callers changed.
+
+ * mpz/urandomm.c: Replace mpn_cmp with MPN_CMP.
+
+ * tests/rand/gen.c: Get rid of gmp_errno.
+
+2002-09-24 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Custom Allocation): Keep allocate_function etc out of the
+ function index by using @deftypevr.
+ More index entries.
+
+2002-09-24 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h (mpfr_class constructors from strings): Precision was set
+ incorrectly, fixed.
+
+2002-09-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/urandomb.c: Don't crash for overlarge nbits argument.
+ Let nbits==0 mean to fill number with random bits.
+
+2002-09-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction.
+
+2002-09-20 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken
+ mpq/double functions.
+
+2002-09-18 Torbjorn Granlund <tege@swox.com>
+
+ * randmt.c (randget_mt): Fix typo.
+
+2002-09-18 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (_gmp_rand): Avoid evaluating "state" more than once, for
+ the benefit places calling it with RANDS.
+
+ * randmt.c (randseed_mt): Use mpz_init for mod and seed1, for safety.
+
+ * tune/tuneup.c (sqr_karatsuba_threshold): Initialize to
+ TUNE_SQR_KARATSUBA_MAX so mpn_sqr_n works for randmt initialization.
+
+ * gmp.texi (Integer Comparisons): Remove mention of non-existent
+ mpz_cmpabs_si, reported by Conrad Curry.
+
+ * tune/speed.c, tune/speed.h, tune/common.c: Add gmp_randseed,
+ gmp_randseed_ui and mpz_urandomb.
+
+2002-09-18 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * tests/rand/gen.c: Add mt, remove lc and bbs.
+
+ * Makefile.am (libgmp_la_SOURCES): Add randmt.c, remove randlc.c and
+ randraw.c.
+
+ * randmt.c: New file.
+ * gmp-h.in (gmp_randinit_mt): Add prototype.
+ * randdef.c: Use gmp_randinit_mt.
+
+ * gmp-impl.h (RNG_FNPTR, RNG_STATE): New macros.
+ (gmp_randfnptr_t): New structure.
+ (_gmp_rand): Now a macro not a function.
+ * gmp-h.in (__gmp_randata_lc): Remove, now internal to randlc2x.c.
+ (__gmp_randstate_struct): Revise comments on field usage.
+ * randsd.c, randclr.c: Use function pointer scheme.
+ * randsdui.c: Use gmp_randseed.
+ * randraw.c: Remove file.
+ * randlc2x.c: Collect up lc_2exp related code from randsd.c, randclr.c
+ and randraw.c, use function pointer scheme, integrate seed==0/a==0
+ into main case and fix case where bits(a) < m2exp.
+
+ * randlc.c: Remove file, never documented and never worked.
+ * gmp-h.in (gmp_randinit_lc): Remove prototype.
+
+2002-09-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/mod_34lsub1.asm: New file.
+
+2002-09-16 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, acinclude.m4 (GMP_C_RESTRICT): Remove this, not
+ currently used, and #define restrict upsets Microsoft C headers on
+ win64. Reported by David Librik.
+
+ * configure.in (x86): Add gcc 3.2 -march and -mcpu flags, remove some
+ unnecessary -march=i486 fallbacks.
+
+ * gmp.texi (Notes for Particular Systems): Note cl /MD is required for
+ Microsoft C and MINGW to cooperate on I/O. Explained by David Librik.
+ (Language Bindings): Add linbox.
+ * gmp.texi (Language Bindings):
+
+2002-09-12 Kevin Ryde <kevin@swox.se>
+
+ * mpz/aorsmul_i.c: Allow for w==x overlap with nails. Test
+ BITS_PER_ULONG > GMP_NUMB_BITS rather than GMP_NAIL_BITS != 0.
+ * tests/mpz/t-aorsmul.c: Test this.
+
+ * tune/common.c: mpn_mod_34lsub1 only exists for GMP_NUMB_BITS%4==0
+ * tune/speed.c: Add mpn_mod_34lsub1.
+
+2002-09-10 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * rand.c: Remove old disabled BBS code.
+ * mpf/urandomb.c: Use BITS_TO_LIMBS.
+
+2002-09-10 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Multiplication Algorithms): FFT is now enabled by default.
+
+2002-09-10 Pedro Gimeno <pggimeno@wanadoo.es>
+
+ * mpz/urandomm.c: Use mpn level functions, avoid an infinite loop if
+ _gmp_rand forever returns all "1" bits.
+ * tests/rand/t-urndmm.c: New file
+ * tests/rand/Makefile.am (check_PROGRAMS): Add it.
+
+ * gmp-impl.h (BITS_TO_LIMBS): New macro.
+ * mpz/urandomb.c: Use it, and use MPZ_REALLOC.
+
+2002-09-08 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_GCC_WA_MCPU): New macro.
+ * configure.in (alpha*-*-*): Use it to avoid -Wa,-mev67 if gas isn't
+ new enough to know ev67. Reported by David Bremner.
+
+2002-07-30 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h (__gmpz_value etc): Remove, use mpz_t etc instead.
+ (__gmp_expr): Reorganise specializations, use __gmp_expr<T,T> not
+ mpz_class etc.
+ (mpfr evals): Remove mode parameter, was always
+ __gmp_default_rounding_mode anyway.
+
+2002-09-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, mp-h.in: Use #ifdef for tests, for the benefit of
+ applications using gcc -Wundef.
+
+ * longlong.h: Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB for all alphas,
+ since mpn/alpha/cntlz.asm always goes into libgmp.so, even for ev67
+ and ev68 which don't need it. Reported by David Bremner.
+
+ * gmp.texi (Demonstration Programs): New section, expanding on what
+ was under "Build Options".
+ (Converting Floats): Don't need \ for _ in @var within @math.
+ Add and amend various index entries.
+
+ * demos/qcn.c: Add -p prime limit option.
+
+2002-08-30 Kevin Ryde <kevin@swox.se>
+
+ * mpz/pprime_p.c: Handle small negatives with isprime, in particular
+ must do so for n==-2.
+ * tests/mpz/t-pprime_p.c: New file.
+ * tests/mpz/Makefile.am: Add it.
+
+2002-08-26 Torbjorn Granlund <tege@swox.com>
+
+ * gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs,
+ reported by Paul Zimmermann.
+
+2002-08-26 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Echo the ABI being tried for the compilers.
+ (powerpc*-*-*): Use powerpc64/aix.m4 for ABI=aix64 too.
+ (AC_CHECK_FUNCS): Add strtol, for tests/rand/gen.c.
+
+2002-08-24 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (HAVE_HOST_CPU_, HAVE_HOST_CPU_FAMILY_, HAVE_NATIVE_):
+ Setup templates for these using AH_VERBATIM rather than acconfig.h,
+ preferred by latest autoconf. Prune lists to just things used.
+ * acconfig.h: Remove file.
+
+ * mpn/powerpc32/mode1o.asm: Forgot ASM_START.
+
+ * tune/time.c (have_cgt_id): Renamed from HAVE_CGT_ID so avoid
+ confusion with autoconf outputs, and turn it into a "const" variable.
+
+2002-08-23 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Choose powerpc32/aix.m4 or powerpc64/aix.m4 based on
+ ABI, not configuration triple.
+
+ * mpz/pprime_p.c: Partially undo last change--handle small and
+ negative numbers in the same test.
+
+2002-08-22 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (MUL_FFT_THRESHOLD, SQR_FFT_THRESHOLD): Note
+ mpn/generic/mul_fft.c is not nails-capable, and don't bother setting
+ other FFT data for nails.
+
+ * configfsf.guess: Update to 2002-08-19.
+ * configfsf.sub: Update to 2002-08-20.
+
+ * config.guess (powerpc*-*-*): Use a { } construct to suppress SIGILL
+ message on AIX.
+
+2002-08-20 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Add ia64 under cpu types.
+ (ABI and ISA): Describe IRIX 6 ABI=o32.
+ (Notes for Particular Systems): Remove -march=pentiumpro, now ok.
+ (Known Build Problems): Binutils 2.12 is ok for libgmp.a.
+ (Emacs): New section.
+ (Language Bindings): Update MLton URL, reported by Stephen Weeks.
+ (Prime Testing Algorithm): New section.
+ Don't put a blank line after @item in @table since it can make a page
+ break between the heading and the entry.
+ Misc tweaks elsewhere, in particular more index entries.
+
+ * mpz/millerrabin.c: Need x to be size+1 for change to urandomm.
+
+ * gmp-impl.h: Comments on the use of __GMP_DECLSPEC.
+
+ * tune/time.c (freq_measure_mftb_one): Use struct_timeval, for the
+ benefit of mingw.
+
+ * tests/refmpn.c, tests/tests.h (ref_addc_limb, ref_subc_limb):
+ Renamed from add and sub, following gmp-impl.h ADDC_LIMB and SUBC_LIMB.
+
+2002-08-17 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc32/mode1o.asm: New file.
+ * configure.in, acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): New macro.
+ * mpn/asm-defs.m4: Use it to help setting up PIC.
+
+ * configure.in (AC_PREREQ): Bump to 2.53.
+
+ * mpn/powerpc32/powerpc-defs.m4 (ASSERT): New macro.
+ (PROLOGUE_cpu): New macro, giving ALIGN(4) not 8.
+
+2002-08-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/m68k/lshift.asm: Fix typo in !scale_available_p code.
+ * mpn/m68k/rshift.asm: Likewise.
+
+2002-08-16 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (--enable-profiling=instrument): New option.
+ * gmp.texi (Profiling): Describe it.
+ * mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_instrument, ret_internal):
+ Add support.
+ (call_mcount): Share PIC setups with call_instrument.
+ * mpn/x86/*.asm: Use ret_internal.
+ * mpn/asm-defs.m4 (m4_unquote): New macro.
+ * tests/mpn/t-instrument.c: New file.
+ * tests/mpn/Makefile.am: Add it.
+
+ * mpn/alpha/umul.asm: Add ASM_END.
+
+2002-08-12 Kevin Ryde <kevin@swox.se>
+
+ * mpz/pprime_p.c: Fake up a local mpz_t to take abs(n), rather than
+ using mpz_init etc.
+
+ * mpz/millerrabin.c: Use mpz_urandomm for uniform selection of x,
+ reported by Jason Moxham. Exclude x==n-1, ie. -1 mod n. Use
+ gmp_randinit_default.
+
+ * mpn/alpha/umul.asm: Use "r" registers, for the benefit of Unicos.
+
+ * tests/devel/try.c: Add mpn_copyi and mpn_copyd.
+
+2002-08-09 Kevin Ryde <kevin@swox.se>
+
+ * Makefile.am: Remove configure.lineno from DISTCLEANFILES and gmp.tmp
+ from MOSTLYCLEANFILES, automake does these itself now.
+
+ * */Makefile.in, aclocal.m4, configure, install-sh, missing,
+ mkinstalldirs: Update to automake 1.6.3.
+
+ * mpn/ia64/README: Some notes on assembler syntax.
+
+ * mpn/ia64/add_n.asm, mpn/ia64/sub_n.asm: Add .body.
+ * mpn/ia64/add_n.asm, mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm,
+ mpn/ia64/sub_n.asm: Position .save ar.lc just before relevant
+ instruction.
+ * mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm: Add .save ar.pfs and pr.
+ * mpn/ia64/copyd.asm, mpn/ia64/copyi.asm: Correction to .body position.
+ * mpn/ia64/lorrshift.asm: Add .prologue stuff.
+
+ * configure.in (*-*-unicos*): Remove forcible --disable-shared,
+ libtool gets this right itself now.
+
+2002-08-07 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/mmx/hamdist.asm: New file, adapted from
+ mpn/x86/pentium/mmx/popham.asm.
+ * mpn/x86/pentium/mmx/popham.asm: Remove file, not faster than plain
+ mpn/x86/pentium/popcount.asm for the popcount.
+
+ * mpn/alpha/umul.asm: Use PROLOGUE/EPILOGUE, rename it mpn_umul_ppmm.
+ * configure.in (alpha*-*-*): Add umul to extra_functions.
+
+ * mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO.
+
+2002-08-05 Torbjorn Granlund <tege@swox.com>
+
+ * acconfig.h: Remove spurious undefs for mpn_divrem_newton and
+ mpn_divrem_classic.
+
+2002-08-05 Kevin Ryde <kevin@swox.se>
+
+ * tests/refmpn.c, tests/tests.h, tests/misc/t-printf.c,
+ tests/mpf/t-trunc.c, tests/mpn/t-mp_bases.c, tests/mpn/t-scan.c,
+ tests/mpq/t-cmp_ui.c, tests/mpz/bit.c, tests/mpz/t-aorsmul.c,
+ tests/mpz/t-powm_ui.c tests/mpz/t-root.c, tests/mpz/t-scan.c: More
+ care with long and mp_size_t parameters, for the benefit of K&R.
+
+ * demos/perl/GMP.pm, demos/perl/GMP.xs, demos/perl/GMP/Mpz.pm,
+ demos/perl/test.pl: Add mpz_import and mpz_export.
+ * demos/perl/GMP.pm: Remove "preliminary" warning.
+
+ * mpn/lisp/gmpasm-mode.el: Set add-log-current-defun-header-regexp to
+ pick up m4 defines etc.
+
+ * Makefile.am (libgmpxx_la_DEPENDENCIES): libgmp.la should be here,
+ not libgmpxx_la_LIBADD, for the benefit of "make -j2".
+
+ * mpn/ia64/*.asm [hpux ABI=32]: Extend 32-bit operands to 64-bits, not
+ optimal and might not be sufficient, but seems to work.
+
+2002-08-03 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Profiling): Use a table and expand for clarity.
+ (Integer Special Functions): New section for mpz_array_init,
+ _mpz_realloc, mpz_getlimbn and mpz_size, to discourage their use.
+
+ * configure.in (*-*-msdosdjgpp*): Remove forcible --disable-shared,
+ libtool gets this right itself now.
+
+2002-07-30 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc32/lshift.asm, mpn/powerpc32/rshift.asm: Lose final mr,
+ and make final stwu into an stw.
+
+ * gmp.texi (Known Build Problems): An easier workaround for DESTDIR,
+ using LD_LIBRARY_PATH.
+ (C++ Interface MPFR): Remove mpfrxx.h.
+
+ * mpfrxx.h: Remove file.
+ * Makefile.am: Remove mpfrxx.h.
+ * tests/cxx/Makefile.am: Add Gerardo's new test programs.
+
+2002-07-30 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h: Use mpz_addmul etc for ternary a+b*c etc. Reorganise some
+ macros for maintainability. Merge mpfrxx.h.
+ * tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: Various updates.
+ * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc,
+ tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: New files.
+
+2002-07-27 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (count_trailing_zeros) [ia64 __GNUC__]: Don't use
+ __builtin_ffs for now, doesn't seem to work.
+
+ * configure.in: Establish CONFIG_SHELL to avoid a problem with
+ AC_LIBTOOL_SYS_MAX_CMD_LEN on ia64-*-hpux*.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_GCD_FINDA): Don't let calls to
+ mpn_gcd_finda go dead.
+
+ * mpn/generic/tdiv_qr.c: Inline mpn_rshift and MPN_COPY of 2 limbs.
+
+2002-07-24 Kevin Ryde <kevin@swox.se>
+
+ * demos/primes.c: Use __GMP_PROTO and don't use signed, for the
+ benefit of K&R.
+
+ * demos/calc/calclex.l: Add <string.h> for strcmp.
+
+ * mpn/ia64/invert_limb.asm: Use .rodata which works on ia64-*-hpux*
+ and should be standard, rather than worrying about RODATA.
+
+ * gmp.texi (Function Classes): Add cross references.
+ (Integer Import and Export): Fix return value grouping.
+
+ * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add // for
+ ia64. Add notes on what the various styles are for.
+
+ * mpn/ia64/default.m4 (ASM_START): Define to empty, not dnl, so as not
+ to kill text on the same line.
+ (EPILOGUE_cpu): Force a newline after "#", so as not to suppress macro
+ expansion in the rest of the EPILOGUE line.
+
+2002-07-21 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.h: Fix some missing _PROTOs.
+
+ * Makefile.am (DISTCLEANFILES): Add configure.lineno.
+
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Define
+ HAVE_DOUBLE_IEEE_BIG_ENDIAN and HAVE_DOUBLE_IEEE_LITTLE_ENDIAN in
+ config.m4 too.
+ * mpn/ia64/invert_limb.asm: Add big-endian data.
+
+ * tests/mpz/t-jac.c (try_si_zi): Correction to "a" parameter type.
+
+2002-07-20 Kevin Ryde <kevin@swox.se>
+
+ * mpz/bin_ui.c, mpz/jacobi.c, mpz/pprime_p.c, mpn/generic/divis.c:
+ More care with long and mp_size_t parameters, for the benefit of K&R.
+
+ * gmp-impl.h (invert_limb): Use parens around macro arguments.
+ (mpn_invert_limb): Give prototype and define unconditionally.
+
+ * gmp-impl.h (CACHED_ABOVE_THRESHOLD, CACHED_BELOW_THRESHOLD): New
+ macros.
+ * mpn/generic/sb_divrem_mn.c: Use them to help gcc let preinv code go
+ dead when not wanted.
+
+2002-07-17 Kevin Ryde <kevin@swox.se>
+
+ * tests/refmpz.c (refmpz_hamdist): Ensure mp_size_t parameters are
+ that type, for the benefit of hpux ia64 bundled cc ABI=64.
+
+ * configure.in (ia64*-*-hpux*): Need +DD64 in cc_64_cppflags to get
+ the right headers for ansi2knr.
+
+ * acinclude.m4 (GMP_TRY_ASSEMBLE, GMP_ASM_UNDERSCORE): Use $CPPFLAGS
+ with $CCAS and when linking, as done by the makefiles.
+ (GMP_ASM_X86_MMX, GMP_ASM_X86_SSE2): Show $CPPFLAGS in diagnostics.
+
+ * gmp-impl.h (ieee_double_extract): Setup using HAVE_DOUBLE_IEEE_*.
+ (GMP_UINT32): New define, 32 bit type for ieee_double_extract.
+ * configure.in: Add AC_CHECK_SIZEOF unsigned.
+ * configure.in, acinclude.m4 (GMP_IMPL_H_IEEE_FLOATS): Remove.
+ (GMP_C_DOUBLE_FORMAT): Instead warn about unknown float here.
+
+ * configure.in, acinclude.m4 (GMP_C_SIZES): Remove.
+ * acinclude.m4 (GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB): Remove this
+ scheme, not required.
+ * configure.in (unsigned long, mp_limb_t): Run AC_CHECK_SIZEOF for
+ these unconditionally, check mp_limb_t against gmp-mparam.h values.
+ * gmp-impl.h (BYTES_PER_MP_LIMB, BITS_PER_MP_LIMB): Define based on
+ SIZEOF_MP_LIMB_T if not provided by gmp-mparam.h.
+ (BITS_PER_ULONG): Define here now.
+
+ * gmp.texi (ABI and ISA): Add HP-UX IA-64 choices.
+ (Random State Initialization): Typo in m2exp described for
+ gmp_randinit_lc_2exp_size.
+ (Formatted Output Functions): Clarify gmp_obstack_printf a bit.
+ (Formatted Input Strings): Typo in %n summary.
+
+ * mpz/inp_raw.c (NTOH_LIMB_FETCH): Use simple generic default, since
+ endianness detection is now cross-compile friendly.
+ * mpz/out_raw.c (HTON_LIMB_STORE): Ditto.
+
+ * mpz/fib_ui.c: Nailify.
+ * mpz/random.c: Nailify.
+
+ * mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent
+ float rounding gremlin on powerpc.
+
+2002-07-15 Kevin Ryde <kevin@swox.se>
+
+ * Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64
+ make doesn't like that.
+
+ * mpn/ia64/*.asm: Add .sptk to unconditional branches, add ";" after
+ .mib etc, for the benefit of hpux.
+
+ * configure.in (ia64*-*-*): Use ABI=64 on non-HPUX systems, for
+ consistency.
+
+ * gmp-impl.h (ieee_double_extract): Test __sparc__, used by gcc 3.1.
+ Reported by nix@esperi.demon.co.uk.
+ * mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto.
+
+2002-07-13 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc32/rshift.asm: Rewrite, transformed from lshift.asm.
+
+ * tune/tuneup.c (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD):
+ Always zero for native mpn_divexact_1, mpn_modexact_1_odd.
+
+ * gmp-h.in (__GMP_EXTERN_INLINE): Don't use this during configure,
+ ie. __GMP_WITHIN_CONFIGURE, to avoid needing dependent routines.
+ * acinclude.m4 (GMP_H_EXTERN_INLINE): Consequent changes.
+
+ * gmp-impl.h, mpn/asm-defs.m4 (mpn_addmul_2, mpn_addmul_3,
+ mpn_addmul_4): Add prototypes and defines.
+
+ * gmp.texi (Number Theoretic Functions): Clarify return value.
+ Reported by Peter Keller.
+
+2002-07-10 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, acinclude.m4 (GMP_PROG_LEX): Remove this in favour of
+ AM_PROG_LEX, now ok when lex is missing.
+
+ * longlong.h (count_leading_zeros) [pentiummmx]: Don't use __clz_tab
+ variant under LONGLONG_STANDALONE.
+ (count_trailing_zeros) [ia64 __GNUC__]: Use __builtin_ffs.
+
+ * gmp-impl.h (popc_limb): Add an ia64 asm version.
+ (DItype): Use HAVE_LONG_LONG to choose long long, avoiding _LONGLONG
+ which is in gcc but means something unrelated in MS Visual C 7.0.
+ Reported by David Librik.
+
+ * mpz/divexact.c: Add an ASSERT that den divides num.
+
+ * mpn/asm-defs.m4 (LDEF): New macro.
+ (INT32, INT64): Use it.
+ * mpn/pa32/*.asm: Use it.
+ * mpn/pa32/README: Update notes on labels.
+
+ * tests/refmpn.c, tests/tests.h, tests/t-bswap.c (ref_bswap_limb):
+ Renamed from refmpn_bswap_limb.
+ * tests/t-bswap.c: Add tests_start/tests_end for randomization.
+
+ * tests/refmpn.c, tests/tests.h (ref_popc_limb): New function.
+ * tests/t-popc.c: New file.
+ * tests/Makefile.am: Add it.
+
+ * mpn/ia64/invert_limb.asm: Use RODATA since ".section .rodata" is not
+ accepted by ia64-*-hpux*.
+
+ * acinclude.m4 (GMP_ASM_BYTE): New macro.
+ (GMP_ASM_ALIGN_LOG, GMP_ASM_W32): Use it.
+ (GMP_ASM_LABEL_SUFFIX): Use test compiles, not $host.
+ (GMP_ASM_GLOBL): Ditto, and add .global for ia64-*-hpux*.
+ (GMP_ASM_GLOBL_ATTR): Use GMP_ASM_GLOBL result, not $host.
+ (GMP_ASM_LSYM_PREFIX): Allow any "a-z" nm symbol code, add ".text" to
+ test program, required by ia64-*-hpux*.
+ (GMP_ASM_LABEL_SUFFIX): Make LABEL_SUFFIX just the value, not a "$1:",
+ the former being how it's currently being used in fact.
+
+ * configure.in, acinclude.m4 (GMP_PROG_CC_WORKS_LONGLONG): New macro.
+ * configure.in (ia64-*-hpux*): Add 32 and 64 bit ABI modes.
+
+2002-07-06 Kevin Ryde <kevin@swox.se>
+
+ * tests/cxx/t-allfuns.cc: New file.
+ * tests/cxx/Makefile.am: Add it.
+
+ * mpz/clrbit.c, mpz/setbit.c: Only MPN_NORMALIZE if high limb changes
+ to zero. Use _mpz_realloc return value.
+
+ * gmp.texi (Build Options, C++ Formatted Output, C++ Formatted Input):
+ Cross reference to Headers and Libraries for libgmpxx stuff.
+ (Low-level Functions): mpn_divexact_by3 result based on GMP_NUMB_BITS.
+ mpn_set_str takes "unsigned char *", reported by Mark Sofroniou.
+ (C++ Interface General): Describe linking with libgmpxx and libgmp.
+
+2002-07-01 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c, gmp-impl.h: Eliminate the array of thresholds in
+ one(), tune just one at a time and let the callers hand dependencies.
+ Eliminate the second_start_min hack, handle SQR_KARATSUBA_THRESHOLD
+ oddities in tune_sqr() instead.
+
+ * mpn/pa64/umul.asm, mpn/pa64/udiv.asm, mpn/asm-defs.m4, acconfig.h,
+ longlong.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl,
+ tests/devel/try.c: Introduce mpn_umul_ppmm_r and mpn_udiv_qrnnd_r
+ rather than having variant parameter order for mpn_umul_ppmm and
+ mpn_udiv_qrnnd on pa64.
+
+ * gmp-h.in (mpz_export): Remove a spurious parameter name.
+ * gmp-impl.h (mpn_rootrem): Use __MPN.
+
+2002-06-29 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (udiv_qrnnd) [hppa32]: Remove mpn_udiv_qrnnd version, the
+ general mechanism for that suffices.
+
+ * mpf/inp_str.c: Fix returned count of chars read, reported by Paul
+ Zimmermann. Also fix a memory leak for invalid input.
+ * tests/mpf/t-inp_str.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+
+ * tests/devel/try.c (mpn_mod_34lsub1): Only exists for
+ GMP_NUMB_BITS%4==0.
+ (SIZE2_FIRST): Respect option_firstsize2 for "fraction" case.
+
+ * mpn/generic/diveby3.c: Further nailifications.
+ * gmp-impl.h (MODLIMB_INVERSE_3): Allow for GMP_NUMB_BITS odd.
+ (GMP_NUMB_CEIL_MAX_DIV3, GMP_NUMB_CEIL_2MAX_DIV3): New constants.
+ * tests/t-constants.c: Check them.
+
+ * gmp-h.in (__GMP_CRAY_Pragma): New macro.
+ (__GMPN_COPY_REST): Use it.
+ * gmp-impl.h (CRAY_Pragma): Use it.
+
+2002-06-25 Kevin Ryde <kevin@swox.se>
+
+ * mpz/import.c, mpz/export.c: Cast data pointer through "char *" in
+ alignment tests, for the benefit of Cray vector systems.
+
+ * configure.in (x86-*-*): Remove -march=pentiumpro check, seems ok
+ with current code.
+ * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO, GMP_GCC_VERSION_GE): Remove
+ macros, no longer needed
+
+ * acinclude.m4 (GMP_ASM_RODATA): Remove temporary files.
+
+ * configure.in (GMP_ASM_GLOBL_ATTR): Reposition to avoid duplication
+ through AC_REQUIRE.
+
+2002-06-23 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-fib_ui.c (check_fib_table): Check table values, not just
+ that they're non-zero.
+
+ * acinclude.m4 (GMP_GCC_ARM_UMODSI): Match bad "gcc --version" output
+ exactly, rather than parsing it with GMP_GCC_VERSION_GE.
+ (GMP_ASM_UNDERSCORE): Use GLOBL_ATTR.
+
+ * mpn/pa32/udiv.asm, mpn/pa32/hppa1_1/udiv.asm, mpn/pa64/udiv.asm:
+ Renamed from udiv_qrnnd.asm, for consistency with other udiv's.
+ * mpn/pa64/umul.asm: Renamed from umul_ppmm.asm likewise.
+ * configure.in (hppa*-*-*): Update extra_functions.
+ (NAILS_SUPPORT): Remove umul_ppmm, udiv_qrnnd, udiv_fp, udiv_nfp from
+ nails-neutral list, no longer needed.
+
+ * gmp-h.in (__DECC): Add notes on testing this for ANSI-ness.
+ (__GMP_EXTERN_INLINE): Add static __inline for DEC C.
+ (mpz_mod_ui): Move up to main section, it's still documented.
+
+2002-06-22 Kevin Ryde <kevin@swox.se>
+
+ * mpz/jacobi.c, mpz/kronsz.c, mpz/kronuz.c, mpz/kronzs.c,
+ mpz/kronzu.c: Allow for odd GMP_NUMB_BITS, tweak a few variable setups.
+ * gmp-impl.h (JACOBI_STRIP_LOW_ZEROS): New macro.
+
+ * mpn/generic/mod_34lsub1.c: Nailify.
+ * tests/devel/try.c (CNST_34LSUB1): Nailify.
+ * gmp-impl.h (ADDC_LIMB): New macro.
+
+ * gmpxx.h (mpf_class::get_str): Make exponent mp_exp_t&, default
+ base=10 and ndigits=0.
+ (mpz_class::set_str, mpq_class::set_str, mpf_class::set_str): Add
+ versions accepting "const char *".
+ * mpfrxx.h (mpfr_class::get_str, mpfr_class::set_str): Ditto, and
+ uncommenting set_str and operator=.
+ * gmp.texi (C++ Interface Integers, C++ Interface Rationals)
+ (C++ Interface Floats): Update.
+
+ * gmp-impl.h (modlimb_invert): Merge the <=64bits and general versions.
+ (const, signed): Move to near top of file, fixes --enable-alloca=debug
+ on K&R.
+
+ * gen-fib.c: New file, derived from mainline in mpn/generic/fib2_ui.c.
+ * dumbmp.c (mpz_init_set_ui): New function.
+ * Makefile.am, mpn/Makefile.am: Generate fib_table.h, mpn/fib_table.c.
+ * gmp-impl.h: Use fib_table.h, add __GMP_DECLSPEC to __gmp_fib_table
+ (for the benefit of tests/mpz/t-fib_ui.c).
+ * mpn/generic/fib2_ui.c: Remove __gmp_fib_table and generating code.
+
+ * Makefile.am: Add mp.h to BUILT_SOURCES, distclean all BUILT_SOURCES,
+ use += more.
+
+ * acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_BRANCHES):
+ Don't let "unknown" get into the cache variables.
+ (GMP_ASM_TEXT): See what assembles, don't hard-code hpux and aix.
+ (GMP_PROG_EXEEXT_FOR_BUILD): Add ,ff8 for RISC OS, per autoconf cvs.
+ (GMP_PROG_CPP_FOR_BUILD): Restructure per AC_PROG_CPP, print correct
+ result if CPP_FOR_BUILD overrides the cache variable.
+ (GMP_PROG_CC_FOR_BUILD_WORKS): New macro split from
+ GMP_PROG_CC_FOR_BUILD. Allow for "conftest" default compiler output.
+ * configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Reinstate this,
+ separating HOST_CC establishment from GMP_PROG_CC_FOR_BUILD.
+
+ * configure.in (mpn_objs_in_libgmp): Move mpn/mp_bases.lo ...
+ * Makefile.am (MPN_OBJECTS): ... to here, add $U, and arrange
+ MPN_OBJECTS to be common between libgmp and libmp.
+
+2002-06-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c (TOOM3_MUL_REC, TOOM3_SQR_REC): Don't check if
+ basecase is to be invoked when *_TOOM3_THRESHOLD is more than 3 times
+ the corresponding *_THRESHOLD.
+
+2002-06-20 Kevin Ryde <kevin@swox.se>
+
+ * mpn/ia64/submul_1.c: Add missing TMP_DECL, TMP_MARK, TMP_FREE.
+ Reported by Paul Zimmermann.
+
+ * configure.in, acinclude.m4 (AC_DEFINE): Make templates read "Define
+ to 1", for clarity as per autoconf.
+ * acinclude.m4 (GMP_OPTION_ALLOCA): Group WANT_TMP templates.
+
+2002-06-20 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h, mpfrxx.h: Remove mpz_classref, let mpq_class::get_num and
+ mpq_class::get_den return mpz_class& as per the documentation.
+ Reported by Roberto Bagnara.
+
+2002-06-18 Kevin Ryde <kevin@swox.se>
+
+ * tests/rand/t-lc2exp.c: New file.
+ * tests/rand/Makefile.am: Add it, and use tests/libtests.la.
+
+ * randraw.c (lc): Pad seed==0 case with zero limbs, return same
+ (m2exp+1)/2 bits as normal, right shift "c" result as normal.
+
+ * configure.in: Don't bother with line numbers in some diagnostics.
+ (*-*-mingw*): Use -mno-cygwin if it works, suggested by delta trinity.
+
+ * tests/mpz/Makefile.am, tests/mpq/Makefile.am,
+ tests/misc/Makefile.am, (CLEANFILES): Set to *.tmp for test program
+ temporaries, to get t-scanf.tmp and reduce future maintenance.
+
+2002-06-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_dc_get_str): Pass scratch memory area in
+ new `tmp' parameter. Trim allocation needs by reusing input parameter.
+
+2002-06-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/udiv.asm: New file.
+
+2002-06-15 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_GCC_VERSION_GE): Correction to recognising mingw
+ gcc 3.1 version number. Reported by Jim Fougeron.
+
+ * configure.in (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): New define, to make
+ AC_LIBTOOL_WIN32_DLL work with autoconf 2.53.
+
+ * acinclude.m4 (GMP_C_SIZES): Establish BITS_PER_MP_LIMB as a value,
+ not an expression, for the benefit of the gen-bases invocation.
+
+ * config.guess (CC_FOR_BUILD): Try c99, same as configfsf.guess.
+
+2002-06-15 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpfr/set_q.c: Allow for 1 bit numerator or denominator.
+
+2002-06-14 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_C_BIGENDIAN): Use new style action parameters.
+
+ * randlc2x.c: Allow for a<0, allow for c>=2^m2exp.
+ * randraw.c (lc): Allow for a==0.
+
+ * mpn/sparc32/udiv.asm: Renamed from udiv_fp.asm. Don't know if float
+ is the best way for v7, but it's what configure has chosen since gmp 3.
+ * configure.in (*sparc*-*-* ABI=32): extra_functions="udiv" for all,
+ in particular sparc32/v8/udiv.asm is faster (on ultrasparc2) than
+ udiv_fp previously used for v9 chips.
+
+ * gen-bases.c: New file, derived from mpn/mp_bases.c.
+ * dumbmp.c: New file, mostly by Torbjorn, some by me.
+ * configure.in, acinclude.m4 (GMP_PROG_CC_FOR_BUILD,
+ GMP_PROG_CPP_FOR_BUILD, GMP_PROG_EXEEXT_FOR_BUILD,
+ GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): New macros.
+ (GMP_PROG_HOST_CC): Remove, superceded by GMP_PROG_CC_FOR_BUILD.
+ * Makefile.am: Run gen-bases to create mp_bases.h and mpn/mp_bases.c.
+ * gmp-impl.h: Use mp_bases.h.
+ * mpn/mp_bases.c: Remove file.
+ * mpn/Makefile.am: mp_bases.c now in nodist_libmpn_la_SOURCES.
+
+ * tests/mpz/t-cmp_d.c (check_one_2exp): Use volatile to force to
+ double, fixes gcc 3.1 with -O4. Reported by Michael Lee.
+ * configure.in (AC_C_VOLATILE): New macro.
+
+ * tests/misc/t-scanf.c: (fromstring_gmp_fscanf): Add missing va_end.
+ Don't mix varargs and fixed args functions, not good on x86_64.
+ Reported by Marcus Meissner.
+
+ * Makefile.am (EXTRA_DIST): Remove mpfr/README, now in mpfr/Makefile.in
+
+ * configure, config.in, INSTALL.autoconf: Update to autoconf 2.53.
+ * */Makefile.in, install-sh, mdate-sh, missing, aclocal.m4, configure:
+ Update to automake 1.6.1.
+ * configfsf.guess, configfsf.sub: Update to 2002-05-29.
+
+2002-06-12 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_GCC_VERSION_GE): Recognise mingw gcc 3.1 version.
+ (GMP_PROG_CC_WORKS): Allow for a_out.exe, as per autoconf.
+ (GMP_GCC_NO_CPP_PRECOMP, GMP_ASM_UNDERSCORE): Ditto, plus a.exe.
+
+2002-06-09 Torbjorn Granlund <tege@swox.com>
+
+ * randraw.c (lc): Remove broken ASSERT_ALWAYS.
+
+ * mpn/x86: Update gmp-mparam.h files with current measures *_THRESHOLD
+ values.
+ * mpn/x86/p6/mmx/gmp-mparam.h: New file.
+
+2002-06-09 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/*/gmp-mparam.h (USE_PREINV_DIVREM_1): Add tuned settings.
+
+ * acconfig.h (HAVE_NATIVE_mpn_preinv_divrem_1): New template.
+
+ * tests/refmpn.c, tests/tests.h (refmpn_chars_per_limb,
+ refmpn_big_base): New functions.
+ * tests/mpn/t-mp_bases.c: Use them, and don't test big_base_inverted
+ unless it's being used.
+
+ * gmp.texi (Notes for Particular Systems): Using Microsoft C with DLLs.
+ (Known Build Problems): Notes on MacOS and GCC.
+ (Integer Logic and Bit Fiddling): Use ULONG_MAX for maximum ulong.
+ (Low-level Functions): mpn_get_str accepts base==256.
+ (Formatted Output Functions): Note output is not atomic.
+ (Internals): Note mp_size_t for limb counts.
+
+ * mp-h.in, gmp-h.in (mp_ptr, mp_srcptr, mp_size_t, mp_exp_t): Remove
+ these types from mp.h, not needed.
+
+ * mpfr/tests/tadd.c, mpfr/tests/tmul.c (check): Apply a hack to the
+ parameter order to make sparc gcc 2.95.2 happy.
+
+ * doc/configuration: Notes on bootstrapping.
+
+2002-06-08 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/tests/tsqrt.c, mpfr/tests/tsqrt_ui.c: Suppress tests if sqrt is
+ not affected by mpfr_set_machine_rnd_mode.
+
+ * mpfr/mul_2si.c: Workaround a mips gcc 2.95.3 bug under -O2 -mabi=n32.
+
+ * configure.in (alphev56): Fix to use ev5 path.
+
+2002-06-06 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in: Use __gmp_const not const, in a number of places.
+
+ * configure.in (sparc): Use ABI=32 instead of ABI=standard on v7 and
+ v8, for consistency with v9 choices.
+ (sparc64): Restrict GMP_ASM_SPARC_REGISTER to ABI=64.
+ (x86): Move MMX $path munging to before printout.
+ (CCAS): Move upward to support this.
+
+ * gmp-impl.h (modlimb_invert): Merge macros for specific limb sizes,
+ add a version for arbitrary limb size, use GMP_NUMB_BITS.
+ (modlimb_invert, MODLIMB_INVERSE_3): Fix comments to say GMP_NUMB_BITS.
+
+ * gmp-h.in (__GMP_LIKELY, __GMP_UNLIKELY): New macros.
+ (mpz_getlimbn, mpz_perfect_square_p, mpz_popcount): Use them, make the
+ fetch or mpn call likely, unconditionally calculate the alternative so
+ as to avoid an "else" clause.
+ * gmp-impl.h (LIKELY, UNLIKELY): Aliases.
+
+ * configure.in, mpfr/tests/Makefile.am: Add $LIBM to $LIBS for
+ MPFR_CONFIGS so it detects fesetround, and let it go through to
+ $MPFR_LIBS.
+ * mpfr/rnd_mode.c: Use gmp-impl.h to get MPFR_HAVE_FESETROUND.
+
+ * tests/mpz/t-sizeinbase.c: Disable fake bits test, such pointer
+ setups are bogus and have been seen failing on hppa.
+
+ * tests/misc.c, tests/refmpz.c, tests.tests.h, tests/mpz/t-cong.c:
+ Rename mpz_flipbit to refmpz_combit and move from misc.c to refmpz.c.
+
+2002-06-05 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-powm_ui.c Print proper routine name in error message.
+
+2002-06-03 Kevin Ryde <kevin@swox.se>
+
+ * tune/time.c, tune/freq.c, tune/speed.h: Add powerpc mftb support.
+ (FREQ_MEASURE_ONE): Move to speed.h, fix tv_sec factor.
+ (freq_measure): Use for mftb measuring too.
+ * tune/powerpc.asm, tune/powerpc64.asm: New files.
+ * configure.in, tune/Makefile.am: Add them.
+
+ * gmp-impl.h (popc_limb): Add versions for Cray and fallback for
+ arbitrary limb size.
+
+ * mpn/sparc32/sparc-defs.m4: New file.
+ * configure.in (sparc*-*-*): Use it.
+ * acinclude.m4 (GMP_ASM_SPARC_REGISTER): New macro.
+ * configure.in (sparc64): Use it. Also, use -Wc,-m64 for linking.
+ * mpn/sparc64/add_n.asm, mpn/sparc64/addmul_1.asm,
+ mpn/sparc64/copyd.asm, mpn/sparc64/copyi.asm, mpn/sparc64/lshift.asm,
+ mpn/sparc64/mul_1.asm, mpn/sparc64/rshift.asm,
+ mpn/sparc64/sqr_diagonal.asm, mpn/sparc64/sub_n.asm,
+ mpn/sparc64/submul_1.asm: Use REGISTER for .register.
+
+2002-06-01 Kevin Ryde <kevin@swox.se>
+
+ * mpz/powm_ui.c: Fix for result range in certain circumstances.
+
+ * mpn/x86/k6/diveby3.asm: Speedup to 10 c/l, same as divexact_1.
+ Anomaly pointed out by Alexander Kruppa.
+
+2002-05-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/export.c: Cast pointer via `unsigned long' when checking
+ alignment to avoid compiler warnings.
+
+2002-05-29 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (BSWAP_LIMB): Versions for m68k, powerpc, and arbitrary
+ limb size.
+ * configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_m68k): New define.
+
+2002-05-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_basecase.c: Improve MAX_LEFT handling, returning
+ when possible. Add code for mpn_addmul_5 and mpn_addmul_6.
+
+2002-05-25 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c: Misc nailifications, and disable preinv thresholds
+ with nails.
+ * tune/speed.h: Use GMP_NUMB_HIGHBIT with mpn_sb_divrem_mn and
+ mpn_divrem_2.
+ * mpz/powm.c (redc): Nailify q.
+
+ * tests/mpn/t-scan.c: Reduce the amount of testing, to go faster.
+
+2002-05-23 Torbjorn Granlund <tege@swox.com>
+
+ * Version 4.1 released.
+
+ * mpn/alpha/ev6/nails/gmp-mparam.h: New file.
+
+ * tests/devel/add_n.c (refmpn_add_n): Nailify.
+ * tests/devel/sub_n.c (refmpn_sub_n): Nailify.
+ * tests/devel/addmul_1.c (refmpn_addmul_1): Nailify.
+ * tests/devel/submul_1.c (refmpn_submul_1): Nailify.
+
+ * mpn/alpha/ev6/nails/add_n.asm: New file.
+ * mpn/alpha/ev6/nails/sub_n.asm: New file.
+ * mpn/alpha/ev6/nails/mul_1.asm: New file.
+ * mpn/alpha/ev6/nails/submul_1.asm: New file.
+
+2002-05-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/nails/addmul_1.asm: New file.
+
+ * mpz/inp_str.c (mpz_inp_str_nowhite): Nailify.
+
+ * mpn/generic/mul_basecase.c: Update pointers before conditional
+ MAX_LEFT break statements.
+
+2002-05-21 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-gcd.c: Test mpz_gcd_ui.
+
+ * mpz/lcm_ui.c: Nailify.
+
+ * mpz/gcd_ui.c: Nailify. Make it work as documented, allowing
+ NULL to be passed for result parameter. Fix gcd(0,0) case.
+
+ * mpz/set_str.c: Nailify.
+
+ * randlc2x.c (gmp_randinit_lc_2exp): Nailify.
+
+ From Jakub Jelinek:
+ * longlong.h (add_ssaaaa,sub_ddmmss) [64-bit sparc]:
+ Make it actually work.
+
+2002-05-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/ui_div.c: Shut up compiler warning.
+
+ * mpn/generic/mul_basecase.c: Use mpn_addmul_2, mpn_addmul_3, and
+ mpn_addmul_4, as available.
+
+ * mpn/alpha/ev6/nails/addmul_2.asm: Adjust NAILS_SUPPORT decls.
+ * mpn/alpha/ev6/nails/addmul_3.asm: Likewise
+ * mpn/alpha/ev6/nails/addmul_4.asm: Likewise.
+
+ * configure.in (*-cray-unicos*): Back again to -hscalar0.
+ (gmp_mpn_functions_optional): Add mul_3, mul_4, addmul_2, addmul_3,
+ and addmul_4.
+ * acconfig.h: Add #undefs for new optional mpn functions.
+
+2002-05-18 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Integer Import and Export): Mention Cray unfilled words.
+
+ * mpz/set_d.c, mpq/set_d.c: Use LIMBS_PER_DOUBLE for the output of
+ __gmp_extract_double. Reported by Henrik Johansson.
+
+2002-05-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/nails/addmul_2.asm: New file.
+ * mpn/alpha/ev6/nails/addmul_3.asm: New file.
+ * mpn/alpha/ev6/nails/addmul_4.asm: New file.
+
+ * mpn/generic/dump.c: Rewrite and nailify.
+
+2002-05-16 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/Makefile.am (EXTRA_DIST): Add BUGS file.
+
+2002-05-15 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (*-cray-unicos*): Remove -hscalar0, add -hnofastmd
+ as workaround for compiler bug.
+ (mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.
+
+2002-05-14 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (*-cray-unicos*): Pass -hscalar0 to work around
+ compiler bug for mpz/import.c.
+
+2002-05-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/import.c: Cast pointer via `unsigned long' when checking
+ alignment to avoid compiler warnings.
+
+ * mpn/generic/rootrem.c: Adjust allocation of qp temporary area.
+
+2002-05-09 Kevin Ryde <kevin@swox.se>
+
+ * mpz/import.c: Corrections to size store, special case tests, and
+ general case ACCUMULATE.
+ * tests/mpz/t-import.c, tests/mpz/t-export.c: More test data.
+
+2002-05-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/rootrem.c: Use temp space for root, copy value in place
+ before returning.
+ * mpz/root.c: Don't allocate extra limb for root value.
+ * mpz/perfpow.c: Undo last change.
+
+2002-05-08 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (powerpc BSWAP_LIMB_FETCH): Rename local variable to make
+ it not clash with caller.
+
+ * mpn/generic/rootrem.c: New file.
+ * configure.in (gmp_mpn_functions): Add rootrem and pow_1.
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add rootrem.c and
+ pow_1.c
+ * gmp-impl.h (mpn_rootrem): Add declaration.
+ * mpz/perfpow.c: Amend allocations for mpn_rootrem requirements.
+ * mpz/root.c: Rewrite to use mpn_rootrem.
+
+2002-05-08 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (MUL_KARATSUBA_THRESHOLD etc): Remove forced nail values.
+
+ * mpf/fits_u.h, mpf/fits_s.h, tests/mpf/t-fits.c: Ignore fraction
+ part, making the code match the documentation.
+
+ * gmpxx.h (struct __gmp_binary_minus): Use mpz_ui_sub.
+
+2002-05-07 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc32/README: New file.
+
+ * mpz/root.c: Use unsigned long with mpz_sub_ui not mp_limb_t.
+
+ * tune/README: Misc updates including sparc32/v9 smoothness, low res
+ timebase, and mpn_add_n operand overlaps.
+ * tune/many.pl: Add udiv.asm support.
+
+ * gmp.texi (Build Options): A couple of --build better as --host.
+ (Known Build Problems, Notes for Package Builds): Add DESTDIR problem.
+ (Compatibility with older versions): Compatible with 4.x versions.
+ (Converting Integers): Remove mpz_get_ui + mpz_tdiv_q_2exp decompose.
+ (Integer Import and Export): New section.
+ (Miscellaneous Integer Functions): Clarify mpz_sizeinbase returns 1
+ for operand of 0.
+ (Language Bindings): Add GNU Pascal.
+ (Low-level Functions): Add GMP_NUMB_MAX.
+
+ * tests/mpz/t-import.c, tests/mpz/t-export.c, tests/mpz/t-get_d.c:
+ New tests.
+ * tests/mpz/Makefile.am: Add them.
+
+ * mpz/import.c, mpz/export.c: New files.
+ * Makefile.am, mpz/Makefile.am, gmp-h.in: Add them.
+
+ * gmp-h.in, gmp-impl.h (GMP_NUMB_MAX): Move to gmp.h.
+ * gmp-impl.h (CNST_LIMB): Add cast to mp_limb_t to ensure unsigned.
+ (CRAY_Pragma, MPN_REVERSE, MPN_BSWAP, MPN_BSWAP_REVERSE,
+ ASSERT_ALWAYS_LIMB, ASSERT_ALWAYS_MPN): New macros.
+ (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS_MPN.
+
+2002-05-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/aors_ui.h: Nailify.
+
+ * tests/mpz/t-addsub.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-addsub.
+
+ * mpz/ui_sub.c: New file.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add ui_sub.c.
+ * Makefile.am (MPZ_OBJECTS): Ditto.
+ * gmp-h.in (mpz_ui_sub): Add declaration.
+
+ * gmp-impl.h (MPZ_REALLOC): Rewrite to allow the use of _mpz_realloc
+ return value.
+
+ * gmp-h.in (mpn_pow_1): Add declaration.
+
+ * mpn/generic/pow_1.c: Handle exp <= 1. Reverse rp/tp parity scheme
+ for bn == 1 arm.
+
+ * Rename MP_LIMB_T_HIGHBIT => GMP_LIMB_HIGHBIT.
+
+2002-05-06 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (main): Don't call mpz_sizeinbase with negative base.
+
+ * randraw.c (lc): Remove an unused variable.
+
+ * mpn/generic/get_str.c: Clarify an algorithm description.
+
+ * tests/mpf/t-trunc.c: Nailify.
+ * tests/mpf/t-set_si.c: Disable for nails.
+
+ * mpf/cmp_si.c: Nailify.
+ * mpf/cmp_ui.c: Nailify.
+ * mpf/div.c: Nailify.
+ * mpf/div_2exp.c: Nailify.
+ * mpf/div_ui.c: Nailify.
+ * mpf/eq.c: Nailify.
+ * mpf/get_d.c: Nailify.
+ * mpf/get_d_2exp.c: Nailify.
+ * mpf/get_si.c: Nailify.
+ * mpf/get_str.c: Nailify.
+ * mpf/get_ui.c: Nailify.
+ * mpf/mul_2exp.c: Nailify.
+ * mpf/random2.c: Nailify.
+ * mpf/set_q.c: Nailify.
+ * mpf/set_si.c: Nailify.
+ * mpf/set_str.c: Nailify.
+ * mpf/set_ui.c: Nailify.
+ * mpf/sub.c: Nailify.
+ * mpf/ui_div.c: Nailify.
+ * mpf/ui_sub.c: Nailify.
+ * mpf/urandomb.c: Nailify.
+
+ * gmp-impl.h (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Nailify.
+
+ * mpz/get_si.c: Misc variable name changes.
+
+ * mpf/fits_u.h: Rewrite - nailify.
+ * mpf/fits_s.h: Likewise.
+
+ * mpz/mod.c: Disambiguate if-statement with extra {}.
+
+ * mpf/int_p.c: Fix type of size variables.
+ * mpf/get_ui: Likewise.
+ * mpf/get_si: Likewise.
+ * mpq/equal.c: Likewise.
+ * mpq/get_d.c: Likewise.
+ * mpz/cmp_d.c: Likewise.
+ * mpz/cmpabs_d.c: Likewise.
+ * mpz/divis_2exp.c: Likewise.
+ * mpz/kronuz.c: Likewise.
+ * mpz/kronzu.c: Likewise.
+ * mpz/kronzs.c: Likewise.
+ * mpz/kronsz.c: Likewise.
+ * mpz/scan0.c: Likewise.
+ * mpz/scan1.c: Likewise.
+ * mpz/tstbit.c: Likewise.
+ * mpz/cong_2exp.c: Likewise.
+ * mpz/divis.c: Likewise.
+
+2002-05-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcd.c: Additional nailify changes.
+
+2002-05-04 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (__GNU_MP_VERSION): Set to 4.1.
+ * Makefile.am (-version-info): Bump for new release.
+
+2002-04-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divrem_1.c: Additional nailify changes.
+ * mpn/generic/mod_1.c: Likewise.
+
+ * tests/mpq/t-get_d.c: Print floats with all 16 digits.
+
+ * mpq/get_d.c: Nailify.
+
+ * tests/mpq/t-set_f.c: Disable for nails.
+
+ * mpz/get_d.c: Nailify.
+
+ * gmp-impl.h (LIMBS_PER_DOUBLE, MP_BASE_AS_DOUBLE): Nailify.
+
+ * gmp-h.in (__GMPZ_FITS_UTYPE_P): Cast maxval to before shifting it.
+
+ * extract-dbl.c: Nailify.
+
+2002-04-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpq/md_2exp.c (mord_2exp): Nailify.
+
+ * mpq/cmp_ui.c: Nailify.
+
+ * mpq/cmp.c (mpq_cmp): Nailify.
+
+ * mpn/generic/gcd.c: Nailify. GNUify code layout.
+
+ * mpn/generic/gcdext.c: Nailify. Misc changes.
+
+ * tests/mpz/t-sqrtrem.c: Let argv[1] mean # of repetitions.
+ * tests/mpz/t-gcd.c: Likewise.
+
+ * mpz/gcd.c: Nailify.
+
+ * mpn/generic/random.c: Nailify.
+
+ * gmp-impl.h (modlimb_invert): Nailify.
+
+2002-04-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c (div2): Remove qh parameter.
+ (mpn_gcdext): Streamline double-limb code.
+ Move GCDEXT_THRESHOLD check to after initial division.
+
+2002-04-27 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (JACOBI_MOD_OR_MODEXACT_1_ODD): Allow for odd
+ GMP_NUMB_BITS.
+
+ * tune/time.c (sgi_works_p): Allow for 64-bit counter, and fix
+ SGI_CYCLECNTR_SIZE handling.
+
+ * demos/expr/exprfr.c: Add nan and inf constants.
+ * demos/expr/t-expr.c: Exercise them.
+
+2002-04-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/cmp_ui.c: Fix overflow conditions for nails.
+
+ * gmp-h.in (mpz_get_ui): Fix typo from last change.
+
+ * mpz/n_pow_ui.c: Adjust allocation for nails.
+ (GMP_NUMB_HALFMAX): Renamed from MP_LIMB_T_HALFMAX.
+ Fix umul_ppmm invocation for for nails.
+
+2002-04-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of
+ mpn_divmod.
+
+2002-04-24 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (*-*-cygwin*): Give a sensible default command line
+ limit, to avoid blowups reported by Jim Fougeron on windows 9x.
+ (--enable-nails): Make the default 2, since mp_bases has data for that.
+
+ * mpfr/mpfr-math.h (__mpfr_nan): Use a "double" for the bytes, to
+ avoid a mis-conversion on alpha gcc 3.0.2.
+ (_MPFR_INFP_BYTES, _MPFR_INFM_BYTES): Should be a zero mantissa.
+
+2002-04-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/dive_ui.c: Fix typo.
+
+ * mpz/fits_s.h: Rewrite.
+
+ * mpz/jacobi.c: Nailify.
+ * mpz/kronuz.c: Additional nailify changes.
+ * mpz/kronsz.c: Likewise.
+
+2002-04-23 Kevin Ryde <kevin@swox.se>
+
+ * demos/expr/Makefile.am (LDADD): Add $(LIBM) for the benefit of mpfr.
+
+ * mpz/divis_ui.c, mpz/cong_ui.c: Nailify.
+ * mpn/generic/bdivmod.c, mpz/divexact.c, mpz/dive_ui.c: Nailify.
+ * mpn/generic/sb_divrem_mn.c, mpn/generic/divrem.c,
+ mpn/generic/divrem_2.c: Nailify ASSERTs.
+ * mpn/x86/k6/mmx/logops_n.asm, mpn/x86/k6/mmx/com_n.asm: Nailify.
+ * mpz/inp_raw.c, mpz/out_raw.c: Nailify.
+ * mpz/kronzu.c, mpz/kronuz.c, mpz/kronzs.c, mpz/kronsz.c: Nailify.
+ * mpn/generic/divis.c, mpz/cong.c, mpz/cong_2exp.c: Nailify.
+ * gmp-impl.h (NEG_MOD): Nailify.
+
+ * gmp-impl.h, mpn/mp_bases.c: Add back GMP_NUMB_BITS==30 bases data.
+
+ * mpfr/get_d.c: Patch from Paul to avoid problem with constant folding
+ in gcc on OSF.
+
+ * mpn/lisp/gmpasm-mode.el: Remove mention of defunct LF macro.
+
+2002-04-22 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Handle "binomial" operator.
+
+ * mpz/cmp_ui.c: Move assignments of `up' out of conditionals.
+
+ * mpn/generic/gcdext.c: Fix fencepost error in STAT code.
+
+ * gmp-impl.h (mpn_com_n): Nailify.
+
+ * tests/mpz/t-cdiv_ui.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add t-cdiv_ui.
+ * mpz/cdiv_qr_ui.c: Nailify.
+ * mpz/cdiv_q_ui.c: Nailify.
+ * mpz/cdiv_r_ui.c: Nailify.
+ * mpz/cdiv_ui.c: Nailify.
+
+ * tests/misc/t-printf.c (CHECK_N): Add cast to allow `char' to be an
+ unsigned type.
+ * tests/misc/t-scanf.c: Likewise.
+
+ * mpz/mul_i.h: Rework nails code to handle parameter overlap.
+
+ * tests/mpz/t-set_f.c: Disable for nails.
+
+2002-04-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/set_si.c: Add cast to support LONG_LONG_LIMB.
+ * mpz/iset_si.c: Likewise.
+
+ * mpz/bin_ui.c: Nailify.
+ * mpz/bin_uiui.c: Nailify.
+
+ * mpz/cmpabs_ui.c: Nailify.
+
+ * tests/mpz/t-aorsmul.c: Nailify.
+ * mpz/aorsmul_i.c (mpz_addmul_ui, mpz_submul_ui): Nailify better.
+
+2002-04-20 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-fdiv_ui.c: Check mpz_fdiv_ui.
+ * tests/mpz/t-tdiv_ui.c: Check mpz_tdiv_ui.
+
+ * mpz/tdiv_ui.c: Rewrite nails code.
+ * mpz/fdiv_ui.c: Nailify.
+
+ * tests/mpz/t-tdiv_ui.c: Check returned remainders.
+ * tests/mpz/t-fdiv_ui.c: Merge in recent t-tdiv_ui changes.
+
+ * mpz/tdiv_q_ui.c: Remove spurious TMP_* calls.
+
+ * mpz/fdiv_qr_ui.c: Nailify.
+ * mpz/fdiv_q_ui.c: Nailify.
+ * mpz/fdiv_r_ui.c: Nailify.
+
+ * mpz/get_si.c: Misc nailify changes to shut up compiler warnings.
+
+ * mpz/ui_pow_ui.c: Fix typo in last change.
+
+2002-04-20 Kevin Ryde <kevin@swox.se>
+
+ * tests/misc/t-printf.c, tests/misc/t-scanf.c: Check all %n types.
+
+ * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/p6/mmx/divrem_1.asm
+ (mpn_preinv_divrem_1): New entrypoint.
+ (mpn_divrem_1): Avoid a branch when testing high<divisor.
+ * mpn/asm-defs.m4: Add define_mpn(preinv_divrem_1).
+ * configure.in: Allow divrem_1.asm to provide mpn_preinv_divrem_1.
+
+ * gmp-impl.h [nails]: Add #undefs of MUL_KARATSUBA_THRESHOLD etc, to
+ override CPU gmp-mparam.h. Remove JACOBI_BASE_METHOD override since
+ it's nails-neutral.
+
+ * tests/mpn/t-mp_bases.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add it.
+ * tests/t-constants.c: Move MP_BASES constants checks to it.
+
+ * mpn/mp_bases.c: Fix big_base_inverted values for nails.
+ * gmp-impl.h (MP_BASES_BIG_BASE_INVERTED_10,
+ MP_BASES_NORMALIZATION_STEPS_10): Fix nails values.
+ (MP_BASES_*): Remove GMP_NUMB_BITS == 30 data.
+
+ * mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm: Add
+ NAILS_SUPPORT indicators.
+
+ * configure.in: Grep for NAILS_SUPPORT in cpu-specific code, and look
+ in "nails" subdirectories, print path used.
+ * mpn/asm-defs.m4 (NAILS_SUPPORT): New macro.
+
+ * mpfr/mpfr-test.h: Include config.h, for the benefit of test programs
+ not using gmp-impl.h.
+
+2002-04-19 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-scan.c: Nailify.
+
+ * mpz/tdiv_qr_ui.c: Nailify.
+ * mpz/tdiv_q_ui.c: Nailify.
+ * mpz/tdiv_r_ui.c: Nailify.
+ * mpz/tdiv_ui.c: Nailify.
+
+ * mpz/cmp_ui.c: Nailify.
+
+ * mpz/ui_pow_ui.c: Misc nailify changes to shut up compiler warnings.
+
+ * mpz/scan0.c: Nailify.
+ * mpz/scan1.c: Nailify.
+
+ * tests/mpz/t-sizeinbase.c (mpz_fake_bits): Nailify.
+
+2002-04-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/aorsmul_i.c: Nailify.
+
+ * mpz/cmp_si.c: Nailify (botched).
+
+ * mpz/ui_pow_ui.c: Nailify.
+
+ * gmp-h.in (__GMPZ_FITS_UTYPE_P): Nailify.
+
+ * mpz/fits_s.h: Nailify.
+
+ * tests/mpz/bit.c (check_tstbit): Nailify.
+
+ From Paul Zimmermann:
+ * mpn/generic/sqrtrem.c: Nailify.
+
+ * mpz/n_pow_ui.c: Nailify.
+
+ * mpz/cfdiv_r_2exp.c: Nailify.
+
+ * randraw.c (lc): Undo: Let mpn_rshift put result in place to avoid
+ extra MPN_COPY.
+
+2002-04-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/clrbit.c: Add two GMP_NUMB_MASK masks after addition.
+
+ * mpn/generic/random2.c (LOGBITS_PER_BLOCK): Decrease to 4.
+
+ * gmp-impl.h (nail DIV_DC_THRESHOLD): Decrease to 50 to allow fast
+ division.
+
+ * mpn/generic/random2.c: Nailify.
+
+ * mpz/fac_ui.c: Nailify.
+
+ * mpz/mul_i.h: #if ... #endif code block to shut up gcc warnings.
+
+ * mpn/generic/sqrtrem.c: Adopt to GNU coding standards.
+ (mpn_dc_sqrtrem): New name for mpn_dq_sqrtrem.
+ Partial nailification.
+
+ * configure.in: As a temporary hack, clear extra_functions for nails
+ builds.
+
+ * gmp-h.in (mpz_get_ui): #if ... #endif else code block to shut up gcc
+ warnings.
+
+2002-04-17 Kevin Ryde <kevin@swox.se>
+
+ * texinfo.tex: Update to 2002-03-26.08 per texinfo 4.2.
+ * gmp.texi: Must have @top in @ifnottex (or @contents doesn't come out
+ in one run).
+
+ * mpn/generic/scan0.c, mpn/generic/scan1.c: Nailify.
+
+ * tests/mpn/t-scan.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add it.
+
+ * tests/refmpn.c, tests/tests.h (refmpn_tstbit): Use unsigned long for
+ bit index.
+ (refmpn_setbit, refmpn_clrbit, refmpn_scan0, refmpn_scan1): New
+ functions.
+
+ * mpfr/cmp_ui.c (mpfr_cmp_si_2exp): Fix b==0 i!=0 case.
+
+2002-04-17 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h, mpfrxx.h: Remove mpfr_class bool combinations, remove
+ mpfr_class::get_str2, use mp_rnd_t for rounding modes, use
+ 8*sizeof(double) for mpfr_t's holding doubles.
+
+2002-04-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm.c: Nailify.
+ * mpz/powm_ui.c: Nailify.
+
+2002-04-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/hamdist.c: Nailify.
+ * tests/misc.c (urandom): Nailify.
+
+ * mpz/get_si.c: Nailify.
+ * gmp-h.in (mpz_get_ui): Nailify. Streamline (and probably upset
+ memory checkers).
+
+ * gmp-impl.h (mp_bases[10] values): Add versions for GMP_NUMB_BITS
+ being 28, 60, and 63.
+ * mpn/mp_bases.c: Add tables for GMP_NUMB_BITS being 28, 60, and 63.
+
+ * mpz/iset_si.c: Nailify.
+ * mpz/iset_ui.c: Nailify
+
+ * tests/mpz/convert.c (main): Print test number in error message.
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Shift up `frac' into nails
+ field after bignum division.
+
+2002-04-16 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, gmp-impl.h (GMP_NAIL_MASK): Move to gmp.h.
+
+ * gmp.texi: Use @documentdescription and @copying, per texinfo 4.2.
+ (Low-level Functions): Clarify mpn_gcd overlap requirements, rewrite
+ mpn_set_str description, add nails section.
+ (C++ Interface General): Remove bool from types that mix with classes.
+ (Language Bindings): Add STklos, GNU Smalltalk, Regina.
+ (Binary to Radix, Radix to Binary): Describe new code.
+ (Assembler Cache Handling): More notes, mostly by Torbjorn.
+
+ * macos/configure (%vars): Remove __GMP from substitutions, per change
+ to main configure.
+
+ * mpn/generic/dive_1.c: Nailify.
+ * mpn/generic/mode1o.c: Nailify, remove bogus ASSERT in commented-out
+ alternate implementation.
+ * gmp-impl.h (SUBC_LIMB): New macro.
+
+ * tests/devel/try.c (validate_divexact_1): Correction to compare.
+ (udiv_qrnnd): New testing.
+ (SHIFT_LIMIT): Nailify.
+ (-b): New option, remove spurious "H" from getopt string.
+
+ * mpz/clrbit.c: Nailify.
+ * tests/mpz/t-hamdist.c: Nailify.
+ * gmp-impl.h (MPN_FIB2_SIZE): Nailify.
+ (PP): Nailify conditionals.
+ * tests/mpz/t-fib_ui.c (MPZ_FIB_SIZE_FLOAT): Nailify.
+
+ * configure.in, acinclude.m4: Establish GMP_NAIL_BITS and
+ GMP_LIMB_BITS for gmp-h.in configure tests.
+
+ * mpfr/*, configure.in: Update to final mpfr 2.0.1.
+ * mpfr/acinclude.m4 (MPFR_CONFIGS): Use $host, not uname stuff.
+ * mpfr/tests/tout_str.c: Patch from Paul for denorm fprintf tests.
+
+2002-04-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divrem_1.c (EXTRACT): Remove.
+
+ * tests/mpz/t-tdiv_ui.c (dump_abort): Accept argument for error string.
+
+ * mpz/rrandomb.c: Nailify. Needs further work.
+
+ * mpn/generic/mod_1.c: Nailify.
+
+ * gmp-impl.h: Set various *_THRESHOLD values to be used for nails to
+ avoid not yet qualified algorithms.
+ (MPZ_CHECK_FORMAT): Check that nail part is zero.
+
+ * tests/mpz/t-mul.c (main): Test squaring even for huge operands.
+ (base_mul): Nailify.
+ (dump_abort): Accept argument for error string. Print product
+ difference.
+
+ * mpn/generic/set_str.c: Nailify.
+
+ * gmp-h.in (__GMPN_ADD, __GMPN_SUB): Nailify.
+
+2002-04-14 Torbjorn Granlund <tege@swox.com>
+
+ * randraw.c (lc): Return non-nonsense return value for seed=0 case.
+ Check for m2exp being non-zero early; remove all other tests of m2exp.
+ Remove redundant MPN_ZERO call.
+ Let mpn_rshift put result in place to avoid extra MPN_COPY.
+ Remove confusing comment before function `lc' describing BBS algorithm.
+ Misc simplification and cleanups.
+ Nailify. Needs further work.
+
+ * mpz/set_si.c: Nailify.
+ * mpz/set_ui.c: Nailify.
+ * mpz/mul_i.h: Nailify.
+
+ * tests/mpz/t-mul_i.c: Actually test _ui routines. Add some more test
+ values.
+
+ * mpn/generic/mul_n.c: Finish nailifying toom3 code.
+
+2002-04-13 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*: Update to another new mpfr 2.0.1.
+ * configure.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am:
+ Use MPFR_CONFIGS macro, establish separate MPFR_CFLAGS for mpfr build.
+
+ * mpfr/tests/Makefile.am: Correction to convenience rule for libmpfr.a.
+
+2002-04-11 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/set_q.c: gmp-impl.h before mpfr.h to avoid _PROTO redefine.
+
+ * mpfr/*, configure.in: Update to new mpfr 2.0.1.
+
+ * tests/refmpn.c (refmpn_udiv_qrnnd, refmpn_divmod_1c_workaround):
+ Fixes for nails.
+
+ * tests/t-constants.c (MODLIMB_INVERSE_3): Nailify tests.
+ (MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): Only
+ check these under USE_PREINV_DIVREM_1.
+ * tests/t-modlinv.c: Nailify tests.
+
+2002-04-11 Gerardo Ballabio <gerardo.ballabio@unimib.it>
+
+ * gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only
+ need <iosfwd> now.
+
+2002-04-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/diveby3.c: Nailify.
+ * gmp-impl.h (MODLIMB_INVERSE_3): Nailify.
+
+ * mpn/generic/mul_n.c: Nailify Toom3 code.
+
+2002-04-10 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (MPN_KARA_MUL_N_MINSIZE, MPN_KARA_SQR_N_MINSIZE): Set to
+ 3, as needed by nails case.
+
+ * mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails]: Fix vl
+ assert, add rp,n and up,n asserts.
+
+ * mpfr/Makefile.am: Add new mpfr-math.h, install mpf2mpfr.h.
+
+2002-04-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divrem_1.c: Nailify. Update mp_size_t variables to use
+ `n' suffix instead of `size' suffix.
+ * mpn/generic/divrem_2.c: Likewise.
+ * mpn/generic/sb_divrem_mn.c: Nailify.
+ * mpn/generic/tdiv_qr.c: Nailify.
+ (SHL): Remove silly macro.
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n): Replace open-coded increment by
+ mpn_incr_u call. Handle nails in ws[n] increment.
+ * mpn/generic/mul_n.c (mpn_kara_sqr_n): Likewise.
+
+ * gmp-h.in (GMP_NUMB_MASK): New #define.
+ (__GMPN_AORS_1): Add version for nails.
+
+ * gmp-impl.h (GMP_NUMB_MASK): Comment out, now in gmp.h.
+ (mpn_incr_u): Don't assume `incr' is non-zero.
+ (mpn_decr_u): Similarly.
+
+2002-04-09 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/*, configure.in: Update to mpfr 2.0.1.
+
+ * tests/refmpn.c (refmpn_mul_1c, lshift_make): Corrections for nails.
+ * tssts/refmpn.c, tests/tests.h (refmpn_cmp_allowzero): New function.
+
+ * mpn/generic/mul_1.c [nails]: Fix vl assert, add {up,n} assert.
+
+ * mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
+ mpn/pa32/hppa1_1/pa7100/submul_1.asm: Rename "size" define, to avoid
+ ELF .size directive. Reported by LaMont Jones.
+
+ * tests/mpz/t-set_si.c: Add nails support.
+
+2002-04-05 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h: Replace nail mpn_incr_u, mpn_decr_u with faster versions.
+ (mp_bases[10] values): Check GMP_NUMB_BITS instead of BITS_PER_MP_LIMB.
+ Add GMP_NUMB_BITS == 30 version.
+ (__gmp_doprnt, etc): Remove parameter names.
+
+ * mpn/generic/mul_n.c: Nailify Karatsuba code.
+ * mpn/generic/get_str.c: Nailify.
+ * mpn/generic/sqr_basecase.c: Nailify.
+ * mpn/generic/lshift.c: Nailify.
+ * mpn/generic/rshift.c: Likewise.
+ * mpn/generic/add_n.c: Nailify. Revamp non-nail code.
+ * mpn/generic/sub_n.c: Likewise.
+ * mpn/generic/mul_1.c: Likewise.
+ * mpn/generic/addmul_1.c: Likewise.
+ * mpn/generic/submul_1.c: Likewise.
+
+2002-04-02 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]:
+ Corrections to constraints, and restrict to bigendian.
+
+2002-03-31 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/dive.c: Better diagnostics.
+
+ * tests/devel/try.c (mpn_get_str, mpn_umul_ppmm_r): New tests.
+
+ * tests/misc.c, tests/tests.h (byte_diff_lowest, byte_diff_highest):
+ New functions.
+
+ * tests/t-bswap.c: New file.
+ * tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * tests/mpn/t-aors_1.c, tests/mpn/t-iord_u.c: Add nails support.
+
+ * gmp-impl.h (MPN_IORD_U) [x86]: Eliminate unnecessary jiord and iord,
+ rename "n" to incr per generic versions, restrict to nails==0.
+ (mpn_incr_u, mpn_decr_u): Add nails support.
+ (GMP_NAIL_LOWBIT, GMP_NUMB_MAX): New macros.
+
+ * tests/trace.c, tests/tests.h (byte_trace, byte_tracen): New
+ functions.
+ * tests/trace.c: Handle NULL operands.
+
+ * tests/refmpn.c, tests/devel/try.c, tune/speed.c: Add preliminary
+ nail support.
+
+ * tests/refmpn.c, test/tests.h (byte_overlap_p, refmpn_equal_anynail,
+ refmpn_umul_ppmm_r, refmpn_udiv_qrnnd_r, refmpn_get_str,
+ refmpn_bswap_limb, refmpn_random, refmpn_random2, refmpn_bswap_limb):
+ New functions.
+
+ * gmp-impl.h, tests/refmpn.c (ASSERT_LIMB): Renamed from
+ ASSERT_MP_LIMB_T.
+
+ * mpn/x86/*/*.asm, mpn/powerpc32/*/*.asm, mpn/powerpc64/*/*.asm: Put
+ speeds after the copyright notice, so as to keep that clear.
+
+2002-03-29 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection,
+ for 32-bit mode.
+
+2002-03-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn: Fix spacing in many files.
+
+ * mpn/generic/aorsmul_1.c: Split into addmul_1.c and submul_1.c.
+ * mpn/generic/aors_n.c: Split into add_n.c and sub_n.c.
+
+ * mpn/pa64/add_n.asm: Trim another 0.125 cycle/limb. Fix a comment.
+ * mpn/pa64/sub_n.asm: Likewise.
+
+ * mpn/pa64/mul_1.asm: Change comclr, comb to proper forms cmpclr, cmpb.
+ * mpn/pa64/addmul_1.asm: Likewise.
+ * mpn/pa64/submul_1.asm: Likewise.
+
+2002-03-28 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp,
+ reported by epl@unimelb.edu.au.
+ (References): Update Burnikel and Ziegler URL, reported by Keith
+ Briggs.
+
+ * gmp-h.in, mp-h.in, configure.in, acinclude.m4: Remove __GMP from
+ AC_SUBSTs, since autoconf says leading "_" in makefile variables is
+ not portable.
+
+ * demos/expr/run-expr.c: Declare optarg, optind, opterr if necessary.
+ * configure.in, demos/expr/expr-config-h.in: Configs for this.
+
+2002-03-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/Makefile.am (TARG_DIST): Remove pa64w and hppa, add pa32.
+
+ * configure.in (path_20w): Remove pa64w.
+
+ * mpn/pa64/udiv_qrnnd.asm: Tweak for PA8000 performance comparative to
+ that on PA8500.
+
+2002-03-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa32: New name for mpn/hppa.
+ * configure.in: Corresponding changes.
+
+ * mpn/pa64/umul_ppmm.asm: New file, generalized for both 2.0N and 2.0W.
+ * mpn/pa64/umul_ppmm.S: Remove.
+
+ * mpn/pa64/udiv_qrnnd.asm: Generalize for both 2.0N and 2.0W.
+ * mpn/pa64w/udiv_qrnnd.asm: Remove.
+
+2002-03-26 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/tests/tdiv.c, mpfr/tests/tui_div.c: Don't depend on nan and inf
+ handling in "double", for the benefit of alpha.
+
+ * configure (hppa2.0w): Set path to "pa64w pa64".
+
+ * acinclude.m4, configure.in (GMP_C_INLINE): New macro.
+ * acinclude.m4 (GMP_H_EXTERN_INLINE): Use it, and fix "yes" handling.
+
+2002-03-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64w/add_n.s: Remove.
+ * mpn/pa64w/sub_n.s: Remove.
+ * mpn/pa64w/lshift.s: Remove.
+ * mpn/pa64w/rshift.s: Remove.
+ * mpn/pa64w/mul_1.S: Remove.
+ * mpn/pa64w/addmul_1.S: Remove.
+ * mpn/pa64w/submul_1.S: Remove.
+ * mpn/pa64w/sqr_diagonal.asm: Remove.
+
+ * mpn/pa64/mul_1.asm: New file with twice faster code; generalized
+ for both 2.0N and 2.0W.
+ * mpn/pa64/submul_1.asm: Likewise.
+ * mpn/pa64/mul_1.S: Remove.
+ * mpn/pa64/submul_1.S: Remove.
+
+ * mpn/pa64/sqr_diagonal.asm: Generalize for both 2.0N and 2.0W.
+
+ * mpn/pa64/add_n.asm: New file, generalized for both 2.0N and 2.0W.
+ * mpn/pa64/sub_n.asm: Likewise.
+ * mpn/pa64/lshift.asm: Likewise.
+ * mpn/pa64/rshift.asm: Likewise.
+ * mpn/pa64/add_n.s: Remove.
+ * mpn/pa64/sub_n.s: Remove.
+ * mpn/pa64/lshift.s: Remove.
+ * mpn/pa64/rshift.s: Remove.
+
+2002-03-24 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE): New macros.
+ * mpz/inp_raw.c, mpz/out_raw.c: Use them.
+ * acconfig.h (HAVE_HOST_CPU): Add some powerpc types.
+
+ * mpn/powerpc32/750/com_n.asm: New file.
+
+ * mpfr/tests/tout_str.c: Disable random tests, since they fail on
+ alphaev56-unknown-freebsd4.1 and do nothing by default.
+
+ * mpfr/tests/tsqrt.c: Don't depend on nan, inf or -0 in "double", for
+ the benefit of alpha.
+ * mpfr/sqrt.c: Clear nan flag on -0.
+
+ * demos/factorize.c: Use mpn_random() instead of random(), to avoid
+ portability problems.
+
+ * demos/isprime.c (print_usage_and_exit): Declare as "void" to avoid
+ warnings.
+
+ * demos/pexpr.c (setup_error_handler): Corrections to sigstack code.
+
+ * demos/calc/calc.y: Add some `;'s to make bison 1.34 happy.
+
+2002-03-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64/addmul_1.asm: New file with twice faster code; generalized
+ for both 2.0N and 2.0W.
+
+2002-03-22 Kevin Ryde <kevin@swox.se>
+
+ * tune/time.c: Add SGI hardware counter measuring method, change some
+ abort()s into ASSERT_FAIL()s.
+
+ * configure.in (AC_CHECK_HEADERS): Add fcntl.h and sys/syssgi.h.
+ (AC_CHECK_FUNCS): Add syssgi.
+
+ * configure.in, mpfr/Makefile.am, mpfr/tests/Makefile.am: Use
+ -mieee-with-inexact or -ieee_with_inexact for mpfr on alpha, so
+ denorms work.
+
+ * mpfr/isinteger.c: Fix a memory leak.
+
+2002-03-21 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.c (struct choice_t): Make `r' an mp_limb_t.
+
+2002-03-21 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): Use an
+ AH_VERBATIM and better explanation.
+ * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Similarly for the HAVE_DOUBLE
+ constants.
+
+ * gmp.texi (Number Theoretic Functions): Clarify sign of GCD returned
+ by mpz_gcdext.
+
+ * demos/pexpr.c, demos/pexpr-config-h.in, configure.in: Use an
+ autoconf test for stack_t.
+
+ * configure.in, gmp-h.in, mp-h.in, macos/configure, tests/mpz/reuse.c,
+ tests/mpf/reuse.c: Use __GMP_LIBGMP_DLL to enable windows declspec,
+ don't require _WIN32 (etc), remove __GMP_LIBGMP_SHARED and
+ __GMP_LIBGMP_STATIC.
+
+ * gmp-impl.h (mp_bases): Add __GMP_DECLSPEC, for the benefit of
+ tests/t-constants.c.
+
+ * tune/many.pl, tune/speed.h: Remove suffix hack for back.asm.
+
+2002-03-21 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpfr/sin_cos.c (mpfr_sin_cos): New file.
+ * mpfr/mpfr.h, mpfr/mpfr.texi, mpfr/Makefile.am: Add it.
+ * mpfr/tan.c: Fix sign in 2nd and 4th quadrants.
+
+ * mpfr/log10.c: Fix hangs on certain inputs.
+
+2002-03-20 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (setup_error_handler): Declare `s', the first
+ sigaltstack parameter, using `stack_t' just on AIX.
+
+2002-03-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead
+ of the callee-saves r30 and r31.
+
+2002-03-19 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (freq_proc_cpuinfo): Recognise powerpc "clock", where
+ previously got the wrong result from "bogomips".
+
+ * mpn/powerpc32/add_n.asm, mpn/powerpc32/sub_n.asm: Rewrite, faster on
+ 750, and smaller too.
+ * mpn/powerpc32/*.asm: Use L(), add some measured speeds.
+
+ * longlong.h (count_trailing_zeros) [vax]: Add a version using ffs,
+ but commented out.
+
+2002-03-17 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.c, tune/speed.h, tune/common.c, many.pl: Use optional
+ ".r" to specify operand overlaps for mpn_add_n, mpn_sub_n and logops.
+ Remove mpn_add_n_inplace and mpn_add_n_self.
+ * tune/many.pl: Fix MULFUNC_PROLOGUE parsing.
+
+ * gmp.texi (Known Build Problems): Note `make' problem with long
+ libgmp.la dependencies list.
+
+ * printf/doprnt.c, scanf/doscan.c (%zn): Remove test of non-existent
+ HAVE_SIZE_T, just use size_t unconditionally.
+ * printf/doprnt.c (%zd etc): Fix 'z' type parsing.
+ * tests/misc/t-printf.c, tests/misc/t-scanf.c: More tests.
+
+ * configure.in: Use AC_COPYRIGHT.
+ Add m4_pattern_allow(GMP_MPARAM_H_SUGGEST).
+
+ * tune/Makefile.am (libdummy.la): Remove this, sqr_basecase.c already
+ gets an ansi2knr rule from nodist_tuneup_SOURCES.
+
+ * longlong.h (count_leading_zeros) [pentiumpro gcc<3]: Test
+ HAVE_HOST_CPU_i686 too.
+
+ * mpz/out_raw.c (HTON_LIMB_STORE): Fix a typo in big endian #if.
+
+2002-03-14 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm,
+ mpn/x86/k6/mmx/com_n.asm: Add nails support.
+
+ * texinfo.tex: Update to 2002-03-01.06 (per texinfo 4.1).
+ * gmp.texi (@ma): Remove, @math does this now.
+
+ * mpfr/tests/reuse.c: Clear op1 and op2 flags only in their respective
+ outer loops.
+
+ * configure.in (--enable-cxx): Correction to the default stated in the
+ help string.
+ (power*-*-aix*, not powerpc): Use aix.m4, don't run
+ GMP_ASM_POWERPC_R_REGISTERS or use powerpc-defs.m4.
+
+2002-03-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/gmp-mparam.h: New file.
+
+2002-03-13 Kevin Ryde <kevin@swox.se>
+
+ * demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos,
+ sin, rename log2 constant to loge2 to make room for log2 function.
+ * demos/expr/t-expr.c: More tests.
+
+ * mpz/inp_raw.c (NTOH_LIMB_FETCH) [generic 16bit]: Remove spurious "+".
+
+ * mpfr/acos.c: Avoid a memory leak for certain operands.
+
+ * acinclude.m4, configure.in (GMP_C_DOUBLE_FORMAT): New macro.
+
+ * acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
+ GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
+ Change ac_objext to OBJEXT, which is the documented variable.
+
+ * config.guess (powerpc*-*-*): Use #ifdef on constants POWER_630 etc
+ in the AIX test, since old versions don't have them all.
+
+2002-03-11 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (LIBC211): New AC_DEFINE, for mpfr.
+
+ * configure.in (mips*-*-*): Support ABI=o32 on irix 6, allow gcc 2.7.2
+ to fall back on it, but detect it doesn't work with gcc 2.95. Use
+ single mips-defs.m4 for both mips32 and mips64.
+ * acinclude.m4 (GMP_GCC_MIPS_O32): New macro.
+ * mpn/mips32/mips-defs.m4: Renamed from mips.m4.
+ * mpn/mips64/mips.m4: Remove (was a copy of mips32/mips.m4).
+
+ * mpn/powerpc32/750: New directory.
+ * configure.in (powerpc740, powerpc750, powerpc7400): Use it.
+ * mpn/powerpc32/750/gmp-mparam.h: New file.
+
+ * config.sub, gmp.texi (ultrasparc1): Remove this, just use plain
+ "ultrasparc".
+
+2002-03-10 Kevin Ryde <kevin@swox.se>
+
+ * mpfr: Update to 20020301, except internal_ceil_exp2.c,
+ internal_ceil_log2.c, internal_floor_log2.c renamed to i_ceil_exp2.c,
+ i_ceil_log2.c, i_floor_log2.c to be unique in DOS 8.3. And sqrtrem.c
+ removed since no longer required.
+ * mpfr/mpfr.texi: Fix some formatting.
+ * mpfr/tests/reuse.c: Patch by Paul to fix test4 variable handling.
+ * mpfr/sinh.c: Patch by Paul to fix err calculation when t==0.
+ * mpfr/tests/tget_d.c: Disable until portability of rnd_mode.c can be
+ sorted out.
+
+ * configure.in (powerpc*-*-*): Separate gcc and xlc cpu flags setups
+ for clarity.
+
+ * longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: New
+ macros.
+
+2002-03-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Note all the ultrasparcs accepted.
+ (Language Bindings): Add Math::BigInt::GMP.
+
+ * config.sub (ultrasparc2i): New cpu type.
+ * config.guess (sparc-*-*, sparc64-*-*): Add some exact CPU detection.
+
+2002-03-05 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h (count_leading_zeros, count_trailing_zeros) [alphaev67,
+ alphaev68]: Use ctlz and cttz insns (as per gcc longlong.h).
+ (count_leading_zeros) [sparclite]: Fix parameter order (as per gcc
+ longlong.h).
+ * acconfig.h (HAVE_HOST_CPU_alphaev68): New define.
+
+ * config.guess [i?86-*-*]: Suppress error messages if compiler not
+ found or test program won't run.
+ [rs6000-*-*, powerpc-*-*]: Force code alignment for mfpvr test.
+
+2002-03-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/pow_1.c: New file.
+
+2002-03-03 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Note compiler must be able to fully link,
+ add alphapca57 and alphaev68, give a clearer example of MPN_PATH
+ (Debugging): Add notes on valgrind.
+ (C++ Formatted Output): Clarify mpf showbase handling, in particular
+ note "00.4" in octal.
+
+ * printf/doprntf.c: Do a showbase on octal float fractions, for
+ instance "00.4" where previously it gave "0.4".
+ * tests/cxx/t-ostream.cc: Update.
+
+ * gmp-h.in, mp-h.in (__GMP_DECLSPEC, __GMP_DECLSPEC_XX): Test
+ __WIN32__ for Borland C, reported by "delta trinity".
+
+ * gmp-h.in, mp-h.in: Use <cstddef> for size_t under C++, suggested by
+ Hans Aberg some time ago.
+ * gmp-h.in (<iosfwd>): Move to top of file for clarity.
+
+ * Makefile.am (libgmpxx_la_SOURCES): Use dummy.cc to force C++.
+ (CXX_OBJECTS): Add osfuns$U.lo.
+ * dummy.cc: New file.
+ * cxx/Makefile.am (INCLUDES): Use __GMP_WITHIN_GMPXX.
+ (libcxx_la_SOURCES): Add osfuns.cc.
+ * gmp-h.in (__GMP_DECLSPEC_XX): New define, use it on libgmpxx funs.
+ * gmp-impl.h: Add __GMP_DECLSPEC to libgmp functions used by libgmpxx.
+
+ * longlong.h (COUNT_TRAILING_ZEROS_TIME): Remove, no longer used.
+
+ * gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): Correction to
+ __totbits for nails.
+
+ * gmp-impl.h (JACOBI_LS0): Test size before limb, to pacify valgrind.
+ (JACOBI_0LS): Ditto, and fix parens around arguments.
+
+ * mpn/x86/x86-defs.m4 (call_mcount): Add a counter to make data labels
+ unique, since simplified L() scheme no longer gives that effect.
+ (notl_or_xorl_GMP_NUMB_MASK): New macro.
+ Add m4_assert_numargs in a few places.
+
+ * configure.in (*sparc*): Fix cycle counter setups for ABI=64.
+
+2002-02-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/vax/gmp-mparam.h: New file.
+
+2002-02-28 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block,
+ reported by librik@panix.com.
+
+ * gmp-h.in, mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT):
+ Use __declspec(dllexport) and __declspec(dllimport) on Borland.
+ * gmp-h.in (_GMP_H_HAVE_FILE): Test __STDIO_H for Borland.
+ Reported by "delta trinity".
+
+ * gmp-impl.h (va_copy): Fall back on memcpy, not "=".
+
+ * mpn/generic/pre_mod_1.c: Add a comment about obsolescence.
+
+ * tune/time.c (MICROSECONDS_P): Don't trust time differences of 1
+ microsecond.
+
+ * tests/cxx/t-ostream.cc: Use "const char *" not just "char *" for
+ test data strings, avoids warnings on Sun CC.
+
+2002-02-27 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to
+ disable some crazy -fast optimizations.
+
+2002-02-25 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable
+ denorm handling under -fast.
+
+2002-02-25 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (alpha*-*-*): Rearrange -mcpu selection for gcc,
+ provide an ev67 -> ev6 fallback. Fix -arch,-tune selection for DEC C.
+ Allow ~ for space in optional options lists.
+
+ * tune/tuneup.c (tune_preinv_divrem_1): Compare against an assembler
+ mpn_divrem_1 if it exists, not the generic C mpn_divrem_1_div.
+ (tune_preinv_mod_1): Ditto with mpn_mod_1.
+
+ * tune/time.c (DIFF_SECS_ROUTINE): Eliminate the unused "type"
+ parameter, try to make the code a bit clearer.
+
+ * tune/freq.c: Reduce the period measured for cycles versus
+ gettimeofday, add cycles versus microsecond getrusage.
+
+ * mpz/array_init.c: "i" should be mp_size_t, noticed by E. Khong.
+
+2002-02-24 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: For sparc under solaris2.[7-9], pass -fast instead of
+ other optimization options.
+
+2002-02-23 Kevin Ryde <kevin@swox.se>
+
+ * mpn/asm-defs.m4 (GMP_NUMB_MASK): New macro.
+ (PROLOGUE, EPILOGUE): Relax quoting for the benefit of tune/many.pl
+ when GSYM_PREFIX non-empty.
+
+ * tune/time.c, tune/speed.h (speed_time_init): Include clock tick
+ period in speed_time_string.
+ * tune/time.c, configure.in (clock_gettime): New measuring method.
+
+ * tune/many.pl: Add -DHAVE_NATIVE_mpn_foo to C objects, to avoid
+ conflicts with a macro version in gmp-impl.h, eg. mpn_com_n.
+
+2002-02-22 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte.
+
+2002-02-22 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic.
+
+2002-02-20 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (mips*-*-irix[6789]*]): Set `extra_functions_n32', not
+ `extra_functions'.
+
+ * printf/doprnt.c: Conditionally include inttypes.h.
+ * printf/repl-vsnprintf.c: Likewise.
+ * scanf/doscan.c: Likewise.
+
+2002-02-20 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k7/mmx/com_n.asm: New file.
+
+ * mpz/n_pow_ui.c (SWAP_RP_TP): Use ASSERT_CODE on ralloc and talloc,
+ to ensure they needn't live past the initial allocs in a normal build.
+
+ * mpn/generic/mod_34lsub1.c: Note this is for internal use.
+
+2002-02-19 Torbjorn Granlund <tege@swox.com>
+
+ * Clean up *_THRESHOLD names. Many files affected.
+
+ * mpn/mips32: Asm-ify 32-bit mips code.
+ Move files from `mips2' to `mips32' directory.
+ * mpn/mips64: Move files from `mips3' to `mips64' directory.
+ * configure.in: Change `mips2' => `mips32' and `mips3' => `mips64'.
+
+2002-02-19 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4, configure.in (GMP_PROG_LEX): New macro.
+
+ * tune/tuneup.c (one): Start next threshold at a max of previous ones,
+ in order to get a good starting point for TOOM3_SQR_THRESHOLD if
+ KARATSUBA_SQR_THRESHOLD is 0 (ie. using mpn_mul_basecase only).
+
+ * configure.in, tune/tuneup.c (GMP_MPARAM_H_SUGGEST): New AC_DEFINE
+ replacing GMP_MPARAM_H_FILENAME. Suggest a new file in a cpu specific
+ subdirectory rather than mpn/generic.
+
+ * acinclude.m4 (POWERPC64_PATTERN): New macro.
+ * configure.in (powerpc*-*-*): Use it.
+ (powerpc*-*-*): Use umul in 32L and aix64.
+ (mips*-*-*): Use umul, 32 and 64 bit versions.
+
+2002-02-18 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h: Add basic x86-64 support.
+
+2002-02-17 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Support `-X' for upper case hex, make `-x' output
+ lower case hex.
+
+ * mpn/mips2/umul.s: Make it actually work.
+ * mpn/mips3/umul.asm: New file.
+
+ * mpn/mips2/gmp-mparam.h: New file.
+
+2002-02-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after
+ umul_ppmm calls.
+
+2002-02-16 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (alpha-*-*): Do alpha exact cpu probes on any system,
+ and only if configfsf.guess gives a plain "alpha".
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Detect a gcc 3.0.3 powerpc64
+ linker invocation problem.
+
+2002-02-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): For base 10, develop initial
+ digits using umul_ppmm, then switch to plain multiplication.
+
+ * config.guess: Rewrite Alpha subtype detection code for *bsd systems.
+
+2002-02-15 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Note powerpc exact cpu types.
+ (Debugging): Advertise DEBUG in memory.c.
+
+ * config.sub, config.guess: Add some powerpc exact cpus.
+ * configure.in: Add configs for them.
+
+ * memory.c [__NeXT__]: Remove unused #define of "static".
+ (__gmp_default_allocate, __gmp_default_reallocate): Print size if
+ allocation fails, don't use perror.
+
+ * gmp-h.in: g++ 3 demands __GMP_NOTHROW is before other attributes.
+
+2002-02-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems.
+
+2002-02-14 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of
+ alpha.
+
+ * macos/README: Bug reports to bug-gmp@gnu.org, clarify MacOS X a bit.
+
+ * mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Add missing TMP_FREE.
+
+ * tune/speed.c, tune/tuneup.c: Allow for speed_cycletime of 0.0 in
+ some diagnostic printouts.
+ * tune/time.c (speed_cycletime): Note can be 0.0.
+
+2002-02-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/mul_1.asm: Add mpn_mul_1c entry.
+
+ * mpn/pa64w/sqr_diagonal.asm: Use L() for labels.
+
+2002-02-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to
+ accommodate tuneup compiles.
+
+2002-02-11 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/default.m4, mpn/alpha/unicos.m4 (PROLOGUE_cpu): Add
+ noalign option.
+ * mpn/alpha/default.m4 (PROLOGUE_cpu): use ALIGN instead of ".align".
+
+ * gmp.texi (Debugging): Notes on Checker.
+ (Other Multiplication): Move note on float FFTs to here.
+ (Assembler Floating Point): New text and revisions by Torbjorn,
+ picture formatting by me.
+ Simplify tex pictures elsewhere a bit, share heights, eliminate some
+ gaps at line joins.
+
+2002-02-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Rewrite to generate fraction
+ limbs and use multiplication for digit development. Trim allocation of
+ buf. Get rid of code for !USE_MULTILIMB.
+
+2002-02-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/set_str.c (mpn_set_str): Undo this:
+ Change invocations of mpn_add_1 to instead use mpn_incr_u.
+
+ * tests/mpz/convert.c: Free str only after it is used in error message.
+
+ * mpn/generic/get_str.c (mpn_sb_get_str): Combine tail code for base 10
+ and generic bases.
+
+ * mpn/mp_bases.c: Add entries for base 256. Remove __ prefix from
+ table name.
+ * gmp-impl.h (__mp_bases): Remove superfluous mp_ part of name, making
+ it __gmpn_bases instead of __gmpn_mp_bases.
+ (mp_bases): New #define.
+ * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Allow bases up to 256.
+ (SPEED_ROUTINE_MPN_GET_STR): Likewise.
+
+2002-02-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/set_str.c (mpn_set_str): Use mpn_mul_1c if available.
+ Change invocations of mpn_add_1 to instead use mpn_incr_u.
+
+2002-02-09 Kevin Ryde <kevin@swox.se>
+
+ * mpz/array_init.c, mpz/cfdiv_q_2exp.c, mpz/cfdiv_r_2exp.c,
+ mpz/cong_2exp.c, mpz/divis_2exp.c, mpz/hamdist.c, mpz/init2.c,
+ mpz/mul_2exp.c, mpz/realloc2.c, mpz/scan0.c, mpz/scan1.c,
+ mpz/setbit.c, mpz/tdiv_q_2exp.c, mpz/tdiv_r_2exp.c, mpz/tstbit.c,
+ mpz/urandomb.c: Use GMP_NUMB_BITS.
+
+ * mpz/iset_str.c [__CHECKER__]: Store a dummy value to the low limb to
+ stop it appearing uninitialized.
+
+ * gmp-h.in (__GMP_NOTHROW): New macro.
+ (mp_set_memory_functions, mpz_cmp, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs,
+ mpz_cmpabs_ui, mpz_congruent_2exp_p, mpz_divisible_2exp_p,
+ mpz_fits_sint_p, mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p,
+ mpz_fits_ulong_p, mpz_fits_ushort_p, mpz_get_si, mpz_get_ui,
+ mpz_getlimbn, mpz_hamdist, mpz_popcount, mpz_scan0, mpz_scan1,
+ mpz_size, mpz_sizeinbase, mpz_swap, mpz_tstbit, mpq_equal, mpq_swap,
+ mpf_cmp, mpf_cmp_si, mpf_cmp_ui, mpf_fits_sint_p, mpf_fits_slong_p,
+ mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p,
+ mpf_fits_ushort_p, mpf_get_default_prec, mpf_get_prec, mpf_get_si,
+ mpf_get_ui, mpf_integer_p, mpf_set_default_prec, mpf_set_prec_raw,
+ mpf_size, mpf_swap, mpn_add_1, mpn_cmp, mpn_hamdist, mpn_popcount,
+ mpn_sub_1): Use it.
+
+ * gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): New macros from
+ mpn_sizeinbase, and use GMP_NUMB_BITS.
+ * mpz/get_str.c, mpz/sizeinbase.c, mpbsd/mout.c, tune/speed.h: Use
+ MPN_SIZEINBASE.
+ * mpbsd/mtox.c: Use MPN_SIZEINBASE_16.
+
+ * configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove.
+ * mpn/generic/sizeinbase.c: Remove file.
+
+ * gmp-impl.h (MPN_GET_STR_SIZE): Remove.
+ * tests/mpn/t-g_str_size.c: Remove file.
+ * tests/mpn/Makefile.am: Update.
+
+ * Makefile.am (dist-hook): Don't distribute cvs merge ".#" files.
+
+2002-02-08 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Override extra_functions for all sparcv8 systems, not
+ just supersparc.
+
+2002-02-06 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c (tune_mul, tune_sqr): Disable FFTs until tuned.
+ * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix memory clobber in
+ destination cache priming.
+
+ * printf/doprnt.c: Fix parsing of %s and %p conversions.
+ * tests/misc/t-printf.c (check_misc): Add some tests.
+
+2002-02-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v8/udiv.asm: New file, from v8/supersparc.
+
+ * mpn/generic/set_str.c: Rename indigits_per_limb => chars_per_limb.
+ Remove redundant chars_per_limb. Reverse 4 loops in basecase code for
+ speed. Use MP_BASES_CHARS_PER_LIMB_10.
+
+2002-02-03 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_NM): Ensure -B or -p get used when doing a
+ cross compile with the native nm, helps OSF for instance.
+ (GMP_ASM_LSYM_PREFIX): Remove ".byte 0" for the benefit of irix 6,
+ allow "N" from nm for OSF, allow for "t" for other systems, but prefer
+ no mention of the symbol at all.
+
+ * tune/tuneup.c (print_define_remark): New function.
+ Turn some "#if"s into plain "if"s.
+
+ * tune/tuneup.c, gmp-impl.h, tune/Makefile.am
+ (GET_STR_BASECASE_THRESHOLD, GET_STR_PRECOMPUTE_THRESHOLD): Tune these.
+ * mpn/generic/get_str.c [TUNE_PROGRAM_BUILD]: Cope with non-constant
+ GET_STR_PRECOMPUTE_THRESHOLD.
+
+2002-02-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration.
+
+2002-02-02 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/set_str.c: Use MP_PTR_SWAP and POW2_P, add __GMP_PROTO
+ to convert_blocks prototype, disable SET_STR_BLOCK_SIZE sanity check.
+
+ * tune/set_strb.c, tune/set_strs.c: New files.
+ * tune/speed.h, tune/speed.c, tune/common.c,tune/Makefile.am: Add them.
+ * tune/tuneup.c: Tune SET_STR_THRESHOLD.
+ (DEFAULT_MAX_SIZE): Renamed from MAX_SIZE, allow any param.max_size[].
+
+2002-02-01 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/convert.c: Increase operand size. Add (yet disabled) code
+ for testing with random strings.
+
+ * mpn/generic/get_str.c (mpn_get_str): Rewrite to become sub-quadratic.
+ (mpn_dc_get_str, mpn_sb_get_str): New functions.
+
+2002-01-31 Kevin Ryde <kevin@swox.se>
+
+ * gmpxx.h (cmp): Renamed from "compare".
+
+ * configure.in (AC_C_BIGENDIAN): Don't abort when cross compiling.
+ (PROLOGUE): Allow new style optional second parameter when grepping.
+
+ * acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE,
+ GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX):
+ Use $ac_objext for object filenames.
+ (GMP_ASM_UNDERSCORE): Use CCAS to assemble.
+
+ * demos/pexpr-config-h.in: New file.
+ * configure.in: Generate demos/pexpr-config.h.
+ (AC_CHECK_FUNCS): Add clock, cputime, setrlimit, sigaction,
+ sigaltstack, sigstack.
+ * acinclude.m4 (GMP_SUBST_CHECK_FUNCS, GMP_SUBST_CHECK_HEADERS): New
+ macros.
+ * demos/pexpr.c: Use pexpr-config.h, not various #ifdefs.
+ (setup_error_handler): Use signal if sigaction not available, allow
+ for SIGBUS missing on mingw.
+ (main): Use time() for random seed if gettimeofday not available.
+ (cleanup_and_exit): Move SIGFPE out of LIMIT_RESOURCE_USAGE.
+
+2002-01-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/set_str.c: Rewrite to become sub-quadratic.
+ (convert_blocks): New function.
+
+2002-01-30 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (GMP_NUMB_MASK, GMP_NAIL_MASK, GMP_NUMB_HIGHBIT,
+ ASSERT_MPN, ASSERT_MP_LIMB_T): New macros.
+
+ * mpn/generic/fib2_ui.c: Use GMP_NUMB_BITS, simplify the data
+ generator program, share __gmp_fib_table initializers between bit
+ sizes, cope with bit sizes other than those specifically setup.
+ * gmp-impl.h (FIB_TABLE_LIMIT, FIB_TABLE_LUCNUM_LIMIT): Corresponding
+ rearrangement of conditionals.
+ * tests/mpz/t-fib_ui.c (check_fib_table): New test.
+
+2002-01-28 Kevin Ryde <kevin@swox.se>
+
+ * mpz/set_si.c, mpz/iset_si.c: Store to _mp_d[0] unconditionally, use
+ an expression for _mp_size.
+
+ * mpz/init.c, mpz/init2.c, mpz/iset.c, mpq/init.c [__CHECKER__]: Store
+ dummy values to low limbs to stop them appearing uninitialized.
+
+2002-01-26 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and
+ Vincent.
+
+2002-01-24 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Extra quoting to get argument help messages right.
+
+ * gmp.texi (Efficiency): Suggest hex or octal for input and output.
+ (Formatted Output Strings): Mention "*" for width and precision.
+
+ * mpn/generic/sizeinbase.c: New file, adapted from mpz/sizeinbase.c.
+ Use POW2_P, use __mp_bases[base].big_base for log2(base).
+ * configure.in, mpn/Makefile.am: Add it.
+ * gmp-impl.h: Add prototype.
+ * mpz/sizeinbase.c, tune/speed.h, mpn/generic/get_str.c,
+ mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c: Use it.
+ * mpz/get_str.c: Write directly to user buffer, skip at most one
+ leading zero, eliminate special case for x==0.
+ * mpbsd/mtox.c: Allocate exact result space at the start, eliminate
+ special case for x==0.
+ * mpbsd/mout.c: Only need to skip one high zero with mpn_sizeinbase.
+
+ * configure.in (--enable-nails): New option.
+ (GMP_NAIL_BITS, GMP_LIMB_BITS, GMP_NUMB_BITS): New defines for gmp.h
+ and config.m4.
+ * gmp-h.in: Add templates.
+
+ * mpfr/mpfr-test.h (MAX, MIN, ABS): Use #ifndef to avoid a redefine
+ error on AIX xlc.
+
+2002-01-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c: Correct type of `out_len'.
+
+2002-01-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/pre_divrem_1.c: Corrections to some ASSERTs.
+
+ * mpfr/mul_ui.c: Don't call mpn_lshift with 0 shift.
+
+ * mpfr/mpz_set_fr.c: Produce correct mpz_t for f==0.
+
+2002-01-21 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative
+ declaration.
+ (64-bit powerpc add_ssaaaa): Likewise.
+
+2002-01-20 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc
+ solaris 2.7 problems.
+
+2002-01-19 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (mpz_eval_expr): Optimize s^rhs for -1 <= s <= 1.
+ (cleanup_and_exit): Improve error message wording.
+
+2002-01-19 Kevin Ryde <kevin@swox.se>
+
+ * mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with
+ gmp-impl.h.
+
+2002-01-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpfr/mpfr-test.h: Test "__hpux", not "hpux". Mask off mrand48
+ return value to 31 bits to work around sloppy mpfr #include practices.
+
+ * mpfr/tests/*.c: Use #include "", not <>, for gmp.h and mpfr.h.
+ Make sure to #include mpfr-test.h from all files that use random().
+
+2002-01-17 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE_TYPE): New macro.
+ * gmp-impl.h, mpz/get_str.c, mpz/out_raw.c, mpq/get_str.c,
+ mpq/set_str.c, mpf/get_str.c, printf/asprntffuns.c, printf/doprnt.c,
+ printf/repl-vsnprintf.c, printf/snprntffuns.c, scanf/doscan.c,
+ mpbsd/mtox.c: Some fixes to compile as C++.
+
+ * mpn/generic/jacbase.c (JACOBI_BASE_METHOD): New tuned parameter,
+ replacing COUNT_TRAILING_ZEROS_TIME test. Add a third method too.
+ * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add
+ measuring of mpn_jacobi_base methods.
+ * tune/jacbase1.c, tune/jacbase2.c, tune/jacbase3.c: New files.
+ * tune/tuneup.c (JACOBI_BASE_METHOD): Tune this.
+ * mpn/x86/*/gmp-mparam.h (COUNT_TRAILING_ZEROS_TIME): Remove macro.
+
+ * gmp-h.in: Use __gmp prefix on variables in inlines.
+
+ * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Remove __i, unused.
+
+ * mpn/generic/mul_fft.c: Use HAVE_NATIVE_mpn_addsub_n, not ADDSUB.
+ Use CNST_LIMB for some constants.
+
+2002-01-15 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpbsd/Makefile.am: Add a convenience rule for ../libtests.la.
+
+ * printf/Makefile.am: libdummy.la should be in EXTRA_LTLIBRARIES.
+
+ * mpf/out_str.c: Use MPF_SIGNIFICANT_DIGITS, so mpf_out_str and
+ mpf_get_str give the same for ndigits==0.
+
+ * mpfr/exceptions.c (mpfr_set_emin, mpfr_set_emax): Work around a
+ powerpc64 gcc 3.0 -O2 bug.
+
+ * tests/memory.c, tests/tests.h (tests_memory_validate): New function.
+
+2002-01-14 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/sb_divrem_mn.c, mpn/generic/divrem_1.c,
+ mpn/generic/divrem_2.c, mpn/generic/mod_1.c: Don't use UMUL_TIME and
+ UDIV_TIME, just default to preinv.
+ * gmp-impl.h (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Ditto.
+ (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): Don't use UMUL_TIME
+ and UDIV_TIME, make default thresholds 0.
+ (UDIV_NORM_PREINV_TIME, UDIV_UNNORM_PREINV_TIME): Remove macros.
+ * mpn/x86/*/gmp-mparam.h (UMUL_TIME, UDIV_TIME,
+ UDIV_NORM_PREINV_TIME): Remove macros.
+
+ * gmp.texi (Headers and Libraries): New section, being the header
+ notes from "GMP Basics" and some new stuff.
+ (Parameter Conventions): Notes on "const" parameters.
+ (Formatted Output Strings): Add type N, tweak some wording.
+
+ * tests/refmpn.c (refmpn_divmod_1c): Avoid a bug in i386 gcc 3.0.
+
+2002-01-12 Kevin Ryde <kevin@swox.se>
+
+ * mpz/root.c: Add <stdlib.h>, for abort().
+
+ * mpfr/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
+ * mpfr/mpfr.h, mpfr/mpfr-tests.h, reuse.c, tadd.c, tadd_ui.c, tagm.c,
+ tatan.c, tcmp2.c, tcos.c, tdiv.c, tdiv_ui.c, teq.c, texp.c,
+ tget_str.c, thyperbolic.c, tlog.c, tmul.c, tout_str.c, tpow.c,
+ trandom.c, tset_z.c, tsin.c, tsqrt.c, tsqrt_ui.c, tsub_ui.c, ttan.c,
+ tui_div.c: Fixes for K&R.
+
+ * tests/misc/t-scanf.c (check_misc, check_misc):
+
+ * tests/mpz/t-inp_str.c, tests/mpq/t-inp_str.c, tests/misc/t-scanf.c:
+ Avoid strings in ASSERT, not enjoyed by K&R.
+ * gmp-impl.h (ASSERT): Note this.
+
+ * tests/tests.h (refmpn_mod_34lsub1): Add __GMP_PROTO.
+
+ * mpbsd/Makefile.am: Avoid an automake problem with ansi2knr and
+ sources in a different directory.
+
+ * printf/repl-vsnprintf.c: Test HAVE_LONG_DOUBLE for long double.
+
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mod_34lsub1.c,
+ mul_2.c, pre_divrem_1.c.
+
+ * gmp-h.in, gmp-impl.h (mpn_add_nc, mpn_addmul_1c, mpn_addsub_n,
+ mpn_addsub_nc, mpn_divrem_1c, mpn_dump, mpn_mod_1c, mpn_mul_1c,
+ mpn_mul_basecase, mpn_sqr_n, mpn_sqr_basecase, mpn_sub_nc,
+ mpn_submul_1c): Move to gmp-impl.h, since they're undocumented.
+
+ * gmp-impl.h (mpn_reciprocal): Remove, unused.
+
+ * tune/many.pl (cntlz, cnttz): Use new SPEED_ROUTINE_COUNT_ZEROS.
+
+2002-01-11 Kevin Ryde <kevin@swox.se>
+
+ * mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L().
+
+2002-01-08 Kevin Ryde <kevin@swox.se>
+
+ * mpn/asm-defs.m4 (PROLOGUE, EPILOGUE): New scheme, optional function
+ name to EPILOGUE, check for missing or wrong function name EPILOGUE.
+ * mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/m68k/m68k-defs.m4,
+ mpn/mips3/mips.m4, mpn/ia64/default.m4, mpn/powerpc32/aix.m4,
+ mpn/powerpc64/aix.m4, mpn/x86/x86-defs.m4: Consequent updates, add a
+ few more asserts.
+ * mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/alpha/cntlz.asm,
+ mpn/alpha/invert_limb.asm (PROLOGUE_GP): Change to an optional "gp"
+ parameter on plain PROLOGUE.
+
+ * gmp.texi (Low-level Functions): mpn_get_str doesn't clobber an extra
+ limb, and doesn't clobber at all for power of 2 bases.
+ (Language Bindings): Add python gmpy.
+
+ * mpz/get_str.c: Determine realloc size arithmetically.
+
+ * mpbsd/mtox.c: Size memory block returned to actual space needed.
+ * gmp.texi (BSD Compatible Functions): Describe this.
+
+ * mpz/get_str.c: Don't copy mpn_get_str input for power of 2 bases.
+ * mpbsd/mtox.c: Ditto, and as a side effect avoid a memory leak from a
+ missing TMP_FREE.
+
+ * mpz/get_str.c, mpbsd/mout.c: No longer need for +1 limb for
+ mpn_get_str clobber.
+
+ * gmp-impl.h (MPN_GET_STR_SIZE): New macro.
+ * mpn/generic/get_str.c, mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c,
+ tune/speed.h: Use it.
+ * tests/mpn/t-g_str_size.c: New test.
+ * tests/mpn/Makefile.am: Add it.
+
+ * gmp-impl.h (POW2_P): New macro.
+ * mpn/generic/get_str.c, tests/misc.c: Use it.
+
+ * printf/doprnt.c: Add "N" for mpn, share some code between N, Q and Z.
+ * tests/misc/t-printf.c: Add tests.
+ * gmp-impl.h (ASSERT_CODE): New macro.
+
+ * tests/mpbsd/t-mtox.c: New test.
+ * tests/mpbsd/Makefile.am: Add it.
+ (allfuns_LDADD): Don't link against libgmp when testing everything in
+ libmp can link.
+
+2002-01-07 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions.
+
+2002-01-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/pre_divrem_1.c: Don't support size==0.
+ * tests/devel/try.c: Update.
+
+ * mpn/generic/get_str.c: Add special case for base==10.
+ * gmp-impl.h (MP_BASES_CHARS_PER_LIMB_10, MP_BASES_BIG_BASE_10,
+ MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): New
+ constants.
+ * tests/t-constants.c: Add checks.
+ * mpn/mp_bases.c [GENERATE_TABLE]: Print defines for gmp-impl.h, print
+ all standard bits-per-limb by default.
+
+ * demos/pexpr.c, demos/expr/expr.h, demos/expr/expr-impl.h: Use
+ __GMP_PROTO.
+
+ * gmp-h.in (mpn_divexact_by3c): Remove variables from prototype, to
+ keep out of application namespace.
+
+2002-01-04 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h: Move _PROTO declaration to before its first usages.
+
+2002-01-04 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, mp-h.in, tests/tests.h: Rename _PROTO to __GMP_PROTO, and
+ don't use #ifndef just define it ourselves.
+ * gmp-impl.h: Provide _PROTO as an alias for __GMP_PROTO, to avoid big
+ edits internally, for the moment.
+
+2002-01-03 Torbjorn Granlund <tege@swox.com>
+
+ * tune/speed.c (usage): Insert "\n\" into a string.
+
+2001-12-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64/udiv_qrnnd.c: Remove file.
+ * mpn/pa64w/udiv_qrnnd.c: Remove file.
+
+ * gmp-impl.h (MPN_IORD_U): Change formatting (labels in pos 0, insns
+ indented by tab).
+ (MPN_INCR_U): Use "addl $1,foo; jc", not "incl foo; jz".
+
+ * gmp-impl.h (udiv_qrnnd_preinv): Use plain subtract, not sub_ddmmss,
+ in one more case.
+
+2001-12-30 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/get_str.c (udiv_qrnd_unnorm): New macro.
+ Use "do while" for dig_per_u loop since it's non-zero.
+ * acconfig.h (HAVE_HOST_CPU_m68k etc): Add templates.
+
+ * mpn/generic/mul_basecase.c, mpz/mul.c, mpz/n_pow_ui.c,
+ mpn/x86/pentium/mul_2.asm, tests/devel/try.c, tests/tests.h,
+ tests/refmpn.c, tune/speed.c, tune/speed.h, tune/common.c,
+ tune/many.pl (mpn_mul_2): New parameter style.
+ * gmp-impl.h (mpn_mul_2): Add prototype.
+ * configure.in (gmp_mpn_functions_optional): Add mul_2.
+
+ * longlong.h (__vxworks__): Remove from powerpc tests, not correct,
+ not on its own at least.
+
+ * tune/speed.c: Add "aas" to specify 0xAA..AA data.
+
+ * tune/tuneup.c (print_define_end): Indicate "never" and "always".
+
+2001-12-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpq/set_d.c: ANSI-fy.
+ * mpz/invert.c: Use PTR and SIZ (cosmetic change).
+
+ * mpz/cong.c: Rename `xor' to `sign' to avoid C++ reserved word.
+
+2001-12-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/sqr_diagonal.asm: New file.
+
+2001-12-28 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/get_str.c: Avoid one mpn_divrem_1 by running main loop
+ only until msize==1.
+
+ * tune/tuneup.c: Break up all() for clarity.
+ (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Compare against plain
+ division udiv_qrnnd, not the tuned and possibly preinv version.
+
+ * tune/freq.c: Split sysctl and sysctlbyname probes into separate
+ functions, shorten some identifiers, put descriptions inside
+ functions, define functions unconditionally and do nothing if
+ requisites not available.
+
+ * mpz/inp_raw.c: Avoid a gcc 3.0 powerpc64 bug on AIX.
+
+ * acinclude.m4, configure.in (GMP_C_RESTRICT): New macro.
+
+ * mpfr/sin.c: Patch from Paul to fix sign of sin(3pi/2).
+
+ * demos/calc/calc.y: Improve some error messages.
+
+2001-12-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/mul_1.asm: Rename r72 -> r80.
+ * mpn/sparc64/addmul_1.asm: Likewise.
+
+2001-12-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/tdiv_qr.c: Misc formatting cleanups.
+ For switch case 2, replace `dn' with its value (2).
+
+2001-12-25 Torbjorn Granlund <tege@swox.com>
+
+ * tests/devel/mul_1.c: Add FIXED_XLIMB.
+ * tests/devel/addmul_1.c: Likewise.
+ * tests/devel/submul_1.c: Likewise.
+
+ * tests/devel/add_n.c: Improve error message.
+ Accept command line argument for # of tests.
+ * tests/devel/sub_n.c: Likewise.
+
+ * tests/devel/: Remove CLOCK settings.
+
+ * mpn/sparc32/v9/mul_1.asm: Rewrite.
+ * mpn/sparc32/v9/addmul_1.asm: Rewrite.
+ * mpn/sparc32/v9/submul_1.asm: Rewrite.
+
+2001-12-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/mul_1.asm: Get rid of global constant 0.0 (L(noll)).
+ * mpn/sparc64/addmul_1.asm: Likewise.
+
+2001-12-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c: Move final ASSERT to just before zero fill
+ loop.
+
+2001-12-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/get_str.c: Move ASSERTs out of loops. Split digit
+ generation code into two loops, saving a test of msize in the loop.
+
+2001-12-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/x86-defs.m4, mpn/x86/*/*.asm: Remove L / LF scheme putting
+ function name in local labels.
+
+ * mpn/generic/get_str.c: Use mpn_preinv_divrem_1, add a couple of
+ ASSERTs.
+
+ * mpn/generic/pre_divrem_1.c: New file.
+ * configure.in (gmp_mpn_functions): Add it.
+ * gmp-impl.h (mpn_preinv_divrem_1): Add prototype.
+ (USE_PREINV_DIVREM_1, MPN_DIVREM_OR_PREINV_DIVREM_1): New macros.
+ * tests/devel/try.c, tune/speed.c, tune/speed.h, tune/common.c,
+ tune/many.pl, tune/Makefile.am (mpn_preinv_divrem_1): Add testing and
+ measuring.
+ * tune/tuneup.c: Determine USE_PREINV_DIVREM_1.
+ * tune/pre_divrem_1.c: New file.
+ * tests/refmpn.c, tests/tests.h (refmpn_preinv_divrem_1): New function.
+
+ * tests/mpz/t-io_raw.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/inp_raw.c, mpz/out_raw.c: Rewrite.
+ * acinclude.m4, configure.in (AC_C_BIGENDIAN): New test.
+ * gmp-impl.h (BSWAP_LIMB): New macro.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): For a native compile, demand
+ executables will run, per AC_PROG_CC. This detects ABI=64 is unusable
+ in a native sparc solaris 7 build with the kernel in 32-bit mode.
+ * gmp.texi (ABI and ISA): Add notes on this, add an example configure
+ setting an ABI.
+
+ * tune/tuneup.c, configure.in: Print the gmp-mparam.h filename.
+ * tune/tuneup.c: Print the CPU frequency.
+
+ * tune/time.c, tune/speed.h: Add s390 "stck" method, flatten
+ conditionals in speed_time_init a bit, use have_* variables to let
+ some code go dead in speed_starttime and speed_endtime.
+
+ * tune/freq.c (speed_cpu_frequency_irix_hinv): New function.
+
+ * Makefile.am, configure.in: Restore mpfr.
+
+ * configure.in: Add --with-readline, AC_PROG_YACC and AM_PROG_LEX.
+ * demos/calc/calc.y, demos/calc/calclex.l: Add readline support, add
+ lucnum function.
+ * demos/calc/Makefile.am: Add calcread.c, calc-common.h, use $(YACC),
+ $(LEX) and $(LEXLIB).
+ * demos/calc/calcread.c, demos/calc/calc-common.h,
+ demos/calc/calc-config-h.in, demos/calc/README: New files.
+
+ * configure.in: Put demos/expr configs in expr-config.h.
+ * demos/expr/expr-config-h.in: New file.
+ * demos/expr/expr-impl.h: Renamed from expr-impl-h.in, get configs
+ from expr-config.h.
+ * demos/expr/Makefile.am: Update.
+
+ * demos/expr/exprfr.c: Use mpfr_sin and mpfr_cos, remove some spurious
+ returns.
+
+2001-12-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/mul_1.asm: Trim an instruction.
+ * mpn/sparc64/addmul_1.asm: Likewise.
+
+ * mpn/ia64/add_n.asm: Rewrite.
+ * mpn/ia64/sub_n.asm: Rewrite.
+
+2001-12-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/mul_1.asm: Rewrite.
+ * mpn/ia64/addmul_1.asm: Rewrite.
+ * mpn/ia64/submul_1.c: Use TMP_ALLOC_LIMBS.
+
+ * tests/devel/mul_1.c: Improve error message.
+ Accept command line argument for # of tests.
+ * tests/devel/addmul_1.c: Likewise.
+ * tests/devel/submul_1.c: Likewise.
+
+2001-12-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000.
+
+2001-12-18 Kevin Ryde <kevin@swox.se>
+
+ * gmpxx.h (gmp_randclass): Don't allow copy constructors or "=",
+ implementation by Gerardo.
+
+ * gmp-h.in (operator<<, operator>>): Remove parameter names from
+ prototypes, to keep out of user namespace.
+
+ * acinclude.m4 (GMP_FUNC_VSNPRINTF): Let the test program work as C++.
+
+2001-12-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/mul_1.asm: Rewrite.
+ * mpn/sparc64/addmul_1.asm: Rewrite.
+ * mpn/sparc64/submul_1.asm: Rewrite.
+
+ * mpn/sparc64/addmul1h.asm: Remove.
+ * mpn/sparc64/submul1h.asm: Remove.
+ * mpn/sparc64/mul1h.asm: Remove.
+
+2001-12-15 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (mpn_add, mpn_add_1, mpn_cmp, mpn_sub, mpn_sub_1): Follow
+ __GMP_INLINE_PROTOTYPES for whether to give prototype with inline.
+
+ * configure.in (i686*-*-*, pentiumpro-*-*, pentium[23]-*-*,
+ athlon-*-*, pentium4-*-*): Fall back on -march=pentium if
+ -march=pentiumpro or higher is not good (eg. solaris cmov).
+
+2001-12-12 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to
+ powerpc version.
+
+2001-12-12 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Detect cmov problems with gcc
+ -march=pentiumpro on solaris 2.8.
+
+ * tune/common.c, tune/speed.h: Allow for commas in count_leading_zeros
+ and count_trailing_zeros macros.
+
+ * demos/expr/Makefile.am: Distribute exprfr.c and exprfra.c.
+
+ * tune/Makefile.am (speed_ext_SOURCES): Should be speed-ext.c.
+
+2001-12-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/s390/addmul_1.asm: New file.
+ * mpn/s390/submul_1.asm: New file.
+ * mpn/s390/mul_1.asm: New file.
+ * mpn/s390/gmp-mparam.h: Update.
+
+2001-12-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, mp-h.in, gmp-impl.h: __GMP_DECLSPEC at start of
+ prototypes, for the benefit of Microsoft C.
+
+ * gmp.texi (Introduction to GMP): Mention ABI and ISA section.
+ (Known Build Problems): Recommend GNU sed on solaris 2.6.
+ (Assigning Integers): Direct feedback to bug-gmp.
+ (References): Typo Knuth vol 2 is from 1998.
+
+ * gmpxx.h (gmp_randclass): Add initializers for gmp_randinit_default
+ and gmp_randinit_lc_2exp_size.
+ gmp.texi (C++ Interface Random Numbers): Describe them.
+
+ * tests/misc/t-locale.c, tests/cxx/t-locale.cc: Ensure mpf_clear is
+ done when the localconv override doesn't work. Reported by Mike
+ Jetzer.
+
+ * printf/doprnti.c: Don't showbase on a zero mpq denominator.
+ * tests/misc/t-printf.c, tests/cxx/t-ostream.c: Add test cases.
+
+2001-12-04 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Known Build Problems): Update to gmp_randinit_lc_2exp_size
+ for the sparc solaris 2.7 problem.
+ (Reentrancy): SCO ctype.h affects all text-based input functions.
+ (Formatted Output Strings): Correction to the mpf example.
+ (Single Limb Division): Correction, should be q-1 not q+1.
+ (Extended GCD): Clarify why single-limb is inferior.
+ (Raw Output Internals): Clarify size is twos complement, note limb
+ order means _mp_d doesn't get directly read or written.
+ (Contributors): Clarify mpz_jacobi.
+ And a couple of formatting tweaks elsewhere.
+
+ * tests/cxx/t-headers.cc: New file.
+ * tests/cxx/Makefile.am: Add it.
+
+ * gmpxx.h: Add <strstream>, needed by mpf_class::get_str2.
+
+ * gmp-h.in (mpq_inp_str, mpn_hamdist): Add __GMP_DECLSPEC.
+
+2001-12-01 Torbjorn Granlund <tege@swox.com>
+
+ * Version 4.0 released.
+
+ * mpfr/README: Replace contents with explanation of why mpfr is gone.
+
+2001-12-01 Kevin Ryde <kevin@swox.se>
+
+ * Makefile.am, configure.in: Temporarily remove mpfr, just leave a
+ README.
+
+ * mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am.
+
+2001-11-30 Gerardo Ballabio <ballabio@sissa.it>
+
+ * tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: New files.
+ * tests/cxx/Makefile.am (check_PROGRAMS): Add them.
+
+2001-11-30 Kevin Ryde <kevin@swox.se>
+
+ * mpfr: Update to 2001-11-16. Patch TMP handling of agm.c and sqrt.c,
+ use plain mpn_sqrtrem in sqrt.c, separate .c files for floor and ceil,
+ disable an expression style assert in add1.c.
+
+ * mpn/s370: Rename to s390.
+ * configure.in (s3[6-9]0*-*-*): Update.
+ * mpn/Makefile.am (TARG_DIST): Add s390.
+
+ * mpz/fits_s.c, mpf/fits_s.c, mpf/fits_u.c: Remove files, unused since
+ change to .h style.
+
+2001-11-29 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-h.in: Declare mpz_get_d_2exp and mpf_get_d_2exp.
+ * Makefile.am: Add mpz/get_d_2exp$U.lo and mpf/get_d_2exp$U.lo.
+ * mpf/Makefile.am: Add get_d_2exp.c.
+ * mpz/Makefile.am: Add get_d_2exp.c.
+
+2001-11-29 Kevin Ryde <kevin@swox.se>
+
+ * mpn/*/gmp-mparam.h: Update measured thresholds.
+ * mpn/s370/gmp-mparam.h: New file.
+
+ * mpz/millerrabin.c: Mark for internal use only, for now.
+ * gmp.texi (Number Theoretic Functions): Remove documentation.
+
+2001-11-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/get_d_2exp.c: New file.
+ * mpz/get_d_2exp.c: New file.
+
+ * mpz/realloc2.c: Fix typo. Make more similar to mpz_realloc.
+ * mpz/realloc.c: Use __GMP_REALLOCATE_FUNC_LIMBS.
+
+2001-11-27 Gerardo Ballabio <ballabio@sissa.it>
+
+ * gmpxx.h, mpfrxx.h: Various updates and improvements.
+
+2001-11-27 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Useful Macros and Constants): Add gmp_version, add @findex
+ for mp_bits_per_limb.
+
+ * demos/perl/GMP.pm, demos/perl/GMP.xs: Use new style gmp_randinit's.
+ * demos/perl/test.pl: Update for this, and for mpz_perfect_power_p
+ handling of 0 and 1.
+
+2001-11-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/realloc.c: Clear variable when decreasing allocation to less than
+ needed. Misc updates.
+
+2001-11-25 Kevin Ryde <kevin@swox.se>
+
+ * tests/misc/t-locale.c: Avoid printf in the normal case, since the
+ replacement localeconv breaks it on SunOS 4.
+
+ * gmp.texi (Build Options, Notes for Package Builds): Note libgmpxx
+ depends on libgmp from same GMP version.
+
+ * acinclude.m4, configure.in (GMP_FUNC_SSCANF_WRITABLE_INPUT): New
+ test.
+ * scanf/sscanf.c, scanf/vsscanf.c: Use it to ensure sscanf input is
+ writable, if necessary.
+
+ * tests/misc/t-scanf.c: Ensure sscanf arguments are writable, always.
+ * configure.in (AC_CHECK_DECLS): Remove sscanf, no longer required.
+
+ * configure.in (none-*-*): Fix default CFLAGS setups.
+
+ * doc/configuration: Misc updates.
+
+2001-11-23 Kevin Ryde <kevin@swox.se>
+
+ * mpz/init2.c, mpz/realloc2.c: New files.
+ * Makefile.am, mpz/Makefile.am: Add them.
+ * gmp-h.in: Add prototypes.
+ * gmp.texi (Efficiency): Mention these instead of _mpz_realloc.
+ (Initializing Integers): Add documentation, reword other parts.
+
+2001-11-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/addmul_1.c: Fix logic for more_carries scalar loop.
+ * mpn/cray/ieee/submul_1.c: Likewise.
+
+2001-11-20 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Known Build Problems): Note an out of memory on DJGPP.
+ (Function Classes): Update function counts.
+ Misc tweaks elsewhere.
+
+ * configure.in (AC_CHECK_DECLS): Add sscanf.
+ * tests/misc/t-scanf.c: Use it, for the benefit of SunOS 4.
+
+ * tal-debug.c, gmp-impl.h: More checks of TMP_DECL/TMP_MARK/TMP_FREE
+ consistency.
+
+ * mpfr/Makefile.am (AR): Explicit AR=@AR@ to override automake
+ default, necessary for powerpc64 ABI=aix64.
+
+2001-11-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs.
+
+2001-11-18 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (--enable-fft): Make this the default.
+ * gmp.texi (Build Options): Update.
+
+ * Makefile.am (libmp_la_DEPENDENCIES): Revise mpz objects needed by
+ new mpz/powm.c.
+
+ * gmp.texi (Random State Initialization): Add gmp_randinit_default and
+ gmp_randinit_lc_2exp_size, mark gmp_randinit as obsolete.
+ (Random State Seeding): New section, taken from "Random State
+ Initialization" and "Random Number Functions".
+
+ * configure.in (AC_CHECK_DECLS): Add fgetc, fscanf, ungetc.
+ * scanf/fscanffuns.c: Use these, for the benefit of SunOS 4.
+
+ * gmp-impl.h, gmp-h.in (__gmp_default_fp_limb_precision): Move back to
+ gmp-impl.h now not required for inlined mpf.
+
+ * randlc2s.c (gmp_randinit_lc_2exp_size): New file, the size-based LC
+ selection from rand.c.
+ * rand.c (gmp_randinit): Use it.
+ * randdef.c (gmp_randinit_default): New file.
+ * gmp-impl.h (RANDS): Use it.
+ (ASSERT_CARRY): New macro.
+ * gmp-h.in (gmp_randinit_default, gmp_randinit_lc_2exp_size: Add
+ prototypes.
+ * Makefile.am (libgmp_la_SOURCES): Add randdef.c and randlc2s.c.
+
+ * printf/asprntffuns.c: Include config.h before using its defines.
+
+ * gmp-impl.h: Move C++ <string> to top of file to avoid the memset
+ redefine upsetting configure tests. Remove <iostream> since <iosfwd>
+ in gmp.h suffices.
+
+2001-11-16 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Integer Exponentiation): mpz_powm supports negative
+ exponents.
+ (Assigning Floats, I/O of Floats, C++ Formatted Output, C++ Formatted
+ Input): Decimal point follows locale.
+ (Formatted Output Strings): %n accepts any type.
+ (Formatted Input Strings): New section.
+ (Formatted Input Functions): New section.
+ (C++ Class Interface): Corrections and clarifications suggested by
+ Gerardo.
+
+ * scanf/doscan.c, scanf/fscanf.c, scanf/fscanffuns.c, scanf/scanf.c,
+ scanf/sscanf.c, scanf/sscanffuns.c, scanf/vfscanf.c, scanf/vscanf.c,
+ scanf/vsscanf.c, scanf/Makefile.am, tests/misc/t-scanf.c: New files.
+ * gmp-h.in, gmp-impl.h, Makefile.am, configure.in: Consequent
+ additions.
+
+ * tests/misc: New directory.
+ * tests/misc/Makefile.am: New file.
+ * tests/misc/t-locale.c: New file.
+ * tests/misc/t-printf.c: Moved from tests/printf.
+ * tests/printf: Remove directory.
+ * configure.in, tests/Makefile.am: Update.
+
+ * tests/cxx/t-locale.cc: New file.
+ * tests/cxx/Makefile.am: Add it.
+
+ * mpf/set_str.c, cxx/ismpf.cc: Use localeconv for the decimal point.
+
+ * acinclude.m4 (GMP_ASM_X86_MCOUNT): Update to $lt_prog_compiler_pic
+ for current libtool, recognise non-PIC style mcount in windows DLLs.
+
+ * gmp-impl.h (__gmp_replacement_vsnprintf): Add prototype.
+
+ * gmp-impl.h (__gmp_rands, __gmp_rands_initialized,
+ modlimb_invert_table): Add __GMP_DECLSPEC for the benefit of test
+ programs using them from a windows DLL.
+ * longlong.h (__clz_tab): Ditto.
+
+ * mpn/x86/t-zdisp2.pl: New file.
+
+ * mpn/x86/pentium4/README: New file.
+
+2001-11-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm.c (HANDLE_NEGATIVE_EXPONENT): #define to 1.
+ * tests/mpz/reuse.c (main): Use mpz_invert to avoid undefined mpz_powm
+ cases.
+
+2001-11-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm_ui.c: Rewrite along the lines of mpz/powm.c (except still no
+ redc).
+ * mpz/powm.c: Adjust for negative b, after exponentiation done. Add
+ (still disabled) code for handling negative exponents. Misc cleanups.
+
+2001-11-14 Kevin Ryde <kevin@swox.se>
+
+ * mpf/out_str.c: Use localeconv for the decimal point.
+
+ * tests/misc.c (tests_rand_end): Use time() if gettimeofday() not
+ available (eg. on mingw).
+
+2001-11-11 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in: Remove parameter names from prototypes, to keep out of
+ application namespace.
+
+2001-11-08 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_GCC_VERSION_GE): Fix sed regexps to work on
+ Solaris 8.
+
+ * printf/doprnt.c: Support %n of all types, per glibc.
+
+ * gmp-h.in, gmp-impl.h, mpf/abs.c, mpf/neg.c, mpf/get_prc.c,
+ mpf/get_dfl_prec.c, mpf/set_dfl_prec.c, mpf/set_prc_raw.c,
+ mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Revert mpf inlining, in order
+ to leave open the possibility of keeping binary compatibility if mpf
+ becomes mpfr.
+
+ * mpn/x86/k7/mmx/lshift.asm, mpn/x86/k7/mmx/rshift.asm: Use Zdisp to
+ force code size for computed jumps.
+ * mpn/x86/k6/mod_34lsub1.asm, mpn/x86/k6/k62mmx/copyd.asm: Use Zdisp
+ to force good code alignment.
+ * mpn/x86/x86-defs.m4 (Zdisp): More instructions.
+
+ * mpn/x86/pentium/sqr_basecase.asm, mpn/x86/k7/mmx/mod_1.asm,
+ mpn/x86/k7/mmx/popham.asm: Remove some unnecessary "0" address offsets.
+
+ * mpq/set_si.c, mpq/set_ui.c: Set _mp_den._mp_size correctly if den==0.
+
+2001-11-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/hppa/hppa1_1/udiv_qrnnd.asm: Work around gas bug.
+
+ * mpn/asm-defs.m4 (PROLOGUE): Change alignment to 8 (probably a good
+ idea in general; required for hppa/hppa1_1/udiv_qrnnd.asm).
+
+2001-11-06 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'.
+ (MPN_COPY_DECR): Likewise.
+
+2001-11-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm.c: Call mpn functions, not mpz functions, for computation
+ mod m. Streamline allocations to use a mixture of stack allocation and
+ heap allocation. Add currently disabled phi(m) exponent reduction
+ code. Misc optimizations and cleanups.
+
+2001-11-05 Kevin Ryde <kevin@swox.se>
+
+ * mpq/inp_str.c: Remove unused variable "ret".
+
+ * mpn/x86/k7/sqr_basecase.asm: Fix a 0(%edi) to use Zdisp, so the
+ computed jumps hit the right spot on old gas.
+
+ * mpq/canonicalize.c: DIVIDE_BY_ZERO if denominator is zero.
+
+ * mpn/lisp/gmpasm-mode.el (comment-start-skip): Correction to the way
+ the first \( \) pair is setup.
+ (gmpasm-font-lock-keywords): Don't fontify the space before a "#" etc.
+ Misc tweaks to some comments.
+
+2001-11-03 Torbjorn Granlund <tege@swox.com>
+
+ * tests/refmpn.c (refmpn_overlap_p): Reverse return values.
+
+2001-11-02 Kevin Ryde <kevin@swox.se>
+
+ * tune/many.pl: Setup CFLAGS_PIC and ASMFLAGS_PIC, since that's no
+ longer done by configure.
+
+ * mpn/x86/pentium4/mmx/popham.asm: New file.
+
+ * mpn/x86/x86-defs.m4 (psadbw): New macro.
+ * mpn/x86/k7/mmx/popham.asm: Use it.
+
+ * tests/refmpn.c (refmpn_overlap_p): New function, independent of
+ MPN_OVERLAP_P.
+
+2001-10-31 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-powm.c: Print proper error message when finding
+ discrepancy.
+
+2001-10-31 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/mod_34lsub1.asm: New file.
+ * mpn/x86/k7/mod_34lsub1.asm: New file.
+ * mpn/x86/mod_34lsub1.asm: New file.
+
+2001-10-30 Kevin Ryde <kevin@swox.se>
+
+ * tests/printf/t-printf.c (check_misc): Add checks from the glibc docs.
+ (check_vasprintf, check_vsnprintf): Run these unconditionally.
+
+ * gmp-impl.h (ASSERT_MPQ_CANONICAL): New macro.
+ * mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for
+ canonical inputs, where correctness depends on it.
+
+ * mpn/lisp/gmpasm-mode.el (comment-start-skip): Add "dnl".
+
+2001-10-27 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Remove some unused variables.
+ (main): Allocate more buffer space to accommodate minus sign.
+
+2001-10-27 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h, mpn/asm-defs.m4, configure.in, tune/speed.h,
+ tune/speed.c, tune/common.c, tune/many.pl, tests/devel/try.c: Add
+ mpn_mod_34lsub1.
+ * tests/refmpn.c, tests/tests.h (refmpn_mod_34lsub1): New function.
+
+ * mpn/generic/mod_34lsub1.c: New file.
+ * mpn/x86/k6/mod_34lsub1.asm: New file.
+ * mpn/x86/pentium4/sse2/mod_34lsub1.asm: New file.
+ * mpn/x86/x86-defs.m4 (Zdisp): Add another instruction.
+
+ * gmp-h.in, gmpxx.h: Use <iosfwd> not whole <iostream>.
+
+ * gmp.texi (Known Build Problems): Add note on test programs with
+ Windows DLLs.
+
+2001-10-26 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpq/t-get_d.c: Limit the size of "eps" for vax.
+
+ * gmp.texi (maybepagebreak): New macro, use it in a few places.
+ (Notes for Particular Systems): C++ Windows DLLs are not supported.
+ (Known Build Problems): Note sparc solaris 2.7 gcc 2.95.2 shared
+ library problems.
+ (Autoconf): Tweak version numbers shown.
+ (Integer Roots): mpz_perfect_square_p and mpz_perfect_power_p consider
+ 0 and 1 perfect powers, mpz_perfect_power_p accepts negatives.
+ (Number Theoretic Functions): Add mpz_millerrabin, combined with a
+ reworded mpz_probab_prime_p.
+ (Formatted Output Strings): Misc clarifications.
+ (Formatted Output Functions): gmp_asprintf, gmp_vasprintf,
+ gmp_snprintf, gmp_vsnprintf always available.
+ (C++ Formatted Output): Misc rewordings.
+ (Formatted Input): New chapter.
+ (C++ Class Interface): New chapter, by Gerardo and me.
+ (Language Bindings): Update GMP++ now in GMP.
+ (C++ Interface Internals): New section, by Gerardo and me.
+
+ * printf/repl-vsnprintf.c: New file.
+ * configure.in, acinclude.m4, Makefile.am, printf/Makefile.am: Use it
+ if libc vsnprintf missing or bad.
+ * configure.in (AC_CHECK_FUNCS): Add strnlen.
+
+ * printf/snprntffuns.c, printf/vasprintf.c: Use
+ __gmp_replacement_vsnprintf if libc vsnprintf not available.
+ * printf/asprintf.c, printf/snprintf.c, printf/vasprintf.c,
+ printf/vsnprintf.c: Provide these functions unconditionally.
+ * acinclude.m4 (GMP_FUNC_VSNPRINTF): Remove warning about omissions
+ when vsnprintf not available.
+
+2001-10-24 Kevin Ryde <kevin@swox.se>
+
+ * configure, aclocal.m4: Regenerate with a libtool patch for a stray
+ quote in AC_LIBTOOL_PROG_LD_SHLIBS under mingw and cygwin.
+
+ * gmp-impl.h (modlimb_invert): More comments.
+
+ * printf/doprnt.c, printf/doprnti.c: Use the precision field to print
+ leading zeros.
+ * tests/printf/t-printf.c: Test this.
+ * cxx/osdoprnti.cc, gmp-impl.h: Ignore precision in operator<<.
+
+ * tune/speed.c, tune/speed.h, tune/common.c: Add mpn_mul_1_inplace.
+
+2001-10-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/pprime_p.c (mpz_millerrabin): Remove function and its descendant.
+
+ * mpz/millerrabin.c: New file with code from pprime.c.
+ * mpz/Makefile.am: Compile millerrabin.c.
+ * Makefile.am (MPZ_OBJECTS): Ditto.
+ * gmp-h.in: Declare mpz_millerrabin.
+
+2001-10-22 Torbjorn Granlund <tege@swox.com>
+
+ * tests/mpz/t-perfsqr.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+
+ * demos/factorize.c (factor): Check for number to factor == 0.
+ (main): When invoked without arguments, read from stdin.
+
+ * mpz/perfpow.c: Add code to handle negative perfect powers ((-b)^odd).
+ Treat 0 and 1 as perfect powers.
+
+ * mpn/sparc32/v9/sqr_diagonal.asm: Jump past .align.
+
+2001-10-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/perfsqr.c (sq_res_0x100): Remove bogus final `,'.
+ (mpn_perfect_square_p): Suppress superfluous `&1' in sq_res_0x100 test.
+ (mpn_perfect_square_p, O(n) test): Improve comments. Combine remainder
+ tests for some small primes. Don't share code for different limb
+ sizes. Use single `if' with many `||' for better code density.
+
+2001-10-22 Kevin Ryde <kevin@swox.se>
+
+ * demos/perl/GMP.xs (mutate_mpz, tmp_mpf_grow): Make these "static".
+
+ * mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm
+ (mpn_popcount_table): Use GSYM_PREFIX.
+
+2001-10-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/*.asm: Add some measured speeds on various x86s.
+
+ * tests/mpz/reuse.c, tests/mpf/reuse.c: Disable tests when using a
+ windows DLL, because certain global variable usages won't compile.
+
+ * configure.in (AC_CHECK_FUNCS): Add alarm.
+ * tests/spinner.c: Conditionalize alarm and SIGALRM availability, for
+ the benefit of mingw32.
+
+ * acinclude.m4 (GMP_ASM_TYPE, GMP_ASM_SIZE): Suppress .type and .size
+ on COFF.
+
+ * acinclude.m4 (GMP_PROG_HOST_CC): New macro.
+ * configure.in: Use it for windows DLL cross-compiles.
+ * aclocal.m4, configure: Regenerate with libtool patch to hold HOST_CC
+ in the generated libtool script.
+
+ * aclocal.m4, configure: Regenerate with libtool patch to suppress
+ warnings when probing command line limit on FreeBSD.
+
+ * demos/qcn.c (M_PI): Define if not already provided, helps mingw32.
+
+2001-10-17 Kevin Ryde <kevin@swox.se>
+
+ * printf/doprnt.c: Use <stdint.h> for intmax_t.
+
+ * longlong.h: Recognise __sparcv8 for gcc on Solaris. Reported by
+ Mark Mentovai <mark@mentovai.com>.
+
+ * gmp-impl.h (gmp_allocated_string): No need for inline on member funs.
+
+2001-10-16 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Debugging): Add mpatrol.
+ (Integer Comparisons, Comparing Rationals, Float Comparison): Index
+ entries for sign tests.
+ (I/O of Floats): Clarify mpf_out_str exponent is in decimal.
+ (C++ Formatted Output): mpf_t operator<< exponent now in decimal.
+ (FFT Multiplication): Use an ascii art sigma.
+ (Contributors): Add Gerardo Ballabio.
+
+ * cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Always give mpf_t
+ exponent in decimal, irrespective of ios::hex or ios::oct.
+ * tests/cxx/t-ostream.cc (check_mpf): Update.
+
+ * printf/doprnt.c: Support %lln and %hhn.
+
+ * mpn/x86/pentium4/sse2/submul_1.asm: Use a psubq to negate the
+ initial carry (helps the submul_1c case), and improve the comments.
+
+2001-10-11 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4, configure.in (GMP_IMPL_H_IEEE_FLOATS): New macro.
+
+ * ltmain.sh: Send some rm errors to /dev/null, helps during compiles
+ on Solaris 2.7 and HP-UX 10.
+
+ * tal-notreent.c: Renamed from stack-alloc.c.
+ * Makefile.am, acinclude.m4, gmp-impl.h: Update.
+
+ * gmp-h.in: Don't give both prototypes and inlines, except on gcc.
+
+ * gmp-h.in, gmp-impl.h: Use #includes to get necessary standard
+ classes, add std:: to prototypes.
+ * cxx/*.cc, tests/cxx/t-ostream.cc: Add "use namespace std".
+ * acinclude.m4 (GMP_PROG_CXX_WORKS): Ditto.
+
+ * tests/*/Makefile.in, mpfr/tests/Makefile.in: Regenerate with
+ automake patch to avoid Ultrix problem with empty $(TESTS).
+
+ * */Makefile.in: Regenerate with automake patch to only rm *_.c in
+ "make clean" when ansi2knr actually in use, helps DOS 8.3.
+
+ * Makefile.in: Regenerate with automake patch to fix stamp-h
+ numbering, avoiding an unnecessary config.status run.
+
+2001-10-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/hppa/hppa1_1/udiv_qrnnd.asm: Use L macros for labels.
+ Quote L reloc operator.
+
+ * gmp-impl.h: Declare class string.
+
+ * mpn/asm-defs.m4 (INT32, INT64): Quote $1 to prevent further
+ expansion.
+
+ * mpn/alpha/ev6/mul_1.asm: New file.
+
+2001-10-09 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Introduction to GMP): Add pentium 4 to optimized CPUs.
+ (Build Options): Note macos directory.
+ (Notes for Package Builds): GMP 4 series binary compatible with 3.
+ (Known Build Problems): Remove $* and ansi2knr note, now fixed, except
+ possibly under --host=none.
+ (Formatted Output Strings): Remove -1 prec for all digits.
+
+ * mpz/add.c, mpz/sub.c: Don't use mpz path on #include (helps macos).
+ * mpbsd/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpz.
+
+ * printf/doprnt.c, tests/printf/t-printf.c: Remove support for %.*Fe
+ prec -1 meaning all digits.
+
+ * acinclude.m4 (GMP_PROG_AR): Override libtool, use AR_FLAGS="cq".
+ (GMP_HPC_HPPA_2_0): Print version string to config.log.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Remove check-news (permission notice
+ in NEWS file is too big).
+ (dist-hook): Don't distribute numbered or unnumbered emacs backups.
+
+ * Makefile.am, cxx/Makefile.am: Updates for Gerardo's stuff.
+
+2001-10-09 Gerardo Ballabio <ballabio@sissa.it>
+
+ * cxx/isfuns.cc: New file.
+ * gmp-impl.h: Add prototypes.
+ * cxx/ismpf.cc, cxx/ismpq.cc, cxx/ismpz.cc: New files.
+ * gmp-h.in: Add prototypes.
+ * gmpxx.h, mpfrxx.h: New files.
+
+2001-10-08 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (with_tags): Establish a default based on --enable-cxx.
+
+ * aclocal.m4: Regenerate with libtool patches for sed char range to
+ help Cray, LTCC quotes and +Z warnings grep to help HP-UX.
+
+ * gmp-impl.h (doprnt_format_t, doprnt_memory_t, doprnt_reps_t,
+ doprnt_final_t): Use _PROTO.
+
+2001-10-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX.
+
+ * mpn/hppa: Convert files to `.asm'.
+
+2001-10-05 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makeasm.am (.S files): Revert to separate CPP and CCAS, use
+ cpp-ccas, and only pass CPPFLAGS to CPP, not whole CFLAGS.
+ * mpn/cpp-ccas: New file.
+ * mpn/Makefile.am (EXTRA_DIST): Add it.
+
+ * tune/common.c, tune/speed.h: Change SPEED_ROUTINE_MPN_COPY_CALL uses
+ to SPEED_ROUTINE_MPN_COPY or new SPEED_ROUTINE_MPN_COPY_BYTES. Avoids
+ macro expansion problems on Cray.
+
+ * configure.in (AC_PROG_CXXCPP): Add this, to make libtool happier.
+
+2001-10-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/rrandomb.c (gmp_rrandomb): Change bit_pos to be 0-based (was
+ 1-based); shift 2 (was 1) when making bit mask. These two changes
+ avoid undefined shift counts.
+ (gmp_rrandomb): Avoid most calls to _gmp_rand by caching random values.
+
+ * mpn/generic/random2.c: Changes for mirroring mpz/rrandomb.c.
+
+2001-10-04 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Add --enable-cxx.
+ (Notes for Particular Systems): Mention pentium4 performance and SSE2.
+ (Known Build Problems): Remove vax jsobgtr note, no longer needed.
+ (Converting Floats): Tweak mpf_get_str description.
+ (Low-level Functions): Correction to mpn_gcdext destination space
+ requirements.
+ (C++ Formatted Output): New section.
+ (Language Bindings): Add ALP
+ (Contributors): Add Paul Zimmermann's square root, update my things.
+
+ * acinclude.m4 (GMP_PROG_CC_IS_GNU, GMP_PROG_CXX_WORKS): Send compiler
+ errors to config.log.
+
+ * mpq/Makefile.am (INCLUDES): Remove -DOPERATION_$*, not needed.
+
+ * mpn/x86/*.asm: Change references to old README.family to just README.
+
+ * mpz/README: Remove file, now adequately covered in the manual.
+
+2001-10-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/copyi.asm: New file.
+ * mpn/x86/pentium4/copyd.asm: New file.
+
+ * gmp-impl.h: Implement separate MPN_COPY_INCR and MPN_COPY_DECR
+ macros for CRAY systems.
+ (CRAY _MPN_COPY): Delete.
+
+2001-10-02 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-popcount.c (check_data): Use "~ (unsigned long) 0" to
+ avoid compiler warnings on sco.
+
+ * mpbsd/Makefile.am: Compile mpz files directly, no copying.
+ Use mpz/add.c and mpz/sub.c rather than mpz/aors.c.
+ (INCLUDES): Remove -DOPERATION_$*, no longer needed (by mpz).
+
+ * mpz/aors.h: Renamed from mpz/aors.c.
+ * mpz/add.c, mpz/sub.c: New files, using mpz/aors.h.
+ * mpz/aors_ui.h: Renamed from mpz/aors_ui.c.
+ * mpz/add_ui.c, mpz/sub_ui.c: New files, using mpz/aors_ui.h.
+ * mpz/fits_s.h: Renamed and adapted from mpz/fits_s.c.
+ * mpz/fits_sshort.c, mpz/fits_sint.c, mpz/fits_slong.c: New files.
+ * mpz/mul_i.h: Renamed from mpz/mul_siui.c.
+ * mpz/mul_ui.c, mpz/mul_ui.c: New files, using mpz/mul_i.h.
+ * mpz/Makefile.am: Consequent updates.
+ (INCLUDES): Remove -DOPERATION_$*.
+
+ * mpf/fits_s.h: Renamed and adapted from mpf/fits_s.c.
+ * mpf/fits_sshort.c, mpf/fits_sint.c, mpf/fits_slong.c: New files.
+ * mpf/fits_u.h: Renamed and adapted from mpf/fits_u.c.
+ * mpf/fits_ushort.c, mpf/fits_uint.c, mpf/fits_ulong.c: New files.
+ * mpf/Makefile.am: Consequent updates.
+ (INCLUDES): Remove -DOPERATION_$*.
+
+ * cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Don't use ios::hex etc
+ as cases in a switch, they're not constant in g++ 3.0.
+
+ * mpn/Makeasm.am (.s.o, .s.obj, .S.o, .S.obj, .asm.o, .asm.obj):
+ Locate source file with test -f the same as automake.
+ (.S): Let CCAS do the preprocessing, and run libtool for .S.lo.
+ (.asm.lo): Run libtool via m4-ccas to get new style foo.lo right.
+ (COMPILE_FLAGS): Add $(DEFAULT_INCLUDES), per new automake.
+ * mpn/m4-ccas: New file.
+ * mpn/Makefile.am (EXTRA_DIST): Add it.
+ * mpn/asm-defs.m4: Add m4_not_for_expansion(`DLL_EXPORT').
+ * mpn/x86/x86-defs.m4: Undefine PIC if DLL_EXPORT is set.
+ * configure.in (CFLAGS_PIC, ASMFLAGS_PIC): Remove, no longer needed.
+
+ * acinclude.m4 (GMP_FUNC_VSNPRINTF): Warn what's omitted when
+ vsnprintf not available.
+
+ * mpn/underscore.h: Remove file, not used since m68k converted to asm.
+ * mpn/Makefile.am (EXTRA_DIST): Remove it.
+
+ * tests/refmpz.c: Add <stdlib.h>, for free().
+
+2001-10-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic
+ simplifications.
+ * mpn/x86/pentium4/sse2/addmul_1.asm: Comment.
+
+2001-10-01 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (--enable-cxx): New option for C++ support.
+ Add cxx and tests/cxx subdirectories.
+ * ltmain.sh, aclocal.m4: Update to libtool 2001-09-30.
+
+ * cxx/Makefile.am, cxx/Makefile.in, cxx/osdoprnti.cc, cxx/osfuns.cc,
+ cxx/osmpf.cc, cxx/osmpq.cc, cxx/osmpz.cc: New files.
+ * Makefile.am: Add them, in new libgmpxx.
+ * gmp-h.in, gmp-impl.h: Prototypes and support.
+ * tests/cxx/Makefile.am, tests/cxx/Makefile.in,
+ tests/cxx/t-ostream.cc: New files.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL,
+ SPEED_ROUTINE_MPN_GCDEXT_ONE): mpn_gcdext needs size+1 for
+ destinations. Found by Torbjorn.
+
+ * gmp-h.in (__GNU_MP__, __GNU_MP_VERSION): Bump to 4.0.
+ * mp-h.in (__GNU_MP__): Ditto.
+ * gmp.texi, Makefile.am, compat.c: Amend version 3.2 to 4.0.
+
+ * acinclude.m4 (GMP_PROG_CXX_WORKS): New macro.
+ (GMP_PROG_CC_WORKS): Write "conftest" test program, not a.out.
+
+ * gmp-impl.h (struct gmp_asprintf_t): Moved from printf/vasprintf.c.
+ (GMP_ASPRINTF_T_INIT): New macro.
+ (GMP_ASPRINTF_T_NEED): New macro, adapted from vasprintf.c NEED().
+ * printf/vasprintf.c: Use these.
+
+ * printf/asprntffuns.c: New file.
+ * printf/Makefile.am, Makefile.am: Add it.
+ * printf/asprntffuns.c, printf/vasprintf.c, gmp-impl.h
+ (__gmp_asprintf_memory, __gmp_asprintf_reps, __gmp_asprintf_final):
+ Move to asprntffuns.c, rename to __gmp and make global, remove
+ spurious formal parameters from __gmp_asprintf_final.
+
+ * configure.in (j90-*-*, sv1-*-*): Don't duplicate $path in $add_path.
+ (*-*-mingw*): Don't assemble with -DPIC (as per cygwin).
+
+ * printf/snprntffuns.c (gmp_snprintf_final): Remove spurious formal
+ parameters.
+
+ * tune/tuneup.c (POWM_THRESHOLD): Reduce stop_factor to 1.1 to help
+ Cray vector systems.
+
+ * tests/misc.c (tests_rand_start): Print GMP_CHECK_RANDOMIZE=NN to
+ facilitate cut and paste when re-running.
+ * tests/mpz/t-inp_str.c (check_data): Add more diagnostic prints.
+
+2001-09-30 Kent Boortz <kent@swox.com>
+
+ * macos/configure, macos/Makefile.in, macos/README: Updates for gmp 4.
+ * gmp-h.in (_GMP_H_HAVE_FILE): Recognise Apple MPW.
+
+2001-09-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/submul_1.c: Rewrite. Streamline multiplications;
+ use `majority' logic.
+
+2001-09-27 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug.
+
+2001-09-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/gmp-mparam.h: New file.
+
+2001-09-26 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium4/sse2/dive_1.asm: New file.
+ * mpn/x86/pentium4/sse2/submul_1.asm: New file.
+ * mpn/x86/pentium4/sse2/sqr_basecase.asm: New file.
+
+ * mpn/x86/pentium/copyi.asm: New file, based on past work by Torbjorn.
+ * mpn/x86/pentium/copyi.asm: New file, ditto.
+ * mpn/x86/pentium/com_n.asm: Rewrite, ditto.
+
+ * printf/snprntffuns.c (gmp_snprintf_format): Copy va_list in case
+ vsnprintf trashes it.
+ * printf/vasprintf.c (gmp_asprintf_format): Ditto.
+ * gmp-impl.h, doprnt.c (va_copy): Move to gmp-impl.h.
+
+ * tests/mpz/t-cmp_d.c (check_low_z_one): Patch by Torbjorn for vax
+ limited float range.
+
+2001-09-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/vax/lshift.s: Change `jsob*' to `sob*'.
+ * mpn/vax/rshift.s: Likewise.
+
+2001-09-23 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium4/sse2/mul_basecase.asm: Some simple but real code.
+
+ * printf/doprnt.c: Use va_copy for va_list variables, copy function
+ parameter in case it's call-by-reference.
+
+ * tune/freq.c (speed_cpu_frequency_bsd_dmesg): New function.
+ (speed_cpu_frequency_table): Use it.
+
+ * tune/many.pl (popcount, hamdist): Fix declared return value.
+ (sb_divrem_mn): Remove a spurious duplicate entry.
+ (CLEAN): Add tmp-$objbase.c when using that for .h files.
+ (macro_speed): Give a default for .h files.
+ Add ATTRIBUTE_CONST or __GMP_ATTRIBUTE_PURE as appropriate.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_MOD_CALL,
+ SPEED_ROUTINE_MPN_PREINV_MOD_1, SPEED_ROUTINE_MPN_POPCOUNT,
+ SPEED_ROUTINE_MPN_HAMDIST, SPEED_ROUTINE_MPN_GCD_1N,
+ SPEED_ROUTINE_MPN_GCD_1_CALL, SPEED_ROUTINE_MPZ_JACOBI): Use return
+ values so gcc 3 won't discard calls to pure or const functions.
+ (mpn_mod_1_div, mpn_mod_1_inv): Add __GMP_ATTRIBUTE_PURE.
+
+2001-09-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/mul_basecase.asm: New file, placeholder
+ for real code, hiding the default x86 mul_basecase.asm.
+
+2001-09-22 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_PREREQ): Bump to 2.52.
+ (m4_pattern_forbid, m4_pattern_allow): New calls, forbid GMP_.
+ (AC_CHECK_HEADERS): Remove sys/types.h, already done by autoconf.
+ * acinclude.m4, configure.in (GMP_GCC_NO_CPP_PRECOMP): New macro.
+
+ * tests/devel/try.c (TYPE_PREINV_MOD_1): Don't run size==0.
+ (malloc_region): Need fd=-1 for mmap MAP_ANON on BSD.
+
+2001-09-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/cong.c (mpz_congruent_p): Fix one-limb c<d test.
+
+ * longlong.h: Rewrite __i370__ smul_ppmm; enable also for __s390__.
+
+ * configure.in: Add support for IBM 360, 370, 390 families.
+
+2001-09-20 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium4/sse2/diveby3.asm: New file.
+ * mpn/x86/pentium4/sse2/mode1o.asm: New file.
+
+2001-09-16 Kevin Ryde <kevin@swox.se>
+
+ * printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g.
+ * tests/printf/t-printf.c (check_f): More test cases.
+
+2001-09-15 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-h.in (__GMPN_AORS_1): Remove param TEST, add OP and CB.
+ Postpone zeroing of (cout).
+ (__GMPN_ADD_1, __GMPN_SUB_1): Corresponding changes.
+
+2001-09-14 Kevin Ryde <kevin@swox.se>
+
+ * ChangeLog: Merge in tests/rand/ChangeLog.
+ * tests/rand/ChangeLog: Remove file.
+
+ * printf/doprnt.c: Fix handling of a plain format after a GMP one; no
+ need to protect against negative precision internally.
+ * tests/printf/t-printf.c (check_misc): More checks.
+
+2001-09-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have
+ HAVE_NATIVE_... defined.
+
+2001-09-11 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, gmp-h.in (__GMP_HAVE_HOST_CPU_FAMILY_power,
+ __GMP_HAVE_HOST_CPU_FAMILY_powerpc): New AC_SUBSTs.
+ * gmp-h.in (__GMPN_COPY_INCR): Use them to select the power/powerpc
+ code, rather than preprocessor defines.
+
+ * acinclude.m4, configure.in (GMP_H_ANSI): New macro.
+
+ * gmp-h.in (__GMP_EXTERN_INLINE): Add a definition for SCO 8 cc.
+
+ * gmp-h.in, version.c (gmp_version): Make the pointer "const" as well
+ as the string.
+
+ * acinclude.m4, configure.in (GMP_PROG_CC_IS_XLC): Recognise xlc when
+ invoked under another name (cc, xlc128, etc).
+ * acinclude.m4 (GMP_PROG_CC_IS_GCC): Print a message when recognised.
+
+2001-09-11 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc.
+ * mp-h.in: Likewise.
+
+2001-09-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/mmx/lshift.asm: New file.
+ * mpn/x86/pentium4/mmx/rshift.asm: New file.
+
+ * tests/mpn/t-iord_u.c (check_incr_data): Work around HP compiler bug.
+ (check_decr_data): Likewise.
+
+2001-09-08 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Integer Logic and Bit Fiddling): Update mpz_hamdist
+ behaviour, clarify mpz_popcount a touch.
+ (Language Bindings): Add mlton, fix alphabetical order.
+ (Single Limb Division): Describe 2 or 1/2 limbs at a time style.
+
+ * configure.in (AC_CHECK_FUNCS): Add mmap.
+ * tests/devel/try.c (malloc_region): Use mmap if available.
+
+ * tests/refmpz.c, tests/tests.h (refmpz_hamdist): New function.
+ * tests/mpz/t-hamdist.c: New file.
+ * tests/mpz/Makefile.am: Add it.
+
+ * mpz/hamdist.c: Support neg/neg operands.
+
+ * macos/Makefile.in: Remove dual compile of mpq/aors.c and
+ mpn/generic/popham.c.
+
+ * gmp-impl.h (popc_limb): New macro, adapted from mpn/generic/popham.c.
+ For 64-bits reuse 0x33...33 constant.
+ * mpn/generic/popcount.c, mpn/generic/hamdist.c: Split from popham.c,
+ use popc_limb macro, remove unused "i", don't bother with "register"
+ qualifiers.
+ * mpn/generic/popham.c: Remove file.
+
+ * ltmain.sh, configure, aclocal.m4: Update to libtool 1.4.1, with one
+ ltdll.c generation patch.
+ * doc/configuration: Misc updates, note libtool patch used.
+
+ * mpn/x86/pentium4/sse2/mul_1.asm: Use pointer increments not indexed
+ addressing, to get 4.0 c/l flat.
+
+ * tests/mpq/t-cmp_si.c (check_data): Use ULONG_MAX for denominators.
+
+ * tests/misc.c (mpz_negrandom): Use given rstate, not RANDS.
+
+2001-09-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/pentium4/sse2/addmul_1.asm: New file.
+
+2001-09-04 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c: Define a HAVE for each speed_cpu_frequency routine to
+ avoid duplicating conditionals.
+ (speed_cpu_frequency_sco_etchw): New function.
+ (speed_cpu_frequency_table): Use it.
+ * tune/README: Mention SCO openunix 8 /etc/hw.
+
+ * mpz/fib_ui.c: Use ?: to avoid a gcc 3 bug on powerpc64.
+ Store back a carry for limb<long.
+
+ * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/k7/mmx/mod_1.asm,
+ mpn/x86/p6/mmx/divrem_1.asm: Fix a couple of comments.
+
+ * config.guess: Give m68020 for 68020 or better, not m68k.
+ * configfsf.guess: Update to 2001-09-04.
+
+2001-09-02 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (m68k-*-*): Let m68k mean 68000, not 68020.
+ * gmp.texi (Notes for Particular Systems): Update.
+
+ * gmp-impl.h (union ieee_double_extract) [m68k]: Use longs, since int
+ might be only 16 bits.
+
+ * tests/mpq/t-aors.c: New file.
+ * tests/mpq/Makefile.am: Add it.
+
+ * tests/refmpq.c: New file.
+ * tests/Makefile.am: Add it.
+ * tests/tests.h: Add prototypes.
+
+ * mpq/aors.c: Share object code for mpq_add and mpq_sub.
+ * Makefile.am, mpq/Makefile.am: Single mpq/aors.lo now.
+
+ * tests/devel/try.c (TYPE_SUBMUL_1): Use correct reference routine.
+
+2001-08-30 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/x86-defs.m4 (cmov_available_p): Add pentium4.
+
+ * gmp-h.in: Put #define renamings with prototypes.
+ Remove commented out #defines of gmp-impl.h things.
+ (mpn_invert_limb): Remove #define, already in gmp-impl.h.
+ (mpn_lshiftc, mpn_rshiftc): Remove #defines, unused.
+ (mpn_addsub_nc): Add prototype to #define.
+
+2001-08-28 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi: Switch to GFDL.
+ (Top): Arrange copyright and conditions to appear here too. For
+ clarity have all this before the miscellaneous macro definitions.
+ (Copying): Refer to COPYING.LIB file, mention plain GPL2 in demo
+ programs.
+ (Contributors, References): Use @appendix rather than @unnumbered.
+ (GNU Free Documentation License): New appendix.
+ (@contents): Move to start of document, use only for tex (not html).
+ (Debugging): Add leakbug.
+ (Build Options): Add pentium4.
+ (I/O of Rationals): Add mpq_inp_str.
+
+ * fdl.texi: New file, with two @appendix directive tweaks.
+ * Makefile.am (gmp_TEXINFOS): Add it.
+
+ * tests/mpz/io.c: Check mpz_inp_str return against ftell, send error
+ messages just to stdout.
+
+ * mpz/inp_str.c, gmp-impl.h (__gmpz_inp_str_nowhite): New function,
+ and share a __gmp_free_func call.
+ * mpq/inp_str.c: New file.
+ * Makefile.am, mpq/Makefile.am: Add it.
+ * tests/mpq/t-inp_str.c: New file.
+ * tests/mpq/Makefile.am (check_PROGRAMS): Add it.
+
+ * configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_power,
+ HAVE_HOST_CPU_FAMILY_powerpc, HAVE_HOST_CPU_FAMILY_x86): AC_DEFINEs
+ for processor families.
+ * gmp-impl.h: Use them, rather than cpp defines.
+
+ * demos/Makefile.am (primes_LDADD): Use $(LIBM), for log().
+
+ * tune/many.pl, tune/Makefile.am: Fix some from clean and distclean.
+
+2001-08-26 Kevin Ryde <kevin@swox.se>
+
+ * tests/devel/try.c (ARRAY_ITERATION): Make types match on "?:" legs.
+ (TYPE_MPZ_JACOBI, TYPE_MPZ_KRONECKER): Remove some superseded code.
+
+ * tests/printf/t-printf.c (check_plain): Don't compare "all digits"
+ precision against plain printf.
+
+ * tune/Makefile.am: Eliminate empty TUNE_MPZ_SRCS.
+
+ * configure, config.in, INSTALL.autoconf: Update to autoconf 2.52.
+ * */Makefile.in, mdate-sh, missing, aclocal.m4, configure: Update to
+ automake 1.5.
+ * configfsf.guess, configfsf.sub: Update to 2001-08-23.
+
+2001-08-24 Torbjorn Granlund <tege@swox.com>
+
+ * demos/primes.c: Complete rewrite.
+
+2001-08-24 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h: Test __ppc__ for apple darwin cc, reported by Jon
+ Becker. Also test __POWERPC__, PPC and __vxworks__.
+
+ * tune/speed.h (speed_cyclecounter) [x86]: Don't clobber ebx in PIC.
+
+2001-08-22 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (x86 mmx): Correction to mmx path stripping.
+
+2001-08-17 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, acinclude.m4, Makefile.am, printf/Makefile.am,
+ tests/printf/Makefile.am, gmp-h.in, gmp-impl.h, gmp.texi: Remove C++
+ support, for the time being.
+ * printf/doprntfx.cc, doprntix.cc, osfuns.cc, osmpf.cc, osmpq.cc,
+ osmpz.cc, tests/printf/t-ostream.cc: Remove files.
+
+ * printf/doprnt.c, printf/doprntf.c, gmp-impl.h: Use a single
+ __gmp_doprnt_mpf, rather than a separate ndigits calculation.
+ * printf/doprnt.c, printf/doprntf.c, gmp-impl.h, gmp.texi,
+ tests/printf/t-printf.c: Let empty or -1 prec mean all digits for mpf.
+ * printf/doprnt.c, tests/printf/t-printf.c: Accept h or l in %n; let
+ negative "*" style width mean left justify.
+
+ * gmp-impl.h, mpf/get_str.c (MPF_SIGNIFICANT_DIGITS): New macro,
+ extracted from mpf/get_str.c.
+
+ * libmp.sym: New file.
+ * Makefile.am (libmp_la_LDFLAGS): Use it.
+ (DISTCLEANFILES): Remove asm-syntax.h, no longer generated.
+ Remove some comments about "make check".
+
+ * demos/perl/GMP.pm, GMP.xs, GMP/Mpf.pm: Add printf and sprintf,
+ change get_str to string/exponent for floats, remove separate
+ mpf_get_str.
+ * demos/perl/GMP/Mpf.pm (overload_string): Use $# (default "%.g").
+ * demos/perl/typemap: Fix some duplicate string entries.
+ * demos/perl/test.pl: Update tests, split overloaded constants into ...
+ * demos/perl/test2.pl: ... this new file.
+ * demos/perl/Makefile.PL (clean): Add test.tmp.
+
+2001-08-16 Kevin Ryde <kevin@swox.se>
+
+ * printf/snprntffuns.c (gmp_snprintf_format): Correction to bufsize-1
+ return value handling.
+
+ * demos/calc/calc.y: Reposition "%{" so copyright notice gets into
+ generated files.
+
+ * INSTALL: Use gmp_printf.
+
+2001-08-14 Kevin Ryde <kevin@swox.se>
+
+ * mpz/inp_str.c: Fix return value (was 1 too big).
+ * tests/mpz/t-inp_str.c: New file.
+ * tests/mpz/Makefile.am: Add it.
+
+ * mpn/x86/pentium4/sse2/add_n.asm: New file.
+ * mpn/x86/pentium4/sse2/sub_n.asm: New file.
+ * mpn/x86/pentium4/sse2/mul_1.asm: New file.
+
+2001-08-12 Kevin Ryde <kevin@swox.se>
+
+ * printf/sprintffuns.c, printf/doprntf.c: Don't use sprintf return
+ value (it's a pointer on SunOS 4).
+
+ * acinclude.m4 (GMP_ASM_X86_SSE2, GMP_STRIP_PATH): New macros.
+ * configure.in: Add pentium4 support.
+ * mpn/x86/pentium4, mpn/x86/pentium4/mmx, mpn/x86/pentium4/sse2: New
+ directories.
+ * mpn/x86/README: Update.
+
+2001-08-10 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (setup_error_handler): Catch also SIGABRT.
+
+2001-07-31 Kevin Ryde <kevin@swox.se>
+
+ * tests/refmpn.c (refmpn_mul_1c): Allow low to high overlaps.
+
+ * gmp-h.in, gmp-impl.h (_gmp_rand): Move prototype to gmp-impl.h.
+
+ * tune/Makefile.am (EXTRA_DIST): Add many.pl.
+
+2001-07-28 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Random Number Functions): Old rand functions no longer use
+ the C library.
+
+ * configure.in, acinclude.m4 (GMP_FUNC_VSNPRINTF): New macro.
+
+ * mpn/generic/get_str.c: Add an ASSERT for high limb non-zero.
+
+2001-07-24 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Add --enable-cxx.
+ (Converting Floats): Note mpf_get_str only generates accurately
+ representable digits.
+ (Low-level Functions): Note mpn_get_str requires non-zero high limb.
+ (Formatted Output): New chapter.
+ (Multiplication Algorithms): Use @quotation with @multitable.
+ (Toom-Cook 3-Way Multiplication): Ditto.
+
+ * tests/memory.c (tests_free_nosize): New function.
+ * tests/tests.h (tests_allocate etc): Add prototypes.
+
+ * tests/printf: New directory.
+ * tests/printf/Makefile.am, t-printf.c, t-ostream.cc: New files.
+ * configure.in, tests/Makefile.am: Add them.
+
+ * configure.in, acinclude.m4 (GMP_PROG_CXX): New macro.
+ * configure.in (--enable-cxx): New option.
+ (AC_CHECK_HEADERS): Add locale.h and sys/types.h, remove unistd.h.
+ (AC_CHECK_TYPES): Add intmax_t, long double, long long, ptrdiff_t,
+ quad_t.
+ (AC_CHECK_FUNCS): Add localeconv, memset, obstack_vprintf, snprintf,
+ strchr, vsnprintf.
+ (AC_CHECK_DECLS): Add vfprintf.
+
+ * gmp-h.in, gmp-impl.h: Additions for gmp_printf etc.
+
+ * printf: New directory.
+ * printf/Makefile.am, asprintf.c, doprnt.c, doprntf.c, doprntfx.cc,
+ doprnti.c, doprntix.cc, fprintf.c, obprintf.c, obprntffuns.c,
+ obvprintf.c, osfuns.cc, osmpf.cc, osmpq.cc, osmpz.cc, printf.c,
+ printffuns.c, snprintf.c, snprntffuns.c, sprintf.c, sprintffuns.c,
+ vasprintf.c, vfprintf.c, vprintf.c, vsnprintf.c, vsprintf.c: New
+ files.
+ * configure.in, Makefile.am: Add them.
+
+ * configure.in (HAVE_INLINE): Remove AC_DEFINE, unused.
+ (AC_CHECK_TYPES): Don't test for void, assume it always exists.
+
+ * gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE): New macro.
+ * mpz/get_str.c, mpq/get_str.c, mpf/get_str.c: Use it.
+
+ * gmp-impl.h (mpn_fib2_ui): Use __MPN.
+ (MPN_COPY_DECR): Fix an ASSERT.
+ (CAST_TO_VOID): Remove macro.
+
+ * gmp-h.in (mpq_out_str): Give #define even without prototype.
+ (mpz_cmp_d, mpz_cmpabs_d): Corrections to #defines.
+
+ * tests/devel/try.c: Add mpn_add and mpn_sub, don't use CAST_TO_VOID.
+
+2001-07-23 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Recognize pentium4.
+ * config.sub: Recognize pentium4.
+
+2001-07-17 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (__GMPN_AORS_1): Remove x86 and gcc versions, leave just
+ one version.
+ (__GMPN_ADD, __GMPN_SUB): New macros, rewrite of mpn_add and mpn_sub.
+ (mpn_add, mpn_sub): Use them.
+ (__GMPN_COPY_REST): New macro.
+
+ * gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and
+ __GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of
+ LSYM_PREFIX.
+
+2001-07-11 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (__GMPN_ADD_1 etc) [x86]: Don't use this on egcs 2.91.
+
+ * mpz/fits_uint.c, fits_ulong.c, mpz/fits_ushort.c: Split up fits_u.c.
+ * mpz/fits_u.c: Remove file.
+ * mpz/Makefile.am, macos/Makefile.in: Update.
+
+ * tests/refmpn.c,tests.h (refmpn_copy): New function.
+ * tests/devel/try.c (TYPE_ZERO): No return value from call.
+ (TYPE_MODEXACT_1_ODD, TYPE_MODEXACT_1C_ODD): Share call with
+ TYPE_MOD_1 and TYPE_MOD_1C.
+ (MPN_COPY, __GMPN_COPY, __GMPN_COPY_INCR): Add testing.
+
+2001-07-10 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (__GMPN_COPY): Add form to help gcc on power and powerpc.
+ * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR, MPN_ZERO): Ditto.
+ * mpn/powerpc64/copyi.asm, mpn/powerpc64/copyd.asm: Remove files.
+
+ * mpz/tdiv_ui.c: Eliminate some local variables (seems to save code on
+ i386 gcc 2.95.x), remove a bogus comment about quotient.
+
+ * errno.c, gmp-impl.h (__gmp_exception, __gmp_divide_by_zero,
+ __gmp_sqrt_of_negative): New functions.
+ * gmp-impl.h (GMP_ERROR, DIVIDE_BY_ZERO, SQRT_OF_NEGATIVE): Use them.
+
+ * randclr.c, randraw.c: Use ASSERT(0) for unrecognised algorithms.
+
+2001-07-07 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (powerpc*-*-*): Use -no-cpp-precomp for Darwin.
+
+ * tests/mpbsd/t-itom.c: Renamed from t-misc.c.
+ * tests/mpbsd/t-misc.c: Remove file.
+ * tests/mpbsd/Makefile.am: Update.
+
+ * tests/mpf/t-set_si.c,t-cmp_si.c,t-gsprec.c: Split from t-misc.c.
+ * tests/mpf/t-misc.c: Remove file.
+ * tests/mpf/Makefile.am: Update.
+
+ * tests/mpz/t-oddeven.c,t-set_si.c,t-cmp_si.c: Split from t-misc.c.
+ * tests/mpz/t-misc.c: Remove file.
+ * tests/mpz/Makefile.am: Update.
+
+ * stack-alloc.c: Add some alignment ASSERTs.
+
+ * gmp-impl.h (MPN_NORMALIZE): Add notes on x86 repe/scasl slow.
+
+ * tests/devel/try.c (MPN_ZERO): Add testing.
+ * tune/speed.c,speed.h,common.c,many.pl (MPN_ZERO): Add measuring.
+
+ * mpn/x86/divrem_1.asm: Update a remark about gcc and "loop".
+
+ * tests/mpq/t-cmp_si.c: New file.
+ * tests/mpq/Makefile.am: Add it.
+
+ * tests/misc.c,tests.h (mpq_set_str_or_abort): New function.
+
+ * mpq/cmp_si.c: New file.
+ * Makefile.am, mpq/Makefile.am: Add it.
+ * gmp-h.in (mpq_cmp_si): Add prototype.
+ * gmp.texi (Comparing Rationals): Add doco.
+
+ * gmp-h.in (_GMP_H_HAVE_FILE): Add _FILE_DEFINED for microsoft, add
+ notes on what symbols are for what systems.
+
+2001-07-06 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (ibm032 umul_ppmm): Fix typo.
+ * longlong.h (sparclite sdiv_qrnnd): Fix typo.
+
+2001-07-03 Kevin Ryde <kevin@swox.se>
+
+ * mpz/bin_ui.c (DIVIDE): Use MPN_DIVREM_OR_DIVEXACT_1.
+ * mpz/bin_uiui.c (MULDIV): Ditto, and use local variables for size and
+ pointer.
+
+ * acinclude.m4 (GMP_INCLUDE_GMP_H): New macro, use it everywhere gmp.h
+ is wanted at configure time.
+ * acinclude.m4, configure.in (GMP_H_EXTERN_INLINE, GMP_H_HAVE_FILE):
+ New macros.
+
+ * gmp-h.in (__GMP_EXTERN_INLINE): Set to "inline" for C++.
+ (mpn_add, mpn_sub): Use new style __GMP_EXTERN_INLINE.
+ * gmp-h.in, mp-h.in, gmp-impl.h (_EXTERN_INLINE): Remove, unused.
+ * mpn/generic/add.c, mpn/generic/sub.c: New files.
+ * mpn/generic/inlines.c: Remove file.
+ * configure.in, mpn/Makefile.am: Update.
+
+ * gmp.texi (GMP Basics): Note the need for stdio.h to get FILE
+ prototypes.
+
+2001-07-01 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options, Reentrancy): Updates for new
+ --enable-alloca behaviour.
+ (Debugging): Describe --enable-alloca=debug.
+ (Miscellaneous Integer Functions): Note mpz_sizeinbase ignores signs.
+ (Low-level Functions): Give a formula for mpn_gcdext cofactor.
+ (Factorial Algorithm): New section.
+ (Binomial Coefficients Algorithm): New section.
+ Misc tweaks elsewhere.
+
+ * mpf/set_prc.c: Merge the two truncation conditionals, misc cleanups,
+ no functional changes.
+
+ * mpn/*/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Add tuned values.
+ * gmp-impl.h (DIVEXACT_1_THRESHOLD): Make the default 0 when
+ 2*UMUL_TIME < UDIV_TIME.
+
+ * mpn/x86/p6/dive_1.asm: New file.
+
+ * mpn/x86/dive_1.asm: New file.
+ * mpn/x86/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Use it always.
+
+ * tests/refmpn.c, tests.h (refmpn_zero): New function.
+ * tests/devel/try.c: Use it.
+
+ * tests/refmpn.c (refmpn_sb_divrem_mn): Use refmpn_cmp, not mpn_cmp.
+
+ * tests/mpf/t-get_d.c (main): Use || not |.
+
+ * tests/misc.c, tests/t-modlinv.c, tests/mpq/t-get_str.c,
+ tests/mpf/reuse.c: Add string.h.
+
+2001-06-29 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_FIB2_UI,
+ SPEED_ROUTINE_COUNT_ZEROS_C): Corrections to TMP block handling.
+
+ * gmp-impl.h (MPN_TOOM3_MUL_N_MINSIZE, MPN_TOOM3_SQR_N_MINSIZE):
+ Corrections to these to account for adding tD into E.
+ (MPN_INCR_U, MPN_DECR_U) [WANT_ASSERT]: Add size
+ assertions, since mpn_add_1 and mpn_sub_1 from gmp.h don't get them.
+ (MPN_DIVREM_OR_DIVEXACT_1): Add an assert of no remainder.
+
+ * assert.c: Add stdlib.h for abort prototype.
+ * tests/spinner.c, trace.c, t-constants.c, t-count_zeros.c,
+ t-gmpmax.c, t-modlinv.c: Ditto.
+ * tests/mpz/t-bin.c, t-cmp.c, t-get_si.c, t-misc.c, t-popcount.c,
+ t-set_str.c, t-sizeinbase.c: Ditto.
+ * tests/mpq/t-equal.c, t-get_str.c, t-set_f.c, t-set_str.c: Ditto.
+ * tests/mpf/t-fits.c, t-get_d.c, t-get_si.c, t-int_p.c, t-misc.c,
+ t-trunc.c: Ditto.
+ * tests/mpbsd/allfuns.c, t-misc.c: Ditto.
+
+ * mpn/generic/mul_n.c, mpz/cfdiv_r_2exp.c: Use MPN_INCR_U rather than
+ mpn_incr_u.
+
+ * tests/devel/try.c (TYPE_SB_DIVREM_MN): More fixes for calling method.
+
+ * mpn/x86/k6/cross.pl: More insn exceptions.
+
+2001-06-23 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1) [i386]: Fix some asm output
+ constraints.
+
+ * gmp-impl.h (modlimb_invert): Mask after shifting, so mask constant
+ fits a signed byte.
+
+ * tests/devel/try.c (TYPE_SB_DIVREM_MN): Fix initial fill of quotient
+ with garbage.
+
+2001-06-20 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (rs6000-*-aix4* | powerpc-*-aix4*): Suppress error
+ messages if $CC_FOR_BUILD or program don't work.
+
+ * mpz/sqrt.c,sqrtrem.c: Special case for op==0, to avoid TMP_ALLOC(0).
+ * tests/refmpf.c (refmpf_add, refmpf_sub): Avoid TMP_ALLOC(0).
+
+ * tests/mpn/t-aors_1.c: New file.
+ * tests/mpn/Makefile.am: Add it.
+
+ * gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1): New macros, rewrite of
+ mpn_add_1 and mpn_sub_1, better code for src==dst and/or n==1,
+ separate versions for gcc x86, gcc generic, and non-gcc.
+ (mpn_add_1, mpn_sub_1): Use them.
+ (mpn_add, mpn_sub): Ditto, to get inlines on all compilers.
+ (extern "C") [__cplusplus]: Let this encompass the extern inlines too.
+ * mpn/generic/add_1.c,sub_1.c: New files, force code from gmp.h.
+ * configure.in, mpn/Makefile.am: Add them.
+
+ * acinclude.m4 (GMP_ASM_LSYM_PREFIX): AC_SUBST __GMP_LSYM_PREFIX
+ rather than AC_DEFINE LSYM_PREFIX.
+ * gmp-h.in (__GMP_LSYM_PREFIX): New substitution.
+ (__GMP_ASM_L): New macro.
+ * gmp-impl.h (ASM_L): Use it.
+
+ * acinclude.m4, configure.in (GMP_C_ATTRIBUTE_MALLOC): New macro.
+ * gmp-impl.h: Use it for all the malloc based TMP_ALLOCs.
+
+ * stack-alloc.h: Remove file.
+ * tal-reent.c: New file.
+ * Makefile.am: Update.
+
+ * acinclude.m4, configure.in (GMP_OPTION_ALLOCA): New macro, add
+ malloc-reentrant method, use stack-alloc.c as malloc-notreentrant,
+ make "reentrant" the default.
+ * gmp-impl.h (__TMP_ALIGN): Moved from stack-alloc.c, use a union to
+ determine the value, and demand only 4 bytes align on 32-bit systems.
+ * gmp-impl.h (WANT_TMP_NOTREENTRANT): Move global parts of
+ stack-alloc.h to here, allow non power-of-2 __TMP_ALIGN in TMP_ALLOC.
+ * gmp-impl.h: Extend extern "C" to TMP_ALLOC declarations.
+ * stack-alloc.c (tmp_stack): Move private parts of stack-alloc.h to
+ here, use gmp-impl.h.
+
+ * gmp-impl.h (TMP_ALLOC_LIMBS_2): New macro.
+ * mpz/fib_ui.c, mpz/jacobi.c, mpq/cmp.c, mpn/generic/fib2_ui.c: Use it.
+
+ * mpfr/exp2.c: Patch by Paul to match TMP_MARK and TMP_FREE in loop.
+ * mpfr/sqrt.c: Scope nested TMP_DECL into nested { } block, patch by
+ Paul, tweaked by me.
+ * mpfr/agm.c: Ditto, and add a final TMP_FREE(marker2).
+
+ * gmp-h.in (mpn_cmp): Add __GMP_ATTRIBUTE_PURE.
+
+ * INSTALL: Clarify "make install", tweak formatting a bit.
+
+2001-06-17 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, Makefile.am, gmp-impl.h: Add a debugging TMP_ALLOC,
+ selected with --enable-alloca=debug.
+ * tal-debug.c: New file.
+ * configure.in, Makefile.am: Compile stack-alloc.c only for
+ --disable-alloca.
+ * assert.c (__gmp_assert_header): New function, split from
+ __gmp_assert_fail.
+
+ * mpz/lcm.c: Don't TMP_MARK and then just return. Remove unnecessary
+ _mpz_realloc prototype.
+
+ * mpn/generic/mul.c (mpn_sqr_n): Use __gmp_allocate_func for toom3
+ temporary workspace.
+
+2001-06-15 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-set_f.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/set_f.c: Share MPN_COPY between pad and trunc cases, do exp<=0
+ test earlier, store SIZ(w) earlier.
+
+ * tests/t-count_zeros.c: New file.
+ * tests/t-gmpmax.c: New file.
+ * tests/Makefile.am (check_PROGRAMS): Add them.
+
+ * mp_clz_tab.c: Compile the table only if longlong.h says it's needed;
+ add an internal-use-only comment.
+ * tune/common.c: Force a __clz_tab for convenience when testing.
+
+ * mpn/x86/pentium/gmp-mparam.h, mpn/x86/pentium/mmx/gmp-mparam.h: Add
+ COUNT_LEADING_ZEROS_NEED_CLZ_TAB, for mod_1.asm.
+
+ * longlong.h (count_leading_zeros) [pentium]: Decide to go with float
+ method for p54.
+ (count_leading_zeros) [alpha]: Add COUNT_LEADING_ZEROS_NEED_CLZ_TAB.
+ (__clz_tab): Provide a prototype only if it's needed.
+
+ * tests/trace.c (mpz_trace): Don't use = on structures.
+ (mpn_trace): Set _mp_alloc when creating mpz.
+
+2001-06-12 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/divrem_1.asm: Amend some comments about P5 speed.
+
+ * tune/README: Clarify reconfigure on gmp-mparam.h update.
+
+ * mpn/x86/p6/copyd.asm: New file.
+ * mpn/x86/p6/README: Update copyd and mod_1.
+ * mpn/x86/copyd.asm: Amend some comments.
+
+ * gmp-impl.h (__builtin_constant_p): Add dummy for non-gcc.
+ (mpn_incr_u, mpn_decr_u): Recognise incr==1 at compile time in the
+ generic code on gcc.
+
+ * gmp-impl.h (ASSERT_ZERO_P, ASSERT_MPN_NONZERO_P): New macros.
+ * mpn/generic/gcd_1.c, mpn/generic/mul_fft.c: Use them.
+ * mpz/get_d.c: Add a private mpn_zero_p.
+ * mpfr/trunc.c: Use own mpn_zero_p.
+ * tune/speed.h (SPEED_ROUTINE_MPN_GCD_1N): Use refmpn_zero_p.
+ * gmp-impl.h (mpn_zero_p): Remove, no longer needed.
+
+ * gmp-h.in, gmp-impl.h: Move MPN_CMP to gmp.h as __GMPN_CMP, leave an
+ MPN_CMP alias in gmp-impl.h.
+ * gmp-h.in (mpn_cmp): Add an inline version.
+ * mpn/generic/cmp.c: Use __GMP_FORCE_mpn_cmp to get code from gmp.h.
+
+ * acinclude.m4 (GMP_C_ATTRIBUTE_MODE): New macro.
+ * configure.in: Call it.
+ * gmp-impl.h (SItype etc): Use it.
+
+ * randraw.c (lc): Change mpn_mul_basecase->mpn_mul,
+ mpn_incr_u->MPN_INCR_U, abort->ASSERT_ALWAYS(0).
+
+ * longlong.h (count_leading_zeros) [pentiumpro]: Work around a partial
+ register stall on gcc < 3.
+
+ * gmp.texi (Introduction to GMP): Add IA-64.
+ (Notes for Particular Systems): i386 means generic x86.
+
+ * tests/t-modlinv.c: Use tests_start and tests_end.
+
+2001-06-10 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Number Theoretic Functions): mpz_jacobi only defined for b
+ odd. Separate the jacobi/legendre/kronecker descriptions.
+ (Low-level Functions): Document mpn_mul_1 "incr" overlaps.
+ (Language Bindings): New chapter.
+
+ * mpz/jacobi.c: Don't retaining old behaviour of mpz_jacobi on even b
+ (it wasn't documented in 3.1.1).
+ * mpz/jacobi.c, gmp-h.in (mpz_kronecker, mpz_legendre): Remove
+ separate entrypoints, just #define to mpz_jacobi.
+ * compat.c (__gmpz_legendre): Add compatibility entrypoint.
+
+ * mpn/generic/mul_1.c: Allow "incr" style overlaps.
+ * tests/devel/try.c (param_init): Test this.
+
+ * mpf/mul_ui.c: Do size==0 test earlier.
+
+2001-06-08 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (ULONG_HIGHBIT, UINT_HIGHBIT, USHRT_HIGHBIT): Cast
+ ULONG_MAX etc to unsigned long etc before attempting to right shift.
+
+ * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Add an AC_DEFINE of LSYM_PREFIX.
+ * gmp-impl.h (ASM_L): New macro.
+ (mpn_incr_u, mpn_decr_u, MPN_INCR_U, MPN_DECR_U): Add i386 optimized
+ versions.
+
+ * mpn/hppa/*.s,S,asm: Use .label so the code works with gas on hppa
+ GNU/Linux too, reported by LaMont Jones <lamont@smallone.fc.hp.com>.
+ * mpn/hppa/README: Add some notes on this.
+ * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Ditto.
+
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add dive_1.c,
+ fib2_ui.c.
+
+ * tests/mpn/t-iord_u.c: New file.
+ * tests/mpn/Makefile.am (check_PROGRAMS): Add it.
+
+ * configure.in (mips*-*-irix[6789]*): Make ABI=n32 the default, same
+ as in gmp 3.1.
+ * gmp.texi (ABI and ISA): Update.
+
+ * gmp.texi (Build Options): Misc tweaks.
+ (Notes for Particular Systems): Describe windows DLL handling.
+ (Known Build Problems): DJGPP needs bash 2.04.
+ (Number Theoretic Functions): mpz_invert returns 0<=r<modulus; add
+ mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui.
+ (Fibonacci Numbers Algorithm): Update for new formulas used.
+ (Lucas Numbers Algorithm): New section.
+
+ * tune/speed.c,speed.h,common.c,many.pl: Add mpn_fib2_ui, mpz_fib2_ui,
+ mpz_lucnum_ui, mpz_lucnum2_ui.
+ * demos/expr/exprz.c,README: Add lucnum.
+ * demos/perl/GMP.pm,GMP.xs,GMP/Mpz.pm,test.pl: Add fib2, lucnum,
+ lucnum2.
+
+ * tests/mpz/t-lucnum_ui.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+ * tests/mpz/t-fib_ui.c: Check mpz_fib2_ui too, updates for new style
+ MPN_FIB2_SIZE.
+
+ * tune/tuneup.c, tune/Makefile.am, gmp-impl.h, mpn/*/gmp-mparam.h:
+ Remove FIB_THRESHOLD, no longer required.
+
+ * mpz/fib2_ui.c, mpz/lucnum_ui.c mpz/lucnum2_ui.c: New files.
+ * Makefile.am, mpz/Makefile.am: Add them.
+ * gmp-h.in (mpz_fib2_ui, mpz_lucnum_ui, mpz_lucnum2_ui): Add
+ prototypes.
+
+ * mpn/generic/fib2_ui.c: New file.
+ * configure.in (gmp_mpn_functions): Add it.
+ * gmp-impl.h (mpn_fib2_ui, FIB_TABLE, etc): Add these.
+ * mpz/fib_ui.c: Rewrite.
+
+ * acinclude.m4 (GMP_C_SIZES): Fix _LONG_LONG_LIMB define for mp_limb_t
+ size test.
+ (GMP_FUNC_ALLOCA): Add dummy __GMP_BITS_PER_MP_LIMB for gmp-h.in work.
+
+ * configure.in (CPPFLAGS): Remove -D__GMP_WITHIN_GMP, don't want it
+ everywhere.
+ * Makefile.am, mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am,
+ mpf/Makefile.am, mpbsd/Makefile.am (INCLUDES): Set -D__GMP_WITHIN_GMP.
+
+ * configure.in (*-*-msdosdjgpp*): Forcibly disable shared libraries,
+ to make libtests.la work.
+
+ * acconfig.h (_LONG_LONG_LIMB, HAVE_MPFR): Remove dummy defines, no
+ longer needed.
+
+ * mpz/set_ui.c: Store to _mp_d[0] unconditionally.
+
+2001-05-27 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs.
+
+2001-05-26 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (ABI and ISA, Reentrancy): Minor tweaks
+ (Notes for Package Builds): Note gmp.h is a generated file.
+ (Notes for Particular Systems): -march=pentiumpro is used for gcc
+ 2.95.4 and up.
+ (Assembler Loop Unrolling): Mention non power-of-2 unrolling.
+ (Internals): New chapter.
+ * mpf/README: Remove file.
+
+ * demos/expr/README: Miscellaneous rewordings.
+
+ * demos/perl: New directory.
+ * demos/Makefile.am: Add it.
+ * demos/perl/INSTALL, Makefile.PL, GMP.pm, GMP.xs, typemap,
+ GMP/Mpz.pm, GMP/Mpq.pm, GMP/mpf.pm, GMP/Rand.pm, sample.pl, test.pl:
+ New files.
+
+ * configure, aclocal.m4: Update to autoconf 2.50.
+
+ * configure, aclocal.m4, ltmain.sh: Update to libtool 1.4.
+
+ * configure, aclocal.m4, missing, ansi2knr.c, */Makefile.in: Update to
+ automake 1.4f.
+ * Makefile.am: Conditionalize mpfr in $(SUBDIRS) to handle mpfr.info.
+ * mpfr/Makefile.am (INFO_DEPS): Remove previous mpfr.info handling.
+ * mpn/Makefile.am (GENERIC_SOURCES): Remove this, just put mp_bases.c
+ in libmpn_la_SOURCES.
+ * tests/Makefile.am (tests.h): Move from EXTRA_HEADERS to
+ libtests_la_SOURCES.
+ * ltconfig: Remove file, no longer needed.
+
+ * Makefile.am (gmp-impl.h, longlong.h, stack-alloc.h): Move from
+ EXTRA_DIST to libgmp_la_SOURCES, so they get included in TAGS.
+ * tests/rand/Makefile.am (gmpstat.h): Move to libstat_la_SOURCES
+ similarly.
+
+ * config.guess (68k-*-*): Use $SHELL not "sh", tweak some comments.
+
+ * mpfr/mpfr.texi (Introduction to MPFR): Tweak table formatting, note
+ non-free programs must be able to be re-linked.
+
+2001-05-20 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm,
+ mpn/powerpc64/submul_1.asm: Add carry-in entrypoints.
+
+2001-05-17 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (ge): Fix definition for info.
+ (Notes for Particular Systems): Mention 68k dragonball and cpu32.
+ (Efficiency): Add static linking, more about in-place operations,
+ describe mpq+/-integer using addmul.
+ (Reporting Bugs): A couple of words about self-contained reports.
+ (Floating-point Functions): Note exponent limitations of mpf_get_str
+ and mpf_set_str.
+ (Initializing Floats): Clarify mpf_get_prec, mpf_set_prec and
+ mpf_set_prec_raw a bit.
+ (Float Comparison): Note current mpf_eq deficiencies.
+
+ * gmp-h.in (__GMP_HAVE_CONST, __GMP_HAVE_PROTOTYPES,
+ __GMP_HAVE_TOKEN_PASTE): Merge GNU ansidecl.h tests for ANSI compilers.
+ * demos/expr/expr-impl-h.in: Ditto.
+
+ * gmp-impl.h (BITS_PER_MP_LIMB): Define from __GMP_BITS_PER_MP_LIMB if
+ not already in gmp-mparam.h.
+ * tests/t-constants.c (BITS_PER_MP_LIMB, __GMP_BITS_PER_MP_LIMB):
+ Check these are the same.
+
+ * gmp-h.in (mpf_get_default_prec, mpf_get_prec, mpf_set_default_prec,
+ mpf_set_prec_raw): Provide "extern inline" versions, use __GMPF on the
+ macros.
+ * mpf/get_dfl_prc.c, mpf/get_prc.c, mpf/set_dfl_prc.c,
+ mpf/set_prc_raw.c: Get code from gmp.h using __GMP_FORCE.
+
+ * gmp-h.in, gmp-impl.h (__gmp_default_fp_limb_precision): Move from
+ gmp-impl.h to gmp-h.in.
+ (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Ditto, and use __GMPF
+ prefix and add a couple of casts.
+ * gmp-h.in (__GMP_MAX): New macro.
+ * mpf/init2.c mpf/set_prc.c: Update for __GMPF prefix.
+
+ * gmp-h.in (__GMP_BITS_PER_MP_LIMB): New templated define.
+ * acinclude.m4 (GMP_C_SIZES): Add AC_SUBST __GMP_BITS_PER_MP_LIMB,
+ remove AC_DEFINE BITS_PER_MP_LIMB.
+
+2001-05-13 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, gmp.texi, Makefile.am, mpz/Makefile.am, tests/mpz/t-pow.c:
+ Remove mpz_si_pow_ui, pending full si support.
+ * mpz/si_pow_ui.c: Remove file.
+
+2001-05-11 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/dive_1.asm: New file.
+
+ * mpn/powerpc32/umul.asm: Use r on registers.
+ * mpn/powerpc64/umul.asm: New file.
+ * configure.in (powerpc*-*-*): Enable umul in extra_functions.
+
+ * tests/refmpn.c, tests/tests.h (refmpn_umul_ppmm): Use same arguments
+ as normal mpn_umul_ppmm.
+ (refmpn_mul_1c): Update.
+ * tests/devel/try.c, tune/many.pl: Add some umul_ppmm testing support.
+
+ * mpn/x86/k6/mmx/popham.asm, mpn/x86/k7/mmx/popham.asm: Don't support
+ size==0.
+ * mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm: Ditto,
+ and shave a couple of cycles from the PIC entry code.
+
+ * mpz/mul.c: Use mpn_mul_1 for size==1 and mpn_mul_2 (if available)
+ for size==2, to avoid copying; do vsize==0 test earlier.
+
+ * mpf/sub.c: Test r!=u before calling mpf_set.
+ * mpf/add.c: Ditto, and share mpf_set between usize==0 and vsize==0.
+
+ * mpn/generic/tdiv_qr.c, mpq/get_d.c, mpf/div.c, mpf/set_q.c,
+ mpf/set_str.c, mpf/ui_div.c: Test for high bit set, not for
+ count_leading_zeros zero.
+
+ * acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Print a message if extra
+ flags are added.
+
+ * tests/mpz/t-mul_i.c: New file.
+ * tests/mpz/Makefile.am: Add it.
+
+ * mpz/mul_siui.c (mpz_mul_si): Fix for -0x80..00 on long long limb.
+
+ * gmp-h.in (mpf_set_si, mpf_set_ui): Revert last change, set exp to 0
+ when n==0.
+ * mpf/ceilfloor.c, mpf/trunc.c: Fix exp to 0 when setting r to 0.
+ * gmp-impl.h (MPF_CHECK_FORMAT): Check exp==0 when size==0.
+
+2001-05-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in (mpf_set_si, mpf_set_ui): Don't bother setting _mp_exp to 0
+ when n==0 (use 1 unconditionally).
+ * tests/mpf/t-misc.c (check_mpf_set_si): Don't demand anything of
+ _mp_exp when _mp_size is zero.
+
+ * mpn/x86/README: Note gas _GLOBAL_OFFSET_TABLE_ with leal problem.
+
+ * gmp-h.in (mpz_fits_uint_p, mpz_fits_ulong_p, mpz_fits_ushort_p):
+ Provide these as "extern inline"s.
+ (__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): New macros.
+ (mpz_popcount): Use __GMP_ULONG_MAX.
+ * gmp-impl.h (UINT_MAX, ULONG_MAX, USHRT_MAX): Use __GMP_U*_MAX, if
+ not already defined.
+ * mpz/fits_u.c: Use the code from gmp.h.
+
+2001-05-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k7/dive_1.asm: New file.
+ * mpn/x86/k7/gcd_1.asm: New file.
+ * mpn/asm-defs.m4 (m4_count_trailing_zeros): New macro.
+
+ * gmp-h.in (mpz_get_ui, mpz_getlimbn, mpz_set_q, mpz_perfect_square_p,
+ mpz_popcount, mpz_size, mpf_set_ui, mpf_set_si, mpf_size): Provide
+ these as "extern inlines".
+ Use just one big extern "C" block.
+ * mpz/getlimbn.c, mpz/get_ui.c, mpz/perfsqr.c, mpz/popcount.c
+ mpz/set_q.c, mpz/size.c, mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Use
+ __GMP_FORCE to get code from gmp.h.
+
+2001-05-03 Kevin Ryde <kevin@swox.se>
+
+ * extract-dbl.c: Add ASSERT d>=0.
+
+ * gmp.texi (Efficiency): Add mpz_addmul etc for mpz+=integer, add
+ mpz_neg etc in-place.
+ (Integer Arithmetic): Add mpz_addmul, mpz_submul, mpz_submul_ui.
+ (Initializing Rationals): Add mpq_set_str.
+ (Low-level Functions): mpn_set_str requires strsize >= 1.
+
+ * gmp-h.in (__GMP_EXTERN_INLINE, __GMP_ABS): New macros.
+ (mpz_abs, mpq_abs, mpf_abs, mpz_neg, mpq_neg, mpf_neg): Provide inline
+ versions.
+ * mpz/abs.c, mpq/abs.c, mpf/abs.c, mpz/neg.c, mpq/neg.c, mpf/neg.c:
+ Add suitable __GMP_FORCE to turn off inline versions.
+
+ * tests/mpz/t-aorsmul.c,t-cmp_d.c,t-popcount,t-set_str.c: New files.
+ * tests/mpz/Makefile.am: Add them.
+
+ * mpz/aorsmul_i.c: New file, rewrite of addmul_ui.c. Add
+ mpz_submul_ui entrypoint, share more code between some of the
+ conditionals, use mpn_mul_1c if available.
+ * mpz/addmul_ui.c: Remove file.
+ * mpz/aorsmul.c: New file.
+ * Makefile.am, mpz/Makefile.am: Update.
+ * gmp-h.in (mpz_addmul, mpz_submul, mpz_submul_ui): Add prototypes.
+ * gmp-impl.h (mpz_aorsmul_1): Add prototype.
+
+ * tests/mpq/t-set_str.c: New file.
+ * tests/mpq/Makefile.am: Add it.
+
+ * mpq/set_str.c: New file.
+ * Makefile.am, mpq/Makefile.am: Add it.
+ * gmp-h.in (mpq_set_str): Add prototype.
+
+ * mpz/set_str.c: Fix for trailing white space on zero, eg. "0 ".
+ * mpn/generic/set_str.c: Add ASSERT str_len >= 1.
+
+ * gmp-h.in, gmp-impl.h (mpn_incr_u, mpn_decr_u): Move to gmp-impl.h.
+ * gmp-impl.h (MPN_INCR_U, MPN_DECR_U): New macros.
+
+2001-04-30 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/t-lcm.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/lcm.c: Add one limb special case.
+
+ * mpz/lcm_ui.c: New file.
+ * Makefile.am, mpz/Makefile.am: Add it.
+ * gmp-h.in (mpz_lcm_ui): Add prototype.
+ * gmp.texi (Number Theoretic Functions): Add mpz_lcm_ui, document lcm
+ now always positive.
+
+ * mp-h.in (mp_size_t, mp_exp_t): Fix typedefs to match gmp-h.in.
+
+ * gmp-h.in (mpn_add_1, mpn_add, mpn_sub_1, mpn_sub): Remove K&R
+ function defines (ansi2knr will handle mpn/inline.c, and just ansi is
+ enough for gcc extern inline).
+
+ * gmp-h.in (__GMP_HAVE_TOKEN_PASTE): New macro.
+ (__MPN): Use it.
+ * gmp-impl.h (CNST_LIMB): Ditto.
+
+ * gmp-h.in, mp-h.in (__gmp_const, __gmp_signed, _PROTO, __MPN): Use
+ ANSI forms on Microsoft C.
+ (__GMP_HAVE_CONST): New define.
+ * gmp-impl.h (const, signed): Use it.
+
+ * demos/expr/expr-impl-h.in (<stdarg.h>): Use this with Microsoft C.
+ (HAVE_STDARG): New define.
+ * demos/expr/expr.c,exprz.c,exprq.c,exprf.c,exprfr.c: Use it.
+
+ * acinclude.m4 (GMP_C_STDARG): New macro.
+ * configure.in: Call it.
+ * rand.c: Use it.
+
+ * configure.in (AC_PROG_CC_STDC): New test.
+
+2001-04-25 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/mmx/dive_1.asm: New file.
+ * mpn/x86/x86-defs.m4 (Zdisp): Two more insns.
+
+ * mpn/x86/pentium/mul_2.asm: New file.
+ * mpn/asm-defs.m4: Add define_mpn(mul_2).
+ * acconfig.h (HAVE_NATIVE_mpn_divexact_1, mul_2): Add templates.
+
+ * configure.in (ABI): Use AC_ARG_VAR.
+
+ * tests/devel/try.c: Run reference function when validate fails.
+
+ * mpq/get_str.c: Fixes for negative bases.
+ * tests/mpq/t-get_str.c: Check negative bases.
+ * tests/misc.c,tests.h (__gmp_allocate_strdup, strtoupper): New
+ functions.
+
+2001-04-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/lcm.c (mpz_lcm): Make result always positive.
+
+ * gmp-h.in (mpz_inp_binary, mpz_out_binary): Remove declarations.
+
+2001-04-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc64/addsub_n.asm: Use config.m4 not asm-syntax.m4.
+
+ * mpz/cmp_d.c, mpz/cmpabs_d.c: New files.
+ * Makefile.am, mpz/Makefile.am: Add them.
+ * mpf/cmp_d.c, mpf/get_dfl_prec.c: New files.
+ * Makefile.am, mpf/Makefile.am: Add them.
+ * gmp-h.in (mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d, mpf_get_default_prec):
+ Add prototypes.
+ * gmp.texi: Add documentation.
+
+ * mpf/set_prc.c: Avoid a realloc call if already the right precision.
+
+ * gmp-impl.h (MPF_BITS_TO_PREC, MPF_PREC_TO_BITS): New macros.
+ * mpf/get_prc.c, init2.c, set_dfl_prec.c, set_prc.c, set_prc_raw.c:
+ Use them.
+
+2001-04-20 Kevin Ryde <kevin@swox.se>
+
+ * tests/devel/try.c: Don't test size==0 on mpn_popcount and
+ mpn_hamdist; add testing for mpn_divexact_1; print some limb values
+ with mpn_trace not printf.
+
+ * mpz/popcount.c, mpz/hamdist.c: Don't pass size==0 to mpn_popcount
+ and mpn_hamdist.
+ * mpn/generic/popham.c: Don't support size==0.
+
+ * config.guess (m68k-*-*): Detect m68010, return m68360 for cpu32,
+ cleanup the nesting a bit.
+
+ * gmp.texi (Integer Division): Fix mpz_congruent_2exp_p "c" type.
+ (Integer Division): Add mpz_divexact_ui.
+ (Number Theoretic Functions): Fix mpz_nextprime return type.
+ (Exact Remainder): Divisibility tests now implemented.
+ And more index entries in a few places.
+
+ * tests/mpz/dive_ui.c: New file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/dive_ui.c: New file.
+ * Makefile.am, mpz/Makefile.am: Add it.
+ * gmp-h.in (mpz_divexact_ui): Add prototype.
+
+ * tune/many.pl, tune/speed.h: Add special mpn_back_to_back for
+ development.
+
+ * gmp-impl.h (MPN_DIVREM_OR_DIVEXACT_1): New macro.
+ * mpz/divexact.c: Use it.
+
+ * gmp-impl.h (DIVEXACT_1_THRESHOLD): New threshold.
+ * tune/tuneup.c: Tune it.
+
+ * tune/speed.c,speed.h,common.c,many.pl: Add measuring of
+ mpn_divexact_1, mpn_copyi, mpn_copyd.
+
+ * mpn/generic/dive_1.c: New file.
+ * configure.in (gmp_mpn_functions): Add it.
+ * gmp-impl.h (mpn_divexact_1): Add prototype.
+ * mpn/asm-defs.m4: Add define_mpn(divexact_1).
+
+ * tests/mpn: New directory.
+ * tests/Makefile.am: Add it.
+ * tests/mpn/Makefile.am: New file.
+ * configure.in (AC_OUTPUT): Add it.
+ * tests/mpn/t-asmtype.c: New file.
+
+ * configure, config.in: Update to autoconf 2.49d.
+
+ * configure.in, gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Revert
+ to generating gmp.h, mp.h and expr-impl.h with AC_OUTPUT and AC_SUBST.
+
+ * configure.in (m68*-*-*): Oops, m683?2 is 68000, m68360 is cpu32.
+ * mpn/m68k/m68k-defs.m4 (scale_available_p): Ditto.
+
+ * configure.in (underscore, asm_align): Remove these variables, unused.
+ (GMP_ASM_*): Sort by AC_REQUIREs, to avoid duplication.
+ * acinclude.m4 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_LOG): Remove support
+ for actions, no longer needed.
+
+2001-04-17 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (m68k-*-*): Look for cpu in linux kernel /proc/cpuinfo.
+
+ * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): The -mpentiumpro problem is
+ fixed in 2.95.4, so test for that.
+ (GMP_ASM_TYPE): Amend some comments.
+
+ * tune/freq.c (speed_cpu_frequency_sysctl): Avoid having unused
+ variables on GNU/Linux.
+
+ * mpn/asm-defs.m4 (m4_instruction_wrapper): Fix a quoting problem if
+ the name of the file is a macro.
+
+2001-04-15 Kevin Ryde <kevin@swox.se>
+
+ * mpn/powerpc64/*.asm: Add speeds on ppc630.
+
+ * acconfig.h: Add dummy templates for _LONG_LONG_LIMB and HAVE_MPFR.
+ * configure.in: Ensure config.in is the last AM_CONFIG_HEADER,
+ which autoheader requires.
+
+ * mpn/x86/pentium/popcount.asm: New file.
+ * mpn/x86/pentium/hamdist.asm: New file.
+
+ * mpn/asm-defs.m4: (m4_popcount): New macro.
+ Amend a few comments elsewhere.
+
+ * acinclude.m4 (GMP_ASM_RODATA): If possible, grep compiler output for
+ the right directive.
+
+ * tune/speed.c: Print clock speed in MHz, not cycle time.
+
+ * configure.in (AC_CHECK_HEADERS): Check for sys/processor.h.
+ * tune/freq.c (speed_cpu_frequency_processor_info): Require
+ <sys/processor.h> to exist, to differentiate the different
+ processor_info on Darwin.
+ (speed_cpu_frequency_sysctlbyname): Remove hw.model test which is in
+ speed_cpu_frequency_sysctl.
+ (speed_cpu_frequency_sysctl): Add hw.cpufrequency for Darwin.
+
+ * gmp-impl.h (MPN_LOGOPS_N_INLINE, mpn_and_n ... mpn_xnor_n): Use a
+ single expression argument for the different operations, necessary for
+ the Darwin "smart" preprocessor.
+
+ * mpn/m68k/t-m68k-defs.pl: Allow white space in m4_definsn and
+ m4_defbranch.
+
+ * tune/many.pl: Change RM_TMP_S to RM_TMP to match mpn/Makeasm.am,
+ avoid a possibly undefined array in a diagnostic, add more renaming to
+ hamdist.
+
+2001-04-13 Kevin Ryde <kevin@swox.se>
+
+ * ltmain.sh, aclocal.m4, configure, config.in: Update to libtool 1.3d.
+ * configure.in: Change ac_ to lt_ in lt_cv_archive_cmds_need_lc and
+ lt_cv_proc_cc_pic.
+
+ * config.guess (m68*-*-*): Detect exact cpu with BSD sysctl hw.model,
+ detect 68000/68010 with trapf, detect 68302 with bfffo.
+
+2001-04-11 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_ADDRESSING,
+ GMP_ASM_M68K_BRANCHES): New macros.
+ * configure.in: Use them, remove old 68k configs, use mc68020 udiv and
+ umul.
+
+ * mpn/m68k/m68k-defs.m4: New file.
+ * mpn/m68k/t-m68k-defs.pl: New file.
+ * mpn/m68k/*.asm: New files, converted from .S. Merge add_n and sub_n
+ to aors_n, ditto mc68020 addmul_1 and submul_1 to aorsmul_1. No
+ object code changes (except .type and .size now used on NetBSD 1.4).
+ * mpn/m68k/README: New file.
+ * mpn/m68k/*.S, */*.S, syntax.h: Remove files.
+
+ * configure.in (m68*-*-netbsd1.4*): Pretend getrusage doesn't exist.
+ * tune/README: Update.
+
+ * configure.in (powerpc*-*-*): For the benefit of Darwin 1.3, add cc
+ to cclist, make gcc_cflags -Wa,-mppc optional.
+
+2001-04-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add | for 68k.
+ (gmpasm-mode-syntax-table): Add to comments.
+
+ * tests/mpz/reuse.c (dsi_div_func_names): Add names for cdiv_[qr]_2exp.
+
+2001-04-04 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): Fix test so as to actually
+ detect the problem, add notes on m68k netbsd 1.4.1.
+
+ * gmp.texi (Compatibility with older versions): Note libmp
+ compatibility.
+
+2001-04-03 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpz/reuse.c: Add mpz_cdiv_q_2exp and mpz_cdiv_r_2exp.
+
+ * tests/mpz/t-pow.c: Drag in refmpn.o when testing mpz_pow_ui etc with
+ refmpn_mul_2.
+
+ * tune/speed.c,speed.h,common.c,many.pl: Add measuring of mpn_com_n
+ and mpn_mul_2.
+ * tests/devel/try.c: Add testing of mpn_mul_2, and a
+ DATA_MULTIPLE_DIVISOR attribute.
+
+ * gmp.texi (Build Options): List more m68k's.
+ (Build Options): Add cross reference to tex2html.
+ (Notes for Particular Systems): Add m68k means 68020 or up.
+ (Rational Conversions): New section, with mpq_get_d, mpq_set_d and
+ mpq_set_f from Miscellaneous, and new mpq_set_str.
+ (Applying Integer Functions): Move mpq_get_num, mpq_get_den,
+ mpq_set_num and mpq_set_den from Misc.
+ (Miscellaneous Rational Functions): Remove section.
+ (Custom Allocation): Partial rewrite for various clarifications.
+ (References): Improve line breaks near URLs.
+
+ * acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): New macro.
+ * configure.in (m68*-*-*): Use it to run gcc 2.95.x at -O not -O2.
+ (m680?0-*-*, m683?2-*-*, m68360-*-*): Add optional gcc -m options.
+
+ * tests/mpz/t-cmp.c: New file.
+ * tests/mpz/t-sizeinbase.c: New file.
+ * tests/mpz/Makefile.am: Add them.
+
+ * gmp-impl.h (MPN_CMP): New macro.
+ * mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too.
+
+ * tests/mpq/t-equal.c: New file.
+ * tests/mpq/t-get_str.c: New file.
+ * tests/mpq/Makefile.am: Add them.
+
+ * mpq/get_str.c: New file.
+ * Makefile.am, mpq/Makefile.am: Add it.
+ * gmp-h.in (mpq_get_str): Add prototype.
+
+ * mpq/equal.c: Rewrite using inline compare loops.
+
+ * tests/refmpn.c,tests.h (refmpn_mul_2): Fix parameter order.
+ * mpz/n_pow_ui.c: Fix mpn_mul_2 calls parameter order.
+
+2001-03-29 Kevin Ryde <kevin@swox.se>
+
+ * tests/mpf/t-trunc.c: New file.
+ * tests/mpf/Makefile.am (check_PROGRAMS): Add it.
+ * gmp-impl.h (MPF_CHECK_FORMAT): New macro.
+
+ * mpf/trunc.c: New file, rewrite of integer.c, preserve prec+1 in
+ copy, don't copy if unnecessary.
+ * mpf/ceilfloor.c: New file likewise, and use common subroutine for
+ ceil and floor.
+ * mpf/integer.c: Remove file.
+ * Makefile.am, mpf/Makefile.am, macos/Makefile.in: Update.
+
+ * acinclude.m4 (GMP_GCC_VERSION_GE): New macro.
+ (GMP_GCC_MARCH_PENTIUMPRO): Use it, remove CCBASE parameter (don't
+ bother checking it's gcc).
+ (GMP_GCC_ARM_UMODSI): New macro.
+ * configure.in (GMP_GCC_MARCH_PENTIUMPRO): Update parameters.
+ (arm*-*-*): Use GMP_GCC_ARM_UMODSI.
+ * gmp.texi (Notes for Particular Systems): Add arm gcc requirements.
+
+2001-03-28 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Converting Integers): Document mpz_getlimbn using absolute
+ value and giving zero for N out of range, move to end of section.
+
+ * tests/refmpn.c (refmpn_tdiv_qr): Use refmpn_divmod_1 rather than
+ refmpn_divrem_1.
+ * tests/tests.h: Add some prototypes that were missing.
+
+ * mpz/tdiv_q_ui.c: Remove a comment that belonged to mpz_tdiv_r_ui.
+
+2001-03-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code
+ in both arms. Partially combine multiply arms.
+
+2001-03-24 Kevin Ryde <kevin@swox.se>
+
+ * longlong.h: Add comments to P5 count_leading_zeros.
+
+ * demos/expr/exprz.c,t-expr.c,README: Add congruent_p and divisible_p.
+
+2001-03-23 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (GMPceil, GMPfloor, ge, le): New macros.
+ (Integer Division, mpn_cmp, mpn_sqrtrem, Algorithms): Use them.
+ (mpn_bdivmod): Refer to mp_bits_per_limb, not BITS_PER_MP_LIMB, and
+ improve formatting a bit.
+ (mpn_lshift, mpn_rshift): Clarify the return values, and use {rp,n}
+ for the destination.
+ Miscellaneous minor rewordings in a few places.
+
+ * mpn/arm/arm-defs.m4: New file.
+ * configure.in (arm*-*-*): Use it.
+ * mpn/arm/*.asm: Use changecom and registers from arm-defs.m4, use L()
+ for local labels.
+
+ * mpn/x86/k6/mmx/com_n.asm: Relax code alignment (same speed).
+
+ * gmp-h.in (__GMP_ATTRIBUTE_PURE): Use __pure__ to avoid application
+ namespace.
+
+ * gmp-impl.h (ABS): Add parens around argument.
+
+2001-03-20 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_PROG_M4): Use AC_ARG_VAR on $M4.
+
+ * acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): New macro.
+ * configure.in: Use it.
+ * mpn/asm-defs.m4: Ditto.
+
+2001-03-18 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/logops_n.asm: New file.
+
+ * mpn/x86/k6/k62mmx/copyd.asm: Rewrite, smaller and simpler, faster on
+ small sizes, slower on big sizes (about half the time).
+ * mpn/x86/k6/k62mmx/copyi.asm: Remove file, in favour of generic x86.
+ * mpn/x86/copyi.asm: Add some comments.
+ * mpn/x86/k6/README: Update.
+
+ * mpn/x86/k6/gcd_1.asm: New file.
+
+ * gmp-impl.h (NEG_MOD): Fix type of __dnorm.
+
+ * acinclude.m4 (GMP_C_SIZES): Fix use of __GMP_WITHIN_CONFIGURE.
+
+2001-03-15 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (GMPabs): New macro.
+ (Float Comparison - mpf_reldiff): Use it.
+ (Integer Comparisons - mpz_cmpabs): Ditto, puts "abs" in info.
+ (Reentrancy): Update notes on old random functions.
+ (Karatsuba Multiplication): Better characterize the effect of basecase
+ speedups on the thresholds, pointed out by Torbjorn.
+
+ * tune/README: Notes on the 1x1 div threshold for mpn_gcd_1.
+
+ * tests/misc.c (mpz_pow2abs_p, mpz_flipbit, mpz_errandomb,
+ mpz_errandomb_nonzero, mpz_negrandom): New functions.
+ (mpz_erandomb, mpz_erandomb_nonzero): Use urandom().
+ * tests/spinner.c (spinner_wanted, spinner_tick): Make global.
+ * tests/tests.h: Update prototypes.
+
+ * tests/mpz/t-cong.c, tests/mpz/t-cong_2exp.c: New files.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add them.
+
+ * mpz/cong.c, mpz/cong_2exp.c, mpz/cong_ui.c: New files.
+ * Makefile.am, mpz/Makefile.am: Add them.
+ * gmp-impl.h (NEG_MOD): New macro.
+ * gmp-h.in (mpz_congruent_p, mpz_congruent_2exp_p,
+ mpz_congruent_ui_p): Add prototypes.
+ * gmp.texi (Integer Division, Efficiency): Add documentation.
+
+ * mpq/aors.c: No need for ABS on denominator sizes.
+
+ * gmp-impl.h (mpn_divisible_p): Use __MPN.
+
+ * gmp-impl.h (LOW_ZEROS_MASK): New macro.
+ * mpz/divis_ui.c, mpn/generic/divis.c: Use it.
+
+ * mpz/setbit.c: Fix normalization for case of a negative ending up
+ with a zero high limb.
+ * tests/mpz/bit.c (check_single): New test for this problem.
+
+ * configure.in (none-*-*): Fix cclist for default ABI=long.
+
+2001-03-10 Kevin Ryde <kevin@swox.se>
+
+ * mpz/cfdiv_q_2exp.c: Don't scan for non-zero limbs if they don't
+ matter to the rounding.
+
+ * mpz/get_ui.c: Fetch _mp_d[0] unconditionally, so the code can come
+ out branch-free.
+
+2001-03-08 Kevin Ryde <kevin@swox.se>
+
+ * tests/devel/try.c (param_init): Fix reference functions for and_n
+ and nand_n.
+
+ * tune/speed.c, tests/devel/try.c: Seed RANDS, not srandom etc.
+ * configure.in (AC_CHECK_FUNCS): Remove srand48 and srandom.
+ * macos/configure (coptions): Remove random/srandom, now unnecessary.
+
+ * configure.in (gmp.h, mp.h, demos/expr/expr-impl.h): Generate using
+ AM_CONFIG_HEADER.
+ (_LONG_LONG_LIMB, HAVE_MPFR): Change to AC_DEFINEs.
+ * gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Change to #undef's.
+ * acinclude.m4 (GMP_FUNC_ALLOCA, GMP_C_SIZES): Use gmp-h.in, not gmp.h.
+ * Makefile.am (EXTRA_DIST): Remove gmp-h.in and mp-h.in, now done
+ automatically.
+ * acinclude.m4 (GMP_FUNC_ALLOCA), gmp-impl.h: Set and use
+ __GMP_WITHIN_CONFIGURE rather than GMP_FUNC_ALLOCA_TEST.
+
+ * mpf/random2.c: Use _gmp_rand and RANDS instead of random() for the
+ exponent, ensures full range of values too.
+
+ * tests/mpz/t-div_2exp.c (check_various): Start with d based on i, but
+ don't let it go negative.
+
+ * tune/tuneup.c (KARATSUBA_MUL_THRESHOLD): Limit probing to
+ TOOM3_MUL_THRESHOLD_LIMIT, the size of the workspace in mul_n.c.
+ Use a -1 with this too, so size<LIMIT not <=.
+
+2001-03-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/cfp/mul_1.c: Don't call mpn_add_n with size 0.
+ * mpn/cray/cfp/addmul_1.c: Likewise.
+ * mpn/cray/cfp/submul_1.c: Don't call mpn_sub_n with size 0.
+
+ * tests/mpz/t-div_2exp.c (check_various): Start 2nd d loop from 0
+ (avoid problems with Cray compilers).
+
+2001-03-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/submul_1.c: Don't call mpn_sub_n with size 0.
+
+ * mpn/cray/ieee/mul_basecase.c: New file.
+ * mpn/cray/ieee/sqr_basecase.c: New file, derived from mul_basecase.c.
+
+2001-03-06 Kevin Ryde <kevin@swox.se>
+
+ * tests/devel/try.c (pointer_setup): Allow dst_size == SIZE_SIZE2 for
+ the benefit of mpn_tdiv_qr.
+
+ * tune/tuneup.c (all): Start karatsuba probing at size==4, for the
+ benefit of cray t90 ieee which has speed oddities at size==2.
+
+ * gmp-impl.h (USE_LEADING_REGPARM): Use __GMP_GNUC_PREREQ.
+ Use __GMP_ATTRIBUTE_PURE and ATTRIBUTE_CONST in a few places.
+
+ * gmp-h.in (__GMP_GNUC_PREREQ) New macro.
+ (__GMP_ATTRIBUTE_PURE): New macro, use it in many places.
+
+ * gmp-impl.h, gmp-h.in (mpn_jacobi_base): Move prototype to
+ gmp-impl.h, use ATTRIBUTE_CONST.
+
+ * tune/speed.h (speed_cyclecounter): Inline asm version for i386.
+
+ * mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Only reread "up" after second
+ realloc, first is under w!=u.
+
+2001-03-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/sub_n.c: Rewrite using `majority' logic.
+
+ * mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Reread `up' after realloc of w.
+
+ * mpn/cray/ieee/mul_1.c: Rewrite. Streamline multiplications;
+ use `majority' logic.
+ * mpn/cray/ieee/addmul_1.c: Likewise.
+
+ * mpn/cray/add_n.c: Rewrite using `majority' logic.
+
+2001-03-04 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (CRAY udiv_qrnnd): No longer conditional on CRAYMPP.
+ (64-bit hppa add_ssaaaa): New.
+ (64-bit hppa sub_ddmmss): New.
+
+ * mpn/cray/ieee/invert_limb.c: New file.
+
+ * gmp-impl.h (RANDS): Add a `,0' to make it compile on more compilers.
+
+2001-03-03 Kevin Ryde <kevin@swox.se>
+
+ * mpz/n_pow_ui.c (ULONG_PARITY): Move to gmp-impl.h.
+ * gmp-impl.h (ULONG_PARITY): i386 part from n_pow_ui.c, new generic
+ form by Torbjorn.
+
+ * tests/mpz/t-div_2exp.c: New file, rewrite of t-2exp.c.
+ * tests/mpz/t-2exp.c: Remove file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Update.
+
+ * gmp-h.in (mpz_cdiv_q_2exp, mpz_cdiv_q_2exp): Add prototypes.
+ * gmp.texi (Integer Division): Add mpz_cdiv_q_2exp and mpz_cdiv_q_2exp.
+
+ * mpz/cfdiv_q_2exp.c: New file, partial rewrite of fdiv_q_2exp.c, add
+ mpz_cdiv_q_2exp entrypoint.
+ * mpz/cfdiv_r_2exp.c: New file, rewrite of fdiv_r_2exp.c, use all mpn,
+ add mpz_cdiv_r_2exp entrypoint.
+ * mpz/fdiv_q_2exp.c, mpz/fdiv_r_2exp.c: Remove files.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Update.
+ * Makefile.am (MPZ_OBJECTS): Ditto.
+
+ * gmp-impl.h (USE_LEADING_REGPARM): Use __i386__ same as longlong.h
+ (REGPARM_2_1, REGPARM_3_1, REGPARM_ATTR): New macros.
+ * mpz/jacobi.c (jac_or_kron): Use them.
+
+ * configure.in (HAVE_ABI_$ABI): Re-enable this for config.m4, with
+ dots changed to underscores (necessary for hppa).
+
+ * tests/mpz/t-divis.c, tests/mpz/t-divis_2exp.c: New files.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Add them.
+
+ * gmp-h.in (mpz_divisible_p, mpz_divisible_ui_p,
+ mpz_divisible_2exp_p): Add prototypes.
+ * gmp.texi (Integer Division): Add mpz_divisible_p.
+ (Efficiency): Add remarks about divisibility testing.
+
+ * mpz/divis.c, mpz/divis_ui.c, mpz/divis_2exp.c: New files.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add them.
+ * Makefile.am (MPZ_OBJECTS): Ditto.
+
+ * mpn/generic/divis.c: New file.
+ * configure.in (gmp_mpn_functions): Add it.
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Ditto.
+ * gmp-impl.h (mpn_divisible_p): Add prototype.
+
+ * urandom.h: Remove file.
+ * Makefile.am (EXTRA_DIST): Remove it.
+
+ * tests/mpz/convert.c, dive.c, io.c, logic.c, reuse.c, t-2exp.c,
+ t-fdiv.c, t-fdiv_ui.c, t-gcd.c, t-jac.c, t-mul.c, t-pow.c,
+ t-powm.c, t-powm_ui.c, t-root.c, t-sqrtrem.c, t-tdiv.c,
+ t-tdiv_ui.c: Use RANDS, initialized by tests_rand_start.
+
+ * tests/mpz/t-pow.c: New file, being t-pow_ui renamed and with some
+ further tests added.
+ * tests/mpz/t-pow_ui.c: Remove file.
+ * tests/mpz/Makefile.am (check_PROGRAMS): Update.
+
+ * tests/t-modlinv.c: Don't use urandom.h.
+ * tests/mpz/bit.c, tests/mpz/t-scan.c: Ditto.
+ * tests/mpq/t-cmp.c, tests/mpq/t-cmp_ui.c, tests/mpq/t-get_d.c: Ditto.
+ * tests/mpf/reuse.c, t-add.c, t-conv.c, t-dm2exp.c, t-muldiv.c,
+ t-sqrt.c, t-sub.c: Ditto.
+
+ * tests/misc.c (tests_rand_start, tests_rand_end): New functions.
+ (tests_start, tests_end): Use them.
+ (urandom): New function.
+ * tests/tests.h: Add prototypes.
+
+ * mpz/random.c: Rewrite using mpz_urandomb and RANDS.
+ * mpn/generic/random.c: Rewrite using _gmp_rand and RANDS.
+ * mpn/generic/random2.c: Use RANDS not random() etc.
+
+ * gmp-impl.h (__gmp_rands, __gmp_rands_initialized): Add externs.
+ (gmp_randstate_ptr): New typedef.
+ (RANDS, RANDS_CLEAR): New macros.
+
+ * rands.c: New file.
+ * Makefile.am (libgmp_la_SOURCES): Add it.
+
+ * configure.in (mpn_objs_in_libmp): New AC_SUBST.
+ * Makefile.am (libmp_la_DEPENDENCIES): Use it.
+
+2001-03-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64/udiv_qrnnd.asm: New file.
+
+2001-03-01 Kevin Ryde <kevin@swox.se>
+
+ * mpbsd/rpow.c: New file.
+ * mpbsd/Makefile.am (libmpbsd_la_SOURCES): Add it
+ (nodist_libmpbsd_la_SOURCES): Remove pow_ui.c.
+ * Makefile.am (MPBSD_OBJECTS): Add rpow.lo, remove pow_ui.lo.
+ (libmp_la_DEPENDENCIES): Add mpz/n_pow_ui.lo.
+
+ * mpz/ui_pow_ui.c: Rewrite using mpz_n_pow_ui.
+ * mpz/pow_ui.c: Ditto, and no longer provide rpow for mpbsd.
+
+ * mpz/n_pow_ui.c: New file, rewrite of pow_ui.c and ui_pow_ui.c. Use
+ less temporary memory, strip factors of 2 from the base, use mpn_mul_2
+ if available.
+ * mpz/si_pow_ui.c: New file.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add them.
+ * Makefile.am (MPZ_OBJECTS): Ditto.
+ * gmp-impl.h (mpz_n_pow_ui): Add prototype.
+ * gmp-h.in (mpz_si_pow_ui): Add prototype.
+ * gmp.texi (Integer Exponentiation): Add mpz_si_pow_ui.
+
+ * acinclude.m4 (GMP_C_SIZES): Add BITS_PER_ULONG.
+ Correction to mp_limb_t working check.
+ * configure.in (limb_chosen): New variable.
+ * tests/t-constants.c (BITS_PER_ULONG): Check this value.
+ Add some reminders about tests that fail on Cray.
+
+ * tests/refmpn.c (refmpn_mul_2): New function.
+ * tests/refmpz.c (refmpz_pow_ui): Copied from tests/mpz/t-pow_ui.c
+ * tests/tests.h: Add prototypes.
+
+ * configure.in (none-*-*): Add ABI=longlong.
+ * doc/configuration (Long long limb testing): Describe it.
+
+ * gmp.texi (Low-level Functions): Move some commented out remarks ...
+ * mpn/generic/mul_basecase.c: ... to here.
+
+ * mpn/x86/README: Note "%=" as an alternative to "1:" in __asm__.
+
+ * tests/trace.c (mp_trace_start): Print "bin" for binary.
+
+ * mpn/generic/dump.c: Add a couple of casts to keep gcc quiet.
+
+ * gmp-h.in (mpn_incr_u, mpn_decr_u): Add parens around arguments.
+
+ * mpbsd/mout.c, mpbsd/mtox.c (num_to_text): Remove unused variable.
+
+ * mpfr/set_d.c (mpfr_get_d2): Declare "q" for 64-bit limbs.
+
+2001-02-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64w/udiv_qrnnd.asm: Tune.
+
+2001-02-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64w/udiv_qrnnd.asm: New file.
+
+2001-02-26 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (arm): Optimize sub_ddmmss by testing for constant
+ operands.
+ * mpn/arm/invert_limb.asm: New file.
+
+2001-02-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/lshift.c: Rewrite.
+ * mpn/generic/rshift.c: Rewrite.
+
+ * longlong.h: Use UWtype for external interfaces that expect mp_limb_t.
+
+ * longlong.h (arm): #define invert_limb.
+
+ * mpn/arm: Make labels have local scope.
+
+ * configure.in (arm*-*-*): Set extra_functions.
+ * longlong.h (arm): #define udiv_qrnnd.
+ * mpn/arm/udiv.asm: New file.
+
+2001-02-24 Kevin Ryde <kevin@swox.se>
+
+ * tune/many.pl: Add mpn_count_leading_zeros, mpn_count_trailing_zeros
+ and mpn_invert_limb. Add count_leading_zeros, count_trailing_zeros
+ from a .h file. Correction to modexact_1_odd prototype. Support
+ ansi2knr.
+ * tune/speed.h, tune/common.c: Consequent changes.
+
+ * demos/expr/*: Make a few more functions available in expressions,
+ create only libexpr.a, misc minor updates.
+
+ * mpn/Makeasm.am: Add some comments about suffix ordering.
+
+ * tests/refmpn.c (rshift_make, lshift_make): No need to compare
+ unsigned to zero.
+
+ * mpq/mul.c: Detect and optimize squaring.
+
+2001-02-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3: Convert files to `.asm'.
+
+ * mpn/arm: Convert files to `.asm'. Misc cleanups.
+ * mpn/arm/submul_1.asm: New file.
+
+2001-02-21 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c (all): Only one compiler print should match, no need
+ for #undef PRINTED_COMPILER.
+
+ * mpfr/mpfr.h (mpfr_sgn): Use mpfr_cmp_ui (patch from Paul).
+
+ * mpz/fib_ui.c: Update some remarks about alternative algorithms.
+ * gmp.texi (Fibonacci Numbers Algorithm): Ditto.
+ (Assigning Floats): Clarify mpf_swap swaps the precisions too.
+ (Low-level Functions): Try to be clearer about negative cofactors.
+
+2001-02-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/copyi.asm: Streamline for small operands.
+ * mpn/sparc64/add_n.asm: Likewise.
+ * mpn/sparc64/sub_n.asm: Likewise.
+
+ * mpn/sparc64/copyd.asm: New file.
+
+2001-02-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/lshift.asm: Rewrite.
+ * mpn/sparc64/rshift.asm: Rewrite.
+
+2001-02-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/add_n.asm: Rewrite using `majority' logic.
+ * mpn/sparc64/sub_n.asm: Likewise.
+
+ * tune/tuneup.c (all): Recognise DECC and MIPSpro compilers.
+
+ * mpn/pa64/sqr_diagonal.asm: Use PROLOGUE/EPILOGUE.
+ * mpn/pa642/sqr_diagonal.asm: Likewise.
+
+ * configure.in (HAVE_ABI_$abi): Disable for now.
+
+ * mpn/asm-defs.m4 (PROLOGUE): Use LABEL_SUFFIX.
+
+ * acinclude.m4 (GMP_ASM_ATTR): New check, for hppa oddities.
+
+2001-02-18 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/hppa/hppa1_1/gmp-mparam.h: New file.
+ * mpn/hppa/hppa2_0/gmp-mparam.h: New file.
+
+ * mpn/pa64/sqr_diagonal.asm: New file.
+ * mpn/pa64w/sqr_diagonal.asm: New file.
+ * mpn/hppa/hppa1_1/sqr_diagonal.asm: New file.
+ * mpn/hppa/hppa2_0/sqr_diagonal.asm: New file.
+
+ * mpn/sparc32/v9/add_n.asm: Use `fitod' instead of `fxtod' for dummy
+ FA-pipeline insns.
+ * mpn/sparc32/v9/sub_n.asm: Likewise.
+
+2001-02-18 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Known Build Problems): Notes on make, $* and K&R, misc
+ tweaks elsewhere.
+ (Low-level Functions): Use {} notation in mpn_sqrtrem.
+ (Basecase Multiplication): Mention BASECASE_SQR_THRESHOLD.
+
+ * mpfr/isnan.c (mpfr_number_p): Infinity is not a number.
+ * mpfr/out_str.c: Pass strlen+1 for the block size to free.
+ * mpfr/get_str.c: Correction for realloc to strlen+1.
+
+ * acinclude.m4 (GMP_C_SIZES): Generate an error if mp_limb_t doesn't
+ seem to work for some reason.
+
+2001-02-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/gmp-mparam.h: Retune.
+
+ * mpn/sparc32/v9/add_n.asm: New file.
+ * mpn/sparc32/v9/sub_n.asm: New file.
+
+ * mpn/sparc32/v9/mul_1.asm: Tune function entry.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+
+ * mpn/sparc32/v9/sqr_diagonal.asm: New file.
+
+2001-02-16 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Fix flags selection when $CC is a compiler known to us.
+
+ * demos/expr/exprfr.c (e_mpfr_cos, e_mpfr_sin): mpfr_sin_cos now
+ allows NULL for one parameter.
+
+ * mpfr/*: Update to 20010215.
+ * mpfr/trunc.c: Use -DOPERATION scheme, and gmp mpn_zero_p.
+ * mpfr/sqrt.c: Use plain mpn_sqrtrem, not mpn_sqrtrem_new.
+ * mpfr/sqrtrem.c: Remove file.
+ * mpfr/Makefile.am (libmpfr_a_SOURCES): Add isnan.c and set_ui.c,
+ remove sqrtrem.c and srandom.h.
+
+ * configfsf.guess: Update to 2001-02-13.
+ * configfsf.sub: Update to 2001-02-16.
+ * config.sub (j90, t90): Remove special handing, configfsf.sub now ok.
+
+ * Makefile.am (MPF_OBJECTS): Add a couple of missing $U's.
+
+ * tune/tuneup.c: Identify compiler used (GCC and Sun C so far).
+
+2001-02-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/mul_1.asm: Change `ld' to `lduw' and `st' to `stw'.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+
+2001-02-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3/mips.m4: New file.
+ * configure.in (mips*-*-irix[6789]*): Use mips3/mips.m4.
+
+ * mpn/powerpc64/sqr_diagonal.asm: New file.
+
+ * mpn/mips3/sqr_diagonal.asm: New file.
+
+2001-02-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/sqr_diagonal.asm: New file.
+
+ * mpn/generic/sqr_basecase.c: Remove declaration of mpn_sqr_diagonal.
+ Fix typo in header comment.
+
+2001-02-12 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul.c, mpn/generic/mul_n.c, gmp-impl.h: Use
+ mpn_mul_basecase for squaring below new BASECASE_SQR_THRESHOLD.
+ * tune/tuneup.c gmp-impl.h: Tune BASECASE_SQR_THRESHOLD.
+
+ * Makefile.am (libgmp.la, libmp.la): Revert change to build from
+ mpn/libmpn.la etc, go back to explicitly listed objects.
+
+ * configure.in: Recognise sparc64-*-*, not just sparc64-*-linux*.
+
+2001-02-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/asm-defs.m4 (sqr_diagonal): New define_mpn.
+
+ * mpn/alpha/sqr_diagonal.asm: New file.
+
+2001-02-11 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Low-level Functions): Note mpn_get_str clobbers its input
+ plus 1 extra limb.
+
+ * mpfr/add.c,agm.c,exp2.c,exp3.c,generic.c,log2.c,pi.c,print_raw.c,
+ set_d.c,sin_cos.c,sqrtrem.c,sub.c: Apply some tweaks for K&R.
+ * tests/mpz/reuse.c, tests/mpq/t-md_2exp.c, demos/pexpr.c,
+ demos/expr/t-expr.c: Ditto.
+
+ * configure.in (HAVE_ABI_$abi): New define in config.m4.
+
+ * gmp-impl.h (mpn_sqr_diagonal): Add prototype and define.
+ * tune/speed.c,speed.h,common.c,many.pl: Add measuring of
+ mpn_sqr_diagonal.
+
+ * gmp.texi, acinclude.m4: Mention x86 solaris 2.7 has the reg->reg
+ movq bug the same as 2.6.
+
+ * mpfr/Makefile.am (EXTRA_DIST): Add mpfr-test.h and mpf2mpfr.h.
+
+ * mpn/x86/README: Merge contents of README.family.
+ * mpn/x86/README.family: Remove file.
+
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mode1o, gcd_finda,
+ invert_limb, sqr_diagonal; remove mod_1_rs; sort alphabetically.
+
+2001-02-10 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (gmp_mpn_functions_optional): List sqr_diagonal.
+
+ * mpn/powerpc32/aix.m4: Use unnamed csects.
+ * mpn/powerpc64/aix.m4: Likewise.
+
+ * acconfig.h: Add #undef of mpn_sqr_diagonal.
+ Remove lots of spacing.
+
+ * configure.in (syntax testing section): Match power* instead of
+ powerpc*.
+ * mpn/power: Convert files to `.asm'.
+ Prefix umul_ppmm and sdiv_qrnnd.
+ Update some comments.
+
+2001-02-09 Kevin Ryde <kevin@swox.se>
+
+ * acconfig.h: Add HAVE_NATIVE_mpn_modexact_1_odd and
+ HAVE_NATIVE_mpn_modexact_1c_odd.
+
+ * configure.in (CCAS): Don't override a user selection.
+
+ * mpq/cmp_ui.c: DIVIDE_BY_ZERO if den2==0.
+
+2001-02-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate.
+
+2001-02-07 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Low-level Functions): mpn_preinv_mod_1 now undocumented.
+
+ * mpn/generic/random2.c (myrandom): Use rand() on mingw.
+
+ * mpn/alpha/gmp-mparam.h: Update tuned parameters.
+
+2001-02-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/gmp-mparam.h: Retune.
+
+2001-02-05 Kevin Ryde <kevin@swox.se>
+
+ * Makefile.am (libgmp, libmp): Construct from mpn/libmpn.la etc rather
+ than explicitly listed objects.
+
+ * urandom.h: Use rand() on mingw.
+
+ * mpn/powerpc64/lshift.asm,addsub_n.asm: Use r1 not 1.
+
+2001-02-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/copyi.asm: New file.
+ * mpn/ia64/copyd.asm: New file.
+
+2001-02-04 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/ev5/gmp-mparam.h, mpn/mips3/gmp-mparam.h,
+ mpn/powerpc32/gmp-mparam.h, mpn/powerpc64/gmp-mparam.h,
+ mpn/sparc64/gmp-mparam.h, mpn/x86/*/gmp-mparam.h:
+ Update tuned parameters.
+
+ * mpn/x86/i486: New directory.
+ * configure.in (i486-*-*): Use it.
+ * mpn/x86/i486/gmp-mparam.h: New file.
+
+ * mpn/x86/pentium/mode1o.asm: New file.
+ * mpn/x86/p6/mode1o.asm: New file.
+
+ * tune/many.pl: Use $(ASMFLAGS_PIC) and $(CFLAGS_PIC).
+
+ * gmp.texi (Integer Division): Another rewording of 2exp divisions.
+
+2001-02-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/arm/gmp-mparam.h: Tune.
+
+ * mpn/ia64/popcount.asm: Put a `;;' break at end of main loop.
+
+ * configure.in (arm*-*-*): Set gcc_cflags in order to pass
+ $fomit_frame_pointer.
+
+ * tests/mpz/t-mul.c (base_mul): Remove an unused variable.
+
+2001-02-02 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (TIME): New macro.
+ (main): Use TIME--print timing more accurately.
+ (setup_error_handler): Increase RLIMIT_DATA to 16 Mibyte.
+
+ * longlong.h (arm): Add __CLOBBER_CC to add_ssaaaa and sub_ddmmss.
+
+2001-02-02 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Don't remove gmp-mparam.h and mpn source links under
+ --no-create since in that case they're not re-created.
+
+ * demos/expr: New directory.
+ * Makefile.am (SUBDIRS, allprogs): Add it.
+ * demos/expr/README, Makefile.am, expr.c, exprv.c, exprz.c, exprza.c,
+ exprq.c, exprqa.c, exprfa.c, exprf.c, exprfr.c, exprfra.c, expr.h,
+ expr-impl-h.in, run-expr.c, t-expr.c: New files.
+ * configure.in: Generate demos/expr/Makefile & demos/expr/expr-impl.h.
+
+ * Makefile.am: Remove mpfr from main libgmp.
+ * mpfr/Makefile.am: Build and install separate libmpfr.a.
+ * mpfr/*: Update to mpfr 2001.
+
+ * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 2.
+ * Makefile.am (libtool -version-info): Bump appropriately.
+ * NEWS: Updates.
+
+ * tune/divrem1div.c, tune/divrem1inv.c, tune/divrem2div.c,
+ tune/divrem2inv.c: Renamed from divrem_1_div.c, divrem_1_inv.c,
+ divrem_2_div.c, divrem_2_inv.c, to be unique in DOS 8.3 filenames.
+ * tune/Makefile.am (libspeed_la_SOURCES): Update.
+
+ * mpn/x86/*/README, mpn/x86/README.family: Misc updates.
+ * tune/README: Misc updates.
+ * doc/configuration: Misc updates.
+
+ * mpn/x86/pentium/mmx/gmp-mparam.h: Change UDIV_PREINV_TIME to
+ UDIV_NORM_PREINV_TIME.
+
+ * mpz/pprime_p.c: Use ASSERT_ALWAYS instead of abort.
+
+ * rand.c (__gmp_rand_lc_scheme): Add "const".
+ (struct __gmp_rand_lc_scheme_struct): Make astr "const char *".
+
+ * demos/calc/calc.y, demos/calc/calclex.l: Add kron function.
+
+ * tests/devel/try.c: Partial rewrite, new scheme of function types,
+ allow result validation functions, add sqrtrem and jacobi testing.
+ * tune/many.pl: Corresponding updates.
+ * tests/devel/Makefile.am: Add a convenience rule for libtests.la.
+
+ * tests/refmpz.c: New file.
+ * tests/Makefile.am: Add it.
+ * tests/misc.c (mpz_erandomb, mpz_erandomb_nonzero): New functions.
+ * tests/tests.h: Add prototypes.
+
+ * mpn/x86/k6/cross.pl: Add a couple more exceptions.
+
+ * gmp.texi: Don't use @nicode{'\0'}, it doesn't come out right in tex.
+ (Introduction to GMP): Mention Cray vector systems.
+ (Build Options): Describe --enable-mpfr, refer to its manual. Add
+ Crays under supported CPUs.
+ (Debugging): Add notes on source file paths.
+ (Autoconf): New section.
+ (Assigning Integers): Note truncation by mpz_set_d, mpz_set_q and
+ mpz_set_f.
+ (Converting Integers): Note the size mpz_get_str allocates.
+ (Floating-point Functions): Rewrite introduction, clarifying some
+ points about precision handling.
+ (Converting Floats): Note the size mpf_get_str allocates, and that it
+ gives an empty string for zero. Add mpf_get_si and mpf_get_ui.
+ (Float Comparison): Give the formula mpf_reldiff calculates.
+ (Miscellaneous Float Functions): Add mpf_integer_p and mpf_fits_*_p.
+ (Random Number Functions): Misc rewordings for clarity.
+ (Random State Initialization): Ditto.
+ (Custom Allocation): Remove note on deallocate_function called with 0,
+ misc rewording and clarifications.
+ (Exact Remainder): New section.
+ (Binary GCD): A few words on initial reduction using division.
+ (Accelerated GCD): Refer to exact remainder section.
+ (Extended GCD): Extra remarks on single versus double selection.
+ (Jacobi Symbol): Update for mpz/jacobi.c rewrite and modexact_1_odd.
+ (Modular Powering Algorithm): Refer to exact remainder section.
+ (Assembler SIMD Instructions): Update remarks on MMX.
+ (Contributors): Amend to "Divide and Conquer" division.
+ (References): Tweak some formatting. Add "Proof of GMP Fast Division
+ and Square Root Implementations" by Paul Zimmermann.
+
+2001-01-31 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in: Don't ever pass -mips3; let ABI flags imply ISA.
+
+2001-01-31 Kevin Ryde <kevin@swox.se>
+
+ * tune/time.c: Remove unnecessary longlong.h.
+ (speed_endtime): Add some extra diagnostics.
+
+ * tests/mpz/t-fdiv_ui.c, tests/mpz/t-tdiv_ui.c: Use unsigned long for
+ the divisor, not mp_limb_t.
+ * tests/mpz/t-jac.c (try_base): Use %llu for long long limb.
+ * tests/trace.c: Add <string.h> for strlen.
+
+ * tune/freq.c (speed_cpu_frequency_proc_cpuinfo): Ignore "cycle
+ frequency" of 0, allow "BogoMIPS" as well as "bogomips".
+
+ * macos/Makefile.in: Add mpf/fits_s.c and mpf/fits_u.c objects.
+
+2001-01-30 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc.
+
+2001-01-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/addmul_1.asm: Prefix registers with an `r'.
+ * mpn/powerpc64/submul_1.asm: Likewise.
+ * mpn/powerpc64/mul_1.asm: Likewise.
+
+ * configure.in (alpha*-*-*): Amend last change to handle pca*.
+
+2001-01-29 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.h (SPEED_ROUTINE_INVERT_LIMB_CALL): Don't let the
+ compiler optimize everything away.
+
+ * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Measure
+ operator_div, operator_mod, mpn_divrem_2_div, mpn_divrem_2_inv,
+ mpn_sb_divrem_m3, mpn_sb_divrem_m3_div, mpn_sb_divrem_m3_inv,
+ mpn_dc_divrem_sb_div, mpn_dc_divrem_sb_inv.
+ * tune/divrem_2_div.c, tune/divrem_2_inv.c, tune/sb_div.c,
+ tune/sb_inv.c: New files.
+
+ * tune/tuneup.c, gmp-impl.h, tune/speed.h, tune/common.c,
+ tune/Makefile.am: Tune SB_PREINV_THRESHOLD and DIVREM_2_THRESHOLD.
+
+ * mpn/generic/divrem_2.c: Use new DIVREM_2_THRESHOLD.
+ * mpn/generic/sb_divrem_mn.c: Use new SB_PREINV_THRESHOLD.
+
+ * mpn/x86/p6/mmx/lshift.asm, mpn/x86/p6/mmx/rshift.asm: New files,
+ just m4 include()ing the P55 code.
+ * configure.in (pentium[23]-*-*): Remove x86/pentium/mmx from path.
+
+2001-01-27 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_CHECK_FUNCS): Add srand48.
+ * tune/speed.c: Use this test.
+
+ * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): Allow "egcs-" prefix on gcc
+ --version, warn if the format is unrecognised.
+ (GMP_COMPARE_GE): Guard against empty $1 not only on last arg.
+ (GMP_INIT, GMP_FINISH, GMP_PROG_M4): Obscure or eliminate literal
+ "dnl"s since autoconf thinks they indicate faulty macros.
+
+ * mpz/get_str.c, mpf/get_str.c: Make allocated string block exactly
+ strlen(str)+1 bytes.
+ * mpz/dump.c, mpf/dump.c, tests/mpz/convert.c: Use this size when
+ freeing.
+ * tests/mpf/t-conv.c: Ditto, and ensure x==0 is exercised.
+
+ * tests/mpz/t-fits.c: New file.
+ * tests/mpz/Makefile.am: Add it.
+
+ * tests/mpf/t-fits.c: New file.
+ * tests/mpf/t-get_si.c: New file.
+ * tests/mpf/t-int.c: New file.
+ * tests/mpf/Makefile.am: Add them.
+
+ * mpf/fits_s.c: New file.
+ * mpf/fits_u.c: New file.
+ * mpf/get_si.c: New file.
+ * mpf/get_ui.c: New file.
+ * mpf/int_p.c: New file.
+ * Makefile.am, mpf/Makefile.am: Add them.
+ * gmp-h.in (mpf_fits_*_p, mpf_get_si, mpf_get_ui, mpf_integer_p): Add
+ prototypes.
+
+ * tests/memory.c (tests_allocate, tests_reallocate): Guard against
+ size==0.
+
+ * tests/mpz/*.c, tests/mpq/*.c, tests/mpf/*.c: Uses tests_start and
+ tests_end.
+
+ * gmp-impl.h (USE_LEADING_REGPARM): Fix conditionals.
+
+2001-01-23 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, mpn/Makeasm.am (ASMFLAGS_PIC): New substitution,
+ allowing -DPIC to be suppressed on cygwin.
+ (CFLAGS_PIC): New substitution, use it and $(CCAS) directly, rather
+ than $(LIBTOOL), avoiding a problem with FreeBSD 2.2.8.
+
+ * mpn/x86/k6/mode1o.asm, mpn/x86/k7/mode1o.asm: Remove an unnecessary
+ +[.-L(here)] from _GLOBAL_OFFSET_TABLE_, avoids a segv from gas 1.92.3.
+ * mpn/x86/README.family: Add notes on the problem.
+
+2001-01-20 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (alpha*-*-*): Default `flavour' to ev4.
+
+2001-01-19 Kevin Ryde <kevin@swox.se>
+
+ * assert.c, gmp-impl.h (__gmp_assert_fail): Change return type to
+ void, since it's no longer used in expressions.
+
+ * mpn/x86/addsub_n.S: Remove file, since it doesn't work and it upsets
+ tune/many.pl.
+
+ * mpz/jacobi.c: Rewrite, but still binary algorithm; accept zero and
+ negative denominators; merge mpz_jacobi and mpz_legendre, add
+ mpz_kronecker; use mpn directly, add special cases for size==1.
+ * gmp.texi (Number Theoretic Functions): Update.
+ * gmp-h.in (mpz_kronecker): Add prototype.
+ * gmp-impl.h (USE_LEADING_REGPARM): New macro.
+ * tests/mpz/t-jac.c: Test mpz_kronecker.
+ * mpz/legendre.c: Remove file.
+ * Makefile.am, mpz/Makefile.am: Update.
+
+ * longlong.h (alpha count_leading_zeros): Use __attribute__ ((const))
+ when possible, add parameter to prototype.
+ (ia64 udiv_qrnnd): Use for all compilers, not just gcc.
+ (pentium count_trailing_zeros): Use count_leading_zeros.
+
+ * acinclude.m4 (GMP_C_ATTRIBUTE_CONST, GMP_C_ATTRIBUTE_NORETURN): New
+ macros.
+ * configure.in: Use them.
+ * gmp-impl.h (ATTRIBUTE_CONST, ATTRIBUTE_NORETURN): New macros.
+ (mpn_invert_limb): Add ATTRIBUTE_CONST.
+ (__gmp_assert_fail): Add ATTRIBUTE_NORETURN.
+
+2001-01-18 Kevin Ryde <kevin@swox.se>
+
+ * gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func,
+ __gmp_free_func): Move prototypes from gmp-impl.h to gmp-h.in, for the
+ benefit of gmp++.h.
+
+ * gmp-impl.h, tests/misc.c, tests/tests.h: Move MPZ_SET_STR_OR_ABORT
+ and MPF_SET_STR_OR_ABORT to mpz_set_str_or_abort and
+ mpf_set_str_or_abort in libtests.
+ * tests/mpz/convert.c, tests/mpz/t-bin.c, tests/mpz/t-get_si.c,
+ tests/mpz/t-jac.c, tests/mpz/t-misc.c, tests/mpq/t-md_2exp.c,
+ tests/mpq/t-set_f.c, tests/mpf/t-conv.c, tests/mpf/t-misc.c: Update.
+
+ * mpn/generic/sqrtrem.c: Use MPN_COPY_INCR (for when rp==NULL).
+
+ * tests/mpz/reuse.c: Only run mpz_divexact_gcd on positive divisors.
+
+2001-01-18 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (main): Accept -vml option.
+ (fns): List `hamdist', `pow', `nextprime'.
+ (mpz_eval_expr): Return -1 for `popc' of negative.
+ (mpz_eval_expr): Handle `hamdist', `pow', `nextprime'.
+
+2001-01-15 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/ev5/mode1o.c: New file.
+
+ * tune/freq.c (speed_cpu_frequency_measure): Check cycles_works_p
+ before running speed_cyclecounter.
+ * tune/speed.h (cycles_works_p): Add prototype.
+
+2001-01-13 Torbjorn Granlund <tege@swox.com>
+
+ * tests/rand/t-rand.c (farr): Fix typo.
+ (zarr): Fix typo.
+
+2001-01-12 Kevin Ryde <kevin@swox.se>
+
+ * mpz/kronsz.c: Don't depend on right shifting a negative.
+
+ * mpn/x86/gmp-mparam.h: New file.
+
+ * mpn/x86/pentium/mmx/mul_1.asm: New file.
+
+2001-01-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/kronsz.c: Temporary workaround for Cray right shift oddities.
+ Explicitly compare against zero in tests.
+
+2001-01-10 Kevin Ryde <kevin@swox.se>
+
+ * mpz/kronzs.c: Don't depend on right shifting a negative.
+
+2001-01-09 Torbjorn Granlund <tege@swox.com>
+
+ * tests/t-constants.c: Disable some undefined tests.
+ (CHECK_MAX_S): Remove workaround for gcc 2.95.2 bug recently added.
+
+2001-01-09 Kevin Ryde <kevin@swox.se>
+
+ * tests/t-constants.c: Add more diagnostics.
+ (CHECK_MAX_S): Fix for gcc 2.95.2 -mpowerpc64 -maix64.
+
+ * mpn/x86/k6/mode1o.asm: New file.
+ * mpn/x86/k7/mode1o.asm: New file.
+
+ * mpn/asm-defs.m4 (modexact_1_odd, modexact_1c_odd): New define_mpn's.
+ (__clz_tab, modlimb_invert_table, PROLOGUE, EPILOGUE): Add asserts for
+ GSYM_PREFIX.
+ * mpn/x86/x86-defs.m4 (Zdisp): Add a movzbl.
+
+ * tests/mpz/t-jac.c (check_a_zero): New test.
+ (check_squares_zi): Fix to use (a^2/b), not (a*b/b); revert last
+ change avoiding a,b=0, both are fine.
+ (try_2den): Don't use mpz_kronecker_ui for the expected answer.
+ (try_*): Call abort rather than exit.
+
+ * mpz/kronzu.c, mpz/kronzs.c: Fix for a=0.
+
+ * tune/tuneup.c (USE_PREINV_MOD_1): Fix to use new DATA_HIGH_LT_R.
+
+2001-01-08 Torbjorn Granlund <tege@swox.com>
+
+ * urandom.h: Amend 2000-11-21 change to also handle cygwin.
+
+2001-01-08 Kevin Ryde <kevin@swox.se>
+
+ * tune/many.pl: Updates for move to tests/devel, add modexact_1_odd,
+ don't assume C files can't have carry-in entrypoints, remove
+ $(TRY_TESTS_OBJS) now in libtests.
+
+ * tests/devel/try.c, tests/refmpn.c, tests/tests.h: Remove
+ mpn_mod_1_rshift testing.
+
+ * tune/tuneup.c (fft_step_size): Test for overflow using the actual
+ mp_size_t, don't use BITS_PER_INT.
+
+ * tune/speed.c (r_string): "r" is a limb, use BITS_PER_MP_LIMB and
+ change LONG_ONES to LIMB_ONES.
+ * tune/time.c (M_2POWU): Use INT_MAX rather than BITS_PER_INT.
+
+ * extract-dbl.c (BITS_PER_PART): Use BITS_PER_MP_LIMB not
+ BITS_PER_LONGINT.
+
+ * mpz/inp_raw.c, mpz/out_raw.c: Add private defines of BITS_PER_CHAR.
+ * mpz/fac_ui.c, tests/mpz/t-fac_ui.c: Don't use BITS_PER_LONGINT.
+ * tests/mpz/t-get_si.c: Don't use BITS_PER_LONGINT, do the LONG_MAX
+ tests with some explicit code.
+
+ * mpn/*/gmp-mparam.h, acinclude.m4, tests/t-constants.c
+ (BITS_PER_LONGINT, BITS_PER_INT, BITS_PER_SHORTINT, BITS_PER_CHAR):
+ Remove defines, remove probings, remove tests.
+
+ * tune/tuneup.c (MODEXACT_1_ODD_THRESHOLD): Add tuning.
+
+ * tune/speed.c,speed.h,common.c: Add measuring of mpn_modexact_1_odd,
+ mpn_gcd_finda, and an "N" form for mpn_gcd_1.
+
+ * tests/mpz/t-jac.c (check_squares_zi): Ensure random a,b != 0.
+
+2001-01-07 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (gmp_mpn_functions): Add mode1o, remove mod_1_rs.
+
+ * mpn/generic/mod_1_rs.c: Remove file, no longer needed.
+ * gmp-h.in (mpn_mod_1_rshift): Remove prototype and define.
+
+ * mpq/set_f.c: Use MPN_STRIP_LOW_ZEROS_NOT_ZERO.
+
+ * mpz/kronzu.c, mpz/kronzs.c, mpz/kronuz.c, mpz/kronsz.c: Use
+ mpn_modexact_1_odd, new style MPN_STRIP_LOW_ZEROS_NOT_ZERO, and new
+ JACOBI macros. Various rearrangements supporting all this.
+
+ * mpn/generic/gcd_1.c: Use mpn_modexact_1_odd, reduce u%v if u much
+ bigger than v when size==1, some rearrangements supporting this.
+
+ * gmp-impl.h (JACOBI_*): More macros, add some casts to "int".
+ (MPN_STRIP_LOW_ZEROS_NOT_ZERO): Add a "low" parameter.
+ (mpn_modexact_1_odd, mpn_modexact_1c_odd): Add prototype and defines.
+ (MODEXACT_1_ODD_THRESHOLD): New threshold.
+ (MPN_MOD_OR_MODEXACT_1_ODD, JACOBI_MOD_OR_MODEXACT_1_ODD): New macros.
+
+ * mpn/generic/mode1o.c: New file.
+
+ * tests/mpz/reuse.c: Add testing of mpz_divexact_gcd.
+ * tests/mpz/t-fac_ui.c: Use libtests for memory leak checking.
+ * tests/mpz/t-fib_ui.c: Add a usage comment.
+
+ * tests/mpz/bit.c: Use libtests.
+ * tests/mpz/t-scan.c: Remove unused subroutines.
+ * tests/devel/try.c: Use libtests, define PROT_NONE if the system
+ doesn't.
+
+ * tests/spinner.c, tests/x86check.c: Use tests.h.
+ * tests/trace.c: Use tests.h, add mpf_trace.
+ * tests/refmpn.c: Use tests.h, add refmpn_malloc_limbs_aligned,
+ refmpn_tstbit, refmpn_neg.
+
+ * tune/common.c, tune/speed.h: Update for functions moved to
+ tests/misc.c.
+
+ * tune/Makefile.am, tests/mpz/Makefile.am, tests/mpq/Makefile.am,
+ tests/mpf/Makefile.am: Use tests/libtests.la.
+
+ * configure.in (AC_OUTPUT): Update for new directories.
+ (x86 CALLING_CONVENTIONS_OBJS): Use .lo for libtests.la, allow
+ ansi2knr on x86check.c.
+
+ * tests/Makefile.am: Establish new libtests.la convenience library,
+ add mpz, mpq, mpf, mpbsd subdirectories.
+ * tests/tests.h: New file.
+ * mpn/tests/ref.h,try.h: Remove files, now in tests.h.
+
+ * tests/mpf/ref.c: Move to tests/refmpf.c, rename functions to refmpf.
+ * tests/mpf/t-add.c, tests/mpf/t-sub.c: Use libtests.
+ * tests/mpf/Makefile.am: Update.
+
+ * tests/memory.c: New file.
+ * tests/misc.c: New file, a few subroutines from the test programs.
+
+ * mpz/tests, mpq/tests, mpf/tests, mpbsd/tests: Move directories to
+ tests/mpz etc.
+ * mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpbsd/Makefile.am
+ (SUBDIRS): Remove.
+
+ * tests/devel: New directory.
+ * mpn/tests/*.c: Move programs to tests/devel.
+ * mpn/tests/Makefile.am, mpn/tests/README: Move to tests/devel, update.
+
+ * mpn/tests/ref.c: Move to tests/refmpn.c.
+ * mpn/tests/spinner.c,trace.c,x86call.asm,x86check.c: Move to tests
+ directory.
+
+ * tests/t-constants.c: Add checks of HIGHBIT, MAX and MIN constants,
+ simplify ANSI vs K&R stringizing, use correct printf format types, do
+ all tests before aborting.
+
+2001-01-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/gmp-mparam.h: Retune.
+
+2001-01-05 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (mp.h): Only create this under --enable-mpbsd.
+
+ * demos/calc: New subdirectory, move demos/calc* to it.
+ * demos/calc/Makefile.am: New file, split from demos/Makefile.am.
+ * demos/Makefile.am: Update.
+ * configure.in (AC_OUTPUT): Add demos/calc/Makefile.
+
+ * tests/t-constants.c (CALC_BITS_PER_TYPE etc): Use a run-time test
+ for how many bits work in a give type, don't assume bits==8*sizeof.
+
+2001-01-04 Kevin Ryde <kevin@swox.se>
+
+ * mpz/fits_s.c, mpz/fits_u.c: New files, split from fits.c, use plain
+ UINT_MAX etc, not MPZ_FITS_UTYPE_SDT etc.
+ * mpz/fits.c: Remove file.
+ * mpz/Makefile.am, macos/Makefile.in: Update.
+
+ * gmp-impl.h (UNSIGNED_TYPE_MAX etc): Remove these generic forms.
+ (MPZ_FITS_[SU]TYPE_SDT): Remove these.
+ (UINT_MAX etc): Provide a full set of defaults.
+ * gmp-h.in (__GMP_MP_SIZE_T_INT): New define.
+
+ * mpz/tests/t-scan.c: New file.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/scan0.c, mpz/scan1.c: Rewrite, don't read beyond allocated
+ memory, support negatives, return ULONG_MAX for no bit found.
+ * gmp.texi (Integer Logic and Bit Fiddling): Update.
+
+2001-01-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/dive.c: Generate test operands using new random functions.
+ * mpz/tests/io.c: Likewise.
+ * mpz/tests/logic.c: Likewise.
+ * mpz/tests/t-2exp.c: Likewise.
+
+ * stack-alloc.c (__gmp_tmp_alloc): Round `now' to required alignment.
+
+ * stack-alloc.h (__TMP_ALIGN): Append `L'.
+
+ * gmp-impl.h: For Cray, #include limits.h.
+ (LONG_MIN): New #define.
+ (ULONG_HIGHBIT): #define in terms of ULONG_MAX.
+ (LONG_HIGHBIT): #define as LONG_MIN.
+ (USHRT_MAX): New name for USHORT_MAX.
+ (SHRT_MAX): New name for SHORT_MAX.
+ (SHRT_MIN): New #define.
+ (USHORT_HIGHBIT,SHORT_HIGHBIT): Removed.
+
+ * mpbsd/tests/t-misc.c (check_itom [data]): *SHORT* => *SHRT*;
+ remove code disabling a test for Cray.
+
+ * tests/t-constants.c (CHECK_CONSTANT): Cast parameters to long.
+
+ * mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove unused variable `t'.
+ (mpn_kara_mul_n): Likewise.
+
+ * mpz/fac_ui.c (MPZ_SET_1_NZ): Actually use `__z'.
+
+ * mpz/tests/t-jac.c
+ (main, check_squares_zi): Generate test operands using new random
+ functions.
+
+ All changes below on this date for enabling `make; make check'
+ with C++ compilers:
+
+ * mpz/tests/t-pow_ui.c (debug_mp, ref_mpz_pow_ui): Provide prototypes.
+
+ * mpz/tests/t-mul.c (debug_mp, base_mul, ref_mpz_mul):
+ Provide prototypes.
+ (dump_abort): Provide prototype and declare properly for C++.
+
+ * mpz/tests/t-jac.c: #include stdlib.h and sys/time.h.
+
+ * mpz/tests/t-fdiv.c
+ (dump_abort): Provide prototype and declare properly for C++.
+ (debug_mp): Provide prototype.
+ * mpz/tests/t-fdiv_ui.c: Likewise.
+ * mpz/tests/t-gcd.c: Likewise.
+ * mpz/tests/t-powm.c: Likewise.
+ * mpz/tests/t-powm_ui.c: Likewise.
+ * mpz/tests/t-sqrtrem.c: Likewise.
+ * mpz/tests/t-tdiv_ui.c: Likewise.
+ * mpz/tests/t-tdiv.c: Likewise.
+
+ * mpz/tests/t-2exp.c: #include stdlib.h and sys/time.h.
+ Remove #include of longlong.h.
+
+ * mpz/tests/io.c: #include config.h, stdlib.h, sys/time.h, and
+ conditionally unistd.h.
+
+ * mpz/tests/dive.c: #include stdlib.h and sys/time.h.
+ (dump_abort): Provide prototype and declare properly for C++.
+ (debug_mp): Provide prototype.
+ * mpz/tests/logic.c: Likewise.
+
+ * mpz/tests/convert.c (debug_mp): Provide prototype.
+ * mpz/tests/t-root.c (debug_mp): Likewise.
+
+ * mpz/tests/bit.c: #include stdlib.h and sys/time.h.
+
+ * mpq/tests/t-get_d.c: #include stdlib.h and sys/time.h.
+ (dump): Provide prototype and declare properly for C++.
+
+ * mpq/tests/t-cmp_ui.c: #include stdio.h, stdlib.h and sys/time.h.
+ (ref_mpq_cmp_ui): Declare properly for C++.
+
+ * mpq/tests/t-cmp.c: #include stdlib.h and sys/time.h.
+ (ref_mpq_cmp): Declare properly for C++.
+ (dump): Delete unused function.
+
+ * mpf/random2.c (myrandom): New function.
+ (mpf_random2): Use it.
+
+ * mpn/generic/random2.c: #include stdlib.h (for random/mrand48).
+ (myrandom): New function.
+ (mpn_random2): Use it.
+
+ * mpf/tests/t-add.c: #include stdlib.h and sys/time.h.
+ (oo): Remove unused function.
+ * mpf/tests/t-conv.c: Likewise.
+ * mpf/tests/t-sub.c: Likewise.
+ * mpf/tests/t-dm2exp.c: Likewise.
+ * mpf/tests/t-muldiv.c: Likewise.
+ * mpf/tests/t-sqrt.c: Likewise.
+
+ * mpf/tests/reuse.c: #include stdlib.h and sys/time.h.
+ Use PROTO on some typedefs.
+ (oo): Remove function.
+ (dump_abort): Call mpf_dump instead of oo.
+
+ * mpf/set_str.c: #include stdlib.h (for strtol).
+
+ * mpf/random2.c: #include stdlib.h (for random/mrand48).
+ * mpn/alpha/udiv_arnnd: File deleted.
+
+ * Remove K&R function headers.
+
+2001-01-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul.c: Clean up spacing and indentation.
+
+ * mpn/generic/mul_fft.c (mpn_fft_add_modF): Use mpn_decr_u.
+ Clean up spacing and indentation.
+
+ * extract-dbl.c: Generalize to handle smaller limb sizes.
+
+2001-01-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpbsd/mout.c: Output newline after "0".
+
+2000-12-31 Torbjorn Granlund <tege@swox.com>
+
+ * ltmain.sh: Remove space between `#!' and `$SHELL' when generating
+ `libtool'.
+
+ * mpbsd/tests/t-misc.c (check_itom): Exclude test for all Cray
+ vector systems. Correct comment.
+
+2000-12-31 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (ABI and ISA): New enough gcc needed for mips n32 etc, gcc
+ 2.95 needed for sparc 64-bit ABI, gcc 2.8 needed for -mv8plus.
+
+ * configure.in ([cjt]90,sv1-cray-unicos*): Preserve user specified
+ MPN_PATH, amend test program indenting.
+ (none-*-*): Add -DNO_ASM to gcc to disable longlong.h asm macros in
+ generic C.
+
+ * config.sub (j90, t90): Preserve these, don't let configfsf.sub turn
+ them into c90.
+
+ * config.guess (m68k-*-nextstep*,m68k-*-openstep*): Don't transform
+ m68k to m68020, since m68k is already interpreted as 68020.
+
+2000-12-30 Kevin Ryde <kevin@swox.se>
+
+ * mpq/neg.c: Rewrite, use mpn, avoid denominator copy if unnecessary.
+
+ * mpz/tstbit.c: Rewrite, slightly simplified.
+ * mpz/tests/bit.c (check_tstbit): New test, and add a couple more
+ diagnostics elsewhere.
+
+ * configure.in (x86 gcc_cflags_cpu): Add -m486 for gcc 2.7.2.
+ (ccbase): Only use a known compiler in eval statements (avoids
+ problems with non-symbol characters).
+ (ccbase): Use GMP_PROG_CC_IS_GNU to identify gcc installed under a
+ different name.
+ (cclist): Use same style $abi as other variables.
+
+ * acinclude.m4 (GMP_PROG_CC_IS_GNU): New macro.
+ (GMP_GCC_MARCH_PENTIUMPRO): Use $ccbase to identify gcc.
+ (GMP_ASM_TYPE): Define TYPE to empty, not "dnl", when no .type needed.
+ (GMP_ASM_SIZE): Ditto for SIZE, which ensures EPILOGUE on the last
+ line of a file doesn't leave a tab and no newline.
+ (GMP_ASM_UNDERSCORE): Add a prototype for C++.
+
+ * configure.in (sys/mman.h, mprotect): New tests.
+ * mpn/tests/try.c: Use them, and HAVE_UNISTD_H too.
+
+ * configure.in (getopt.h): Remove test.
+ * tune/speed.c, mpn/tests/try.c (getopt.h): Remove include, since
+ plain getopt() is in <unistd.h>.
+
+ * configure.in, gmp-h.in (mips*-*-irix6*): Set limb_n32=longlong
+ rather than using _ABIN32.
+
+2000-12-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/reuse.c: Rename dump_abort => dump.
+ * mpz/tests/reuse.c: Generate operands using gmp_rand*.
+ * mpz/tests/convert.c: Likewise.
+
+ * configure.in: Detect T90-ieee systems; move Cray path
+ selection to after AC_PROG_CC. Invoke AC_PROG_CPP.
+ * mpn/cray/cfp: New directory. Move cfp specific files here.
+ * mpn/cray/cfp/mulwwc90.s: New file.
+ * mpn/cray/cfp/mulwwj90.s: New file.
+ * mpn/cray/mulww.s: Delete.
+
+2000-12-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/cray/ieee/mul_1.c: New file.
+ * mpn/cray/ieee/addmul_1.c: New file.
+ * mpn/cray/ieee/submul_1.c: New file.
+ * mpn/cray/ieee/gmp-mparam.h: New file.
+
+ * mpn/cray/gmp-mparam.h: Disable UMUL_TIME and UDIV_TIME.
+
+ * mpn/cray/hamdist.c: New file.
+ * mpn/cray/popcount.c: New file.
+ * mpn/cray/rshift.c: New file.
+ * mpn/cray/lshift.c: New file.
+
+ * longlong.h: Add count_leading_zeros for _CRAY.
+ Reorganize _CRAY stuff.
+
+2000-12-24 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (alpha*-cray-unicos*): Disable SPEED_CYCLECOUNTER_OBJ,
+ as tune/alpha.asm doesn't suit.
+
+ * mpn/generic/sqrtrem.c, mpz/pow_ui.c, mpz/powm_ui.c, mpf/get_str.c,
+ mpf/set_str.c: Use mpn_sqr_n when applicable, not mpn_mul_n.
+
+2000-12-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_fft.c: Reformat.
+ (mpn_fft_neg_modF): Remove.
+ (mpn_fft_mul_2exp_modF): Inline mpn_fft_neg_modF.
+
+ * mpn/cray/gmp-mparam.h: Retune.
+
+ * configure.in (*-cray-unicos*): Pass `-O3 -htask0'.
+ (vax*-*-*): Fix typo.
+
+ * mpn/cray/mul_1.c: Use dynamic arrays, get rid of TMP_*.
+ * mpn/cray/addmul_1.c: Likewise.
+ * mpn/cray/submul_1.c: Likewise.
+ * mpn/cray/add_n.c: Likewise.
+ * mpn/cray/sub_n.c: Likewise.
+
+ * configure.in (default cc_cflags,cc_64_cflags): Remove -g/add -O.
+ (mips*-*-irix[6789]*]): Remove -g from cc_*_cflags.
+
+2000-12-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c: Delete K&R function headers.
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n): Clean up type confusion
+ between mp_limb_t and mp_size_t.
+ (mpn_kara_sqr_n): Likewise.
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n): Use mpn_incr_u.
+ (mpn_kara_sqr_n): Likewise.
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n): Change handling of `sign'
+ to work around GCC 2.8.1 MIPS bug.
+
+ * configure.in (implied alpha*-cray-unicos*): Remove -g from cc_cflags.
+
+2000-12-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/invert_limb.asm: Simplify a bit.
+ Add handling of bigend systems.
+ * mpn/alpha/unicos.m4: Define `bigend'.
+ * mpn/alpha/default.m4: Define `bigend' (to expand to nothing).
+
+ * tests/t-constants.c (CHECK_CONSTANT): Print using %lx.
+
+ * mpn/alpha/gmp-mparam.h: Remove sizes for plain C types.
+ * mpn/alpha/ev5/gmp-mparam.h: Likewise.
+ * mpn/alpha/ev6/gmp-mparam.h: Likewise.
+
+ * mpn/alpha/unicos.m4: Define LEA.
+ * mpn/alpha/default.m4: Likewise.
+ * mpn/alpha/invert_limb.asm: Use LEA for loading symbolic addresses.
+ * mpn/alpha/cntlz.asm: Likewise.
+
+ * mpn/alpha/cntlz.asm: Don't use `ldbu', use slightly slower
+ `ldq_u' + `extbl' instead.
+
+ * mpn/alpha/unicos.m4: Define EXTERN.
+ * mpn/alpha/default.m4: Define EXTERN (to expand to nothing).
+ * mpn/alpha/cntlz.asm: Declare __clz_tab usign `EXTERN' (for the
+ benefit of Unicos).
+
+2000-12-21 Kevin Ryde <kevin@swox.se>
+
+ * mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of
+ __clz_tab.
+
+2000-12-20 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP
+ systems.
+
+2000-12-19 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (*sparc*-*-*): Remove -g from cc_cflags and acc_cflags.
+
+ * mpn/generic/sqrtrem.c (mpn_sqrtrem): Separate `limb' values from
+ `size' values.
+
+ * configure.in (*-cray-unicos*): Add `-Wa,-B' to cc_cflags.
+
+ * demos/pexpr.c (rstate): New variable.
+ (main): Initialize rstate.
+ (enum op_t): Add RANDOM.
+ (fns): Add field for RANDOM.
+ (mpz_eval_expr): Handle RANDOM.
+
+2000-12-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/sqrtrem.c: Rewrite by Paul Zimmermann, based on his
+ Karatsuba Square Root algorithm.
+ * gmp.texi (Square Root Algorithm): Update.
+
+ * tune/many.pl: New file.
+
+ * mpn/tests/try.c,ref.[ch] (mpn_preinv_mod_1, mpn_sb_divrem_mn,
+ mpn_tdiv_qr, mpn_gcd_finda, mpn_kara_mul_n, mpn_kara_sqr_n,
+ mpn_toom3_mul_n, mpn_toom3_sqr_n): Add testing.
+ * mpn/tests/ref.c: Cast some "0"s in function calls.
+
+ * mpn/x86/k7/mmx/mod_1.asm: Add preinv_mod_1 entrypoint, remove extra
+ variable for loop termination.
+
+ * mpn/x86/p6/mmx/mod_1.asm: Remove file, in favour of the following.
+ * mpn/x86/p6/mod_1.asm: New file.
+
+ * mpn/x86/pentium/mod_1.asm: New file.
+
+2000-12-18 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (mips*-*-irix[6789]*): Pass options to compiler using
+ `-Wc'.
+
+2000-12-18 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/pre_mod_1.asm: New file.
+
+ * tune/tuneup.c (USE_PREINV_MOD_1): Tune this, rearrange mpn_divrem_1
+ and mpn_mod_1 handling in support of it.
+ * tune/Makefile.am: Consequent changes to divrem_1.c and mod_1.c.
+
+ * gmp-impl.h (USE_PREINV_MOD_1, MPN_MOD_OR_PREINV_MOD_1): New macros.
+ * mpn/generic/perfsqr.c, mpz/pprime_p.c: Use MPN_MOD_OR_PREINV_MOD_1.
+
+ * configure.in: Let an asm mod_1 provide a preinv_mod_1 entrypoint.
+
+ * mpn/alpha/default.m4: Remove some newlines, add some asserts.
+ (r0 etc, f0 etc): Use defreg and deflit.
+ (PROLOGUE, PROLOGUE_GP, EPILOGUE): Use GSYM_PREFIX.
+ * mpn/alpha/unicos.m4: Remove some newlines, add some asserts.
+ * mpn/alpha/invert_limb.asm: Remove unused second DATASTART parameter.
+ * mpn/alpha/cntlz.asm: Use mpn_count_leading_zeros and __clz_tab.
+
+ * mpn/asm-defs.m4 (changecom): Comments on portability.
+ (__clz_tab, modlimb_invert_table): New macros, matching gmp-impl.h.
+ (count_leading_zeros, count_trailing_zeros): New define_mpn's.
+ (PROLOGUE etc): Comments on usage, add some asserts.
+ (OPERATION_[lr]shift): Use m4_not_for_expansion, for the benefit of
+ lorrshift multifunc.
+
+ * mpn/Makeasm.am (RM_TMP): New variable controlling tmp-*.s
+ removal, for development purposes.
+
+ * mpz/fac_ui.c: Fix for long long limb by using mpn_mul_1 not
+ mpz_mul_ui, and note some possible enhancements.
+
+ * mpz/tests/t-fac_ui.c: New test.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add it.
+ * macos/Makefile.in: Ditto, and add t-fib_ui too.
+
+ * mpn/generic/[lr]shift.c: Remove some DEBUG code adequately covered
+ by new parameter ASSERTs.
+
+ * longlong.h (count_trailing_zeros): Assert x!=0.
+
+ * doc/configuration: Updates for new configure things, add some notes
+ on test setups.
+
+2000-12-16 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc also for 64-bit
+ compiles.
+ * configure.in: Disable shared libs for *-*-ultrix*.
+
+2000-12-15 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (powerpc*-*-*): Pass -Wa,-mppc when using gcc.
+
+ * gmp-impl.h (_EXTERN_INLINE): #define different for GCC and other
+ compilers.
+
+ * gmp-h.in (__gmp_inline): Remove.
+ * mp-h.in: Likewise.
+ * mpn/generic/gcd.c: Use `inline' instead of `__gmp_inline'.
+
+ * configure.in (mips*-*-irix[6789]*): Define *_ldflags.
+
+2000-12-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/pre_mod_1.c: Use proper type for udiv_qrnnd
+ parameter `dummy'.
+
+ * mpn/generic/divrem_1.c: Use explicit `!= 0' in if statement.
+ * mpn/generic/mod_1.c: Likewise.
+
+2000-12-14 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (mips-*-irix[6789]*): Transform to mips64.
+ (m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020.
+
+2000-12-13 Torbjorn Granlund <tege@swox.com>
+
+ * tests/t-constants.c (main): Conditionalize use of PP_INVERTED.
+
+ * mpn/mp_bases.c: Handle 4-bit limbs.
+ (main): Add code for generating tables.
+
+ * mpn/generic/popham.c: Handle limb bitsizes of 4, 8, 16.
+ Suffix all 32-bit constant with `L'.
+ Use CNST_LIMB for 64-bit constants.
+
+2000-12-13 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (FIB_THRESHOLD): Defaults for 4,8,16 bits per limb, and
+ an arbitrary fallback default.
+ (modlimb_invert): Add efficient code for 8,16 (or 4) bits per limb.
+
+ * configure.in (mips3, mips64): Don't bother with o32 (mips2 32-bit
+ limb) on IRIX 6.
+
+ * Makefile.am (SUBDIRS): Put "tests" first so tests/t-constants.c is
+ run first, to pick up any limb size mismatch.
+
+ * tune/tuneup.c (DIVREM_1, MOD_1): Fix result values, were off by 1.
+
+ * mpz/fib_ui.c (table1, table2): Add data for 4,8,16 bits per limb.
+
+2000-12-12 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize.
+
+2000-12-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mp_bases.c: Add tables for 8-bit and 16-bit limbs.
+ Round existing `double' values properly.
+
+ * gmp-h.in (__gmp_randstate_struct): Prefix field names with _mp_
+ to keep out of user name space.
+ (__gmp_randata_lc): Likewise.
+ * randclr.c, randlc.c, randlc2x.c, randraw.c, randsd.c, randsdui.c:
+ Corresponding changes.
+
+ * gmp-impl.h (PP): #define for machines with BITS_PER_MP_LIMB
+ of 2, 4, 8, and 16.
+ (PP_FIRST_OMITTED): New, define for various BITS_PER_MP_LIMB.
+ (PP_MASK): Remove.
+ (PP_MAXPRIME): Remove.
+
+ * mpn/generic/perfsqr.c: Generalize PP handling for machines with
+ limbs of < 32 bits. Allow PP_INVERTED to be undefined.
+ * mpz/pprime_p.c: Likewise.
+
+2000-12-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_1.c: Declare parameters in C89 style.
+
+2000-12-10 Kevin Ryde <kevin@swox.se>
+
+ * tune/Makefile.am (speed_LDFLAGS, speed_ext_LDFLAGS, tune_LDFLAGS):
+ Don't use -all-static, as gcc 2.95.2 on i386 solaris 8 doesn't like
+ it.
+
+ * configure.in (mips3,mips64): Add ABI=64, name the others ABI=n32 and
+ ABI=o32.
+ * mpn/mips3/gmp-mparam.h (BITS_PER_LONGINT): Remove #define and let
+ configure determine it, since it varies with ABI=64 or ABI=n32.
+ * gmp.texi (ABI and ISA): Update.
+ (mpz_mod_ui): Remark that it's identical to mpz_fdiv_r_ui.
+ (mpn_divexact_by3): Qualify a statement needing mp_bits_per_limb even.
+
+ * mul_fft.c (mpn_fft_mul_modF_K etc): Patch by Paul Zimmermann to fix
+ results in certain cases of recursing into a further FFT.
+
+2000-12-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/cmpabs.c: Remove unused variable.
+ * mpz/rrandomb.c: Likewise.
+ * mpz/xor.c: Likewise.
+
+2000-12-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/gcdext.c: Handle double carry when computing s1.
+ Merge two code blocks for computing s0 and s1.
+
+2000-12-07 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (hppa*-*-*): Remove -Aa -D_HPUX_SOURCE from
+ cc_cflags/cppflags, and instead let AM_C_PROTOTYPES add it, or -Ae,
+ whichever works.
+
+ * configure.in (*-*-aix[34]*): Disable shared by default, but let
+ the user override that, if desired.
+ * gmp.texi (Notes for Particular Systems): Update.
+
+2000-12-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpq/cmp_ui.c: Streamline.
+
+2000-12-06 Kevin Ryde <kevin@swox.se>
+
+ * tune/divrem_1_div.c,divrem_1_inv.c,mod_1_div.c,mod_1_inv.c,
+ gcdext_double.c: New files for measuring.
+ * tune/Makefile.am (libspeed_la_SOURCES): Add them.
+ * tune/speed.c,speed.h,common.c: Add measuring of them.
+ (mpn_preinv_mod_1, mpz_jacobi, mpz_powm_ui): Add measuring.
+
+ * speed.c (getopt_long): Don't use this, just plain getopt.
+ * configure.in (getopt_long): Remove test.
+
+ * gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_MUL_N_MINSIZE,
+ MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_MUL_N_MINSIZE): New macros, and
+ assume toom3 square tsize was meant to be the same as the mul (both
+ are overestimates).
+ * tune/tuneup.c, mpn/generic/mul.c, mpn/generic/mul_n.c: Use them.
+ * mpn/generic/mul_n.c (mpn_toom3_sqr_n): Fix an ASSERT to use
+ TOOM3_SQR_THRESHOLD not TOOM3_MUL_THRESHOLD, add a few that might
+ be more realistic size checks.
+ * tune/speed.h (SPEED_ROUTINE_MPN_MUL_N_TSPACE etc): Use minsize.
+
+ * mpn/generic/divrem_1.c: Partial rewrite, merge fractional part
+ calculation, skip a divide step in more cases, introduce
+ DIVREM_1_NORM_THRESHOLD and DIVREM_1_UNNORM_THRESHOLD.
+ * mpn/generic/mod_1.c: Partial rewrite, skip a divide step in more
+ cases, introduce MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD.
+ * longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64.
+ * tune/tuneup.c (DIVREM_1_NORM_THRESHOLD, DIVREM_1_UNNORM_THRESHOLD,
+ MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD): Tune these.
+ * gmp-impl.h [TUNE_PROGRAM_BUILD]: Support for this.
+ * tune/Makefile.am (TUNE_MPN_SRCS): Add divrem_1.c and mod_1.c.
+
+ * gmp-impl.h (UDIV_NORM_PREINV_TIME): Renamed from UDIV_PREINV_TIME.
+ * mpn/generic/perfsqr.c, mpn/generic/sb_divrem_mn.c,
+ mpn/x86/*/gmp-mparam.h: Ditto.
+ * gmp-impl.h (UDIV_UNNORM_PREINV_TIME): New define.
+
+ * configure.in (AC_C_INLINE, HAVE_INLINE): New test and define.
+ * gmp-impl.h (inline): Remove, use config.h.
+ (_EXTERN_INLINE): Redefine based on HAVE_INLINE.
+ (mpn_zero_p): Use HAVE_INLINE.
+
+ * acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Don't add flags to a user
+ selected $AR or $NM.
+
+ * tune/tuneup.c (all): Print how long the tuning took.
+
+ * configure.in (AM_C_PROTOTYPES): Use this, not GMP_ANSI2KNR.
+ * acinclude.m4 (GMP_ANSI2KNR): Remove.
+
+ * Makefile.am (gmp.h, mp.h): In DISTCLEANFILES not CLEANFILES.
+
+ * gmp-h.in (mpn_divmod, mpn_divmod_1, mpn_divexact_by3): Cast some
+ zeros, for the benefit of K&R if long!=int.
+
+ * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add "*" for
+ the benefit of cray.
+
+ * compat.c (mpn_divexact_by3, mpn_divmod_1): Return types should be
+ mp_limb_t, not int, and need an actual "return".
+
+2000-12-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
+ * mpn/alpha/gmp-mparam.h: Tune for 21064.
+
+ * longlong.h: Reformat to avoid newlines within strings.
+
+ * gmp-impl.h (inline): Disable if GCC has defined __STRICT_ANSI__.
+
+ * configure.in: Do a `mkdir tune' before creating tune/sqr_basecase.c.
+
+ * Makefile.am: Treat mp.h analogously to gmp.h.
+
+ configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc.
+
+ * mp-h.in: Renamed from mp.h.
+ Add #define for _LONG_LONG_LIMB.
+ Move some other fixes from gmp-h.in.
+ * mp.h: Removed.
+ * configure.in: Generate mp.h from mp-h.in like we handle
+ gmp-h.in/gmp.h.
+
+2000-12-04 Torbjorn Granlund <tege@swox.com>
+
+ * acinclude.m4: Fix typo testing for bad HP compiler.
+
+2000-12-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpbsd/tests/t-misc.c (check_itom): Exclude some tests for Cray
+ CFP systems.
+
+ * longlong.h (CRAYIEEE umul_ppmm): New.
+
+ * mpn/cray/gmp-mparam.h (BITS_PER_SHORTINT): 32 => 64.
+ (*_THRESHOLD): Tune.
+
+ * configure.in: Disable shared libs for *-*-unicos*.
+
+2000-12-03 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, tune/Makefile.am: Create tune/sqr_basecase.c during
+ configure, and use it unconditionally in $(nodist_tuneup_SOURCES).
+ Fixes a problem with sqr_basecase.lo under --disable-static.
+
+2000-12-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/tests/t-get_d.c (LOW_BOUND,HIGH_BOUND): #define for non-IEEE
+ Cray systems.
+
+ * gmp-impl.h (union ieee_double_extract): Test for _CRAYIEEE.
+
+2000-11-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-mul.c (base_mul): Fix re-evaluation problems in macro
+ invocations.
+ (ref_mpz_mul): New name from mpz_refmul. Make static.
+ (base_mul): New name for _mpn_mul_classic.
+
+2000-11-30 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Rewrite of CC/CFLAGS selection scheme, introduce a
+ notion of ABI, merge compiler and mpn path selection, add flags
+ selection for AR and NM, let CC without CFLAGS work.
+ (AC_PROG_CC): Use this, not GMP_SELECT_CC.
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Don't use AC_TRY_COMPILE, combine
+ cc/cflags parameter.
+ (GMP_PROG_CC_FIND, GMP_CHECK_CC_64BIT, GMP_PROG_CC_SELECT): Remove.
+ * gmp.texi (Installing GMP): Updates for new scheme.
+
+ * configure.in (AC_CANONICAL_HOST): Use this and $host, not $target.
+ * acinclude.m4, acconfig.h, longlong.h, mpn/x86/x86-defs.m4,
+ mpn/x86/k7/mmx/popham.asm: Ditto, renaming HAVE_TARGET_CPU to
+ HAVE_HOST_CPU.
+ * gmp.texi (Build Options, and elsewhere): Update.
+
+ * acinclude.m4 (GMP_COMPARE_GE): New macro.
+ (GMP_GCC_MARCH_PENTIUMPRO): Use it, add CC parameter, check for GCC.
+ (GMP_HPC_HPPA_2_0): New macro, adapted from GMP_CHECK_CC_64BIT.
+
+ * acinclude.m4 (GMP_PROG_AR): New macro, using AC_CHECK_TOOL, adding
+ GMP flags.
+ * configure.in: Use it
+
+ * gmp-h.in: Renamed from gmp.h.
+ (@define_LONG_LONG_LIMB@): Placeholder for instantiation.
+ (__GNU_MP__): Bump to 3.
+ * acinclude.m4 (GMP_VERSION): Get version from gmp-h.in.
+ * configure.in: Create gmp.h from gmp-h.in to set _LONG_LONG_LIMB.
+ * gmp.texi.h (ABI and ISA): Mention this.
+ * acconfig.h (_LONG_LONG_LIMB): Remove undef.
+ * Makefile.am: Distribute gmp-h.in, not gmp.h.
+
+ * configure.in (AC_PROG_CPP, AC_PROG_INSTALL, AC_PROG_LN_S): Remove,
+ dragged in by other macros.
+ (gmp_asm_syntax_testing): Renamed from gmp_no_asm_syntax_testing.
+ (AC_EXEEXT, AC_OBJEXT): Remove, done automatically by libtool.
+ * configure.in, acinclude.m4: Remove "" from "`foo`", being
+ unnecessary and not portable.
+
+ * configure.in (GMP_LDFLAGS): New AC_SUBST flags for libtool link.
+ (powerpc64*-*-aix*): Use for -Wc,-maix to fix shared library creation,
+ but can't build shared and static at the same time.
+ * Makefile.am (libgmp_la_LDFLAGS, libmp_la_LDFLAGS): Use
+ $(GMP_LDFLAGS).
+ * gmp.texi (Notes for Particular Systems): Update AIX problem
+
+ * configure.in (AC_CONFIG_LINKS): Use where needed, not via gmp_links.
+ (gmp_srclinks): Build up as needed, not via gmp_links.
+
+ * acinclude.m4 (GMP_INIT): Do CONFIG_TOP_SRCDIR and asm-defs.m4 here.
+ * configure.in (asm-defs.m4): Consequent changes.
+
+ * acinclude.m4 (GMP_INCLUDE_MPN): Using include_mpn(), replacing
+ GMP_INCLUDE and GMP_SINCLUDE.
+ * configure.in (gmp_m4postinc): Remove this scheme, use
+ GMP_INCLUDE_MPN instead.
+
+ * configure.in (*-*-sco3.2v5*): Force ac_cv_archive_cmds_need_lc=no,
+ until libtool does this itself.
+ * gmp.texi (Known Build Problems): Remove SCO -lc problem.
+
+ * configure, INSTALL.autoconf, etc: Update to autoconf 2000-11-29.
+ * acinclude.m4 (GMP_C_SIZES): Use AC_CHECK_SIZEOF.
+ * gmp.texi (Known Build Problems): Remove version.c sed/config.h
+ problem, fixed.
+
+ * ltmain.sh, aclocal.m4: Update to libtool 2000-11-25.
+ * ltconfig: No longer required, but leave an empty dummy for automake.
+ * gmp.texi (Known Build Problems): Remove SunOS native ar ranlib
+ problem, fixed.
+
+ * */Makefile.in, aclocal.m4: Update to automake 2000-11-25.
+ * mpbsd/tests/Makefile.am, mpfr/tests/Makefile.am (check_PROGRAMS):
+ Remove dummy, no longer required.
+ * mpbsd/tests/dummy.c, mpfr/tests/dummy.c: Remove files.
+ * depcomp: Remove file, no longer required (with no-dependencies).
+
+ * texinfo.tex: Update to 2000-11-09.
+ * gmp.texi (Build Options): Mention PDF from gmp.texi.
+ * Makefile.am (MOSTLYCLEANFILES): Add gmp.tmp, from new texinfo.tex.
+
+ * gmp.texi (Build Options): List alphaev56, alphapca56, alphaev67,
+ hppa2.0n and power among supported CPUs.
+
+2000-11-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-mul.c: Increase max operand size from 2^17 bits
+ to 2^19 bits. Misc cleanups.
+
+2000-11-26 Kevin Ryde <kevin@swox.se>
+
+ * tune/tuneup.c (FIB_THRESHOLD): Cope better with different speeds of
+ odd and even sizes.
+
+ * longlong.h (alpha): Use udiv_qrnnd and count_leading_zeros on all
+ compilers, not just gcc.
+
+ * pre_mod_1.c: Use conditional subtract to always skip a division.
+ (UMUL_TIME, UDIV_TIME): Remove defaults, now in longlong.h.
+
+2000-11-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64w/gmp-mparam.h: Retune.
+ * mpn/pa64/gmp-mparam.h: Retune.
+ * mpn/sparc64/gmp-mparam.h: Retune.
+
+2000-11-22 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (ABOVE_THRESHOLD, BELOW_THRESHOLD): New macros.
+ * mpn/generic/gcdext.c: Use them.
+
+ * mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Force only one step.
+ * tune/gcdextos.c, tune/gcdextod.c: New files, one step gcdext, single
+ and double.
+ * tune/Makefile.am (libspeed_la_SOURCES): Add them.
+ (TUNE_MPN_SRCS): Remove gcdext.c.
+ * tune/speed.h, tune/common.c, tune/speed.c: Add measuring.
+ * tune/tuneup.c: Use for GCDEXT_THRESHOLD, plus check if double limb
+ is ever better. Should be more accurate, and hopefully faster.
+
+ * tune/gcdext_single.c: New file, gcdext forced to single limbs.
+ * tune/Makefile.am: Add it.
+ * tune/speed.h, tune/common.c, tune/speed.c: Add measuring, and of
+ invert_limb.
+
+ * tune/speed.h (speed_params r): Use mp_limb_t, not long.
+ * tune/speed.h, tune/common.c: Don't "switch" on "r".
+ * tune/speed.c (r_string): Accept limb sized constants.
+ (choice scale): Add a scale factor (eg. "2.33*mpn_add_n").
+ * tune/common.c (SPEED_ROUTINE_UDIV_QRNND_A): Default r to
+ __mp_bases[10].big_base, being a full limb value.
+
+ * configure.in (alphapca56*-*-*): Use ev5 mpn path.
+ (am29000*-*-*): Remove this, leave the canonical a29k.
+ (z8k*-*-*, z8kx*-*-*): Changed from z8000, since z8k is canonical.
+ (gmp_mpn_functions_optional): Add invert_limb, use for alpha and ia64.
+
+ * configure.in (alloca): Accept yes/no/detect, generate an error if
+ "yes" but not available.
+ * gmp.texi (Build Options): Update.
+
+ * acinclude.m4 (GMP_TRY_ASSEMBLE): Make conftest.out available.
+ (GMP_ASM_ALIGN_FILL_0x90): Use it.
+
+ * acinclude.m4 (GMP_ASM_X86_MMX) [*-*-solaris*]: Check for solaris
+ 2.6 "as" movq bug.
+ * gmp.texi (Notes for Particular Systems): Update x86 MMX note.
+
+2000-11-21 Torbjorn Granlund <tege@swox.com>
+
+ * tune/Makefile.am (EXTRA_DIST): List hppa2w.asm.
+
+ * tune/hppa2.asm: Change level directive to "2.0n".
+ * tune/hppa2w.asm: New file.
+ * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Separate out hppa2.0w.
+
+ * mpn/pa64/gmp-mparam.h (BITS_PER_LONGINT): 64 => 32.
+
+2000-11-21 Kevin Ryde <kevin@swox.se>
+
+ * urandom.h (random): No prototype if glibc stdlib.h has already
+ provided it (avoids an int32_t/long conflict).
+
+ * tune/Makefile.am (LDFLAGS): Use -all-static.
+ (speed-dynamic): Dynamic linked version of speed.c.
+ * tune/README: Update.
+
+ * mpn/generic/gcd.c (find_a): Use native version if available.
+ * acconfig.h (HAVE_NATIVE_mpn_gcd_finda): Add #undef.
+ * gmp-impl.h (mpn_gcd_finda): Add prototype and define.
+ * mpn/asm-defs.m4 (mpn_gcd_finda): New define_mpn.
+ * tune/gcd_finda_gen.c: #undef any HAVE_NATIVE_mpn_gcd_finda.
+ * configure.in (gmp_mpn_functions_optional): Add gcd_finda.
+ * mpn/x86/k6/gcd_finda.asm: New file.
+
+ * tune/tuneup.c (POWM_THRESHOLD): Slightly bigger size steps.
+
+ * gmp-impl.h (__GMP_IMPL_H__): Protect against multiple inclusion.
+ * tune/gcd_bin.c, tune/powm_mod.c, tune/powm_redc.c: Use #undef after
+ gmp-impl.h to force thresholds.
+ * tune/tuneup.c (print_define, fft): No need for #ifndefs on
+ thresholds any more.
+
+2000-11-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-powm.c: Analogous changes as made 2000-11-12 to t-mul.c.
+ * mpz/tests/t-powm_ui.c: Likewise.
+ * mpz/tests/t-pow_ui.c: Likewise.
+ * mpz/tests/t-root.c: Likewise.
+
+ * configure.in [compiler switch]: Pass "-Aa -D_HPUX_SOURCE" to cc for
+ all hppa versions.
+
+ * mpn/hppa/hppa1_1/udiv_qrnnd.S: Reference data using PC relative
+ addressing (was r19 relative addressing).
+
+2000-11-18 Torbjorn Granlund <tege@swox.com>
+
+ * rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal.
+ (gmp_randinit): Expect strings in hexadecimal.
+
+2000-11-18 Kevin Ryde <kevin@swox.se>
+
+ * configfsf.guess, configfsf.sub: Update to 2000-11-16.
+ * config.guess (alpha*-*-openbsd*): Do exact cpu detection.
+
+2000-11-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-fdiv.c: Analogous changes as made 2000-11-12 to t-mul.c.
+ * mpz/tests/t-tdiv_ui.c: Likewise.
+ * mpz/tests/t-fdiv_ui.c: Likewise.
+ * mpz/tests/t-sqrtrem.c: Likewise.
+ * mpz/tests/t-gcd.c: Likewise.
+
+2000-11-13 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makeasm.am: New file, splitting out assembler rules.
+ * mpn/Makefile.am, tune/Makefile.am: Use it.
+
+ * mpn/Makefile.am (@CPP@): Remove this, automake already gives it.
+
+ * configure.in (AC_CHECK_LIBM): New test, and AC_SUBST it.
+ * Makefile.am (MPFR_LIBADD_OPTION): Use it.
+ * demos/Makefile.am (qcn_LDADD): Ditto.
+ * tune/Makefile.am (libspeed_la_LIBADD): Ditto.
+ * tests/rand/Makefile.am (libstat_la_LIBADD): Ditto.
+
+ * tune/time.c (timeval_diff_secs): Better calculation.
+ (read_real_time): New measuring method for AIX power/powerpc.
+ (speed_endtime): Protect against negative times.
+ * tune/common.c (speed_measure): Protect against big reps.
+ * tune/freq.c (speed_cpu_frequency_measure_one): Better timeval diff.
+ * tune/speed.h (TIMEVAL_DIFF_SEC,USEC): Remove macros.
+ * configure.in: (sys/systemcfg.h, read_real_time): New tests.
+
+2000-11-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-mul.c: Remove #include urandom.h.
+ * mpz/tests/t-tdiv.c: Likewise.
+
+ * configure.in [SPEED_CYCLECOUNTER_OBJS switch]:
+ Declare hppa.asm as just 32 bits (cyclecounter_size=1).
+
+2000-11-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-mul.c
+ (main): Generate random numbers using gmp_rand* functions.
+ (main): Distribute random numbers non-uniformly.
+ (main): Seed by current time if GMP_CHECK_RANDOMIZE is set.
+ (_mpn_mul_classic): Streamline.
+ * mpz/tests/t-tdiv.c: Analogous changes.
+
+ * demos/pexpr.c (HAVE_sigaltstack): Fix typo in testing for _UNICOS.
+ Also test for __hpux.
+
+2000-11-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev5/gmp-mparam.h: Retune.
+
+ * mpn/alpha/ev6/gmp-mparam.h: Retune.
+
+ * mpn/alpha/ev6/add_n.asm: Misc cleanups.
+
+ * mpn/alpha/ev6/sub_n.asm: New file.
+
+2000-11-10 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path.
+
+ * mpn/alpha/ev6/add_n.asm: New file.
+
+2000-11-10 Kevin Ryde <kevin@swox.se>
+
+ * mpz/powm.c (redc): Make global under WANT_REDC_GLOBAL.
+ * tune/powm_mod.c, tune/powm_redc.c: New files.
+ * tune/Makefile.am (libspeed_la_SOURCES): Add them.
+ * tune/*: Add measuring of redc, mpz_mod, mpz_powm_mod, mpz_powm_redc.
+
+ * tune/tuneup.c (POWM_THRESHOLD): Determine from redc and mpz_mod.
+ * tune/Makefile.am (TUNE_MPZ_SRCS): Remove powm.
+
+2000-11-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3/gmp-mparam.h: Retune.
+
+ * configure.in (os_64bit): Rename to check_64bit_compiler.
+
+2000-11-09 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code
+ depending on $CC64.
+
+2000-11-09 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/mul_1.asm: Unroll 2x, saving 1 c/l when in L1.
+ Add 1c entrypoint.
+ * mpn/x86/pentium/aorsmul_1.asm: Add 1c entrypoints, shave a couple
+ of cycles at entry and exit.
+
+ * configure.in (power1,2,2sc): Support these as synonyms for plain
+ power.
+
+ * acinclude.m4 (GMP_ASM_X86_SHLDL_CL): GMP_DEFINE WANT_SHLDL_CL here.
+ (GMP_ASM_X86_MMX, GMP_ASM_X86_SHLDL_CL): Add X86 into the names.
+ * configure.in: Consequent changes.
+
+ * gmp.texi (Notes for Particular Systems): Remarks about power/powerpc.
+ (Reentrancy): Remarks about simultaneous writing.
+ (Reporting Bugs): Ask for configfsf.guess.
+
+2000-11-08 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_FUNC_ALLOCA): New macro.
+ * configure.in: Use it.
+ * gmp-impl.h (alloca): Conditionals and setups as per autoconf
+ (should make alloca available on more non-gcc compilers).
+
+ * acinclude.m4: Misc reformatting, simplify some quoting.
+ (GMP_ASM_UNDERSCORE, GMP_ASM_X86_MCOUNT): Use $CC $CFLAGS $CPPFLAGS.
+ (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_FILL_0x90, GMP_ASM_RODATA): Put
+ AC_REQUIREs outside AC_CACHE_CHECK.
+ (GMP_C_SIZES): Use $srcdir/gmp.h, not -I; use $CPPFLAGS.
+ (GMP_ASM_UNDERSCORE): Use "gmp_compile" variable, and only rm
+ conftes1* conftes2*.
+ (GMP_PROG_NM): New macro, require it in appropriate GMP_ASM_*.
+ (GMP_TRY_ASSEMBLE): New macro, use it in various GMP_ASM_*.
+ * configure.in: Use GMP_PROG_NM.
+
+ * mpn/tests/spinner.c (spinner_signal): Use RETSIGTYPE.
+ (spinner_init): Force output to unbuffered.
+
+ * mpn/x86/README.family: Notes about GOT table and imul, misc updates.
+ * mpn/x86/k7/diveby3.asm: Change to 3 operands for immediate imul.
+ * mpn/x86/k6/diveby3.asm: Ditto.
+
+2000-11-06 Torbjorn Granlund <tege@swox.com>
+
+ * urandom.h: Simplify and make it work properly for 64-bit
+ machines also in environments without `random'.
+
+2000-11-04 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [path switch]: Don't match rs6000-*-*, in
+ particular don't assume POWER.
+
+ * tune/tuneup.c (fft): Remove usleep calls.
+
+ * config.guess: Don't pass "$@" when it is known to be empty.
+
+ * Makefile.am (EXTRA_DIST): List configfsf.guess and configfsf.sub.
+
+2000-11-04 Kevin Ryde <kevin@swox.se>
+
+ * configfsf.guess, configfsf.sub: Moved from config.guess and
+ config.sub.
+ * config.guess, config.sub: New files, wrappers around around
+ configfsf versions.
+ * configfsf.guess: Update to FSF 2000-10-23.
+ * configfsf.sub: Update to FSF 2000-10-25.
+
+ * acinclude.m4 (GMP_ASM_POWERPC_R_REGISTERS): New macro.
+ * mpn/powerpc32/powerpc-defs.m4: New file, regmap.m4 r0 etc macros
+ conditionalized by GMP_ASM_POWERPC_R_REGISTERS.
+ * mpn/powerpc32/regmap.m4: Remove file.
+ * configure.in (powerpc*-*-*): Use all this.
+
+ * mpz/divegcd.c: New file, providing mpz_divexact_gcd.
+ * Makefile.am, mpz/Makefile.am: Add it.
+ * gmp-impl.h (mpz_divexact_gcd): Add prototype.
+ * mpq/aors.c,canonicalize.c,div.c,mul.c: Use it.
+
+ * longlong.h [pentium] (count_leading_zeros): New macro.
+ (__clz_tab): Always provide prototype.
+ * acconfig.h (HAVE_TARGET_CPU_): Add x86s.
+
+ * tune/speed.[ch],common.c (count_leading_zeros,
+ count_trailing_zeros, __udiv_qrnnd_c): Add measuring.
+
+ * configure.in (X86_PATTERN): Move from here ...
+ * acinclude.m4 (X86_PATTERN): ... to here.
+ (GMP_ASM_RODATA): Use it.
+
+ * configure.in (srandom): New test.
+ * mpn/tests/try.c: Use it.
+ * tune/speed.c: Ditto, and conditionalize getrusage and headers.
+
+2000-11-02 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add udiv_qrnnd.c
+ and udiv_w_sdiv.c.
+
+ * mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove a duplicate
+ subtract at the evaluate stage.
+
+2000-11-01 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [compiler switch] (sparc64-*-linux*): Spell
+ gmp_xoptcflags_gcc properly, and pass same options as for other
+ sparcv9 configs.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_GET_STR): Fix type of wsize.
+
+2000-10-31 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [compiler switch] (sparc64-*-linux*): Remove -mvis
+ from gmp_xoptflags_gcc, this might not be an ultrasparc.
+ Remove -m32 from gmp_cflags_gcc; add -Wa,-xarch=v8plus.
+
+2000-10-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/lorrshift.asm: New file.
+
+ * configure.in: New mulfunc `lorrshift' for lshift and rshift.
+
+2000-10-29 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_n.c (mpn_kara_sqr_n): Delete code performing
+ superfluous mpn_sub_n calls.
+
+ * configure.in (found_asm, M4): Account for SPEED_CYCLECOUNTER_OBJ,
+ for the benefit of targets whose only .asm is a cycle counter.
+
+ * tune/tuneup.c (fft): Remove bogus usleep calls.
+
+2000-10-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/invert_limb.asm: Get return value for 0x800...00 right.
+
+ * tune/Makefile.am (EXTRA_DIST): Add ia64.asm.
+
+ * tune/ia64.asm: Fix typo.
+
+ * add_n.asm addmul_1.asm mul_1.asm popcount.asm sub_n.asm:
+ Preserve ar.lc as required by ABI.
+ * longlong.h (ia64 udiv_qrnnd): New.
+
+ * configure.in [path switch] (ia64*-*-*): Set extra_functions.
+ * mpn/ia64/invert_limb.asm: New file.
+
+2000-10-27 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [compiler switch]:
+ Get rid of c89 for all hppa flavours--it is an evil compiler!
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix type of xp.
+ (SPEED_ROUTINE_MPN_GET_STR): Fix type of wp.
+
+2000-10-27 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Fibonacci Number Algorithm): New section.
+
+ * mpz/tests/t-fib_ui.c: New file.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/fib_ui.c: Rewrite, same formulas but using mpn functions and
+ some lookup tables, much faster at small to moderate sizes.
+ * gmp-impl.h (MPZ_FIB_SIZE): New macro.
+ (FIB_THRESHOLD): Establish default here.
+ * tune/tuneup.c (FIB_THRESHOLD): Start search after the new table
+ data.
+
+ * mpn/x86/x86-defs.m4 (mcount_movl_GOT_ebx): Rename from movl_GOT_ebx,
+ and don't use GSYM_PREFIX with _GLOBAL_OFFSET_TABLE_.
+
+ * tune/freq.c (speed_cpu_frequency_measure): New test comparing
+ gettimeofday and speed_cyclecounter, should cover many systems.
+
+2000-10-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/gmp-mparam.h: Retune.
+
+2000-10-26 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (ia64): Set UMUL_TIME and UDIV_TIME.
+
+ * mpn/ia64/submul_1.c: Fix typo.
+
+2000-10-25 Kevin Ryde <kevin@swox.se>
+
+ * tune/freq.c (speed_cpu_frequency_sysctl): New test, supporting
+ hw.model for BSD flavours.
+ * configure.in (sysctl, sys/param.h): New tests.
+
+2000-10-24 Torbjorn Granlund <tege@swox.com>
+
+ * tune/freq.c: Explicitly #include config.h before other include files.
+
+ * mpz/tests/reuse.c (FAIL2): New #define.
+ (main): Use FAIL2. Now this test properly returns non-zero exit
+ status when it fails.
+
+ * mpn/powerpc32/gmp-mparam.h: Retune.
+ * mpn/powerpc64/gmp-mparam.h: Retune.
+
+2000-10-24 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/cross.pl: Support 8 and 16 byte code alignment.
+
+ * mpq/aors.c, mpq/canonicalize.c: Skip two mpz_divexact calls if
+ gcd gives 1, which should be 60% of the time.
+ * gmp-impl.h (MPZ_EQUAL_1_P): New macro.
+ * mpq/mul.c, mpq/div.c: Use it, and a new DIV_OR_SET.
+
+ * tune/tuneup.c (xp_block, yp_block): Initialize these with random
+ data. Fixes GCD_ACCEL and GCDEXT thresholds, and latest POWM.
+
+2000-10-23 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Add ia64 case.
+
+ * mpn/ia64/gmp-mparam.h: Fill in some parameters.
+
+ * mpn/ia64/submul_1.c: New file.
+
+ * tune/ia64.asm: New file.
+
+ * gmp-impl.h (union ieee_double_extract): Handle ia64.
+
+ * mpn/mp_bases.c: Decrease chars_per_bit_exactly for entry 1 to
+ work around buggy ia64-linux.
+
+ * longlong.h (ia64 umul_ppmm): Update register flags to match new GCC.
+
+2000-10-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update.
+ * mpn/alpha/ev6/submul_1.asm: New file.
+
+2000-10-22 Kevin Ryde <kevin@swox.se>
+
+ * tune/gcd_bin.c: New file.
+ * tune/gcd_finda_gen.c: New file.
+ * tune/Makefile.am (libspeed_la_SOURCES): Add them.
+ * tune/speed.[ch],common.c (mpn_gcd_binary, find_a): Add measuring.
+
+ * * (__gmp_allocate_func etc): Rename from _mp_allocate_func etc.
+ (__gmp_default_allocate etc): Rename from _mp_default_allocate etc.
+ * gmp-impl.h (__GMP_REALLOCATE_FUNC_TYPE,
+ __GMP_REALLOCATE_FUNC_LIMBS): New macros.
+
+ * gmp-impl.h (DC_THRESHOLD): Establish default here, set to 3*KARA
+ since that's the measured average.
+ * mpn/generic/dc_divrem_n.c, mpn/generic/tdiv_qr.c (DC_THRESHOLD):
+ Remove default.
+
+2000-10-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/Makefile.am (TARG_DIST): Add ia64.
+
+2000-10-21 Kevin Ryde <kevin@swox.se>
+
+ * *: Change BZ -> DC.
+ * mpn/generic/dc_divrem_n.c: Renamed from bz_divrem_n.c.
+
+ * doc/multiplication: Remove file, now in the manual.
+ * doc/assembly_code: Ditto.
+ * tune/README: Remove some parts now in the manual.
+
+ * gmp.texi (@m etc): Add and use some new macros.
+ (Integer Division - mpz_[cft]div_*): Merge descriptions, for brevity
+ and to emphasise similarities.
+ (Low-Level Functions - mpn_[lr]shift): Specify count as 1 to
+ mp_bits_per_limb-1.
+ (Algorithms): New chapter.
+ (References): Add some papers.
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove some
+ unused variables.
+ * mpn/generic/mul_fft.c (mpn_fft_best_k): Ditto.
+
+ * tune/freq.c: New file, split from time.c.
+ * tune/time.c: Rewrite, now more automated.
+ * configure.in, tune/*: Consequent changes.
+
+2000-10-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/default.m4: New file.
+ * configure.in [config.m4 switch] (ia64*-*-*): Use ia64/default.m4.
+
+ * mpn/ia64/mul_1.asm: New file.
+ * mpn/ia64/addmul_1.asm: New file.
+ * mpn/ia64/add_n.asm: New file.
+ * mpn/ia64/sub_n.asm: New file.
+ * mpn/ia64/popcount.asm: New file.
+ * mpn/ia64/README: New file.
+
+ * mpn/alpha/cntlz.asm: Override `.set noat' from ASM_START.
+
+ * configure.in (HAVE_TARGET_CPU_*): Support hppa1.0, hppa1.1, hppa2.0
+ by sed'ing the period into `_'.
+
+ * acconfig.h: Add #undefs for hppa targets.
+
+ * longlong.h (udiv_qrnnd): Fix typo in last change.
+
+ * mpz/tstbit.c: Rewrite (partly to work around GCC 2.95.2 HPPA bug).
+
+ * configure.in [path switch]:
+ (hppa2.0*-*-*): For non-CC64 case, update path.
+
+ * configure.in [compiler switch]:
+ (hppa2.0w-*-*): Match with same regexp in both places.
+ (hppa*-*-*): New case.
+ (all hppa alternatives): Don't inherit default gmp_cflags_cc,
+ gmp_cflags_c89.
+
+2000-10-18 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (alpha*-*-*): Define gmp_xoptcflags_gcc like for
+ alpha*-*-osf*.
+
+ * longlong.h (x86 udiv_qrnnd): Change `d' => `dx' to avoid K&R C
+ stringification.
+
+2000-10-15 Kevin Ryde <kevin@swox.se>
+
+ * doc/configuration: Updates.
+
+ * demos/calc.y: Remove some comments.
+
+2000-10-14 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Parameter Conventions, Memory Management): New sections
+ split from "Variable Conventions".
+ (Efficiency, Debugging, Profiling): New sections in "GMP Basics".
+ (Reentrancy): Some rewording, add note on standard I/O.
+ (Build options): Add --enable-assert and --enable-profiling.
+
+ * configure.in (--enable-profiling): New option.
+ * acinclude.m4 (GMP_ASM_X86_MCOUNT): New macro, finding how to profile.
+ * mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_mcount): Profiling support.
+
+ * acinclude.m4, configure.in (GMP_ASM_*): Rename from GMP_CHECK_ASM_*,
+ to follow autoconf conventions.
+
+ * configure.in: Run GMP_CHECK_ASM tests only if needed.
+ * acinclude.m4 (GMP_CHECK_ASM_MMX): Don't use GMP_CHECK_ASM_TEXT.
+
+ * mpn/x86/x86-defs.m4 (ASSERT): Allow no condition, to just emit code.
+
+2000-10-13 Kevin Ryde <kevin@swox.se>
+
+ * mpq/md_2exp.c: New file.
+ * mpq/Makefile.am (libmpq_la_SOURCES): Add it.
+ * Makefile.am (MPQ_OBJECTS): Ditto.
+ * gmp.h (mpq_mul_2exp, mpq_div_2exp): Add prototypes.
+ * gmp.texi (Rational Arithmetic): Add documentation.
+
+ * mpq/tests/t-md_2exp.c: New file.
+ * mpq/tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpn/generic/perfsqr.c: Add/amend some comments.
+
+ * gmp.texi (Known Build Problems): Note VERSION problem with old
+ sed, do some minor rewording.
+ (Build Options): Add cygwin and djgpp URLs, mention INSTALL.autoconf,
+ mention HTML.
+ (Getting the Latest Version of GMP): Move this ...
+ (Introduction to GMP): ... to here.
+ (Compatibility with older versions): Just refer to 2.x and 3.x, not
+ every minor version.
+ (Initializing Integers): Note restrictions on mpz_array_init'ed
+ variables.
+ (Integer Logic and Bit Fiddling): Note bits are numbered from 0.
+
+ * INSTALL.autoconf: New file.
+ * Makefile.am (EXTRA_DIST): Add it.
+
+ * tune/Makefile.am, tune/tuneup.c, configure.in, gmp-impl.h: New
+ scheme for recompiled objects used by tune program. Don't use
+ libgmptune.a, make better use of libtool, work with ansi2knr.
+
+ * tune/speed.h,common.c (SPEED_ROUTINE_MPZ_POWM): Use s->yp and
+ s->xp_block, make exponent a fixed size.
+
+2000-10-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3/gmp-mparam.h: Retune.
+
+ * mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change.
+
+2000-10-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles.
+ * mpn/mips3/sub_n.s: Likewise.
+
+2000-10-04 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (sparc64-*-linux*): Set path according to CC64.
+
+2000-10-04 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Use LABEL_SUFFIX, not a
+ hard-coded ":".
+
+ * config.sub: Don't demand "86" in CPU name for SCO.
+
+ * configure.in (supersparc-*-*): Remove -DSUPERSPARC.
+ * longlong.h: Use HAVE_TARGET_CPU_supersparc.
+
+ * configure.in (HAVE_TARGET_CPU_*): AC_DEFINE from $target_cpu.
+ * acconfig.h: Add #undefs, but only for targets of interest.
+
+2000-10-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/cntlz.asm: Rewrite.
+
+ * mp_clz_tab.c (__clz_tab): Half table size to 128 entires.
+ * longlong.h (count_leading_zeros): Demand just 128 entries from
+ __clz_tab.
+
+ * configure.in (mips-sgi-irix6.*): Pass -mips3 in addition to options
+ for n32 ABI.
+
+ * longlong.h: Move NO_ASM test around all assembly code.
+ From gcc:
+ * longlong.h (count_leading_zeros): Sparclite scan instruction was
+ being invoked incorrectly.
+ Replace __mc68332__ with __mcpu32__.
+ Add ARC support.
+
+2000-10-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/mips3/gmp-mparam.h: Retune for both gcc and cc.
+
+ * mpn/generic/mul_n.c (USE_MORE_MPN): Remove exception for __mips.
+ (interpolate3): Cast mp_limb_t variables to mp_limb_signed_t
+ when testing sign bit.
+
+ * mpn/alpha/ev6/gmp-mparam.h: Retune.
+ * mpn/powerpc32/gmp-mparam.h: Retune.
+ * mpn/powerpc64/gmp-mparam.h: Retune.
+ * mpn/x86/pentium/gmp-mparam.h: Retune.
+ * mpn/x86/pentium/mmx/gmp-mparam.h: Retune.
+ * mpn/sparc32/v9/gmp-mparam.h: Retune.
+ * mpn/x86/k6/gmp-mparam.h: Retune.
+ * mpn/x86/p6/gmp-mparam.h: Retune.
+ * mpn/x86/k7/gmp-mparam.h: Retune.
+ * mpn/sparc64/gmp-mparam.h: Retune.
+
+ * mpn/m68k/gmp-mparam.h: New file.
+ * mpn/alpha/ev5/gmp-mparam.h: New file.
+
+ * gmp-impl.h (default MPN_COPY): Remove final `;'.
+
+ * tune/time.c (speed_endtime): Rewrite.
+
+ * tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Set base to a large value,
+ not 2.
+
+ * demos/pexpr.c (setup_error_handler): Fix typo.
+
+ * mpz/powm.c (redc): New function, based on old mpz_redc. Don't
+ multiply here.
+ (mpz_redc): Remove.
+ (mpz_powm): Major changes, partially reverting to mpn calls.
+ Multiply before calling redc.
+ (mpz_powm): Use TMP_ allocation.
+ (mpz_powm): Refine calculation of k (width of exponent window).
+ (mpz_powm): Cast constants to mp_limb_t before left shifting.
+
+ * longlong.h: Use ia64 count_leading_zeros just when __GNUC__.
+
+2000-09-29 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_C_SIZES): New macro.
+ * configure.in: Use it.
+ * acconfig.in (BYTES_PER_MP_LIMB etc): Add #undefs.
+ * mpn/generic/gmp-mparam.h (BYTES_PER_MP_LIMB etc): Remove #defines.
+ * gmp.texi (Known Build Problems): Remove 64-bit generic C
+ gmp-mparam.h problem, now fixed.
+
+ * configure.in: Only run GMP_PROG_M4 if it's actually needed.
+
+2000-09-27 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Clean up code for systems not supporting
+ sigaltstack. Handle old Linux without sigaltstack. Properly
+ disable all stuff related to sigaltstack under Unicos.
+
+ * mpn/alpha/ev6/addmul_1.asm: Use explicit offset for all load and
+ store insns. Helps old gas.
+
+ * longlong.h (count_leading_zeros): Define for ia64.
+
+2000-09-27 Paul Zimmermann <Paul.Zimmermann@loria.fr>
+
+ * mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify.
+
+2000-09-27 Kevin Ryde <kevin@swox.se>
+
+ * mpn/Makefile.in (.SUFFIXES): Regenerate with patched automake to
+ get .s before .c, which is needed to override ansi2knr .c rules.
+
+ * gmp.texi (mpn_sqrtrem): Fix r2p==NULL return value description
+ to match the code (change by Torbjorn).
+ (mpn_gcd, mpn_gcdext, mpn_sqrtrem, mpn_tdiv_qr): Note most
+ significant limbs must be non-zero.
+ (mpn_gcd, mpn_gcdext, mpn_sqrtrem): Clarify destination size
+ requirements.
+ (mpn_gcd_1): Clarify value must be non-zero, not just size.
+
+ * gmp-impl.h (mpn_zero_p): New inline function.
+ * mpn/generic/inlines.c: Add gmp-impl.h.
+ * mpf/integer.c, mpz/get_d.c, mpn/generic/mul_fft.c: Use it.
+
+ * mpn/generic/gcd.c: Use MPN_COPY_INCR not MPN_COPY.
+ * mpf/add_ui.c: Ditto.
+ * mpf/add.c: Ditto, and fix test to skip copy.
+
+2000-09-26 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h, longlong.h, mpn/generic/*.c: Add ASSERTs for various
+ parameter restrictions.
+
+ * gmp-impl.h (UDIV_PREINV_TIME): New macro.
+ * mpn/generic/sb_divrem_mn.c: Use it.
+ * mpn/generic/perfsqr.c: Ditto.
+ * mpn/x86/*/gmp-mparam.h (UDIV_PREINV_TIME): Add values.
+
+ * macos/Makefile.in: Add mpz/tests/t-get_si.c, mpf/tests/t-set_f.c,
+ and new multi-function mpz and mpq files.
+
+2000-09-25 Kevin Ryde <kevin@swox.se>
+
+ * randlc.c, randlc2x.c, randsd.c, mpz/urandomb.c, mpz/urandomm.c:
+ Use mpz_ptr and mpz_srcptr for parameters.
+ * gmp.h (gmp_randinit_lc, gmp_randinit_lc_2exp, gmp_randseed,
+ mpz_urandomb, mpz_urandomm): Corresponding change to prototypes.
+ * randsdui.c: Remove wrong K&R parameters part.
+
+2000-09-12 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (mpn_tdiv_qr): Move prototype from here ...
+ * gmp.h (mpn_tdiv_qr): ... to here.
+
+ * gmp.texi (Miscellaneous Rational Functions): Comment-out and
+ move version 1 compatibility note to "Compatibility" section.
+ (Rational Number Functions): Ditto for canonicalization note.
+
+2000-09-10 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/com_n.asm: New file.
+
+ * gmp.texi (Rational Arithmetic): Add mpq_abs.
+ (Miscellaneous Rational Functions): Merge and simplify descriptions of
+ mpq_get_num, mpq_get_den, mpq_set_num, mpq_set_den.
+
+ * mpq/abs.c: New file.
+ * mpq/Makefile.am (libmpq_la_SOURCES): Add it.
+ * Makefile.am (MPQ_OBJECTS): Add it.
+ * gmp.h (mpq_abs): Add prototype.
+
+ * mpq/set_den.c: Don't discard sign when copying, this makes the
+ code match the manual.
+
+2000-09-07 Torbjorn Granlund <tege@swox.com>
+
+ * tune/alpha.asm: Rewrite to actually work right.
+
+2000-09-07 Kevin Ryde <kevin@swox.se>
+
+ * tune/common.c,speed.[ch]: Add measuring of mpn_sqrtrem,
+ mpn_get_str, mpn_set_str.
+ * tune/README: Various updates.
+
+2000-09-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/fits.c: Correct type of `data'.
+
+2000-09-06 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Clarify where to find CFLAGS.
+ (Known Build Problems): Note SCO -lc problem.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Fix for sizes > 512 limbs.
+
+ * doc/multiplication: Corrections and additions suggested by Paul.
+
+ * tune/modlinv.c: New file with alternate modlimb_inverts.
+ * tune/Makefile.am, tune/speed.[ch]: Add measuring of them.
+ * tune/speed.c (FLAG_NODATA): New attribute, use for mpz_bin_uiui,
+ mpz_fib_ui, mpz_fac_ui.
+
+ * mpn/x86/t-zdisp.sh: New file.
+
+ * tests/t-modlinv.c: New file.
+ * tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpq/tests/t-set_f.c: New file.
+ * mpq/tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * gmp-impl.h (MPQ_CHECK_FORMAT): New macro.
+ * mpq/tests/t-get_d.c: Use it.
+
+ * mpq/set_f.c: New file.
+ * mpq/Makefile.am (libmpq_la_SOURCES): Add it.
+ * Makefile.am (MPQ_OBJECTS): Ditto.
+ * gmp.h: Add prototype.
+ * gmp.texi (Miscellaneous Rational Functions): Document mpq_set_f,
+ correct return type of mpq_set_d.
+
+2000-09-03 Kevin Ryde <kevin@swox.se>
+
+ * mpz/aors_ui.c: New file merging add_ui.c and sub_ui.c, no object
+ code changes.
+ * mpz/add_ui.c, mpz/sub_ui.c: Remove files.
+ * mpz/Makefile.am: Update.
+
+ * gmp-impl.h (MPZ_FITS_STYPE_SDT, MPZ_FITS_UTYPE_SDT): New macros.
+ * mpz/fits.c: New file merging six separate fits*.c.
+ * mpz/fits_sshort_p.c, fits_sint_p.c, fits_slong_p.c, fits_ushort_p.c,
+ fits_uint_p.c, fits_ulong_p.c: Remove files
+ * mpz/Makefile.am: Use new fits.c, change object names from
+ fits_*_p.lo to fits_*.lo to avoid SunOS 4 native "ar" warnings.
+ * Makefile.am (MPZ_OBJECTS): Change from fits_*_p.lo to fits_*.lo.
+
+ * acinclude.m4 (GMP_CHECK_ASM_RODATA): New macro, defining RODATA.
+ * configure.in: Use it.
+ * mpn/x86/k[67]/mmx/popham.asm: Use it.
+
+ * mpn/x86/*/*.asm: Use "TEXT" not ".text".
+
+2000-09-02 Kevin Ryde <kevin@swox.se>
+
+ * mpq/aors.c: New file merging add.c and sub.c, no object code changes.
+ * mpq/add.c, mpq/sub.c: Remove files.
+ * mpq/Makefile.am: Update.
+
+ * mpz/aors.c: New file merging add.c and sub.c, no object code changes.
+ * mpz/add.c, mpz/sub.c: Remove files.
+ * mpz/Makefile.am, mpbsd/Makefile.am: Update.
+
+ * configure.in: Re-apply "PROLOGUE.*" regexp change for the
+ benefit of alpha PROLOGUE_GP, lost in path search reorganisation.
+
+ * mpn/x86/x86-defs.m4 (jadcl0, cmov_simulate, ASSERT,
+ movl_text_address): Don't use "1:" style labels.
+ (Zdisp): Rearrange a bit, switch to all hex.
+ * mpn/x86/README.family: Note SCO "as" doesn't support "1:" style
+ local labels, misc rewordings.
+
+2000-08-29 Torbjorn Granlund <tege@swox.com>
+
+ * demos/primes.c: Include string.h.
+
+ * config.guess (x86 variant recog code): Remove dummy*.o files
+ generated by some compilers.
+
+2000-08-28 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix Solaris 2.8
+ warning message suppression, add notes about SCO.
+
+ * Makefile.am (MPZ_OBJECTS etc): Move some comments.
+
+2000-08-25 Kevin Ryde <kevin@swox.se>
+
+ * mpz/pprime_p.c (mpz_millerrabin): Fix a TMP_FREE.
+
+ * gmp.texi (Copying): Refer to Lesser not Library GPL.
+ (GMP and Reentrancy): Note stack-alloc.c is not reentrant, and
+ that SCO <ctype.h> is potentially not reentrant.
+
+ * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Test by attempting to
+ link with or without an underscore.
+ * gmp.texi (Known Build Problems): Remove SunOS 4 native grep
+ GSYM_PREFIX problem, now fixed.
+
+ * gmp-impl.h (MODLIMB_INVERSE_3): New constant.
+ * mpn/generic/diveby3.c: Use it instead of own INVERSE_3.
+ * mpn/generic/mul_n.c: Ditto.
+ * tests/t-constants.c: Check it, and PP_INVERTED too.
+
+ * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): New macro.
+ * configure.in [p6 and athlon] (gmp_optcflags_gcc): Use it to
+ possibly add -march=pentiumpro.
+
+ * gmp-impl.h (MPZ_SET_STR_OR_ABORT, MPF_SET_STR_OR_ABORT): New macros.
+ * mpz/tests/t-bin.c, mpz/tests/t-get_si.c, mpz/tests/t-jac.c,
+ mpz/tests/t-misc.c: Use them.
+ * mpf/tests/t-conv.c, mpf/tests/t-misc.c: Ditto.
+ * mpz/tests/convert.c: Ditto and amend diagnostics slightly.
+ * mpz/tests/t-misc.c (check_mpz_set_si): Remove a superfluous init.
+ * mpz/tests/io.c: Differentiate between I/O and data conversion errors.
+
+ * mpn/generic/aors_n.c: New file merging add_n and sub_n, no
+ object code changes.
+ * mpn/generic/add_n.c: Remove file.
+ * mpn/generic/sub_n.c: Remove file.
+
+ * mpn/generic/aorsmul_1.c: New file merging addmul_1 and submul_1,
+ no object code changes.
+ * mpn/generic/addmul_1.c: Remove file.
+ * mpn/generic/submul_1.c: Remove file.
+
+ * mpn/generic/popham.c: New file merging popcount and hamdist, no
+ object code changes.
+ * mpn/generic/popcount.c: Remove file.
+ * mpn/generic/hamdist.c: Remove file.
+
+2000-08-24 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (mpn_com_n): Fix typo.
+
+2000-08-23 Torbjorn Granlund <tege@swox.com>
+
+ * demos/primes.c (main): Don't call mpz_probab_prime_p for numbers
+ that are known to be prime after sieving.
+ (main): Declare and initialize max_s_prime_squared.
+ (MAX_S_PRIME): Increase.
+ (ST_SIZE): Increase.
+
+2000-08-23 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (ASSERT_ALWAYS): Change to statement style.
+ (JACOBI_TWO_U_BIT1): Remove ASSERT.
+ (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS as a statement.
+
+2000-08-21 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (ASSERT): Use do..while for dummy version.
+
+ * mpf/get_str.c: Don't set n_digits from digits_computed_so_far
+ when the converted operand becomes zero. Misc cleanups.
+
+2000-08-21 Kevin Ryde <kevin@swox.se>
+
+ * mpz/fdiv_r_2exp.c, mpz/lcm.c, mpz/urandomm.c: Add missing
+ TMP_MARK/FREE, avoiding memory leak when using stack-alloc.c.
+
+2000-08-20 Kevin Ryde <kevin@swox.se>
+
+ * mpz/set.c [BERKELEY_MP] (move): Add conditionals to build as
+ "move" for libmp.
+ * mpbsd/Makefile.am: Use mpz/set.c, not move.c.
+ * Makefile.am (MPBSD_OBJECTS): Corresponding change.
+ * mpbsd/move.c: Remove file.
+
+ * mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am,
+ mpbsd/Makefile.am (-DOPERATION_foo): Use "foo" even for ansi2knr
+ "foo_" objects. Do this with the makefiles to keep the sources
+ cleaner.
+ * mpz/mul_siui.c, mpf/integer.c: Revert to plain OPERATION_* forms.
+
+ * mpn/lisp/gmpasm-mode.el (gmpasm-remove-from-list): Renamed from
+ gmpasm-delete-from-list, because it's non-destructive.
+ (gmpasm-font-lock-keywords): Add some more keywords.
+
+2000-08-16 Kevin Ryde <kevin@swox.se>
+
+ * tune/mul_n_mpn.c, tune/mul_n_open.c: New files, being forced
+ open-coded and mpn #includes of mpn/generic/mul_n.c.
+ * tune/*: Add measuring of them.
+ * tune/speed.c: Print command line into *.gnuplot file.
+
+ * mpn/generic/mul_n.c (USE_MORE_MPN): Change to #if not #ifdef for
+ using the value, add #ifndef for providing the default.
+ * mpn/sparc64/gmp-mparam.h (USE_MORE_MPN): Add #ifndef.
+
+ * tests/t-constants.c: New file.
+ * tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/get_si.c: Use LONG_MAX, not BITS_PER_MP_LIMB, so the result
+ doesn't depend on limb size when outside the range of a long
+ (though such results are not actually documented).
+ * mpz/tests/t-get_si.c: New file.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpn/tests/try.c (call): Cast popcount and hamdist calls,
+ for the benefit of long long limb.
+
+2000-08-15 Kevin Ryde <kevin@swox.se>
+
+ * mp.h (mp_set_memory_functions): Add missing #define.
+ * mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its
+ existence.
+
+ * mpf/tests/t-misc.c (check_mpf_getset_prec): New test, verifying
+ reverted behaviour of mpf_get_prec.
+
+ * mpn/tests/ref.c (refmpn_strip_twos): Use refmpn_copyi, not
+ MPN_COPY_INCR.
+
+ * mpz/mul_siui.c, mpf/integer.c: Recognise OPERATION_*_ forms
+ produced under ansi2knr.
+
+ * configure.in (mpn_objects, mpn_objs_in_libgmp): Add $U to .c
+ objects when ansi2knr in use.
+
+ * mpn/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
+ (libdummy.la): Add this, not built, to create ansi2knr style rules
+ for all potential .c files.
+ * mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpfr/Makefile.am,
+ mpbsd/Makefile.am, mpq/tests/Makefile.am, tests/Makefile.am
+ (AUTOMAKE_OPTIONS): Enable ansi2knr (now everywhere).
+ * Makefile.am (MPZ_OBJECTS, MPQ_OBJECTS, MPF_OBJECTS, MPFR_OBJECTS,
+ MPBSD_OBJECTS, libmp_la_DEPENDENCIES): Add $U to all .lo filenames.
+
+2000-08-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28.
+
+2000-08-02 Torbjorn Granlund <tege@swox.com>
+
+ * Version 3.1 released.
+
+ * gmp.texi: Rephrase mpf_urandomb documentation.
+
+ * mpn/alpha/ev6: New directory with ev6/21264 optimized code.
+ * mpn/alpha/ev6/addmul_1.asm: New file.
+ * mpn/alpha/ev6/gmp-mparam.h: New file.
+
+2000-08-02 Kevin Ryde <kevin@swox.se>
+
+ * demos/factorize.c (random): Don't use "inline".
+
+ * mpfr/log.c, mpfr/mul_ui.c, mpfr/round.c, mpfr/set.c, mpfr/set_d.c:
+ Corrections to K&R parts.
+
+ * Makefile.am (EXTRA_HEADERS): Omit $(MPFR_HEADERS_OPTION).
+ * mpfr/Makefile.am (EXTRA_DIST): Add mpfr.h.
+
+ * gmp.texi (Known Build Problems): Note problem stripping libgmp.a.
+
+2000-08-02 Kent Boortz <kent@swox.com>
+
+ * mpfr: Integrated experimental version of mpfr-0.4.
+ * configure.in: Changes for option --enable-mpfr.
+ * Makefile.am: Changes for option --enable-mpfr.
+
+2000-08-01 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern.
+ * mpn/generic/hamdist.c: Likewise.
+
+2000-08-01 Kevin Ryde <kevin@swox.se>
+
+ * mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing
+ source and dest regions.
+
+2000-07-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/get_str.c: Develop three extra digits, not just one.
+
+2000-07-31 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (References): Add URL for invariant division.
+
+2000-07-30 Kevin Ryde <kevin@swox.se>
+
+ * tune/time.c (speed_cpu_frequency_proc_cpuinfo): Add support for
+ alpha linux "cycle frequency".
+
+ * mpn/sparc64/gmp-mparam.h: Re-run tune program for FFT thresholds.
+
+2000-07-29 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (ABI and ISA): Add sparc64-*-linux*.
+ * configure.in [sparc64-*-linux*] (gmp_cflags64_gcc): Same flags
+ as under solaris.
+
+ * configure.in (--enable-fft): New option, default "no".
+ * gmp.texi (Build Options): Describe it.
+ * mpn/generic/mul.c, mpn/generic/mul_n.c [WANT_FFT]: Use it.
+ * tune/tuneup.c [WANT_FFT]: By default don't probe FFTs if not enabled.
+ * NEWS: Multiplication optionally using FFT.
+
+ * tune/README: Notes on FFT and GCD thresholds, other minor updates.
+
+ * Makefile.am: Expunge the macos generated files update stuff.
+
+2000-07-28 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/*/gmp-mparam.h: Add some FFT thresholds.
+
+2000-07-28 Kent Boortz <kent@swox.se>
+
+ * macos/Asm*, macos/CmnObj, macos/Mp*: Delete directories.
+ * macos/Makefile: Delete file.
+ * macos/Makefile.cw: Delete file.
+ * macos/config.h: Delete file.
+ * macos/Asm/*.s: Delete files.
+ * macos/configure: Create target directories. Don't transform
+ '(C)' to '(;)' in a 'dnl' line comment in .asm file.
+ * Makefile.am: Delete macos targets.
+ * macos/README: Reflect that we reverted back to a build
+ process that require ""macos/configure" to run on MacOS.
+ This imply that MacPerl is needed for a build in MacOS.
+
+2000-07-27 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_fft.c: New file, by Paul Zimmermann, minor mods
+ applied.
+ * configure.in (gmp_mpn_functions): Add it.
+ * mpn/generic/mul.c, mpn/generic/mul_n.c: Use it.
+ * doc/multiplication: Describe it (briefly).
+
+ * gmp-impl.h (FFT_MUL_THRESHOLD etc): New thresholds.
+ (mpn_fft_best_k, mpn_fft_next_size, mpn_mul_fft, mpn_mul_fft_full):
+ New functions.
+ (numberof, TMP_ALLOC_TYPE etc, _MP_ALLOCATE_FUNC_TYPE etc,
+ UNSIGNED_TYPE_MAX etc): New macros.
+
+ * tune/*: Add FFT threshold tuning and speed measuring.
+ * tune/common.c: Avoid huge macro expansions for umul and udiv.
+
+ * mpz/tests/t-bin.c, mpz/tests/t-jac.c, mpz/tests/t-misc.c,
+ mpbsd/tests/t-misc.c, mpf/tests/t-misc.c, mpn/tests/try.c,
+ mpn/tests/spinner.c: Use new gmp-impl.h macros.
+
+ * demos/Makefile.am (BUILT_SOURCES): Don't need calc.c etc under this.
+
+2000-07-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/ia64/gmp-mparam.h: New file.
+
+2000-07-26 Torbjorn Granlund <tege@swox.com>
+
+ * demos/isprime.c: Handle any number of arguments and print
+ classification for each. Add `-q' option for old behaviour.
+
+2000-07-26 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Build Options): Mention djgpp stack size.
+ (Notes for Package Builds): New section.
+ (Compatibility with older versions): Update for 3.1, add mpf_get_prec.
+
+ * demos/factorize.c [__GLIBC__]: Don't declare random() under glibc.
+
+ * gmp.h (gmp_version): Add prototype and define.
+
+ * Makefile.am: Keep macos directory generated files up-to-date
+ during development and on a "make dist".
+
+2000-07-25 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/hppa/gmp-mparam.h: Update threshold values from new `tune' run.
+
+ * mpn/pa64/gmp-mparam.h: Fill in values from `make tune' run.
+ * mpn/pa64w/gmp-mparam.h: Likewise.
+ * mpn/mips3/gmp-mparam.h: Likewise.
+
+ * tune/hppa2.asm: Fix typo in .level directive.
+
+ * configure.in: Add sparc64-*-linux* support (from Jakub Jelinek).
+ * configure: Regenerate.
+
+ * mpn/sparc64/rshift.asm: Use %g5 instead of volatile stack frame area
+ for return value (from Jakub Jelinek).
+ * mpn/sparc64/lshift.asm: Likewise.
+
+ * mpf/get_prc.c: Revert Aug 8, 1996 change.
+
+ * version.c: No longer static.
+
+ * mpn/pa64/gmp-mparam.h: Only #define *_THRESHOLD if not already
+ defined.
+ * mpn/pa64w/gmp-mparam.h: Likewise.
+ * mpn/arm/gmp-mparam.h: Likewise.
+ * mpn/mips3/gmp-mparam.h: Likewise.
+
+2000-07-25 Kevin Ryde <kevin@swox.se>
+
+ * INSTALL: It's "info -f ./gmp.info" to be sure of hitting the
+ gmp.info in the current directory.
+
+ * Makefile.am (libmp_la_DEPENDENCIES): Add mpz/cmp.lo, for last
+ mpz/powm.c fix.
+
+ * mpn/sparc64/addmul1h.asm, mpn/sparc64/submul1h.asm: Renamed from
+ addmul_1h.asm, submul_1h.asm to avoid name conflicts on an 8.3
+ filesystem.
+ * mpn/sparc64/addmul_1.asm, mpn/sparc64/submul_1.asm,
+ mpn/sparc64/mul_1.asm: Update include_mpn()s.
+
+2000-07-24 Torbjorn Granlund <tege@swox.com>
+
+ * Update header of all files previously under the Library GPL
+ to instead be under the Lesser GPL.
+
+ * COPYING.LIB: Now Lesser GPL.
+ * demos/primes.c: Change license to GPL (was Library GPL).
+ * demos/isprime.c: Change license to GPL (was Library GPL).
+
+ * gmp.h (error code enum): Add GMP_ERROR_BAD_STRING (currently unused).
+
+ * mpz/tests/t-mul.c: Default SIZE to a function of TOOM3_MUL_THRESHOLD.
+ Improve error messages. Decrease reps.
+
+2000-07-22 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.h: Decrease the amount of data used for gcd and powm
+ measuring, to make the tune go a bit faster.
+
+2000-07-21 Kent Boortz <kent@swox.se>
+
+ * macos/Asm*, macos/CmnObj, macos/Mp*: Directories no longer created
+ from configure script, now part of dist.
+ * macos/Makefile
+ * macos/Makefile.cw
+ * macos/config.h
+ * macos/Asm/*.s
+ New files and directories that is the output from configure. This way
+ no Perl installation is required to build on MacOS, just MPW.
+ * macos/configure: Added prefix '__g' to exported assembler labels.
+ Changed to handle new m4 syntax instead of the old cpp syntax in asm.
+ * macos/Makefile.in: Corrected 'clean' target, added 'distclean'
+ and 'maintainer_clean'. Added "mpn/mp_bases.c" to build.
+ * macos/README: Reflect the new build process without configure.
+ Corrected the file structure for Apple MPW installation.
+
+2000-07-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/tests/t-muldiv.c: Relax error limit. Make precision depend
+ on SIZE. Misc changes.
+
+ * configure: Regenerate.
+
+2000-07-20 Kent Boortz <kent@swox.com>
+
+ * macos/Makefile.in: Removed hard coded targets, added special
+ targets found in Makefile.am files.
+ * macos/configure: Generate targets from top configure script and
+ Makefile.am files. Made script runnable from Unix for testing.
+ * macos/README: Notes about search paths for includes, contributed
+ by Marco Bambini.
+ * configure.in: Added comment about lines that the "macos/configure"
+ script depend on.
+
+2000-07-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/powm.c (mpz_powm): After final mpz_redc call, subtract `mod'
+ from result if it is greater than `mod'.
+
+2000-07-19 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/hppa/gmp-mparam.h: Fill in values from `make tune' run.
+ * mpn/alpha/gmp-mparam.h: Likewise.
+ * mpn/powerpc32/gmp-mparam.h: Likewise.
+
+ * tune/hppa.asm: New file.
+ * tune/hppa2.asm: New file.
+ * configure.in (SPEED_CYCLECOUNTER_OBJS): Set for hppa2*-*-* and
+ hppa*-*-*.
+ * tune/Makefile.am (EXTRA_DIST): Add hppa.asm and hppa2.asm.
+
+ * tune/speed.h (SPEED_ROUTINE_MPN_BZ_DIVREM_CALL): Declare `marker';
+ invoke TMP_FREE.
+
+ * mpn/hppa/hppa1_1/udiv_qrnnd.S: Use "%" instead of "'" for
+ reloc/symbol delimiter.
+
+2000-07-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/gmp-mparam.h: Update with output from tune utility.
+ * mpn/powerpc64/copyi.asm: New file.
+ * mpn/powerpc64/copyd.asm: New file.
+
+2000-07-16 Kevin Ryde <kevin@swox.se>
+
+ * tune/*: Add measuring for umul_ppmm and udiv_qrnnd.
+
+2000-07-14 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/k62mmx: New directory.
+ * configure.in (k6[23]*-*-*): Use it.
+ * mpn/x86/k6/k62mmx/copyi.asm, mpn/x86/k6/k62mmx/copyd.asm: Move from
+ mmx directory, improve code alignment a bit.
+ * mpn/x86/k6/k62mmx/lshift.asm, mpn/x86/k6/k62mmx/rshift.asm: Ditto,
+ and improve addressing modes for pre-CXT cores.
+ * mpn/x86/x86-defs.m4 (Zdisp): Add an instruction.
+ * mpn/x86/k6/mmx/lshift.asm, mpn/x86/k6/mmx/rshift.asm: New files,
+ suiting plain K6.
+ * mpn/x86/README, mpn/x86/k6/README: Updates.
+ * mpn/x86/k6/mmx/*.asm: Update some comments.
+
+ * mpn/tests/Makefile.am: Use $(MAKE) in .asm rules, not "m".
+ * tune/Makefile.am: Use $(EXEEXT) and libtool --config objdir, for
+ the benefit of djgpp.
+
+ * */Makefile.in: Regenerate with patched automake that adds
+ $(EXEEXT) to EXTRA_PROGRAMS.
+
+ * mpn/tests/try.c: Add #ifdef to SIGBUS, for the benefit of djgpp.
+ * config.guess: Recognise pc:*:*:* as an x86, for djgpp.
+
+ * configure: Regenerate with patched autoconf to fix temp file
+ ".hdr" which is invalid on a DOS 8.3 filesystem, and to fix two
+ sed substitutes that clobbered a ":" in $srcdir (eg. a DOS drive
+ spec).
+
+ * mpz/tests/io.c: Use one fp opened "w+", since separately opened
+ input and output doesn't work on MS-DOS 6.21.
+
+ * tests/rand/Makefile.am (allprogs): Pseudo-target to build everything.
+ (CLEANFILES): Add EXTRA_PROGRAMS and EXTRA_LTLIBRARIES.
+ (manual-test, manual-bigtest): Add $(EXEEXT) to dependencies.
+
+ * tests/rand/*/Makefile.in: Regenerate with patched automake that adds
+ $(EXEEXT) to EXTRA_PROGRAMS.
+
+2000-07-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/t-root.c: Also test mpz_perfect_power_p.
+ Generate `nth' so that there will be fewer trivial values.
+
+ * mpz/root.c: Reverse return value in tests for detecting root of +1
+ and -1.
+
+ * mpz/perfpow.c: Use TMP_ALLOC interface.
+
+2000-07-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/perfpow.c (primes): Make it const.
+
+2000-07-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/cross.pl: New file.
+
+ * mpn/x86/*/gmp-mparam.h: Updates to thresholds, conditionalize
+ all _TIME defines.
+ * mpn/x86/pentium/mmx/gmp-mparam.h: New file.
+ * mpn/sparc64/gmp-mparam.h: Update thresholds.
+ * mpn/sparc32/v9/gmp-mparam.h: Ditto.
+
+2000-07-04 Kevin Ryde <kevin@swox.se>
+
+ * NEWS: Updates.
+ * mpn/x86/*/README: Miscellaneous updates.
+
+ * tune/speed-ext.c: New file.
+ * tune/Makefile.am: Add it.
+ * tune/README: Updates.
+ * tune/speed.h (SPEED_ROUTINE_MPN_DIVREM_2): Bug fixes.
+
+ * demos/calc.y,calclex.l: New files.
+ * demos/calc.c,calc.h,calclex.c: New files, generated from .y and .l.
+ * demos/Makefile.am: Add them.
+
+ * gmp.h (mpq_swap, mpf_swap): Add prototypes and defines.
+
+2000-07-01 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (ABI and ISA): New section, bringing together ABI notes.
+ (Build Options): Add MPN_PATH, various updates.
+ (Build Options): Add note on setting CFLAGS when setting CC.
+ (Notes for Particular Systems): Add -march=pentiumpro problem.
+ (Known Build Problems): Note on gmp-mparam.h for 64-bit generic C.
+ (GMP Variable Conventions): Add some info on user defined functions.
+ (Reporting Bugs): Minor rewording.
+
+ * configure.in (MPN_PATH): Renamed from mpn_path.
+
+ * gmp-impl.h (ULONG_MAX,ULONG_HIGHBIT,...,SHORT_MAX): New defines.
+ * mp[zf]/tests/t-misc.c: Use them.
+
+ * mpbsd/tests/t-misc.c: New file.
+ * mpbsd/tests/Makefile.am: Add it.
+
+ * Makefile.am (LIBGMP_LT_*, LIBMP_LT_*): Bump version info.
+ * gmp.h (__GNU_MP_VERSION_*): Bump to 3.1.
+
+ * mpf/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
+
+ * Makefile.am (libmp_la_SOURCES): Add mp_set_fns.c, accidentally
+ omitted in gmp 3.0.x.
+ * gmp.texi (Custom Allocation): Note this is available in mpbsd,
+ and some minor rewording.
+
+2000-06-30 Torbjorn Granlund <tege@swox.com>
+
+ * demos/factorize.c (random): New function, defined conditionally.
+ (factor_using_pollard_rho): Use it, not mrand48.
+
+ * mpn/cray/README: New file.
+
+2000-06-30 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/aorsmul_1.asm: Add MULFUNC_PROLOGUE.
+
+ * mpz/tests/t-jac.c: Test limbs on mpn_jacobi_base, not just ulongs.
+
+ * gmp-impl.h, mpn/tests/try.c, mpn/tests/spinner.c, tune/speed.c:
+ Use config.h unconditionally, not under HAVE_CONFIG_H.
+
+ * demos/pexpr.c [__DJGPP__]: Patch by Richard Dawe to not use
+ setup_error_handler on djgpp.
+
+ * tune/*: Locate data to help direct-mapped caches, add measuring
+ of mpz_init/clear, mpz_add and mpz_bin_uiui, various cleanups.
+ * configure.in (AC_CHECK_FUNCS): Add popen.
+
+2000-06-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/mul_2exp.c: Streamline criterion for whether to use mpn_lshift or
+ mpn_rshift. Increase precision when exp is a multiple of
+ BITS_PER_MP_LIMB primarily to make exp==0 be a noop.
+ * mpf/div_2exp.c: Analogous changes.
+
+ * mpf/tests/t-dm2exp.c: Set u randomly in loop. Perform more
+ mpf_mul_2exp testing.
+
+ * configure.in: Recognize cray vector processors with a broad `*';
+ move after alpha* not to match that.
+
+2000-06-28 Kevin Ryde <kevin@swox.se>
+
+ * mpz/tests/io.c: Use a disk file, not a pipe, switch to ansi2knr
+ style, switch from MP_INT to mpz_t, add a couple of error checks.
+ * mpz/tests/Makefile.am (CLEANFILES): Add io.tmp, in case io.c fails.
+
+2000-06-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/tests/t-get_d.c: Be more lax about relative error, to handle Cray
+ floating point format.
+
+ * mpq/tests/t-get_d.c: Decrease default reps to 1000.
+
+ * mpf/tests/t-conv.c: Correct type of `bexp'.
+
+ * configure.in (cray vector machines): Don't inherit gmp_cflags_cc.
+
+ * tune/Makefile.am (EXTRA_DIST): Delete sparc64.asm.
+
+ * configure.in (cray vector machines): Set extra_functions.
+
+ * mpn/cray/mulww.f: New file with vectorizing cray code.
+ * mpn/cray/mulww.s: Generated from mulww.f.
+ * mpn/cray/mul_1.c: New file.
+ * mpn/cray/addmul_1.c: New file.
+ * mpn/cray/submul_1.c: New file.
+ * mpn/cray/add_n.c: New file.
+ * mpn/cray/sub_n.c: New file.
+
+2000-06-26 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix so it actually
+ detects solaris 2.6, and also suppress warning on solaris 2.8.
+ * configure.in (SPEED_CYCLECOUNTER): Remove spurious "athlon" from
+ sparc case.
+
+ * mpn/lisp/gmpasm-mode.el: Move keymap to the top of the docstring.
+
+2000-06-21 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n, mpn_kara_sqr_n): Use
+ mp_size_t for n2.
+ (mpn_toom3_mul_n, mpn_toom3_sqr_n): Use mp_size_t for size
+ parameters and "l" variables.
+ * gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Update prototypes.
+
+ * mpbsd/itom.c, mpbsd/sdiv.c: Add casts for correct handling of
+ -0x80...00 on systems with sizeof(short)==sizeof(int).
+
+ * mpz/tests/t-misc.c: Move "bin" test from here ...
+ * mpz/tests/t-bin.c: ... to here, and add a new (2k,k) test too.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add t-bin.
+
+ * mpz/bin_ui.c [_LONG_LONG_LIMB]: Use mpn_divrem_1, since kacc is
+ a limb not a ulong.
+ * mpz/bin_uiui.c [_LONG_LONG_LIMB]: Ditto, and use mpn_mul_1 too,
+ since nacc is a limb.
+
+ * mpf/tests/t-misc.c (check_mpf_set_si, check_mpf_cmp_si):
+ New file, testing mpf_set_si, mpf_init_set_si, and mpf_cmp_si.
+ * mpf/tests/Makefile.am (check_PROGRAMS): Add it.
+
+ * mpz/tests/t-misc.c (check_mpz_set_si, check_mpz_cmp_si):
+ New tests, for mpz_set_si, mpz_init_set_si, and mpz_cmp_si.
+
+ * mpz/set_si.c, mpz/iset_si.c, mpz/cmp_si.c [_LONG_LONG_LIMB]: Fix
+ handling of -0x80..00.
+ * mpf/set_si.c, mpf/iset_si.c, mpf/cmp_si.c [_LONG_LONG_LIMB]: Ditto.
+
+2000-06-19 Torbjorn Granlund <tege@swox.com>
+
+ * demos/primes.c: Properly handle arguments `m +n'.
+
+2000-06-17 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Recognize k5 and k6 with common pattern.
+
+ * mpq/tests/t-get_d.c: Also test mpq_set_d. Misc improvements.
+
+ * mpq/set_d.c: Special case 0.0. Don't call mpn_rshift with 0 count.
+ Allocate correct amount of memory for numerator. Delete spurious
+ ASSERT_ALWAYS(1).
+
+2000-06-17 Kevin Ryde <kevin@swox.se>
+
+ * mpz/perfsqr.c: Fix so that zero is considered a perfect square.
+ (Was wrongly calling mpn_perfect_square_p with size==0.)
+
+2000-06-16 Kevin Ryde <kevin@swox.se>
+
+ * configure.in: Set k5*-*-* to use basic i386 code until there's
+ something specific. Add path=x86 as a default for x86s.
+
+ * acinclude.m4 (GMP_CHECK_ASM_ALIGN_LOG): Generate
+ ALIGN_LOGARITHMIC setting, not a full ALIGN definition.
+ (GMP_CHECK_ASM_ALIGN_FILL_0x90): New test.
+ * configure.in [x86-*-*]: Use GMP_CHECK_ASM_ALIGN_FILL_0x90.
+ * mpn/asm-defs.m4 (ALIGN): New macro.
+ * mpn/x86/x86-defs.m4 (ALIGN): Remove supplementary definition.
+
+ * tune/*: Plain "unsigned" for speed_cyclecounter.
+ * configure.in: Use tune/sparcv9.asm for 32 and 64 bit modes.
+ * tune/sparc64.asm: Remove file.
+
+2000-06-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/k7/mmx/copyi.asm: Use `testb' instead of `test'.
+ * mpn/x86/k7/mmx/copyd.asm: Likewise.
+
+ * mpn/x86/k7/mmx/lshift.asm: Avoid using `~' (Solaris as problems).
+ * mpn/x86/k7/mmx/rshift.asm: Likewise.
+ * mpn/x86/k6/aors_n.asm: Likewise.
+ * mpn/x86/k7/aors_n.asm: Likewise.
+ * mpn/x86/k7/mul_basecase.asm: Likewise.
+
+2000-06-13 Torbjorn Granlund <tege@swox.com>
+
+ * tune/sparcv9.asm: Tune, deleting two instructions.
+
+ * tune/alpha.asm: Update to unified speed_cyclecounter.
+
+2000-06-11 Kevin Ryde <kevin@swox.se>
+
+ * mpz/tests/reuse.c (FAIL): Add a K&R version.
+ Use _PROTO on some typedefs.
+ * mpz/tests/t-misc.c: Add gmp-impl.h for "const".
+
+ * configure.in: Rework mpn multi-function and optional files.
+ Names standardized, no need for explicit declarations, all picked
+ up in one $path traversal.
+ * doc/configuration: Updates.
+
+ * tests/rand/t-rand.c (main): Change "usage" to work with K&R.
+
+2000-06-10 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/mmx/popham.asm, mpn/x86/p6/mmx/popham.asm,
+ mpn/x86/p6/p3mmx/popham.asm, mpn/x86/p6/diveby3.asm: Add
+ MULFUNC_PROLOGUE for correct HAVE_NATIVE_* matching.
+
+ * mpn/x86/x86-defs.m4 (cmov_bytes_tttn): Use eval() on expressions.
+ (cmov_available_p): Switch to list CPUs which do have cmov.
+ * mpn/x86/p6/sqr_basecase.asm, mpn/x86/k6/sqr_basecase.asm,
+ mpn/x86/k7/sqr_basecase.asm: Use eval() for multiplication.
+ * mpn/x86/README.family: Various updates.
+
+2000-06-09 Kevin Ryde <kevin@swox.se>
+
+ * mpbsd/tests/allfuns.c (main): Call exit() instead of doing return.
+
+ * doc/tasks.html, doc/projects.html: Moved from projects directory.
+ * doc/multiplication: New file.
+ * Makefile.am (EXTRA_DIST): Remove projects, add doc.
+
+ * Makefile.am (libgmp_la_LIBADD, libmp_la_LIBADD): Remove
+ unnecessary -lm.
+ * INSTALL: Remove -lm from instructions.
+ * demos/Makefile.am (qcn_LDADD): Add -lm.
+
+ * tune/*: Add measuring for mpn_divrem_2 and modlimb_invert,
+ improve addsub_n. Switch to unified speed_cyclecounter.
+ * configure.in: Update configs for speed_cyclecounter.
+
+ * gmp-impl.h (MP_LIMB_T_MAX, MP_LIMB_T_HIGHBIT): New macros.
+ * mpn/generic/diveby3.c, mpn/generic/mul_n.c, mpn/generic/gcd.c,
+ tune/speed.c, mpn/tests/ref.c: Use them.
+
+ * mpn/tests/spinner.c: Remove setitimer, just alarm is enough.
+ * configure.in (AC_CHECK_FUNCS): Remove setitimer.
+ * mpn/tests/x86call.asm: Start with junk in %eax, %ecx, %edx.
+ * mpn/tests/ref.[ch] (refmpn_addsub_nc): New function.
+ * mpn/tests/try.c: Add some support for mpn_addsub_nc.
+ * mpn/tests/Makefile.am (EXTRA_PROGRAMS): Remove addsub_n and
+ addsub_n_2 which don't currently build.
+ * mpn/tests/copy.c: Test MPN_COPY_INCR, not __gmpn_copy.
+
+ * tests/rand/Makefile.am (libstat_la_LIBADD): Add -lm, no longer on
+ libgmp.la.
+ (findlc_LDADD): Use libstat.la.
+ (AUTOMAKE_OPTIONS): Use ansi2knr.
+
+2000-06-08 Torbjorn Granlund <tege@swox.com>
+
+ * configure.in (alpha*-*-osf*): Default `flavour' to ev6 for ev6 and
+ higher.
+ (alpha*-*-*): Likewise.
+ (alpha*-*-osf*: gmp_optcflags_cc): Move -arch/-tune flags from
+ gmp_xoptcflags_gcc.
+
+ * mpn/Makefile.am (TARG_DIST): Add pa64w.
+
+ * longlong.h: Wrap 64-bit hppa code in #ifndef LONGLONG_STANDALONE.
+
+2000-06-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/remove.c: Fail for `src' being zero.
+
+ * mpz/tests/reuse.c: Test more functions.
+ (FAIL): New define.
+
+ * mpz/tests/t-powm.c: Loop during operand generation while they
+ are mathematically ill-defined (used to just skip such tests).
+
+ * mpz/powm.c (mpz_redc): Clean up argument declarations.
+
+ * configure.in (gmp_cflags64_gcc): Don't add bogus -mWHAT option.
+ (sparcv9-*-solaris2.[7-9]], gmp_cflags64_gcc):
+ Inherit from previous gmp_cflags64_gcc; pass `-m64 -mptr64'.
+ (ia64*-*-*): New.
+
+ * mpn/generic/dump.c: Make it work when an mp_limb_t is not `long'.
+
+ * mpf/set_prc.c: MPN_COPY => MPN_COPY_INCR.
+
+2000-06-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n):
+ Use mpn_incr_u for final carry propagation.
+
+ * mpz/tests/t-gcd.c: Add calls to mpz_gcdext with argument t == NULL.
+
+ * mpz/tests/reuse.c: Major rewrite; test many more functions.
+
+ * mpz/powm_ui.c: When exp is 0, change res assign order in order
+ to handle argument overlap.
+ * mpz/powm.c: When exp is 0, change res assign order in order
+ to handle argument overlap. Handle negative exp and mod arguments.
+
+ * mpz/gcdext.c: Rework code after mpn_gcdext call to handle
+ argument overlap.
+
+ * mpz/fdiv_qr.c: Read dividend->_mp_size before calling mpz_tdiv_qr
+ in order to handle argument overlap.
+ * mpz/cdiv_qr.c: Likewise.
+
+ * mpf/tests/reuse.c: Fix typo that effectively disabled `dis_funcs'
+ tests. Clean up test for mpf_ui_div.
+
+2000-06-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/p6/sqr_basecase.asm: New file.
+ * mpn/x86/mod_1.asm: Avoid one conditional jump.
+ * mpn/x86/p6/gmp-mparam.h: Update thresholds, #ifndef UMUL_TIME
+ and UDIV_TIME, add COUNT_TRAILING_ZEROS_TIME.
+
+ * mp_minv_tab.c: New file.
+ * Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it.
+ * gmp-impl.h (modlimb_invert): New macro.
+ * mpz/powm.c: Remove mpz_dmprepare, use modlimb_invert instead.
+ * mpn/generic/bdivmod.c: Use modlimb_invert instead of a loop.
+ * mpn/generic/gcd.c: Inline two small mpn_bdivmod calls, use
+ MPN_COPY_INCR not MPN_COPY in one place.
+
+2000-06-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/tests/reuse.c (dsi_funcs): Add mpf_mul_2exp and mpf_div_2exp.
+ (main): Clean up test for mpf_div_ui.
+
+ * mpf/mul_2exp.c: Correct criterion for whether to use mpn_lshift or
+ mpn_rshift. MPN_COPY => MPN_COPY_INCR. Coerce the two assignments to
+ r->_mp_size.
+
+ * mpf/div_2exp.c: Use mpn_rshift instead of mpn_lshift when overlap
+ so requires. MPN_COPY => MPN_COPY_INCR.
+
+ * mpf/tests/t-dm2exp.c: Correct type of res_prec.
+
+2000-06-04 Kevin Ryde <kevin@swox.se>
+
+ * mpz/bin_uiui.c: Fix result for n==0 and n==k.
+ * mpz/bin_ui.c: Fix result for k>n, add support for n<0.
+ * gmp.texi (Number Theoretic Functions): Update mpz_bin_ui to
+ note n<0 is supported.
+
+ * mpz/tests/t-misc.c: New file.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add it.
+
+2000-05-31 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.* (FLAG_R_OPTIONAL): New option for routines, use on
+ mpn_gcd_1 and mpn_mul_basecase.
+ * tune/README: Update.
+
+ * tune/alpha.asm: New file, by Torbjorn.
+ * tune/Makefile.am (EXTRA_DIST): Add it.
+ * configure.in (alpha*-*-*): Use it.
+
+2000-05-31 Linus Nordberg <linus@swox.se>
+
+ * doc/configuration: New file.
+
+2000-05-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_basecase.c: Call mpn_mul_2 and mpn_addmul_2
+ if available. Don't include longlong.h.
+
+ * doc/isa_abi_headache: New file.
+
+2000-05-30 Linus Nordberg <linus@swox.se>
+
+ * configure.in (NM): Use AC_PROG_NM rather than AC_CHECK_TOOL to
+ find `nm'. (AC_PROG_NM comes with Libtool and is needed to get
+ the `-B' option (BSD compatible output) included in $NM.)
+ (AR): Use AC_CHECK_PROG rather than AC_CHECK_TOOL to find `ar'.
+ (Now that NM isn't a cross compilation tool, don't give the
+ impression that we know how to cross compile.)
+ (CCAS): Remove spurious comment.
+
+ * gmp.texi (Notes for Particular Systems): Remove comment about
+ using GNU `nm' on AIX since system nm now works.
+
+2000-05-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/power/mul_1.s: Remove [PR] from first word in function
+ descriptor.
+ * mpn/power/addmul_1.s: Likewise.
+ * mpn/power/submul_1.s: Likewise.
+
+2000-05-28 Kevin Ryde <kevin@swox.se>
+
+ * configure.in, tune/*: Change pentium rdtsc cycle scheme to
+ HAVE_SPEED_CYCLECOUNTER and SPEED_CYCLECOUNTER_OBJS.
+ * tune/pentium.asm: Renamed and converted from rdtsc.asm.
+ * tune/sparcv9.asm: New file, by Torbjorn.
+ * tune/sparc64.asm: New file.
+ * tune/tuneup.c: Put a limit on gcdext search.
+
+ * gmp.h (mp_set_memory_functions): Add extern "C".
+ * mp.h (__GNU_MP__): Bump to "3".
+ * mpz/add.c,mul.c,powm.c,sub.c,sqrtrem.c,tdiv_qr.c [BERKELEY_MP]:
+ Include mp.h for mpbsd compile.
+ * mpz/gcd.c: Ditto, and remove _mpz_realloc declaration.
+
+ * gmp.texi (Integer Functions): Flatten @subsections into @sections.
+ (Floating-point Functions): Ditto.
+ (Integer Random Numbers): Split from miscellaneous as a sep section.
+ (Installing GMP): Make nodes for the sections.
+ Add more "@cindex"s.
+ (Known Build Problems): Remove SunOS get_d problem, believed fixed.
+ (Notes for Particular Systems): Remove HPPA note since now PIC.
+ (References): URL for Jebelean.
+
+2000-05-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64w: New directory, contents based on corresponding mpn/pa64
+ files.
+ * configure.in (hppa2.0w-*-*): New.
+ * mpz/tests/io.c (_INCLUDE_POSIX_SOURCE): Define when __hpux before
+ including stdio.h.
+ * gmp-impl.h: Always define DItype and UDItype.
+
+2000-05-27 Kevin Ryde <kevin@swox.se>
+
+ * tune/common.c (speed_measure): Correction to array sorting,
+ better diagnostic when measuring fails.
+ * tune/time.c: Add microsecond accurate getrusage method.
+
+ * tune/time.c (speed_cpu_frequency_processor_info): New function.
+ * configure.in (AC_CHECK_FUNCS): Add processor_info.
+
+2000-05-26 Linus Nordberg <linus@swox.se>
+
+ * gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3
+ if using GNU nm.
+
+2000-05-26 Torbjorn Granlund <tege@swox.com>
+
+ * tune/tuneup.c (SIGNED_TYPE_MAX): Shift `-1' instead of `1' to
+ avoid signed overflow.
+
+ * demos/pexpr.c (setup_error_handler): Don't call sigaltstack on
+ Unicos.
+
+2000-05-25 Torbjorn Granlund <tege@swox.com>
+
+ * insert-dbl.c: Work around GCC 2.8 bug.
+ * extract-dbl.c: Likewise.
+
+ * config.sub: Allow i586, i686, i786 again.
+
+ * config.guess: Use X86CPU for lots more systems.
+
+2000-05-25 Linus Nordberg <linus@swox.se>
+
+ * mpbsd/tests/dummy.c (main): Call exit() instead of doing return
+ (some old SysV machines don't get this correct, I've heard.)
+
+2000-05-25 Kevin Ryde <kevin@swox.se>
+
+ * mpf/iset_str.c: Initialize _mp_size and _mp_exp to 0, in case no
+ digits in string, so it's the same as a separate init and set_str.
+
+2000-05-24 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/reuse.c: Use mpz_random2 instead of mpz_random.
+
+ * mpz/divexact.c: Read pointers after reallocation.
+ Compare `quot' and `den' instead of `qp' and `dp' in overlap check.
+ Use MPN_COPY_INCR for copying from `np'.
+
+ (*-*-aix4.[3-9]*): Disable shared libs just for problematic AIX
+ versions.
+ * configure.in (*-cray-unicos*): Disable asm syntax checking; set
+ compiler explicitly.
+ * configure.in (hppa*-*-*): Remove code disabling shared libs.
+
+2000-05-24 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): Don't report progress to user
+ when doing the AIX specific test to avoid "nested output".
+
+2000-05-22 Kevin Ryde <kevin@swox.se>
+
+ * mp.h (_PROTO): Copy from gmp.h, use on prototypes.
+ Add extern "C" too.
+ * mpbsd/tests/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr.
+ * mpbsd/tests/allfuns.c: Don't execute mout, just link to it.
+ (main): ANSI style definition.
+
+ * gmp-impl.h (MP_BASE_AS_DOUBLE): Change the expression to
+ something that works on SunOS native cc. Seems to fix the
+ mp*_get_d problems.
+
+ * mpn/tests/ref.c (refmpn_strip_twos): Use MPN_COPY_INCR.
+ * mpn/tests/Makefile.am: Let .asm.o rules work with absolute $srcdir.
+
+2000-05-21 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k7/sqr_basecase.asm: Replace file with K7 specific code.
+ * mpn/x86/k7/README: Update.
+ * mpn/x86/k7/gmp-mparam.h: Tune thresholds.
+ (COUNT_TRAILING_ZEROS_TIME): New define.
+ * mpn/x86/k6/gmp-mparam.h: Ditto.
+
+ * mpn/x86/pentium/mmx/popham.asm: New file (include_mpn of K6 version).
+ * mpn/x86/p6/diveby3.asm: New file (include_mpn of P5 version).
+ * mpn/x86/p6/mmx/popham.asm: New file (include_mpn of K6 version).
+ * mpn/x86/p6/p3mmx/popham.asm: New file (include_mpn of K7 version).
+ * configure.in (pentium3-*-*): Add p3mmx to $path.
+
+ * gmp.texi (Integer Arithmetic): Clarify mpz_jacobi op2; add
+ mpz_*_kronecker_*.
+ (Miscellaneous Integer Functions): Add mpz_odd_p and mpz_even_p.
+ (Low-level Functions): Put mpn_divmod_1 with mpn_divrem_1 and note
+ it's now a macro.
+ (References): Add Henri Cohen.
+
+ * gmp.h (mpn_addmul_1c, mpn_divrem_1c, mpn_mod_1c, mpn_mul_1c,
+ mpn_submul_1c): Add prototypes.
+ (mpz_odd_p, mpz_even_p): New macros.
+
+ * mpn/asm-defs.m4 (m4wrap_prepend): New macro.
+ (m4_error): Use it.
+ (m4_not_for_expansion): Corrections to OPERATION symbols.
+ More comments about variations between m4 versions.
+ * mpn/x86/x86-defs.m4 (PROLOGUE): Use m4wrap_prepend (fixes error
+ exit under BSD m4, previously m4_error printed the message but the
+ exit code was 0).
+
+ * gmp.h (mpn_divmod_1): Change to a macro calling mpn_divrem_1.
+ * mpn/generic/divrem_1.c: Move divmod_1.c code to here, make it
+ static and call it __gmpn_divmod_1_internal.
+ * mpn/generic/divmod_1.c: Remove file.
+ * configure.in (gmp_mpn_functions): Remove divmod_1.
+ * mpn/asm-defs.m4 (define_mpn): Remove divmod_1 and divmod_1c.
+ * compat.c (mpn_divmod_1): Add compatibility function.
+ * tune/*: Remove mpn_divmod_1 measuring (leave just divrem_1).
+
+ * acconfig.h (HAVE_NATIVE_mpn_*): Add some missing carry-in
+ variants, remove divmod_1.
+
+ * mpn/x86/diveby3.asm: Use imul, update comments.
+
+ * demos/qcn.c: New file.
+ * demos/Makefile.am (EXTRA_PROGRAMS): Add it.
+
+ * mpz/tests/t-jac.c: New file.
+ * mpz/tests/Makefile.am (check_PROGRAMS): Add it. Enable ansi2knr.
+
+ * mpz/kronsz.c: New file.
+ * mpz/kronuz.c: New file.
+ * mpz/kronzs.c: New file.
+ * mpz/kronzu.c: New file.
+ * mpz/Makefile.am (libmpz_la_SOURCES): Add them.
+ * Makefile.am (MPZ_OBJECTS): Add them.
+ * gmp-impl.h (JACOBI_*, MPN_STRIP_LOW_ZEROS_NOT_ZERO): New macros.
+ * gmp.h (mpz_*_kronecker_*): New defines and prototypes.
+
+ * mpn/generic/jacbase.c: New file.
+ * mpn/generic/mod_1_rs.c: New file.
+ * configure.in (gmp_mpn_functions): Add them.
+ * gmp.h (mpn_jacobi_base, mpn_mod_1_rshift): New defines and
+ prototypes.
+ * longlong.h (COUNT_TRAILING_ZEROS_TIME): New define.
+ * mpn/tests/ref.c (refmpn_mod_1_rshift): New function.
+ * mpn/tests/try.c: Add mpn_mod_1_rshift.
+ * tune/*: Add measuring for mpn_jacobi_base.
+
+ * acinclude.m4 (GMP_FINISH): Add ifdefs to allow multiple
+ inclusion of config.m4.
+ (GMP_PROG_M4): Put "good" message through to config.log.
+
+ * mpz/powm.c: Use a POWM_THRESHOLD for where redc stops.
+ * tune/*: Add mpz_powm measuring, and tune POWM_THRESHOLD.
+ * gmp-impl.h [TUNE_PROGRAM_BUILD] (POWM_THRESHOLD): Conditional
+ redefinition for use when tuning.
+
+ * mpz/powm_ui.c: Use DIVIDE_BY_ZERO.
+
+ * mpz/iset_str.c: Initialize _mp_size to 0, in case no digits in
+ string; this makes it the same as a separate init and set_str.
+
+2000-05-20 Kevin Ryde <kevin@swox.se>
+
+ * mpn/asm-defs.m4: Note &,|,^ aren't bitwise in BSD m4 eval().
+ * mpn/x86/k6/sqr_basecase.asm: Use "%" not "&" in m4 eval()s.
+
+ * mpn/x86/x86-defs.m4 (Zdisp): Yet more instruction forms.
+
+2000-05-19 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_CC_64BIT): Don't use shell variable
+ `ac_compile' for our own compile command string since other
+ Autoconf macros may depend on it.
+
+2000-05-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Fix
+ carry propagation in final coefficient additions.
+
+2000-05-18 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Set NM before looking for compiler since
+ GMP_CHECK_CC_64BIT needs it.
+
+ * acinclude.m4 (GMP_CHECK_CC_64BIT): Don't execute on target.
+ (GMP_PROG_CC_FIND): Before checking if the compiler knows how to
+ produce 64-bit code, verify that it works at all. The background
+ is that /usr/ucb/cc on Solaris 7 successfully compiles in 64-bit
+ mode but fails when doing final link.
+ (GMP_PROG_CC_WORKS): Report to user what's happening.
+
+2000-05-17 Linus Nordberg <linus@swox.se>
+
+ * config.guess: Use X86CPU for x86 Cygwin.
+
+2000-05-16 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/p6/mmx/divrem_1.asm: New file.
+ * mpn/x86/p6/mmx/mod_1.asm: New file.
+ * mpn/x86/p6/README: Update.
+ * mpn/x86/divrem_1.asm: Update comments.
+ * mpn/x86/mod_1.asm: Ditto.
+
+2000-05-14 Kevin Ryde <kevin@swox.se>
+
+ * tune/speed.h: Run gcd functions on a set of data.
+
+ * mpn/tests/try.c: New file.
+ * mpn/tests/try.h: New file.
+ * mpn/tests/spinner.c: New file.
+ * mpn/tests/trace.c: New file.
+ * mpn/tests/x86call.asm: New file.
+ * mpn/tests/x86check.c: New file.
+ * mpn/tests/ref.c (refmpn_hamdist): Allow size==0.
+ (refmpn_gcd): New function, and other additions supporting it.
+ * mpn/tests/ref.h: More prototypes.
+ * mpn/tests/Makefile.am: Add try program, use ansi2knr.
+
+ * mpn/x86/k7/mmx/popham.asm: New file.
+ * mpn/x86/k6/mmx/popham.asm: New file.
+ * mpn/x86/k6/sqr_basecase.asm: Unroll the addmul, for approx 1.3x
+ speedup above 15 limbs.
+ * mpn/x86/k7/README: Update.
+ * mpn/x86/k6/README: Update, and add notes on plain K6 and pre-CXT
+ K6-2 problems.
+ * configure.in (k6*-*-*, athlon-*-*): Add popham.
+
+ * mpn/x86/pentium/diveby3.asm: New file.
+ * mpn/x86/pentium/README: Update.
+
+ * gmp.texi (Installing GMP): Add note on bad OpenBSD 2.6 m4.
+ (Reporting Bugs): Ask for config.m4 if asm file related.
+ (I/O of Rationals): New section, add mpq_out_str.
+ (References): Add url for on-line gcc manuals.
+ A few node and menu updates.
+
+ * INSTALL: Better command line argument checking for test progs.
+ Change MP -> GMP.
+
+ * configure.in (WANT_ASSERT, USE_STACK_ALLOC, HAVE_PENTIUM_RDTSC):
+ Put descriptions here, not in acconfig.h.
+ (CALLING_CONVENTIONS_OBJS): New AC_SUBST (for mpn/tests/try).
+ (HAVE_CALLING_CONVENTIONS): New AC_DEFINE.
+ (AC_CHECK_HEADERS): Add sys/time.h.
+ (AC_CHECK_FUNCS): Add getpagesize, setitimer.
+ (KARATSUBA_SQR_THRESHOLD): Strip trailing comments from the
+ #define when passing through to config.m4.
+ * acconfig.h (PACKAGE, VERSION, WANT_ASSERT, USE_STACK_ALLOC,
+ HAVE_PENTIUM_RDTSC): No need for #undefs, autoheader gets them
+ from configure.in.
+
+ * acinclude.m4 (GMP_PROG_M4): Check for broken OpenBSD 2.6 m4
+ eval(), put messages into config.log.
+ * mpn/asm-defs.m4: Add notes and test for OpenBSD 2.6 m4.
+
+ * mpq/out_str.c: New file.
+ * mpq/Makefile.am (libmpq_la_SOURCES): Add it.
+ * Makefile.am (MPQ_OBJECTS): Ditto.
+ * gmp.h (mpq_out_str): New define and prototype.
+
+2000-05-12 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (CONFIG_TOP_SRCDIR): Fix to use $srcdir not
+ $top_srcdir (which doesn't exist).
+ * acinclude.m4 (GMP_C_ANSI2KNR): Fix setting U=_.
+ * gmp-impl.h (mpn_com_n, MPN_LOGOPS_N_INLINE): Fix missing "do"
+ (not currently used, probably no ill effect anyway).
+
+2000-05-11 Torbjorn Granlund <tege@swox.com>
+
+ * randraw.c (lc): Major overhaul (pending rewrite).
+ (_gmp_rand): Rewrite.
+
+2000-05-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/convert.c: Call free via _mp_free_func.
+ * mpf/tests/t-conv.c: Likewise.
+
+ * memory.c: Add code enabled for DEBUG that adds special patterns
+ around allocated blocks.
+
+2000-05-05 Linus Nordberg <linus@swox.se>
+
+ * gmp.texi (Miscellaneous Float Functions): Correct parameter list
+ for mpf_urandomb().
+
+ * configure.in: Invoke AC_REVISION.
+
+2000-05-05 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi: Use @dircategory and @direntry.
+ (Installing GMP): Clarification for --target, updates on SunOS
+ problems.
+ (Integer Arithmetic): Add mpz_mul_si.
+ (Initializing Rationals): Add mpq_swap.
+ (Assigning Floats): Add mpf_swap.
+ (Low-level Functions): Add mpn_divexact_by3c, and details of what
+ the calculation actually gives.
+ (Low-level Functions): Note extra space needed by mpn_gcdext,
+ clarify the details a bit.
+
+ * compat.c: New file, entry points for upward binary compatibility.
+ (mpn_divexact_by3): Compatibility function.
+ * Makefile.am (libgmp_la_SOURCES): Add compat.c.
+
+ * mpn/tests/ref.c: Rearrange macros for ansi2knr.
+ (div1): Renamed from div to avoid library function.
+ (refmpn_divexact_by3c, refmpn_gcd_1, refmpn_popcount,
+ refmpn_hamdist): New functions.
+ * mpn/tests/ref.h: Add extern "C", add new prototypes.
+
+ * gmp.h (gmp_randinit, etc): Add extern "C".
+ (_mpq_cmp_ui): Fix prototype name from mpq_cmp_ui.
+ (mpn_divexact_by3): Now a macro calling mpn_divexact_by3c.
+ (mpn_divexact_by3c): New prototype and define.
+
+ * mpn/x86/diveby3.asm: Change to mpn_divexact_by3c.
+ * mpn/x86/k6/diveby3.asm: Ditto.
+ * mpn/generic/diveby3.c: Ditto.
+ * mpn/asm-defs.m4: Ditto on the define_mpn.
+ * acconfig.h (HAVE_NATIVE_mpn_divexact_by3c): New define.
+
+ * mpq/swap.c: New file, derived from mpz/swap.c.
+ * mpf/swap.c: Ditto.
+ * mpq/Makefile.am: Add swap.c.
+ * mpf/Makefile.am: Ditto.
+ * Makefile.am: Add two new "swap.lo"s.
+
+ * mpn/x86/k6/mmx/com_n.asm: Fix an addressing bug (fortunately
+ this code hasn't been used anywhere yet).
+
+ * mpn/x86/k7/mmx/divrem_1.asm: New file.
+ * mpn/x86/k7/mmx/mod_1.asm: New file.
+ * mpn/x86/k7/diveby3.asm: New file.
+ * mpn/x86/k7/README: Update.
+
+ * mpn/x86/k7/aorsmul_1.asm: Use new cmovCC, no object code change.
+ * mpn/x86/k7/mul_basecase.asm: Ditto.
+ * mpn/x86/p6/aorsmul_1.asm: Ditto.
+
+ * mpn/x86/x86-defs.m4 (defframe_empty_if_zero): Eval the argument.
+ (cmovCC): New macros, replacing individual cmovCC_reg_reg forms.
+ (Zdisp): Recognise more instructions.
+ (shldl,etc): Use m4_instruction_wrapper().
+ (ASSERT, movl_text_address): New macros.
+
+ * mpn/asm-defs.m4: Add remarks on SunOS /usr/bin/m4 and new
+ OpenBSD m4.
+ (m4_assert_numargs_internal_check): Remove a spurious parameter.
+ (m4_empty_if_zero): Eval the argument.
+ (m4_assert, m4_assert_numargs_range, m4_config_gmp_mparam,
+ m4_instruction_wrapper): New macros.
+
+2000-05-04 Linus Nordberg <linus@swox.se>
+
+ * gmp.texi (Reporting Bugs): Be explicit about output from running
+ a command.
+
+2000-05-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/bz_divrem_n.c (mpn_bz_divrem_n): Handle non-zero return
+ from first mpn_bz_div_3_halves_by_2 call.
+ (mpn_bz_divrem_aux): Likewise.
+
+2000-04-30 Kevin Ryde <kevin@swox.se>
+
+ * tune/* (GCD_ACCEL_THRESHOLD, GCDEXT_THRESHOLD): Tune these.
+
+ * mpn/generic/gcdext.c (GCDEXT_THRESHOLD): Rename from THRESHOLD,
+ use with >=, adjust default to 17 accordingly.
+ Use new *_SWAP macros.
+
+ * mpn/generic/gcd.c (GCD_ACCEL_THRESHOLD): Rename from
+ ACCEL_THRESHOLD, use with >=, adjust default to 5 accordingly.
+ Use new *_SWAP macros.
+
+ * mpf/get_str.c, mpf/set_str.c, mpf/sub.c, mpz/add.c, mpz/ior.c,
+ mpz/and.c, mpz/sub.c, mpz/xor.c, mpz/ui_pow_ui.c,
+ mpn/generic/mul.c: Use new *_SWAP macros.
+
+ * stack-alloc.h: Add extern "C" around prototypes.
+
+ * gmp-impl.h: (MP_PTR_SWAP, etc): New macros.
+ (_mp_allocate_func, etc): Use _PROTO.
+ [TUNE_PROGRAM_BUILD]: More changes in tune program build part.
+
+2000-04-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/pa64/add_n.s: Add `,entry' to export directive.
+ * mpn/pa64/addmul_1.S, mpn/pa64/lshift.s, mpn/pa64/mul_1.S,
+ mpn/pa64/rshift.s, mpn/pa64/sub_n.s, mpn/pa64/submul_1.S,
+ mpn/pa64/umul_ppmm.S: Likewise.
+ * mpn/hppa/hppa1_1/udiv_qrnnd.S: New name for udiv_qrnnd.s.
+ Add PIC support.
+
+2000-04-29 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h [TUNE_PROGRAM_BUILD] (TOOM3_MUL_THRESHOLD_LIMIT): New
+ define.
+ * mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Use
+ TOOM3_MUL_THRESHOLD_LIMIT, not a hard coded 500.
+
+ * memory.c: Use <stdlib.h> for malloc etc, and use _PROTO.
+ * stack-alloc.c: Don't use C++ reserved word "this".
+ * urandom.h: Put extern "C" around prototypes.
+ * mpz/powm.c: Switch a couple of parameters to "const", which they
+ are, to satisfy g++.
+
+ * randraw.c, stack-alloc.c, mpbsd/mout.c, mpbsd/mtox.c: Add casts to
+ help g++.
+
+ * stack-alloc.c: Provide dual ANSI/K&R function definitions.
+ * mpz/addmul_ui.c,get_d.c,inp_str.c,perfpow.c,powm.c,pprime_p.c,
+ rrandomb.c,set_str.c,ui_pow_ui.c: Ditto.
+ * mpf/integer.c,set_str.c: Ditto.
+ * mpbsd/min.c,xtom.c: Ditto.
+ * mpn/generic/bz_divrem_n.c,dump.c,gcd_1.c,get_str.c,hamdist.c,
+ popcount.c,random.c,random2.c,set_str.c: Ditto.
+
+ * rand.c: Use <stdio.h> for NULL.
+ * mpz/gcd_ui.c,gcdext.c,mul.c,perfpow.c,powm_ui.c,root.c,sqrt.c,
+ sqrtrem.c: Ditto
+ * mpf/sqrt.c,sqrt_ui.c: Ditto.
+ * mpn/generic/perfsqr.c,sqrtrem.c: Ditto.
+
+ * gmp-impl.h (NULL, malloc, realloc, free): Don't define/declare.
+ (extern "C"): Add around function prototypes.
+ (mpn_kara_mul_n, mpn_kara_sqr_n, mpn_toom3_mul_n, mpn_toom3_sqr_n):
+ Add prototypes.
+ [TUNE_PROGRAM_BUILD] (FIB_THRESHOLD): Add necessary redefinitions for
+ use by tune program.
+ * mpn/generic/mul_n.c: Remove mpn_toom3_mul_n prototype.
+
+ * acinclude.m4 (GMP_C_ANSI2KNR): New macro.
+ (GMP_CHECK_ASM_MMX, GMP_CHECK_ASM_SHLDL_CL): Fix to use
+ $gmp_cv_check_asm_text which is what GMP_CHECK_ASM_TEXT sets.
+ * configure.in (GMP_C_ANSI2KNR): Use this instead of AM_C_PROTOTYPES,
+ for reasons described with its definition.
+
+ * demos/Makefile.am (ansi2knr): Use $(top_builddir) nor $(top_srcdir).
+
+ * mpz/fib_ui.c (FIB_THRESHOLD): Rename from FIB_THRES, for consistency.
+ (FIB_THRESHOLD): Conditionalize so gmp-mparam.h can define a value.
+ (mpz_fib_bigcase): Use >= FIB_THRESHOLD, same as main mpz_fib_ui.
+ * tune/tuneup.c,Makefile.am (FIB_THRESHOLD): Tune this.
+
+ * configure.in (*-*-aix* gmp_m4postinc): Fix setting (don't overwrite
+ a value just stored).
+
+2000-04-26 Kevin Ryde <kevin@swox.se>
+
+ * mpn/sparc32/udiv_fp.asm: Use mpn_udiv_qrnnd macro.
+ * mpn/sparc32/udiv_nfp.asm: Ditto.
+ * mpn/sparc32/v8/supersparc/udiv.asm: Ditto.
+ * mpn/sparc32/umul.asm: Name the function mpn_umul_ppmm.
+ * mpn/sparc32/v8/umul.asm: Ditto.
+ * mpn/powerpc32/umul.asm: Ditto.
+
+ * mpn/x86/syntax.h: Remove file, since now unused.
+
+ * configure.in (x86): Remove -DBROKEN_ALIGN and -DOLD_GAS
+ previously used by .S files.
+ (x86 extra_functions): Add udiv and umul.
+ (GMP_PROG_M4): Use this instead of AC_CHECK_PROG(M4,m4,...)
+ (HAVE_NATIVE_*): Loosen up the regexp to "PROLOGUE.*" so as to
+ accept PROLOGUE_GP on alpha.
+
+ * acconfig.h (HAVE_NATIVE_mpn_umul_ppmm, udiv_qrnnd, invert_limb):
+ New template defines.
+ * mpn/asm-defs.m4 (mpn_umul_ppmm, mpn_udiv_qrnnd): New define_mpn()s.
+ * longlong.h (umul_ppmm, udiv_qrnnd): Use a library version if
+ it's available and an asm macro isn't.
+ * gmp-impl.h (invert_limb): Ditto.
+
+ * gmp-impl.h (ASSERT_NOREALLOC): Not a good idea, remove it.
+
+ * acinclude.m4 (GMP_PROG_M4): New macro.
+
+2000-04-25 Linus Nordberg <linus@swox.se>
+
+ * gmp.texi (Random State Initialization): Correct arguments to
+ `gmp_randinit'.
+
+ * acinclude.m4 (GMP_VERSION): Change `eval' --> `m4_eval'. Fix
+ from Kevin.
+ * aclocal.m4: Regenerate.
+
+2000-04-25 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/aors_n.asm: Remove parentheses around an immediate that
+ Solaris "as" doesn't like, change by Torbjorn.
+
+2000-04-24 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (AC_CHECK_FUNCS): Add strtoul.
+
+ * mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Bigger
+ array for karatsuba temporary space for tune program build.
+ (mpn_toom3_sqr_n) Remove an unused variable.
+
+ * demos/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
+ Add "allprogs:" pseudo-target.
+ * demos/factorize.c, demos/isprime.c: Switch to ANSI functions,
+ rely on ansi2knr.
+
+ * gmp.texi (Getting the Latest Version of GMP): Add reference to
+ ftp.gnu.org mirrors list.
+ * INSTALL: Add arg count check to example programs.
+
+ * mpn/x86/*/*.asm: Convert to FORTRAN ... or rather to
+ FORTRAN-style "C" commenting to support Solaris "as".
+ * mpn/x86/x86-defs.m4: Ditto, and add another Zdisp insn.
+ * mpn/asm-defs.m4 (C): Update comments.
+ * mpn/x86/README.family: Add a note on commenting, remove
+ description of .S files.
+
+ * mpn/sparc64/addmul_1.asm, mul_1.asm, submul_1.asm: Use
+ include_mpn().
+
+2000-04-23 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Merge with FSF version of April 23.
+
+ * mpn/powerpc32: Use dnl/C instead of `#' for comments.
+
+ * config.guess: Get "model" limit between pentium 2 and pentium3 right.
+ Get rid of code determining `_' prefix; use double labels instead.
+ * config.guess: Partially merge with FSF version of April 22.
+ (Don't bring over NetBSD changes for now.)
+
+2000-04-23 Kevin Ryde <kevin@swox.se>
+
+ * tune/Makefile.am, tune/README, tune/common.c, tune/rdtsc.asm,
+ tune/speed.c, tune/speed.h, tune/time.c, tune/tuneup.c: New files.
+ * tune/Makefile.in: New file, generated from Makefile.am.
+
+ * gmp-impl.h (ASSERT_NOREALLOC,TMP_ALLOC_LIMBS): New macros.
+ [TUNE_PROGRAM_BUILD] Further mods for tune program builds.
+
+ * mpz/Makefile.am: Add -DOPERATION_$* for new mul_siui.c.
+ Add rules to build mul_si and mul_ui from a common mul_siui.c.
+ * mpz/mul_siui.c: New file, derived from and replacing mul_ui.c.
+ * gmp.h (mpz_mul_si): New prototype and define.
+
+ * mpn/tests/*.c [__i386__] (CLOCK): Don't use floating point in
+ CLOCK because cpp can't handle floats in #if's (TIMES is derived
+ from CLOCK by default).
+
+ * mpn/asm-defs.m4 (include_mpn): New macro.
+ (m4_assert_numargs) Changes to implementation.
+
+ * mpf/Makefile.am: Add -DOPERATION_$* for new integer.c.
+ Remove explicit rules for floor.o etc.
+ * mpf/integer.c: Use OPERATION_$* for floor/ceil/trunc.
+
+ * mpn/Makefile.am: Put "tests" in SUBDIRS.
+ * mpn/tests/Makefile.am: New file providing rules to build test
+ programs, nothing done in a "make all" or "make check" though.
+ * mpn/tests/README: New file.
+
+ * acconfig.h (HAVE_PENTIUM_RDTSC): New define.
+
+ * configure.in (x86): Rearrange target cases.
+ Add mulfunc aors_n and aorsmul_1 for x86 and pentium (now all x86s).
+ Remove asm-syntax.h generation not needed.
+ Remove now unused family=x86.
+ (sparc) Remove unused family=sparc.
+ (HAVE_PENTIUM_RDTSC) New AC_DEFINE and AM_CONDITIONAL.
+ (AM_C_PROTOTYPES) New test, supporting ansi2knr.
+ (AC_CHECK_HEADERS) Add getopt.h, unistd.h and sys/sysctl.h for
+ tune progs.
+ (AC_CHECK_FUNCS) Add getopt_long, sysconf and sysctlbyname for
+ tune progs.
+ (config.m4 CONFIG_TOP_SRCDIR) Renamed from CONFIG_SRCDIR.
+ (config.m4 asm-defs.m4) Use CONFIG_TOP_SRCDIR and include().
+ (gmp_m4postinc) Use include_mpn().
+ (gmp_links) Omit asm-defs.m4/asm.m4 and gmp_m4postinc's.
+ (MULFUNC_PROLOGUE) Fix regexps so all functions get AC_DEFINE'd.
+ (PROLOGUE) Ditto (native copyi and copyd were unused in gmp 3).
+ (KARATSUBA_SQR_THRESHOLD) Copy from gmp-mparam.h into config.m4.
+ (AC_OUTPUT) Add tune/Makefile, mpn/tests/Makefile.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr.
+ (SUBDIRS): Add tune, reorder directories.
+ (MPZ_OBJECTS): Add mpz/mul_si.lo.
+ (libmp_la_SOURCES): Use this for top-level objects, not .lo's.
+ * ansi2knr.c, ansi2knr.1: New files, provided by automake.
+
+ * mpn/x86/aors_n.asm: Convert add_n.S and sub_n.S to a
+ multi-function aors_n.asm, no object code change.
+ * mpn/x86/pentium/aors_n.asm: Ditto.
+ * mpn/x86/aorsmul_1.asm: Ditto for addmul/submul.
+ * mpn/x86/pentium/aorsmul_1.asm: Ditto.
+
+ * mpn/x86/lshift.asm, mpn/x86/mul_1.asm, mpn/x86/mul_basecase.asm,
+ mpn/x86/rshift.asm: Convert from .S, no object code change.
+ * mpn/x86/pentium/lshift.asm, mpn/x86/pentium/mul_1.asm,
+ mpn/x86/pentium/mul_basecase.asm, mpn/x86/pentium/rshift.asm: Ditto.
+
+ * gmp.texi (Reporting Bugs): Itemize the list of things to include.
+ (Miscellaneous Float Functions): Correct typo in mpf_ceil etc
+ argument types.
+ Change @ifinfo -> @ifnottex for benefit of makeinfo --html.
+ Remove unnecessary @iftex's around @tex.
+
+2000-04-22 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Generalize x86 cpu determination code.
+ Now works on Solaris.
+
+ * mpz/nextprime.c: Rewrite still disabled code.
+
+ * configure.in: Specifically match freebsd[3-9].
+
+2000-04-21 Torbjorn Granlund <tege@swox.com>
+
+ * rand.c: Call mpz_clear for otherwise leaking mpz_t.
+
+ * mpz/pprime_p.c (mpz_probab_prime_p): Merge handling of negative
+ n into code for handling small positive n. Merge variables m and n.
+ After dividing, simply call mpz_millerrabin.
+ (isprime): Local variables now use attribute `long'.
+ (mpz_millerrabin): New static function, based on code from
+ mpz_probab_prime_p.
+ (millerrabin): Now simple workhorse for mpz_millerrabin.
+
+2000-04-19 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__.
+
+2000-04-18 Linus Nordberg <linus@swox.se>
+
+ * NEWS: Add info about shared libraries. Remove reference to
+ gmp_randinit_lc.
+
+2000-04-17 Torbjorn Granlund <tege@swox.com>
+
+ * Version 3.0 released.
+
+ * mpn/arm/add_n.S: New version from Robert Harley.
+ * mpn/arm/addmul_1.S: Likewise.
+ * mpn/arm/mul_1.S: Likewise.
+ * mpn/arm/sub_n.S: Likewise.
+
+ * gmp.h (__GNU_MP_VERSION_PATCHLEVEL): Now 0.
+
+2000-04-17 Linus Nordberg <linus@swox.se>
+
+ * configure.in (hppa2.0*-*-*): Pass `+O3' to cc/c89 in 64-bit mode
+ to avoid compiler bug.
+ (ns32k*-*-*): Fix typo in path. Change by Kevin.
+ (alpha*-*-osf*): New case. Pass assembly flags for architecture
+ to gcc.
+ (alpha*-*-*): Don't bother searching for cc.
+ * configure: Regenerate.
+
+ * Makefile.am (EXTRA_DIST): Add `macos', `.gdbinit'.
+ * Makefile.in: Regenerate.
+ * mpn/Makefile.am (EXTRA_DIST): Add `m88k', `lisp'.
+ * mpn/Makefile.in: Regenerate.
+
+2000-04-16 Kevin Ryde <kevin@swox.se>
+
+ * README: Updates, and don't duplicate the example in INSTALL.
+ * INSTALL: Minor updates.
+ * gmp.texi (Installing MP): Minor edits, restore CC/CFLAGS description.
+
+2000-04-16 Linus Nordberg <linus@swox.se>
+
+ * configure.in (*-*-cygwin*): Select BSD_SYNTAX to avoid
+ .type/.size in PROLOGUE for ELF_SYNTAX. Override ALIGN definition
+ from x86/syntax.h.
+ (gmp_xoptcflags_${CC}): New set of variables, indicating
+ ``exclusive optional cflags''.
+ (most sparcs): Use gmp_xoptcflags instead of gmp_optcflags to
+ ensure that we pass CPU type to older gcc.
+ (CFLAGS): CFLAGS on the command line was spoiled.
+ * configure: Regenerate.
+
+2000-04-16 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Invoke AC_PROG_LIBTOOL directly.
+
+ * acinclude.m4 (GMP_PROG_CC_FIND): Quote source variable when
+ setting CC64 and CFLAGS64.
+ (GMP_PROG_CC_SELECT): Cache result.
+ (GMP_PROG_LIBTOOL): Remove.
+
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2000-04-16 Linus Nordberg <linus@swox.se>
+
+ * tests/rand/t-rand.c (main): Add non-ANSI function declaration.
+ Don't use `const'.
+
+2000-04-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/dump.c: Suppress output of leading zeros.
+
+ * mpz/inp_str.c: Fix memory leakage.
+
+ * mpz/tests/reuse.c (dss_func_division): Add a final 1.
+
+ * longlong.h (alpha count_leading_zeros): Wrap in __MPN.
+ * mpn/alpha/cntlz.asm: Use __gmpn prefix (by means of __MPN).
+
+ * longlong.h (__umul_ppmm, __udiv_qrnnd): Wrap in __MPN.
+ * mpn/alpha/udiv_qrnnd.S: Use __gmpn prefix.
+ * mpn/hppa/udiv_qrnnd.s: Likewise.
+ * mpn/hppa/hppa1_1/udiv_qrnnd.s: Likewise.
+ * mpn/pa64/udiv_qrnnd.c: Likewise (by means of __MPN).
+ * mpn/pa64/umul_ppmm.S: Likewise.
+ * mpn/sparc32/udiv_fp.asm: Likewise (by means of MPN).
+ * mpn/sparc32/udiv_nfp.asm: Likewise (by means of MPN).
+ * mpn/sparc32/v8/supersparc/udiv.asm: Likewise (by means of MPN).
+
+ * mpn/generic/tdiv_qr.c: Work around gcc 2.7.2.3 i386 register handling
+ bug.
+
+ * mpn/generic/tdiv_qr.c: Use udiv_qrnnd instead of mpn_divrem_1
+ when computing appropriate quotient; mpn_divrem_1 writes too
+ many quotient limbs.
+
+ * mpn/asm-defs.m4: invert_normalized_limb => invert_limb.
+ * mpn/alpha/invert_limb.asm: mpn_invert_normalized_limb =>
+ mpn_invert_limb.
+ * gmp.h: Likewise.
+ * gmp-impl.h (alpha specific): invert_normalized_limb => invert_limb;
+ wrap with __MPN.
+ * longlong.h (alpha udiv_qrnnd): Likewise.
+
+2000-04-16 Kevin Ryde <kevin@swox.se>
+
+ * gmp.h (mp_set_memory_functions,mp_bits_per_limb,gmp_errno): Add
+ #defines so the library symbols are __gmp_*.
+ * errno.c: Include gmp.h.
+ * gmp-impl.h (_mp_allocate_func,etc): Add #defines to __gmp_*.
+ (__clz_tab): New #define to __MPN(clz_tab).
+ * stack-alloc.c (__gmp_allocate_func,etc): Change from _mp_*.
+
+ * Makefile.am (libmp_la_DEPENDENCIES): Add some mpz files needed
+ for new mpz_powm (pow in libmp).
+ (EXTRA_DIST): Add projects directory.
+
+ * mpn/*: Change __mpn to __gmpn.
+ * gmp.h (__MPN): Ditto.
+ * stack_alloc.c,stack-alloc.h: Change __tmp to __gmp_tmp.
+
+ * mpn/generic/sb_divrem_mn.c (mpn_sb_divrem_mn): Avoid gcc 2.7.2.3
+ i386 register handling bug (same as previously in mpn_divrem_classic).
+
+ * mpn/generic/divrem.c: Now contains mpn_divrem, which is not an
+ internal function, so remove warning comment.
+
+ * gmp.texi (Compatibility with Version 2.0.x): Source level only.
+
+2000-04-16 Linus Nordberg <linus@swox.se>
+
+ * configure.in (hppa1.0*): Prefer c89 to cc.
+ * configure: Regenerate.
+
+2000-04-15 Linus Nordberg <linus@swox.se>
+
+ * configure.in: If `mpn_path' is set by user on configure command
+ line, use that as path.
+ * configure: Regenerate.
+
+2000-04-15 Linus Nordberg <linus@swox.se>
+
+ * configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no
+ 64-bit compiler was found.
+ * configure: Regenerate.
+
+2000-04-15 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Honor `CC' and `CFLAGS' set by user on configure
+ command line.
+ * acinclude.m4: (GMP_PROG_CC_SELECT): Set CFLAGS if not set already.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2000-04-15 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_PROG_CC_FIND): Remove debug output. Remove
+ commented out code.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+ * configure.in: Make all `-mcpu' options to gcc optional.
+ * configure: Regenerate.
+
+ * tests/rand/Makefile.am: Don't do anything for target 'all'.
+ * tests/rand/Makefile.in: Regenerate.
+
+2000-04-15 Kevin Ryde <kevin@swox.se>
+
+ * README: Small updates.
+ * NEWS: Add some things about 3.0.
+
+ * mpz/Makefile.am (EXTRA_DIST): Remove dmincl.c.
+
+ * Makefile.am: Use -version-info on libraries, not -release.
+
+ * mpz/tdiv_qr.c: Add mdiv function header #ifdef BERKELEY_MP.
+ * mpbsd/Makefile.am: Use mpz/tdiv_qr.c, not mdiv.c.
+ * Makefile.am (MPBSD_OBJECTS): Change mdiv.lo to tdiv_qr.lo.
+ (libmp_la_DEPENDENCIES): Add mp_clz_tab.lo.
+ * mpbsd/mdiv.c: Remove file.
+
+ * config/mt-linux,mt-m68k,mt-m88110,mt-ppc,mt-ppc64-aix,mt-pwr,
+ mt-sprc8-gcc,mt-sprc9-gcc,mt-supspc-gcc,mt-vax,mt-x86,
+ mpn/config/mt-pa2hpux,mt-sprc9,t-oldgas,t-ppc-aix,t-pwr-aix:
+ Remove configure fragments not used since change to autoconf.
+
+ * mpn/generic/bz_divrem_n.c,sb_divrem_mn.c: Add comment that
+ internal functions are changeable and shouldn't be used directly.
+
+2000-04-15 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Remove debug output.
+ * configure: Regenerate.
+
+2000-04-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/tdiv_qr.c: Don't use alloca directly.
+
+ * mpz/tdiv_qr.c: Fix typo.
+ * mpz/tdiv_r.c: Fix typo.
+ * mpz/tdiv_q.c: Fix typo.
+
+ * configure.in: Disable -march=pentiumpro due to apparent compiler
+ problems.
+
+ * mpz/powm.c: Replace with new code from Paul Zimmermann.
+
+ * mpz/tdiv_q.c: Remove debug code.
+
+ * mpn/generic/divrem.c: Remove C++ style `//' commented-out code.
+ * mpn/generic/sb_divrem_mn.c: Likewise.
+
+2000-04-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/cdiv_q.c: Change temp allocation for new requirements of
+ mpz_tdiv_qr.
+ * mpz/fdiv_q.c: Likewise.
+
+ * mpn/sparc64/gmp-mparam.h: Set up parameters for TOOM3.
+
+ * mpz/dmincl.c: Delete file.
+ * mpz/tdiv_qr.c: Rewrite using mpn_tdiv_qr.
+ * mpz/tdiv_r.c: Likewise.
+ * mpz/tdiv_q.c: Likewise.
+
+ * mpn/generic/tdiv_qr.c: New file.
+ * mpn/generic/bz_divrem_n.c: New file.
+ * mpn/generic/sb_divrem_mn.c: New file.
+
+ * gmp-impl.h (MPZ_REALLOC): New macro.
+ (mpn_sb_divrem_mn): Declare.
+ (mpn_bz_divrem_n): Declare.
+ (mpn_tdiv_qr): Declare.
+
+ * configure.in (gmp_mpn_functions): Delete divrem_newt and divrem_1n;
+ add tdiv_qr, bz_divrem_n, and sb_divrem_mn.
+ * mpn/generic/divrem_newt.c: Delete file.
+ * mpn/generic/divrem_1n.c: Delete file.
+
+ * gmp.h (mpn_divrem_newton): Remove declaration.
+ (mpn_divrem_classic): Remove declaration.
+
+ * gmp.h (mpn_divrem): Remove function definition.
+ * mpn/generic/divrem.c: Replace mpn_divrem_classic with a
+ mpn_divrem wrapper.
+
+2000-04-14 Kevin Ryde <kevin@swox.se>
+
+ * mpf/dump.c, mpz/dump.c, mpn/generic/dump.c,
+ mpn/generic/divrem.c, mpn/generic/divrem_1n.c,
+ mpn/generic/divrem_2.c, mpn/generic/divrem_newt.c,
+ mpn/generic/mul.c, mpn/generic/mul_basecase.c,
+ mpn/generic/mul_n.c, mpn/generic/sqr_basecase.c,
+ mpn/generic/udiv_w_sdiv.c: Add comment that internal functions are
+ changeable and shouldn't be used directly.
+
+ * mpq/div.c: Use DIVIDE_BY_ZERO (previously didn't get an
+ exception on zero divisor).
+
+ * mpf/tests/t-get_d.c, mpz/tests/reuse.c: Add K&R function
+ definitions.
+ * mpz/tests/t-2exp.c: Don't use ANSI-ism 2ul.
+
+ * gmp.texi (Installing MP): Build problem notes for GSYM_PREFIX
+ and ranlib on native SunOS.
+ Particular systems notes about AIX and HPPA shared libraries
+ disabled.
+ (MP Basics): Add that undocumented things shouldn't be used.
+ (Introduction to MP): Add to CPUs listed.
+
+ * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Don't depend on C
+ having "void".
+
+2000-04-13 Linus Nordberg <linus@swox.se>
+
+ * mpn/pa64/udiv_qrnnd.c (__udiv_qrnnd64): Add K&R function
+ definition.
+
+ * configure.in: Disable shared libraries for hppa*.
+ (mips-sgi-irix6.*): Fix flags for 64-bit gcc.
+ (hppa2.0*-*-*): Prefer c89 to cc.
+ * configure: Regenerate.
+
+ * gmp.h (gmp_randalg_t): Remove comma after last element.
+
+ * tests/rand/t-rand.c: Add copyright notice.
+
+2000-04-13 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/mul_n.c, mpn/generic/gcdext.c, mpz/nextprime.c,
+ mpz/remove.c, mpz/root.c: Add K&R function definitions.
+ * mpz/rrandomb.c: Fix typo in K&R part.
+ * stack-alloc.c: Add K&R style function pointer declarations.
+
+ * mpz/root.c: Use SQRT_OF_NEGATIVE on even roots of negatives.
+ Use DIVIDE_BY_ZERO on a "zero'th" root.
+
+ * configure: Regenerate with autoconf backpatched to fix --srcdir
+ absolute path wildcards that bash doesn't like, change by Linus.
+
+ * gmp.texi (Integer Arithmetic): Document mpz_nextprime.
+ (Miscellaneous Integer Functions): Fix mpz_fits_* formatting.
+ (Installing MP): Comment-out CC and CFLAGS description.
+
+2000-04-13 Linus Nordberg <linus@swox.se>
+
+ * rand.c (gmp_randinit): Don't combine va_alist with ordinary
+ arguments for non STDC.
+
+2000-04-13 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/nextprime.c: Use proper names of new random types and functions.
+
+ * mpz/rrandomb.c: New file.
+ * mpz/Makefile.am: List it.
+ * mpz/Makefile.in: Regenerate.
+ * Makefile.am: Here too.
+ * Makefile.in: Regenerate.
+ * gmp.h: Declare mpz_rrandomb.
+
+2000-04-12 Linus Nordberg <linus@swox.se>
+
+ * Makefile.am, demos/Makefile.am, mpbsd/Makefile.am,
+ mpbsd/tests/Makefile.am, mpf/Makefile.am, mpf/tests/Makefile.am,
+ mpn/Makefile.am, mpq/Makefile.am, mpq/tests/Makefile.am,
+ mpz/Makefile.am, mpz/tests/Makefile.am, tests/Makefile.am,
+ tests/rand/Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.
+
+ * Makefile.in, demos/Makefile.in, mpbsd/Makefile.in,
+ mpbsd/tests/Makefile.in, mpf/Makefile.in, mpf/tests/Makefile.in,
+ mpn/Makefile.in, mpq/Makefile.in, mpq/tests/Makefile.in,
+ mpz/Makefile.in, mpz/tests/Makefile.in, tests/Makefile.in,
+ tests/rand/Makefile.in: Regenerate.
+
+2000-04-12 Linus Nordberg <linus@swox.se>
+
+ * randlc.c (gmp_randinit_lc): Disable function.
+ * gmp.texi (Random State Initialization): Remove gmp_randinit_lc.
+
+ * acinclude.m4 (GMP_CHECK_CC_64BIT): Compiling an empty main
+ successfully with `-n32' will have to suffice on irix6.
+ * aclocal.m4: Regenerate.
+
+ * configure.in (sparc): Don't pass -D_LONG_LONG_LIMB to compiler.
+ (mips-sgi-irix6.*): Use compiler option `-n32' rather than `-64'
+ for 64-bit `cc'. Add options for gcc.
+ * configure: Regenerate.
+
+ * mpf/urandomb.c (mpf_urandomb): Add third parameter 'nbits'. If
+ 'nbits' doesn't make even limbs, shift up result before
+ normalizing.
+
+ * gmp.h (mpf_urandomb): Add parameter to prototype.
+
+ * mpf/urandom.c: Rename file to ...
+ * mpf/urandomb.c: ... this.
+ * Makefile.am (MPF_OBJECTS): Change urandom.lo --> urandomb.lo.
+ * Makefile.in: Regenerate.
+ * mpf/Makefile.am (libmpf_la_SOURCES): Change urandom.c --> urandomb.c.
+ * mpf/Makefile.in: Regenerate.
+
+ * config.in: Regenerate for HAVE_DECL_OPTARG.
+
+ * randraw.c (_gmp_rand): Fix bug with _LONG_LONG_LIMB.
+ (lc): Change return type.
+ Use one temporary storage instead of two.
+ Handle seed of size 0.
+ Avoid modulus operation in some cases.
+ Abort if M is not a power of 2.
+ Fix bug with 64-bit limbs.
+ Fix bug with small seed, small A and large M.
+
+ * tests/rand/gen.c (main): Include gmp.h. Remove macros MIN, MAX. Add
+ option '-q'. Don't demand argument N. Change parameters in call
+ to mpf_urandomb.
+
+ * tests/rand/t-rand.c: New file for testing random number generation.
+
+ * tests/rand/Makefile.am: Run t-rand for 'make check'.
+ (test, bigtest): Rename to manual-test, manual-bigtest.
+ * tests/rand/Makefile.in: Regenerate.
+
+2000-04-12 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h: Include config.h before TMP_ALLOC, so
+ --disable-alloca works.
+
+ * mpbsd/Makefile.am: Don't recompile top-level sources here.
+ * Makefile.am (libmp_la_DEPENDENCIES): Put objects here instead,
+ add errno.lo and stack-alloc.lo.
+
+ * mpn/asm-defs.m4: Add a test and message for the unsuitable SunOS m4.
+ * gmp.texi (Installing MP): Update note on SunOS m4 failure.
+
+ * acconfig.h: Add copyright notice using @TOP@.
+
+ * stack-alloc.c: Use _mp_allocate_func, not malloc.
+ * gmp.texi (Installing MP): Note this under --disable-alloca.
+
+ * gmp.texi (Comparison Functions): mpz_cmp_abs => mpz_cmpabs.
+ (Integer Arithmetic): mpz_prime_p not yet implemented, comment out.
+ (Float Arithmetic): mpf_pow_ui now implemented, uncomment-out.
+ (Miscellaneous Float Functions): Add mpf_ceil, mpf_floor, mpf_trunc.
+ (Low-level Functions): Add mpn_random2, with mpn_random.
+
+ * mpn/m68k/mc68020/udiv.S: Rename from udiv.s.
+ * mpn/m68k/mc68020/umul.S: Ditto.
+
+ * mpn/alpha/umul.asm: Rename from umul.s, remove .file and
+ compiler identifiers.
+
+ * mpn/powerpc32/syntax.h: Removed, no longer used.
+
+ * mpn/a29k/udiv.s: Remove .file and compiler identifiers.
+ * mpn/a29k/umul.s: Ditto.
+
+ * mpn/tests/ref.c: Use WANT_ASSERT.
+ * mpn/tests/ref.h: Use _PROTO.
+
+ * mpbsd/configure.in: Removed, no longer required.
+
+ * mpf/div.c: Use DIVIDE_BY_ZERO.
+ * mpf/div_ui.c: Ditto.
+ * mpf/ui_div.c: Ditto.
+ * mpq/inv.c: Ditto.
+ * mpf/sqrt.c: Use SQRT_OF_NEGATIVE.
+ * mpz/sqrt.c: Ditto.
+ * mpz/sqrtrem.c: Ditto.
+
+ * gmp-impl.h (GMP_ERROR,SQRT_OF_NEGATIVE): New macros.
+ (DIVIDE_BY_ZERO): Use GMP_ERROR.
+ (__mp_bases): #define to __MPN(mp_bases).
+
+2000-04-11 Linus Nordberg <linus@swox.se>
+
+ * tests/rand/stat.c (main): Initialize `l1runs' at declaration.
+
+2000-04-11 Kevin Ryde <kevin@swox.se>
+
+ * mpz/fib_ui.c: Add K&R function definitions.
+
+ * mpbsd/tests/Makefile.am (TESTS): Add a dummy test to avoid a
+ shell problem with an empty "for tst in $(TESTS) ; ...".
+ * mpbsd/tests/dummy.c: New file.
+
+2000-04-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/bin_uiui.c: Delete several unused variables.
+ Add copyright notice.
+ * mpz/bin_ui.c: Add copyright notice.
+
+ * longlong.h: Declare __count_leading_zeros for alpha.
+
+2000-04-10 Linus Nordberg <linus@swox.se>
+
+ * rand.c (gmp_randinit): Change parameter list to (rstate, alg, ...).
+ * gmp.h: Change prototype accordingly.
+ * mpz/pprime_p.c (millerrabin): Change call accordingly.
+
+ * configure.in: Check for `optarg'.
+ * configure: Regenerate.
+
+ * mpn/Makefile.am: Remove incorrect comment.
+ * mpn/Makefile.in: Regenerate.
+
+ * gmp.h: Rename most of the random number functions, structs and some
+ of the struct members.
+ * rand.c (gmp_randinit): Likewise.
+ * randclr.c (gmp_randclear): Likewise.
+ * randlc.c (gmp_randinit_lc): Likewise.
+ * randlc2x.c (gmp_randinit_lc_2exp): Likewise.
+ * randraw.c (lc): Likewise.
+ (_gmp_rand_getraw): Likewise.
+ * randsd.c (gmp_randseed): Likewise.
+ * randsdui.c (gmp_randseed_ui): Likewise.
+ * gmp.texi: Likewise.
+
+ * gmp.texi: Use three hyphens for a dash.
+ (Low-level Functions): Remove documentation for gmp_rand_getraw.
+ (Random Number Functions): Add info on where to find documentation
+ on the random number functions.
+
+ * tests/rand/Makefile.am (test, bigtest): Quote argument to grep.
+ * tests/rand/Makefile.in: Regenerate.
+
+ * tests/rand/gen.c: Declare optarg, optind, opterr if not already
+ declared.
+ (main): Use new names for the random stuff.
+ (main): Don't use strtoul() if we don't have it. Use strtol()
+ instead, if we have it. Otherwise, use atoi().
+ (main): Use srandom/srandomdev for __FreeBSD__ only.
+ (main): Use new parameter order to gmp_randinit().
+
+ * tests/rand/stat.c: Declare optarg, optind, opterr if not already
+ declared.
+
+2000-04-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/pprime_p.c: Pass 0L for mpz_scan1. mpz_mmod => mpz_mod.
+ (millerrabin): Use new random interface.
+ (millerrabin): ... and don't forget to call gmp_randclear.
+
+ * mpz/nextprime.c: New file.
+ * gmp.h: Declare mpz_nextprime.
+ * mpz/Makefile.am: List nextprime.c.
+ * mpz/Makefile.in: Regenerate.
+ * Makefile.am: List mpz/nextprime.lo.
+ * Makefile.in: Regenerate.
+
+2000-04-10 Kevin Ryde <kevin@swox.se>
+
+ * move-if-change, mpz/tests/move-if-change, mpq/tests/move-if-change,
+ mpf/tests/move-if-change: Remove, no longer used.
+
+ * Makefile.am (SUBDIRS): Add tests, demos, mpbsd.
+ (libmp.la): New target, conditional on WANT_MPBSD.
+ (libgmp_la_LIBADD): Add -lm.
+ (AUTOMAKE_OPTIONS): Add check-news.
+ (include_HEADERS): Setup to install gmp.h and possibly mp.h.
+ (DISTCLEANFILES): Add generated files.
+ (check): Remove explicit target (now uses check-recursive).
+
+ * configure.in: Use AM_CONFIG_HEADER.
+ Add --enable-mpbsd setting automake conditional WANT_MPBSD.
+ Output demos/Makefile, mpbsd/Makefile and mpbsd/tests/Makefile.
+
+ * mpz/Makefile.am: Add SUBDIRS=tests, shorten INCLUDES since now
+ using AM_CONFIG_HEADER.
+ * mpq/Makefile.am: Ditto.
+ * mpf/Makefile.am: Ditto, and add DISTCLEANFILES.
+ * mpn/Makefile.am: Shorten INCLUDES, amend some comments.
+ * mpz/tests/Makefile.am: Use TESTS and $(top_builddir).
+ * mpf/tests/Makefile.am: Ditto.
+ * mpq/tests/Makefile.am: Ditto.
+ * demos/Makefile.am: New file.
+
+ * mpbsd/Makefile.am: New file, derived from old mpbsd/Makefile.in.
+ * mpbsd/Makefile.in: Now generated from Makefile.am.
+ * mpbsd/realloc.c: Removed, use mpz/realloc.c instead.
+ * mpbsd/tests/Makefile.am: New file.
+ * mpbsd/tests/Makefile.in: New file, generated from Makefile.am.
+ * mpbsd/tests/allfuns.c: New file.
+
+ * gmp.texi (Top): Use @ifnottex, to help makeinfo --html.
+ (Installing MP): Describe --enable-mpbsd and demo programs.
+
+ * tests/rand/statlib.c: mpz_cmp_abs => mpz_cmpabs.
+
+ * tests/rand/Makefile.am (LDADD): Don't need -lm (now in libgmp.la).
+ (EXTRA_PROGRAMS): Not noinst_PROGRAMS.
+ (INCLUDES): Shorten to -I$(top_srcdir) now using AM_CONFIG_HEADER.
+
+2000-04-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/urandomm.c: Get type of count right.
+ Simplify computation of nbits.
+
+2000-04-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/urandomb.c: Fix reallocation condition.
+ Simplify size computation.
+
+2000-04-08 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_CC_64BIT): Add special handling for
+ HPUX.
+ (GMP_CHECK_ASM_W32): Ditto.
+ * aclocal.m4: Regenerate.
+
+ * mpn/Makefile.am: Use $(CCAS) for assembling.
+ (.asm.obj): Add rule.
+ * mpn/Makefile.in: Regenerate.
+
+ * gmp.texi (Miscellaneous Integer Functions): Fix typos.
+
+ * configure.in: Never pass `-h' to grep.
+ (mips-sgi-irix6.[2-9]*): Try to find 64-bit compiler.
+ (hppa1.0*-*-*): New flag for cc.
+ (hppa2.0*-*-*): Try to find 64-bit compiler. Chose path, set
+ CCAS.
+ * configure: Regenerate.
+
+2000-04-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/bin_ui.c: Don't depend on ANSI C features.
+ * mpz/bin_uiui.c: Likewise.
+
+ * Makefile.am (MPZ_OBJECTS): mpz/cmp_abs* => mpz/cmpabs*.
+ (MPQ_OBJECTS): Add mpq/set_d.lo.
+ (MPZ_OBJECTS): Add mpz/fits*.lo.
+ * Makefile.in: Regenerate.
+
+ * mpz/cmpabs.c: New name for mpz/cmp_abs.c.
+ * mpz/cmpabs_ui.c: New name for mpz/cmp_abs_ui.c.
+ * mpz/Makefile.am: Corresponding changes.
+ * mpz/Makefile.in: Regenerate.
+ * gmp.h: mpz_cmp_abs* => mpz_cmpabs*.
+
+ * mpz/addmul_ui.c (mpn_neg1): Don't depend on ANSI C features.
+
+ * mpz/invert.c: Use TMP_MARK since we invoke MPZ_TMP_INIT.
+
+ * gmp.h (mpq_set_d): Declare correctly.
+ (mpz_root): Use _PROTO.
+ (mpz_remove): Use _PROTO.
+ (mpf_pow_iu): Use _PROTO.
+
+ * mpn/asm-defs.m4 (MPN_PREFIX): Revert previous change.
+ * gmp.h (__MPN): Revert previous change.
+
+ * mpz/perfpow.c: De-ANSI-fy. Add copyright notice.
+
+ * mpz/set_d.c: Misc cleanups.
+
+ * mpq/set_d: New file.
+ * gmp.h: Declare mpq_set_d.
+ * mpq/Makefile.am: List set_d.c.
+ * mpq/Makefile.in: Regenerate.
+
+2000-04-07 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/fits_sint_p.c: New file.
+ * mpz/fits_slong_p.c: New file.
+ * mpz/fits_sshort_p.c: New file.
+ * mpz/fits_uint_p.c: New file.
+ * mpz/fits_ulong_p.c: New file.
+ * mpz/fits_ushort_p.c: New file.
+ * gmp.h: Declare mpz_fits_*.
+ * mpz/Makefile.am: List fits_* files.
+ * mpz/Makefile.in: Regenerate.
+
+2000-04-06 Kevin Ryde <kevin@swox.se>
+
+ * gmp.texi (Installing MP): Add known build problem SunOS 4.1.4 m4
+ failure.
+
+ * mpn/x86/pentium/gmp-mparam.h: Tune thresholds.
+ * mpn/x86/p6/gmp-mparam.h: Ditto.
+ * mpn/x86/k6/gmp-mparam.h: Tune thresholds, add UMUL_TIME, UDIV_TIME.
+ * mpn/x86/k7/gmp-mparam.h: Tune thresholds, amend UMUL_TIME.
+
+ * mpn/generic/mul_n.c (mpn_kara_mul_n): Add an ASSERT.
+ (mpn_kara_sqr_n): Add an ASSERT, use KARATSUBA_SQR_THRESHOLD.
+ (mpn_toom3_sqr_n): Eliminate second evaluate3.
+
+ * gmp-impl.h (mpn_com_n,MPN_LOGOPS_N_INLINE): Don't allow size==0.
+ (tune_mul_threshold,tune_sqr_threshold): Conditionalize
+ declarations on TUNE_PROGRAM_BUILD.
+
+ * mpn/generic/sqr_basecase.c: Add an assert.
+
+2000-04-05 Torbjorn Granlund <tege@swox.com>
+
+ * gmp.h, mpn/asm-defs.m4: List the same functions for __MPN, but
+ leave some commented out.
+
+ * gmp-impl.h (MPN_LOGOPS_N_INLINE): Optimize.
+ (mpn_com_n): Optimize.
+
+ * gmp.h (__MPN): Make it use __gmpn instead of __mpn for consistency.
+ * mpn/asm-defs.m4 (MPN_PREFIX): Likewise.
+
+ * gmp.h (GMP_ERROR_ALLOCATE): New errcode.
+
+ * gmp-impl.h (MPN_MUL_N_RECURSE): Delete.
+ (MPN_SQR_RECURSE): Delete.
+
+ * gmp-impl.h (TARGET_REGISTER_STARVED): New define.
+
+ * gmp-impl.h (mpn_kara_sqr_n): Remap with __MPN.
+ (mpn_toom3_sqr_n): Likewise.
+ (mpn_kara_mul_n): Likewise.
+ (mpn_toom3_mul_n): Likewise.
+ (mpn_reciprocal): Likewise.
+
+ * gmp-impl.h (__gmpn_mul_n): Remove declaration.
+ (__gmpn_sqr): Likewise.
+ * gmp.h (mpn_sqr_n): Declare/remap.
+ * mpn/generic/mul.c (mpn_sqr_n): New name for mpn_sqr.
+
+ * gmp.h (mpn_udiv_w_sdiv): Move __MPN remap from here...
+ * gmp-impl.h: ...to here.
+
+2000-04-05 Linus Nordberg <linus@swox.se>
+
+ * gmp.texi (Top): Add `Random Number Functions' to menu.
+ (Introduction to MP): Fix typo.
+ (MP Basics): Create menu for all sections. Move `Random Number
+ Functions' to its own chapter. Add nodes for all sections.
+ (Function Classes): Mention random generation functions under
+ miscellaneous.
+ (Miscellaneous Integer Functions): Update mpz_urandomb,
+ mpz_urandomm.
+ (Low-level Functions): Remove mpn_rawrandom.
+ (Random State Initialization): Update.
+
+ * mpf/urandom.c (mpf_urandomb): Remove SIZE parameter. Normalize
+ result correctly.
+
+ * gmp.h (mpf_urandomb): Remove SIZE parameter.
+
+ * randraw.c (gmp_rand_getraw): Handle the case where (1) the LC
+ scheme doesn't generate even limbs and (2) more than one LC
+ invocation is necessary to produce the requested number of bits.
+
+2000-04-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/mul_n.c (INVERSE_3): New name for THIRD, define for
+ any BITS_PER_MP_LIMB.
+ (MP_LIMB_T_MAX): New.
+ (mpn_divexact3_n): Remove.
+ (interpolate3): Use mpn_divexact_by3 instead of mpn_divexact3_n.
+
+2000-04-05 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h (KARATSUBA_MUL_THRESHOLD<2): Remove cpp test.
+ (tune_mul_threshold,tune_sqr_threshold): Add declarations, used in
+ development only.
+
+ * mpn/x86/k7/sqr_basecase.asm: New file, only a copy of k6 for now.
+
+2000-04-04 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (TOOM3_MUL_THRESHOLD): Provide default.
+ (TOOM3_SQR_THRESHOLD): Provide default.
+
+ * mpn/generic/mul_n.c: Rewrite (mostly by Robert Harley).
+ * mpn/generic/mul.c: Rewrite (mostly by Robert Harley).
+
+ * configure.in (sparcv9 64-bit OS): Set extra_functions.
+
+2000-04-04 Linus Nordberg <linus@swox.se>
+
+ * mpn/generic/rawrandom.c: Remove file and replace with randraw.c
+ on top level.
+ (mpn_rawrandom): Rename to gmp_rand_getraw.
+
+ * randraw.c: New file; essentially a copy of
+ mpn/generic/rawrandom.c.
+ (gmp_rand_getraw): New function (formerly known as mpn_rawrandom).
+
+ * mpz/urandomb.c (mpz_urandomb): Change mpn_rawrandom -->
+ gmp_rand_getraw.
+ * mpz/urandomm.c (mpz_urandomb): Ditto.
+ * mpf/urandom.c (mpf_urandomb): Ditto.
+
+ * gmp.h (gmp_rand_getraw): Add function prototype.
+ (mpn_rawrandom): Remove function prototype.
+
+ * Makefile.am (libgmp_la_SOURCES): Add randraw.c.
+ * Makefile.in: Regenerate.
+
+ * configure.in (gmp_mpn_functions): Remove rawrandom.
+ * configure: Regenerate.
+
+2000-04-04 Linus Nordberg <linus@swox.se>
+
+ * gmp.h (GMP_ERROR enum): Remove comma after last enumeration
+ since the AIX compiler (xlc) doesn't like that.
+
+ * randlc.c (gmp_rand_init_lc): Allocate enough space for seed to
+ hold any upcoming seed.
+ * randlc2x.c (gmp_rand_init_lc_2exp): Likewise.
+
+ * mpn/generic/rawrandom.c: Remove debugging code.
+ (mpn_lc): Don't reallocate seed.
+
+ * mpz/urandomm.c (mpz_urandomm): Implement function.
+
+ * mpz/urandomb.c (mpz_urandomb): Fix typo in function definition.
+
+2000-04-04 Kevin Ryde <kevin@swox.se>
+
+ * make.bat: Removed (no longer works, no longer supported).
+ * mpn/msdos/asm-syntax.h: Removed (was used only by make.bat).
+
+2000-04-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/brandom.c: New file, replacing random2.
+
+2000-04-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/submul_1.asm: Change some carry-form instructions
+ into their plain counterparts.
+
+ * mpn/sparc64/copyi.asm: Avoid executing ALIGN.
+
+ * mpn/sparc64/mul_1.asm: Handle overlap of rp/sp.
+ * mpn/sparc64/addmul_1.asm: Likewise.
+ * mpn/sparc64/submul_1.asm: Likewise.
+
+2000-04-01 Linus Nordberg <linus@swox.se>
+
+ * gmp.h: Fix function prototypes for randomization functions.
+ (__gmp_rand_lc_scheme_struct): Replace `m' with `m2exp'. Remove
+ unused `bits'.
+ (__gmp_rand_data_lc): Add `m2exp' as another way of representing
+ the modulus.
+ (__gmp_rand_state_struct): Remove unused `size'.
+
+ * rand.c (__gmp_rand_scheme): Use better multipliers. Remove test
+ schemes. Replace `m' with `m2exp'.
+ (gmp_rand_init): Change parameters and return type. Use `m2exp'
+ instead of `m'. Set `gmp_errno' on error. Disable BBS algorithm.
+
+ * randlc.c (gmp_rand_init_lc): Don't use malloc(). Change
+ parameters.
+
+ * randclr.c (gmp_rand_clear): Don't use free(). Disable BBS
+ algorithm. Set `gmp_errno' on error.
+
+ * randlc2x.c (gmp_rand_init_lc_2exp): New function.
+ * randsd.c (gmp_rand_seed): New function.
+ * randsdui.c (gmp_rand_seed_ui): New function.
+ * randlcui.c: Remove unused file.
+
+ * mpn/generic/rawrandom.c (mpn_rawrandom): Rewrite.
+ (mpn_lc): New static function.
+
+ * mpz/urandomb.c (mpz_urandomb): Use ABSIZ() instead of SIZ() for
+ determining size of ROP.
+
+ * mpf/urandom.c (mpf_urandomb): Add third parameter, nbits. (Not
+ used yet!)
+ Change parameter order to mpn_rawrandom().
+
+ * Makefile.am (libgmp_la_SOURCES): Add errno.c, randlc2x.c,
+ randsd.c, randsdui.c. Remove randui.c.
+ (MPZ_OBJECTS): Rename urandom.lo --> urandomb.lo. Add urandomm.lo.
+ * Makefile.in: Regenerate.
+
+ * mpz/Makefile.am (libmpz_la_SOURCES): Change urandom.c -->
+ urandomb.c. Add urandomm.c.
+ * mpz/Makefile.in: Regenerate.
+
+ * tests/rand/Makefile.am (noinst_PROGRAMS): Change findcl --> findlc.
+ Add gen.static.
+ * tests/rand/Makefile.in: Regenerate.
+
+ * tests/rand/gen.c (main): Add mpz_urandomm. Add command line options
+ `-C', `-m', extend `-a'. Use *mp*_*rand*() with new parameters. Call
+ gmp_rand_seed().
+
+2000-04-01 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_DATA): Plain .data for hpux.
+ * configure.in (CCAS): No CFLAGS, they're added when it's used.
+ (CONFIG_SRCDIR): New define for config.m4.
+ * mpn/sparc64/addmul_1.asm: Use it for an include().
+ * mpn/sparc64/submul_1.asm: Ditto.
+ * mpn/sparc64/mul_1.asm: Ditto.
+
+2000-03-31 Linus Nordberg <linus@swox.se>
+
+ * mpz/urandom.c: Rename to...
+ * mpz/urandomb.c: ...this.
+
+ * mpz/urandomb.c (mpz_urandomb): Change operand order in call to
+ mpn_rawrandom(). Use ABSIZ() instead of SIZ() when checking size
+ of ROP.
+
+ * mpz/urandomm.c: New file.
+
+2000-03-31 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code
+ will be omitted.
+
+2000-03-30 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/mul_1h.asm: New file.
+ * mpn/sparc64/addmul_1h.asm: New file.
+ * mpn/sparc64/submul_1h.asm: New file.
+ * mpn/sparc64/mul_1.asm: Rewrite.
+ * mpn/sparc64/addmul_1.asm: Rewrite.
+ * mpn/sparc64/submul_1.asm: Rewrite.
+
+2000-03-28 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/mul_1.asm: Fix typo in branch prediction.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+
+2000-03-25 Kevin Ryde <kevin@swox.se>
+
+ * mpn/lisp/gmpasm-mode.el: Fix some comment detection, use custom,
+ fontify more keywords, turn into a standalone mode.
+
+ * stamp-vti: New file, generated together with version.texi.
+
+ * acinclude.m4 (GMP_VERSION,GMP_HEADER_GETVAL): New macros.
+ * configure.in (AM_INIT_AUTOMAKE): Use GMP_VERSION.
+
+2000-03-24 Kevin Ryde <kevin@swox.se>
+
+ * INSTALL: Updates for new configure system.
+
+ * configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu
+ and -march.
+
+2000-03-23 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs
+ for ROOT.
+
+2000-03-23 Kevin Ryde <kevin@swox.se>
+
+ * config.guess (i?86:*:*:*): Use uname -m if detection program fails.
+
+ * mpn/x86/README: Remove remarks on the now implemented MMX shifts.
+ * mpn/x86/k6/README: Add speed of mpn_divexact_by3, update mpn_mul_1.
+
+ * gmp.texi (Installing MP): Corrections to target CPUs.
+
+ * version.c: Use VERSION from config.h, add copyright comment,
+ restore "const" somehow lost.
+
+ * configure.in (a29k*-*-*): Fix directory name.
+
+2000-03-22 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (op_t): Add ROOT.
+ (fns): Add ROOT.
+ (mpz_eval_expr): Add ROOT.
+
+ * mpz/root.c: Handle roots of negative numbers.
+ Fix other border cases.
+ Fix rare memory leakage.
+
+ * errno.c: New file.
+
+2000-03-21 Torbjorn Granlund <tege@swox.com>
+
+ * gmp.h (error number enum): New anonymous enum.
+ (gmp_errno): New.
+
+ * gmp.h (__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR): Bump for GMP 3.0.
+
+2000-03-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/unicos.m4 (FLOAT64): New define.
+ * mpn/alpha/default.m4 (FLOAT64): New define.
+ * mpn/alpha/invert_limb.asm (C36): Use FLOAT64.
+
+2000-03-21 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/diveby3.asm: Tiny speedup.
+
+ * acinclude.m4 (GMP_CHECK_ASM_SHLDL_CL): New macro.
+ * configure.in: Use it, set WANT_SHLDL_CL in config.m4.
+ * mpn/x86/x86-defs.m4 (shldl,shrdl,shldw,shrdw): New macros, using
+ WANT_SHLDL_CL.
+ * mpn/x86/k6/mmx/lshift.asm: Use shldl macro.
+ * mpn/x86/k7/mmx/lshift.asm: Ditto.
+ * mpn/x86/pentium/mmx/lshift.asm: Ditto.
+ * mpn/x86/k6/mmx/rshift.asm: Use shrdl macro.
+ * mpn/x86/k7/mmx/rshift.asm: Ditto.
+ * mpn/x86/pentium/mmx/rshift.asm: Ditto.
+ * mpn/x86/README.family: Add a note about this.
+
+2000-03-20 Linus Nordberg <linus@swox.se>
+
+ * mpn/generic/rawrandom.c (mpn_rawrandom): Handle seed value of 0
+ correctly.
+
+ * configure.in: Fix detection of alpha flavour.
+ Set compiler options for `sparcv8'.
+ * configure: Regenerate.
+
+ * rand.c (__gmp_rand_scheme): Clean up some. Use slightly better
+ multipliers.
+
+ * configure.in (AC_OUTPUT): Add tests/Makefile and
+ tests/rand/Makefile.
+
+ * acinclude.m4 (AC_CANONICAL_BUILD): Define to
+ `_AC_CANONICAL_BUILD' to deal with incompatibilities between
+ Autoconf and Libtool.
+ (AC_CHECK_TOOL_PREFIX): Likewise.
+
+ * Makefile.am (EXTRA_DIST): Add directory `tests'.
+
+ * mkinstalldirs: Update (Automake 2000-03-17).
+ * ltconfig: Update (Libtool 2000-03-17).
+ * ltmain.sh: Ditto.
+
+ * configure: Regenerate with new autoconf/-make/libtool suite.
+ * aclocal.m4: Ditto.
+ * config.in: Ditto.
+ * all Makefile.in's: Ditto.
+
+2000-03-20 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (main): Don't allow `-N' for base, require `-bN'.
+
+ * mpn/alpha/unicos.m4 (cvttqc): New define.
+ * mpn/alpha/invert_limb.asm: Use new define for cvttqc.
+
+2000-03-19 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/sqr_basecase.asm: Tiny amendments for 3x3 case.
+
+ * gmp.texi: Use @include version.texi.
+ Use @email and @uref.
+ (Installing MP): Rewrite for new configure.
+ (Low-level Functions): Add mpn_divexact_by3.
+
+ * configure.in (--enable-alloca): New option.
+ * acconfig.h (USE_STACK_ALLOC): For --disable-alloca.
+
+2000-03-18 Kent Boortz <kent@swox.com>
+
+ * macos: New directory with macos port files.
+
+2000-03-17 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (union ieee_double_extract): Check _CRAYMPP.
+
+ * mpn/asm-defs.m4 (invert_normalized_limb): Define.
+
+ * mpn/alpha: Translate `.s' files to `.asm'.
+
+ * configure: Regenerate.
+
+ * mpn/alpha/invert_limb.asm: Replace dash in file name with underscore.
+ * configure.in: Corresponding change.
+
+ * configure.in: Assign special "path" for alphaev6.
+
+ * mpn/alpha/unicos.m4: New file.
+ * configure.in (alpha*-cray-unicos*): [This part of the change
+ commited 2000-03-13 by linus]
+ * mpn/alpha/default.m4: New file.
+ * configure.in (alpha*-*-*): Use it.
+
+2000-03-17 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/rshift.S: Use plain rcrl (not rcrl $1) for
+ shift-by-1 case, significant speedup.
+ * mpn/x86/pentium/README: Add shift-by-1 speed.
+
+2000-03-16 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Handle Cray T3D/E.
+
+2000-03-15 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/diveby3.c: New file.
+ * mpn/x86/diveby3.asm: New file.
+ * mpn/x86/k6/diveby3.asm: New file.
+ * gmp.h (mpn_divexact_by3): Prototype and define.
+ * mpn/asm-defs.m4: define_mpn(divexact_by3).
+ * configure.in (gmp_mpn_functions): Add diveby3.
+
+ * mpn/x86/pentium/sqr_basecase.asm: A few better addressing modes.
+
+ * configure.in: Add AC_C_STRINGIZE and AC_CHECK_TYPES((void)).
+ * gmp-impl.h (ASSERT): Use them.
+
+ * mpn/x86/k7/mmx/lshift.asm: New file.
+ * mpn/x86/k7/mmx/rshift.asm: Rewrite simple loop and return value
+ handling, add some pictures.
+
+2000-03-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v8/mul_1.asm: Make PIC actually work.
+ * mpn/sparc32/v8/addmul_1.asm: Likewise.
+
+ * mpn/sparc32/v8/mul_1.asm: Use m4 ifdef, not cpp #if.
+ * mpn/sparc32/v8/addmul_1.asm: Likewise.
+
+ * mpn/asm-defs.m4 (C): New define for comments.
+ * mpn/sparc32: Start comments with `C'.
+
+ * config.guess: Remove `SunOS 6' handling.
+ Recognize sun4m and sun4d architectures under old SunOS.
+
+2000-03-14 Linus Nordberg <linus@swox.se>
+
+ * configure.in (gmp_srclinks): Set to list of links created by
+ configure.
+ * configure: Regenerate.
+
+ * Makefile.am (libgmp_la_LDFLAGS): Set version info.
+ (DISTCLEANFILES): Include @gmp_srclinks@.
+ * Makefile.in: Regenerate.
+
+2000-03-13 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Remove some changequote's by quoting the strings
+ containing `[]'.
+ Add support for `alpha*-cray-unicos*'.
+ AC_DEFINE `_LONG_LONG_LIMB' instead of passing it in CFLAGS.
+ Conditionalize the assembler syntax checks.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+ * acinclude.m4 (GMP_PROG_CCAS): Remove macro.
+ * aclocal.m4: Regenerate.
+
+2000-03-13 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/p6/README: New file.
+
+ * mpn/x86/k6/mul_1.asm: Rewrite, smaller and slightly faster.
+
+ * mpn/lisp/gmpasm-mode.el: Rewrite assembler comment detection and
+ handling.
+
+ * configure.in: Separate mmx directories for each x86 flavour.
+ * configure: Regenerate.
+
+2000-03-12 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/x86-defs.m4 (ALIGN): Supplement definition from
+ config.m4 so as to pad with nops not zeros on old gas.
+
+ * mpn/x86/k7/mmx/copyd.asm: Use plain emms (femms is just an alias
+ for emms now).
+ * mpn/x86/k7/mmx/copyi.asm: Ditto.
+ * mpn/x86/k7/mmx/rshift.asm: Ditto.
+ * mpn/x86/x86-defs.m4: Amend comments.
+
+ * mpn/x86/mod_1.asm: Add comments on speeds.
+
+ * mpn/x86/pentium/mmx/lshift.asm: New file.
+ * mpn/x86/pentium/mmx/rshift.asm: New file.
+ * mpn/x86/pentium/README: Add speeds of various routines.
+
+2000-03-10 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Reorganize.
+ Use AC_CHECK_TOOL to find `ar'.
+ Add post-includes `regmap.m4' and `aix.m4' for AIX targets.
+ asm-syntax.h is not needed for PPC or sparc anymore.
+ (powerpc64-*-aix*): Compiler is always 64-bit. Use `-q64
+ -qtune=pwr3' to xlc and `-maix64 -mpowerpc64' to gcc. Pass `-X
+ 64' to `ar' and `nm'.
+ (pentiummmx): Use GMP_CHECK_ASM_MMX and avoid MMX assembly path if
+ assembler is not MMX capable.
+ (pentium[23]): Likewise.
+ (athlon): Likewise.
+ (k6*): Likewise.
+ * configure: Regenerate.
+
+ * acinclude.m4 (GMP_PROG_CC_WORKS): New macro.
+ (GMP_PROG_CC_FIND): Use GMP_PROG_CC_WORKS instead of
+ AC_TRY_COMPILER. Make sure that the *first* working 32-bit
+ compiler is used if no 64-bit compiler is found.
+ (GMP_CHECK_ASM_MMX): New macro.
+ * aclocal.m4: Regenerate.
+
+ * Makefile.in: Regenerate. (CC_TEST removed.)
+ * mpf/Makefile.in: Likewise.
+ * mpn/Makefile.in: Likewise.
+ * mpq/Makefile.in: Likewise.
+ * mpz/Makefile.in: Likewise.
+ * mpf/tests/Makefile.in: Likewise.
+ * mpq/tests/Makefile.in: Likewise.
+ * mpz/tests/Makefile.in: Likewise.
+
+ * acconfig.h (_LONG_LONG_LIMB): Add.
+
+ * gmp-impl.h: Include config.h only if HAVE_CONFIG_H is defined.
+
+2000-03-09 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/pentium/mul_basecase.S: Small speedup by avoiding an AGI.
+
+ * mpn/x86/k7/mmx/copyd.asm: Tiny speedup by avoiding popl.
+ * mpn/x86/k7/mmx/copyi.asm: Ditto.
+ * mpn/x86/k7/mul_basecase.asm: Ditto.
+
+2000-03-07 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Better recognize POWER/PowerPC processor type.
+
+2000-03-07 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/addsub_n.c: Use HAVE_NATIVE_* now in config.h.
+
+ * mpn/asm-defs.m4: Add comments about SysV m4.
+ (m4_log2): Don't use <<.
+ (m4_lshift,m4_rshift): New macros.
+
+2000-03-06 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/regmap.m4: Map cr0 => `0', etc.
+
+2000-03-06 Kevin Ryde <kevin@swox.se>
+
+ * mpn/tests/ref.c (refmpn_divexact_by3): New function.
+ * mpn/tests/ref.h: Prototype.
+
+ * acconfig.h (WANT_ASSERT): New define.
+ * configure.in (--enable-assert): Turn on WANT_ASSERT.
+ * assert.c: New file.
+ * Makefile.am: Add to build.
+ * gmp-impl.h (ASSERT): New macro.
+ (ASSERT_NOCARRY) Renamed from assert_nocarry.
+ (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS.
+ * mpn/tests/ref.c: Use ASSERT.
+ * mpf/get_str.c: Use ASSERT_ALWAYS.
+ * mpf/set_str.c: Remove old assert macro.
+
+ * mpn/x86/x86-defs.m4 (cmovnz_ebx_ecx): New macro.
+ * mpn/x86/p6/aorsmul_1.asm: Use cmov.
+
+ * mpn/x86/lshift.S: Use %dl with testb, not %edx. No object code
+ change, testb was still getting generated.
+ * mpn/x86/rshift.S: Ditto.
+
+2000-03-03 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h: Add IA-64 support.
+
+ * mpn/powerpc32: Misc cleanups.
+ * mpn/powerpc32/aix.m4: New file (mainly by Linus).
+ * mpn/powerpc64/aix.m4: New file (mainly by Linus).
+ * mpn/powerpc64: Translate `.S' files to `.asm'.
+
+ * configure.in: Fix tyops.
+ * configure: Regenerate.
+
+2000-03-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc32/regmap.m4: New file.
+ * mpn/powerpc32: Translate `.S' files to `.asm'.
+ * configure.in: Use mpn/powerpc32/regmap.m4 for powerpc targets
+ except some weird ones.
+
+2000-03-03 Kevin Ryde <kevin@swox.se>
+
+ * mpn/lisp/gmpasm-mode.el: Suppress postscript comment prefixes in
+ filladapt.
+
+ * mpn/x86/pentium/sqr_basecase.asm: New file.
+ * mpn/x86/pentium/gmp-mparam.h (KARATSUBA_SQR_THRESHOLD): Update.
+
+ * configure.in: Add --enable-assert, enable k6 logops functions.
+
+ * mpn/x86/k6/mmx/copyi.asm: Use m4 for divide, not as.
+ * mpn/x86/k6/mmx/copyd.asm: Ditto.
+ * mpn/x86/README.family: Add a note on this.
+
+2000-03-02 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k6/aors_n.asm: Don't use stosl.
+ * mpn/x86/copyi.asm: Use cld to clear direction flag.
+ * mpn/x86/divrem_1.asm: Ditto.
+ * mpn/x86/README.family: Add a note on this.
+
+ * mpn/x86/k6/mmx/copyi.asm: Rewrite.
+ * mpn/x86/k6/mmx/copyd.asm: New file.
+ * mpn/x86/k6/README: Update, and small amendments.
+
+ * mpn/x86/x86-defs.m4 (Zdisp): New macro.
+ * mpn/asm-defs.m4 (m4_stringequal_p): New macro.
+
+ * mpn/x86/p6/aorsmul_1.asm: Use Zdisp to force zero displacements.
+ * mpn/x86/k6/aorsmul_1.asm: Ditto.
+ * mpn/x86/k6/mul_1.asm: Ditto.
+ * mpn/x86/k6/mul_basecase.asm: Ditto.
+ * mpn/x86/k7/aors_n.asm: Ditto.
+ * mpn/x86/k7/aorsmul_1.asm: Ditto.
+ * mpn/x86/k7/mul_1.asm: Ditto.
+ * mpn/x86/k7/mul_basecase.asm: Ditto.
+ * mpn/x86/README.family: Add a note on this.
+
+2000-02-27 Kevin Ryde <kevin@swox.se>
+
+ * mpn/generic/divrem.c (mpn_divrem_classic): Patch to avoid gcc
+ 2.7.2.3 i386 register handling bug.
+
+ * mpn/x86/k6/aors_n.asm: Rewrite.
+ * mpn/x86/k6/mmx/lshift.asm: Rewrite.
+ * mpn/x86/k6/mmx/rshift.asm: Rewrite.
+ * mpn/x86/k6/README: Update.
+
+ * mpn/x86/k7/mmx/copyd.asm: Support size==0.
+ * mpn/x86/k7/mmx/copyi.asm: Ditto.
+ * mpn/x86/k6/mmx/copyi.asm: Ditto.
+ * gmp-impl.h: Comment size==0 allowed in MPN_COPY_INCR and
+ MPN_COPY_DECR.
+ * configure.in: Enable x86 copyi, copyd; add k6 com_n.
+
+2000-02-25 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (power): Move factorial handing code from `factor'
+ to `power'.
+
+ * demos/factorize.c (factor_using_pollard_rho): Move resetting of `c'
+ to before checking for a non-zero gcd.
+
+2000-02-25 Kevin Ryde <kevin@swox.se>
+
+ * mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro by Linus.
+ * mpn/x86/k6/aors_n.asm: Use MULFUNC_PROLOGUE.
+ * mpn/x86/k6/aorsmul_1.asm: Ditto.
+ * mpn/x86/k7/aors_n.asm: Ditto.
+ * mpn/x86/k7/aorsmul_1.asm: Ditto.
+ * mpn/x86/p6/aorsmul_1.asm: Ditto.
+
+ * mpn/tests/ref.c (refmpn_copyi,refmpn_copyd): Allow size==0.
+
+ * gmp-impl.h: Move mpn_and_n, mpn_andn_n, mpn_com_n, mpn_ior_n,
+ mpn_iorn_n, mpn_nand_n, mpn_nior_n, mpn_xor_n and mpn_xorn_n here
+ from gmp.h. Use HAVE_NATIVE_mpn_* to make these functions or
+ inlines.
+
+ * gmp-impl.h: Move mpn_copyd, mpn_copyi here from gmp.h.
+ * gmp-impl.h (MPN_COPY_INCR): Use mpn_copyi if available.
+ * gmp-impl.h (MPN_COPY_DECR): Use mpn_copyd if available.
+
+ * mpn/x86/k6/mmx/com_n.asm: Moved into mmx subdirectory.
+ * mpn/x86/k6/mmx/copyi.asm: Ditto.
+ * mpn/x86/k6/mmx/lshift.asm: Ditto.
+ * mpn/x86/k6/mmx/rshift.asm: Ditto.
+ * mpn/x86/k7/mmx/rshift.asm: Ditto.
+ * mpn/x86/k6/mmx/logops_n.asm: New file.
+ * configure.in (k6*-*-*): Add logops_n.asm.
+ * mpn/x86/k6/README: Update.
+
+ * mpn/x86/k7/mmx/copyi.asm: New file.
+ * mpn/x86/k7/mmx/copyd.asm: New file.
+ * mpn/x86/k7/README: Update.
+
+2000-02-24 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/x86-defs.m4 (femms): Generate emms if 3dnow not available.
+ * mpn/x86/x86-defs.m4 (FRAME_popl): New macro.
+
+ * Makefile.am: Add info_TEXINFOS = gmp.texi
+
+ * mpn/x86/divrem_1.asm: Moved from mpn/x86/k6, allow size==0,
+ conditionalize loop versus decl/jnz.
+ * mpn/x86/mod_1.asm: Ditto.
+ * mpn/x86/divmod_1.asm: Removed.
+ * gmp.texi (mpn_divrem_1,mpn_mod_1): Add that size==0 is allowed.
+ * mpn/tests/ref.c (refmpn_divrem_1c,etc): Allow size==0.
+
+ * mpn/x86/k6/aors_n.asm: Avoid gas 1.92.3 leal displacement
+ expression problem.
+ * mpn/x86/k6/aorsmul_1.asm: Ditto.
+ * mpn/x86/k6/mul_1.asm: Ditto.
+ * mpn/x86/k6/mul_basecase.asm: Ditto
+ * mpn/x86/k7/aors_n.asm: Ditto.
+ * mpn/x86/k7/aorsmul_1.asm: Ditto.
+ * mpn/x86/k7/mul_1.asm: Ditto.
+ * mpn/x86/k7/mul_basecase.asm: Ditto.
+ * mpn/x86/k7/rshift.asm: Ditto.
+ * mpn/x86/p6/aorsmul_1.asm: Ditto.
+ * mpn/x86/README.family: Describe problem.
+
+2000-02-24 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Add dummy symbol to
+ testcase to avoid nm failure. Try nm before piping to grep.
+
+ * acconfig.h: Undef HAVE_NATIVE_func for every mpn function found
+ in gmp.h.
+
+ * configure.in: Invoke AC_CONFIG_HEADERS.
+ Don't invoke AM_CONFIG_HEADER; it makes autoconf confused.
+ Dig out entry points declared in assembly code and AC_DEFINE proper
+ HAVE_NATIVE_func.
+
+ * mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro.
+
+ * mpn/x86/p6/aorsmul_1.asm: Use MULFUNC_PROLOGUE.
+ * mpn/x86/k6/aors_n.asm: Likewise.
+
+ * Makefile.am (EXTRA_DIST): Add config.in; needed when we don't
+ use AM_CONFIG_HEADER in configure.in.
+
+ * mpn/Makefile.am (INCLUDES): Add `-I..' for config.h and
+ gmp-mparam.h.
+ * mpf/Makefile.am: Likewise.
+ * mpq/Makefile.am: Likewise.
+ * mpz/Makefile.am: Likewise.
+
+ * mpf/tests/Makefile.am (INCLUDES): Add `-I../..' for config.h and
+ gmp-mparam.h.
+ * mpq/tests/Makefile.am: Likewise.
+ * mpz/tests/Makefile.am: Likewise.
+
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
+ * config.in: Regenerate.
+ * Makefile.in: Regenerate.
+ * mpf/Makefile.in: Regenerate.
+ * mpn/Makefile.in: Regenerate.
+ * mpq/Makefile.in: Regenerate.
+ * mpz/Makefile.in: Regenerate.
+ * mpf/tests/Makefile.in: Regenerate.
+ * mpq/tests/Makefile.in: Regenerate.
+ * mpz/tests/Makefile.in: Regenerate.
+
+2000-02-23 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/addmul_1.S: Amend comments, this code no longer used by
+ PentiumPro.
+ * mpn/x86/submul_1.S: Ditto.
+
+ * mpn/x86/k6/com_n.asm: Rewrite, smaller but same speed.
+
+ * mpn/x86/addmul_1.S: Add PROLOGUE and EPILOGUE to get .type and
+ .size for ELF. Rename #define size to n to avoid .size.
+ * mpn/x86/lshift.S: Ditto.
+ * mpn/x86/mul_1.S: Ditto.
+ * mpn/x86/mul_basecase.S: Ditto.
+ * mpn/x86/rshift.S: Ditto.
+ * mpn/x86/submul_1.S: Ditto.
+ * mpn/x86/udiv.S: Ditto.
+ * mpn/x86/umul.S: Ditto.
+ * mpn/x86/pentium/add_n.S: Ditto.
+ * mpn/x86/pentium/addmul_1.S: Ditto.
+ * mpn/x86/pentium/lshift.S: Ditto.
+ * mpn/x86/pentium/mul_1.S: Ditto.
+ * mpn/x86/pentium/mul_basecase.S: Ditto.
+ * mpn/x86/pentium/rshift.S: Ditto.
+ * mpn/x86/pentium/sub_n.S: Ditto.
+ * mpn/x86/pentium/submul_1.S: Ditto.
+
+2000-02-22 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_INIT): Use temporary file cnfm4p.tmp for
+ post-defines.
+ (GMP_FINISH): Ditto.
+ (GMP_DEFINE): Add third optional argument specifying location in
+ outfile.
+ (GMP_DEFINE_RAW): New macro.
+ * aclocal.m4: Regenerate.
+
+ * configure.in: Add `HAVE_TARGET_CPU_$target_cpu' using
+ GMP_DEFINE_RAW.
+ * configure: Regenerate.
+
+ * mpz/tests/Makefile.am: New test t-root.
+ * mpz/tests/Makefile.in: Regenerate.
+
+2000-02-22 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/root.c: Complete rewrite; still primitive, but at least correct.
+ * mpz/tests/t-root.c: New test.
+
+2000-02-22 Kevin Ryde <kevin@swox.se>
+
+ * mpn/x86/k7/mul_basecase.asm: New file.
+ * mpn/x86/k7/README: Add mpn_mul_basecase speed.
+ * mpn/x86/k7/gmp-mparam.h: New file.
+
+ * mpn/x86/x86-defs.m4 (loop_or_decljnz,cmov_bytes): New macros.
+ * mpn/asm-defs.m4 (m4_ifdef_anyof_p): New macro.
+
+ * mpn/x86/k6/aorsmul_1.asm: New file.
+ * mpn/x86/k6/addmul_1.S: Removed (was a copy of pentium version).
+ * mpn/x86/k6/submul_1.S: Removed (was a copy of pentium version).
+
+ * mpn/x86/p6/aorsmul_1.asm: Use OPERATION_addmul_1 and
+ OPERATION_submul_1.
+ * mpn/x86/k6/aors_n.asm: Use OPERATION_add_n and OPERATION_sub_n.
+ * configure.in: Declare multi-function files for k6 and p6.
+
+ * configure.in: Add HAVE_TARGET_CPU_$target_cpu for config.m4.
+ * mpn/asm-defs.m4 (define_not_for_expansion): New macro.
+
+ * mpn/generic/divrem_1n.c (__gmpn_divrem_1n): New file, split from
+ mpn/generic/divrem_1.c.
+ * mpn/generic/divrem_1.c: Ditto.
+ * configure.in (gmp_mpn_functions): Ditto.
+
+2000-02-21 Torbjorn Granlund <tege@swox.com>
+
+ * gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly
+ written.
+
+2000-02-21 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Link <src>/mpn/asm-defs.m4 to <build>mpn/asm.m4.
+ * configure: Regenerate.
+
+2000-02-21 Linus Nordberg <linus@swox.se>
+
+ * mpn/x86/k7/aorsmul_1.asm: Change OPERATION_ADDMUL -->
+ OPERATION_addmul_1. Change OPERATION_SUBMUL -->
+ OPERATION_submul_1.
+
+ * mpn/x86/k7/aors_n.asm: Change OPERATION_ADD --> OPERATION_add_n.
+ Change OPERATION_SUB --> OPERATION_sub_n.
+
+ * mpn/Makefile.am: Pass -DOPERATION_$* to preprocessors.
+ * mpn/Makefile.in: Regenerate.
+
+ * configure.in: Symlink mpn/asm-defs.m4 to build-dir/mpn. Link
+ multi-function files to mpn/<function>.asm and remove function
+ name from `gmp_mpn_functions'.
+ * configure: Regenerate.
+
+ * acinclude.m4 (GMP_FINISH): Tell user what we're doing.
+ * aclocal.m4: Regenerate.
+
+2000-02-21 Kevin Ryde <kevin@swox.se>
+
+ * gmp-impl.h: Rename __gmpn_mul_basecase to mpn_mul_basecase and
+ __gmpn_sqr_basecase to mpn_sqr_basecase, remove __gmpn prototypes.
+ * mpn/x86/mul_basecase.S: Ditto.
+ * mpn/x86/pentium/mul_basecase.S: Ditto.
+
+ * configure.in (gmp_m4postinc): Use x86-defs.m4 on athlon-*-* too.
+
+2000-02-20 Kevin Ryde <kevin@swox.se>
+
+ * acinclude.m4 (GSYM_PREFIX): Drop $1, change by Linus.
+ * mpn/asm-defs.m4 (PROLOGUE,EPILOGUE): Use GSYM_PREFIX as a
+ string, change by Linus.
+ * mpn/x86/x86-defs.m4: Use GSYM_PREFIX as a string.
+
+ * mpn/x86/k6/gmp-mparam.h: New file.
+ * mpn/asm-defs.m4 (m4_warning): New macro.
+
+ * mpn/x86/README: Amendments per new code and directories.
+ * mpn/x86/README.family: New file.
+ * mpn/x86/k6/README: New file.
+ * mpn/x86/k7/README: New file.
+
+ * mpn/generic/mul_n.c: Rename __gmpn_mul_basecase to
+ mpn_mul_basecase and __gmpn_sqr_basecase to mpn_sqr_basecase.
+ * mpn/generic/mul_basecase.c: Ditto.
+ * mpn/generic/sqr_basecase.c: Ditto.
+ * mpn/generic/mul.c: Ditto.
+
+2000-02-19 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Don't try to symlink more than one multi-func
+ file.
+ * configure: Regenerate.
+
+2000-02-18 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): GMP_DEFINE
+ `GSYM_PREFIX'. Run ACTIONs even when value is found in cache.
+ (GMP_CHECK_ASM_ALIGN_LOG): GMP_DEFINE `ALIGN'. Run ACTIONs even
+ when value is found in cache.
+ * aclocal.m4: Regenerate.
+
+ * configure.in: Don't define GSYM_PREFIX or ALIGN.
+ Add mechanism for multi-function files.
+ * configure: Regenerate.
+
+2000-02-18 Kevin Ryde <kevin@swox.se>
+
+ * configure.in (gmp_m4postinc): Enable x86-defs.m4.
+ * mpn/x86/k7/mul_1.asm: Fix include.
+ * mpn/x86/k6/mul_basecase.S: Removed (copy of the pentium version).
+ * mpn/x86/k6/mul_basecase.asm: New file.
+ * mpn/x86/k6/sqr_basecase.asm: New file.
+ * mpn/x86/k6/com_n.asm: New file.
+ * mpn/x86/k6/copyi.asm: New file.
+ * gmp.texi (Low-level Functions): Clarify mpn overlaps permitted.
+ * gmp-impl.h (MPN_OVERLAP_P): New macro.
+ * gmp-impl.h (assert_nocarry): New macro.
+ * mpn/tests/ref.c: New file, based in part on other mpn/tests/*.c.
+ * mpn/tests/ref.h: New file.
+
+2000-02-17 Linus Nordberg <linus@swox.se>
+
+ * Makefile.am (dist-hook): Don't include any emacs backup files
+ (*.~*) in dist.
+ * Makefile.in: Regenerate.
+
+2000-02-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/mul_1.asm: Use `rd' to get current PC; get rid of
+ getpc function.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+
+2000-02-17 Kevin Ryde <kevin@swox.se>
+
+ * gmp.h: Add prototypes and defines for mpn_and_n, mpn_andn_n,
+ mpn_com_n, mpn_copyd, mpn_copyi, mpn_ior_n, mpn_iorn_n,
+ mpn_mul_basecase, mpn_nand_n, mpn_nior_n, mpn_sqr_basecase,
+ mpn_xor_n, mpn_xorn_n.
+
+ * mpn/asm-defs.m4: Many additions making up initial version.
+ * mpn/asm-defs.m4 (L): Use defn(`LSYM_PREFIX').
+ * mpn/x86/x86-defs.m4: New file.
+ * mpn/x86/k6/aors_n.asm: New file.
+ * mpn/x86/k6/divmod_1.asm: New file.
+ * mpn/x86/k6/divrem_1.asm: New file.
+ * mpn/x86/k6/lshift.S: Removed (was a copy of the pentium version).
+ * mpn/x86/k6/lshift.asm: New file.
+ * mpn/x86/k6/mod_1.asm: New file.
+ * mpn/x86/k6/mul_1.S: Removed (was a copy of the pentium version).
+ * mpn/x86/k6/mul_1.asm: New file.
+ * mpn/x86/k6/rshift.S: Removed (was a copy of the pentium version).
+ * mpn/x86/k6/rshift.asm: New file.
+ * mpn/x86/k7/aors_n.asm: New file.
+ * mpn/x86/k7/aorsmul_1.asm: New file.
+ * mpn/x86/k7/mul_1.asm: New file.
+ * mpn/x86/k7/rshift.asm: New file.
+ * mpn/x86/p6/aorsmul_1.asm: New file.
+ * mpn/x86/copyi.asm: New file.
+ * mpn/x86/copyd.asm: New file.
+ * mpn/lisp/gmpasm-mode.el: New file.
+
+2000-02-16 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/v9/mul_1.asm: Conditionalize for PIC.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+ * mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
+ * mpn/sparc32/udiv_fp.asm: Likewise.
+
+2000-02-16 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Add mechanism for including target specific
+ m4-files in config.m4.
+ * configure: Regenerate.
+
+ * acinclude.m4 (GMP_PROG_CCAS): Begin assembly lines (except
+ labels) with a tab character. HP-UX demands it.
+ (GMP_CHECK_ASM_SIZE): Ditto.
+ (GMP_CHECK_ASM_LSYM_PREFIX): Ditto.
+ (GMP_CHECK_ASM_LABEL_SUFFIX): Set to empty string for HP-UX.
+ (GMP_CHECK_ASM_GLOBL): Change `.xport' --> `.export'.
+ * aclocal.m4: Regenerate.
+
+2000-02-16 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Define LSYM_PREFIX as
+ the prefix only, no argument.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+ * mpn/asm-defs.m4 (L): No argument to LSYM_PREFIX.
+
+2000-02-15 Linus Nordberg <linus@swox.se>
+
+ * acinclude.m4: Prefix all temporary shell variables with
+ `gmp_tmp_'.
+ (GMP_PROG_CC_FIND): Use defaults if no arguments are passed.
+ Quote use of arguments.
+ (GMP_PROG_CCAS): New macro.
+ (GMP_INIT): New macro.
+ (GMP_FINISH): New macro.
+ (GMP_INCLUDE): New macro.
+ (GMP_SINCLUDE): New macro.
+ (GMP_DEFINE): New macro.
+ (GMP_CHECK_ASM_LABEL_SUFFIX): New macro.
+ (GMP_CHECK_ASM_TEXT): New macro.
+ (GMP_CHECK_ASM_DATA): New macro.
+ (GMP_CHECK_ASM_GLOBL): New macro.
+ (GMP_CHECK_ASM_TYPE): New macro.
+ (GMP_CHECK_ASM_SIZE): New macro.
+ (GMP_CHECK_ASM_LSYM_PREFIX): New macro.
+ (GMP_CHECK_ASM_W32): New macro.
+ * aclocal.m4: Regenerate.
+
+ * configure.in: Find m4 and nm for target.
+ Use new macros to create config.m4.
+ Prefix all temporary shell variables with `tmp_'.
+ Pass `-X 64' to nm for 64-bit PPC target with 64-bit compiler.
+ * configure: Regenerate.
+
+ * Makefile.am (dist-hook): *Really* remove all CVS dirs in
+ dist.
+ * Makefile.in: Regenerate.
+
+ * mpn/Makefile.am: Add target for building .lo and .o from
+ .asm.
+ Pass -DPIC to preprocessor (CPP/m4) when building .lo.
+ Build .o a second time for target .lo, without -DPIC to
+ preprocessor.
+ (SUFFIX): Add `.asm'.
+ (EXTRA_DIST): Add asm-defs.m4.
+ * mpn/Makefile.in: Regenerate.
+
+ * mpf/Makefile.in: Regenerate.
+ * mpf/tests/Makefile.in: Regenerate.
+ * mpq/Makefile.in: Regenerate.
+ * mpq/tests/Makefile.in: Regenerate.
+ * mpz/Makefile.in: Regenerate.
+ * mpz/tests/Makefile.in: Regenerate.
+
+2000-02-15 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc32/udiv_fp.asm: Change `RODATA' to `DATA'.
+ * mpn/sparc32/v8/supersparc/udiv.asm: Likewise.
+ * mpn/sparc32/v9/addmul_1.asm: Likewise.
+ * mpn/sparc32/v9/submul_1.asm: Likewise.
+ * mpn/sparc32/v9/mul_1.asm: Likewise.
+
+ * mpn/sparc32/add_n.asm: Rename `size' -> `n'.
+ * mpn/sparc32/sub_n.asm: Likewise.
+
+ * sparc32: Rename `.s' and `.S' files to `.asm'.
+ * sparc64: Rename `.s' and `.S' files to `.asm'.
+
+2000-02-11 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Adopt to new config.guess sparc naming conventions.
+
+ * config.guess (sun4u:SunOS:5.*:*): Change `sparc9' to `sparcv9'.
+ * config.guess (sun4m:SunOS:5.*:*): Change to sun4[md]:SunOS:5.*:* and
+ change `sparc8' to `sparcv8'.
+
+ * mpn/x86/add_n.S: Use PROLOGUE/EPILOGUE.
+ * mpn/x86/sub_n.S: Likewise.
+
+ * mpn/x86/syntax.h (PROLOGUE): New name for PROLOG.
+ * mpn/x86/syntax.h (EPILOGUE): New name for EPILOG.
+
+2000-02-11 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Better path for 64-bit sparc without 64-bit cc.
+ Change sparc8 --> sparcv8.
+ Change sparc9 --> sparcv9.
+ * configure: Regenerate.
+
+2000-02-10 Linus Nordberg <linus@swox.se>
+
+ * configure.in: Use Autoconf.
+ * Makefile.am: New file.
+
+ * AUTHORS: New file.
+ * COPYING: New file.
+ * acinclude.m4: New file.
+ * acconfig.h: New file.
+
+ * configure: Generate.
+ * Makefile.in: Generate.
+ * aclocal.m4: Generate.
+ * config.in: Generate.
+
+ * install.sh: Remove.
+ * install-sh: New file from Automake.
+ * missing: New file from Automake.
+ * ltconfig: New file from Libtool.
+ * ltmain.sh: New file from Libtool.
+
+ * mpf/Makefile.am: New file.
+ * mpf/Makefile.in: Generate.
+ * mpf/configure.in: Remove.
+ * mpf/tests/Makefile.am: New file.
+ * mpf/tests/Makefile.in: Generate.
+ * mpf/tests/configure.in: Remove.
+
+ * mpn/Makefile.am: New file.
+ * mpn/Makefile.in: Generate.
+ * mpn/configure.in: Remove.
+
+ * mpq/Makefile.am: New file.
+ * mpq/Makefile.in: Generate.
+ * mpq/configure.in: Remove.
+ * mpq/tests/Makefile.am: New file.
+ * mpq/tests/Makefile.in: Generate.
+ * mpq/tests/configure.in: Remove.
+
+ * mpz/Makefile.am: New file.
+ * mpz/Makefile.in: Generate.
+ * mpz/configure.in: Remove.
+ * mpz/tests/Makefile.am: New file.
+ * mpz/tests/Makefile.in: Generate.
+ * mpz/tests/configure.in: Remove.
+
+2000-02-10 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/add_n.S: Don't use label L0 twice.
+ * mpn/x86/sub_n.S: Likewise.
+
+2000-01-20 Linus Nordberg <linus@swox.se>
+
+ * demos/pexpr.c: Don't use setup_error_handler() in windoze.
+
+2000-01-19 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (sigaltstack): #define to sigstack for AIX.
+ (setup_error_handler): Don't write to ss_size and ss_flags
+ on AIX.
+
+2000-01-11 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/configure.in (hppa2.0*-*-*): Move assignment of
+ target_makefile_frag to where it belongs.
+
+1999-12-21 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (v9 umul_ppmm): New #define.
+ (v9 udiv_qrnnd): New #define.
+
+1999-12-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divmod_1.c: Use invert_limb.
+ * mpn/generic/mod_1.c: Use invert_limb.
+
+ * gmp-impl.h (invert_limb): Put definition here.
+ * mpn/generic/divrem.c (invert_limb): Delete definition.
+ * mpn/generic/divrem_2.c (invert_limb): Delete definition.
+
+ * gmp.h (mpn_divrem): Inhibit for non-gcc.
+ But declare (undo 1999-11-22 change).
+
+ * gmp-impl.h (DItype,UDItype): Do these also if _LONG_LONG_LIMB.
+
+ * longlong.h: Move 64-bit hppa code out of __GNUC__ conditional.
+
+ * stack-alloc.c (HSIZ): New #define.
+ (__tmp_alloc): Use HSIZ instead of sizeof(tmp_stack).
+
+1999-12-10 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Clean up handling of x86 CPUs: Properly recognize
+ Amd CPUs as unique entities. Use manufacturer's names of
+ processors ("pentium", etc); still match ambiguous names like
+ "i586", "i686", "p6" but be conservative in interpreting them.
+
+ * configure.in: Recognize x86 CPU types known by config.guess.
+ * mpn/configure.in: Likewise. Add x86/mmx path component as
+ appropriate.
+ (athlon-*-*): Fix typo.
+
+ * config.guess: Update x86 recog code to initially match
+ more than just i386.
+ Call K6-2 and K6-III for "k62" and "k63" respectively.
+
+ * config.guess: Recognize x86 CPU types.
+ Update code for FreeBSD, NetBSD, OpenBSD, Linux.
+
+1999-12-08 Torbjorn Granlund <tege@swox.com>
+
+ * mpf/pow_ui.c: Avoid final squaring in loop.
+
+1999-12-07 Torbjorn Granlund <tege@swox.com>
+
+ * gmp-impl.h (udiv_qrnnd_preinv2gen): Prefix local variables with `_'.
+ (udiv_qrnnd_preinv2norm): Likewise.
+ From Kevin Ryde:
+ (HAVE_ALLOCA): #define also if defined (alloca).
+
+1999-12-04 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/tests/add_n.c: Set OPS from CLOCK.
+ * mpn/tests/sub_n.c: Likewise.
+ * mpn/tests/mul_1.c: Likewise.
+ * mpn/tests/addmul_1.c: Likewise.
+ * mpn/tests/submul_1.c: Likewise.
+
+ * mpn/tests/lshift.c: Update from add_n.c.
+ * mpn/tests/rshift.c: Likewise.
+
+1999-12-03 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/powerpc64/copy.S: New file.
+
+1999-12-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/copy.s: New file.
+
+ * mpn/tests/copy.c: New file.
+
+ * mpn/configure.in: Recognize more Amd CPUs; Set special paths for
+ k7 CPU.
+
+ * configure.in: Recognize Amd x86 CPUs.
+
+ * mpz/fdiv_r_2exp.c: In rounding code, read in->_mp_size before
+ writing to res->_mp_size.
+
+ * mpn/powerpc64/*.S: Clean up assembly syntax, add function headers.
+ * mpn/powerpc64/gmp-mparam.h: (KARATSUBA_MUL_THRESHOLD): #define.
+ (KARATSUBA_SQR_THRESHOLD): #define.
+
+ * mpn/tests/add_n.c (main): Only print test number if TIMES==1
+ and not printing.
+ (main): Don't run reference code if NOCHECK.
+ * mpn/tests/sub_n.c: Likewise.
+ * mpn/tests/mul_1.c: Likewise.
+ * mpn/tests/addmul_1.c: Likewise.
+ * mpn/tests/submul_1.c: Likewise.
+
+ * mpn/tests/lshift.c: (main): Only print test number if TIMES==1
+ and not printing.
+ * mpn/tests/rshift.c: Likewise.
+
+1999-11-22 Torbjorn Granlund <tege@swox.com>
+
+ * gmp.h (mpz_init_set_str): Declare using __gmp_const.
+ (mpz_set_str): Likewise.
+ (mpf_init_set_str): Likewise.
+ (mpf_set_str): Likewise.
+ (mpn_set_str): Likewise.
+ (__gmp_0): Likewise.
+ (mpn_divrem): Remove separate declaration; it's defined later in
+ this file.
+
+ * gmp.h: Replace "defined (__STD__)' by (__STDC__-0) in
+ expressions involving more than one term, to handle Sun's compiler
+ that most helpfully sets __STDC__ to 0.
+ * gmp-impl.h: Likewise.
+ * longlong.h: Likewise.
+
+1999-11-21 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
+ (KARATSUBA_SQR_THRESHOLD): #define.
+
+ * mpn/sparc64/lshift.s: Compensate stack references for odd stack ptr.
+ * mpn/sparc64/rshift.s: Likewise.
+
+ * mpn/sparc64/addmul_1.s: Propagate carry properly.
+ * mpn/sparc64/submul_1.s: Likewise.
+
+ * mpn/sparc64/sub_n.s: Rewrite.
+
+ * mpn/sparc64/sub_n.s: Get operand order for main subcc right
+ (before scrapping this code for new code).
+
+1999-11-20 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/sparc64/add_n.s: Rewrite.
+
+1999-11-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/syntax.h (PROLOG): New #define.
+ (EPILOG): New #define.
+
+ * gmp.h (mpn_addsub_n): Declare.
+ * gmp.h (mpn_add_nc): Declare.
+ * gmp.h (mpn_sub_nc): Declare.
+ * mpn/powerpc64/addsub_n.S: New file.
+
+1999-11-17 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/gmp-mparam.h
+ (KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
+ (KARATSUBA_SQR_THRESHOLD): Likewise.
+
+1999-11-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/mul_1.S: Unroll and optimize for P6 and K7.
+
+1999-11-09 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/x86/p6/gmp-mparam.h
+ (KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
+ (KARATSUBA_SQR_THRESHOLD): Likewise.
+
+1999-11-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/addsub_n.c: New file.
+
+1999-11-02 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Handle alpha:FreeBSD with alpha:NetBSD.
+
+ * configure.in (vax*-*-*): New case.
+ * config/mt-vax: New file.
+ * mpn/vax/add_n.s: Rewrite.
+ * mpn/vax/sub_n.s: Rewrite.
+
+1999-10-31 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/vax/rshift.s: New file.
+ * mpn/vax/lshift.s: New file.
+
+1999-10-29 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Handle k5 and k6.
+ * mpn/configure.in: Recognize k6.
+
+ * mpf/tests/t-get_d.c (LOW_BOUND, HIGH_BOUND): New #defines.
+ (main): Tighten error bounds to 14 digits.
+
+ * longlong.h (default umul_ppmm, when smul_ppmm exists):
+ Rename __m0 => __xm0, __m1 => __xm1.
+ (default smul_ppmm): Likewise.
+
+1999-10-11 Torbjorn Granlund <tege@swox.com>
+
+ * config.guess: Reverse the test for POWER vs PowerPC.
+ * config.guess (sun4m:SunOS:5.*:*): New case.
+ * config.guess (sun4u:SunOS:5.*:*): New case.
+
+1999-09-29 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divrem_2.c: Clean up comments.
+
+1999-09-23 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/Makefile.in: Use move-if-change when generating binaries.
+ * mpf/tests/Makefile.in: Likewise.
+ * mpq/tests/Makefile.in: Likewise.
+ * mpz/tests/move-if-change: New file.
+ * mpf/tests/move-if-change: New file.
+ * mpq/tests/move-if-change: New file.
+
+ * gmp.h (mpn_incr_u): New macro (from mpn/generic/mul_n.c).
+ (mpn_decr_u): New macro.
+
+ * mpn/generic/mul_n.c (mpn_incr): Delete.
+ * mpn/generic/mul_n.c: Update usages mpn_incr => mpn_incr_u.
+ * mpn/generic/divrem_newt.c: Use mpn_incr_u and mpn_decr_u instead of
+ mpn_add_1 and mpn_sub_1.
+ * mpn/generic/sqrtrem.c: Likewise.
+ * mpz/cdiv_q_ui.c: Likewise.
+ * mpz/cdiv_qr_ui.c: Likewise.
+ * mpz/fdiv_q_ui.c: Likewise.
+ * mpz/fdiv_qr_ui.c: Likewise.
+
+ * mpn/generic/sqrtrem.c: Start single-limb Newton iteration from 18
+ bits.
+
+1999-07-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divrem_1.c (__gmpn_divrem_1n): New function.
+
+ * mpn/generic/divrem_2.c: New file, code from divrem.c, `case 2:'.
+ * mpn/Makefile.in: Compile divrem_2.c.
+ * make.bat: Compile divrem_2.c.
+ * mpn/configure.in (functions): Add divrem_2.
+ * gmp.h: Declare mpn_divrem_2.
+
+ * mpn/generic/divrem.c: Delete special cases, handle just divisors
+ of more than 2 limbs.
+ * gmp.h (mpn_divrem): Call mpn_divrem_1, mpn_divrem_2, as appropriate.
+
+ * mpn/generic/divrem.c: Rework variable usage for better register
+ allocation.
+
+1999-07-26 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed.
+ * mpn/alpha/ev5/sub_n.s: Likewise.
+
+1999-07-21 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (alpha): Define umul_ppmm for cc.
+
+ * gmp-impl.h (DItype, UDItype): Define for non-gcc if _LONGLONG is
+ defined.
+
+1999-07-15 Torbjorn Granlund <tege@swox.com>
+
+ * longlong.h (powerpc64 count_leading_zeros): Fix typo.
+ (powerpc64 add_ssaaaa): Fix typos.
+ (powerpc64 sub_ddmmss): Fix typos.
+
+1999-07-14 Torbjorn Granlund <tege@swox.com>
+
+ * mpz/tests/Makefile.in: Pass XCFLAGS when linking.
+ * mpf/tests/Makefile.in: Likewise.
+ * mpq/tests/Makefile.in: Likewise.
+ * mpn/Makefile.in (.S.o): Pass XCFLAGS.
+
+ * longlong.h: Add support for 64-bit PowerPC.
+ * config.sub: Handle "powerpc64".
+ * configure.in: Likewise.
+ * mpn/configure.in: Suppress use of config/t-ppc-aix for now,
+ it seems compiler passes proper options.
+ * mpn/powerpc64/*.S: New files.
+
+ * Makefile.in (FLAGS_TO_PASS): Pass "AR=$(AR)".
+
+1999-07-07 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (factor): Change alloca call to a malloc/free pair.
+
+ * mpn/powerpc32/syntax.h: Add #define's for crN.
+
+ * gmp.h (gmp_rand_algorithm): Remove spurious `,'.
+
+1999-07-05 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/generic/divrem_1.c: Normalize divisor when needed.
+
+1999-07-02 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/configure.in (powerpc*-apple-mach): New configuration.
+ * mpn/powerpc32/*: Add support for apple-macho syntax.
+ * mpn/powerpc32/syntax.h: New file.
+ * gmp-impl.h: Don't use `__attribute__' syntax for Apple's perversion
+ of GCC.
+
+1999-05-26 Linus Nordberg <linus@swox.se>
+
+ * rand.c (gmp_rand_init): Fix typo.
+
+ * mpn/generic/rawrandom.c (mpn_rawrandom): Count bits, not limbs,
+ to keep track of how many rounds to do in loop. Clean up
+ temporary allocation. Update `seedsize' inside loop. Mask off
+ the correct number of bits from final result. Init `mcopyp' even
+ when not normalizing `m'.
+
+ * randlc.c (gmp_rand_init_lc): Fix typo (don't call
+ mpz_init_set_ui()).
+
+ * mpn/generic/rawrandom.c (mpn_rawrandom): Set SIZ(s->seed) when
+ reallocating.
+
+ * tests/rand/Makefile (test, bigtest): Add 33-bit tests.
+
+ * tests/rand/gen.c (main): Set precision of variable passed to
+ mpf_urandomb(). Add option `-p'.
+
+1999-05-25 Linus Nordberg <linus@swox.se>
+
+ * randcm.c: Remove.
+ * randcmui.c: Remove.
+ * Makefile.in: Remove randcm and randcmui.
+ * make.bat: Ditto.
+ * gmp-impl.h: Remove prototypes for __gmp_rand_init_common() and
+ __gmp_rand_init_common_ui().
+ * randlc.c (gmp_rand_init_lc): Don't call
+ __gmp_rand_init_common().
+
+ * randlcui.c (gmp_rand_init_lc_ui): Don't call
+ __gmp_rand_init_common_ui().
+
+ * gmp.h (__gmp_rand_state_struct): Remove unused member `maxval'.
+ * randclr.c (gmp_rand_clear): Remove reference to s->maxval.
+ * randcm.c (__gmp_rand_init_common): Ditto
+
+ * mpn/generic/rawrandom.c (mpn_rawrandom): Don't calculate nlimbs
+ twice.
+
+ * gmp.h (__gmp_rand_dist): Remove.
+
+1999-05-24 Linus Nordberg <linus@swox.se>
+
+ * mpn/generic/rawrandom.c: Clean up comments.
+
+ * gmp.texi: Add documentation for random number generation.
+
+1999-05-21 Linus Nordberg <linus@swox.se>
+
+ * gmp.h: Typedef `gmp_rand_state' as an array with one element.
+ Change prototypes accordingly.
+ * gmp-impl.h: Change prototypes using `gmp_rand_state'.
+ * rand.c (gmp_rand_init): Take `gmp_rand_state' as argument
+ instead of a pointer to a `gmp_rand_state'.
+ * mpf/urandom.c (mpf_urandomb): Ditto.
+ * mpz/urandom.c (mpz_urandomb): Ditto.
+ * mpn/generic/rawrandom.c (mpn_rawrandom): Ditto.
+ * randcmui.c (__gmp_rand_init_common_ui): Ditto.
+ * randlc.c (gmp_rand_init_lc): Ditto.
+ * randlcui.c (gmp_rand_init_lc_ui): Ditto.
+ * randui.c (gmp_rand_init_ui): Ditto.
+ * randcm.c (__gmp_rand_init_common): Ditto.
+ * randclr.c (gmp_rand_clear): Ditto.
+
+ * tests/rand/gen.c (main): Pass `s' to rand-funcs instead of address
+ of `s'.
+
+1999-05-20 Linus Nordberg <linus@swox.se>
+
+ * Makefile.in: Rename randi.c --> rand.c, randi_lc.c --> randlc.c,
+ randicom.c --> randcm.c. Add randui.c, randcmui.c, randlcui.c.
+ * make.bat: Ditto.
+
+ * gmp.h: Add prototypes for gmp_rand_init_ui() and
+ gmp_rand_init_lc_ui().
+ * gmp-impl.h: Add prototypes for __gmp_rand_init_common() and
+ __gmp_rand_init_common_ui().
+
+ * randlc.c, randcm.c, randclr.c, rand.c: Change #include of
+ <gmp.h> to "gmp.h".
+ * randclr.c: Include stdlib.h for free().
+ * rand.c: Include gmp-impl.h.
+
+1999-05-12 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/configure.in: Put generic m68k alternative last.
+
+1999-05-04 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c (setup_error_handler): Use sigemptyset to create
+ empty set (for portability).
+ (fns): Fix typo '#if #if'.
+ (mpz_eval_expr): Implement FERMAT and MERSENNE.
+
+ * demos/pexpr.c: Cast longjmp argument via long to silent warnings on
+ 64-bit hosts.
+
+1999-05-03 Torbjorn Granlund <tege@swox.com>
+
+ * demos/pexpr.c: Add #defines for GMP 1.x and 2.0 compatibility.
+
+ * demos/pexpr.c (setup_error_handler): New function; take signal
+ handler setup code from main(), with major modifications to use modern
+ signal interface.
+ (main): Remove signal handler setup code; call setup_error_handler.
+
+1999-04-29 Linus Nordberg <linus@swox.se>
+
+ * tests/rand/findcl.c (main): Add option '-i' for interval factor.
+ Separate v and merit lose figures. Add '-v' for version.
+
+1999-04-28 Linus Nordberg <linus@swox.se>
+
+ * tests/rand/statlib.c: Change debugging stuff.
+
+ * tests/rand/gmpstat.h: Add debug values definitions.
+
+ * tests/rand/findcl.c (main): Print low and high merit on startup.
+ Print version string on startup. Catch SEGV and HUP. Add option -d
+ for debug. Fix bug making test for v too hard.
+ (sh_status): New function.
+ (sh_status): Flush stdout. Add RCSID.
+
+1999-04-27 Linus Nordberg <linus@swox.se>
+
+ * tests/rand/Makefile (clean): Add target.
+
+1999-04-27 Linus Nordberg <linus.nordberg@canit.se>
+
+ * tests/rand/stat.c: Include gmpstat.h.
+ Add global int g_debug.
+
+ * tests/rand/spect.c: Include <unistd.h>.
+
+ * tests/rand/findcl.c (main): Input is `m', not all factors of `m'.
+ Print only the very first matching multiplier. Include <unistd.h>.
+ Flush stdout. Print "done." when done.
+
+ * tests/rand/spect.c: Move everything but main() to statlib.c.
+
+ * tests/rand/findcl.c: New file.
+
+ * tests/rand/gmpstat.h: New file.
+
+ * tests/rand/statlib.c (merit, merit_u, f_floor, vz_dot,
+ spectral_test): New functions.
+
+1999-04-27 Torbjorn Granlund <tege@swox.com>
+
+ * mpn/configure.in: Fix typo, "sparc-*)" was "sparc)".
+
+1999-04-21 Torbjorn Granlund <tege@swox.com>
+
+ * config.sub: Recognize ev6.
+
+1999-04-12 Linus Nordberg <linus.nordberg@canit.se>
+
+ * urandom.c: Split up into randclr.c, randi.c, randi_lc.c,
+ randicom.c.
+ * randclr.c, randi.c, randi_lc.c, randicom.c: New files.
+ * Makefile.in: Remove urandom. Add randclr, randi, randi_lc,
+ randicom.
+ * make.bat: Ditto
+
+1999-03-31 Torbjorn Granlund <tege@matematik.su.se>
+
+ * configure.in (sparc9-*-solaris2.[789]*, etc): New alternative.
+ * mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*.
+
+1999-03-30 Linus Nordberg <linus.nordberg@canit.se>
+
+ * urandom.c (__gmp_rand_scheme): Change NULL->0.
+ Include "gmp.h" instead of <gmp.h>.
+
+1999-03-29 Linus Nordberg <linus.nordberg@canit.se>
+
+ * gmp.h (__gmp_rand_data_lc): Now holds a, c, m instead of scheme
+ struct.
+ (__gmp_rand_lc_scheme_struct): Remove mpz_t's `a' and `m'.
+
+ * tests/rand/stat.c (f_freq): Don't print 2nd level results if doing
+ 1st level.
+
+ * tests/rand/gen.c (main): Set default algorithm to mpz_urandomb.
+ (main): Add option -c.
+
+1999-03-24 Linus Nordberg <linus.nordberg@canit.se>
+
+ * tests/rand/Makefile (GMPINC): Rename to GMPH.
+ (GMPH): Add gmp-mparam.h.
+ (CFLAGS): Add -I$(GMPLIBDIR)/mpn
+
+1999-03-23 Linus Nordberg <linus.nordberg@canit.se>
+
+ * Makefile.in: Compile top-dir/urandom.c.
+ * make.bat: Ditto.
+
+ * mpn/Makefile.in: Compile rawrandom.c.
+ * make.bat: Ditto.
+
+ * mpn/configure.in (functions): Add rawrandom.
+
+ * gmp.h (__gmp_rand_scheme_struct): Rename to
+ __gmp_rand_lc_scheme_struct.
+ (__gmp_rand_data_lc): Remove member 'n'. Allocate a
+ __gmp_rand_lc_scheme_struct instead of a pointer to one.
+ Add prototype for gmp_rand_init_lc(), mpn_rawrandom().
+ New prototype for mpz_urandomb().
+
+ * urandom.c: New file.
+ (__gmp_rand_init_common): New function.
+ (gmp_rand_init_lc): New function.
+ (gmp_rand_init): Don't init data_lc->n. Call gmp_rand_init_lc()
+ and __gmp_rand_init_common().
+ (gmp_rand_clear): Remove reference to data_lc->n.
+
+ * mpz/urandom.c (gmp_rand_init, gmp_rand_clear): Move to new file
+ urandom.c in top-dir.
+ (mpz_urandomb): Add function parameter nbits. Call mpn_rawrandom().
+
+ * mpf/urandom.c (mpf_urandomb): Call mpn_rawrandom().
+
+ * mpn/generic/rawrandom.c: New file.
+ (mpn_rawrandom): New function.
+
+1999-03-17 Torbjorn Granlund <tege@matematik.su.se>
+
+ * extract-dbl.c: When packing result, adjust exp when sc == 0.
+
+ * mpf/tests/t-get_d.c: New file.
+ * mpf/tests/Makefile.in: Compile t-get_d.c.
+
+1999-03-16 Linus Nordberg <linus.nordberg@canit.se>
+
+ * mpz/urandom.c (__gmp_rand_scheme): Add extra braces around the
+ mpz_t members.
+
+ * make.bat: Compile mpz/urandom.c and mpf/urandom.c
+
+ * tests/rand/statlib.c (ks_table): Use mpf_pow_ui() and exp().
+
+ * tests/rand/gen.c: Include unistd.h for getopt.
+
+1999-03-15 Linus Nordberg <linus.nordberg@canit.se>
+
+ * mpz/urandom.c (gmp_rand_init): New function.
+ (gmp_rand_clear): New function.
+ (mpz_urandomb): New function.
+
+ * mpz/Makefile.in: Compile urandom.c
+
+ * mpf/urandom.c (mpf_urandomb): New function.
+
+ * mpf/Makefile.in: Compile urandom.c.
+
+ * gmp.h (__gmp_rand_state_struct, __gmp_rand_scheme_struct): New
+ structs for randomization functions.
+ (gmp_rand_dist, gmp_rand_alogrithm): New enums for randomization
+ functions.
+ (mpz_urandomb, mpf_urandomb): Add prototype.
+ (gmp_rand_init, gmp_rand_clear): Add prototype.
+
+ * tests/rand/gen.c, stat.c, statlib.c, statlib.h: New files.
+ * tests/rand/Makefile, tests/rand/ChangeLog: New files.
+
+1999-03-15 Torbjorn Granlund <tege@matematik.su.se>
+
+ * .gdbinit: New file.
+
+ * mpz/dump.c: New file.
+ * mpz/Makefile.in: Compile dump.c.
+ * make.bat: Likewise.
+ * gmp.h (mpz_dump): Declare.
+
+1999-03-14 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/tests/reuse.c: Also test mpz_invert and mpz_divexact.
+
+ * mpz/tests/convert.c: Update to GMP 2 variable syntax.
+
+1999-03-13 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/README: New file.
+ * mpz/README: New file.
+
+ * mpf/pow_ui.c: New file.
+ * mpf/Makefile.in: Compile pow_ui.c.
+ * make.bat: Likewise.
+ * gmp.h (mpf_pow_ui): Declare.
+
+1999-03-12 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/configure.in: Stage 1 of rewrite.
+ * mpn/underscore.h: New name for bsd.h.
+ * mpn/sysv.h: Deleted.
+
+ * mpn/m68k/*: Don't include sysdep.h.
+
+ * mpn/pa64/README: New file.
+
+1999-03-11 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/powerpc32/add_n.S: Add support for both AIX and ELF syntax.
+ Renamed from `.s'.
+ * mpn/powerpc32/sub_n.S: Likewise.
+ * mpn/powerpc32/lshift.S: Likewise.
+ * mpn/powerpc32/rshift.S: Likewise.
+ * mpn/powerpc32/mul_1.S: Likewise.
+ * mpn/powerpc32/addmul_1.S: Likewise.
+ * mpn/powerpc32/submul_1.S: Likewise.
+
+ * mpn/powerpc32/umul.S: New file.
+ * mpn/sparc32/v8/umul.S: New file.
+ * mpn/sparc32/umul.S: New file.
+ * mpn/x86/umul.S: New file.
+ * mpn/x86/udiv.S: New file.
+
+ * mpn/Makefile.in (mul_basecase.o): Delete rule.
+
+1999-02-22 Torbjorn Granlund <tege@matematik.su.se>
+
+ * configure.in (hppa2.0*-*-*): Force use of GCC.
+
+ * extract-dbl.c: Handle IEEE denormalized numbrs. Clean up.
+
+1998-12-02 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/Makefile.in (CCAS): New macro.
+ (.s.o): Use CCAS.
+ (.S.o): Likewise.
+
+ * mpn/Makefile.in (mul_basecase.o): Add dependency.
+ (sqr_basecase.o): Likewise.
+ (mod_1.o): Likewise.
+
+ * demos/pexpr.c (cputime): Test also __hpux.
+ (cleanup_and_exit): Check SIGXCPU only #ifdef LIMIT_RESOURCE_USAGE.
+
+ * mpz/tests/t-2exp.c: Use urandom, not random.
+
+ * mpn/configure.in (arm*-*-*): New alternative.
+
+1998-11-30 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp-impl.h (union ieee_double_extract): Special case for
+ little-endian arm.
+ (LIMBS): Alias for PTR.
+
+1998-11-26 Torbjorn Granlund <tege@matematik.su.se>
+
+ * longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'.
+ (m68k stuff): Clean up; add coldfire support.
+
+1998-11-23 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
+ (KARATSUBA_SQR_THRESHOLD): #define.
+
+ * mpn/sparc32/v9/README: New file.
+
+1998-11-20 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/x86/README: New file.
+
+ * mpn/arm/gmp-mparam.h: New file.
+ * mpn/pa64/gmp-mparam.h: New file.
+ * mpn/hppa/gmp-mparam.h: New file.
+ * mpn/x86/pentium/gmp-mparam.h: New file.
+ * mpn/sparc32/v9/gmp-mparam.h: New file.
+ * mpn/powerpc32/gmp-mparam.h: New file.
+ * mpn/x86/p6/gmp-mparam.h: New file.
+
+ * mpn/alpha/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
+ (KARATSUBA_SQR_THRESHOLD): #define.
+
+ * mpn/configure.in: Point to x86/p6 when appropriate.
+
+ * mpn/power/umul.s: New file.
+ * mpn/power/sdiv.s: New file.
+ * mpn/pa64/addmul_1.S: New file.
+ * mpn/pa64/submul_1.S: New file.
+ * mpn/pa64/mul_1.S: New file.
+ * mpn/pa64/udiv_qrnnd.c: New file.
+ * mpn/pa64/umul_ppmm.S: New file.
+ * mpn/mips2/umul.s: New file.
+ * mpn/m68k/mc68020/umul.s: New file.
+ * mpn/m68k/mc68020/udiv.s: New file.
+ * mpn/hppa/hppa1_1/umul.s: New file.
+ * mpn/alpha/umul.s: New file.
+ * mpn/a29k/udiv.s: New file.
+ * mpn/a29k/umul.s: New file.
+
+1998-11-17 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/x86/mul_basecase.S: New file for non-pentiums.
+ * mpn/x86/mul_basecase.S: Move to mpn/x86/pentium.
+
+1998-11-16 Torbjorn Granlund <tege@matematik.su.se>
+
+ * make.bat: Compile mul_basecase.c and sqr_basecase.c.
+
+1998-11-10 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/invert.c: Defer writing to parameter `invert' until
+ end.
+
+1998-11-03 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/pa64/udiv_qrnnd.c: Handle more border cases.
+
+1998-10-29 Torbjorn Granlund <tege@matematik.su.se>
+
+ * insert-dbl.c: Special case biased exponents < 1; Get boundary for
+ Inf right.
+
+ * longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB): New #define.
+
+1998-10-28 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/powerpc32/submul_1.s: Rewrite, optimizing for PPC604.
+ * mpn/powerpc32/addmul_1.s: Likewise.
+ * mpn/powerpc32/lshift.s: Likewise.
+
+1998-10-23 Torbjorn Granlund <tege@matematik.su.se>
+
+ * config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus.
+
+ * mpn/sparc32/v9/submul_1.s: New file.
+
+1998-10-21 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/config/mt-pa2hpux: New file.
+ * mpn/configure.in (hppa2.0*-*-*): Use new 64-bit code.
+
+ * config.sub: Recognize hppa2.0 as CPU type.
+
+ * longlong.h (64-bit hppa): Add umul_ppmm and udiv_qrnnd.
+ * mpn/pa64/mul_1.S: New file.
+ * mpn/pa64/addmul_1.S: New file.
+ * mpn/pa64/submul_1.S: New file.
+ * mpn/pa64/umul_ppmm.S: New file.
+ * mpn/pa64/udiv_qrnnd.c: New file.
+
+1998-10-20 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/pprime_p.c: Pass 1L, not 1, to mpz_cmp_ui.
+
+ * mpz/fdiv_q_2exp.c: Cast `long' argument to `mp_limb_t' for mpn calls.
+ * mpz/gcd_ui.c: Likewise.
+ * mpz/add_ui.c: Likewise.
+ * mpz/sub_ui.c: Likewise.
+
+1998-10-19 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t
+ index.
+
+1998-10-17 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/sparc32/v9/mul_1.s: Misc cleanups.
+ * mpn/sparc32/v9/addmul_1.s: Misc cleanups.
+
+1998-10-16 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/tests/{add,sub,}mul_1.c: Print xlimb using mpn_print.
+
+ * mpz/tests/t-powm.c (SIZE): Increase to 50.
+ (EXP_SIZE): New parameter; use it for computing exp_size.
+
+1998-10-15 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/divrem_newt.c: Use TMP_ALLOC interface.
+
+ * mpn/generic/sqrtrem.c: Check BITS_PER_MP_LIMB before defining
+ assembly variants of SQRT.
+
+1998-10-14 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/tests: Clean up timing routines. Don't include longlong.h
+ where it is not needed.
+ (mpn_print): Handle printing when _LONG_LONG_LIMB.
+ * mpn/tests/{add,sub,}mul_1.c: Generate xlimb with mpn_random2
+ and do it whether TIMES != 1 or not.
+
+ * mpn/generic/mul_n.c: Delay assignment of `sign' for lower
+ register pressure.
+
+ * mpn/sparc32/v9/mul_1.s: New file.
+
+ * config/mt-sprc9-gcc: New file.
+ * configure.in: Use it.
+
+ * mpn/configure.in: Use sparc64 for Solaris 2.7 and later with a
+ sparc v9 CPU.
+ * mpn/configure.in: Use sparc32/v9 for Solaris 2.6 or earlier with
+ a sparc v9 CPU.
+
+ * mpf/sub.c: In initial code for ediff == 0, limit precision
+ before jumping to `normalize'.
+
+1998-10-13 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/hppa/hppa2_0/add_n.s: New file.
+ * mpn/hppa/hppa2_0/sub_n.s: New file.
+ * mpn/configure.in: Handle hppa2.0 (32-bit code for now).
+
+ * config.guess: Update from egcs 1.1.
+ (9000/[3478]??:HP-UX:*:*): Properly return 2.0 for all known 2.0
+ machines.
+
+1998-10-07 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/root.c (mpz_root): New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_root): Declare.
+
+ * mpz/perfpow.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_perfect_power_p): Declare.
+
+ * mpz/remove.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_remove): Declare.
+
+ * mpz/bin_ui.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_bin_ui): Declare.
+
+ * mpz/bin_uiui.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_bin_uiui): Declare.
+
+1998-09-16 Torbjorn Granlund <tege@matematik.su.se>
+
+ * longlong.h: Test for __powerpc__ in addition to _ARCH_PPC.
+
+Sat Sep 5 17:22:28 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/cmp_si.c: Compare most significant mantissa limb before
+ trying to deduce anything from the limb count.
+ * mpf/cmp_ui.c: Likewise.
+
+Tue Aug 18 10:24:39 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/pprime_p.c (mpz_probab_prime_p): Add new code block
+ for doing more dividing.
+
+Sat Aug 15 18:43:17 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/divrem_newt.c: New name for divrem_newton.c.
+ * mpn/Makefile.in: Corresponding changes.
+ * mpn/configure.in: Likewise.
+
+Wed Aug 12 23:07:09 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * config.guess: Handle powerpc for NetBSD.
+
+Tue Jul 28 23:10:55 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/fib_ui.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_fib_ui): Declare.
+
+Wed Jun 17 22:52:58 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'.
+
+Wed Jun 3 11:27:32 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * config/mt-pwr: New file.
+ * config/mt-ppc: New file.
+ * configure.in: Use the new files.
+
+Tue Jun 2 13:04:17 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/sparc32/v9/addmul_1.s: New file.
+ * mpn/config/mt-sprc9: New file.
+ * mpn/configure.in: Use mt-sprc9.
+
+Tue May 26 11:24:18 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * demos/factorize.c (factor_using_pollard_rho): Pass correct
+ parameters in recursive calls; join the two recursion arms.
+
+ * mpf/set_q.c: Set result sign.
+ When normalizing the numerator, don't allow it to increase in size
+ beyond prec.
+
+Tue May 19 17:28:14 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * demos/factorize.c (factor_using_division): Call fflush
+ also for the factor 2.
+
+Mon May 18 15:51:01 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * make.bat: Pass -fomit-frame-pointer. Do not pass -g.
+
+Tue May 5 01:42:50 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/Makefile.in (LOCAL_CC): Remove definition.
+
+ * gmp.h: Get rid of GMP_SMALL stuff.
+ * mpz/Makefile.in: Likewise.
+ * mpq/Makefile.in: Likewise.
+ * mpf/Makefile.in: Likewise.
+
+ * mpz/invert.c: Fix typo in comment.
+
+Mon May 4 23:05:32 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/sqrtrem.c: Check that __arch64__ is not defined
+ before defining sparc SQRT.
+
+Mon Apr 20 19:16:17 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/gcdext.c: Allow gp to be NULL.
+
+1998-04-03 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/configure.in: Recognize `alphaev5*', not `alphaev5'.
+
+ * config.guess: Handle CPU variants for NetBSD.
+
+Mon Mar 16 13:07:54 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/pprime_p.c: Use mpn_mod_1/mpn_preinv_mod_1 for computing mod PP,
+ not mpz_tdiv_r_ui (which expects an `unsigned long').
+ (mpz_probab_prime_p): Change type of `r' to mp_limb_t.
+
+Thu Mar 12 17:19:04 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp.h (mpf_ceil, mpf_floor, mpf_trunc): Add declarations.
+
+ * config.guess: Update from FSF version.
+ * config.sub: Likewise.
+
+ * config.guess: Add special handling of alpha-*-NetBSD.
+
+Wed Mar 11 00:55:34 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/inp_str.c: Update from set_str.c.
+ Properly increment `nread' when skipping minus sign.
+
+ * mpz/set_str.c: Check for empty string after having skipped
+ leading zeros.
+
+Mon Mar 9 19:28:00 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/set_str.c: Skip leading zeros.
+
+Wed Mar 4 19:29:16 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui.
+
+ * demos/factorize.c: Rewrite.
+
+1998-02-04 Torbjorn Granlund <tege@matematik.su.se>
+
+ * configure.in (i[3456]86* etc): Check if using gcc before
+ choosing mt-x86.
+
+ * configure.in (m68*-*-*): New alternative.
+ * config/mt-m68k: New file.
+
+ * mpn/alpha/invert-limb.s: Put tables in text segment,
+ since not all systems support "rdata".
+
+Wed Feb 4 02:20:57 1998 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp.h (__GNU_MP_VERSION_SNAP): New #define.
+ (__GNU_MP_VERSION_MINOR): Now 1.
+
+Wed Jan 28 22:29:36 1998 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION.
+
+Wed Jan 28 20:28:19 1998 Torbjorn Granlund <tege@sophie.matematik.su.se>
+
+ * mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors.
+
+Mon Jan 26 01:39:02 1998 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small
+ numbers specifically; check small factors, then perform a fermat test.
+
+Tue Jan 13 14:58:28 1998 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb
+ and udiv_qrnnd_preinv.
+
+Wed Jan 7 01:52:54 1998 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * mpn/configure.in (alpha*, extra_functions): Add invert-limb and
+ remove udiv_qrnnd.
+
+ * mpn/tests/divrem.c: Get allocations right.
+
+ * mpn/generic/divrem.c: Conditionally pre-invert most significant
+ divisor limb.
+
+Tue Jan 6 23:08:54 1998 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * mpn/generic/divrem_1.c: Rename variables to comply to conventions.
+ Make `i' have type `mp_size_t'.
+
+Tue Dec 30 22:21:42 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/tdiv_qr_ui.c: Return the remainder.
+ * mpz/tdiv_r_ui.c: Likewise.
+ * mpz/tdiv_q_ui.c: Likewise.
+ * gmp.h: Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui,
+ mpz_tdiv_q_ui.
+
+ * mpz/tdiv_ui.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_tdiv_ui): Declare.
+
+Fri Nov 7 04:21:15 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/integer.c (FUNC_NAME): Fix bogus test for mpf_trunc.
+
+ * demos/isprime.c: New file.
+
+ Sat Nov 1 19:32:25 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/cmp_abs.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_cmp_abs): Declare.
+
+ * mpz/cmp_abs_ui.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_cmp_abs_ui): Declare.
+
+Sat Sep 27 04:49:52 1997 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * mpz/fdiv_r_2exp.c: Get allocation for `tmp' right.
+
+ * mpz/fdiv_q_2exp.c: In final result adjustment code, handle
+ that intermediate result is zero.
+
+ * mpz/tests/t-2exp.c: New file.
+ * mpz/tests/Makefile.in: Handle t-2exp.c.
+
+Fri Sep 26 16:29:21 1997 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * mpz/divexact.c: Fix typo in test for whether to copy numerator to
+ quotient and move that statement to after handling quotient and
+ denominator overlap. Misc cleanups.
+
+ * mpn/generic/gcd.c: Change count argument of mpn_lshift/mpn_rshift
+ calls to `unsigned int'.
+ * mpz/divexact.c: Likewise.
+
+Mon Sep 22 02:19:52 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpz/tests/t-powm.c: Decrease `reps' to 2500.
+
+ * mpz/tests/t-pow_ui.c: New file.
+ * mpz/tests/Makefile.in: Handle t-pow_ui.c.
+
+ * mpz/ui_pow_ui.c: Get special cases for exponent and base right.
+
+ * mpz/pow_ui.c: Increase temp space allocation by 1 limb.
+ Split `rsize' into two variables; compute space allocation into
+ `ralloc'.
+
+Sun Sep 7 04:15:12 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpn/pa64/lshift.s: New file.
+ * mpn/pa64/rshift.s: New file.
+ * mpn/pa64/sub_n.s: New file.
+
+Sat Sep 6 19:14:13 1997 Torbjorn Granlund <tege@gmp.tmg.se>
+
+ * mpn/pa64/add_n.s: New file.
+ * mpn/pa64: New directory.
+
+Tue Aug 19 16:17:09 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpz/swap.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_swap): Declare.
+
+ * mpn/generic/mul_n.c: Push assignment of x and y pointers into the
+ if/else clauses in several places. (Decreases register pressure.)
+
+Mon Aug 18 03:29:50 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpn/thumb/add_n.s: New file.
+ * mpn/thumb/sub_n.s: New file.
+ * mpn/arm/add_n.s: New file.
+ * mpn/arm/sub_n.s: New file.
+
+ * mpz/powm.c: After mpn_mul_n and mpn_mul calls, adjust product size
+ if most significant limb is zero.
+ * mpz/powm_ui.c: Likewise.
+
+Fri Aug 15 02:13:57 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpn/arm/m/mul_1.s: New file.
+ * mpn/arm/m/addmul_1.s: New file.
+
+ * mpn/powerpc32/mul_1.s: Rewrite.
+
+ * mpn/alpha/mul_1.s: Prefix labels with `.'.
+
+Mon Aug 11 02:37:16 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpn/powerpc32/add_n.s: Rewrite.
+ * mpn/powerpc32/sub_n.s: Rewrite.
+
+Sun Aug 10 17:07:15 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpn/powerpc32/addmul_1.s: Delete obsolete comments.
+ * mpn/powerpc32/submul_1.s: Likewise.
+
+Fri Jul 25 20:07:54 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpz/addmul_ui.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_addmul_ui): Declare.
+
+ * mpz/setbit.c: Add missing code after final `else'.
+
+Tue Jul 22 17:45:01 1997 Torbjorn Granlund <tege@tunnis.tmg.se>
+
+ * mpn/sh/add_n.s: Fix typo.
+ * mpn/sh/sub_n.s: Likewise.
+
+ * longlong.h (ns32k count_trailing_zeros): Fix typo.
+
+ * insert-dbl.c: Check for exponent overflow and return Inf.
+
+ * mpz/get_d.c: Rewrite to avoid rounding errors.
+
+Thu May 29 11:51:07 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpq/add.c: Swap some usages of tmp1 and tmp2 to make sure
+ their allocation suffices.
+ * mpq/sub.c: Likewise.
+
+Wed Apr 16 02:24:25 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * demos/pexpr.c: New file.
+
+ * mpn/generic/mul_n.c: Misc optimizations from Robert Harley.
+
+ * gmp-impl.h (MPZ_PROVOKE_REALLOC): New #define.
+
+Sat Apr 12 17:54:04 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * mpz/tstbit.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_tstbit): Declare.
+
+ * mpz/tests/logic.c: Use MPZ_CHECK_FORMAT.
+ * mpz/tests/bit.c: New test.
+ * mpz/tests/Makefile.in: Handle bit.c.
+
+ * mpz/ior.c: In -OP2,+OP1 case, normalize OP2 after call to mpn_sub_1.
+
+ * gmp-impl.h (MPZ_CHECK_FORMAT): New #define.
+
+Thu Apr 10 00:30:14 1997 Torbjorn Granlund <tege@tmg.se>
+
+ * longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2.
+
+Wed Apr 9 18:23:31 1997 Torbjorn Granlund <tege@pro.tmg.se>
+
+ * gmp-impl.h: Move defaulting of UMUL_TIME and UDIV_TIME from here...
+ * longlong.h: ...to here.
+
+Sun Mar 30 12:16:23 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/next_prime.c: New file.
+
+ * mpn/generic/perfsqr.c: Remove definitions of PP and PP_INVERTED.
+ * gmp-impl.h: Put them here.
+
+Fri Mar 28 08:18:05 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Define as inline asm for
+ for x86, but leave disabled for now.
+
+Fri Feb 28 02:39:47 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/Makefile.in (.S.o): Pass SFLAGS and CFLAGS also to compiler
+ for assembly phase.
+ (.s.o): Pass SFLAGS.
+
+Wed Feb 26 06:46:08 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/configure.in: For Pentium Pro, use default code, not Pentium
+ optimized code.
+
+ * mpn/x86/addmul_1.S: Unroll and optimize for Pentium Pro.
+ * mpn/x86/submul_1.S: Likewise.
+
+Thu Feb 13 08:26:09 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/Makefile.in: Compile floor.o, ceil.o and trunc.o (from
+ integer.c).
+ * make.bat: Likewise.
+
+Wed Feb 5 05:58:44 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/configure.in (alpha*): Add cntlz to extra_functions.
+
+Wed Feb 4 03:30:45 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc).
+
+Mon Feb 3 14:21:36 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * make.bat: Fix typo, set_dfl_prc => set_dfl_prec.
+
+Sun Feb 2 02:34:33 1997 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/out_str.c: After outputting `-', decrement n_digits.
+
+Wed Jan 8 02:50:20 1997 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/generic/divrem.c: qextra_limbs => qxn.
+
+Wed Dec 18 07:50:46 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/tests/t-tdiv.c (SIZE): Increase to 200.
+
+Tue Dec 17 19:32:48 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/generic/divrem.c (mpn_divrem_classic): New name for mpn_divrem.
+ * gmp.h (mpn_divrem): New function.
+ * mpn/generic/divrem_newton.c: New file.
+ * mpn/configure.in (functions): Add divrem_newton.
+ * make.bat: Likewise.
+
+Thu Dec 12 17:55:13 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_.
+
+Sat Dec 7 09:40:06 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/alpha/invert-limb.s: New file.
+
+Thu Dec 5 01:25:31 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/ui_pow_ui.c (mpz_pow2): New (static) function.
+ (mpz_ui_pow_ui): Rewrite.
+
+ * make.bat: `pre_mod_1.c' => `pre_mod_.c'. Fix typo in path to
+ gmp-mpar.h.
+
+Fri Nov 15 00:49:55 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/ui_pow_ui.c: Rewrite for better speed.
+
+Fri Nov 1 16:36:56 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * Makefile.in (recursive make rules): Use `&&' instead of `;' as
+ delimiter.
+
+Fri Oct 25 17:12:36 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline.
+
+Thu Oct 24 15:08:19 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/fujitsu/rshift.c: Fix typo in loop boundaries.
+
+Fri Oct 18 03:13:54 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/configure.in: Recognize `nextstep' for m68k variants; likewise
+ for x86 variants.
+
+ * mpn/x86/syntax.h (INSND): New macro.
+ * mpn/x86/[lr]shift.S: Use INSND.
+ * mpn/x86/pentium/[lr]shift.S: Likewise.
+ * mpn/config/t-oldgas (SFLAGS): Pass -DOLD_GAS.
+
+ * gmp-impl.h: In code for determining endianness, test also
+ __BIG_ENDIAN__ and __hppa__. Remove test of __NeXT__.
+
+Wed Oct 16 03:50:34 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpf/set_str.c: Let `prec' determine precision used in
+ exponentiation code; decrease allocation accordingly.
+
+ * mpn/vax: Change `jsob*' to `sob*' in all files.
+
+Tue Oct 15 03:54:06 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * longlong.h (m88110 udiv_qrnnd): Change type of intermediate quotient
+ to DImode (divu.d generates a 64-bit quotient).
+
+ * configure.in (m88110*): Fix typo.
+
+ * mpf/get_str.c: Compute exp_in_base using `double' to avoid overflow.
+
+ * gmp-impl.h (struct bases): Change type of chars_per_bit_exactly from
+ float to double.
+ * mpn/mp_bases.c (__mp_bases): Give 17 digits for chars_per_bit_exactly
+ field.
+
+ * mpf/get_str.c: Let `prec' determine precision used in
+ exponentiation code; decrease allocation accordingly.
+
+Sun Oct 13 03:31:53 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * longlong.h: Major cleanup.
+ (__udiv_qrnnd_c): Compute remainders using multiply and subtract,
+ not explicit `%' operator.
+ (C umul_ppmm): Get rid of a redundant __ll_lowpart.
+
+ * mpz/invert.c: Properly detect all operands that would yield an
+ undefined inverse; make sure the inverse is always positive.
+
+ * mpz/xor.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_xor): Declare.
+
+ * mpz/tests/logic.c: Also test mpz_xor.
+
+ * mpz/lcm.c: Special case for when either operand equals 0.
+
+Sat Oct 12 01:57:09 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/generic/gcd.c (find_a): Don't inline on x86.
+
+ * Makefile.in (CFLAGS): Default to just `-g'.
+
+ * configure.in: Recognize 386 and 486 wherever other x86 cpus are
+ recognized.
+ * configure.in: Use mt-x86 for all x86 cpus.
+ * config/mt-x86: New file.
+
+ * mpn/alpha/cntlz.s: New file.
+
+Tue Oct 8 00:16:18 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * longlong.h: Define smul_ppmm for Fujitsu vpp/uxp.
+ Rewrite umul_ppmm to actually work on the hardware.
+
+ * mpn/x86/sub_n.S: Avoid parens around displacement of `leal'.
+ * mpn/x86/add_n.S: Likewise.
+
+ * mpn/x86/syntax.h (R): Define differently depending on __STDC__.
+
+Mon Oct 7 16:48:08 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * longlong.h: Don't test for __NeXT__ in outer 68k conditional;
+ add test for __m68k__.
+
+Sun Oct 6 00:59:09 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * gmp.h: Declare mpn_random.
+ * make.bat: Compile mpn/generic/random.c.
+
+ * longlong.h: Define umul_ppmm for Fujitsu vpp/uxp.
+
+ * gmp-impl.h: Protect definitions using `__attribute__ ((mode (...)))'
+ with test also for __GNUC_MINOR__.
+
+ * gmp.h: Don't define macros using __builtin_constant_p when using
+ NeXT's compiler.
+
+Fri Oct 4 16:53:50 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/lcm.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h (mpz_lcm): Declare.
+
+Wed Sep 25 00:06:21 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpq/tests/t-cmp_ui.c: Make sure numerator and denominator of `b' is
+ within limits of an `unsigned long int'.
+
+ * mpz/tests/t-powm_ui.c: Change type of exp2 to `unsigned long int'.
+
+Tue Sep 24 18:58:20 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/powm_ui.c: Make result always positive.
+
+ * urandom.h (urandom): Make it return mp_limb_t.
+
+ * gmp-impl.h (CNST_LIMB): New macro.
+ * mpn/mp_bases.c: Use CNST_LIMB.
+ * mpn/generic/hamdist.c (popc_limb): Likewise.
+ * mpn/generic/popcount.c (popc_limb): Likewise.
+ * mpn/generic/perfsqr.c: Likewise.
+
+Fri Sep 20 03:08:10 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/pprime_p.c: When n <= 3, don't clear out n before using it.
+
+Wed Sep 18 11:22:45 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/fujitsu/mul_1.c: New file.
+ * mpn/fujitsu/addmul_1.c: New file.
+ * mpn/fujitsu/sub_n.c: New file.
+ * mpn/fujitsu/add_n.c: Mew file.
+
+Sun Sep 15 03:13:02 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/generic/random.c: New file.
+ * mpn/configure.in (functions): Add `random'.
+
+ * gmp-impl.h (MPN_COPY): Define as annotated inline function for
+ Crays and Fujitsu VPPs.
+
+ * gmp.h (mp_size_t): Define as `int' for non-MPP Cray.
+ (mp_exp_t): Likewise.
+
+ * configure.in: Add support for Fujitsu VPP machines.
+ * mpn/configure.in: Likewise.
+ * config.guess: Likewise.
+ * config.sub: Likewise.
+
+ * mpn/fujitsu/rshift.c: New file.
+ * mpn/fujitsu/lshift.c: New file.
+ * mpn/fujitsu: New directory, for Fujitsu VPP machines.
+
+Wed Sep 11 11:34:38 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/generic/mul_n.c (__gmpn_mul_n): New name for impn_mul_n.
+ Call __gmpn_mul_basecase, not impn_mul_n_basecase; update parameter
+ list to work with __gmpn_mul_basecase.
+ (__gmpn_sqr): New name for impn_sqr_n.
+ Call __gmpn_sqr_basecase, not impn_sqr_n_basecase; update parameter
+ list to work with __gmpn_sqr_basecase.
+ (mpn_mul_n): Update calls to match new names and parameter conventions.
+ * gmp-impl.h (MPN_MUL_N_RECURSE): Likewise.
+ (MPN_SQR_RECURSE): New name for MPN_SQR_N_RECURSE.
+ Update calls to match new names and parameter conventions.
+ * mpn/generic/mul.c: Never perform multiply explicitly here, call
+ __gmpn_mul_basecase instead.
+ Update calls to match new names and parameter conventions.
+
+ * mpn/x86/mul_basecase.S: New file.
+ * mpn/generic/mul_basecase.c: New file.
+ * mpn/generic/sqr_basecase.c: New file.
+
+Wed Sep 4 02:59:21 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/set_str.c: Let `0b' and `0B' mean base 2.
+
+Fri Aug 30 00:44:00 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * longlong.h (x86 umul_ppmm): Work around GCC bug that was
+ triggered by Aug 28 change.
+
+ * mpbsd/min.c (digit_value_in_base): New function.
+
+ * mpz/set_str.c: Refine allocation size computation, use
+ chars_per_bit_exactly instead of chars_per_limb.
+
+ * mpbsd/Makefile.in (.c.o): Add -D_mpz_realloc=_mp_realloc.
+
+Wed Aug 28 02:52:14 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * longlong.h (x86 umul_ppmm): Don't cast result operands.
+ (x86 udiv_qrnnd): Likewise.
+ (default smul_ppmm): Fix typo, umul_ppmm => smul_ppmm.
+ (default umul_ppmm): New #define using smul_ppmm.
+ (vax smul_ppmm): New #define.
+ (vax umul_ppmm): Delete.
+ (POWER umul_ppmm): Delete.
+ (IBM 370 smul_ppmm): New #define.
+ (IBM 370 umul_ppmm): Delete.
+ (IBM RT/ROMP smul_ppmm): New #define.
+ (IBM RT/ROMP umul_ppmm): Delete.
+
+Tue Aug 27 01:03:25 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * gmp-impl.h (__gmp_0): Make it `const'.
+
+ * mpn/Makefile.in (clean mostlyclean): Comment out recursive clean
+ of `tests'.
+
+ * mpn/generic/mul.c: Identify when we do squaring, and call
+ impn_sqr_n_basecase/impn_sqr_n as appropriate. Use
+ KARATSUBA_MUL_THRESHOLD and KARATSUBA_SQR_THRESHOLD.
+ Don't #define KARATSUBA_THRESHOLD.
+
+ * mpn/generic/mul_n.c: Don't #define KARATSUBA_THRESHOLD.
+ (impn_mul_n, impn_sqr_n): Rewrite, based on code contributed by
+ Robert Harley.
+ (impn_sqr_n_basecase): Rewrite.
+
+ * gmp-impl.h (KARATSUBA_MUL_THRESHOLD): New #define.
+ (KARATSUBA_SQR_THRESHOLD): Likewise.
+ (MPN_SQR_N_RECURSE): Use KARATSUBA_SQR_THRESHOLD.
+ (MPN_MUL_N_RECURSE): Use KARATSUBA_MUL_THRESHOLD.
+
+ * configure.in: Fix typo in last change.
+
+Mon Aug 26 22:25:18 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'.
+ * mpf/random2.c: Likewise.
+
+Sun Aug 25 00:07:09 1996 Torbjorn Granlund <tege@quiet.matematik.su.se>
+
+ * mpz/tests/t-mul.c: Also test squaring.
+
+Fri Aug 16 05:12:08 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mp_clz_tab.c (__clz_tab): Declare as `const'.
+ * version.c (gmp_version): Likewise.
+ * mpn/generic/sqrtrem.c (even_approx_tab, odd_approx_tab): Likewise.
+
+Thu Aug 15 02:34:47 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h: Fix typo, `mips__' => `__mips'.
+
+ * mpf/set_str.c: Allow a number to start with a period, if next
+ position contains a digit.
+
+Tue Aug 13 18:41:25 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/gcdext.c: Get cofactor sign right for negative input operands.
+ Clean up code for computing tt.
+
+ * mpz/invert.c: Get rid of variable `rv'.
+
+ * mpz/divexact.c: Test for zero divisor in special case for zero
+ dividend.
+
+Mon Aug 12 18:04:07 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/?div_*_ui.c: Special case for division by 0.
+ * mpz/tdiv_q.c: Likewise.
+
+Sat Aug 10 14:45:26 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/dmincl.c: Special case for division by 0.
+
+ * mpz/tdiv_*_ui.c: Delete special case for dividend being 0; handle
+ it when computing size after mpn_divmod_1 call.
+
+ * mp_bpl.c: (__gmp_junk): New variable.
+ (__gmp_0): New constant.
+
+ * gmp-impl.h (DIVIDE_BY_ZERO): New #define.
+
+Fri Aug 9 20:03:27 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/divexact.c: Test for dividend being zero before testing
+ for small divisors.
+
+Thu Aug 8 13:20:23 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * configure.in: Require operating system specification for cpus
+ where assembly syntax differs between system.
+
+ * Makefile.in (many targets): Change `-' action prefix to `@'.
+
+ * mpn/Makefile.in: (distclean): Fix typo.
+
+ * mpq/cmp_ui.c: Rename function to _mpq_cmp_ui.
+ (mpq_cmp_ui): #undef deleted.
+ * mpz/cmp_si.c: Rename function to _mpz_cmp_si.
+ (mpz_cmp_si): #undef deleted.
+ * mpz/cmp_ui.c: Rename function to _mpz_cmp_ui.
+ (mpz_cmp_ui): #undef deleted.
+ * Makefile.in: Corresponding changes.
+
+ * mpf/get_prc.c: Return the *highest* precision achievable.
+
+ * mpf/get_str.c: Complete rewrite.
+
+ * mpf/set_str.c (swapptr): New #define.
+ (assert): New #define.
+ * mpf/set_str.c: Set prec to one more than the saved _mp_prec.
+ Misc cleanups.
+
+ * mpz/set_str.c: #include string.h.
+ * mpf/out_str.c: #include string.h.
+ * mpbsd/xtom.c: #include string.h and ctype.h.
+ * mpbsd/mout.c: #include string.h.
+
+Wed Aug 7 11:46:04 EDT 1996 Ken Weber <kweber@mcs.kent.edu>
+
+ * mpn/generic/gcd.c: Reorder mpn_gcd argument list.
+ * mpz/gcd.c: Change call to mpn_gcd.
+ * gmp.texi: Update manual entry on mpn_gcd.
+ * mpn/generic/bdivmod.c: Delete limb cache to make mpn_bdivmod
+ reentrant.
+
+Wed Aug 7 02:15:38 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/get_str.c: Rewrite code for converting integral part of a
+ number with both an integral and fractional part.
+
+ * mpf/set_str.c: Get rid of variable xxx. New variables madj and radj.
+ In exp_in_base==0 case, add madj to msize for EXP field.
+
+ * mpz/tests/t-gcd.c: Test deleted. Rename t-gcd2.c to t-gcd.c.
+ Increase reps to 2000.
+ * mpz/tests/t-gcd2.c: Get rid of mpz_refgcd.
+
+ * mpf/set_str.c: Ignore excess limbs in MP,MSIZE.
+
+Thu Jul 25 04:39:10 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32".
+
+Wed Jul 24 02:27:02 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/gcdext.c: Reorganize and clean up. Get rid of all
+ signed limb arithmetic.
+
+Mon Jul 22 02:39:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/gcdext.c (mpn_gcdext): For large enough operands,
+ work with most significant *two* limbs.
+ (div2): New function (two variants).
+ (THRESHOLD): New #define.
+
+ * mpz/gcdext.c: Fix typo in MPZ_TMP_INIT call.
+
+ * longlong.h (alpha UMUL_TIME): Now 30.
+ (alpha UDIV_TIME): Now 350.
+ (x86 UMUL_TIME): Now 10 (let Pentium decide).
+ (SuperSPARC UDIV_TIME): Override default.
+
+ * extract-dbl.c (MP_BASE_AS_DOUBLE): Don't redefine here.
+
+ * extract-dbl.c: New name for extract-double.c.
+ * insert-dbl.c: New name for insert-double.c.
+ * Makefile.in: Corresponding changes.
+ * make.bat: Likewise.
+
+ * mpz/Makefile.in (.c.o): Don't pass non-portable `-f' to cp.
+ * mpq/Makefile.in: Likewise.
+ * mpf/Makefile.in: Likewise.
+
+Sat Jul 20 01:35:18 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/getlimbn.c: Take ABS of integer->_mp_size.
+
+ * mpz/divexact.c: Use mpn_divmod_1 if divisor is a single limb.
+
+Thu Jul 18 00:31:15 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/popcount.c (popc_limb): Use different masking trick
+ for first step (due to David Seal).
+ * mpn/generic/hamdist.c (popc_limb): Likewise.
+
+Wed Jul 17 23:21:48 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs.
+
+Sun Jul 14 17:47:46 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8.
+
+Thu Jul 11 14:05:54 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
+ for the '020, '030, '040, and '332. Define count_leading_zeros
+ for the '020, '030, '040, and '060.
+
+Sun Jul 14 15:24:53 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ From Joe Keane:
+ * mpq/equal.c: Take ABS of num1_size before passing it to mpn_cmp.
+
+Fri Jul 12 17:11:17 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/sqrtrem.c (SQRT): New asm for x86, but leave it
+ disabled for now.
+
+ * mpn/generic/sqrtrem.c: Use MP_BASE_AS_DOUBLE.
+
+Wed Jul 10 03:17:45 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * cre-mparam.c: Delete obsolete file.
+
+ * gmp.h: #define _LONG_LONG_LIMB if __mips && _ABIN32.
+ * longlong.h: Test __mips instead of __mips__.
+
+Sun Jul 7 23:19:13 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * longlong.h (_PROTO): Define, unless already defined.
+ (alpha __udiv_qrnnd): Declare using _PROTO.
+ (hppa __udiv_qrnnd): Likewise.
+ (sparc __udiv_qrnnd): Likewise.
+
+Mon Jul 1 01:44:30 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * config.guess: Update from master version; add Cray x90 handling.
+
+Wed Jun 26 05:35:02 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/power/add_n.s (__mpn_add_n): Work around GAS bug.
+ * mpn/power/sub_n.s (__mpn_sub_n): Likewise.
+
+ * insert-double.c: Rework loop to avoid potential overflow.
+
+ * mpq/get_d.c: For vax, if qsize > N_QLIMBS, ignore excess limbs.
+
+ * mpq/tests/t-get_d.c (SIZE): Special case for vax.
+
+ * gmp.h (mpX_cmp_ui): #define also when ! __GNUC__.
+
+Mon Jun 24 17:13:21 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * longlong.h (vax sdiv_qrnnd): Fix typo.
+
+Sat Jun 15 01:33:33 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h: Support `small' and `large' type and function variants,
+ controlled by GMP_SMALL.
+
+ * mpz/Makefile.in (.c.o): Compile each function twice, for small and
+ large variant.
+ (MPZS_OBJS): New variable.
+ (libmpz.a): Include MPZS_OBJS in archive.
+ * mpf/Makefile.in: Analogous changes.
+ * mpq/Makefile.in: Analogous changes.
+
+ * gmp.h: Prefix all functions with __gmp, to allow namespace-clean
+ internal calls.
+
+ * mp.h: Rip out __MP_SMALL__ stuff.
+ (__mpz_struct): mp_size_t => int.
+
+ * mpz/invert.c: #include "gmp-impl.h".
+ Use MPZ_TMP_INIT, not mpz_init.
+
+ * mpz/gcdext.c: Rewrite to call mpn_gcdext.
+
+Fri Jun 14 18:05:29 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/gcdext.c (s0size): New parameter.
+ * gmp.h (mpn_gcdext): Update prototype.
+
+ * mpn/generic/gcdext.c: Major rewrite.
+
+Mon Jun 10 00:14:27 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/dump.c: Add missing `else'.
+
+Fri Jun 7 03:35:12 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html.
+
+Thu Jun 6 19:00:53 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Version 2.0.2 released.
+
+ * install.sh: New file.
+ * Makefile.in (INSTALL): Use install.sh.
+ (install-normal): New name for target `install'.
+ (install): New dummy target.
+
+ * mpz/pow_ui.c: Swap tests for (e == 0) and (bsize == 0).
+ * mpz/ui_pow_ui.c: Swap tests for (e == 0) and (blimb == 0).
+
+ * config/mt-linux (AR_FLAGS): New file.
+ * configure.in: Use config/mt-linux for all linux systems.
+
+Tue Jun 4 03:42:18 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Version 2.0.1 released.
+
+ * mpf/tests/ref.c: Cast result of TMP_ALLOC to the right pointer type.
+
+ * extract-double.c: Test _GMP_IEEE_FLOATS with #if, not plain if.
+
+ * insert-double.c: Don't #include stdlib.h.
+
+ * gmp-impl.h (union ieee_double_extract): Test sparc and __sparc.
+ Do not test __sparc__.
+
+ * mpf/reldiff.c: Change declaration to work around irix5 compiler bug.
+ * mpq/equal.c: Likewise.
+
+ * mpn/generic/gcd.c: Delete spurious comma at end of enumeration.
+
+ * mpn/generic/gcdext.c: Add K&R declaration syntax.
+ * stack-alloc.h: Likewise.
+ * insert-double.c: Likewise.
+ * extract-double.c: Likewise.
+ * mpf/tests/reuse.c: Likewise.
+ * mpz/tests/reuse.c: Likewise.
+ * mpf/tests/t-sub.c: Likewise.
+ * mpf/tests/t-add.c: Likewise.
+ * mpf/tests/t-muldiv.c: Likewise.
+ * mpf/tests/t-conv.c: Likewise.
+ * mpf/tests/ref.c: Likewise.
+
+ * mpn/config/t-oldgas: Renamed from t-freebsd.
+ * mpn/configure.in: Use t-oldgas for freebsd, netbsd, and some linux
+ configurations.
+
+ * mpn/powerpc32/mul_1.s: Really clear cy before entering loop.
+ * mpn/powerpc32/*.s: Fix power/powerpc syntax issues.
+
+ * mpn/config/t-ppc-aix: New file.
+ * mpn/configure.in: Use t-ppc-aix for powerpc like t-pwr-aix for power.
+
+Wed May 29 02:07:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h (mp_bits_per_limb): Change qualifier from `const' to
+ __gmp_const.
+
+ * gmp.h (mpf_init_set_str): Add `const' qualifier for 2nd parameter.
+ * mpf/iset_str.c: Likewise.
+
+Mon May 27 00:15:58 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp-impl.h: Declare __gmp_extract_double.
+
+ * mpz/set_q.c: Delete unused variables.
+
+ * gmp.h (mpq_equal): Declare.
+
+ * mpf/eq.c: mpf_cmp2 -> mpf_eq.
+
+Fri May 24 03:20:44 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/iset_d.c: Don't include <math.h>.
+
+ * insert-double.c (__gmp_scale2): New name for scal2.
+ * mpz/get_d.c: Corresponding change.
+ * mpf/get_d.c: Likewise.
+ * mpq/get_d.c: Likewise.
+ * gmp-impl.h: Declare __gmp_scale2.
+
+ * mpn/generic/scan0.c: Clarify comment.
+
+ * mpz/set_q.c: New file.
+ * Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h: Declare mpz_set_q.
+
+ * insert-double.c: New file.
+ * Makefile.in: Compile it.
+ * make.bat: Likewise.
+
+ * mpz/get_d.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h: Declare mpz_get_d.
+
+ * mpf/get_d.c: New file.
+ * mpf/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h: Declare mpf_get_d.
+
+ * make.bat: Compile things in alphabetical order.
+
+ * gmp-impl.h (MP_BASE_AS_DOUBLE): New #define.
+ (LIMBS_PER_DOUBLE): New #define.
+
+ * extract-double.c: New file.
+ * Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * mpz/set_d.c: Rewrite to use __gmp_extract_double.
+ * mpf/set_d.c: Likewise.
+
+ * mpn/configure.in: Use t-pwr-aix also for aix 3.2.4 and up.
+
+Wed May 22 02:48:35 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp-impl.h: Rework code for defining ieee_double_extract.
+ (IEEE_DOUBLE_BIG_ENDIAN): Macro removed.
+ (_GMP_IEEE_FLOATS): New macro.
+ * mpn/vax/gmp-mparam.h: Delete.
+
+ * mpn/config/t-pwr-aix: New file.
+ * mpn/configure.in: Use t-pwr-aix for aix 4 and later.
+
+Mon May 20 16:30:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h: In code for setting _GMP_H_HAVE_FILE, test more symbols.
+
+ * mpf/tests/t-add.c (oo): Add some `l' printf modifiers.
+ * mpf/tests/t-sub.c (oo): Likewise.
+ * mpf/tests/t-conv.c (oo): Likewise.
+ * mpf/tests/t-sqrt.c (oo): Likewise.
+
+ * mpz/tests/t-mul.c (_mpn_mul_classic): Remove unused variables.
+
+ * mpn/{pyr,i960,clipper}/*.s: Add missing copyright headers.
+
+Fri May 17 02:24:43 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/set_d.c: Call _mpz_realloc.
+
+ * mpq/set_z.c: New file.
+ * mpq/Makefile.in: Compile it.
+ * make.bat: Likewise.
+ * gmp.h: Declare mpq_set_z.
+
+ * mp?/Makefile.in (libmp?.a): Depend on Makefile, not Makefile.in.
+ * mpf/Makefile.in (test): Delete spurious target.
+ * mpq/Makefile.in (test): Likewise.
+
+ * mpf/out_str.c: Use `e' to separate exponent when base <= 10.
+
+ * mpn/configure.in: Treat ultrasparc just like sparc v8,
+ until 64-bit compilers are ready.
+
+ * mpf/set_d.c: Make it work for 64-bit machines.
+
+Thu May 16 20:53:57 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp-impl.h: Set IEEE_DOUBLE_BIG_ENDIAN to 0 for little-endian
+ machines.
+ * mpn/x86/gmp-mparam.h: Delete file.
+
+ * configure.in: Treat microsparc like sparc8.
+
+ * urandom.h: Test __alpha instead of __alpha__, since the former
+ is the standard symbol.
+ * mpn/generic/random2.c: Likewise.
+ * mpf/random2.c: Likewise.
+
+Tue May 14 13:42:39 1996 Torbjorn Granlund (tege@tiny.matematik.su.se)
+
+ * mpz/set_f.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * gmp.h: Declare mpz_set_f.
+
+ * mpf/set_q.c: Simplify expression in rsize == nsize if-then-else arms.
+
+Tue May 14 13:03:07 1996 Torbjorn Granlund (tege@tiny.matematik.su.se)
+
+ * make.bat: Add all new files.
+
+Sun May 12 22:24:36 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/set_z.c: New file.
+ * mpf/Makefile.in: Compile it.
+ * gmp.h: Declare mpf_set_z.
+
+Sat May 11 19:26:25 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h: Declare mpf_set_q.
+
+ * mpf/set_q.c: Compute prec-1 limbs in mpn_divrem call.
+
+Fri May 10 17:37:38 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/set_q.c: New file.
+ * mpf/Makefile.in: Compile it.
+
+ * config.sub: Recognize sparc8.
+
+Wed May 8 09:19:11 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/tests/t-dm2exp.c: New file.
+
+ * mpf/tests/t-add.c: Correct header comment.
+ * mpf/tests/t-sub.c: Likewise.
+ * mpf/tests/t-sqrt.c: Likewise.
+
+ * mpf/div.c: Misc variable name cleanups.
+ * mpf/div_ui.c: Base more closely on mpf/div.c.
+ * mpf/ui_div.c: Likewise.
+
+ * mpz/tests/Makefile.in (check): Depend on Makefile.
+ * mpq/tests/Makefile.in (check): Likewise.
+ * mpf/tests/Makefile.in (check): Likewise.
+
+ * mpf/tests/t-muldiv.c: New file.
+ * mpf/tests/Makefile.in: Compile and run `t-muldiv'.
+ (t-ref.o): Delete spurious rule.
+
+ * mpf/sqrt.c: Properly detect negative input operand.
+
+ * mpf/sqrt_ui.c: Delete spurious header comment.
+ * mpf/sqrt.c: Likewise.
+ * mpz/sqrt.c: Likewise.
+
+ * mpz/tests/reuse.c (main): Read `reps' from command line.
+
+ * mpf/tests/reuse.c: New file.
+ * mpf/tests/Makefile.in: Compile and run `reuse'.
+
+ * mpf/mul_ui.c: Disable code for removing low zero limbs.
+
+ * mpf/div.c: Fix condition for when vp and qp overlaps.
+
+ * mpf/add_ui.c: When sum equals u, copy up to prec+1 limbs.
+
+ * mpf/out_str.c: Don't output '\n' after exponent.
+
+ * mpf/add_ui.c: New special case for when U is completely cancelled.
+
+Wed Apr 24 05:33:28 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Version 2.0 released.
+
+ * All files: Update FSF's address.
+
+ * Makefile.in (gmp_toc.html): New name for gmp.html.
+ (TAGS): Depend on force.
+
+ * mpf/tests/t-conv.c: Pass -base to mpf_set_str.
+
+Sat Apr 20 03:54:06 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Makefile.in (ps): New target, depend on gmp.ps.
+
+Fri Apr 19 14:03:15 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/out_str.c: Print `@' before exponent, not `e'.
+
+ * make.bat: Update from Makefiles.
+
+Thu Apr 18 01:22:05 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/set_str.c: If parameter `base' is negative, expect exponent
+ to be decimal, otherwise in the same base as the mantissa.
+
+Wed Apr 17 17:28:36 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/set_dfl_prec.c: Don't return anything.
+ * gmp.h: Corresponding changes.
+
+ * mpf/set_dfl_prec.c: Use `unsigned long int' for bit counts.
+ * mpf/init2.c: Likewise.
+ * mpf/get_prc.c: Likewise.
+ * mpf/set_prc.c: Likewise.
+ * mpf/set_prc_raw.c: Likewise.
+ * mpz/popcount.c: Likewise.
+ * mpz/hamdist.c: Likewise.
+ * mpz/scan1.c: Likewise.
+ * mpz/scan0.c: Likewise.
+ * mpn/generic/popcount.c: Likewise.
+ * mpn/generic/hamdist.c: Likewise.
+ * mpn/generic/scan1.c: Likewise.
+ * mpn/generic/scan0.c: Likewise.
+ * gmp.h: Likewise.
+
+ * mpf/eq.c: New file, based on mpf/diff.c.
+ * mpf/diff.c: Delete.
+ * mpf/Makefile.in: Corresponding changes.
+ * gmp.h: Likewise.
+
+ * mpf/reldiff.c: New file.
+ * mpf/Makefile.in: Compile it.
+ * gmp.h: Declare mpf_reldiff.
+
+ * mpz/iset_d.c: New file.
+ * mpz/Makefile.in: Compile it.
+ * gmp.h: Declare mpz_init_set_d.
+
+Tue Apr 16 16:28:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Makefile.in (gmp.html): Pass -acc to texi2html.
+
+Mon Apr 15 16:20:24 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/set_str.c: Switch off code for defaulting the base from the
+ leading characters.
+
+ * gmp.h (mp?_sign): Delete.
+ (mp?_sgn): New macros.
+
+Fri Apr 12 17:23:33 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Makefile.in (gmp.dvi): Delete tmp.* at end of rule.
+
+Wed Apr 10 22:52:02 1996 Torbjorn Granlund (tege@tiny.matematik.su.se)
+
+ * mpf/random2.c: Change of `exp' param, mp_size_t => mp_exp_t.
+ * gmp.h: Corresponding change.
+
+ * gmp.h (mp_bits_per_limb): Make it const.
+
+Sat Mar 30 01:20:23 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * configure.in: Re-enable recognition of with_gcc.
+
+ * mpf/Makefile.in (.c.o): Pass XCFLAGS.
+ * mpn/Makefile.in (.c.o): Likewise.
+ * mpz/Makefile.in (.c.o): Likewise.
+ * mpq/Makefile.in (.c.o): Likewise.
+ * mpbsd/Makefile.in (.c.o): Likewise.
+ * mpf/tests/Makefile.in (.c.o): Likewise.
+ * mpz/tests/Makefile.in (.c.o): Likewise.
+ * mpq/tests/Makefile.in (.c.o): Likewise.
+
+ * Makefile.in (XCFLAGS): Default to empty.
+ (FLAGS_TO_PASS): Pass on XCFLAGS.
+ (.c.o): Pass XCFLAGS.
+
+ * config/mt-m88110 (XCFLAGS): Define instead of CC.
+ * config/mt-sprc8-gcc (XCFLAGS): Likewise.
+ * config/mt-supspc-gcc (XCFLAGS): Likewise.
+
+ * configure: Don't default CC to "gcc -O2" is -with-gcc=no was
+ specified.
+
+Mon Mar 25 01:07:54 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * urandom.h: Test for __SVR4 in addition to __svr4__.
+
+ * mp_bpl.c (mp_bits_per_limb): Declare as `const'.
+
+ * Makefile.in (CFLAGS): `-O2' => `-O'.
+ * mpn/Makefile.in (CFLAGS): Likewise.
+
+ * gmp-impl.h: Get rid of obsolete field access macros.
+
+ * mpn/mp_bases.c (__mp_bases): 1e39 => 1e38 to work around Solaris
+ cc compiler bug.
+
+ * gmp.h (__MPN): Make it work also for non-ANSI compilers.
+
+Thu Mar 21 01:07:54 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/sub.c: New special case for ediff <= 1 before generic code.
+ Simplify generic code for ediff == 0.
+ Rename uexp => exp.
+
+Mon Mar 11 18:24:57 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/tests/*.c: Use ref_mpf_sub for error calculation.
+ * mpf/tests/Makefile.in: Link ref.o to all executables.
+
+ * mpf/tests/t-sub.c: Make u = v + 1 with 50% probability.
+
+Sun Mar 10 21:03:17 1996 Torbjorn Granlund (tege@tiny.matematik.su.se)
+
+ * mpf/get_str.c: In digit development loop for fractions, change
+ loop condition from `<' to `<='.
+
+Thu Mar 7 04:58:11 1996 Torbjorn Granlund <tege@tiny.matematik.su.se>
+
+ * mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning.
+
+Wed Mar 6 01:10:42 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpf/tests/t-sqrt.c: New file.
+ * mpf/tests/Makefile.in: Corresponding changes.
+
+ * mpf/sqrt.c: Special case for square root of zero.
+
+ * mpq/add.c: Clean up variable names.
+ * mpq/sub.c: Update from mpq/add.c.
+
+ * mpz/divexact.c: abs => ABS.
+ * mpz/gcd.c: Likewise. Rewrite final fixup code, to decrease
+ allocation. Misc cleanups.
+
+Tue Mar 5 22:24:56 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/configure.in: Recognize linuxoldld as a synonym for linuxaout.
+
+ * gmp.h (mpn_add, mpn_add_1, mpn_sub, mpn_sub_1): Add prototypes.
+
+ * mpn/configure.in: Use t-freebsd also for netbsd.
+
+Mon Mar 4 15:13:28 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpq/Makefile.in (cmp.o): Depend on longlong.h.
+
+ * mpq/equal.c: New file.
+ * mpq/Makefile.in: Corresponding changes.
+
+ * mpf/tests/t-add.c: New file.
+ * mpf/tests/t-sub.c: Renamed from t-addsub.c.
+ * mpf/tests/ref.c: New file.
+ * mpf/tests/Makefile.in: Corresponding changes.
+
+ * gmp-impl.h (SIZ, ABSIZ, PTR, EXP, PREC, ALLOC): New #defines.
+
+Sun Mar 3 07:45:46 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/set_str.c: In exponentiation code, allocate 3 extra
+ limbs, not just 2.
+
+ * mpf/get_str.c: Allocate sufficient space for tstr.
+ When calculating exp_in_base, round result down.
+
+ * mpf/tests/t-conv.c: New file.
+ * mpf/tests/Makefile.in: Corresponding changes.
+
+ * mp_bpl.c: New file.
+ * gmp.h: Declare it.
+ * Makefile.in: Corresponding changes.
+
+Sat Mar 2 06:27:56 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/set_prc_raw.c: New file.
+ * mpf/set_prc.c: Renamed from set_prec.c.
+ * mpf/get_prc.c: New file.
+ * mpf/Makefile.in: Corresponding changes.
+ * gmp.h: Declare new functions.
+
+ * mpn/generic/gcdext.c: Add copyright header.
+
+Fri Mar 1 01:22:24 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/configure.in: For ppc601, search "power" before "powerpc32".
+
+ * mp?/Makefile.in (AR_FLAGS): New variable.
+ (libmp?.a): Use it.
+
+ * make.bat: New file.
+ * mpn/msdos: New directory.
+ * mpn/msdos/asm-syntax.h: New file.
+
+ * mpn/Makefile.in (distclean maintainer-clean): Delete asm-syntax.h.
+
+ * config.sub: Recognize [ctj]90-cray.
+
+ * mpn/configure.in: Recognize [ctj]90-cray-unicos*.
+
+ * mpn/generic/gcdext.c: Don't use alloca directly, use TMP_* macros.
+
+ * mpn/generic/gcd.c: Split increment from use of USIZE to avoid
+ undefined behaviour.
+
+Thu Feb 29 04:11:24 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * Makefile.in (install-info-files): Update for new install-info
+ behaviour.
+
+ * mpn/power/add_n.s: Rewrite.
+ * mpn/power/sub_n.s: Rewrite.
+
+Wed Feb 28 01:34:30 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/pow_ui.c: Compute allocation more aggressively for small bases.
+ * mpz/ui_pow_ui.c: Likewise.
+
+ * mpn/mp_bases.c (__mp_bases): Put huge value in 2nd field for index 1.
+
+ * mpn/generic/sqrtrem.c: sizeof (mp_limb_t) => BYTES_PER_MP_LIMB.
+ * mpn/generic/gcd.c: Likewise.
+ (SIGN_BIT): Compute differently.
+
+Mon Feb 26 00:07:36 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * All files: mp_limb => mp_limb_t, mp_limb_signed => mp_limb_signed_t.
+
+ * Makefile.in (install, install-bsdmp, install-info-files): Depend
+ on installdirs. chmod all installed files.
+
+Sun Feb 25 01:47:41 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpbsd/configure.in: Delete debugging code.
+
+ * All Makefile.in: Update clean targets.
+
+ * Makefile.in (AR_FLAGS): New variable.
+ (libgmp.a): Use it.
+ (libmp.a): Likewise.
+
+ * VERSION: Delete file.
+
+ * Makefile.in (installdirs): New target.
+ * mkinstalldirs: New file (from the texinfo package).
+
+ * Makefile.in (INSTALL, INSTALL_DATA, INSTALL_PROGRAM): New variables.
+ (MAKEINFO, MAKEINFOFLAGS, TEXI2DVI): New variables.
+ (install-info): New target.
+ (install, install-bsdmp): Depend on install-info.
+ ($(srcdir)/gmp.info): Changed from plain gmp.info; put info files
+ into source directory.
+ (distclean, mostlyclean): New targets.
+ (maintainer-clean): New name for realclean.
+ (uninstall): New target.
+ (TAGS): New target.
+ (info, dvi): New targets.
+ (.PHONY): Assign.
+
+ * Makefile.in (install, install-bsdmp): Use INSTALL_DATA.
+
+ * mp{n,z,f,bsd}/move-if-change: Delete.
+
+ * mpbsd/Makefile.in (stamp-stddefh): Delete target.
+
+ * Makefile.in (.c.o): Pass CFLAGS last.
+ * mpbsd/Makefile.in (.c.o): Likewise.
+ * mpf/Makefile.in (.c.o): Likewise.
+ * mpq/Makefile.in (.c.o): Likewise.
+ * mpz/Makefile.in (.c.o): Likewise.
+ * mpn/Makefile.in (.c.o): Likewise.
+ (.S.o): Likewise.
+
+ * memory.c: Change allocation error message.
+
+ * Makefile.in (install): Prefix gmp.h with $(srcdir).
+ (install-bsdmp): Prefix mp.h with $(srcdir).
+
+ * mp{n,z,f,bsd}/{configure,config.sub}: Delete.
+
+ * Makefile.in (gmp.dvi): Set TEXINPUTS also for 2nd tex invocation
+ (install targets): Install gmp.info-N.
+
+Sat Feb 24 03:36:52 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/get_str.c: Fix typo.
+
+ * mpz/legendre.c: Clarify expression with extra parens.
+
+ * version.c (gmp_version): Not static.
+
+ * mpf/iset_str.c: Properly return error code.
+
+ * mpf/add.c: Delete unused variables.
+ * mpf/inp_str.c: Likewise.
+ * mpq/get_d.c: Likewise.
+
+ * mpn/generic/dump.c: #include <stdio.h>.
+ * mpf/dump.c: Likewise.
+ * mpf/set_str.c: #include <ctype.h>.
+ (strtol): Declare.
+
+ * gmp.h: mpn_sqrt => mpn_sqrtrem.
+
+ * Makefile.in (clean, realclean): Clean in mpbsd.
+ (check): Test in mpf.
+
+ * mpf/Makefile.in (clean): Clean in tests.
+ * mpq/Makefile.in (clean): Clean in tests.
+
+ * mpf/tests/Makefile.in: New file.
+ * mpf/tests/configure.in: New file.
+ * mpf/tests/t-addsub.c: New file.
+
+ * mpf/sub_ui.c: Simply call mpf_sub for now.
+
+ * mpf/sub.c: Increase prec by 1.
+ * mpf/ui_sub.c: Likewise.
+
+Fri Feb 23 00:59:54 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpf/ui_sub.c: Fix typos.
+
+ * mpf/get_str.c: When allocating space for tmp, allow for an extra
+ limb. In code for fraction conversion, add special case for bases
+ that are a power of 2.
+
+ * mpf/out_str.c: Output leading "0.".
+ Default base to 10, before computing string allocation.
+
+ * mpf/get_str.c: Make variables for string size have type size_t.
+ * gmp.h: Corresponding change.
+
+ * mpf/random2.c: Allow creation of prec+1 large mantissas.
+
+ * mpf/add_ui.c: Don't abort if u < 0; special case for u <= 0.
+ Fix typo in MPN_COPY offset.
+ * mpf/sub_ui.c: Analogous changes.
+
+ * mpf/set_prec.c: Rewrite.
+
+ * mpf/init2.c: Compute precision as in set_prec.c.
+
+ * mpf/div_2exp.c: Special case for u == 0.
+ * mpf/mul_2exp.c: Likewise. Write r->_mp_size always.
+
+ * mpf/sqrt_ui.c: mpn_sqrt => mpn_sqrtrem.
+ * mpf/sqrt.c: Likewise. When computing new exponent, round quotient
+ towards -infinity.
+
+ * mpf/add.c: Fix typos.
+ * mpf/sub.c: Fix typos.
+
+Thu Feb 22 00:24:48 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/Makefile.in (stamp-stddefh): Delete target.
+ (test): Delete target.
+ * Makefile.in (stamp-stddefh): Delete target.
+ (cre-stddefh.o): Delete target.
+ (gmp.dvi): Set TEXINPUTS before invoking tex.
+
+ * cre-stddefh.c: Delete.
+
+ * mpz/sqrt.c: Fix typo.
+
+ * mpz/powm.c: Special case for mod == 0.
+ * mpz/powm_ui.c: Likewise.
+
+ * mpz/get_si.c: Handle -0x80000000 correctly.
+
+ * mpz/inp_str.c: Now returns size_t.
+ Make it return number of bytes read or error indication.
+ * mpf/inp_str.c: Likewise.
+
+ * mpz/out_raw.c: Replace by mpz/out_binary.c, with modifications.
+ * mpz/inp_raw.c: Rewrite, using mpz/inp_binary as a base.
+ * mpz/inp_binary.c: Delete.
+
+ * mpn/Makefile.in (XCFLAGS): Remove variable.
+ (.c.o): Don't pass XCFLAGS.
+ (SFLAGS): Set to nothing.
+ (.S.o): Pass SFLAGS, not XCFLAGS.
+
+ * mpn/config/t-freebsd (SFLAGS): New name for XCFLAGS.
+
+ * mpf/out_str.c: Make return number of bytes written or error
+ indication.
+ * mpz/out_str.c: Likewise.
+ * gmp.h: Corresponding changes.
+
+ * gmp.h (__mpz_struct): mp_size_t => int.
+ (__mpq_struct): Likewise.
+ (__mpf_struct): Likewise.
+ (mp_size_t): int => long int.
+
+ * mpn/cray: New directory.
+ * mpn/cray/gmp-mparam.h: New file.
+ * mpn/configure.in: Recognize cray variants.
+
+ * Makefile.in: Set defaults for prefix, libdir, etc.
+ (install): New target.
+ (install-bsdmp): New target.
+ (gmp.html): New target.
+
+ * stack-alloc.c (__tmp_alloc): Cast void ptrs to char * in comparison.
+
+Wed Feb 21 04:35:02 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp.h: Sort mpn declarations.
+ (mpn_gcdext): Add declaration.
+
+ * mpn/generic/divrem_1.c: New file.
+ * mpn/Makefile.in (divrem_1.o): New rule.
+ * configure.in (functions): Add divrem_1.
+
+ * mpn/generic/divmod.c: Delete file.
+ * mpn/configure.in (functions): Delete divmod.
+ * Makefile.in (divmod.o): Delete rule.
+ * gmp.h (mpn_divmod): New #define.
+
+ * gmp.h (mpn_next_bit_set): Delete spurious declaration.
+
+ * mpn/generic/divrem.c (default case): In code assigning
+ most_significant_q_limb, move reassignment of n0 into if statement.
+
+ * gmp.h (mpf_inp_str): Fix typo.
+ (mpf_out_str): Make prototype match reality.
+ * mpf/inp_str.c: New file.
+ * mpf/out_str.c: New file.
+ * mpf/Makefile.in: Compile new files.
+
+ * mpn/Makefile.in (dump.o): Fix dependency path.
+ (inlines.o): Likewise.
+
+ * mpn/configure.in: Make m68060 be the same as m68000. Clean up
+ m68k configs.
+
+Tue Feb 20 01:35:11 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/generic/sqrtrem.c: Renamed from sqrt.
+ * mpn/configure.in (functions): Corresponding change.
+ * mpn/Makefile.in: Likewise.
+ * mpz/sqrtrem.c: Likewise.
+ * mpz/sqrt.c: Likewise.
+ * mpn/generic/perfsqr.c: Likewise.
+
+ * Makefile.in (clean): Also remove libmp.a.
+ Don't compile cre-conv-tab.c or mp_bases.c.
+ cre-conv-tab.c: Delete file.
+ (gmp.ps): New rule.
+
+ * mpn/mp_bases.c: New file.
+ * mpn/Makefile.in: Compile mp_bases.c.
+
+ * mpz/set_str.c: Skip initial whitespace.
+ * mpf/set_str.c: Likewise.
+ * mpbsd/xtom.c: Likewise.
+
+ * gmp.h: Add missing mpz declarations.
+ Delete all formal parameter names from declarations.
+
+ * mpn/Makefile.in: Add dependencies for .c files.
+
+ * Makefile.in (check): Write recursive make calls separately, not as
+ a loop.
+ (FLAGS_TO_PASS): New variable. Use it for most recursive makes.
+
+Mon Feb 19 01:02:20 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpn/Makefile.in (.S.o): Pipe cpp output to grep in order to delete
+ lines starting with #.
+ (CPP): Set to $(CC) -E to avoid gcc dependency.
+
+ * mpn/m68k/syntax.h (moveql): Define to moveq for MIT_SYNTAX.
+
+ * mpn/hppa/hppa1_1/pa7100/addmul_1.S: Fix typo in s1_ptr alignment
+ code.
+ * mpn/hppa/hppa1_1/pa7100/submul_1.S: Likewise.
+
+ * gmp.h: Fix typos in #defines of recently added mpn functions.
+
+ * mpz/inp_str.c: Skip all whitespace, not just plain space.
+ * mpbsd/min.c: Likewise.
+
+ * mpn/configure.in (functions): Add gcdext.
+ * mpn/generic/gcdext.c: New file.
+
+ * mpz/legendre.c: mpz_div_2exp => mpz_tdiv_q_2exp.
+
+ * gmp.h: Surround mpn declarations with extern "C" { ... }.
+
+ * Makefile.in (check): New target.
+
+ * mpq/get_d.c: Update comments. Use rsize instead of dsize + N_QLIMBS
+ when possible. Add special case for nsize == 0.
+
+ * gmp.h (mpq_get_d): Add declaration.
+ (mpq_canonicalize): Likewise.
+ (mpq_cmp_ui): Likewise.
+ (mpf_diff): Likewise.
+ (mpf_ui_sub): Likewise.
+ (mpf_set_prec): Likewise.
+ (mpf_random2): Likewise.
+
+ * gmp.h (mpz_cmp_ui): New #define.
+ (mpz_cmp_si): New #define.
+ (mpq_cmp_ui): New #define.
+ (mpz_sign): New #define.
+ (mpq_sign): New #define.
+ (mpf_sign): New #define.
+ (mpq_numref): New #define.
+ (mpq_denref): New #define.
+
+ * mpq/set_z.c: File deleted.
+ * mpq/Makefile.in: Corresponding changes.
+
+Sun Feb 18 01:34:47 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpbsd/sdiv.c: Use _mp_realloc, not _mpz_realloc.
+
+ * mpz/inp_binary.c: Default stream to stdin.
+ * mpz/inp_str.c: Likewise.
+ * mpz/inp_raw.c: Likewise.
+ * mpz/out_binary.c: Default stream to stdout.
+ * mpz/out_raw.c: Likewise.
+ * mpz/out_str.c: Likewise.
+
+ * mpbsd/realloc.c: New file.
+ * mpbsd/Makefile.in: Corresponding changes.
+
+ * mpbsd/min.c: Rewrite (base on mpz/inp_str.c).
+ * mpbsd/mtox.c: Rewrite (base on mpz/get_str.c).
+
+ * mpbsd/mout.c: Rewrite (base on mpz/out_str) but make it output
+ spaces in each 10th position.
+ * mpbsd/xtom.c: Rewrite (base on mpz/set_str).
+
+ * mpq/tests/Makefile.in (st-cmp): New file.
+ * mpq/tests/configure.in (srcname): New file.
+
+ * mpz/tests/configure.in (srcname): Fix typo.
+
+ * mpq/cmp.c: Add check using number of significant bits, to avoid
+ general multiplication.
+
+Sat Feb 17 11:58:30 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpq/cmp_ui.c: Store cy_limb after the mpn_mul_1 calls.
+
+ * mpq/tests: New directory.
+ * mpq/tests/t-cmp.c: New file.
+ * mpq/tests/t-cmp_ui.c: New file.
+
+ * mpz/tests/dive.c (main): Generate zero numerator.
+ (get_random_size) : Delete.
+
+ * mpz/divexact.c: Add special case for 0/x.
+
+ * gmp.h (mpz_mod): Add declaration.
+
+Fri Feb 16 18:18:39 1996 Andreas Schwab <schwab@informatik.uni-dortmund.de>
+
+ * mpn/m68k/*: Rewrite code not to use the INSN macros.
+ (L): New macro to properly prefix local labels for ELF.
+
+Fri Feb 16 00:20:56 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp-impl.h (ieee_double_extract): Use plain `unsigned int' for
+ fields.
+ * mpn/generic/inlines.c (_FORCE_INLINES): New #define. Delete
+ conditional __GNUC__.
+ * gmp.h (mpn_add, mpn_sub, mpn_add_1, mpn_sub_1):
+ Only define these if __GNUC__ || _FORCE_INLINES.
+ * mpf/random2.c: Add missing parameter in non-ANSI header.
+ * mpn/generic/gcd.c (SIGN_BIT): Do as #define to work around bug
+ in AIX compilers.
+ * mpq/get_d.c: #define N_QLIMBS.
+ * mpz/divexact.c: Obscure division by 0 to silent compiler warnings.
+ * stack-alloc.c: Cast void* pointer to char* before doing arithmetic
+ on it.
+
+ * Makefile.in (mpbsd/libmpbsd.a): New rule.
+ * configure.in (configdirs): Add mpbsd.
+
+ * gmp.h: Add declarations for a few missing mpn functions.
+
+ * Makefile.in (libmp.a): New rule.
+
+ * mpbsd/mdiv.c: #include "dmincl.c", not "mpz_dmincl.c"
+ * gmp.h: Move #define of __GNU_MP__ into the `#if __GNU_MP__' block.
+ * mp.h: Likewise. Update typedefs from gmp.h.
+ * mpbsd/configure.in: New file.
+ * mpbsd/Makefile.in: New file.
+ * mpbsd/configure: Link to master configure.
+ * mpbsd/config.sub: Link to master config.sub.
+
+ * Makefile.in: Set RANLIB_TEST.
+ * (libgmp.a): Use it.
+ * (libgmp.a): Do ranlib before moving the libgmp.a to the build
+ directory.
+ * mp?/Makefile.in: Don't use or set RANLIB.
+
+Thu Feb 15 16:38:41 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/add_ui.c: MP_INT => mpz_t.
+ * mpz/cmp_ui.c: Likewise.
+ * mpz/fac_ui.c: Likewise.
+ * mpz/inp_binary.c: Likewise.
+ * mpz/inp_raw.c: Likewise.
+ * mpz/legendre.c: Likewise.
+ * mpz/jacobi.c: Likewise.
+ * mpz/out_binary.c: Likewise.
+ * mpz/out_raw.c: Likewise.
+ * mpz/random2.c: Likewise.
+ * mpz/random.c: Likewise.
+ * mpz/realloc.c: Likewise.
+
+ * mpz/legendre.c: __mpz_2factor(X) => mpz_scan1(X,0),
+ __mpz_odd_less1_2factor => mpz_scan1(X,1).
+ * mpz/ntsup.c: File deleted.
+ * mpz/Makefile.in: Corresponding changes.
+
+ * mpz/pprime_p: Use mpz_scan1 to avoid looping.
+
+ * mpz/fac_ui.c: Type of `k' and `p' is `unsigned long'.
+ * mpz/pprime_p.c: Pass long to *_ui functions.
+ * mpz/gcdext.c: Likewise.
+ * mpz/fdiv_r_2exp.c: Likewise.
+ * mpz/fac_ui.c: Likewise.
+
+ * mpz/powm.c: Don't use mpn_rshift when mod_shift_cnt is 0.
+
+ * mpz/tests/Makefile.in (st-sqrtrem): Fix typo.
+
+ * mpz/cmp_ui.c: #undef mpz_cmp_ui.
+ * mpz/cmp_si.c: #undef mpz_cmp_si.
+ * gmp.h (mpz_cmp_ui): New #define.
+ (mpz_cmp_si): New #define.
+
+Wed Feb 14 22:11:24 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * gmp.h: Test __cplusplus in addition to __STDC__.
+ * gmp-impl.h: Likewise.
+
+ * gmp.h: Surround declarations with extern "C" { ... }.
+
+Tue Feb 13 15:20:45 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/fdiv_r_2exp.c: Use MPN_NORMALIZE.
+ * mpz/tdiv_r_2exp.c: Likewise.
+
+ * mpz/fdiv_r_2exp.c: New file.
+ * mpz/fdiv_q_2exp.c: New file.
+ * mpz/tdiv_r_2exp.c: Renamed from mpz/mod_2exp.c.
+ * mpz/tdiv_q_2exp.c: Renamed from mpz/div_2exp.c
+ * mpz/Makefile.in: Corresponding changes.
+
+ * mpz/scan0.c,scan1.c: New files.
+ * mpz/Makefile.in: Compile them.
+
+ * gmp.h (mpn_normal_size): Delete.
+
+ * config.guess: Update from Cygnus version.
+
+ * mpn/m68k/rshift.S: Use INSN2 macro for lea instructions.
+ * mpn/m68k/lshift.S: Likewise.
+
+ * mpn/configure.in: Fix configuration for plain 68000.
+
+Mon Feb 12 01:06:06 1996 Torbjorn Granlund <tege@matematik.su.se>
+
+ * mpz/tests/t-powm.c: Generate negative BASE operand.
+
+ * mpz/powm.c: Make result always positive.
+
+Sun Feb 11 01:44:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/tests/*.c: Add t- prefix.
+ * mpz/tests/Makefile.in: Corresponding changes.
+ * mpz/tests/configure.in: Update srctrigger.
+
+ * mpz/tests/gcd.c: Generate negative operands.
+ * mpz/tests/gcd2.c: Likewise.
+
+ * mpz/gcdext.c: At end, if G is negative, negate all G, S, and T.
+
+Thu Feb 8 17:16:12 UTC 1996 Ken Weber <kweber@mat.ufrgs.br>
+
+ * mp{z,n}/gcd.c: Change mpn_gcd interface.
+ * gmp.h: Ditto.
+ * gmp.texi: update documentation.
+
+Mon Feb 7 23:58:43 1996 Andreas Schwab <schwab@informatik.uni-dortmund.de>
+
+ * mpn/m68k/{lshift,rshift}.S: New files.
+ * mpn/m68k/syntax.h: New ELF_SYNTAX macros.
+ (MEM_INDX, R, PROLOG, EPILOG): New macros.
+ * mpn/m68k/*.S: Use R macro with register name. Use PROLOG and EPILOG
+ macros. Rename `size' to `s_size' or s1_size to avoid clash with ELF
+ .size directive.
+ * mpn/configure.in: New target m68k-*-linux*.
+
+Wed Feb 7 07:41:31 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * Makefile.in (cre-conv-tab): Workaround for SunOS make.
+
+ * mpz/tests/reuse.c: New file.
+ * mpz/tests/Makefile.in: Handle reuse.c.
+
+Tue Feb 6 11:56:24 UTC 1996 Ken Weber <kweber@mat.ufrgs.br>
+
+ * mpz/gcd.c: Fix g->size when one op is 0 and g == other op.
+
+Tue Feb 6 01:36:39 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h (mpz_divexact): Delete parameter names.
+ (mpz_lcm): Delete spurious declaration.
+
+ * mpz/dmincl.c: Fix typo.
+
+Mon Feb 5 01:11:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/gcd.c (gcd_2): Declare consistently.
+
+ * mpz/tdiv_q.c: Optimize division by a single-limb divisor.
+ * mpz/dmincl.c: Likewise.
+
+ * mpz/add.c: Use MPN_NORMALIZE instead of mpn_normal_size.
+ * mpz/sub.c: Likewise.
+ * mpn/generic/sqrt.c: Likewise.
+
+ * mpn/tests/{add_n,sub_n,lshift,rshift}.c: Put garbage in the
+ destination arrays.
+
+Fri Feb 2 02:21:27 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/{jacobi.c,legendre.c,ntsup.c,invert.c}: New files.
+ * mpz/Makefile.in: Compile them.
+
+ * mpn/Makefile.in (INCLUDES): Don't search in `generic'.
+
+Thu Feb 1 02:15:11 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ Change from Ken Weber:
+ * mpz/divexact.c: Make it work when quot is identical to either input.
+
+ * mpf/ui_sub.c: New file.
+ * mpf/Makefile.in: Compile it.
+
+ * gmp-impl.h (MPZ_TMP_INIT): alloca -> TMP_ALLOC.
+ * mpz/{c,f}div_{q,qr,r}.c: Use TMP_DECL/TMP_MARK/TMP_FREE since
+ these use MPZ_TMP_INIT.
+ * mpz/mod.c: Likewise.
+ * mpq/{add,sub}.c: Likewise.
+ * mpq/canonicalize: Likewise.
+
+ * mpq/{add,sub,mul,div}.c: Use mpz_divexact. MP_INT -> mpz_t.
+ * mpq/canonicalize.c: Likewise.
+
+Wed Jan 31 01:45:00 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/gcd.c: Misc changes from Ken.
+
+ * mpz/tests/gcd2.c: New file.
+ * mpz/tests/Makefile.in: Handle gcd2.c.
+
+ * mpn/generic/gcd.c (mpn_gcd): When GCD == ORIG_V, return vsize,
+ not orig_vsize. Fix parameter declaration.
+
+ * mpz/mod_ui.c: Delete file.
+ * mpz/Makefile.in: Don't try to compile mod_ui.
+
+ * mpz/cdiv_*_ui.c): Make them work right.
+ * gmp.h: Declare cdiv*.
+
+Tue Jan 30 02:22:56 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/{cdiv_q.c,cdiv_q_ui.c,cdiv_qr.c,cdiv_qr_ui.c,cdiv_r.c,
+ cdiv_r_ui.c,cdiv_ui.c}: New files.
+ * mpz/Makefile.in: Compile them.
+
+ * All files: Make file permissions right.
+
+ Changes from Ken Weber:
+ * mpn/generic/accelgcd.c: Delete.
+ * mpn/generic/bingcd.c: Delete.
+ * mpn/generic/numbits.c: Delete.
+ * mpn/generic/gcd.c: New file.
+ * mpn/configure.in (functions): Update accordingly.
+ * mpz/divexact.c: New file.
+ * mpz/Makefile.in: Compile divexact.c.
+ * mpz/gcd.c: Rewrite to accommodate for gcd changes in mpn.
+ * gmp.h: declare new functions, delete obsolete declarations.
+ * mpz/tests/dive.c: New file.
+ * mpz/tests/Makefile.in: Handle dive.c.
+
+Mon Jan 29 03:53:24 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/random.c: Handle negative SIZE parameter.
+
+ * mpz/tests/tdiv(_ui).c: New name for tst-dm(_ui).c.
+ * mpz/tests/tst-mdm(_ui).c: Delete.
+ * mpz/tests/fdiv(_ui).c: New test based in tst-mdm(_ui).
+ * mpz/tests/*.c: Get rid of tst- prefix for DOS 8+3 naming.
+ * mpz/tests/Makefile.in: Corresponding changes.
+ * mpz/tests/configure.in: Update srctrigger.
+
+ * mpn/generic/divmod.c: Update from divrem.
+ * mpn/generic/divrem.c: Misc cleanups.
+
+Sun Jan 28 03:25:08 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * All files: Use new TMP_ALLOC interface.
+
+ * mpz/powm_ui.c: Make Jan 25 changes to powm.c also here.
+
+ * mpz/tests/powm_ui.c: New file.
+ * mpz/tests/Makefile.in: Add rules for tst-powm and tst-powm_ui.
+
+ * Makefile.in: Update dependency list.
+ * mpf/Makefile.in: Likewise.
+ * mpz/Makefile.in: Likewise.
+ * mpq/Makefile.in: Likewise.
+ * Makefile.in: Set RANLIB simply to ranlib, and allow configure
+ to override it.
+
+ * mpz/Makefile.in (conf): Delete spurious target.
+ (mp_bases.c): Delete.
+ (cre-conv-tab rules): Delete.
+
+ * Makefile.in (cre-conv-tab): Greatly simplify.
+
+Sat Jan 27 13:38:15 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * stack-alloc.c: New file.
+ * stack-alloc.h: New file.
+
+ * gmp.h (__gmp_inline): Define using __inline__.
+
+Thu Jan 25 00:28:37 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/generic/scan0.c: New file.
+ * mpn/generic/scan1.c: Renamed from next_bit.c.
+ * mpn/configure.in (functions): Include scan0 and scan1.
+
+ * mpn/m68k/*: #include sysdep.h. Use C_GLOBAL_NAME.
+
+ * configure: Update from Cygnus version.
+ * config.guess: Likewise.
+ * config.sub: Likewise.
+ * configure: Pass --nfp to recursive configures.
+
+ * mpz/tests/tst-*.c: Adjust SIZE and reps.
+
+ * mpz/powm.c: Move esize==0 test earlier.
+ In final reduction of rp,rsize, don't call mpn_divmod unless
+ reduction is really needed.
+
+ * mpz/tests/tst-powm.c: Fix thinko in checking code.
+
+ * All files: Get rid of `__' prefix from mpn_* calls and declarations.
+ * gmp.h: #define __MPN.
+ * gmp.h: Use __MPN in #defines for mpn calls.
+
+ * mpn/generic/mul_n.c: Prepend `i' to internal routines.
+ * gmp-impl.h: Add #defines using __MPN for those internal routines.
+
+ * mpn/generic/sqrt.c: Change call to mpn_mul to mpn_mul_n.
+
+Wed Jan 24 13:28:19 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/sparc32/udiv_fp.S: New name for udiv_qrnnd.S.
+ * mpn/sparc32/udiv_nfp.S: New name for v8/udiv_qrnnd.S.
+ * mpn/sparc32/v8/supersparc: New directory.
+ * mpn/sparc32/v8/supersparc/udiv.S: New file.
+
+Tue Jan 23 01:10:11 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ This major contribution is from Ken Weber:
+ * mpn/generic/accelgcd.c: New file.
+ * mpn/generic/bdivmod.c: New file.
+ * mpn/generic/bingcd.c: New file.
+ * mpn/generic/gcd_1.c: Rewrite.
+ * mpn/generic/numbits.c: New file (to go away soon).
+ * mpz/gcd.c: Rewrite.
+ * mpz/tests/tst-gcd.c (SIZE): Now 128.
+ * gmp.h: Declare new functions.
+ * mpn/configure.in (functions): List new files.
+ * gmp-impl.h (MPN_SWAP): Delete.
+ (MPN_LESS_BITS_LIMB, MPN_LESS_BITS, MPN_MORE_BITS): Delete.
+ (MPN_COMPL_INCR, MPN_COMPL): Delete.
+
+Mon Jan 22 02:04:59 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h (mpn_name): New #define.
+
+ * mpn/m88k/mc88110/addmul_1.s: New file.
+ * mpn/m88k/mc88110/add_n.S: New file.
+ * mpn/m88k/mc88110/sub_n.S: New file.
+
+ * mpn/m88k/sub_n.s: Correctly initialize carry.
+
+ * mpn/sparc32/{add_n.S,sub_n.S,lshift.S,rshift.S): `beq' => `be'.
+
+Sun Jan 21 00:04:35 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/sparc64/addmul_1.s: New file.
+ * mpn/sparc64/submul_1.s: New file.
+ * mpn/sparc64/rshift.s: New file.
+
+Sat Jan 20 00:32:54 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpz/iset.c: Fix typo introduced Dec 25.
+
+Wed Jan 17 13:16:44 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * config/mt-sprc8-gcc: New name for mt-sparc8-gcc.
+ * config/mt-sparcv8-gcc: Delete.
+ * configure.in: Corresponding changes.
+
+Tue Jan 16 16:31:01 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp-impl.h: #include alloca.h when necessary.
+
+ * longlong.h: Test __alpha instead of __alpha__, since the former
+ is the standard symbol.
+
+Mon Jan 15 18:06:57 1996 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/sparc64/mul_1.s: Swap operands of mulx instructions.
+ * mpn/sparc64/lshift.s: New file.
+
+Fri Dec 29 17:34:03 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/x86/pentium/add_n.S: Get rid of #defines for register names.
+ * mpn/x86/pentium/sub_n.S: Likewise.
+
+Thu Dec 28 03:16:57 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/x86/pentium/mul_1.S: Rework loop to avoid AGI between update
+ of loop induction variable and load insn at beginning of loop.
+ * mpn/x86/pentium/addmul_1.S: Likewise.
+ * mpn/x86/pentium/submul_1.S: Likewise.
+
+Mon Dec 25 23:22:55 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * All files: Prefix user-visible structure fields with _mp_.
+
+Fri Dec 22 20:42:17 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/configure.in (m68k configs): Terminate path variable with
+ plain "m68k".
+
+Fri Dec 22 03:29:33 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/sparc32/add_n.S: Update from sub_n.S to fix bugs, and to
+ clean things up.
+
+ * mpn/configure.in (m68k configs): Update #include path for new
+ mpn directory organization.
+
+Tue Dec 12 02:53:02 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * gmp.h: Prefix all structure field with _mp_.
+ * gmp-impl.h: Define access macros for these fields.
+
+Sun Dec 10 00:47:17 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/alpha/addmul_1.s: Prefix labels with `.'.
+ * mpn/alpha/submul_1.s: Likewise.
+ * mpn/alpha/[lr]shift.s: Likewise.
+ * mpn/alpha/udiv_qrnnd.S: Likewise.
+ * mpn/alpha/ev5/[lr]shift.s: Likewise.
+
+ * mpn/alpha/ev5/lshift.s: Fix typos.
+
+Fri Dec 1 14:28:20 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/Makefile.in (.SUFFIXES): Define.
+
+Wed Nov 29 23:11:57 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/sparc64/{add_n.s, sub_n.s}: New files.
+
+Tue Nov 28 06:03:13 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/x86/syntax.h: Handle ELF_SYNTAX.
+ Rename GAS_SYNTAX => BSD_SYNTAX.
+
+ * mpn/configure.in: Handle linuxelf and SysV for x86 variants.
+
+Mon Nov 27 01:32:12 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/hppa/hppa1_1/pa7100/submul_1.S: New file.
+
+Sun Nov 26 04:30:47 1995 Torbjorn Granlund <tege@noisy.matematik.su.se>
+
+ * mpn/hppa/hppa1_1/pa7100/addmul_1.S: New file.
+
+ * mpn/sparc32/add_n.S: Rewrite to use 64 bit loads/stores.
+ * mpn/sparc32/sub_n.S: Likewise.
+
+Fri Nov 17 00:18:46 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/configure.in: Handle m68k on NextStep.
+
+Thu Nov 16 02:30:26 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn: Reorganize machine-specific directories.
+ * mpn/configure.in: Corresponding changes.
+ (sh, sh2): Handle these.
+ (m68k targets): Create asm-syntax.h.
+
+Thu Nov 9 02:20:50 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/generic/mul_n.c (____mpn_sqr_n): Delete code that calls abort.
+ (____mpn_mul_n): Likewise.
+
+Tue Nov 7 03:25:12 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/get_str.c: In exponentiation code (two places), don't swap
+ input and output areas when calling mpn_mul_1.
+ * mpf/set_str.c: Likewise.
+
+Fri Nov 3 02:35:58 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/Makefile.in: Make sure all objects are listed in dependency list;
+ delete spurious entries.
+
+ * mpf/mul.c: Handle U or V being 0. Allow prec+1 for result precision.
+
+ * mpf/set_prec.c: New computation of limb precision.
+ * mpf/set_dfl_prec.c: Likewise.
+
+ * mpf/random2.c: Fix typo computing exp.
+ * mpf/get_str.c: In (uexp > usize) case, set n_limbs as a function of
+ the user-requested number of digits, n_digits.
+
+Thu Nov 2 16:25:07 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/generic/divrem.c (case 2): Don't move np vector back, it is
+ never read.
+ (default case): Put most significant limb from np in new variable n2;
+ decrease size argument for MPN_COPY_DECR; use n2 instead of np[dsize].
+
+Wed Nov 1 02:59:53 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/sparc/[lr]shift.S: New files.
+
+Tue Oct 31 00:08:12 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpz/gcd_ui.c: Set w->size unconditionally when v is zero.
+
+ * gmp-impl.h (assert): Delete definition.
+
+ * mpf/sub.c: Delete all assert calls. Delete variable `cy'.
+
+ * mpf/neg.c: Use prec+1 as precision. Optimize for when arguments
+ are the same.
+ * mpf/abs.c: Likewise.
+ * mpf/{set,neg,abs}.c: Make structure and variable names similar.
+
+Mon Oct 30 12:45:26 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/random2.c (random): Test __SVR4 in addition to __svr4__.
+ * mpn/generic/random2.c (random): Likewise.
+
+Sun Oct 29 01:54:28 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/div.c: Special handle U or V being 0.
+
+ * mpf/random2.c: New file.
+
+ * longlong.h (i860 rshift_rhlc): Define.
+ (i960 udiv_qrnnd): Define.
+ (i960 count_leading_zeros): Define.
+ (i960 add_ssaaaa): Define.
+ (i960 sub_ddmmss): Define.
+ (i960 rshift_rhlc): Define.
+
+Sat Oct 28 19:09:15 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/pentium/rshift.S: Fix and generalize condition for when to use
+ special code for shift by 1.
+ * mpn/pentium/lshift.S: Likewise.
+
+Thu Oct 26 00:02:56 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * gmp.h: #undef __need_size_t.
+ * mp.h: Update from gmp.h.
+
+Wed Oct 25 00:17:27 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/Makefile.in: Compile set_prec.c.
+ * mpf/realloc.c: Delete this file.
+ * mpf/Makefile.in: Delete mentions of realloc.c.
+
+ * gmp.h (__mpf_struct): Get rid of `alloc' field.
+ * mpf/clear.c: Likewise.
+ * mpf/init*.c: Likewise.
+ * mpf/set_prec.c: Likewise.
+ * mpf/iset*.c: Likewise.
+
+ * mpf/iset_str.c: New file.
+
+ * mpn/configure.in: Handle pyramid.
+
+ * mpf/set.c: Use prec+1 as precision.
+
+ * mpf/set_prec.c: New file.
+
+Tue Oct 24 00:56:41 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/generic/divrem.c: New file. Will replace mpn/generic/divmod.c
+ when rest of source is converted.
+ * mpn/configure.in (functions): Add `divrem'
+ * mpn/generic/set_str.c: Never call __mpn_mul_1 with zero size.
+
+ * mpf/get_str.c: Completely rewritten.
+ * mpf/add.c: Fix several problems.
+ * mpf/sub.c: Compare operands from most significant end until
+ first difference, exclude skipped limbs from computation.
+ Accordingly simplify normalization code.
+ * mpf/set_str.c: Fix several problems.
+ * mpf/dump.c: New file.
+ * mpf/Makefile.in: Compile dump.c.
+ * mpf/init2.c: Set prec field correctly.
+
+Sun Oct 22 03:02:09 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * cre-conv-tab.c: #include math.h; don't declare log and floor.
+
+Sat Oct 21 23:04:10 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/mul_ui.c: Handle U being 0.
+
+Wed Oct 18 19:39:27 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/generic/set_str.c: Correctly handle input like "000000000000".
+ Misc cleanups.
+
+Tue Oct 17 15:14:13 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where
+ appropriate.
+
+Mon Oct 16 19:14:43 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/add.c: Rewrite.
+ * mpf/set_str.c: New file. Needs more work.
+
+Sat Oct 14 00:14:04 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpf/div_2exp.c: Vastly simplify.
+ * mpf/mul_2exp.c: Likewise.
+
+ * mpf/sub.c: Rewrite.
+
+ * gmp-impl.h (udiv_qrnnd_preinv2gen): Terminate comment.
+
+ * mpf/dump.c: Free allocated memory.
+
+ * gmp-impl.h (assert): Define.
+
+Wed Oct 11 13:31:00 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/pentium/rshift.S: Install new code to optimize shift-by-1.
+
+Tue Oct 10 00:37:21 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/pentium/lshift.S: Install new code to optimize shift-by-1.
+
+ * mpn/powerpc32/{lshift.s,rshift.s}: New files.
+
+ * configure.in: Fix typo.
+
+Sat Oct 7 08:17:09 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * longlong.h (smul_ppmm): Correct type of __m0 and __m1.
+
+Wed Oct 4 16:31:28 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/configure.in: Handle alphaev5.
+ * mpn/ev4: New name for alpha subdir.
+ * mpn/ev5: New subdir.
+ * mpn/ev5/lshift.s: New file.
+
+Tue Oct 3 15:06:45 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/alpha/mul_1.s: Avoid static increments of pointers; use
+ corresponding offsets in ldq and stq instructions instead.
+ (Loop): Swap cmpult and stq to save one cycle on EV5.
+
+ * mpn/tests/{add_n.s,sub_n.s,lshift.s,rshift.s,mul_1.s,addmul_1.s,
+ submul_1.s}: Don't check results if NOCHECK is defined.
+
+Mon Oct 2 11:40:18 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * longlong.h (mips umul_ppmm [32 and 64 bit versions]):
+ Make new variants, based on GCC version number, that use `l' and `h'
+ constraints instead of explicit mflo and mfhi instructions
+
+Sun Oct 1 00:17:47 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/mc88100/add_n.s: Decrease unrolling factor from 16 to 8.
+ * mpn/mc88100/sub_n.s: Likewise.
+
+ * config/mt-m88110: New file.
+ * configure.in: Use it.
+
+ * mpn/mc88110/mul_1.s: Fix thinko.
+
+Sat Sep 30 21:28:19 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpz/set_d.c: Declare `size' at function start.
+
+ * experimental: New directory for mpx and mpz2.
+
+ * mpz/tdiv_q.c: Clarify comments.
+ * mpz/{mod.c,mod_ui.c}: New file, for math mod function.
+
+ * mpn/sh2/{mul_1.s,addmul_1.s,submul_1.s}: New files.
+
+ * mpn/sh/{add_n.s,sub_n.s}: New files.
+
+ * mpn/pyr/{add_n.s,sub_n.s,mul_1.s,addmul_1.s}: New files.
+
+ * mpn/i960/{add_n.s,sub_n.s}: New files.
+
+ * mpn/alpha/addmul_1.s (Loop): Move decrement of r18 to before umulh,
+ to save cycles on EV5.
+ * mpn/alpha/submul_1.s: Ditto.
+ * mpn/alpha/mul_1.s: Ditto.
+
+Thu Sep 28 02:48:59 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * gmp.h (mp_limb, mp_limb_signed): Define as `long long' if
+ _LONG_LONG_LIMB is defined.
+
+ * longlong.h (m88110): Test __m88110__, not __mc88110__
+
+ * mpn/mc88110/mul_1.s: Rewrite.
+
+Tue Sep 26 23:29:05 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * config.sub: Update from current Cygnus version.
+
+ * mpn/configure.in: Recognize canonical m88*, not mc88*.
+
+Fri Sep 22 14:58:05 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpz/set_d.c: New file.
+ * mpz/Makefile.in: Build new files.
+
+ * mpq/get_d.c: Replace usage of scalbn with ldexp.
+
+ * mpn/{vax,i386}/gmp-mparam.h: New files.
+ * gmp-impl.h (ieee_double_extract): Define here.
+ * mpf/set_d.c (ieee_double_extract): Not here.
+
+Thu Sep 21 00:56:36 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * longlong.h (C umul_ppmm): Use UWtype, not USItype for temps.
+ (udiv_qrnnd): For cases implemented with call to __udiv_qrnnd,
+ protect with new symbol LONGLONG_STANDALONE.
+ (68000 umul_ppmm): Use %# prefix for immediate constants.
+
+Wed Sep 20 15:36:23 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/generic/divmod_1.c: Handle
+ divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
+ specifically also when normalization_steps != 0.
+
+Mon Sep 18 15:42:30 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpq/get_d.c: New file.
+
+Sun Sep 17 02:04:36 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * longlong.h (pyr): Botch up for now.
+
+Sat Sep 16 00:11:50 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/clipper/mul_1.s: New file.
+ * mpn/clipper/add_n.s: New file.
+ * mpn/clipper/sub_n.s: New file.
+ * mpn/configure.in: Handle clipper*-*-*.
+
+ * mpn/configure.in: Recognize rs6000-*-*.
+
+Fri Sep 15 00:41:34 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/alpha/add_n.s: New file.
+ * mpn/alpha/sub_n.s: New file.
+
+ * mpn/mips3: New name for mpn/r4000.
+ * mpn/mips2: New name for mpn/r3000.
+ * mpn/configure.in: Corresponding changes.
+
+ * mpn/generic/perfsqr.c (primes): Delete.
+ (residue_map): Delete.
+
+Thu Sep 14 00:07:58 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/r3000/sub_n.s: Fix typo.
+
+ * dm_trunc.c: Delete spurious file.
+
+ * mpz/out_binary.c: Fix typo.
+
+ * mpn/configure.in (per-target): Make mips*-*-irix6* imply r4000.
+
+ * gmp-impl.h: For sparc and sgi, include alloca.h.
+
+ * mpn/z8000/mul_1.s: Replace `test r' with `and r,r'. Replace
+ `ldk r,#0' with `xor r,r'.
+
+Wed Sep 6 00:58:38 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpz/inp_binary.c: New file.
+ * mpz/out_binary.c: New file.
+ * mpz/Makefile.in: Build new files.
+
+Tue Sep 5 22:53:51 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc
+ and size fields.
+
+Sat Sep 2 17:47:59 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/r4000/{add_n.s,sub_n.s}: Optimize away some pointer arithmetic.
+ * mpn/r3000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files,
+ derived from r4000 code.
+
+Fri Sep 1 05:35:52 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/r3000/mul_1.s: Fix typo.
+
+ * mpn/powerpc32: Fix some old vs new mnemonic issues.
+
+ * mpn/powerpc32/{add_n.s,sub_n.s}: New files.
+ * mpn/r4000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files.
+
+Wed Aug 30 10:43:47 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/r3000/mul_1.s ($LC1): Use addiu for immediate add.
+ * mpn/r4000/{mul_1.s,addmul_1.s,submul_1.s}: New files.
+
+ * config.guess: Update to latest FSF revision.
+
+Mon Aug 28 02:18:13 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpz/out_str.c: Cast str to char * in fputs call.
+
+ * gmp-impl.h: Define UQItype, SItype, and USItype also
+ when not __GNUC__.
+
+Fri Aug 25 01:45:04 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/i386/syntax.h: Renamed from asm-syntax.h.
+ * mpn/mc68020/syntax.h: Renamed from asm-syntax.h.
+ * mpn/configure.in: Corresponding changes.
+
+Sun Aug 13 19:20:04 1995 Torbjorn Granlund <tege@bozo.matematik.su.se>
+
+ * mpn/generic/random2.c: Test __hpux, not hpux.
+
+Sat Apr 15 20:50:33 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/sparc/add_n.S: Make it work for PIC.
+ * mpn/sparc/sub_n.s: Likewise.
+ * mpn/sparc8/addmul_1.S: Likewise.
+ * mpn/sparc8/mul_1.S: Likewise.
+ * mpn/i386/add_n.S: Likewise.
+ * mpn/i386/sub_n.S: Likewise.
+
+Thu Apr 13 23:15:03 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/configure.in: Don't search power subdir for generic ppc configs.
+ Add some ppc cpu-specific configs. Misc clean up.
+
+Mon Apr 10 00:16:35 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpz/ui_pow_ui.c: Delete spurious code to handle negative results.
+
+Sun Apr 9 12:38:11 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * longlong.h (SPARC v8 udiv_qrnnd): Generate remainder in C,
+ not in asm.
+
+ * mpn/generic/sqrt.c (SQRT): Test for __SOFT_FLOAT.
+
+Tue Mar 28 00:19:52 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too.
+
+Fri Mar 17 23:29:22 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * longlong.h (SH umul_ppmm): Define.
+
+Thu Mar 16 16:40:44 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case
+ to help CSE.
+
+Fri Mar 10 20:03:49 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/powerpc32/mul_1.s: Clear cy before entering loop.
+ Rearrange loop to save a cycle.
+ * mpn/powerpc32/addmul_1.s: New file.
+ * mpn/powerpc32/submul_1.s: New file.
+
+Fri Feb 17 22:44:45 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/configure.in: Set target_makefile_frag for freebsd
+ in new case stmt.
+ * mpn/config/t-freebsd: New file.
+ * mpn/Makefile.in: Add #### for frag insertion.
+ (XCFLAGS): Clear by default.
+ (.c.o, .S.o rules): Pass XCFLAGS.
+
+Tue Feb 7 16:27:50 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * longlong.h (68000 umul_ppmm): Merge improvements from henderson.
+
+Tue Jan 24 04:23:20 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * longlong.h (default umul_ppmm): Store input parameters in temporaries
+ to avoid reading them twice.
+ (default smul_ppmm): New definition.
+
+Thu Dec 29 04:20:07 1994 Jim Meyering (meyering@comco.com)
+
+ * generic/perfsqr.c (__mpn_perfect_square_p): Remove declaration
+ of unused variable.
+ * generic/pre_mod_1.c (__mpn_preinv_mod_1): Likewise.
+ * mpz/powm.c (pow): Likewise.
+
+ * mpz/and.c (mpz_and): Use {} instead of `;' for empty else clause
+ to placate `gcc -Wall'.
+ * mpz/ior.c (mpz_ior): Likewise.
+
+Wed Dec 28 13:31:40 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/m*68*/*.S: #include asm-syntax.h, not asm.h.
+
+Mon Dec 26 17:15:36 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * longlong.h: Test for more symbols, in __mc68000__ case.
+
+ * mpn/mpn/config.sub: Recognize m68060.
+ * mpn/configure.in: Change mc* to m* for 68k targets.
+ * mpn/Makefile.in (.S.o): Delete spurious creation of temp .c file.
+
+Mon Dec 19 01:56:30 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * config.sub: Recognize pentium as a valid CPU.
+ * mpn/configure.in: Handle pentium specifically, to use new assembly
+ code.
+
+Mon Dec 19 00:13:01 1994 Jim Meyering (meyering@comco.com)
+
+ * gmp.h: Define _GMP_H_HAVE_FILE if FILE, __STDIO_H__, or H_STDIO
+ is defined.
+ * gmp.h: test _GMP_H_HAVE_FILE instead of FILE everywhere else.
+
+Mon Dec 19 00:04:54 1994 Kent Boortz (boortz@sics.se)
+
+ * Makefile.in (recursive makes): Pass CFLAGS.
+
+Sun Dec 18 22:34:49 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/pentium: New directory.
+
+ * mpz/pprime.c: Make sure to mpz_clear all temporaries.
+
+ * longlong.h: Don't use udiv instruction when SUPERSPARC is defined.
+ * configure.in: Handle supersparc*-.
+ * config/mt-supspc-gcc: New file.
+ * config/mt-sparc8-gcc: New name for mt-sparcv8-gcc.
+
+Mon Dec 12 22:22:10 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/i386/*.S: #include "asm-syntax.h", not "asm.h".
+ #include sysdep.h before asm-syntax.h.
+
+ * mpn/mc68020/asm-syntax.h: #undef ALIGN before defining it.
+ * mpn/i386/asm-syntax.h: Likewise.
+
+ * mpn/mc68020/asm-syntax.h: New name for asm.h.
+ * mpn/i386/asm-syntax.h: New name for asm.h.
+
+Tue Dec 6 21:55:25 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpz/array_init.c: Fix typo in declaration.
+
+Fri Nov 18 19:50:52 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES.
+
+Mon Nov 14 00:34:12 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/generic/random2.c (random): Test for __svr4__.
+
+Wed Oct 12 23:28:16 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * cre-conv-tab.c (main): Avoid upper-case X in printf format string.
+
+Tue Aug 23 17:16:35 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpz/perfsqr.c: Use mpn_perfect_square_p.
+ * mpn/generic/perfsqr.c: New file.
+
+Wed Jul 6 13:46:51 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpz/array_init.c: New file.
+ * mpz/Makefile.in: Compile array_init.
+ * gmp.h: Declare mpz_array_init.
+
+Mon Jul 4 01:10:03 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpz/add.c: Fix bogus comment.
+ * mpz/sub.c: Likewise.
+
+Sat Jul 2 02:14:56 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpn/generic/pre_mod_1.c: New file.
+ * mpz/perfsqr.c: Use __mpn_preinv_mod_1 when faster.
+
+Fri Jul 01 22:10:19 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk)
+
+ * longlong.h (arm umul_ppmm): Fix typos in last change. Mark
+ hard-coded registers with "%|"
+
+Thu Jun 30 03:59:33 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpz/perfsqr.c: Define PP, etc, for machines with 64 bit limbs.
+ Use __mpn_mod_1.
+ * mpz/perfsqr.c: Don't clobber REM in quadratic residue check loop.
+
+Wed Jun 29 18:45:41 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpn/generic/sqrt.c (SQRT): New asm for IBM POWER2.
+
+ * mpz/gcd_ui.c: Return 0 if result does not fit an unsigned long.
+
+ * gmp.h: Use "defined (__STDC__)" consistently.
+
+Tue Jun 28 18:44:58 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * gmp.h (mpz_get_si): Don't use "signed" keyword for return type.
+
+ * mpz/tests/Makefile.in: Use CFLAGS for linking.
+
+ * Makefile.in (CFLAGS): Use -O2 here.
+ * mpn/Makefile (CFLAGS): Not here.
+
+ * mpq/cmp_ui.c: Fix typo.
+ * mpq/canonicalize.c: Fix typo.
+ * mpz/gcd_ui.c: Handle gcd(0,v) and gcd(u,0) correctly.
+ * mpn/generic/gcd_1.c: Fix braino in last change.
+
+Mon Jun 27 16:10:27 1994 Torbjorn Granlund (tege@rtl.cygnus.com)
+
+ * mpz/gcd_ui.c: Change return type and return result.
+ Allow destination param to be NULL.
+ * gmp.h: Corresponding change.
+ * mpn/generic/gcd_1.c: Handle zero return from mpn_mod_1.
+
+Tue Jun 14 02:17:43 1994 Torbjorn Granlund (tege@tiny.cygnus.com)
+
+ * mpn/i386/asm.h (ALIGN): Make it take a parameter.
+ * mpn/i386/*.S: Use ALIGN to align all loops.
+
+ * mpn/i386/*.S: Move colon inside C_GLOBAL_NAME expression.
+ (Makes old versions of GAS happy.)
+
+Sat May 28 01:43:54 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * Many files: Delete unused variables and labels.
+ * mpn/generic/dump.c: cast printf width argument to int.
+
+Wed May 25 00:42:37 1994 Torbjorn Granlund (tege@thepub.cygnus.com)
+
+ * mpz/gcd.c (mpz_gcd): Normalize after __mpn_sub calls.
+ (xmod): Ignore return value of __mpn_divmod.
+ (xmod): Improve normalization code.
+
+Sat May 21 01:30:09 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpz/gcdext.c: Cosmetic changes.
+
+ * mpz/fdiv_ui.c: New file.
+
+Fri May 20 00:24:53 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpz/tests/Makefile.in: Use explicit rules for running tests,
+ not a shell loop.
+ (clean): Delete stmp-*.
+
+ * mpz/Makefile.in: Update.
+
+ * mpz/div_ui.c: Don't include longlong.h.
+ * mpz/dm_ui.c: Likewise.
+
+ * mpz/fdiv_q.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr.c, mpz/fdiv_qr_ui.c,
+ mpz/fdiv_r.c, mpz/fdiv_r_ui.c: New files. Code partly from deleted
+ mdm.c, mdm_ui.c, etc, partly rewritten.
+ * mpz/dm_floor_ui.c, mpz/dm_floor.c: Delete.
+ * mpz/mdm.c, mpz/mdm_ui.c, mpz/mdiv.c, mpz/mdiv_ui.c, mpz/mmod.c,
+ mpz/mmod_ui.c: Delete.
+
+ * mpz/tdiv_q.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr.c, mpz/tdiv_qr_ui.c,
+ mpz/tdiv_r.c, mpz/tdiv_r_ui.c:
+ New names for files implementing truncating division.
+ * mpz/div_ui.c, mpz/dm_ui.c, mpz/mod_ui.c: Simplify.
+
+ * mpn/Makefile.in (.S.o): Don't rely on CPP being defined, use CC
+ instead.
+ (clean): Delete tmp-*.
+
+Thu May 19 01:37:44 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpz/cmp.c: Call __mpn_cmp.
+
+ * mpz/popcount.c: Fix typo.
+
+ * mpz/powm_ui.c: Simplify main loop. Keep principal operand size
+ smaller than MSIZE when possible.
+ * mpz/powm.c: Likewise.
+
+ * mpn/generic/sqrt.c: Move alloca calls into where the memory is
+ needed. Simplify.
+
+ * gmp.h: (_PROTO): New macro.
+ Add many function declarations; use _PROTO macro in all declarations.
+
+ * mpf/*.c: Prepend mpn calls with __.
+
+Wed May 18 20:57:06 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpf/*ui*.c: Make ui argument `long' for consistency with mpz
+ functions.
+
+ * mpf/div_ui.c: Simplify.
+
+Tue May 17 01:05:14 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpz/*.c: Prepend mpn calls with __.
+
+ * mpz/mul_ui.c: Use mpn_mul_1.
+
+Mon May 16 17:19:41 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpn/i386/mul_1.S: Use C_GLOBAL_NAME.
+ * mpn/i386/mul_1.S, mpn/i386/addmul_1.S, mpn/i386/submul_1.S:
+ Nuke use of LAB.
+
+Sat May 14 14:21:02 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * gmp-impl.h: Don't define abort here.
+
+ * mpz/pow_ui.c: Increase temporary allocation.
+ * mpz/ui_pow_ui.c: Likewise.
+
+ * gmp.h (mpz_add_1, mpz_sub_1): Don't call memcpy.
+
+ * All Makefile.in: Delete spurious -I arguments.
+ Update dependencies.
+
+ * mpz/popcount.c: New file.
+ * mpz/hamdist.c: New file.
+
+ * All configure: Latest version from Cygnus.
+
+ * mpq/Makefile.in: New file.
+ * mpq/configure.in: New file.
+ * Makefile.in, configure.in: Enable compilation of mpq.
+
+ * mpq/set_z.c: Fix typos.
+ * mpq/canonicalize.c: Fix typos.
+ * mpq/cmp_ui.c: Fix typos.
+
+ * mpf/add_ui.c: Read U->D into UP always. Delete spurious MPN_COPY.
+ * mpf/sub_ui.c: Likewise.
+
+ * gmp-impl.h: Don't redefine alloca.
+
+ * COPYING.LIB: Renamed from COPYING.
+
+Wed May 11 01:45:44 1994 Torbjorn Granlund (tege@adder.cygnus.com)
+
+ * mpz/powm_ui.c: When shifting E left by C+1, handle out-of-range
+ shift counts. Fix typo when testing negative_result.
+ * mpz/powm.c: Likewise.
+
+ * mpz/ui_pow_ui.c: New file.
+ * mpz/Makefile.in: Update.
+
+ * mpz/pow_ui.c: Call __mpn_mul_n instead of __mpn_mul when possible.
+
+ * mpz/div.c, mpz/div_ui.c, mpz/gcd.c: Prefix external mpn calls.
+ * mpz/gcd.c: Declare mpn_xmod.
+
+ * mpz/powm.c: Major changes to accommodate changed mpn semantics.
+ * mpz/powm_ui.c: Update from mpz/powm.c.
+
+ * mpz/tests/tst-io.c: New file.
+ * mpz/tests/tst-logic: New file.
+ * mpz/tests/Makefile.in: Update.
+
+ * mpz/inp_str.c: Get base right when checking for first digit.
+ * mpz/inp_str.c: Allocate more space for DEST when needed.
+
+ * mpz/com.c: Use mpn_add_1 and mpn_sub_1.
+ * mpz/and.c, mpz/ior.c: Likewise. Simplify somewhat.
+
+ * mpz/add_ui.c: Use mpn_add_1 and mpn_sub_1.
+ Rename parameters to be consistent with mpz/sub_ui.
+ General simplifications.
+ * mpz/sub_ui.x: Likewise.
+
+Tue Aug 10 19:41:16 1993 Torbjorn Granlund (tege@prudens.matematik.su.se)
+
+ * mpf: New directory.
+ * mpf/*.c: Merge basic set of mpf functions.
+
+ * Many logs missing...
+
+Sun Apr 25 18:40:26 1993 Torbjorn Granlund (tege@pde.nada.kth.se)
+
+ * memory.c: Use #if instead of #ifdef for __STDC__ for consistency.
+ * bsd/xtom.c: Likewise.
+
+ * mpz/div.c: Remove free_me and free_me_size and their usage.
+ Use mpn_divmod for division; corresponding changes in return value
+ convention.
+ * mpz/powm.c: `carry_digit' => `carry_limb'.
+ * bsd/sdiv.c: Clarify comment.
+
+Sun Apr 25 00:31:28 1993 Torbjorn Granlund (tege@pde.nada.kth.se)
+
+ * longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.
+
+Sat Apr 24 16:23:33 1993 Torbjorn Granlund (tege@pde.nada.kth.se)
+
+ * longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.
+
+ * gmp-impl.h: #define ABS.
+ * (Many files): Use ABS instead of abs.
+
+ * mpn/generic/sqrt.c, mpz/clrbit.c, mpz/get_si.c, mpz/mod_2exp.c,
+ mpz/pow_ui.c: Cast 1 to mp_limb before shifting.
+
+ * mpz/perfsqr.c: Use #if, not plain if for exclusion of code for
+ non-32-bit machines.
+
+Tue Apr 20 13:13:58 1993 Torbjorn Granlund (tege@du.nada.kth.se)
+
+ * mpn/generic/sqrt.c: Handle overflow for intermediate quotients by
+ rounding them down to fit.
+
+ * mpz/perfsqr.c (PP): Define in hexadecimal to avoid GCC warnings.
+
+ * mpz/inp_str.c (char_ok_for_base): New function.
+ (mpz_inp_str): Use it.
+
+Sun Mar 28 21:54:06 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se)
+
+ * mpz/inp_raw.c: Allocate x_index, not xsize limbs.
+
+Mon Mar 15 11:44:06 1993 Torbjorn Granlund (tege@pde.nada.kth.se)
+
+ * mpz/pprime.c: Declare param `const'.
+ * gmp.h: Add declarations for mpz_com.
+
+Thu Feb 18 14:10:34 1993 Torbjorn Granlund (tege@pde.nada.kth.se)
+
+ * mpq/add.c, mpq/sub.c: Call mpz_clear for t.
+
+Fri Feb 12 20:27:34 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se)
+
+ * mpz/inp_str.c: Recog minus sign as first character.
+
+Wed Feb 3 01:36:02 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se)
+
+ * mpz/iset.c: Handle 0 size.
+
+Tue Feb 2 13:03:33 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se)
+
+ * mpz/mod_ui.c: Initialize dividend_size before it's used.
+
+Mon Jan 4 09:11:15 1993 Torbjorn Granlund (tege@sics.se)
+
+ * bsd/itom.c: Declare param explicitly 'signed'.
+ * bsd/sdiv.c: Likewise.
+
+ * mpq/cmp.c: Remove unused variable tmp_size.
+ * mpz/powm_ui.c: Fix typo in esize==0 if stmt.
+ * mpz/powm.c: Likewise.
+
+Sun Nov 29 01:16:11 1992 Torbjorn Granlund (tege@sics.se)
+
+ * mpn/generic/divmod_1.c (mpn_divmod_1): Handle
+ divisor_limb == 1 << (BITS_PER_MP_LIMB - 1)
+ specifically.
+
+ * Reorganize sources. New directories mpn, mpn/MACH, mpn/generic,
+ mpz, mpq, bsd. Use full file name for change logs hereafter.
+
+Wed Oct 28 17:40:04 1992 Torbjorn Granlund (tege@jupiter.sics.se)
+
+ * longlong.h (__hppa umul_ppmm): Fix typos.
+ (__hppa sub_ddmmss): Swap input arguments.
+
+ * mpz_perfsqr.c (mpz_perfect_square_p): Avoid , before } in
+ initializator.
+
+Sun Oct 25 20:30:06 1992 Torbjorn Granlund (tege@jupiter.sics.se)
+
+ * mpz_pprime.c (mpz_probab_prime_p): Handle numbers <= 3
+ specifically (used to consider all negative numbers prime).
+
+ * mpz_powm_ui: `carry_digit' => `carry_limb'.
+
+ * sdiv: Handle zero dividend specifically. Replace most code in
+ this function with a call to mpn_divmod_1.
+
+Fri Sep 11 22:15:55 1992 Torbjorn Granlund (tege@tarrega.sics.se)
+
+ * mpq_clear: Don't free the MP_RAT!
+
+ * mpn_lshift, mpn_rshift, mpn_rshiftci: Remove `long' from 4:th arg.
+
+Thu Sep 3 01:47:07 1992 Torbjorn Granlund (tege@jupiter.sics.se)
+
+ * All files: Remove leading _ from mpn function names.
+
+Wed Sep 2 22:21:16 1992 Torbjorn Granlund (tege@jupiter.sics.se)
+
+ Fix from Jan-Hein Buhrman:
+ * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c: Make them work as documented.
+
+ * mpz_mmod.c, mpz_mdm.c: Move decl of TEMP_DIVISOR to reflect its
+ life.
+
+Sun Aug 30 18:37:15 1992 Torbjorn Granlund (tege@jupiter.sics.se)
+
+ * _mpz_get_str: Use mpz_sizeinbase for computing out_len.
+ * _mpz_get_str: Don't remove leading zeros. Abort if there are some.
+
+Wed Mar 4 17:56:56 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * gmp.h: Change definition of MP_INT to make the & before params
+ optional. Use typedef to define it.
+ * mp.h: Use typedef to define MINT.
+
+Tue Feb 18 14:38:39 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ longlong.h (hppa umul_ppmm): Add missing semicolon. Declare type
+ of __w1 and __w0.
+
+Fri Feb 14 21:33:21 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Make default count_leading_zeros work for machines >
+ 32 bits. Prepend `__' before local variables to avoid conflicts
+ with users' variables.
+
+ * mpn_dm_1.c: Remove udiv_qrnnd_preinv ...
+ * gmp-impl.h: ... and put it here.
+ * mpn_mod_1: Use udiv_qrnnd_preinv if it is faster than udiv_qrnnd.
+
+Tue Feb 11 17:20:12 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_mul: Enhance base case by handling small multiplicands.
+ * mpn_dm_1.c: Revert last change.
+
+Mon Feb 10 11:55:15 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed.
+
+Fri Feb 7 16:26:16 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_mul: Replace code for base case.
+
+Thu Feb 6 15:10:42 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_dm_1.c (_mpn_divmod_1): Add code for avoiding division by
+ pre-inverting divisor.
+
+Sun Feb 2 11:10:25 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Make __LLDEBUG__ work differently.
+ (_IBMR2): Reinsert old code.
+
+Sat Feb 1 16:43:00 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h (#ifdef _IBMR2): Replace udiv_qrnnd with new code
+ using floating point operations. Don't define
+ UDIV_NEEDS_NORMALIZATION any longer.
+
+Fri Jan 31 15:09:13 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Define UMUL_TIME and UDIV_TIME for most machines.
+ * longlong.h (#ifdef __hppa): Define umul_ppmm.
+
+Wed Jan 29 16:41:36 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_cmp: Only one length parameter, assume operand lengths are
+ the same. Don't require normalization.
+ * mpq_cmp, mpz_add, mpz_sub, mpz_gcd, mpn_mul, mpn_sqrt: Change for
+ new mpn_cmp definition.
+
+Tue Jan 28 11:18:55 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * _mpz_get_str: Fix typo in comment.
+
+Mon Jan 27 09:44:16 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Makefile.in: Add new files.
+
+ * mpn_dm_1.c: New file with function _mpn_divmod_1.
+ * mpz_dm_ui.c (mpz_divmod_ui): Use _mpn_divmod_1.
+ * mpz_div_ui: Likewise.
+
+ * mpn_mod_1.c: New file with function _mpn_mod_1.
+ * mpz_mod_ui: Use _mpn_mod_1.
+
+Thu Jan 23 18:54:09 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Bug found by Paul Zimmermann (zimmermann@inria.inria.fr):
+ * mpz_div_ui.c (mpz_div_ui), mpz_dm_ui.c (mpz_divmod_ui):
+ Handle dividend == 0.
+
+Wed Jan 22 12:02:26 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_pprime.c: Use "" for #include.
+
+Sun Jan 19 13:36:55 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_rshiftci.c (header): Correct comment.
+
+Wed Jan 15 18:56:04 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_powm, mpz_powm_ui (if (bsize > msize)): Do alloca (bsize + 1)
+ to make space for ignored quotient at the end. (The quotient might
+ always be an extra limb.)
+
+Tue Jan 14 21:28:48 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_powm_ui: Fix comment.
+ * mpz_powm: Likewise.
+
+Mon Jan 13 18:16:25 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target.
+
+Sun Jan 12 13:54:28 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Fixes from Kazumaro Aoki:
+ * mpz_out_raw: Take abs of size to handle negative values.
+ * mpz_inp_raw: Reallocate before reading ptr from X.
+ * mpz_inp_raw: Store, don't read, size to x->size.
+
+Tue Jan 7 17:50:25 1992 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * gmp.h, mp.h: Remove parameter names from prototypes.
+
+Sun Dec 15 00:09:36 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * tests/Makefile.in: Prepend "./" to file names when executing
+ tests.
+
+ * Makefile.in: Fix many problems.
+
+Sat Dec 14 01:00:02 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_sqrt.c: New file with _mpn_sqrt.
+ * mpz_sqrt, mpz_sqrtrem, mpz_perfect_square_p: Use _mpn_sqrt.
+ * msqrt.c: Delete. Create from mpz_sqrtrem.c in Makefile.in.
+ * mpz_do_sqrt.c: Delete.
+ * Makefile.in: Update to reflect these changes.
+
+ * Makefile.in, configure, configure.subr: New files
+ (from bothner@cygnus.com).
+ * dist-Makefile: Delete.
+
+ * mpz_fac_ui: Fix comment.
+
+ * mpz_random2: Rewrite a bit to make it possible for the most
+ significant limb to be == 1.
+
+ * mpz_pprime.c (mpz_probab_prime_p): Remove \t\n.
+
+Fri Dec 13 23:10:02 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_do_sqrt: Simplify special case for U == 0.
+ * m*sqrt*.c, mpz_perfsqr.c (mpz_perfect_square_p):
+ Rename _mpz_impl_sqrt to _mpz_do_sqrt.
+
+Fri Dec 13 12:52:28 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * gmp-impl.h (MPZ_TMP_INIT): Cast to the right type.
+
+Thu Dec 12 22:17:29 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_add, mpn_sub, mpn_mul, mpn_div: Change type of several
+ variables to mp_size.
+
+Wed Dec 11 22:00:34 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_rshift.c: Fix header comments.
+
+Mon Dec 9 17:46:10 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.2.
+
+ * gmp-impl.h (MPZ_TMP_INIT): Cast alloca return value.
+
+ * dist-Makefile: Add missing dependency for cre-mparam.
+
+ * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
+ mpz_mmod_ui.c, mpz_mdm_ui.c: Remove obsolete comment.
+
+ * dist-Makefile (clean): clean in tests subdir too.
+ * tests/Makefile: Define default values for ROOT and SUB.
+
+ * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand
+ 2 constraint.
+
+Mon Nov 11 00:06:05 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0.
+
+Sat Nov 9 23:47:38 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.1.94.
+
+ * dist-Makefile, Makefile, tests/Makefile: Merge tests into
+ distribution.
+
+Fri Nov 8 22:57:19 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * gmp.h: Don't use keyword `signed' for non-ANSI compilers.
+
+Thu Nov 7 22:06:46 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Cosmetic changes to keep it identical to gcc2 version
+ of longlong.h.
+ * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and
+ sub_ddmmss.
+
+Mon Nov 4 00:36:46 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_mul: Fix indentation.
+
+ * mpz_do_sqrt: Don't assume 32 bit limbs (had constant
+ 4294967296.0).
+ * mpz_do_sqrt: Handle overflow in conversion from double returned
+ by SQRT to mp_limb.
+
+ * gmp.h: Add missing function definitions.
+
+Sun Nov 3 18:25:25 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_pow_ui: Change type of `i' to int.
+
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+ * ChangeLog: Add change log entry.
+Stack overflow.
+
+ * mpz_pow_ui.c: Fix typo in comment.
+
+ * dist-Makefile: Create rpow.c from mpz_powm_ui.c.
+ * mpz_powm_ui.c: Add code for rpow.
+ * rpow.c: Delete this file. The rpow function is now implemented
+ in mpz_powm_ui.c.
+
+ * mpz_fac_ui.c: New file.
+ * gmp.h, dist-Makefile: Add stuff for mpz_fac_ui.
+
+ Bug found by John Amanatides (amana@sasquatch.cs.yorku.ca):
+ * mpz_powm_ui, mpz_powm: Call _mpn_mul in the right way, with
+ the first argument not smaller than the second.
+
+Tue Oct 29 13:56:55 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output
+ header text.
+
+Mon Oct 28 00:35:29 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_random2: Handle size == 0.
+
+ * gmp-impl.h (struct __mp_bases): Rename chars_per_limb_exactly to
+ chars_per_bit_exactly, and change its definition.
+ * cre-conv-tab.c (main): Output field according to its new
+ definition.
+ * mpz_out_str, _mpz_get_str, mpz_sizeinb, mout:
+ Use chars_per_bit_exactly.
+
+ * mpz_random2: Change the loop termination condition in order to
+ get a large most significant limb with higher probability.
+
+ * gmp.h: Add declaration of new mpz_random2 and mpz_get_si.
+ * mpz_get_si.c: New file.
+ * dist-Makefile: Add mpz_random2 and mpz_get_si.
+
+ * mpz_sizeinb.c (mpz_sizeinbase): Special code for base being a
+ power of 2, giving exact result.
+
+ * mpn_mul: Fix MPN_MUL_VERIFY in various ways.
+ * mpn_mul: New macro KARATSUBA_THRESHOLD.
+ * mpn_mul (karatsuba's algorithm): Don't write intermediate results
+ to prodp, use temporary pp instead. (Intermediate results can be
+ larger than the final result, possibly writing into hyperspace.)
+ * mpn_mul: Make smarter choice between Karatsuba's algorithm and the
+ shortcut algorithm.
+ * mpn_mul: Fix typo, cy instead of xcy. Unify carry handling code.
+
+Sun Oct 27 19:57:32 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_mul: In non-classical case, choose Karatsuba's algorithm only
+ when usize > 1.5 vsize.
+
+ * mpn_mul: Break between classical and Karatsuba's algorithm at
+ KARATSUBA_THRESHOLD, if defined. Default to 8.
+
+ * mpn_div: Kludge to fix stray memory read.
+
+Sat Oct 26 20:06:14 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_gcdext: Handle a = b = 0. Remove memory leakage by calling
+ mpz_clear for all temporary variables.
+
+ * mpz_gcd: Reduce w_bcnt in _mpn_lshift call to hold that
+ function's argument constraints. Compute wsize correctly.
+
+ * mpz_gcd: Fix typo in comment.
+
+ * memory.c (_mp_default_allocate, _mp_default_reallocate): Call
+ abort if allocation fails, don't just exit.
+
+Fri Oct 25 22:17:20 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_random2.c: New file.
+
+Thu Oct 17 18:06:42 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be):
+ * mpq_cmp: Take sign into account, don't just compare the
+ magnitudes.
+ * mpq_cmp: Call _mpn_mul in the right way, with the first argument
+ not smaller than the second.
+
+Wed Oct 16 19:27:32 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_random: Ensure the result is normalized.
+
+Tue Oct 15 14:55:13 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_clrbit: Support non-ANSI compilers.
+
+Wed Oct 9 18:03:28 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints.
+
+Tue Oct 8 17:42:59 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_mdm_ui: Add comments.
+
+ * mpz_mdiv: Use MPZ_TMP_INIT instead of mpz_init.
+ * mpz_init_ui: Change spacing and header comment.
+
+Thu Oct 3 18:36:13 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * dist-Makefile: Prepend `./' before some filenames.
+
+Sun Sep 29 14:02:11 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.1 (public).
+
+ * mpz_com: New name of mpz_not.
+ * dist-Makefile: Change mpz_not to mpz_com.
+
+Tue Sep 24 12:44:11 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Fix header comment.
+
+Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.0.92.
+
+ * mpn_mul.c (_mpn_mul): Handle leading zero limbs in non-Karatsuba
+ case.
+
+ * longlong.h (m68000 umul_ppmm): Clobber one register less by
+ slightly rearranging the code.
+
+Sun Sep 1 18:53:25 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * dist-Makefile (stamp-stddefh): Fix typo.
+
+Sat Aug 31 20:41:31 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.0.91.
+
+ * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c,
+ mpz_mmod_ui.c, mpz_mdm_ui.c: New files and functions.
+ * gmp.h, gmp.texi: Define the new functions.
+
+Fri Aug 30 08:32:56 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_gcdext: Compute t argument from the other quantities at the
+ end, of the function, not in the loop. New feature: Allow t to be
+ NULL.
+
+ * mpz_add.c, mpz_sub.c, mpz_mul.c, mpz_powm.c, mpz_gcd.c: Don't
+ include "mp.h". Use type name `MP_INT' always.
+
+ * dist-Makefile, mpz_cmp.c: Merge mcmp.c from mpz_cmp.c.
+
+Wed Aug 28 00:45:11 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * dist-Makefile (documentation): Go via tmp.texi to avoid the
+ creation of gmp.dvi if any errors occur. Make tex read input
+ from /dev/null.
+
+Fri Aug 23 15:58:52 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h (68020, i386): Don't define machine-dependent
+ __umulsidi3 (so the default definition is used).
+ * longlong.h (all machines): Cast all operands, sources and
+ destinations, to `unsigned long int'.
+ * longlong.h: Add gmicro support.
+
+Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE.
+ * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm.
+ * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs.
+ * _mpz_get_str.c: Add code to do division by big_base using only
+ umul_qrnnd, if that is faster. Use UMUL_TIME and UDIV_TIME to
+ decide which variant to use.
+
+Wed Aug 21 15:45:23 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the
+ nops. (Saves two insn.)
+
+ * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid
+ branch, and to permit input/output register overlap.
+
+ * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition.
+ * longlong.h (__29k__ umul_ppmm): Split asm instructions into two
+ asm statements (gives better code if either the upper or lower
+ part of the product is unused.
+
+Tue Aug 20 17:57:59 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * _mpz_get_str.c (outside of functions): Remove
+ num_to_ascii_lower_case and num_to_ascii_upper_case. Use string
+ constants in the function instead.
+
+Mon Aug 19 00:37:42 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * cre-conv-tab.c (main): Output table in hex. Output 4 fields, not
+ 3, for components 0 and 1.
+
+ * gmp.h: Add declaration of mpq_neg.
+
+ Released 1.0beta.13.
+
+ * _mpz_set_str.c (mpz_set_str): Cast EOF and SPC to char before
+ comparing to enum literals SPC and EOF. This makes the code work
+ for compilers where `char' is unsigned. (Bug found by Brian
+ Beuning).
+
+ Released 1.0beta.12.
+
+ * mpz_mod_ui: Remove references to quot. Remove quot_ptr, quot_size
+ declarations and assignment code.
+
+Sun Aug 18 14:44:26 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_mod_ui: Handle dividend < 0.
+
+ Released 1.0beta.11.
+
+ * mpz_dm_ui, mpz_div_ui, mpz_mod_ui, sdiv: Make them share the same
+ general structure, variable names, etc.
+
+ * sdiv: Un-normalize the remainder in n1 before it is negated.
+
+ * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of
+ udiv_qrnnd.
+
+ * mpz_dm_ui.c (mpz_divmod_ui), mpz_div_ui.c (mpz_div_ui): Increment
+ the quotient size if the dividend size is incremented. (Bug found
+ by Brian Beuning.)
+
+ * mpz_mod_ui: Shift back the remainder, if UDIV_NEEDS_NORMALIZATION.
+ (Bug found by Brian Beuning.)
+
+ * mpz_mod_ui: Replace "digit" by "limb".
+
+ * mpz_perfsqr.c (mpz_perfect_square_p): Disable second test case
+ for non-32-bit machines (PP is hardwired for such machines).
+ * mpz_perfsqr.c (outside of functions): Define PP value with an L.
+
+ * mpn_mul.c (_mpn_mul): Add verification code that is activated if
+ DEBUG is defined. Replace "digit" by "limb".
+ * mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 4.): Normalize temp
+ after the addition.
+ * mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 1.): Compare u0_size
+ and v0_size, and according to the result, swap arguments in
+ recursive call. (Don't violate mpn_mul's own argument
+ constraints.)
+
+Fri Aug 16 13:47:12 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.0beta.10.
+
+ * longlong.h (IBMR2): Add udiv_qrnnd.
+
+ * mpz_perfsqr: Remove unused variables.
+
+ * mpz_and (case for different signs): Initialize loop variable i!
+
+ * dist-Makefile: Update automatically generated dependencies.
+ * dist-Makefile (madd.c, msub.c, pow.c, mult.c, gcd.c): Add mp.h,
+ etc to dependency file lists.
+
+ * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x
+ `unsigned long int'.
+ * longlong.h: Add `int' after `unsigned' and `long' everywhere.
+
+Wed Aug 14 18:06:48 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Add ARM, i860 support.
+
+ * mpn_lshift, mpn_rshift, mpn_rshiftci: Rename *_word with *_limb.
+
+Tue Aug 13 21:57:43 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * _mpz_get_str.c, _mpz_set_str.c, mpz_sizeinb.c (mpz_sizeinbase),
+ mpz_out_str.c, mout.c: Remove declaration of __mp_bases.
+ * gmp-impl.h: Put it here, and make it `const'.
+ * cre-conv-tab.c (main): Make struct __mp_bases `const'.
+
+Mon Aug 12 17:11:46 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * cre-conv-tab.c (main): Use %lu in printf for long ints.
+
+ * dist-Makefile: Fix cre-* dependencies.
+
+ * cre-conv-tab.c (main): Output field big_base_inverted.
+
+ * gmp-impl.h (struct bases): New field big_base_inverted.
+ * gmp-impl.h (struct bases): Change type of chars_per_limb_exactly
+ to float (in order to keep the structure smaller).
+
+ * mp.h, gmp.h: Change names of macros for avoiding multiple
+ includes.
+
+Fri Aug 9 18:01:36 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * _mpz_get_str: Only shift limb array if normalization_steps != 0
+ (optimization).
+
+ * longlong.h (sparc umul_ppmm): Use __asm__, not asm.
+ * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0
+ and m1 (overlap between output and input operands did not work).
+ * longlong.h: Add VAX, ROMP and HP-PA support.
+ * longlong.h: Sort the machine dependent code in alphabetical order
+ on the CPU name.
+ * longlong.h: Hack comments.
+
+Thu Aug 8 14:13:36 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ Released 1.0beta.9.
+
+ * longlong.h: Define BITS_PER_LONG to 32 if it's not already
+ defined.
+ * Define __BITS4 to BITS_PER_LONG / 4.
+ * Don't assume 32 bit word size in "count_leading_zeros" C macro.
+ Use __BITS4 and BITS_PER_LONG instead.
+
+ * longlong.h: Don't #undef internal macros (reverse change of Aug 3).
+
+ * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm
+ even for plain mc68000.
+
+ * mpq_div: Flip the sign of the numerator *and* denominator of the
+ result if the intermediate denominator is negative.
+
+ * mpz_and.c, mpz_ior.c: Use MPN_COPY for all copying operations.
+
+ * mpz_and.c: Compute the result size more conservatively.
+ * mpz_ior.c: Likewise.
+
+ * mpz_realloc: Never allocate zero space even if NEW_SIZE == 0.
+
+ * dist-Makefile: Remove madd.c, msub.c, pow.c, mult.c, gcd.c from
+ BSDMP_SRCS.
+
+ * dist-Makefile: Create mult.c from mpz_mul.c.
+ * mult.c: Delete this file.
+
+ * _mpz_set_str: Normalize the result (for bases 2, 4, 8... it was
+ not done properly if the input string had many leading zeros).
+
+Sun Aug 4 16:54:14 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * dist-Makefile (gcd.c, pow.c, madd.c, msub.c): Make these targets
+ work with VPATH and GNU MP.
+
+ * mpz_gcd: Don't call mpz_set; inline its functionality.
+
+ * mpq_mul, mpq_div: Fix several serious typos.
+
+ * mpz_dmincl, mpz_div: Don't normalize the quotient if it's already
+ zero.
+
+ * mpq_neg.c: New file.
+
+ * dist-Makefile: Remove obsolete dependencies.
+
+ * mpz_sub: Fix typo.
+
+ Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be):
+ * mpq_mul, mpq_div: Initialize tmp[12] variables even when the gcd
+ is just 1.
+ * mpz_gcd: Handle gcd(0,v) and gcd(u,0) in special cases.
+
+Sat Aug 3 23:45:28 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h: Clean up comments.
+ * longlong.h: #undef internal macros.
+
+Fri Aug 2 18:29:11 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpq_set_si, mpq_set_ui: Canonicalize 0/x to 0/1.
+ * mpq_set_si, mpq_set_ui: Cosmetic formatting changes.
+
+ * mpz_dmincl.c: Normalize the remainder before shifting it back.
+
+ * mpz_dm_ui.c (mpz_divmod_ui): Handle rem == dividend.
+
+ * mpn_div.c: Fix comment.
+
+ * mpz_add.c, mpz_sub.c: Use __MP_INT (not MP_INT) for intermediate
+ type, in order to work for both GNU and Berkeley functions.
+
+ * dist-Makefile: Create gcd.c from mpz_gcd.c, pow.c from mpz_powm,
+ madd.c from mpz_add.c, msub.c from mpz_sub.c.
+ respectively.
+ * pow.c, gcd.c, mpz_powmincl.c, madd.c, msub.c: Remove these.
+ * mpz_powm.c, mpz_gcd.c, mpz_add.c, mpz_sub.c: #ifdef for GNU and
+ Berkeley function name variants.
+ * dist-Makefile: Add created files to "clean" target.
+
+Tue Jul 16 15:19:46 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpq_get_den: No need for absolute value of the size, the
+ denominator is always positive.
+
+ * mpz_get_ui: If the operand is zero, return zero. Don't read the
+ limb array!
+
+ * mpz_dmincl.c: Don't ignore the return value from _mpn_rshift, it
+ is the size of the remainder.
+
+Mon Jul 15 11:08:05 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Several files: Remove unused variables and functions.
+
+ * gmp-impl.h: Declare _mpz_impl_sqrt.
+
+ * mpz_dm_ui (mpz_divmod_ui), sdiv: Shift back the remainder if
+ UDIV_NEEDS_NORMALIZATION. (Fix from Brian Beuning.)
+
+ * mpz_dm_ui.c, sdiv: Replace *digit with *limb.
+
+ * mpz_ior: Add missing else statement in -OP1 | -OP2 case.
+ * mpz_ior: Add missing else statement in OP1 | -OP2 case.
+ * mpz_ior: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
+ * mpz_ior: Duplicate _mpz_realloc code.
+
+ * mpz_and: Add missing else statement in -OP1 & -OP2 case.
+ * mpz_and: Rewrite OP1 & -OP2 case.
+ * mpz_and: Swap also OP1 and OP2 pointers in -OP1 & OP2 case.
+
+ * mpz_gcdext: Loop in d1.size (not b->size). (Fix from Brian
+ Beuning.)
+
+ * mpz_perfsqr: Fix argument order in _mpz_impl_sqrt call. (Fix from
+ Brian Beuning.)
+
+Fri Jul 12 17:10:33 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpq_set.c, mpq_set_ui.c, mpq_set_si.c, mpq_inv.c,
+ mpq_get_num.c, mpq_get_den.c, mpq_set_num.c, mpq_set_den.c:
+ New files.
+
+ * mpz_dmincl.c: Remove second re-allocation of rem->d. It
+ was never executed.
+
+ * dist-Makefile: Use `-r' instead of `-x' for test for ranlib (as
+ some unixes' test doesn't have the -r option).
+
+ * *.*: Cast allocated pointers to the appropriate type (makes old C
+ compilers happier).
+
+ * cre-conv-tab.c (main): Divide max_uli by 2 and multiply again
+ after conversion to double. (Kludge for broken C compilers.)
+
+ * dist-Makefile (stamp-stddefh): New target. Test if "stddef.h"
+ exists in the system and creates a minimal one if it does not
+ exist.
+ * cre-stddefh.c: New file.
+ * dist-Makefile: Make libgmp.a and libmp.a depend on stamp-stddefh.
+ * dist-Makefile (clean): Add some more.
+ * gmp.h, mp.h: Unconditionally include "stddef.h".
+
+Thu Jul 11 10:08:21 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * min: Do ungetc of last read character.
+ * min.c: include stdio.h.
+
+ * dist-Makefile: Go via tmp- files for cre* redirection.
+ * dist-Makefile: Add tmp* to "clean" target.
+
+ * dist-Makefile: Use LOCAL_CC for cre*, to simplify cross
+ compilation.
+
+ * gmp.h, mp.h: Don't define NULL here.
+ * gmp-impl.h: Define it here.
+
+Wed Jul 10 14:13:33 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_mod_2exp: Don't copy too much, overwriting most significant
+ limb.
+
+ * mpz_and, mpz_ior: Don't read op[12]_ptr from op[12] when
+ reallocating res, if op[12]_ptr got their value from alloca.
+
+ * mpz_and, mpz_ior: Clear up comments.
+
+ * cre-mparam.c: Output parameters for `short int' and `int'.
+
+ * mpz_and, mpz_ior: Negate negative op[12]_size in several places.
+
+Tue Jul 9 18:40:30 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * gmp.h, mp.h: Test for _SIZE_T defined before typedef'ing size_t.
+ (Fix for Sun lossage.)
+
+ * gmp.h: Add declaration of mpq_clear.
+
+ * dist-Makefile: Check if "ranlib" exists, before using it.
+ * dist-Makefile: Add mpz_sqrtrem.c and mpz_size.c.
+ * mpz_powm: Fix typo, "pow" instead of "mpz_powm".
+
+Fri Jul 5 19:08:09 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * move: Remove incorrect comment.
+
+ * mpz_free, mpq_free: Rename to *_clear.
+ * dist-Makefile: Likewise.
+ * mpq_add, mpq_sub, mpq_mul, mpq_div: Likewise.
+
+ * mpz_dmincl.c: Don't call "move", inline its functionality.
+
+Thu Jul 4 00:06:39 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Makefile: Include dist-Makefile. Fix dist target to include
+ dist-Makefile (with the name "Makefile" in the archive).
+
+ * dist-Makefile: New file made from Makefile. Add new mpz_...
+ functions.
+
+ * mpz_powincl.c New file for mpz_powm (Berkeley MP pow)
+ functionality. Avoids code duplication.
+ * pow.c, mpz_powm.c: Include mpz_powincl.c
+
+ * mpz_dmincl.c: New file containing general division code. Avoids
+ code duplication.
+ * mpz_dm.c (mpz_divmod), mpz_mod.c (mpz_mod), mdiv.c (mdiv): Include
+ mpz_dmincl.c.
+
+ * _mpz_get_str: Don't call memmove, unless HAS_MEMMOVE is defined.
+ Instead, write the overlapping memory copying inline.
+
+ * mpz_dm_ui.c: New name for mpz_divmod_ui.c (SysV file name limit).
+
+ * longlong.h: Don't use #elif.
+ * mpz_do_sqrt.c: Likewise.
+
+ * longlong.h: Use __asm__ instead of asm.
+ * longlong.h (sparc udiv_qrnnd): Make it to one string over several
+ lines.
+
+ * longlong.h: Preend __ll_ to B, highpart, and lowpart.
+
+ * longlong.h: Move array t in count_leading_zeros to the new file
+ mp_clz_tab.c. Rename the array __clz_tab.
+ * All files: #ifdef for traditional C compatibility.
+
+Wed Jul 3 11:42:14 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_and: Initialize res_ptr always (used to be initialized only
+ when reallocating).
+
+ * longlong.h (umul_ppmm [C variant]): Make __ul...__vh
+ `unsigned int', and cast the multiplications. This way
+ compilers more easily can choose cheaper multiplication
+ instructions.
+
+ * mpz_mod_2exp: Handle input argument < modulo argument.
+ * mpz_many: Make sure mp_size is the type for sizes, not int.
+
+ * mpz_init, mpz_init_set*, mpq_init, mpq_add, mpq_sub, mpq_mul,
+ mpq_div: Change mpz_init* interface. Structure pointer as first
+ arg to initialization function, no longer *return* struct.
+
+Sun Jun 30 19:21:44 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Rename mpz_impl_sqrt.c to mpz_do_sqrt.c to satisfy SysV 14
+ character file name length limit.
+
+ * Most files: Rename MINT to MP_INT. Rename MRAT to MP_RAT.
+ * mpz_sizeinb.c: New file with function mpz_sizeinbase.
+ * mp_bases.c: New file, with array __mp_bases.
+ * _mpz_get_str, _mpz_set_str: Remove struct bases, use extern
+ __mp_bases instead.
+ * mout, mpz_out_str: Use array __mp_bases instead of function
+ _mpz_get_cvtlen.
+ * mpz_get_cvtlen.c: Remove.
+ * Makefile: Update.
+
+Sat Jun 29 21:57:28 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay.
+ * longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss.
+ * longlong.h (__sparc__): Don't call .umul; expand asm instead.
+ Don't define __umulsidi3 (i.e. use default definition).
+
+Mon Jun 24 17:37:23 1991 Torbjorn Granlund (tege@amon.sics.se)
+
+ * _mpz_get_str.c (num_to_ascii_lower_case, num_to_ascii_upper_case):
+ Swap 't' and 's'.
+
+Sat Jun 22 13:54:01 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_gcdext.c: New file.
+
+ * mpn_mul: Handle carry and unexpected operand sizes in last
+ additions/subtractions. (Bug trigged when v1_size == 1.)
+
+ * mp*_alloc*: Rename functions to mp*_init* (files to mp*_iset*.c).
+ * mpq_*: Call mpz_init*.
+
+ * mpz_pow_ui, rpow: Use _mpn_mul instead of mult. Restructure.
+
+Wed May 29 20:32:33 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_get_cvtlen: multiply by size.
+
+Sun May 26 15:01:15 1991 Torbjorn Granlund (tege@bella.nada.kth.se)
+
+ Alpha-release 0.95.
+
+ Fixes from Doug Lea (dl@g.oswego.edu):
+ * mpz_mul_ui: Loop to MULT_SIZE (not PROD_SIZE). Adjust PROD_SIZE
+ correctly.
+ * mpz_div: Prepend _ to mpz_realloc.
+ * mpz_set_xs, mpz_set_ds: Fix typos in function name.
+
+Sat May 25 22:51:16 1991 Torbjorn Granlund (tege@bella.nada.kth.se)
+
+ * mpz_divmod_ui: New function.
+
+ * sdiv: Make the sign of the remainder correct.
+
+Thu May 23 15:28:24 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Alpha-release 0.94.
+
+ * mpz_mul_ui: Include longlong.h.
+
+ * mpz_perfsqr.c (mpz_perfect_square_p): Call _mpz_impl_sqrt instead
+ of msqrt.
+
+ * mpz_impl_sqrt: Don't call "move", inline its functionality.
+
+ * mdiv: Use MPN_COPY instead of memcpy.
+ * rpow, mpz_mul, mpz_mod_2exp: Likewise.
+ * pow.c: Likewise, and fix bug in the size arg.
+
+ * xtom: Don't use mpz_alloc, inline needed code instead. Call
+ _mpz_set_str instead of mpz_set_str.
+
+ * Makefile: Make two libraries, libmp.a and libgmp.a.
+
+Thu May 22 20:25:29 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Add manual to distribution.
+ * Fold in many missing routines described in the manual.
+ * Update Makefile.
+
+Wed May 22 13:48:46 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_set_str: Make it handle 0x prefix OK.
+
+Sat May 18 18:31:02 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * memory.c (_mp_default_reallocate): Swap OLD_SIZE and NEW_SIZE
+ arguments.
+ * mpz_realloc (_mpz_realloc): Swap in call to _mp_reallocate_func.
+ * min: Likewise.
+
+Thu May 16 20:43:05 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * memory.c: Make the default allocations functions global.
+ * mp_set_fns (mp_set_memory_functions): Make a NULL pointer mean the
+ default memory function.
+
+Wed May 8 20:02:42 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_div: Handle DEN the same as QUOT correctly by copying DEN->D
+ even if no normalization is needed.
+ * mpz_div: Rework reallocation scheme, to avoid excess copying.
+
+ * mpz_sub_ui.c, mpz_add_ui.c: New files.
+
+ * mpz_cmp.c, mpz_cmp_ui.c: New files.
+
+ * mpz_mul_2exp: Handle zero input MINT correctly.
+
+ * mpn_rshiftci: Don't handle shift counts > BITS_PER_MP_DIGIT.
+
+ * mpz_out_raw.c, mpz_inp_raw.c: New files for raw I/O.
+
+Tue May 7 15:44:58 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_rshift: Don't handle shift counts > BITS_PER_MP_DIGIT.
+ * mpz_div_2exp: Don't call _mpn_rshift with cnt > BITS_PER_MP_DIGIT.
+ * gcd, mpz_gcd: Likewise.
+
+ * gcd, mpz_gcd: Handle common 2 factors correctly.
+
+Mon May 6 20:22:59 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * gmp-impl.h (MPN_COPY): Inline a loop instead of calling memcpy.
+
+ * gmp-impl.h, mpz_get_str, rpow: Swap DST and SRC in TMPCOPY* macros.
+
+Sun May 5 15:16:23 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpz_div: Remove test for QUOT == 0.
+
+Sun Apr 28 20:21:04 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * pow: Don't make MOD normalization in place, as it's a bad idea to
+ write on an input parameter.
+ * pow: Reduce BASE if it's > MOD.
+ * pow, mult, mpz_mul: Simplify realloc code.
+
+Sat Apr 27 21:03:11 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * Install multiplication using Karatsuba's algorithm as default.
+
+Fri Apr 26 01:03:57 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * msqrt: Store in ROOT even for U==0, to make msqrt(0) defined.
+
+ * mpz_div_2exp.c, mpz_mul_2exp.c: New files for shifting right and
+ left, respectively.
+ * gmp.h: Add definitions for mpz_div_2exp and mpz_mul_2exp.
+
+ * mlshift.c, mrshift.c: Remove.
+
+Wed Apr 24 21:39:22 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * mpn_mul: Check only for m2_size == 0 in function header.
+
+Mon Apr 22 01:31:57 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * karatsuba.c: New file for Karatsuba's multiplication algorithm.
+
+ * mpz_random, mpz_init, mpz_mod_2exp: New files and functions.
+
+ * mpn_cmp: Fix header comment.
+
+Sun Apr 21 00:10:44 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * pow: Switch off initial base reduction.
+
+Sat Apr 20 22:06:05 1991 Torbjorn Granlund (tege@echnaton.sics.se)
+
+ * mpz_get_str: Don't generate initial zeros for initial word.
+ Used to write outside of allocated storage.
+
+Mon Apr 15 15:48:08 1991 Torbjorn Granlund (tege@zevs.sics.se)
+
+ * _mpz_realloc: Make it accept size in number of mp_digits.
+ * Most functions: Use new _mpz_realloc definition.
+
+ * mpz_set_str: Remove calls _mp_free_func.
+
+ * Most functions: Rename mpn_* to _mpn_*. Rename mpz_realloc to
+ _mpz_realloc.
+ * mpn_lshift: Redefine _mpn_lshift to only handle small shifts.
+ * mdiv, mpz_div, ...: Changes for new definition of _mpn_lshift.
+ * msqrt, mp*_*shift*: Define cnt as unsigned (for speed).
+
+Sat Apr 6 14:05:16 1991 Torbjorn Granlund (tege@musta.nada.kth.se)
+
+ * mpn_mul: Multiply by the first digit in M2 in a special
+ loop instead of zeroing the product area.
+
+ * mpz_abs.c: New file.
+
+ * sdiv: Implement as mpz_div_si for speed.
+
+ * mpn_add: Make it work for second source operand == 0.
+
+ * msub: Negate the correct operand, i.e. V before swapping, not
+ the smaller of U and V!
+ * madd, msub: Update abs_* when swapping operands, and not after
+ (optimization).
+
+Fri Apr 5 00:19:36 1991 Torbjorn Granlund (tege@black.nada.kth.se)
+
+ * mpn_sub: Make it work for subtrahend == 0.
+
+ * madd, msub: Rewrite to minimize mpn_cmp calls. Ensure
+ mpn_cmp is called with positive sizes (used to be called
+ incorrectly with negative sizes sometimes).
+
+ * msqrt: Make it divide by zero if fed with a negative number.
+ * Remove if statement at end of precision calculation that was
+ never true.
+
+ * itom, mp.h: The argument is of type short, not int.
+
+ * mpz_realloc, gmp.h: Make mpz_realloc return the new digit pointer.
+
+ * mpz_get_str.c, mpz_set_str.c, mpz_new_str.c: Don't include mp.h.
+
+ * Add COPYING to distribution.
+
+ * mpz_div_ui.c, mpz_div_si.c, mpz_new_ui.c, mpz_new_si.c: New files.
+
+Fri Mar 15 00:26:29 1991 Torbjorn Granlund (tege@musta.nada.kth.se)
+
+ * Add Copyleft headers to all files.
+
+ * mpn_mul.c, mpn_div.c: Add header comments.
+ * mult.c, mdiv.c: Update header comments.
+
+ * mpq_add.c, mpq_sub.c, mpq_div.c, mpq_new.c, mpq_new_ui.c,
+ mpq_free.c: New files for rational arithmetics.
+
+ * mpn_lshift.c: Avoid writing the most significant word if it is 0.
+
+ * mdiv.c: Call mpn_lshift for the normalization.
+ * mdiv.c: Remove #ifdefs.
+
+ * Makefile: Add ChangeLog to DISTFILES.
+
+ * mpn_div.c: Make the add_back code work (by removing abort()).
+ * mpn_div.c: Make it return if the quotient is size as compared
+ with the difference NSIZE - DSIZE. If the stored quotient is
+ larger than that, return 1, otherwise 0.
+ * gmp.h: Fix mpn_div declaration.
+ * mdiv.c: Adopt call to mpn_div.
+ * mpz_div.c: New file (developed from mdiv.c).
+
+ * README: Update routine names.
+
+Thu Mar 14 18:45:28 1991 Torbjorn Granlund (tege@musta.nada.kth.se)
+
+ * mpq_mul.c: New file for rational multiplication.
+
+ * gmp.h: Add definitions for rational arithmetics.
+
+ * mpn_div: Kludge the case where the high numerator digit > the
+ high denominator digit. (This code is going to be optimized later.)
+
+ * New files: gmp.h for GNU specific functions, gmp-common.h for
+ definitions common for mp.h and gmp.h.
+
+ * Ensure mp.h just defines what BSD mp.h defines.
+
+ * pow.c: Fix typo for bp allocation.
+
+ * Rename natural number functions to mpn_*, integer functions to
+ mpz_*.
+
+Tue Mar 5 18:47:04 1991 Torbjorn Granlund (tege@musta.nada.kth.se)
+
+ * mdiv.c (_mp_divide, case 2): Change test for estimate of Q from
+ "n0 >= r" to "n0 > r".
+
+ * msqrt: Tune the increasing precision scheme, to do fewer steps.
+
+Tue Mar 3 18:50:10 1991 Torbjorn Granlund (tege@musta.nada.kth.se)
+
+ * msqrt: Use the low level routines. Use low precision in the
+ beginning, and increase the precision as the result converges.
+ (This optimization gave a 6-fold speedup.)