Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

563642 views
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
	  2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
.
This file is part of the GNU MP Library.
.
The GNU MP Library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or (at your
option) any later version.
.
The GNU MP Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
License for more details.
.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.

2006-05-04  Torbjorn Granlund  <[email protected]>

	* Version 4.2.1 released.

2006-05-03  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n.

2006-04-27  Torbjorn Granlund  <[email protected]>

	* mpz/divexact.c: Call mpz_tdiv_q for large operands.

	* configure.in (powerpc-*-darwin): Remove -fast, it affects PIC.

2006-04-26  Torbjorn Granlund  <[email protected]>

	* config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1).
	* config.sub: Handle ultrasparct1.

2006-04-25  Torbjorn Granlund  <[email protected]>

	* mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and
	non-GNUC data.

2006-04-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* configure.in (gmp_mpn_functions_optional): Add lshiftc.
	(HAVE_NATIVE): Add lshiftc.

	* tune/speed.h (SPEED_ROUTINE_MPN_ADDSUB_N_CALL): New macro.
	* tune/common.c (speed_mpn_addsub_n): New function.
	* tune/speed.c (routine): Add measuring of mpn_addsub_n.

	* 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  <[email protected]>

	* tests/devel/try.c (choice_array): Add mpn_addsub_n[c].

2006-04-12  Torbjorn Granlund  <[email protected]>

	* extract-dbl.c: Don't rely on undefined casts to mp_limb_signed_t.

	* configure.in: Disable AC_C_RESTRICT for now.
	* mpn/generic/diveby3.c: Don't use restict keyword for now.

2006-04-11  Torbjorn Granlund  <[email protected]>

	* gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump.

	* aclocal.m4: Regenerate with patched libtool.

	* mpn/asm-defs.m4 (ASM_END): Provide (empty) default.

2006-04-08  Torbjorn Granlund  <[email protected]>

	* configure.in (gmp_mpn_functions_optional): Add addsub.

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
	Bump version info.

	* gmpxx.h: Remove missed MPFR references.

	* gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument;
	define TMP_SALLOC and TMP_BALLOC.

2006-04-05  Torbjorn Granlund  <[email protected]>

	* tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker.
	(__gmp_tmp_free): Likewise.

2006-03-26  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/cmp_d.c: Declare `i'.
	* mpz/cmpabs_d.c: Likewise.

2006-02-23  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits.
	* mpn/powerpc32/vmx/copyi.asm: Likewise.

2006-02-22  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/vmx/logops_n.asm: New file.

	* mpn/powerpc32/diveby3.asm: Rewrite.

2006-02-21  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/vmx/copyi.asm: New file.
	* mpn/powerpc32/vmx/copyd.asm: New file.

2006-02-17  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from
	deleted mpn_sub_n.

2006-02-16  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/ev6/addmul_1.asm: Correct slotting comments.

2006-02-15  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save
	1 c/l.

2006-02-10  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc64/sqr_diagonal.asm: Software pipeline.

	* mpn/powerpc64/vmx/popcount.asm: Add prefetching.

2006-02-04  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc32/linux.m4 (LEA): Add support for PIC.

	* configure.in (powerpc): New optional, gcc_cflags_subtype.

	* 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  <[email protected]>

	* configure.in: Generalize OS-dependent patterns for powerpcs.

2006-01-20  Torbjorn Granlund  <[email protected]>

	* 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 procssors masquerading as power
	procssors.

2006-01-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation,
	was inaccurate for nails.

2006-01-15  Torbjorn Granlund  <[email protected]>

	* mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing.

2006-01-08  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/ev6/sqr_diagonal.asm: New file.

2006-01-06  Torbjorn Granlund  <[email protected]>

	* mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define.
	(mpn_mullow_n): Use it.

	* 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  <[email protected]>

	* 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.

2006-01-03  Torbjorn Granlund  <[email protected]>

	* configure.in: Update bugs reporting address.

2006-01-02  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc64/linux64.m4 (CALL): New macro.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN".

2005-12-18  Torbjorn Granlund  <[email protected]>

	* mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha.
	* mpf/set_q.c: Likewise.

2005-12-16  Torbjorn Granlund  <[email protected]>

	* mpn/generic/tdiv_qr.c: Remove statement with no effect.
	Rename dead variable to `dummy'.

2005-12-15  Torbjorn Granlund  <[email protected]>

	* demos/pexpr.c (setup_error_handler): Add a missing ";".

2005-11-27  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Properly recognize all 32-bit Solaris releases.

2005-11-10  Torbjorn Granlund  <[email protected]>

	* mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF,
	mpn_fft_add_modF and mpn_fft_normalize.

2005-11-02  Torbjorn Granlund  <[email protected]>

	* tests/mpz/reuse.c: Increase operand size, decrease # of reps.

2005-10-31  Torbjorn Granlund  <[email protected]>

	* 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: 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/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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/pexpr.c (fns): Add factorial keywords.

2005-08-16  Torbjorn Granlund  <[email protected]>

	* tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64".
	* mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64".

2005-08-15  Torbjorn Granlund  <[email protected]>

	* configure.in: Change "amd64" => "x86_64".

2005-06-13  Torbjorn Granlund  <[email protected]>

	* mpn/generic/pre_mod_1.c: Canonicalize variable names.

	* mpn/generic/divrem.c: Rate qxn test as UNLIKELY.

	* 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-12  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last.

2005-06-11  Torbjorn Granlund  <[email protected]>

	* 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-07  Torbjorn Granlund  <[email protected]>

	* mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result.

2005-06-04  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$".
	* mpn/alpha/ev6/mul_1.asm: Likewise.

2005-06-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* tests/devel/try.c (main): Fix a typo.

2005-05-31  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch.

2005-05-30  Torbjorn Granlund  <[email protected]>

	* tests/misc.c (tests_rand_start): Mask random seed to 32 bits.

2005-05-29  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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.

2005-05-24  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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.

2005-05-22  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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-15  Torbjorn Granlund  <[email protected]>

	* gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa.
	(udiv_qrnnd_preinv2gen): Likewise.

2005-05-14  Torbjorn Granlund  <[email protected]>

	* longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate
	operands.
	* (sub_ddmmss) [x86_64]: Likewise.

2005-05-02  Torbjorn Granlund  <[email protected]>

	* 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.

	* 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/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.

2005-05-01  Torbjorn Granlund  <[email protected]>

	* 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-09  Torbjorn Granlund  <[email protected]>

	* 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.

2005-04-08  Torbjorn Granlund  <[email protected]>

	* mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp.

2005-04-07  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/add_n.asm: Add nc entry point.
	* mpn/powerpc32/sub_n.asm: Likewise.

	* 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  <[email protected]>

	* mpn/x86/k7/gmp-mparam.h: Fix typo in last change.

2005-03-19  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/gmp-mparam.h: Update.
	* mpn/alpha/ev5/gmp-mparam.h: Update.
	* mpn/alpha/ev6/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-01-13  Torbjorn Granlund  <[email protected]>

	* gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t.
	(MPN_SIZEINBASE_16): Likewise.

2004-12-17  Torbjorn Granlund  <[email protected]>

	* tune/speed.c (run_gnuplot): Use lines, not linespoints.
	Output a reset gnuplot command initially.

2004-12-04  Torbjorn Granlund  <[email protected]>

	* mpn/generic/random2.c (gmp_rrandomb): Rework again.
	* mpz/rrandomb.c (gmp_rrandomb): Likewise.

2004-11-24  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/diveby3.asm: Use correct prefetch instruction.

2004-11-19  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE.
	Add r31 dummy operand to `br' instruction.

2004-11-17  Torbjorn Granlund  <[email protected]>

	* configure.in: Invoke AC_C_RESTRICT.

2004-11-16  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/diveby3.asm: New file.

2004-11-10  Torbjorn Granlund  <[email protected]>

	* mpn/generic/popham.c: Add comment.

2004-11-05  Torbjorn Granlund  <[email protected]>

	* config.guess: Strip any PPC string in /proc/cpuinfo.
	Recognize 970 in that code.

2004-10-25  Torbjorn Granlund  <[email protected]>

	* 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-16  Torbjorn Granlund  <[email protected]>

	* configure.in: Support icc under x86.
	(ia64-*-linux*): Pass -no-gcc to icc.

2004-10-15  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* acinclude.m4 (GMP_ASM_W32): Try also "data4".

	* longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm.
	* gmp-impl.h: Likewise.

2004-10-12  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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.

	* tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's
	file removals and additions.

2004-10-10  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF.
	* mpn/powerpc64/aix.m4: Likewise.

2004-10-08  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc64/copyi.asm: New file.
	* mpn/powerpc64/copyd.asm: New file.
	* gmp-h.in: Remove PPC MPN_COPY variants.
	* gmp-impl.h: Likewise.

2004-10-07  Torbjorn Granlund  <[email protected]>

	* configfsf.guess: Patch HP-UX code to accomodate HP compiler's new
	inability to read from stdin.

	* mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file.

2004-09-29  Torbjorn Granlund  <[email protected]>

	* gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register
	flag.

2004-09-28  Paul Zimmermann  <[email protected]>

	* mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the
	recursive fft parameters.

2004-09-20  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* tests/misc.c (tests_rand_start): Shift tv_usec for better seeding.

2004-09-18  Torbjorn Granlund  <[email protected]>

	* 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-11  Torbjorn Granlund  <[email protected]>

	* mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2,
	accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n.

2004-08-29  Torbjorn Granlund  <[email protected]>

	* tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample.

2004-06-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Handle --enable-fat.  Use that to enable x86 fat
	builds, remove magic meaning of i386-*-*.

2004-06-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* config.guess (i?86-*-*): Avoid "Illegal instruction" message which
	goes to stdout on 80386 freebsd4.9.

2004-05-23  Torbjorn Granlund  <[email protected]>

	* mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps.

2004-05-22  Torbjorn Granlund  <[email protected]>

	* mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers.

	* mpn/powerpc32/lshift.asm: Add more cycle numbers.
	* mpn/powerpc32/rshift.asm: Likewise.

2004-05-21  Torbjorn Granlund  <[email protected]>

	* 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.

2004-05-21  Niels M�ller  <[email protected]>

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is
	not smaller than 2nd operand.

2004-05-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* */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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configfsf.guess: Update to 2004-03-12.
	* configfsf.sub: Likewise.

2004-04-27  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 subsitute
	register name "define()"s.
	* macos/Makefile.in (CmnObjs): Add tal-notreent.o.

2004-04-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed.

	* mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c).

2004-04-07  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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-27  Torbjorn Granlund  <[email protected]>

	* mpn/generic/divrem_1.c: Fix typo.

	* mpn/generic/sqr_basecase.c: Fix typo.

2004-03-20  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and
	mpn_addmul_2s.

2004-03-14  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/sb_divrem_mn.c: Correct header comment.

2004-03-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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-01  Torbjorn Granlund  <[email protected]>

	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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	From Kevin:
	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization
	criterion met.

2004-02-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/mpz/t-jac.c (check_data): Remove unnecessary variable
	"answer".

2004-02-14  Kevin Ryde  <[email protected]>

	* 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-11  Kevin Ryde  <[email protected]>

	* 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.

	* 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  <[email protected]>

	* tests/mpz/t-gcd.c: Decrease # of tests run.

	* mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values.

2004-02-01  Torbjorn Granlund  <[email protected]>

	From Kevin:
	* config.guess: Recognize AMD's hammer processors, return x86_64.

2004-01-24  Kevin Ryde  <[email protected]>

	* 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.

2004-01-22  Kevin Ryde  <[email protected]>

	* 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  Kevin Ryde  <[email protected]>

	* 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  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* configure.in (--with-readline=detect): Check for readline/readline.h
	and readline/history.h.  Report result of detection.

2004-01-12  Niels M�ller  <[email protected]>

	* tests/tests.h: Added refmpn_free_limbs prototype.
	* tests/refmpn.c (refmpn_free_limbs): New function.

2004-01-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/README (REFERENCES): Add tru64 assembly manuals.
	(ASSEMBLY RULES): Note what gcc says about !literal! etc.

2004-01-03  Kevin Ryde  <[email protected]>

	* 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/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  <[email protected]>

	* 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-29  Torbjorn Granlund  <[email protected]>

	* tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin.

	* mpn/sparc64/README: Remove mpn_Xmul_2, done.
	Add blurb about L1 cache conflicts.

2003-12-29  Kevin Ryde  <[email protected]>

	* mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R.

2003-12-27  Kevin Ryde  <[email protected]>

	* tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO.

	* 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-23  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  Kevin Ryde  <[email protected]>

	* 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  Torbjorn Granlund  <[email protected]>

	* tests/mpf/t-get_d.c: Print message before aborting.

	* mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails.

2003-12-18  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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-13  Kevin Ryde  <[email protected]>

	* 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-11  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* tests/mpz/t-gcd.c: Generate operands with sizes as a geometric
	progression, to allow for larger operands and less varying timing.

2003-12-10  Kevin Ryde  <[email protected]>

	* 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/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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_str.c (mpn_get_str, POW2_P case):
	Don't append extra '\0' byte.

2003-12-05  Niels M�ller  <[email protected]>

	* tune/speed.h (mpn_gcd_accel): Added prototype.

2003-12-05  Torbjorn Granlund  <[email protected]>

	* randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions
	inside "!=".

	* mpf/get_str.c: Remove unused variable "fracn".

2003-12-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed
	for compilation with --enable-assert).

2003-11-27  Niels M�ller  <[email protected]>

	* tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we
	don't need to forward declare the array.

2003-11-26  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* tests/mpz/t-gcd.c (main): Added some tests with non-random
	input.

2003-11-25  Niels M�ller  <[email protected]>

	* gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros.

2003-11-25  Kevin Ryde  <[email protected]>

	* doc/gmp.texi (Language Bindings): Add Axiom.

2003-11-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc32: Add power4/powerpc970 cycle counts.
	Use cmpwi instead of cmpi to placate darwin.

2003-11-15  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br".

2003-11-13  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/aorslsh1_n.asm: New file.

2003-11-12  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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.

	* 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-08  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc64/linux64.m4: New file.
	* configure.in (POWERPC64_PATTERN): Handle *-*-linux*.
	Use linux64.m4.

2003-11-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd.

2003-11-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  Kevin Ryde  <[email protected]>

	* 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/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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.sub: Recognize powerpc970.

2003-10-15  Torbjorn Granlund  <[email protected]>

	* config.guess: Recognize powerpc970 under MacOS.

2003-10-15  Kevin Ryde  <[email protected]>

	* 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.

	* 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-13  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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/powerpc32/addlsh1_n.asm: New file.
	* mpn/powerpc32/sublsh1_n.asm: New file.

2003-10-12  Kevin Ryde  <[email protected]>

	* 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.

2003-10-11  Torbjorn Granlund  <[email protected]>

	* mpn/asm-defs.m4: Handle rsh1aors_n.

	* configure.in (tmp_mulfunc): Handle rsh1aors_n.

2003-10-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
	refmpn_rsh1sub_n): New functions.

2003-10-03  Paul Zimmermann  <[email protected]>

	* 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  <[email protected]>

	* configure.in (ia64*-*-hpux*): Fall back to +O1, not +O.

2003-10-02  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/asm-defs.m4: Handle aorslsh1_n.

	* configure.in (tmp_mulfunc): Handle aorslsh1_n.

2003-10-01  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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/pa64/mul_1.asm: Fix comment typo.
	* mpn/pa64/addmul_1.asm: Likewise.
	* mpn/pa64/submul_1.asm: Likewise.

2003-09-27  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info.

	* mpn/powerpc64/rshift.asm: Rewrite.
	* mpn/powerpc64/lshift.asm: Rewrite.

2003-09-25  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tune/speed.c (routine): Add entires 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.

	* 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.

2003-09-24  Kevin Ryde  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-09-24.

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files.

2003-09-23  Torbjorn Granlund  <[email protected]>

	* gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128.

2003-09-23  Kevin Ryde  <[email protected]>

	* gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const.

2003-09-22  Torbjorn Granlund  <[email protected]>

	* 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/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  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-09-22.

2003-09-21  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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): Accomodate
	latest toom3 code.

2003-09-19  Kevin Ryde  <[email protected]>

	* mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm:
	New files.

2003-09-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite.

2003-09-12  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-08-31.

2003-08-30  Kevin Ryde  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-08-30.

2003-08-29  Torbjorn Granlund  <[email protected]>

	* mpn/amd64/README: New file.

2003-08-23  Kevin Ryde  <[email protected]>

	* 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-19  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tune/Makefile.am (EXTRA_DIST): Add amd64.asm.

2003-08-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT.

2003-08-02  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* longlong.h [ppc]: Remove nested test for vxworks.

2003-07-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_d.c: Correction to infinity handling for large exp.

2003-07-14  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-06-15.

	* mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT.

2003-06-12  Kevin Ryde  <[email protected]>

	* 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,
	disard 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  <[email protected]>

	* mpf/random2.c: Rewrite.  Ignore sign of exp parameter.

2003-06-10  Kevin Ryde  <[email protected]>

	* mpn/sparc64/mode1o.c: New file.

2003-06-09  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/lshift.asm: Add more cycle counts.
	* mpn/powerpc32/rshift.asm: Add more cycle counts.

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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-05  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on
	alpha.

2003-06-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/mips64/divrem_1.asm: New file.

2003-06-01  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/lshift.asm: Reformat code.
	* mpn/powerpc32/rshift.asm: Reformat code.

2003-05-30  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE.
	Remove redundant variable prec.

2003-05-26  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* tests/mpn/t-divrem_1.c: New file.
	* tests/mpn/Makefile.am: Add it.

2003-05-22  Torbjorn Granlund  <[email protected]>

	* config.sub: Recognize viac3* processors.

2003-05-20  Torbjorn Granlund  <[email protected]>

	* mpn/sparc64/addmul_2.asm: New file.

2003-05-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Notes for Particular Systems): Libtool directory is .libs
	not _libs for mingw dll.  Reported by Andreas Fabri.

2003-05-07  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpf/set_str.c: Do not ignore supposedly superfluous digits (in part
	reverting last change).

2003-05-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpf/set_str.c: Major overhaul.
	(mpn_pow_1_highpart): New helper function, meat extracted from
	mpf_set_str.

2003-04-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions.

	* mpn/x86/p6/mul_basecase.asm: New file.

2003-04-18  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Match turbosparc.
	* config.guess: Recognize turbosparc (just for *bsd for now).

2003-04-09  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
	2003-04-02.

2003-04-02  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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: Restucture 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  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-03-17.

2003-03-15  Kevin Ryde  <[email protected]>

	* Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC
	sources, instead of a libdummy.la.

2003-03-16  Torbjorn Granlund  <[email protected]>

	* config.guess: Recognize supersparc and microsparc for *BSD systems.
	Generalize some superscalar recognition patterns.

2003-03-14  Torbjorn Granlund  <[email protected]>

	* mpn/sparc64/udiv.asm: New file.

2003-03-13  Torbjorn Granlund  <[email protected]>

	* mpn/sparc64: Table cycle counts.  Update some comments.

2003-03-10  Torbjorn Granlund  <[email protected]>

	* mpn/generic/mul.c (mpn_mul): Don't blindly expect
	MUL_KARATSUBA_THRESHOLD to be a constant.

2003-03-07  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/arm/mul_1.asm: Fix typo introduced in last change.

2003-02-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/arm/copyi.asm: New file.
	* mpn/arm/copyd.asm: New file.

2003-02-16  Kevin Ryde  <[email protected]>

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data
	byte seen on an arm system.

2003-02-15  Torbjorn Granlund  <[email protected]>

	* mpn/arm/gmp-mparam.h: Retune.

2003-02-13  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/750/com_n.asm: Add more cycle counts.

2003-02-13  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens
	around macro parameters.  Reported by Jason Moxham.

2003-02-01  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (mpn_mul_fft): Now returns int.

2003-01-29  Paul Zimmermann  <[email protected]>

	* mpn/generic/mul_fft.c: Major rewrite.

2003-01-25  Kevin Ryde  <[email protected]>

	* 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-18  Kevin Ryde  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-01-18.

2003-01-17  Torbjorn Granlund  <[email protected]>

	* gmp.texi: Canonicalize URLs.

2003-01-15  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpfr/*: Update to mpfr cvs 2003-01-11.

2003-01-09  Kevin Ryde  <[email protected]>

	* mpfr/get_str.c: Update to mpfr cvs 2003-01-09.

	* doc/configuration: Various updates.

2003-01-06  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray.
	* mpn/alpha/copyd.asm: Likewise.

2003-01-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/copyi.asm: New file.
	* mpn/alpha/copyd.asm: New file.

2003-01-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify.

2002-12-28  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New
	defines in config.m4.

2002-12-17  Torbjorn Granlund  <[email protected]>

	* printf/printffuns.c (gmp_fprintf_reps): Make it actually work
	for padding > 256.

2002-12-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'.
	Add empty `.callinfo'.

2002-12-11  Torbjorn Granlund  <[email protected]>

	* mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a
	label.

2002-12-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (*-*-ultrix*): Remove forcible --disable-shared,
	believe this was a generic problem with libtool, now gone.

2002-12-08  Torbjorn Granlund  <[email protected]>

	* gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation.

2002-12-07  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Remove -g.
	(hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0.

2002-12-05  Torbjorn Granlund  <[email protected]>

	* mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend.
	* mpn/pa64/udiv.asm: Likewise.

2002-12-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tune/hppa.asm: Use config.m4.
	* tune/hppa2.asm: Likewise.
	* tune/hppa2w.asm: Likewise.

	* mpn/pa64: Use LDEF.

2002-12-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h: Split popc_limb again, combined version gives too many
	compiler warnings.

2002-12-01  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up
	compiler warnings.

	* 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.

2002-11-30  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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.

2002-11-28  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tests/mpz/t-mul.c: Implement reference Karatsuba multiplication.
	Rewrite testing scheme to run fewer really huge tests.

2002-11-26  Torbjorn Granlund  <[email protected]>

	* tests: Decrease repetition count for some of the slowest tests.

2002-11-25  Torbjorn Granlund  <[email protected]>

	* mpfr/tests/tdiv.c: Decrease number of performed tests.

2002-11-23  Kevin Ryde  <[email protected]>

	* 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-20  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tune/speed.c (r_string): Use CNST_LIMB with <N>bits, spotted by
	Torbjorn.

2002-11-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed
	values).

2002-11-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to
	use extern "C" on C function pointer arguments.

2002-11-09  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/tdiv_qr.c: Remove a bogus assert.

2002-11-05  Torbjorn Granlund  <[email protected]>

	* mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls.

2002-11-04  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (*-cray-unicos*): Pass -hnofastmd again.

2002-10-25  Torbjorn Granlund  <[email protected]>

	* tests/tadd.c: Disable test of denorms.

2002-10-23  Linus Nordberg  <[email protected]>

	* gmp.texi (Introduction to GMP): Update section about mailing
	lists.

2002-10-23  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (popc_limb): Combine variants.

2002-10-14  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc32/add_n.asm: Rewrite.
	* mpn/powerpc32/sub_n.asm: Rewrite.

2002-09-24  Pedro Gimeno  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Custom Allocation): Keep allocate_function etc out of the
	function index by using @deftypevr.
	More index entries.

2002-09-24  Gerardo Ballabio <[email protected]>

	* gmpxx.h (mpfr_class constructors from strings): Precision was set
	incorrectly, fixed.

2002-09-23  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction.

2002-09-20  Gerardo Ballabio <[email protected]>

	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken
	mpq/double functions.

2002-09-18  Torbjorn Granlund  <[email protected]>

	* randmt.c (randget_mt): Fix typo.

2002-09-18  Kevin Ryde  <[email protected]>

	* 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-existant
	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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/mod_34lsub1.asm: New file.

2002-09-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* rand.c: Remove old disabled BBS code.
	* mpf/urandomb.c: Use BITS_TO_LIMBS.

2002-09-10  Kevin Ryde  <[email protected]>

	* gmp.texi (Multiplication Algorithms): FFT is now enabled by default.

2002-09-10  Pedro Gimeno  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs,
	reported by Paul Zimmermann.

2002-08-26  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/m68k/lshift.asm: Fix typo in !scale_available_p code.
	* mpn/m68k/rshift.asm: Likewise.

2002-08-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* acconfig.h: Remove spurious undefs for mpn_divrem_newton and
	mpn_divrem_classic.

2002-08-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64
	make doesn't like that.

	* 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 [email protected].
	* mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto.

2002-07-13  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc32/v9/udiv.asm: New file.

2002-06-15  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpfr/set_q.c: Allow for 1 bit numerator or denominator.

2002-06-14  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/mpz/t-powm_ui.c Print proper routine name in error message.

2002-06-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/export.c: Cast pointer via `unsigned long' when checking
	alignment to avoid compiler warnings.

2002-05-29  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpfr/Makefile.am (EXTRA_DIST): Add BUGS file.

2002-05-15  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* configure.in (*-cray-unicos*): Pass -hscalar0 to work around
	compiler bug for mpz/import.c.

2002-05-11  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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-statament 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  <[email protected]>

	* mpn/generic/gcd.c: Additional nailify changes.

2002-05-04  Kevin Ryde  <[email protected]>

	* gmp-h.in (__GNU_MP_VERSION): Set to 4.1.
	* Makefile.am (-version-info): Bump for new release.

2002-04-30  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of
	mpn_divmod.

2002-04-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* mpz/powm.c: Nailify.
	* mpz/powm_ui.c: Nailify.

2002-04-16  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only
	need <iosfwd> now.

2002-04-11  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]:
	Corrections to constraints, and restrict to bigendian.

2002-03-31  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection,
	for 32-bit mode.

2002-03-28  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp,
	reported by [email protected].
	(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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/pa64/addmul_1.asm: New file with twice faster code; generalized
	for both 2.0N and 2.0W.

2002-03-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tune/speed.c (struct choice_t): Make `r' an mp_limb_t.

2002-03-21  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/pexpr.c (setup_error_handler): Declare `s', the first
	sigaltstack parameter, using `stack_t' just on AIX.

2002-03-19  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead
	of the callee-saves r30 and r31.

2002-03-19  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc32/gmp-mparam.h: New file.

2002-03-13  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/pow_1.c: New file.

2002-03-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/vax/gmp-mparam.h: New file.

2002-02-28  Kevin Ryde  <[email protected]>

	* gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block,
	reported by [email protected].

	* 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  <[email protected]>

	* configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to
	disable some crazy -fast optimizations.

2002-02-25  Torbjorn Granlund  <[email protected]>

	* configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable
	denorm handling under -fast.

2002-02-25  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* configure.in: For sparc under solaris2.[7-9], pass -fast instead of
	other optimization options.

2002-02-23  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte.

2002-02-22  Kevin Ryde  <[email protected]>

	* tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic.

2002-02-20  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* longlong.h: Add basic x86-64 support.

2002-02-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after
	umul_ppmm calls.

2002-02-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems.

2002-02-14  Kevin Ryde  <[email protected]>

	* tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of
	alpha.

	* macos/README: Bug reports to [email protected], 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  <[email protected]>

	* mpn/alpha/mul_1.asm: Add mpn_mul_1c entry.

	* mpn/pa64w/sqr_diagonal.asm: Use L() for labels.

2002-02-11  Torbjorn Granlund  <[email protected]>

	* mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to
	accommodate tuneup compiles.

2002-02-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 superflous `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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Override extra_functions for all sparcv8 systems, not
	just supersparc.

2002-02-06  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration.

2002-02-02  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/set_str.c: Rewrite to become sub-quadratic.
	(convert_blocks): New function.

2002-01-30  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and
	Vincent.

2002-01-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_str.c: Correct type of `out_len'.

2002-01-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative
	declaration.
	(64-bit powerpc add_ssaaaa): Likewise.

2002-01-20  Kevin Ryde  <[email protected]>

	* acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc
	solaris 2.7 problems.

2002-01-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with
	gmp-impl.h.

2002-01-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L().

2002-01-08  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions.

2002-01-06  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h: Move _PROTO declaration to before its first usages.

2002-01-04  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tune/speed.c (usage): Insert "\n\" into a string.

2001-12-30  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc64/sqr_diagonal.asm: New file.

2001-12-28  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc64/mul_1.asm: Rename r72 -> r80.
	* mpn/sparc64/addmul_1.asm: Likewise.

2001-12-27  Torbjorn Granlund  <[email protected]>

	* mpn/generic/tdiv_qr.c: Misc formatting cleanups.
	For switch case 2, replace `dn' with its value (2).

2001-12-25  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/get_str.c: Move final ASSERT to just before zero fill
	loop.

2001-12-22  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000.

2001-12-18  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to
	powerpc version.

2001-12-12  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* Version 4.0 released.

	* mpfr/README: Replace contents with explanation of why mpfr is gone.

2001-12-01  Kevin Ryde  <[email protected]>

	* Makefile.am, configure.in: Temporarily remove mpfr, just leave a
	README.

	* mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am.

2001-11-30  Gerardo Ballabio  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmpxx.h, mpfrxx.h: Various updates and improvements.

2001-11-27  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpz/realloc.c: Clear variable when decreasing allocation to less than
	needed.  Misc updates.

2001-11-25  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs.

2001-11-18  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-h.in: Remove parameter names from prototypes, to keep out of
	application namespace.

2001-11-08  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'.
	(MPN_COPY_DECR): Likewise.

2001-11-05  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/refmpn.c (refmpn_overlap_p): Reverse return values.

2001-11-02  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* tests/mpz/t-powm.c: Print proper error message when finding
	discrepancy.

2001-10-31  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/pexpr.c: Remove some unused variables.
	(main): Allocate more buffer space to accommodate minus sign.

2001-10-27  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* printf/doprnt.c: Use <stdint.h> for intmax_t.

	* longlong.h: Recognise __sparcv8 for gcc on Solaris.  Reported by
	Mark Mentovai <[email protected]>.

	* gmp-impl.h (gmp_allocated_string): No need for inline on member funs.

2001-10-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX.

	* mpn/hppa: Convert files to `.asm'.

2001-10-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic
	simplifications.
	* mpn/x86/pentium4/sse2/addmul_1.asm: Comment.

2001-10-01  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/cray/ieee/submul_1.c: Rewrite.  Streamline multiplications;
	use `majority' logic.

2001-09-27  Torbjorn Granlund  <[email protected]>

	* gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug.

2001-09-26  Torbjorn Granlund  <[email protected]>

	* mpn/x86/pentium4/sse2/gmp-mparam.h: New file.

2001-09-26  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/vax/lshift.s: Change `jsob*' to `sob*'.
	* mpn/vax/rshift.s: Likewise.

2001-09-23  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/x86/pentium4/sse2/diveby3.asm: New file.
	* mpn/x86/pentium4/sse2/mode1o.asm: New file.

2001-09-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have
	HAVE_NATIVE_... defined.

2001-09-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc.
	* mp-h.in: Likewise.

2001-09-10  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/x86/pentium4/sse2/addmul_1.asm: New file.

2001-09-04  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/primes.c: Complete rewrite.

2001-08-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* configure.in (x86 mmx): Correction to mmx path stripping.

2001-08-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/pexpr.c (setup_error_handler): Catch also SIGABRT.

2001-07-31  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess: Recognize pentium4.
	* config.sub: Recognize pentium4.

2001-07-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* longlong.h (ibm032 umul_ppmm): Fix typo.
	* longlong.h (sparclite sdiv_qrnnd): Fix typo.

2001-07-03  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>.
	* 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  <[email protected]>

	* configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs.

2001-05-26  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm,
	mpn/powerpc64/submul_1.asm: Add carry-in entrypoints.

2001-05-17  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code
	in both arms.  Partially combine multiply arms.

2001-03-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/pa64/udiv_qrnnd.asm: New file.

2001-03-01  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/pa64w/udiv_qrnnd.asm: Tune.

2001-02-27  Torbjorn Granlund  <[email protected]>

	* mpn/pa64w/udiv_qrnnd.asm: New file.

2001-02-26  Torbjorn Granlund  <[email protected]>

	* longlong.h (arm): Optimize sub_ddmmss by testing for constant
	operands.
	* mpn/arm/invert_limb.asm: New file.

2001-02-24  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc64/lshift.asm: Rewrite.
	* mpn/sparc64/rshift.asm: Rewrite.

2001-02-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/asm-defs.m4 (sqr_diagonal): New define_mpn.

	* mpn/alpha/sqr_diagonal.asm: New file.

2001-02-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate.

2001-02-07  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/ev6/gmp-mparam.h: Retune.

2001-02-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/ia64/copyi.asm: New file.
	* mpn/ia64/copyd.asm: New file.

2001-02-04  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Don't ever pass -mips3; let ABI flags imply ISA.

2001-01-31  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc.

2001-01-29  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (alpha*-*-*): Default `flavour' to ev4.

2001-01-19  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/rand/t-rand.c (farr): Fix typo.
	(zarr): Fix typo.

2001-01-12  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpz/kronsz.c: Temporary workaround for Cray right shift oddities.
	Explicitly compare against zero in tests.

2001-01-10  Kevin Ryde  <[email protected]>

	* mpz/kronzs.c: Don't depend on right shifting a negative.

2001-01-09  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* urandom.h: Amend 2000-11-21 change to also handle cygwin.

2001-01-08  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/cray/ieee/gmp-mparam.h: Retune.

2001-01-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpbsd/mout.c: Output newline after "0".

2000-12-31  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of
	__clz_tab.

2000-12-20  Torbjorn Granlund  <[email protected]>

	* longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP
	systems.

2000-12-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (mips*-*-irix[6789]*): Pass options to compiler using
	`-Wc'.

2000-12-18  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess (mips-*-irix[6789]*): Transform to mips64.
	(m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020.

2000-12-13  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize.

2000-12-11  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/mul_1.c: Declare parameters in C89 style.

2000-12-10  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpz/cmpabs.c: Remove unused variable.
	* mpz/rrandomb.c: Likewise.
	* mpz/xor.c: Likewise.

2000-12-07  Torbjorn Granlund  <[email protected]>

	* mpn/generic/gcdext.c: Handle double carry when computing s1.
	Merge two code blocks for computing s0 and s1.

2000-12-07  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpq/cmp_ui.c: Streamline.

2000-12-06  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* acinclude.m4: Fix typo testing for bad HP compiler.

2000-12-03  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/tests/t-mul.c: Increase max operand size from 2^17 bits
	to 2^19 bits.  Misc cleanups.

2000-11-26  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/pa64w/gmp-mparam.h: Retune.
	* mpn/pa64/gmp-mparam.h: Retune.
	* mpn/sparc64/gmp-mparam.h: Retune.

2000-11-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal.
	(gmp_randinit): Expect strings in hexadecimal.

2000-11-18  Kevin Ryde  <[email protected]>

	* configfsf.guess, configfsf.sub: Update to 2000-11-16.
	* config.guess (alpha*-*-openbsd*): Do exact cpu detection.

2000-11-14  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path.

	* mpn/alpha/ev6/add_n.asm: New file.

2000-11-10  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/mips3/gmp-mparam.h: Retune.

	* configure.in (os_64bit): Rename to check_64bit_compiler.

2000-11-09  Torbjorn Granlund  <[email protected]>

	* configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code
	depending on $CC64.

2000-11-09  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* urandom.h: Simplify and make it work properly for 64-bit
	machines also in environments without `random'.

2000-11-04  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/ia64/lorrshift.asm: New file.

	* configure.in: New mulfunc `lorrshift' for lshift and rshift.

2000-10-29  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/ia64/gmp-mparam.h: Retune.

2000-10-26  Torbjorn Granlund  <[email protected]>

	* longlong.h (ia64): Set UMUL_TIME and UDIV_TIME.

	* mpn/ia64/submul_1.c: Fix typo.

2000-10-25  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update.
	* mpn/alpha/ev6/submul_1.asm: New file.

2000-10-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/Makefile.am (TARG_DIST): Add ia64.

2000-10-21  Kevin Ryde  <[email protected]>

	* *: 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* doc/configuration: Updates.

	* demos/calc.y: Remove some comments.

2000-10-14  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/mips3/gmp-mparam.h: Retune.

	* mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change.

2000-10-06  Torbjorn Granlund  <[email protected]>

	* mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles.
	* mpn/mips3/sub_n.s: Likewise.

2000-10-04  Torbjorn Granlund  <[email protected]>

	* configure.in (sparc64-*-linux*): Set path according to CC64.

2000-10-04  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify.

2000-09-27  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tune/alpha.asm: Rewrite to actually work right.

2000-09-07  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpz/fits.c: Correct type of `data'.

2000-09-06  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (mpn_com_n): Fix typo.

2000-08-23  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mp.h (mp_set_memory_functions): Add missing #define.
	* mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its
	existance.

	* 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  <[email protected]>

	* mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28.

2000-08-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern.
	* mpn/generic/hamdist.c: Likewise.

2000-08-01  Kevin Ryde  <[email protected]>

	* mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing
	source and dest regions.

2000-07-31  Torbjorn Granlund  <[email protected]>

	* mpf/get_str.c: Develop three extra digits, not just one.

2000-07-31  Kevin Ryde  <[email protected]>

	* gmp.texi (References): Add URL for invariant division.

2000-07-30  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/x86/*/gmp-mparam.h: Add some FFT thresholds.

2000-07-28  Kent Boortz  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/ia64/gmp-mparam.h: New file.

2000-07-26  Torbjorn Granlund  <[email protected]>

	* demos/isprime.c: Handle any number of arguments and print
	classification for each.  Add `-q' option for old behaviour.

2000-07-26  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpf/tests/t-muldiv.c: Relax error limit.  Make precision depend
	on SIZE.  Misc changes.

	* configure: Regenerate.

2000-07-20  Kent Boortz  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tune/*: Add measuring for umul_ppmm and udiv_qrnnd.

2000-07-14  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/perfpow.c (primes): Make it const.

2000-07-06  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/primes.c: Properly handle arguments `m +n'.

2000-06-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tune/sparcv9.asm: Tune, deleting two instructions.

	* tune/alpha.asm: Update to unified speed_cyclecounter.

2000-06-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* doc/configuration: New file.

2000-05-30  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3
	if using GNU nm.

2000-05-26  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess: Use X86CPU for x86 Cygwin.

2000-05-16  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* randraw.c (lc): Major overhaul (pending rewrite).
	(_gmp_rand): Rewrite.

2000-05-08  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Miscellaneous Float Functions): Correct parameter list
	for mpf_urandomb().

	* configure.in: Invoke AC_REVISION.

2000-05-05  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp.texi (Reporting Bugs): Be explicit about output from running
	a command.

2000-05-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/x86/aors_n.asm: Remove parentheses around an immediate that
	Solaris "as" doesn't like, change by Torbjorn.

2000-04-24  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__.

2000-04-18  Linus Nordberg  <[email protected]>

	* NEWS: Add info about shared libraries.  Remove reference to
	gmp_randinit_lc.

2000-04-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/rand/t-rand.c (main): Add non-ANSI function declaration.
	Don't use `const'.

2000-04-16  Torbjorn Granlund  <[email protected]>

	* mpn/generic/dump.c: Suppress output of leadign 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (hppa1.0*): Prefer c89 to cc.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <[email protected]>

	* configure.in: If `mpn_path' is set by user on configure command
	line, use that as path.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <[email protected]>

	* configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no
	64-bit compiler was found.
	* configure: Regenerate.

2000-04-15  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Remove debug output.
	* configure: Regenerate.

2000-04-15  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* rand.c (gmp_randinit): Don't combine va_alist with ordinary
	arguments for non STDC.

2000-04-13  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/rand/stat.c (main): Initialize `l1runs' at declaration.

2000-04-11  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/urandomm.c: Get type of count right.
	Simplify computation of nbits.

2000-04-08  Torbjorn Granlund  <[email protected]>

	* mpz/urandomb.c: Fix reallocation condition.
	Simplify size computation.

2000-04-08  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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
	invokation is necessary to produce the requested number of bits.

2000-04-05  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/brandom.c: New file, replacing random2.

2000-04-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code
	will be omitted.

2000-03-30  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* INSTALL: Updates for new configure system.

	* configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu
	and -march.

2000-03-23  Torbjorn Granlund  <[email protected]>

	* demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs
	for ROOT.

2000-03-23  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 incompabilities 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* macos: New directory with macos port files.

2000-03-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess: Handle Cray T3D/E.

2000-03-15  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess: Better recognize POWER/PowerPC processor type.

2000-03-07  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc32/regmap.m4: Map cr0 => `0', etc.

2000-03-06  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/root.c: Complete rewrite; still primitive, but at least correct.
	* mpz/tests/t-root.c: New test.

2000-02-22  Kevin Ryde  <[email protected]>

	* 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  <[email protected]>

	* gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly
	written.

2000-02-21  Linus Nordberg  <[email protected]>

	* configure.in: Link <src>/mpn/asm-defs.m4 to <build>mpn/asm.m4.
	* configure: Regenerate.

2000-02-21  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in: Don't try to symlink more than one multi-func
	file.
	* configure: Regenerate.

2000-02-18  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* Makefile.am (dist-hook): Don't include any emacs backup files
	(*.~*) in dist.
	* Makefile.in: Regenerate.

2000-02-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/x86/add_n.S: Don't use label L0 twice.
	* mpn/x86/sub_n.S: Likewise.

2000-01-20  Linus Nordberg  <[email protected]>

	* demos/pexpr.c: Don't use setup_error_handler() in windoze.

2000-01-19  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/configure.in (hppa2.0*-*-*): Move assignment of
	target_makefile_frag to where it belongs.

1999-12-21  Torbjorn Granlund  <[email protected]>

	* longlong.h (v9 umul_ppmm): New #define.
	(v9 udiv_qrnnd): New #define.

1999-12-14  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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 intiallly 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  <[email protected]>

	* mpf/pow_ui.c: Avoid final squaring in loop.

1999-12-07  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc64/copy.S: New file.

1999-12-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc64/add_n.s: Rewrite.

1999-11-17  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/gmp-mparam.h
	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
	(KARATSUBA_SQR_THRESHOLD): Likewise.

1999-11-14  Torbjorn Granlund  <[email protected]>

	* mpn/x86/mul_1.S: Unroll and optimize for P6 and K7.

1999-11-09  Torbjorn Granlund  <[email protected]>

	* mpn/x86/p6/gmp-mparam.h
	(KARATSUBA_MUL_THRESHOLD): Only #define #ifndef.
	(KARATSUBA_SQR_THRESHOLD): Likewise.

1999-11-05  Torbjorn Granlund  <[email protected]>

	* mpn/generic/addsub_n.c: New file.

1999-11-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/vax/rshift.s: New file.
	* mpn/vax/lshift.s: New file.

1999-10-29  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/divrem_2.c: Clean up comments.

1999-09-23  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed.
	* mpn/alpha/ev5/sub_n.s: Likewise.

1999-07-21  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* longlong.h (powerpc64 count_leading_zeros): Fix typo.
	(powerpc64 add_ssaaaa): Fix typos.
	(powerpc64 sub_ddmmss): Fix typos.

1999-07-14  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/divrem_1.c: Normalize divisor when needed.

1999-07-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/rawrandom.c: Clean up comments.

	* gmp.texi: Add documentation for random number generation.

1999-05-21  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/configure.in: Put generic m68k alternative last.

1999-05-04  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* tests/rand/Makefile (clean): Add target.

1999-04-27  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* mpn/configure.in: Fix typo, "sparc-*)" was "sparc)".

1999-04-21  Torbjorn Granlund  <[email protected]>

	* config.sub: Recognize ev6.

1999-04-12  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* configure.in (sparc9-*-solaris2.[789]*, etc): New alternative.
	* mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*.

1999-03-30  Linus Nordberg  <[email protected]>

	* urandom.c (__gmp_rand_scheme): Change NULL->0.
	Include "gmp.h" instead of <gmp.h>.

1999-03-29  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* tests/rand/Makefile (GMPINC): Rename to GMPH.
	(GMPH): Add gmp-mparam.h.
	(CFLAGS): Add -I$(GMPLIBDIR)/mpn

1999-03-23  Linus Nordberg  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* .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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* configure.in (hppa2.0*-*-*): Force use of GCC.

	* extract-dbl.c: Handle IEEE denormalized numbrs.  Clean up.

1998-12-02  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* gmp-impl.h (union ieee_double_extract): Special case for
	little-endian arm.
	(LIMBS): Alias for PTR.

1998-11-26  Torbjorn Granlund  <[email protected]>

	* longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'.
	(m68k stuff): Clean up; add coldfire support.

1998-11-23  Torbjorn Granlund  <[email protected]>

	* mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define.
	(KARATSUBA_SQR_THRESHOLD): #define.

	* mpn/sparc32/v9/README: New file.

1998-11-20  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* make.bat: Compile mul_basecase.c and sqr_basecase.c.

1998-11-10  Torbjorn Granlund  <[email protected]>

	* mpz/invert.c: Defer writing to parameter `invert' until
	end.

1998-11-03  Torbjorn Granlund  <[email protected]>

	* mpn/pa64/udiv_qrnnd.c: Handle more border cases.

1998-10-29  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus.

	* mpn/sparc32/v9/submul_1.s: New file.

1998-10-21  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t
	index.

1998-10-17  Torbjorn Granlund  <[email protected]>

	* mpn/sparc32/v9/mul_1.s: Misc cleanups.
	* mpn/sparc32/v9/addmul_1.s: Misc cleanups.

1998-10-16  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* longlong.h: Test for __powerpc__ in addition to _ARCH_PPC.

Sat Sep  5 17:22:28 1998  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess: Handle powerpc for NetBSD.

Tue Jul 28 23:10:55 1998  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'.

Wed Jun  3 11:27:32 1998  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* demos/factorize.c (factor_using_division): Call fflush
	also for the factor 2.

Mon May 18 15:51:01 1998  Torbjorn Granlund  <[email protected]>

	* make.bat: Pass -fomit-frame-pointer.  Do not pass -g.

Tue May  5 01:42:50 1998  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/sqrtrem.c: Check that __arch64__ is not defined
	before defining sparc SQRT.

Mon Apr 20 19:16:17 1998  Torbjorn Granlund  <[email protected]>

	* mpn/generic/gcdext.c: Allow gp to be NULL.

1998-04-03  Torbjorn Granlund  <[email protected]>

	* mpn/configure.in: Recognize `alphaev5*', not `alphaev5'.

	* config.guess: Handle CPU variants for NetBSD.

Mon Mar 16 13:07:54 1998  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/set_str.c: Skip leading zeros.

Wed Mar  4 19:29:16 1998  Torbjorn Granlund  <[email protected]>

	* gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui.

	* demos/factorize.c: Rewrite.

1998-02-04  Torbjorn Granlund  <[email protected]>

	* configure.in (i[3456]86* etc): Check if using gcc before
	choosing mt-x86.

	* configure.in (m68*-*-*): New alterantive.
	* 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  <[email protected]>

	* gmp.h (__GNU_MP_VERSION_SNAP): New #define.
	(__GNU_MP_VERSION_MINOR): Now 1.

Wed Jan 28 22:29:36 1998  Torbjorn Granlund  <[email protected]>

	* longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION.

Wed Jan 28 20:28:19 1998  Torbjorn Granlund  <[email protected]>

	* mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors.

Mon Jan 26 01:39:02 1998  Torbjorn Granlund  <[email protected]>

	* mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small
	numers specifically; check small factors, then perform a fermat test.

Tue Jan 13 14:58:28 1998  Torbjorn Granlund  <[email protected]>

	* longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb
	and udiv_qrnnd_preinv.

Wed Jan  7 01:52:54 1998  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/pa64/add_n.s: New file.
	* mpn/pa64: New directory.

Tue Aug 19 16:17:09 1997  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/powerpc32/add_n.s: Rewrite.
	* mpn/powerpc32/sub_n.s: Rewrite.

Sun Aug 10 17:07:15 1997  Torbjorn Granlund  <[email protected]>

	* mpn/powerpc32/addmul_1.s: Delete obsolete comments.
	* mpn/powerpc32/submul_1.s: Likewise.

Fri Jul 25 20:07:54 1997  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2.

Wed Apr  9 18:23:31 1997  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/configure.in (alpha*): Add cntlz to extra_functions.

Wed Feb  4 03:30:45 1997  Torbjorn Granlund  <[email protected]>

	* mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc).

Mon Feb  3 14:21:36 1997  Torbjorn Granlund  <[email protected]>

	* make.bat: Fix typo, set_dfl_prc => set_dfl_prec.

Sun Feb  2 02:34:33 1997  Torbjorn Granlund  <[email protected]>

	* mpf/out_str.c: After outputting `-', decrement n_digits.

Wed Jan  8 02:50:20 1997  Torbjorn Granlund  <[email protected]>

	* mpn/generic/divrem.c: qextra_limbs => qxn.

Wed Dec 18 07:50:46 1996  Torbjorn Granlund  <[email protected]>

	* mpz/tests/t-tdiv.c (SIZE): Increase to 200.

Tue Dec 17 19:32:48 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_.

Sat Dec  7 09:40:06 1996  Torbjorn Granlund  <[email protected]>

	* mpn/alpha/invert-limb.s: New file.

Thu Dec  5 01:25:31 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpz/ui_pow_ui.c: Rewrite for better speed.

Fri Nov  1 16:36:56 1996  Torbjorn Granlund  <[email protected]>

	* Makefile.in (recursive make rules): Use `&&' instead of `;' as
	delimiter.

Fri Oct 25 17:12:36 1996  Torbjorn Granlund  <[email protected]>

	* gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline.

Thu Oct 24 15:08:19 1996  Torbjorn Granlund  <[email protected]>

	* mpn/fujitsu/rshift.c: Fix typo in loop boundaries.

Fri Oct 18 03:13:54 1996  Torbjorn Granlund  <[email protected]>

	* 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 endianess, test also
	__BIG_ENDIAN__ and __hppa__.  Remove test of __NeXT__.

Wed Oct 16 03:50:34 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* longlong.h: Don't test for __NeXT__ in outer 68k conditional;
	add test for __m68k__.

Sun Oct  6 00:59:09 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/pprime_p.c: When n <= 3, don't clear out n before using it.

Wed Sep 18 11:22:45 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/set_str.c: Let `0b' and `0B' mean base 2.

Fri Aug 30 00:44:00 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'.
	* mpf/random2.c: Likewise.

Sun Aug 25 00:07:09 1996  Torbjorn Granlund  <[email protected]>

	* mpz/tests/t-mul.c: Also test squaring.

Fri Aug 16 05:12:08 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/?div_*_ui.c: Special case for division by 0.
	* mpz/tdiv_q.c: Likewise.

Sat Aug 10 14:45:26 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpz/divexact.c: Test for dividend being zero before testing
	for small divisors.

Thu Aug  8 13:20:23 1996  Torbjorn Granlund  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32".

Wed Jul 24 02:27:02 1996  Torbjorn Granlund  <[email protected]>

	* mpn/generic/gcdext.c: Reorganize and clean up.  Get rid of all
	signed limb arithmetic.

Mon Jul 22 02:39:56 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs.

Sun Jul 14 17:47:46 1996  Torbjorn Granlund  <[email protected]>

	* configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8.

Thu Jul 11 14:05:54 1996  J.T. Conklin  <[email protected]>

	* 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  <[email protected]>

	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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.guess: Update from master version; add Cray x90 handling.

Wed Jun 26 05:35:02 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* longlong.h (vax sdiv_qrnnd): Fix typo.

Sat Jun 15 01:33:33 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/dump.c: Add missing `else'.

Fri Jun  7 03:35:12 1996  Torbjorn Granlund  <[email protected]>

	* Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html.

Thu Jun  6 19:00:53 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  ([email protected])

	* 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  ([email protected])

	* make.bat: Add all new files.

Sun May 12 22:24:36 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpf/set_q.c: New file.
	* mpf/Makefile.in: Compile it.

	* config.sub: Recognize sparc8.

Wed May  8 09:19:11 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* Makefile.in (ps): New target, depend on gmp.ps.

Fri Apr 19 14:03:15 1996  Torbjorn Granlund  <[email protected]>

	* mpf/out_str.c: Print `@' before exponent, not `e'.

	* make.bat: Update from Makefiles.

Thu Apr 18 01:22:05 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* Makefile.in (gmp.html): Pass -acc to texi2html.

Mon Apr 15 16:20:24 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* Makefile.in (gmp.dvi): Delete tmp.* at end of rule.

Wed Apr 10 22:52:02 1996  Torbjorn Granlund  ([email protected])

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  ([email protected])

	* mpf/get_str.c: In digit development loop for fractions, change
	loop condition from `<' to `<='.

Thu Mar  7 04:58:11 1996  Torbjorn Granlund  <[email protected]>

	* mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning.

Wed Mar  6 01:10:42 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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 <[email protected]>

	* mpz/gcd.c: Fix g->size when one op is 0 and g == other op.

Tue Feb  6 01:36:39 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpz/iset.c: Fix typo introduced Dec 25.

Wed Jan 17 13:16:44 1996  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* All files: Prefix user-visible structure fields with _mp_.

Fri Dec 22 20:42:17 1995  Torbjorn Granlund  <[email protected]>

	* mpn/configure.in (m68k configs): Terminate path variable with
	plain "m68k".

Fri Dec 22 03:29:33 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/Makefile.in (.SUFFIXES): Define.

Wed Nov 29 23:11:57 1995  Torbjorn Granlund  <[email protected]>

	* mpn/sparc64/{add_n.s, sub_n.s}: New files.

Tue Nov 28 06:03:13 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/hppa/hppa1_1/pa7100/submul_1.S: New file.

Sun Nov 26 04:30:47 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/configure.in: Handle m68k on NextStep.

Thu Nov 16 02:30:26 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/sparc/[lr]shift.S: New files.

Tue Oct 31 00:08:12 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp.h: #undef __need_size_t.
	* mp.h: Update from gmp.h.

Wed Oct 25 00:17:27 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* cre-conv-tab.c: #include math.h; don't declare log and floor.

Sat Oct 21 23:04:10 1995  Torbjorn Granlund  <[email protected]>

	* mpf/mul_ui.c: Handle U being 0.

Wed Oct 18 19:39:27 1995  Torbjorn Granlund  <[email protected]>

	* mpn/generic/set_str.c: Correctly handle input like "000000000000".
	Misc cleanups.

Tue Oct 17 15:14:13 1995  Torbjorn Granlund  <[email protected]>

	* longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where
	appropriate.

Mon Oct 16 19:14:43 1995  Torbjorn Granlund  <[email protected]>

	* mpf/add.c: Rewrite.
	* mpf/set_str.c: New file.  Needs more work.

Sat Oct 14 00:14:04 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* mpn/pentium/rshift.S: Install new code to optimize shift-by-1.

Tue Oct 10 00:37:21 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* longlong.h (smul_ppmm): Correct type of __m0 and __m1.

Wed Oct  4 16:31:28 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* config.sub: Update from current Cygnus version.

	* mpn/configure.in: Recognize canonical m88*, not mc88*.

Fri Sep 22 14:58:05 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpq/get_d.c: New file.

Sun Sep 17 02:04:36 1995  Torbjorn Granlund  <[email protected]>

	* longlong.h (pyr): Botch up for now.

Sat Sep 16 00:11:50 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc
	and size fields.

Sat Sep  2 17:47:59 1995  Torbjorn Granlund  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* 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  <[email protected]>

	* mpn/generic/random2.c: Test __hpux, not hpux.

Sat Apr 15 20:50:33 1995  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz/ui_pow_ui.c: Delete spurious code to handle negative results.

Sun Apr  9 12:38:11 1995  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too.

Fri Mar 17 23:29:22 1995  Torbjorn Granlund  ([email protected])

	* longlong.h (SH umul_ppmm): Define.

Thu Mar 16 16:40:44 1995  Torbjorn Granlund  ([email protected])

	* mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case
	to help CSE.

Fri Mar 10 20:03:49 1995  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* longlong.h (68000 umul_ppmm): Merge improvements from henderson.

Tue Jan 24 04:23:20 1995  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpn/m*68*/*.S: #include asm-syntax.h, not asm.h.

Mon Dec 26 17:15:36 1994  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* Makefile.in (recursive makes): Pass CFLAGS.

Sun Dec 18 22:34:49 1994  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz/array_init.c: Fix typo in declaration.

Fri Nov 18 19:50:52 1994  Torbjorn Granlund  ([email protected])

	* mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES.

Mon Nov 14 00:34:12 1994  Torbjorn Granlund  ([email protected])

	* mpn/generic/random2.c (random): Test for __svr4__.

Wed Oct 12 23:28:16 1994  Torbjorn Granlund  ([email protected])

	* cre-conv-tab.c (main): Avoid upper-case X in printf format string.

Tue Aug 23 17:16:35 1994  Torbjorn Granlund  ([email protected])

	* mpz/perfsqr.c: Use mpn_perfect_square_p.
	* mpn/generic/perfsqr.c: New file.

Wed Jul  6 13:46:51 1994  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* mpz/add.c: Fix bogus comment.
	* mpz/sub.c: Likewise.

Sat Jul  2 02:14:56 1994  Torbjorn Granlund  ([email protected])

	* 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 ([email protected])

	* longlong.h (arm umul_ppmm): Fix typos in last change.  Mark
	hard-coded registers with "%|"

Thu Jun 30 03:59:33 1994  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz/gcdext.c: Cosmetic changes.

	* mpz/fdiv_ui.c: New file.

Fri May 20 00:24:53 1994  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz/*.c: Prepend mpn calls with __.

	* mpz/mul_ui.c: Use mpn_mul_1.

Mon May 16 17:19:41 1994  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpf: New directory.
	* mpf/*.c: Merge basic set of mpf functions.

	* Many logs missing...

Sun Apr 25 18:40:26 1993  Torbjorn Granlund  ([email protected])

	* 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: Clearify comment.

Sun Apr 25 00:31:28 1993  Torbjorn Granlund  ([email protected])

	* longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'.

Sat Apr 24 16:23:33 1993  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz/inp_raw.c: Allocate x_index, not xsize limbs.

Mon Mar 15 11:44:06 1993  Torbjorn Granlund  ([email protected])

	* mpz/pprime.c: Declare param `const'.
	* gmp.h: Add declarations for mpz_com.

Thu Feb 18 14:10:34 1993  Torbjorn Granlund  ([email protected])

	* mpq/add.c, mpq/sub.c: Call mpz_clear for t.

Fri Feb 12 20:27:34 1993  Torbjorn Granlund  ([email protected])

	* mpz/inp_str.c: Recog minus sign as first character.

Wed Feb  3 01:36:02 1993  Torbjorn Granlund  ([email protected])

	* mpz/iset.c: Handle 0 size.

Tue Feb  2 13:03:33 1993  Torbjorn Granlund  ([email protected])

	* mpz/mod_ui.c: Initialize dividend_size before it's used.

Mon Jan  4 09:11:15 1993  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* All files: Remove leading _ from mpn function names.

Wed Sep  2 22:21:16 1992  Torbjorn Granlund  ([email protected])

	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  ([email protected])

	* _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  ([email protected])

	* 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  ([email protected])

	longlong.h (hppa umul_ppmm): Add missing semicolon.  Declare type
	of __w1 and __w0.

Fri Feb 14 21:33:21 1992  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed.

Fri Feb  7 16:26:16 1992  Torbjorn Granlund  ([email protected])

	* mpn_mul: Replace code for base case.

Thu Feb  6 15:10:42 1992  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* longlong.h: Make __LLDEBUG__ work differently.
	(_IBMR2): Reinsert old code.

Sat Feb  1 16:43:00 1992  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* _mpz_get_str: Fix typo in comment.

Mon Jan 27 09:44:16 1992  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	Bug found by Paul Zimmermann ([email protected]):
	* 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  ([email protected])

	* mpz_pprime.c: Use "" for #include.

Sun Jan 19 13:36:55 1992  Torbjorn Granlund  ([email protected])

	* mpn_rshiftci.c (header): Correct comment.

Wed Jan 15 18:56:04 1992  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* mpz_powm_ui: Fix comment.
	* mpz_powm: Likewise.

Mon Jan 13 18:16:25 1992  Torbjorn Granlund  ([email protected])

	* tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target.

Sun Jan 12 13:54:28 1992  Torbjorn Granlund  ([email protected])

	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  ([email protected])

	* gmp.h, mp.h: Remove parameter names from prototypes.

Sun Dec 15 00:09:36 1991  Torbjorn Granlund  ([email protected])

	* tests/Makefile.in: Prepend "./" to file names when executing
	tests.

	* Makefile.in: Fix many problems.

Sat Dec 14 01:00:02 1991  Torbjorn Granlund  ([email protected])

	* 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 [email protected]).
	* 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  ([email protected])

	* 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  ([email protected])

	* gmp-impl.h (MPZ_TMP_INIT): Cast to the right type.

Thu Dec 12 22:17:29 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* mpn_rshift.c: Fix header comments.

Mon Dec  9 17:46:10 1991  Torbjorn Granlund  ([email protected])

	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  ([email protected])

	* mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0.

Sat Nov  9 23:47:38 1991  Torbjorn Granlund  ([email protected])

	Released 1.1.94.

	* dist-Makefile, Makefile, tests/Makefile: Merge tests into
	distribution.

Fri Nov  8 22:57:19 1991  Torbjorn Granlund  ([email protected])

	* gmp.h: Don't use keyword `signed' for non-ANSI compilers.

Thu Nov  7 22:06:46 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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 ([email protected]):
	* 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  ([email protected])

	* cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output
	header text.

Mon Oct 28 00:35:29 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz_random2.c: New file.

Thu Oct 17 18:06:42 1991  Torbjorn Granlund  ([email protected])

	Bugs found by Pierre-Joseph Gailly ([email protected]):
	* 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  ([email protected])

	* mpz_random: Ensure the result is normalized.

Tue Oct 15 14:55:13 1991  Torbjorn Granlund  ([email protected])

	* mpz_clrbit: Support non-ANSI compilers.

Wed Oct  9 18:03:28 1991  Torbjorn Granlund  ([email protected])

	* longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints.

Tue Oct  8 17:42:59 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* dist-Makefile: Prepend `./' before some filenames.

Sun Sep 29 14:02:11 1991  Torbjorn Granlund  ([email protected])

	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  ([email protected])

	* longlong.h: Fix header comment.

Mon Sep  9 15:16:24 1991  Torbjorn Granlund  ([email protected])

	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  ([email protected])

	* dist-Makefile (stamp-stddefh): Fix typo.

Sat Aug 31 20:41:31 1991  Torbjorn Granlund  ([email protected])

	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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* _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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	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  ([email protected])

	* 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  ([email protected])

	* _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  ([email protected])

	* 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  ([email protected])

	* _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  ([email protected])

	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  ([email protected])

	* 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 ([email protected]):
	* 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  ([email protected])

	* longlong.h: Clean up comments.
	* longlong.h: #undef internal macros.

Fri Aug  2 18:29:11 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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 simplyfy 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  ([email protected])

	* 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  ([email protected])

	* 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: Chack 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* _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  ([email protected])

	* 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  ([email protected])

	* mpz_get_cvtlen: multiply by size.

Sun May 26 15:01:15 1991  Torbjorn Granlund  ([email protected])

	Alpha-release 0.95.

	Fixes from Doug Lea ([email protected]):
	* 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  ([email protected])

	* mpz_divmod_ui: New function.

	* sdiv: Make the sign of the remainder correct.

Thu May 23 15:28:24 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* Add manual to distribution.
	* Fold in many missing routines descibed in the manual.
	* Update Makefile.

Wed May 22 13:48:46 1991  Torbjorn Granlund  ([email protected])

	* mpz_set_str: Make it handle 0x prefix OK.

Sat May 18 18:31:02 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpz_div: Remove test for QUOT == 0.

Sun Apr 28 20:21:04 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* Install multplication using Karatsuba's algorithm as default.

Fri Apr 26 01:03:57 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* mpn_mul: Check only for m2_size == 0 in function header.

Mon Apr 22 01:31:57 1991  Torbjorn Granlund  ([email protected])

	* karatsuba.c: New file for Karatsuba's multplication 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  ([email protected])

	* pow: Switch off initial base reduction.

Sat Apr 20 22:06:05 1991  Torbjorn Granlund  ([email protected])

	* 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  ([email protected])

	* _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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* 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  ([email protected])

	* mpq_mul.c: New file for rational multplication.

	* 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  ([email protected])

	* 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  ([email protected])

	* 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.)



Local Variables:
mode: indented-text
left-margin: 8
fill-column: 79
version-control: never
eval: (unless (string-match "GNU Emacs \\(21\.[4-9]\\|22\.\\)" (emacs-version))
	(save-excursion
	  (goto-char (point-min))
	  (when (looking-at "Copyright")
	    (search-forward "\n\n")
	    (skip-chars-forward "\n")
	    (narrow-to-region (point) (point-max))
	    (message "Note! narrowed to hide copyright notice"))))
End: